def test_05_set_vcpolicy_tag_with_admin_and_try_delete_with_user(self): ''' Test set vc-policy tag to VM with one attached disk ''' tag = Tag.create(self.apiclient, resourceIds=self.virtual_machine.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) self.debug( '######################### test_05_set_vcpolicy_tag_with_admin_and_try_delete_with_user tags ######################### ' ) vm = list_virtual_machines(self.userapiclient, id=self.virtual_machine.id) vm_tags = vm[0].tags volumes = list_volumes(self.apiclient, virtualmachineid=self.virtual_machine.id, listall=True) self.debug( '######################### test_01_set_vcpolicy_tag_to_vm_with_attached_disks tags ######################### ' ) self.vc_policy_tags(volumes, vm_tags, vm) try: Tag.delete(self.userapiclient, resourceIds=self.virtual_machine.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) except Exception as e: self.debug( "##################### test_05_set_vcpolicy_tag_with_admin_and_try_delete_with_user %s " % e)
def deploy_portforwards(self, portforwards_data, virtualmachines_data, vpc, publicipaddress): for portforward_data in portforwards_data: for virtualmachine_data in virtualmachines_data: if virtualmachine_data['data']['name'] == portforward_data[ 'data']['virtualmachinename']: for nic_data in virtualmachine_data['data']['nics']: if nic_data['data']['guestip'] == portforward_data[ 'data']['nic']: network = get_network( api_client=self.api_client, name=nic_data['data']['networkname'], vpc=vpc) virtualmachine = get_virtual_machine( api_client=self.api_client, name=self.dynamic_names['vms'][ virtualmachine_data['data']['name']], network=network) self.logger.debug( '>>> PORT FORWARD => Creating...') portforward = NATRule.create( api_client=self.api_client, data=portforward_data['data'], network=network, virtual_machine=virtualmachine, ipaddress=publicipaddress) Tag.create( api_client=self.api_client, resourceType='UserVm', resourceIds=[virtualmachine.id], tags=[{ 'key': 'sship', 'value': publicipaddress.ipaddress.ipaddress }, { 'key': 'sshport', 'value': portforward_data['data']['publicport'] }]) self.logger.debug( '>>> PORT FORWARD => ID: %s => Public Start Port: %s ' '=> Public End Port: %s => Private Start Port: %s ' '=> Private End Port: %s => CIDR List: %s => Protocol: %s ' '=> State: %s => IP: %s => VM: %s', portforward.id, portforward.publicport, portforward.publicendport, portforward.privateport, portforward.privateendport, portforward.cidrlist, portforward.protocol, portforward.state, portforward.ipaddressid, portforward.virtualmachineid)
def deploy_portforwards(self, portforwards_data, virtualmachines_data, vpc, publicipaddress): for portforward_data in portforwards_data: for virtualmachine_data in virtualmachines_data: if virtualmachine_data['data']['name'] == portforward_data['data']['virtualmachinename']: for nic_data in virtualmachine_data['data']['nics']: if nic_data['data']['guestip'] == portforward_data['data']['nic']: network = get_network( api_client=self.api_client, name=nic_data['data']['networkname'], vpc=vpc ) virtualmachine = get_virtual_machine( api_client=self.api_client, name=self.dynamic_names['vms'][virtualmachine_data['data']['name']], network=network ) self.logger.debug('>>> PORT FORWARD => Creating...') portforward = NATRule.create( api_client=self.api_client, data=portforward_data['data'], network=network, virtual_machine=virtualmachine, ipaddress=publicipaddress ) Tag.create( api_client=self.api_client, resourceType='UserVm', resourceIds=[virtualmachine.id], tags=[ { 'key': 'sship', 'value': publicipaddress.ipaddress.ipaddress }, { 'key': 'sshport', 'value': portforward_data['data']['publicport'] } ] ) self.logger.debug('>>> PORT FORWARD => ID: %s => Public Start Port: %s ' '=> Public End Port: %s => Private Start Port: %s ' '=> Private End Port: %s => CIDR List: %s => Protocol: %s ' '=> State: %s => IP: %s => VM: %s', portforward.id, portforward.publicport, portforward.publicendport, portforward.privateport, portforward.privateendport, portforward.cidrlist, portforward.protocol, portforward.state, portforward.ipaddressid, portforward.virtualmachineid)
def test_08_vcpolicy_tag_to_reverted_disk(self): tag = Tag.create(self.apiclient, resourceIds=self.virtual_machine2.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) vm = list_virtual_machines(self.apiclient, id=self.virtual_machine2.id, listall=True) vm_tags = vm[0].tags volume = Volume.list(self.apiclient, virtualmachineid=self.virtual_machine2.id, listall=True, type="ROOT") self.vc_policy_tags(volume, vm_tags, vm) snapshot = Snapshot.create(self.apiclient, volume[0].id, account=self.account.name, domainid=self.account.domainid) virtual_machine = self.virtual_machine2.stop(self.apiclient, forced=True) cmd = revertSnapshot.revertSnapshotCmd() cmd.id = snapshot.id revertedn = self.apiclient.revertSnapshot(cmd) vm = list_virtual_machines(self.apiclient, id=self.virtual_machine2.id) vm_tags = vm[0].tags vol = list_volumes(self.apiclient, id=snapshot.volumeid, listall=True) self.vc_policy_tags(vol, vm_tags, vm)
def test_25_vc_policy_attach_vol_global_id_vm_uuid(self): tag = Tag.create(self.apiclient, resourceIds=self.virtual_machine4.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) vm = list_virtual_machines(self.apiclient, id=self.virtual_machine4.id) vm_tags = vm[0].tags volumes = list_volumes( self.apiclient, virtualmachineid=self.virtual_machine4.id, ) self.assertTrue(len(volumes) == 1, "Volume length should be == 1") for v in volumes: self.helper.vc_policy_tags_global_id(v, vm_tags, False) volume = Volume.create( self.apiclient, {"diskname": "StorPoolDisk-GlId-%d" % random.randint(0, 100)}, zoneid=self.zone.id, diskofferingid=self.disk_offering.id, ) self.virtual_machine4.attach_volume(self.apiclient, volume) vm = list_virtual_machines(self.apiclient, id=self.virtual_machine4.id) vm_tags = vm[0].tags volumes = list_volumes(self.apiclient, virtualmachineid=self.virtual_machine4.id, id=volume.id) self.assertTrue(len(volumes) == 1, "Volume length should be == 1") self.helper.vc_policy_tags_global_id(volumes[0], vm_tags, False) self._cleanup.append(volume)
def test_07_delete_vcpolicy_tag(self): """ Test delete vc-policy tag of VM""" Tag.delete(self.apiclient, resourceIds=self.virtual_machine.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) volumes = list_volumes(self.apiclient, virtualmachineid=self.virtual_machine.id, listall=True) for v in volumes: name = v.path.split("/")[3] spvolume = self.spapi.volumeList(volumeName="~" + name) tags = spvolume[0].tags for t in tags: self.assertFalse(t.lower() == 'vc-policy'.lower(), "There is VC Policy tag")
def test_01_set_vcpolicy_tag_to_vm_with_attached_disks(self): ''' Test set vc-policy tag to VM with one attached disk ''' volume_attached = self.virtual_machine.attach_volume( self.userapiclient, self.volume_1) try: tag = Tag.create(self.userapiclient, resourceIds=self.virtual_machine.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) except Exception as e: self.debug( "##################### test_01_set_vcpolicy_tag_to_vm_with_attached_disks %s" % e)
def test_27_vc_policy_to_volume_and_vm_with_glid(self): vm = VirtualMachine.create(self.apiclient, {"name": "StorPool-%s" % uuid.uuid4()}, zoneid=self.zone.id, templateid=self.template.id, serviceofferingid=self.service_offering.id, hypervisor=self.hypervisor, rootdisksize=10) tag = Tag.create(self.apiclient, resourceIds=vm.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) vm_list = list_virtual_machines(self.apiclient, id=vm.id) vm_tags = vm_list[0].tags self._cleanup.append(vm)
def test_01_set_vcpolicy_tag_to_vm_with_attached_disks(self): ''' Test set vc-policy tag to VM with one attached disk ''' volume_attached = self.virtual_machine.attach_volume( self.apiclient, self.volume_1) tag = Tag.create(self.apiclient, resourceIds=self.virtual_machine.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) vm = list_virtual_machines(self.apiclient, id=self.virtual_machine.id, listall=True) vm_tags = vm[0].tags volumes = list_volumes(self.apiclient, virtualmachineid=self.virtual_machine.id, listall=True) self.vc_policy_tags(volumes, vm_tags, vm)
def get_virtual_machine(self, vm_name): virtual_machine = VirtualMachine(get_virtual_machine( api_client=self.api_client, name=self.get_dynamic_name('vms', vm_name) ).__dict__, []) virtual_machine_tags = Tag.list( api_client=self.api_client, resourceId=[virtual_machine.id], listall=True) for key in virtual_machine_tags: if key.key == 'sshport': virtual_machine.ssh_port = int(key.value.encode('ascii', 'ignore')) if key.key == 'sship': virtual_machine.ssh_ip = key.value.encode('ascii', 'ignore') return virtual_machine
def get_virtual_machine(self, vm_name): virtual_machine = VirtualMachine( get_virtual_machine(api_client=self.api_client, name=self.get_dynamic_name('vms', vm_name)).__dict__, []) virtual_machine_tags = Tag.list(api_client=self.api_client, resourceId=[virtual_machine.id], listall=True) for key in virtual_machine_tags: if key.key == 'sshport': virtual_machine.ssh_port = int( key.value.encode('ascii', 'ignore')) if key.key == 'sship': virtual_machine.ssh_ip = key.value.encode('ascii', 'ignore') return virtual_machine
def test_01_vc_policy_with_attached_disk_uuid(self): list = list_volumes(self.apiclient, virtualmachineid=self.virtual_machine.id, id=self.volume.id) self.assertIsNotNone( list, "Volume=%s was not attached to vm=%s" % (self.volume.id, self.virtual_machine.id)) tag = Tag.create(self.apiclient, resourceIds=self.virtual_machine.id, resourceType='UserVm', tags={'vc-policy': 'testing_vc-policy'}) vm = list_virtual_machines(self.apiclient, id=self.virtual_machine.id) vm_tags = vm[0].tags volumes = list_volumes( self.apiclient, virtualmachineid=self.virtual_machine.id, ) for v in volumes: self.helper.vc_policy_tags_global_id(v, vm_tags, False)