def test_0090_vm_nic_delete(self): """Test the method delete_nic in vm.py This test passes if a nic is deleted successfully. """ vm = VM(TestVM._client, href=TestVM._test_vapp_first_vm_href) nics = vm.list_nics() self.assertTrue(len(nics) == 2) nic_to_delete = next(i[VmNicProperties.INDEX.value] for i in nics if i[VmNicProperties.PRIMARY.value]) task = vm.delete_nic(int(nic_to_delete)) result = TestVM._client.get_task_monitor().wait_for_success(task=task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) vm.reload() self.assertTrue(len(vm.list_nics()) == 1)
def create_vm(vms, source_vapp_resource, vm_cfg, master_name, master=False): try: global lastMasterIp vm = vapp.get_vm(vm_cfg['name']) vm_obj = VM(client, resource=vm) ip = vm_obj.list_nics()[0]['ip_address'].ljust(20) if master: #gen_key(vm_cfg['name'],os.environ['SSH_USERNAME'],os.environ['SSH_PASSWORD'], ip) lastMasterIp = ip if vm_obj.is_powered_on() == True: print(" VM '{0}' ... OK".format(vm_cfg['name'])) else: print(" VM '{0}' ... DOWN -> starting ...\r".format( vm_cfg['name']), end='') result = vm_obj.power_on() handle_task(client, result) print(" VM '{0}' ... UP {1}".format(vm_cfg['name'], "".ljust(20))) except EntityNotFoundException: print(" VM '{0}' ... NONE -> marked for creation ...".format( vm_cfg['name'])) spec = { 'source_vm_name': vm_cfg['source_vm_name'], 'vapp': source_vapp_resource } spec['target_vm_name'] = vm_cfg['name'] spec['hostname'] = vm_cfg['hostname'] vms.append(spec)
def deploy_local_key(vms, source_vapp_resource, vm_cfg, master_name): try: vm = vapp.get_vm(vm_cfg['name']) vm_obj = VM(client, resource=vm) ip = vm_obj.list_nics()[0]['ip_address'].ljust(20) push_local_key(os.environ['SSH_USERNAME'], os.environ['SSH_PASSWORD'], ip, master_name) except EntityNotFoundException: print(" Cannot deploy certificate on VM '{0}'".format( vm_cfg['name']))
def generate_key(vms, source_vapp_resource, vm_cfg): try: global lastMasterIp vm = vapp.get_vm(vm_cfg['name']) vm_obj = VM(client, resource=vm) ip = vm_obj.list_nics()[0]['ip_address'].ljust(20) lastMasterIp = ip gen_key(vm_cfg['name'], os.environ['SSH_USERNAME'], os.environ['SSH_PASSWORD'], ip) except EntityNotFoundException: print(" Cannot generate certificate on VM '{0}'".format( vm_cfg['name']))
def test_0080_vm_nic_operations(self): """Test the method add_nic vm.py. This test passes if a nic is created successfully. """ vm = VM(TestVM._client, href=TestVM._test_vapp_first_vm_href) task = vm.add_nic(NetworkAdapterType.E1000.value, True, True, 'none', IpAddressMode.NONE.value, None) result = TestVM._client.get_task_monitor().wait_for_success(task=task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) vm.reload() self.assertTrue(len(vm.list_nics()) == 2)
def deploy_tool(vms, source_vapp_resource, vm_cfg, master_name): try: vm = vapp.get_vm(vm_cfg['name']) vm_obj = VM(client, resource=vm) ip = vm_obj.list_nics()[0]['ip_address'].ljust(20) upgrade_os(os.environ['SSH_USERNAME'], os.environ['SSH_PASSWORD'], ip, master_name) install_sshpass(os.environ['SSH_USERNAME'], os.environ['SSH_PASSWORD'], ip, master_name) install_git(os.environ['SSH_USERNAME'], os.environ['SSH_PASSWORD'], ip, master_name) except EntityNotFoundException: print(" Cannot deploy tool on VM '{0}'".format(vm_cfg['name']))
while (vapp.get_all_vms() is None or len(vapp.get_all_vms()) < len(cfg.vapp['vms'])): print(" VMs ... {0}\r".format("waiting full start ...".ljust(20)), end='') vapp.reload() for vm in vapp.get_all_vms(): vm_obj = VM(client, resource=vm) while (vm_obj.is_powered_on() == False): print(" VM '{0}' ... {1}\r".format(vm.get('name'), "DOWN (waiting)".ljust(20)), end='') vm_obj.reload() time.sleep(5) print(" VM '{0}' ... {1}\r".format(vm.get('name'), "UP").ljust(20), end='') while (vm_obj.list_nics() is None or (len(vm_obj.list_nics()) == 0) or ('ip_address' not in vm_obj.list_nics()[0].keys())): print(" VM '{0}' ... {1} - IP = {2}\r".format( vm.get('name'), "UP", "... (waiting)".ljust(20)), end='') vm_obj.reload() time.sleep(5) print(" VM '{0}' ... {1} - IP = {2}".format( vm.get('name'), "UP", vm_obj.list_nics()[0]['ip_address'].ljust(20))) vapp.reload() vm_obj.reload() # Deploying tool & keys for vm_cfg in cfg.vapp['vms']:
print("Prepare Host.ini file ...") hostconfig = configparser.ConfigParser(allow_no_value=True) hostconfig['all:vars'] = { 'ansible_connection': 'ssh', 'ansible_user': os.environ['SSH_USERNAME'], 'ansible_ssh_private_key_file': '~/.ssh/id_ansible_rsa', 'ansible_become_pass': os.environ['SSH_PASSWORD'] } for vm_cfg in cfg.vapp['vms']: try: vm_resource = vapp.get_vm(vm_cfg['name']) vm_obj = VM(client, resource=vm_resource) print("Adding Master {0} -> {1}".format( vm_resource.get('name'), vm_obj.list_nics()[0]['ip_address'].ljust(20))) if not hostconfig.has_section('master'): hostconfig.add_section('master') hostconfig.set("master", vm_obj.list_nics()[0]['ip_address'].ljust(20)) for vm_slave_cfg in vm_cfg['slaves']: try: vm_resource = vapp.get_vm(vm_slave_cfg['name']) vm_slave_obj = VM(client, resource=vm_resource) if not hostconfig.has_section('node'): hostconfig.add_section('node') print("Adding Node {0} -> {1}".format( vm_resource.get('name'), vm_slave_obj.list_nics()[0]['ip_address'].ljust(20))) hostconfig.set( "node", vm_slave_obj.list_nics()[0]['ip_address'].ljust(20))