From 95deb0e98842c380893623ece7cf7a9e2024db81 Mon Sep 17 00:00:00 2001 From: Yuvaraja Mariappan Date: Tue, 9 Feb 2016 12:10:31 -0800 Subject: [PATCH] code is added to choose the harware version based on the esxi os server. Change-Id: I8de9e0f3f5a21d090ad13213a6e70eea200b1eec Closes-bug: #1543762 --- fabfile/tasks/vcenter_prov.py | 4 ++-- fabfile/tasks/vmware.py | 14 ++++++++++++++ fabfile/templates/compute_vmx_template.py | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/fabfile/tasks/vcenter_prov.py b/fabfile/tasks/vcenter_prov.py index 11f287f4e..1f54ad0e7 100755 --- a/fabfile/tasks/vcenter_prov.py +++ b/fabfile/tasks/vcenter_prov.py @@ -170,7 +170,7 @@ def add_sr_iov_nics(self, si, esxi_info, host, dv_port_name, vm_name): if out.failed: raise Exception("Unable to add sriov interface for physical nic %s on esxi host %s" %(sr_iov_nic, ip)) esxi_version_info = str(out) - esxi_version = esxi_version_info.split()[2] + esxi_version = esxi_version_info.split()[2][:3] cmd = "vmkchdev -l | grep %s" %sr_iov_nic out = run(cmd) if out.failed: @@ -179,7 +179,7 @@ def add_sr_iov_nics(self, si, esxi_info, host, dv_port_name, vm_name): if len(nic_info) == 0: raise Exception("Unable to add sriov interface for physical nic %s on esxi host %s" %(sr_iov_nic, ip)) pci_id = nic_info.split()[0] - if (esxi_version == '5.5.0'): + if (esxi_version == '5.5'): pci_id = pci_id[5:] devices = [] nicspec = self.pyVmomi.vim.vm.device.VirtualDeviceSpec() diff --git a/fabfile/tasks/vmware.py b/fabfile/tasks/vmware.py index b29c304f9..c732c9675 100644 --- a/fabfile/tasks/vmware.py +++ b/fabfile/tasks/vmware.py @@ -65,6 +65,19 @@ def create_vmx (esxi_host, vm_name): vm_mac = esxi_host['contrail_vm']['mac'] assert vm_mac, "MAC address for contrail-compute-vm must be specified" + cmd = "vmware -v" + out = run(cmd) + if out.failed: + raise Exception("Unable to get the vmware version") + esxi_version_info = str(out) + esxi_version = esxi_version_info.split()[2][:3] + if (esxi_version == '5.5'): + hw_version = 10 + elif (esxi_version == '6.0'): + hw_version = 11 + else: + hw_version = 9 + if mode is 'vcenter': eth0_type = "vmxnet3" ext_params = compute_vmx_template.vcenter_ext_template @@ -77,6 +90,7 @@ def create_vmx (esxi_host, vm_name): ext_params += data_intf template_vals = { '__vm_name__' : vm_name, + '__hw_version__' : hw_version, '__vm_mac__' : vm_mac, '__fab_pg__' : fab_pg, '__eth0_type__' : eth0_type, diff --git a/fabfile/templates/compute_vmx_template.py b/fabfile/templates/compute_vmx_template.py index 4906d1f94..875872615 100644 --- a/fabfile/templates/compute_vmx_template.py +++ b/fabfile/templates/compute_vmx_template.py @@ -3,7 +3,7 @@ template = string.Template( '''.encoding = "UTF-8" config.version = "8" -virtualHW.version = "10" +virtualHW.version = "$__hw_version__" vmci0.present = "TRUE" hpet0.present = "TRUE" nvram = "$__vm_name__.nvram"