mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	sql changes for service offering
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
		
							parent
							
								
									d04c6ea276
								
							
						
					
					
						commit
						f431711922
					
				@ -20,7 +20,9 @@
 | 
			
		||||
--;
 | 
			
		||||
 | 
			
		||||
-- Move domain_id to disk offering details and drop the domain_id column
 | 
			
		||||
INSERT INTO `cloud`.`disk_offering_details` (offering_id, name, value) SELECT id, 'domainid', domain_id FROM `cloud`.`disk_offering` WHERE domain_id IS NOT NULL;
 | 
			
		||||
INSERT INTO `cloud`.`disk_offering_details` (offering_id, name, value) SELECT id, 'domainid', domain_id FROM `cloud`.`disk_offering` WHERE domain_id IS NOT NULL AND type='Disk';
 | 
			
		||||
INSERT INTO `cloud`.`service_offering_details` (offering_id, name, value) SELECT id, 'domainid', domain_id FROM `cloud`.`disk_offering` WHERE domain_id IS NOT NULL AND type='Service';
 | 
			
		||||
 | 
			
		||||
ALTER TABLE `cloud`.`disk_offering` DROP COLUMN `domain_id`;
 | 
			
		||||
 | 
			
		||||
-- Disk offering with multi-domains and multi-zones
 | 
			
		||||
@ -78,14 +80,14 @@ CREATE VIEW `cloud`.`disk_offering_view` AS
 | 
			
		||||
            LEFT JOIN
 | 
			
		||||
        `cloud`.`data_center` AS `zone` ON FIND_IN_SET(`zone`.`id`, `zone_details`.`value`)
 | 
			
		||||
    WHERE
 | 
			
		||||
        `disk_offering`.`state`='ACTIVE'
 | 
			
		||||
        `disk_offering`.`state`='Active'
 | 
			
		||||
    GROUP BY
 | 
			
		||||
        `disk_offering`.`id`;
 | 
			
		||||
 | 
			
		||||
-- Service offering with multi-domains and multi-zones
 | 
			
		||||
DROP VIEW IF EXISTS `cloud`.`service_offering_view`;
 | 
			
		||||
CREATE VIEW `cloud`.`service_offering_view` AS
 | 
			
		||||
    select
 | 
			
		||||
    SELECT
 | 
			
		||||
        `service_offering`.`id` AS `id`,
 | 
			
		||||
        `disk_offering`.`uuid` AS `uuid`,
 | 
			
		||||
        `disk_offering`.`name` AS `name`,
 | 
			
		||||
@ -126,16 +128,26 @@ CREATE VIEW `cloud`.`service_offering_view` AS
 | 
			
		||||
        `service_offering`.`sort_key` AS `sort_key`,
 | 
			
		||||
        `service_offering`.`is_volatile` AS `is_volatile`,
 | 
			
		||||
        `service_offering`.`deployment_planner` AS `deployment_planner`,
 | 
			
		||||
        `disk_offering`.`domain_id` AS `domain_id`,
 | 
			
		||||
        `disk_offering`.`domain_uuid` AS `domain_uuid`,
 | 
			
		||||
        `disk_offering`.`domain_name` AS `domain_name`,
 | 
			
		||||
        `disk_offering`.`domain_path` AS `domain_path`,
 | 
			
		||||
        `disk_offering`.`zone_id` AS `zone_id`,
 | 
			
		||||
        `disk_offering`.`zone_uuid` AS `zone_uuid`,
 | 
			
		||||
        `disk_offering`.`zone_name` AS `zone_name`
 | 
			
		||||
    from
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(domain.id)) AS domain_id,
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(domain.uuid)) AS domain_uuid,
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(domain.name)) AS domain_name,
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(domain.path)) AS domain_path,
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(zone.id)) AS zone_id,
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(zone.uuid)) AS zone_uuid,
 | 
			
		||||
        GROUP_CONCAT(DISTINCT(zone.name)) AS zone_name
 | 
			
		||||
    FROM
 | 
			
		||||
        `cloud`.`service_offering`
 | 
			
		||||
            inner join
 | 
			
		||||
            INNER JOIN
 | 
			
		||||
        `cloud`.`disk_offering_view` AS `disk_offering` ON service_offering.id = disk_offering.id
 | 
			
		||||
    where
 | 
			
		||||
        disk_offering.state='Active';
 | 
			
		||||
            LEFT JOIN
 | 
			
		||||
        `cloud`.`service_offering_details` AS `domain_details` ON `domain_details`.`service_offering_id` = `disk_offering`.`id` AND `domain_details`.`name`='domainid'
 | 
			
		||||
            LEFT JOIN
 | 
			
		||||
        `cloud`.`domain` AS `domain` ON FIND_IN_SET(`domain`.`id`, `domain_details`.`value`)
 | 
			
		||||
            LEFT JOIN
 | 
			
		||||
        `cloud`.`service_offering_details` AS `zone_details` ON `zone_details`.`service_offering_id` = `disk_offering`.`id` AND `zone_details`.`name`='zoneid'
 | 
			
		||||
            LEFT JOIN
 | 
			
		||||
        `cloud`.`data_center` AS `zone` ON FIND_IN_SET(`zone`.`id`, `zone_details`.`value`)
 | 
			
		||||
    WHERE
 | 
			
		||||
        `disk_offering`.`state`='Active'
 | 
			
		||||
    GROUP BY
 | 
			
		||||
        `service_offering`.`id`;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user