blob: 8c3af0cc2baf727bf693e543ec2091eefa45ef2a [file] [log] [blame]
-- Licensed to the Apache Software Foundation (ASF) under one
-- or more contributor license agreements. See the NOTICE file
-- distributed with this work for additional information
-- regarding copyright ownership. The ASF licenses this file
-- to you under the Apache License, Version 2.0 (the
-- "License"); you may not use this file except in compliance
-- with the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing,
-- software distributed under the License is distributed on an
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-- KIND, either express or implied. See the License for the
-- specific language governing permissions and limitations
-- under the License.
--;
-- Schema upgrade from 2.2.7 to 2.2.8;
--;
CREATE TABLE IF NOT EXISTS `cloud`.`netapp_pool` (
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id',
`name` varchar(255) NOT NULL UNIQUE COMMENT 'name for the pool',
`algorithm` varchar(255) NOT NULL COMMENT 'algorithm',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `cloud`.`netapp_volume` (
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id',
`ip_address` varchar(255) NOT NULL COMMENT 'ip address/fqdn of the volume',
`pool_id` bigint unsigned NOT NULL COMMENT 'id for the pool',
`pool_name` varchar(255) NOT NULL COMMENT 'name for the pool',
`aggregate_name` varchar(255) NOT NULL COMMENT 'name for the aggregate',
`volume_name` varchar(255) NOT NULL COMMENT 'name for the volume',
`volume_size` varchar(255) NOT NULL COMMENT 'volume size',
`snapshot_policy` varchar(255) NOT NULL COMMENT 'snapshot policy',
`snapshot_reservation` int NOT NULL COMMENT 'snapshot reservation',
`username` varchar(255) NOT NULL COMMENT 'username',
`password` varchar(200) COMMENT 'password',
`round_robin_marker` int COMMENT 'This marks the volume to be picked up for lun creation, RR fashion',
PRIMARY KEY (`ip_address`,`aggregate_name`,`volume_name`),
CONSTRAINT `fk_netapp_volume__pool_id` FOREIGN KEY `fk_netapp_volume__pool_id` (`pool_id`) REFERENCES `netapp_pool` (`id`) ON DELETE CASCADE,
INDEX `i_netapp_volume__pool_id`(`pool_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `cloud`.`netapp_lun` (
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id',
`lun_name` varchar(255) NOT NULL COMMENT 'lun name',
`target_iqn` varchar(255) NOT NULL COMMENT 'target iqn',
`path` varchar(255) NOT NULL COMMENT 'lun path',
`size` bigint NOT NULL COMMENT 'lun size',
`volume_id` bigint unsigned NOT NULL COMMENT 'parent volume id',
PRIMARY KEY (`id`),
CONSTRAINT `fk_netapp_lun__volume_id` FOREIGN KEY `fk_netapp_lun__volume_id` (`volume_id`) REFERENCES `netapp_volume` (`id`) ON DELETE CASCADE,
INDEX `i_netapp_lun__volume_id`(`volume_id`),
INDEX `i_netapp_lun__lun_name`(`lun_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--;
-- Cleanup usage records for bug # 10727;
--;
create table `cloud_usage`.`temp_usage` ( `vol_id` bigint unsigned, `created` DATETIME);
insert into `cloud_usage`.`temp_usage` (vol_id, created) select id, max(created) from `cloud_usage`.`usage_volume` where deleted is null group by id having count(id) > 1;
delete `cloud_usage`.`usage_volume` from `cloud_usage`.`usage_volume` inner join `cloud_usage`.`temp_usage` where `cloud_usage`.`usage_volume`.created = `cloud_usage`.`temp_usage`.created and `cloud_usage`.`usage_volume`.id = `cloud_usage`.`temp_usage`.vol_id and `cloud_usage`.`usage_volume`.deleted is null;
drop table `cloud_usage`.`temp_usage`;
update `cloud_usage`.`cloud_usage` set raw_usage = (raw_usage % 24) where usage_type =6 and raw_usage > 24 and (raw_usage % 24) <> 0;
update `cloud_usage`.`cloud_usage` set raw_usage = 24 where usage_type =6 and raw_usage > 24 and (raw_usage % 24) = 0;