📄 xendapi.py
字号:
def _funcs(): return [getattr(XendAPI, x) for x in XendAPI.__dict__] return xen_api_success([x.api for x in _funcs() if hasattr(x, 'api')]) # Xen API: Class host_CPU # ---------------------------------------------------------------- host_cpu_attr_ro = ['host', 'number', 'vendor', 'speed', 'modelname', 'stepping', 'flags', 'utilisation', 'features'] # attributes def _host_cpu_get(self, ref, field): return xen_api_success( XendNode.instance().get_host_cpu_field(ref, field)) def host_cpu_get_host(self, _, ref): return xen_api_success(XendNode.instance().uuid) def host_cpu_get_features(self, _, ref): return self._host_cpu_get(ref, 'features') def host_cpu_get_number(self, _, ref): return self._host_cpu_get(ref, 'number') def host_cpu_get_vendor(self, _, ref): return self._host_cpu_get(ref, 'vendor') def host_cpu_get_speed(self, _, ref): return self._host_cpu_get(ref, 'speed') def host_cpu_get_modelname(self, _, ref): return self._host_cpu_get(ref, 'modelname') def host_cpu_get_stepping(self, _, ref): return self._host_cpu_get(ref, 'stepping') def host_cpu_get_flags(self, _, ref): return self._host_cpu_get(ref, 'flags') def host_cpu_get_utilisation(self, _, ref): return xen_api_success(XendNode.instance().get_host_cpu_load(ref)) # object methods def host_cpu_get_record(self, _, ref): node = XendNode.instance() record = dict([(f, node.get_host_cpu_field(ref, f)) for f in self.host_cpu_attr_ro if f not in ['uuid', 'host', 'utilisation']]) record['uuid'] = ref record['host'] = node.uuid record['utilisation'] = node.get_host_cpu_load(ref) return xen_api_success(record) # class methods def host_cpu_get_all(self, session): return xen_api_success(XendNode.instance().get_host_cpu_refs()) # Xen API: Class host_metrics # ---------------------------------------------------------------- host_metrics_attr_ro = ['memory_total', 'memory_free', 'last_updated'] host_metrics_attr_rw = [] host_metrics_methods = [] def host_metrics_get_all(self, _): return xen_api_success([XendNode.instance().host_metrics_uuid]) def _host_metrics_get(self, ref, f): return xen_api_success(getattr(node, f)()) def host_metrics_get_record(self, _, ref): return xen_api_success({ 'uuid' : ref, 'memory_total' : self._host_metrics_get_memory_total(), 'memory_free' : self._host_metrics_get_memory_free(), 'last_updated' : now(), }) def host_metrics_get_memory_total(self, _1, _2): return xen_api_success(self._host_metrics_get_memory_total()) def host_metrics_get_memory_free(self, _1, _2): return xen_api_success(self._host_metrics_get_memory_free()) def host_metrics_get_last_updated(self, _1, _2): return xen_api_success(now()) def _host_metrics_get_memory_total(self): node = XendNode.instance() return node.xc.physinfo()['total_memory'] * 1024 def _host_metrics_get_memory_free(self): node = XendNode.instance() return node.xc.physinfo()['free_memory'] * 1024 # Xen API: Class VM # ---------------------------------------------------------------- VM_attr_ro = ['power_state', 'resident_on', 'consoles', 'VIFs', 'VBDs', 'VTPMs', 'tools_version', 'domid', 'is_control_domain', 'metrics', 'crash_dumps', ] VM_attr_rw = ['name_label', 'name_description', 'user_version', 'is_a_template', 'auto_power_on', 'memory_dynamic_max', 'memory_dynamic_min', 'memory_static_max', 'memory_static_min', 'VCPUs_max', 'VCPUs_at_startup', 'VCPUs_params', 'actions_after_shutdown', 'actions_after_reboot', 'actions_after_suspend', 'actions_after_crash', 'PV_bootloader', 'PV_kernel', 'PV_ramdisk', 'PV_args', 'PV_bootloader_args', 'HVM_boot_policy', 'HVM_boot_params', 'platform', 'PCI_bus', 'other_config', 'security_label'] VM_methods = [('clone', 'VM'), ('start', None), ('pause', None), ('unpause', None), ('clean_shutdown', None), ('clean_reboot', None), ('hard_shutdown', None), ('hard_reboot', None), ('suspend', None), ('resume', None), ('send_sysrq', None), ('set_VCPUs_number_live', None), ('add_to_HVM_boot_params', None), ('remove_from_HVM_boot_params', None), ('add_to_VCPUs_params', None), ('add_to_VCPUs_params_live', None), ('remove_from_VCPUs_params', None), ('add_to_platform', None), ('remove_from_platform', None), ('add_to_other_config', None), ('remove_from_other_config', None), ('save', None), ('set_memory_dynamic_max_live', None), ('set_memory_dynamic_min_live', None), ('send_trigger', None), ('migrate', None), ('destroy', None)] VM_funcs = [('create', 'VM'), ('restore', None), ('get_by_name_label', 'Set(VM)')] # parameters required for _create() VM_attr_inst = [ 'name_label', 'name_description', 'user_version', 'is_a_template', 'memory_static_max', 'memory_dynamic_max', 'memory_dynamic_min', 'memory_static_min', 'VCPUs_max', 'VCPUs_at_startup', 'VCPUs_params', 'actions_after_shutdown', 'actions_after_reboot', 'actions_after_suspend', 'actions_after_crash', 'PV_bootloader', 'PV_kernel', 'PV_ramdisk', 'PV_args', 'PV_bootloader_args', 'HVM_boot_policy', 'HVM_boot_params', 'platform', 'PCI_bus', 'other_config', 'security_label'] def VM_get(self, name, session, vm_ref): return xen_api_success( XendDomain.instance().get_vm_by_uuid(vm_ref).info[name]) def VM_set(self, name, session, vm_ref, value): xd = XendDomain.instance() dominfo = xd.get_vm_by_uuid(vm_ref) dominfo.info[name] = value return self._VM_save(dominfo) def _VM_save(self, dominfo): XendDomain.instance().managed_config_save(dominfo) return xen_api_success_void() # attributes (ro) def VM_get_power_state(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_power_state()) def VM_get_resident_on(self, session, vm_ref): return xen_api_success(XendNode.instance().uuid) def VM_get_memory_static_max(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_memory_static_max()) def VM_get_memory_static_min(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_memory_static_min()) def VM_get_VIFs(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_vifs()) def VM_get_VBDs(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_vbds()) def VM_get_VTPMs(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_vtpms()) def VM_get_consoles(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_consoles()) def VM_get_tools_version(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return dom.get_tools_version() def VM_get_metrics(self, _, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_metrics()) def VM_get_VCPUs_max(self, _, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_todo() def VM_get_VCPUs_at_startup(self, _, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_todo() # attributes (rw) def VM_get_name_label(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.getName()) def VM_get_name_description(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_todo() def VM_get_user_version(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_todo() def VM_get_is_a_template(self, session, ref): return self.VM_get('is_a_template', session, ref) def VM_get_memory_dynamic_max(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_memory_dynamic_max()) def VM_get_memory_dynamic_min(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_memory_dynamic_min()) def VM_get_VCPUs_params(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_vcpus_params()) def VM_get_actions_after_shutdown(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_on_shutdown()) def VM_get_actions_after_reboot(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_on_reboot()) def VM_get_actions_after_suspend(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_on_suspend()) def VM_get_actions_after_crash(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_on_crash()) def VM_get_PV_bootloader(self, session, vm_ref): return self.VM_get('PV_bootloader', session, vm_ref) def VM_get_PV_kernel(self, session, vm_ref): return self.VM_get('PV_kernel', session, vm_ref) def VM_get_PV_ramdisk(self, session, vm_ref): return self.VM_get('PV_ramdisk', session, vm_ref) def VM_get_PV_args(self, session, vm_ref): return self.VM_get('PV_args', session, vm_ref) def VM_get_PV_bootloader_args(self, session, vm_ref): return self.VM_get('PV_bootloader_args', session, vm_ref) def VM_get_HVM_boot_policy(self, session, vm_ref): return self.VM_get('HVM_boot_policy', session, vm_ref) def VM_get_HVM_boot_params(self, session, vm_ref): return self.VM_get('HVM_boot_params', session, vm_ref) def VM_get_platform(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return xen_api_success(dom.get_platform()) def VM_get_PCI_bus(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) return dom.get_pci_bus() def VM_set_PCI_bus(self, session, vm_ref, val): return self.VM_set('PCI_bus', session, vm_ref, val) def VM_get_other_config(self, session, vm_ref): return self.VM_get('other_config', session, vm_ref) def VM_get_domid(self, _, ref): domid = XendDomain.instance().get_vm_by_uuid(ref).getDomid()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -