This is an automated email from the ASF dual-hosted git repository.

dahn pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.19 by this push:
     new b4404fbcc7e db: fix wrong cloud.domain_view (#8705)
b4404fbcc7e is described below

commit b4404fbcc7ebd207507f22eea435eae9d388075b
Author: Abhishek Kumar <abhishek.mr...@gmail.com>
AuthorDate: Mon Feb 26 19:17:41 2024 +0530

    db: fix wrong cloud.domain_view (#8705)
---
 .../META-INF/db/views/cloud.domain_view.sql        | 153 +++++++++++++++------
 1 file changed, 114 insertions(+), 39 deletions(-)

diff --git 
a/engine/schema/src/main/resources/META-INF/db/views/cloud.domain_view.sql 
b/engine/schema/src/main/resources/META-INF/db/views/cloud.domain_view.sql
index 90a398e1ec5..2d8a9b536f2 100644
--- a/engine/schema/src/main/resources/META-INF/db/views/cloud.domain_view.sql
+++ b/engine/schema/src/main/resources/META-INF/db/views/cloud.domain_view.sql
@@ -15,46 +15,121 @@
 -- specific language governing permissions and limitations
 -- under the License.
 
--- cloud.affinity_group_view source
+-- VIEW `cloud`.`domain_view`;
 
+DROP VIEW IF EXISTS `cloud`.`domain_view`;
 
-DROP VIEW IF EXISTS `cloud`.`affinity_group_view`;
-
-CREATE VIEW `cloud`.`affinity_group_view` AS
+CREATE VIEW `cloud`.`domain_view` AS
 select
-    `affinity_group`.`id` AS `id`,
-    `affinity_group`.`name` AS `name`,
-    `affinity_group`.`type` AS `type`,
-    `affinity_group`.`description` AS `description`,
-    `affinity_group`.`uuid` AS `uuid`,
-    `affinity_group`.`acl_type` AS `acl_type`,
-    `account`.`id` AS `account_id`,
-    `account`.`uuid` AS `account_uuid`,
-    `account`.`account_name` AS `account_name`,
-    `account`.`type` AS `account_type`,
-    `domain`.`id` AS `domain_id`,
-    `domain`.`uuid` AS `domain_uuid`,
-    `domain`.`name` AS `domain_name`,
-    `domain`.`path` AS `domain_path`,
-    `projects`.`id` AS `project_id`,
-    `projects`.`uuid` AS `project_uuid`,
-    `projects`.`name` AS `project_name`,
-    `vm_instance`.`id` AS `vm_id`,
-    `vm_instance`.`uuid` AS `vm_uuid`,
-    `vm_instance`.`name` AS `vm_name`,
-    `vm_instance`.`state` AS `vm_state`,
-    `user_vm`.`display_name` AS `vm_display_name`
+    `domain`.`id` AS `id`,
+    `domain`.`parent` AS `parent`,
+    `domain`.`name` AS `name`,
+    `domain`.`uuid` AS `uuid`,
+    `domain`.`owner` AS `owner`,
+    `domain`.`path` AS `path`,
+    `domain`.`level` AS `level`,
+    `domain`.`child_count` AS `child_count`,
+    `domain`.`next_child_seq` AS `next_child_seq`,
+    `domain`.`created` AS `created`,
+    `domain`.`removed` AS `removed`,
+    `domain`.`state` AS `state`,
+    `domain`.`network_domain` AS `network_domain`,
+    `domain`.`type` AS `type`,
+    `vmlimit`.`max` AS `vmLimit`,
+    `vmcount`.`count` AS `vmTotal`,
+    `iplimit`.`max` AS `ipLimit`,
+    `ipcount`.`count` AS `ipTotal`,
+    `volumelimit`.`max` AS `volumeLimit`,
+    `volumecount`.`count` AS `volumeTotal`,
+    `snapshotlimit`.`max` AS `snapshotLimit`,
+    `snapshotcount`.`count` AS `snapshotTotal`,
+    `templatelimit`.`max` AS `templateLimit`,
+    `templatecount`.`count` AS `templateTotal`,
+    `vpclimit`.`max` AS `vpcLimit`,
+    `vpccount`.`count` AS `vpcTotal`,
+    `projectlimit`.`max` AS `projectLimit`,
+    `projectcount`.`count` AS `projectTotal`,
+    `networklimit`.`max` AS `networkLimit`,
+    `networkcount`.`count` AS `networkTotal`,
+    `cpulimit`.`max` AS `cpuLimit`,
+    `cpucount`.`count` AS `cpuTotal`,
+    `memorylimit`.`max` AS `memoryLimit`,
+    `memorycount`.`count` AS `memoryTotal`,
+    `primary_storage_limit`.`max` AS `primaryStorageLimit`,
+    `primary_storage_count`.`count` AS `primaryStorageTotal`,
+    `secondary_storage_limit`.`max` AS `secondaryStorageLimit`,
+    `secondary_storage_count`.`count` AS `secondaryStorageTotal`
 from
-    ((((((`affinity_group`
-join `account` on
-    ((`affinity_group`.`account_id` = `account`.`id`)))
-join `domain` on
-    ((`affinity_group`.`domain_id` = `domain`.`id`)))
-left join `projects` on
-    ((`projects`.`project_account_id` = `account`.`id`)))
-left join `affinity_group_vm_map` on
-    ((`affinity_group`.`id` = `affinity_group_vm_map`.`affinity_group_id`)))
-left join `vm_instance` on
-    ((`vm_instance`.`id` = `affinity_group_vm_map`.`instance_id`)))
-left join `user_vm` on
-    ((`user_vm`.`id` = `vm_instance`.`id`)));
+    `cloud`.`domain`
+        left join
+    `cloud`.`resource_limit` vmlimit ON domain.id = vmlimit.domain_id
+        and vmlimit.type = 'user_vm'
+        left join
+    `cloud`.`resource_count` vmcount ON domain.id = vmcount.domain_id
+        and vmcount.type = 'user_vm'
+        left join
+    `cloud`.`resource_limit` iplimit ON domain.id = iplimit.domain_id
+        and iplimit.type = 'public_ip'
+        left join
+    `cloud`.`resource_count` ipcount ON domain.id = ipcount.domain_id
+        and ipcount.type = 'public_ip'
+        left join
+    `cloud`.`resource_limit` volumelimit ON domain.id = volumelimit.domain_id
+        and volumelimit.type = 'volume'
+        left join
+    `cloud`.`resource_count` volumecount ON domain.id = volumecount.domain_id
+        and volumecount.type = 'volume'
+        left join
+    `cloud`.`resource_limit` snapshotlimit ON domain.id = 
snapshotlimit.domain_id
+        and snapshotlimit.type = 'snapshot'
+        left join
+    `cloud`.`resource_count` snapshotcount ON domain.id = 
snapshotcount.domain_id
+        and snapshotcount.type = 'snapshot'
+        left join
+    `cloud`.`resource_limit` templatelimit ON domain.id = 
templatelimit.domain_id
+        and templatelimit.type = 'template'
+        left join
+    `cloud`.`resource_count` templatecount ON domain.id = 
templatecount.domain_id
+        and templatecount.type = 'template'
+        left join
+    `cloud`.`resource_limit` vpclimit ON domain.id = vpclimit.domain_id
+        and vpclimit.type = 'vpc'
+        left join
+    `cloud`.`resource_count` vpccount ON domain.id = vpccount.domain_id
+        and vpccount.type = 'vpc'
+        left join
+    `cloud`.`resource_limit` projectlimit ON domain.id = projectlimit.domain_id
+        and projectlimit.type = 'project'
+        left join
+    `cloud`.`resource_count` projectcount ON domain.id = projectcount.domain_id
+        and projectcount.type = 'project'
+        left join
+    `cloud`.`resource_limit` networklimit ON domain.id = networklimit.domain_id
+        and networklimit.type = 'network'
+        left join
+    `cloud`.`resource_count` networkcount ON domain.id = networkcount.domain_id
+        and networkcount.type = 'network'
+        left join
+    `cloud`.`resource_limit` cpulimit ON domain.id = cpulimit.domain_id
+        and cpulimit.type = 'cpu'
+        left join
+    `cloud`.`resource_count` cpucount ON domain.id = cpucount.domain_id
+        and cpucount.type = 'cpu'
+        left join
+    `cloud`.`resource_limit` memorylimit ON domain.id = memorylimit.domain_id
+        and memorylimit.type = 'memory'
+        left join
+    `cloud`.`resource_count` memorycount ON domain.id = memorycount.domain_id
+        and memorycount.type = 'memory'
+        left join
+    `cloud`.`resource_limit` primary_storage_limit ON domain.id = 
primary_storage_limit.domain_id
+        and primary_storage_limit.type = 'primary_storage'
+        left join
+    `cloud`.`resource_count` primary_storage_count ON domain.id = 
primary_storage_count.domain_id
+        and primary_storage_count.type = 'primary_storage'
+        left join
+    `cloud`.`resource_limit` secondary_storage_limit ON domain.id = 
secondary_storage_limit.domain_id
+        and secondary_storage_limit.type = 'secondary_storage'
+        left join
+    `cloud`.`resource_count` secondary_storage_count ON domain.id = 
secondary_storage_count.domain_id
+        and secondary_storage_count.type = 'secondary_storage';

Reply via email to