def setUp(self): # Get azure mode and choose test cases self.azure_mode = self.params.get('azure_mode', '*/azure_mode/*') self.log.debug("AZURE_MODE: %s", self.azure_mode) if self.name.name.split(':')[-1] not in self.params.get('cases', '*/azure_mode/*'): self.skip("Skip case %s in Azure Mode %s" % (self.name.name, self.azure_mode)) # Login Azure and change the mode self.azure_username = self.params.get('username', '*/AzureSub/*') self.azure_password = self.params.get('password', '*/AzureSub/*') azure_cli_common.login_azure(username=self.azure_username, password=self.azure_password) azure_cli_common.set_config_mode(self.azure_mode) # Prepare the vm parameters and create a vm self.vm_params = dict() self.vm_params["username"] = self.params.get('username', '*/VMUser/*') self.vm_params["password"] = self.params.get('password', '*/VMUser/*') self.vm_params["new_username"] = self.params.get('new_username', '*/VMUser/*') self.vm_params["new_password"] = self.params.get('new_password', '*/VMUser/*') self.vm_params["VMSize"] = self.params.get('vm_size', '*/azure_mode/*') self.vm_params["VMName"] = self.params.get('vm_name', '*/azure_mode/*') self.vm_params["VMName"] += self.vm_params["VMSize"].split('_')[-1].lower() self.vm_params["Location"] = self.params.get('location', '*/resourceGroup/*') self.vm_params["region"] = self.params.get('region', '*/resourceGroup/*') self.vm_params["StorageAccountName"] = self.params.get('storage_account', '*/resourceGroup/*') self.vm_params["Container"] = self.params.get('container', '*/resourceGroup/*') self.vm_params["DiskBlobName"] = self.params.get('name', '*/DiskBlob/*') self.vm_params["PublicPort"] = self.params.get('public_port', '*/network/*') if self.azure_mode == "asm": if "resize_vm" in self.name.name: self.skip("No Azure CLI in ASM mode that support this feature. Skip.") self.vm_params["Image"] = self.params.get('name', '*/Image/*') self.vm_params["DNSName"] = self.vm_params["VMName"] + ".cloudapp.net" self.vm_test01 = azure_asm_vm.VMASM(self.vm_params["VMName"], self.vm_params["VMSize"], self.vm_params["username"], self.vm_params["password"], self.vm_params) else: self.vm_params["DNSName"] = self.vm_params["VMName"] + "." + self.vm_params["region"] + ".cloudapp.azure.com" self.vm_params["ResourceGroupName"] = self.params.get('rg_name', '*/resourceGroup/*') self.vm_params["URN"] = "https://%s.blob.core.windows.net/%s/%s" % (self.vm_params["StorageAccountName"], self.vm_params["Container"], self.vm_params["DiskBlobName"]) self.vm_params["NicName"] = self.vm_params["VMName"] self.vm_params["PublicIpName"] = self.vm_params["VMName"] self.vm_params["PublicIpDomainName"] = self.vm_params["VMName"] self.vm_params["VnetName"] = self.vm_params["VMName"] self.vm_params["VnetSubnetName"] = self.vm_params["VMName"] self.vm_params["VnetAddressPrefix"] = self.params.get('vnet_address_prefix', '*/network/*') self.vm_params["VnetSubnetAddressPrefix"] = self.params.get('vnet_subnet_address_prefix', '*/network/*') self.vm_test01 = azure_arm_vm.VMARM(self.vm_params["VMName"], self.vm_params["VMSize"], self.vm_params["username"], self.vm_params["password"], self.vm_params) # azure_cli_common.host_command("cat /dev/zero | ssh-keygen -q -N ''", ignore_status=True) # myname = azure_cli_common.host_command("whoami").strip('\n') # self.host_pubkey_file = "/home/%s/.ssh/id_rsa.pub" % myname self.host_pubkey_file = azure_cli_common.get_sshkey_file() with open(self.host_pubkey_file, 'r') as hf: self.ssh_key_string = hf.read().strip('\n') self.log.debug(self.ssh_key_string) self.log.debug("Create the vm %s", self.vm_params["VMName"]) # If vm doesn't exist, create it. If it exists, start it. self.vm_test01.vm_update() if not self.vm_test01.exists(): self.vm_test01.vm_create(self.vm_params) self.vm_test01.wait_for_running() else: if not self.vm_test01.is_running(): self.vm_test01.start() self.vm_test01.wait_for_running() if not self.vm_test01.verify_alive(): self.error("VM %s is not available. Exit." % self.vm_params["VMName"]) self.project = self.params.get('Project', '*/Common/*') self.conf_file = "/etc/waagent.conf" # Increase sudo password timeout self.vm_test01.modify_value("Defaults timestamp_timeout", "-1", "/etc/sudoers", "=")
def setUp(self): # Get azure mode and choose test cases self.azure_mode = self.params.get('azure_mode', '*/azure_mode/*') self.log.debug("AZURE_MODE: %s", self.azure_mode) if self.name.name.split(':')[-1] not in self.params.get('cases', '*/azure_mode/*'): self.skip("Skip case %s in Azure Mode %s" % (self.name.name, self.azure_mode)) # Login Azure and change the mode self.azure_username = self.params.get('username', '*/AzureSub/*') self.azure_password = self.params.get('password', '*/AzureSub/*') azure_cli_common.login_azure(username=self.azure_username, password=self.azure_password) azure_cli_common.set_config_mode(self.azure_mode) # Prepare the vm parameters and create a vm self.vm_params = dict() self.vm_params["username"] = self.params.get('username', '*/VMUser/*') self.vm_params["password"] = self.params.get('password', '*/VMUser/*') self.vm_params["VMSize"] = self.params.get('vm_size', '*/azure_mode/*') self.vm_params["VMName"] = self.params.get('vm_name', '*/azure_mode/*') self.vm_params["VMName"] += self.vm_params["VMSize"].split('_')[-1].lower() self.vm_params["Location"] = self.params.get('location', '*/resourceGroup/*') self.vm_params["region"] = self.params.get('region', '*/resourceGroup/*') self.vm_params["StorageAccountName"] = self.params.get('storage_account', '*/resourceGroup/*') self.vm_params["Container"] = self.params.get('container', '*/resourceGroup/*') self.vm_params["DiskBlobName"] = self.params.get('name', '*/DiskBlob/*') self.vm_params["PublicPort"] = self.params.get('public_port', '*/network/*') if "check_sshkey" in self.name.name: self.vm_params["VMName"] += "key" self.vm_params["password"] = None self.host_pubkey_file = azure_cli_common.get_sshkey_file() self.vm_params["ssh_key"] = self.host_pubkey_file if self.azure_mode == "asm": self.vm_params["Image"] = self.params.get('name', '*/Image/*') self.vm_params["DNSName"] = self.vm_params["VMName"] + ".cloudapp.net" self.vm_test01 = azure_asm_vm.VMASM(self.vm_params["VMName"], self.vm_params["VMSize"], self.vm_params["username"], self.vm_params["password"], self.vm_params) else: self.vm_params["DNSName"] = self.vm_params["VMName"] + "." + self.vm_params[ "region"] + ".cloudapp.azure.com" self.vm_params["ResourceGroupName"] = self.params.get('rg_name', '*/resourceGroup/*') self.vm_params["URN"] = "https://%s.blob.core.windows.net/%s/%s" % (self.vm_params["StorageAccountName"], self.vm_params["Container"], self.vm_params["DiskBlobName"]) self.vm_params["NicName"] = self.vm_params["VMName"] self.vm_params["PublicIpName"] = self.vm_params["VMName"] self.vm_params["PublicIpDomainName"] = self.vm_params["VMName"] self.vm_params["VnetName"] = self.vm_params["VMName"] self.vm_params["VnetSubnetName"] = self.vm_params["VMName"] self.vm_params["VnetAddressPrefix"] = self.params.get('vnet_address_prefix', '*/network/*') self.vm_params["VnetSubnetAddressPrefix"] = self.params.get('vnet_subnet_address_prefix', '*/network/*') self.vm_test01 = azure_arm_vm.VMARM(self.vm_params["VMName"], self.vm_params["VMSize"], self.vm_params["username"], self.vm_params["password"], self.vm_params) self.log.debug("Create the vm %s", self.vm_params["VMName"]) # If vm doesn't exist, create it. If it exists, start it. self.vm_test01.vm_update() if not self.vm_test01.exists(): self.vm_test01.vm_create(self.vm_params) self.vm_test01.wait_for_running() else: if not self.vm_test01.is_running(): self.vm_test01.start() self.vm_test01.wait_for_running() if "check_sshkey" in self.name.name: self.log.debug("Case name is check_sshkey. Don't verify alive during setUp.") return if not self.vm_test01.verify_alive(): self.error("VM %s is not available. Exit." % self.vm_params["VMName"]) # self.project = float(self.vm_test01.get_output("cat /etc/redhat-release|awk '{print $7}'", sudo=False)) self.project = self.params.get('Project', '*/Common/*') self.conf_file = "/etc/waagent.conf" # Increase sudo password timeout self.vm_test01.modify_value("Defaults timestamp_timeout", "-1", "/etc/sudoers", "=")