mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-4539: [VMWARE] vmware.create.full.clone is set to true in upgraded setup;default nature of vms are full clone
Description:
Set the criterion for overriding/preserving the vmware.create.full.clone
flag so that if past version deployments have any deployments (data centers),
this flag will be set to false. Else, it will be set to true.
The earlier criterion to set this flag was based on the CS version numbers,
but that is not a good business logic to serve as a basis to set the flag.
This commit is contained in:
parent
f31c318158
commit
57dc52bb6f
@ -113,6 +113,73 @@ public class Upgrade410to420 implements DbUpgrade {
|
||||
encryptSite2SitePSK(conn);
|
||||
migrateDatafromIsoIdInVolumesTable(conn);
|
||||
setRAWformatForRBDVolumes(conn);
|
||||
migrateVolumeOnSecondaryStorage(conn);
|
||||
createFullCloneFlag(conn);
|
||||
}
|
||||
|
||||
private void createFullCloneFlag(Connection conn) {
|
||||
ResultSet rs = null;
|
||||
PreparedStatement delete = null;
|
||||
PreparedStatement query = null;
|
||||
PreparedStatement update = null;
|
||||
int numRows = 0;
|
||||
try {
|
||||
delete = conn.prepareStatement("delete from `cloud`.`configuration` where name='vmware.create.full.clone';");
|
||||
delete.executeUpdate();
|
||||
query = conn.prepareStatement("select count(*) from `cloud`.`data_center`");
|
||||
rs = query.executeQuery();
|
||||
if (rs.next()) {
|
||||
numRows = rs.getInt(1);
|
||||
}
|
||||
if (numRows > 0) {
|
||||
update = conn.prepareStatement("insert into `cloud`.`configuration` (`category`, `instance`, `component`, `name`, `value`, `description`) VALUES ('Advanced', 'DEFAULT', 'UserVmManager', 'vmware.create.full.clone' , 'false', 'If set to true, creates VMs as full clones on ESX hypervisor');");
|
||||
} else {
|
||||
update = conn.prepareStatement("insert into `cloud`.`configuration` (`category`, `instance`, `component`, `name`, `value`, `description`) VALUES ('Advanced', 'DEFAULT', 'UserVmManager', 'vmware.create.full.clone' , 'true', 'If set to true, creates VMs as full clones on ESX hypervisor');");
|
||||
}
|
||||
update.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
throw new CloudRuntimeException("Failed to set global flag vmware.create.full.clone: ", e);
|
||||
} finally {
|
||||
if (update != null) {
|
||||
try {
|
||||
update.close();
|
||||
} catch (SQLException e) {
|
||||
|
||||
}
|
||||
}
|
||||
if (query != null) {
|
||||
try {
|
||||
query.close();
|
||||
} catch (SQLException e) {
|
||||
|
||||
}
|
||||
}
|
||||
if (delete != null) {
|
||||
try {
|
||||
delete.close();
|
||||
} catch (SQLException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void migrateVolumeOnSecondaryStorage(Connection conn) {
|
||||
PreparedStatement sql = null;
|
||||
try {
|
||||
sql = conn.prepareStatement("update `cloud`.`volumes` set state='Uploaded' where state='UploadOp'");
|
||||
sql.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
throw new CloudRuntimeException("Failed to upgrade volume state: ", e);
|
||||
} finally {
|
||||
if (sql != null) {
|
||||
try {
|
||||
sql.close();
|
||||
} catch (SQLException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void persistVswitchConfiguration(Connection conn) {
|
||||
|
||||
@ -397,10 +397,6 @@ CREATE TABLE `cloud`.`user_vm_clone_setting` (
|
||||
PRIMARY KEY (`vm_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `cloud`.`configuration` (category, instance, component, name, value, description)
|
||||
SELECT tmp.category, tmp.instance, tmp.component, tmp.name, tmp.value, tmp.description FROM
|
||||
(SELECT 'Advanced' category, 'DEFAULT' instance, 'UserVmManager' component, 'vmware.create.full.clone' name, 'true' value, 'If set to true, creates VMs as full clones on ESX hypervisor' description) tmp
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `cloud`.`configuration` WHERE name = 'vmware.create.full.clone');
|
||||
|
||||
CREATE TABLE `cloud`.`affinity_group` (
|
||||
`id` bigint unsigned NOT NULL auto_increment,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user