def _get_data_volumes(vm_): """ Construct a list of optional data volumes from the cloud profile """ ret = [] volumes = vm_["volumes"] for key, value in volumes.items(): # Verify the required 'disk_size' property is present in the cloud # profile config if "disk_size" not in volumes[key].keys(): raise SaltCloudConfigError( "The volume '{}' is missing 'disk_size'".format(key)) # Use 'HDD' if no 'disk_type' property is present in cloud profile if "disk_type" not in volumes[key].keys(): volumes[key]["disk_type"] = "HDD" # Construct volume object and assign to a list. volume = Volume( name=key, size=volumes[key]["disk_size"], disk_type=volumes[key]["disk_type"], licence_type="OTHER", ) # Set volume availability zone if defined in the cloud profile if "disk_availability_zone" in volumes[key].keys(): volume.availability_zone = volumes[key]["disk_availability_zone"] ret.append(volume) return ret
def _get_system_volume(vm_): """ Construct VM system volume list from cloud profile config """ # Override system volume size if 'disk_size' is defined in cloud profile disk_size = get_size(vm_)["disk"] if "disk_size" in vm_: disk_size = vm_["disk_size"] # Construct the system volume volume = Volume( name="{} Storage".format(vm_["name"]), size=disk_size, disk_type=get_disk_type(vm_), ) if "image_password" in vm_: image_password = vm_["image_password"] volume.image_password = image_password # Retrieve list of SSH public keys ssh_keys = get_public_keys(vm_) volume.ssh_keys = ssh_keys if "image_alias" in vm_.keys(): volume.image_alias = vm_["image_alias"] else: volume.image = get_image(vm_)["id"] # Set volume availability zone if defined in the cloud profile if "disk_availability_zone" in vm_: volume.availability_zone = vm_["disk_availability_zone"] return volume
def _get_data_volumes(vm_): ''' Construct a list of optional data volumes from the cloud profile ''' ret = [] volumes = vm_['volumes'] for key, value in volumes.iteritems(): # Verify the required 'disk_size' property is present in the cloud # profile config if 'disk_size' not in volumes[key].keys(): raise SaltCloudConfigError( 'The volume \'{0}\' is missing \'disk_size\''.format(key) ) # Use 'HDD' if no 'disk_type' property is present in cloud profile if 'disk_type' not in volumes[key].keys(): volumes[key]['disk_type'] = 'HDD' # Construct volume object and assign to a list. volume = Volume( name=key, size=volumes[key]['disk_size'], disk_type=volumes[key]['disk_type'], licence_type='OTHER' ) # Set volume availability zone if defined in the cloud profile if 'disk_availability_zone' in volumes[key].keys(): volume.availability_zone = volumes[key]['disk_availability_zone'] ret.append(volume) return ret
def _get_system_volume(vm_): ''' Construct VM system volume list from cloud profile config ''' # Retrieve list of SSH public keys ssh_keys = get_public_keys(vm_) # Override system volume size if 'disk_size' is defined in cloud profile disk_size = get_size(vm_)['disk'] if 'disk_size' in vm_: disk_size = vm_['disk_size'] # Construct the system volume volume = Volume( name='{0} Storage'.format(vm_['name']), size=disk_size, image=get_image(vm_)['id'], disk_type=get_disk_type(vm_), ssh_keys=ssh_keys ) # Set volume availability zone if defined in the cloud profile if 'disk_availability_zone' in vm_: volume.availability_zone = vm_['disk_availability_zone'] return volume
def test_create_composite(self): fwrule = FirewallRule(**self.resource['fwrule']) nic = NIC(firewall_rules=[fwrule], **self.resource['nic']) volume = Volume(image=self.image['id'], image_password='******', ssh_keys=['ssh-rsa AAAAB3NzaC1'], **self.resource['volume']) volume.availability_zone = 'ZONE_3' server = Server(nics=[nic], create_volumes=[volume], **self.resource['server']) composite_server = self.client.create_server( datacenter_id=self.datacenter['id'], server=server) self.client.wait_for_completion(composite_server, timeout=600) composite_server = self.client.get_server( datacenter_id=self.datacenter['id'], server_id=composite_server['id']) assertRegex(self, composite_server['id'], self.resource['uuid_match']) self.assertEqual(composite_server['properties']['name'], self.resource['server']['name']) self.assertEqual(composite_server['properties']['cores'], self.resource['server']['cores']) self.assertEqual(composite_server['properties']['ram'], self.resource['server']['ram']) self.assertEqual(composite_server['properties']['availabilityZone'], 'ZONE_1') self.assertIn(composite_server['properties']['vmState'], self.resource['vm_states']) self.assertGreater( len(composite_server['entities']['volumes']['items']), 0) self.assertGreater(len(composite_server['entities']['nics']['items']), 0)