示例#1
0
    def get(self, host, vm_ref):
        playback_server_ip = settings.VNC_PLAYBACK_SERVER_IP
        playback_server_port = str(settings.VNC_PLAYBACK_SERVER_PORT)
        playback_server = playback_server_ip + ":" + playback_server_port

        http_client = AsyncHTTPClient()
        query = "?host=%s&vm_uuid=%s" % (host, vm_ref)
        url = "http://%s/serv/listfile" % playback_server + query
        try:
            response = yield http_client.fetch(url)
        except Exception, e:
            vm_info = get_vm_info(host, vm_ref)
            if e.code == 404 or e.code == 500:
                self.render(
                    "virtualization/xenserver_console_playback.html",
                    files=None,
                    host_address=host,
                    vm_info=vm_info,
                    vm_ref=vm_ref,
                    status=1,
                    playback_server=None,
                )
                return
            else:
                self.render(
                    "virtualization/xenserver_console_playback.html",
                    files=None,
                    host_address=host,
                    vm_info=vm_info,
                    vm_ref=vm_ref,
                    status=2,
                    playback_server=None,
                )
                return
示例#2
0
    def get(self, host, vm_ref):
        playback_server_ip = settings.VNC_PLAYBACK_SERVER_IP
        playback_server_port = str(settings.VNC_PLAYBACK_SERVER_PORT)
        playback_server = playback_server_ip + ":" + playback_server_port

        http_client = AsyncHTTPClient()
        query = "?host=%s&vm_uuid=%s" % (host, vm_ref)
        url = "http://%s/serv/listfile" % playback_server + query
        try:
            response = yield http_client.fetch(url)
        except Exception, e:
            vm_info = get_vm_info(host, vm_ref)
            if e.code == 404 or e.code == 500:
                self.render("virtualization/xenserver_console_playback.html",
                            files=None,
                            host_address=host,
                            vm_info=vm_info,
                            vm_ref=vm_ref,
                            status=1,
                            playback_server=None)
                return
            else:
                self.render("virtualization/xenserver_console_playback.html",
                            files=None,
                            host_address=host,
                            vm_info=vm_info,
                            vm_ref=vm_ref,
                            status=2,
                            playback_server=None)
                return
示例#3
0
 def get(self, host, vm_ref):
     vm_info = get_vm_info(host, vm_ref)
     self.render("virtualization/xenserver_console.html",
                 novnc_host=settings.NOVNC_SERVER_IP,
                 novnc_port=settings.NOVNC_SERVER_PORT,
                 vm_ref=vm_ref,
                 host_address=host,
                 vm_info=vm_info)
示例#4
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
示例#5
0
 def get(self, host, vm_ref):
     vm_info = get_vm_info(host, vm_ref)
     self.render(
         "virtualization/xenserver_console.html",
         novnc_host=settings.NOVNC_SERVER_IP,
         novnc_port=settings.NOVNC_SERVER_PORT,
         vm_ref=vm_ref,
         host_address=host,
         vm_info=vm_info,
     )
示例#6
0
 def on_parse_finished(self, data):
     vm_record = get_vm_info_by_uuid(self.host, self.uuid)
     if not vm_record:
         control_domain_ref = get_control_domain(self.host)
         control_domain_ref = control_domain_ref.split(":")[1]
         vm_record = get_vm_info(self.host, control_domain_ref)
     vm_name = vm_record['name_label']
     
     self.render("virtualization/xenserver_vm_chart.html",
                 data=data, xenserver_address=self.host, convert_field=convert_field,
                 vm_uuid=self.uuid, chart_type=self.ttype, vm_name=vm_name)
示例#7
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
示例#8
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
示例#9
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
示例#10
0
    def on_parse_finished(self, data):
        vm_record = get_vm_info_by_uuid(self.host, self.uuid)
        if not vm_record:
            control_domain_ref = get_control_domain(self.host)
            control_domain_ref = control_domain_ref.split(":")[1]
            vm_record = get_vm_info(self.host, control_domain_ref)
        vm_name = vm_record['name_label']

        self.render("virtualization/xenserver_vm_chart.html",
                    data=data,
                    xenserver_address=self.host,
                    convert_field=convert_field,
                    vm_uuid=self.uuid,
                    chart_type=self.ttype,
                    vm_name=vm_name)
示例#11
0
            vm_info = get_vm_info(host, vm_ref)
            if e.code == 404 or e.code == 500:
                self.render("virtualization/xenserver_console_playback.html",
                            files=None,
                            host_address=host,
                            vm_info=vm_info,
                            vm_ref=vm_ref,
                            status=1,
                            playback_server=None)
                return
            else:
                self.render("virtualization/xenserver_console_playback.html",
                            files=None,
                            host_address=host,
                            vm_info=vm_info,
                            vm_ref=vm_ref,
                            status=2,
                            playback_server=None)
                return
        else:
            vm_info = get_vm_info(host, vm_ref)
            result = json.loads(response.body)
            files = result['data']
            self.render("virtualization/xenserver_console_playback.html",
                        files=files,
                        host_address=host,
                        vm_info=vm_info,
                        vm_ref=vm_ref,
                        status=0,
                        playback_server=playback_server)
示例#12
0
                    vm_info=vm_info,
                    vm_ref=vm_ref,
                    status=1,
                    playback_server=None,
                )
                return
            else:
                self.render(
                    "virtualization/xenserver_console_playback.html",
                    files=None,
                    host_address=host,
                    vm_info=vm_info,
                    vm_ref=vm_ref,
                    status=2,
                    playback_server=None,
                )
                return
        else:
            vm_info = get_vm_info(host, vm_ref)
            result = json.loads(response.body)
            files = result["data"]
            self.render(
                "virtualization/xenserver_console_playback.html",
                files=files,
                host_address=host,
                vm_info=vm_info,
                vm_ref=vm_ref,
                status=0,
                playback_server=playback_server,
            )