コード例 #1
0
ファイル: node.py プロジェクト: nagius/cxm
	def get_vm(self, vmname):
		"""Return the VM instance corresponding to the given vmname."""
		try:
			uuid=self.server.xenapi.VM.get_by_name_label(vmname)[0]
		except IndexError:
			raise NotRunningVmError(self.get_hostname(),vmname)
		vm_rec=self.server.xenapi.VM.get_record(uuid)
		vm=VM(vm_rec['name_label'],vm_rec['domid'])
		vm.metrics=self.server.xenapi.VM_metrics.get_record(vm_rec['metrics'])
		return vm
コード例 #2
0
ファイル: node.py プロジェクト: sorinros/cxm
 def get_vm(self, vmname):
     """Return the VM instance corresponding to the given vmname."""
     try:
         uuid = self.server.xenapi.VM.get_by_name_label(vmname)[0]
     except IndexError:
         raise NotRunningVmError(self.get_hostname(), vmname)
     vm_rec = self.server.xenapi.VM.get_record(uuid)
     vm = VM(vm_rec['name_label'], vm_rec['domid'])
     vm.metrics = self.server.xenapi.VM_metrics.get_record(
         vm_rec['metrics'])
     return vm
コード例 #3
0
ファイル: node.py プロジェクト: maddingue/cxm
	def get_vm(self, vmname):
		"""Return the VM instance corresponding to the given vmname."""
		if core.cfg['USESSH']:
			line=self.run("xm list | grep " + vmname + " | awk '{print $1,$2,$3,$4;}'").read()
			if len(line)<1:
				raise ClusterNodeError(self.get_hostname(),ClusterNodeError.VM_NOT_RUNNING,vmname)
			(name, id, ram, vcpu)=line.strip().split()
			return VM(name, id, ram, vcpu)
		else:
			try:
				uuid=self.server.xenapi.VM.get_by_name_label(vmname)[0]
			except IndexError:
				raise ClusterNodeError(self.get_hostname(),ClusterNodeError.VM_NOT_RUNNING,vmname)
			vm_rec=self.server.xenapi.VM.get_record(uuid)
			vm=VM(vm_rec['name_label'],vm_rec['domid'])
			vm.metrics=self.server.xenapi.VM_metrics.get_record(vm_rec['metrics'])
			return vm
コード例 #4
0
ファイル: node.py プロジェクト: maddingue/cxm
	def get_vms(self):
		"""Return the list of VM instance for each running vm."""
		vms=list()
		if core.cfg['USESSH']:
			for line in self.run("xm list | awk '{print $1,$2,$3,$4;}' | tail -n +3").readlines():
				(name, id, ram, vcpu)=line.strip().split()
				vms.append(VM(name, id, ram, vcpu))
		else:
			dom_recs = self.server.xenapi.VM.get_all_records()
			dom_metrics_recs = self.server.xenapi.VM_metrics.get_all_records()
			if core.cfg['DEBUG']: print "DEBUG Xen-Api: ", dom_recs

			for dom_rec in dom_recs.values():
				if dom_rec['name_label'] != "Domain-0":
					vm=VM(dom_rec['name_label'],dom_rec['domid'])
					vm.metrics=dom_metrics_recs[dom_rec['metrics']]
					vms.append(vm)

		return vms
コード例 #5
0
ファイル: node.py プロジェクト: nagius/cxm
		def _get_vms():
			vms=list()
			dom_recs = self.server.xenapi.VM.get_all_records()
			dom_metrics_recs = self.server.xenapi.VM_metrics.get_all_records()
			log.debug("[API]", self.hostname, "dom_recs=", dom_recs)
			log.debug("[API]", self.hostname, "dom_metrics_recs=", dom_metrics_recs)

			for dom_rec in dom_recs.values():
				if dom_rec['name_label'] == "Domain-0":
					continue # Discard Dom0
				if dom_rec['name_label'].startswith("migrating-"):
					continue # Discard migration temporary vm
				if dom_rec['power_state'] == "Halted":
					# power_state could be: Halted, Paused, Running, Suspended, Crashed, Unknown
					continue # Discard non instantiated vm

				vm=VM(dom_rec['name_label'],dom_rec['domid'])
				vm.metrics=dom_metrics_recs[dom_rec['metrics']]
				vms.append(vm)

			return vms
コード例 #6
0
ファイル: node.py プロジェクト: maddingue/cxm
    def get_vms(self):
        """Return the list of VM instance for each running vm."""
        vms = list()
        if core.cfg['USESSH']:
            for line in self.run(
                    "xm list | awk '{print $1,$2,$3,$4;}' | tail -n +3"
            ).readlines():
                (name, id, ram, vcpu) = line.strip().split()
                vms.append(VM(name, id, ram, vcpu))
        else:
            dom_recs = self.server.xenapi.VM.get_all_records()
            dom_metrics_recs = self.server.xenapi.VM_metrics.get_all_records()
            if core.cfg['DEBUG']: print "DEBUG Xen-Api: ", dom_recs

            for dom_rec in dom_recs.values():
                if dom_rec['name_label'] != "Domain-0":
                    vm = VM(dom_rec['name_label'], dom_rec['domid'])
                    vm.metrics = dom_metrics_recs[dom_rec['metrics']]
                    vms.append(vm)

        return vms
コード例 #7
0
ファイル: node.py プロジェクト: maddingue/cxm
 def get_vm(self, vmname):
     """Return the VM instance corresponding to the given vmname."""
     if core.cfg['USESSH']:
         line = self.run("xm list | grep " + vmname +
                         " | awk '{print $1,$2,$3,$4;}'").read()
         if len(line) < 1:
             raise ClusterNodeError(self.get_hostname(),
                                    ClusterNodeError.VM_NOT_RUNNING, vmname)
         (name, id, ram, vcpu) = line.strip().split()
         return VM(name, id, ram, vcpu)
     else:
         try:
             uuid = self.server.xenapi.VM.get_by_name_label(vmname)[0]
         except IndexError:
             raise ClusterNodeError(self.get_hostname(),
                                    ClusterNodeError.VM_NOT_RUNNING, vmname)
         vm_rec = self.server.xenapi.VM.get_record(uuid)
         vm = VM(vm_rec['name_label'], vm_rec['domid'])
         vm.metrics = self.server.xenapi.VM_metrics.get_record(
             vm_rec['metrics'])
         return vm
コード例 #8
0
ファイル: node.py プロジェクト: sorinros/cxm
        def _get_vms():
            vms = list()
            dom_recs = self.server.xenapi.VM.get_all_records()
            dom_metrics_recs = self.server.xenapi.VM_metrics.get_all_records()
            log.debug("[API]", self.hostname, "dom_recs=", dom_recs)
            log.debug("[API]", self.hostname, "dom_metrics_recs=",
                      dom_metrics_recs)

            for dom_rec in dom_recs.values():
                if dom_rec['name_label'] == "Domain-0":
                    continue  # Discard Dom0
                if dom_rec['name_label'].startswith("migrating-"):
                    continue  # Discard migration temporary vm
                if dom_rec['power_state'] == "Halted":
                    # power_state could be: Halted, Paused, Running, Suspended, Crashed, Unknown
                    continue  # Discard non instantiated vm

                vm = VM(dom_rec['name_label'], dom_rec['domid'])
                vm.metrics = dom_metrics_recs[dom_rec['metrics']]
                vms.append(vm)

            return vms