예제 #1
0
    def post(self, xen_host, vm_ref):
        global_period = self.get_argument("global_period", None, strip=True)
        global_period = int(global_period) * 60 if global_period else None

        cpu_level = self.get_argument("cpu_level", None, strip=True)
        cpu_level = float(float(cpu_level) / 100) if cpu_level else None

        cpu_period = self.get_argument("cpu_period", None, strip=True)
        cpu_period = int(cpu_period) * 60 if cpu_period else None

        network_level = self.get_argument("network_level", None, strip=True)
        network_level = int(network_level) * 1024 if network_level else None

        network_period = self.get_argument("network_period", None, strip=True)
        network_period = int(network_period) * 60 if network_period else None

        disk_level = self.get_argument("disk_level", None, strip=True)
        disk_level = int(disk_level) * 1024 if disk_level else None

        disk_period = self.get_argument("disk_period", None, strip=True)
        disk_period = int(disk_period) * 60 if disk_period else None

        data = {
            "global_period": global_period,
            "cpu_level": cpu_level,
            "cpu_period": cpu_period,
            "network_level": network_level,
            "network_period": network_period,
            "disk_level": disk_level,
            "disk_period": disk_period
        }

        perfmon_xml = generate_perfmon_xml(data)
        perfmon_xml = perfmon_xml.replace("\n", "")
        perfmon_xml = perfmon_xml.replace("\t", "")

        session = get_xenserver_conn(xen_host)
        if session != None:
            try:
                session.xenapi.VM.remove_from_other_config(
                    "OpaqueRef:" + vm_ref, "perfmon")
                session.xenapi.VM.add_to_other_config("OpaqueRef:" + vm_ref,
                                                      "perfmon", perfmon_xml)
            except Exception, e:
                session = get_xenserver_conn(e.details[1])
                session.xenapi.VM.remove_from_other_config(
                    "OpaqueRef:" + vm_ref, "perfmon")
                session.xenapi.VM.add_to_other_config("OpaqueRef:" + vm_ref,
                                                      "perfmon", perfmon_xml)

            vm_info = get_vm_info(xen_host, vm_ref)
            record = session.xenapi.VM.get_record("OpaqueRef:" + vm_ref)
            try:
                perfmon = record['other_config']['perfmon']
            except Exception, e:
                perfmon = None
예제 #2
0
    def post(self, xen_host, vm_ref):
        global_period = self.get_argument("global_period", None, strip=True)
        global_period = int(global_period) * 60 if global_period else None

        cpu_level = self.get_argument("cpu_level", None, strip=True)
        cpu_level = float(float(cpu_level) / 100) if cpu_level else None

        cpu_period = self.get_argument("cpu_period", None, strip=True)
        cpu_period = int(cpu_period) * 60 if cpu_period else None

        network_level = self.get_argument("network_level", None, strip=True)
        network_level = int(network_level) * 1024 if network_level else None

        network_period = self.get_argument("network_period", None, strip=True)
        network_period = int(network_period) * 60 if network_period else None

        disk_level = self.get_argument("disk_level", None, strip=True)
        disk_level = int(disk_level) * 1024 if disk_level else None

        disk_period = self.get_argument("disk_period", None, strip=True)
        disk_period = int(disk_period) * 60 if disk_period else None

        data = {
            "global_period": global_period,
            "cpu_level": cpu_level,
            "cpu_period": cpu_period,
            "network_level": network_level,
            "network_period": network_period,
            "disk_level": disk_level,
            "disk_period": disk_period,
        }

        perfmon_xml = generate_perfmon_xml(data)
        perfmon_xml = perfmon_xml.replace("\n", "")
        perfmon_xml = perfmon_xml.replace("\t", "")

        session = get_xenserver_conn(xen_host)
        if session != None:
            try:
                session.xenapi.VM.remove_from_other_config("OpaqueRef:" + vm_ref, "perfmon")
                session.xenapi.VM.add_to_other_config("OpaqueRef:" + vm_ref, "perfmon", perfmon_xml)
            except Exception, e:
                session = get_xenserver_conn(e.details[1])
                session.xenapi.VM.remove_from_other_config("OpaqueRef:" + vm_ref, "perfmon")
                session.xenapi.VM.add_to_other_config("OpaqueRef:" + vm_ref, "perfmon", perfmon_xml)

            vm_info = get_vm_info(xen_host, vm_ref)
            record = session.xenapi.VM.get_record("OpaqueRef:" + vm_ref)
            try:
                perfmon = record["other_config"]["perfmon"]
            except Exception, e:
                perfmon = None
예제 #3
0
 def get(self, xen_host, vm_ref):
     session = get_xenserver_conn(xen_host)
     if session != None:
         vm_info = get_vm_info(xen_host, vm_ref)
         try:
             record = session.xenapi.VM.get_record("OpaqueRef:" + vm_ref)
         except Exception, e:
             session = get_xenserver_conn(e.details[1])
             record = session.xenapi.VM.get_record("OpaqueRef:" + vm_ref)
         try:
             perfmon = record['other_config']['perfmon']
         except Exception, e:
             perfmon = None
예제 #4
0
 def get(self, xen_host, vm_ref):
     session = get_xenserver_conn(xen_host)
     if session != None:
         vm_info = get_vm_info(xen_host, vm_ref)
         try:
             record = session.xenapi.VM.get_record("OpaqueRef:" + vm_ref)
         except Exception, e:
             session = get_xenserver_conn(e.details[1])
             record = session.xenapi.VM.get_record("OpaqueRef:" + vm_ref)
         try:
             perfmon = record["other_config"]["perfmon"]
         except Exception, e:
             perfmon = None