本文整理汇总了Python中karesansui.lib.virt.virt.KaresansuiVirtConnection.list_used_mac_addr方法的典型用法代码示例。如果您正苦于以下问题:Python KaresansuiVirtConnection.list_used_mac_addr方法的具体用法?Python KaresansuiVirtConnection.list_used_mac_addr怎么用?Python KaresansuiVirtConnection.list_used_mac_addr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类karesansui.lib.virt.virt.KaresansuiVirtConnection
的用法示例。
在下文中一共展示了KaresansuiVirtConnection.list_used_mac_addr方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Guest
# 需要导入模块: from karesansui.lib.virt.virt import KaresansuiVirtConnection [as 别名]
# 或者: from karesansui.lib.virt.virt.KaresansuiVirtConnection import list_used_mac_addr [as 别名]
#.........这里部分代码省略.........
else:
self.view.exports = exports
self.view.guests = guests
return True
finally:
#self.kvc.close()
pass # libvirt connection scope --> Guest#_post()
@auth
def _POST(self, *param, **params):
host_id = self.chk_hostby1(param)
if host_id is None: return web.notfound()
model = findbyhost1(self.orm, host_id)
uris = available_virt_uris()
if model.attribute == 0 and model.hypervisor == 1:
uri = uris["XEN"]
elif model.attribute == 0 and model.hypervisor == 2:
uri = uris["KVM"]
else:
uri = None
if not validates_guest_add(self):
return web.badrequest(self.view.alert)
try:
try:
self.kvc = KaresansuiVirtConnection(uri)
active_guests = self.kvc.list_active_guest()
inactive_guests = self.kvc.list_inactive_guest()
used_graphics_ports = self.kvc.list_used_graphics_port()
used_mac_addrs = self.kvc.list_used_mac_addr()
mem_info = self.kvc.get_mem_info()
if is_param(self.input, "vm_mem_size"):
if mem_info['host_free_mem'] < int(self.input.vm_mem_size):
return web.badrequest(_("Space not enough to allocate guest memory."))
if is_param(self.input, "pool_type") and \
self.input.pool_type != "block" and \
is_param(self.input, "pool_dir"):
target_path = self.kvc.get_storage_pool_targetpath(self.input.pool_dir)
if target_path: # disk
if not chk_create_disk(target_path, self.input.vm_disk_size):
partition = get_partition_info(target_path, header=False)
return web.badrequest(_("No space available to create disk image in '%s' partition.") % partition[5][0])
except:
raise
finally:
del self.kvc
# Check on whether value has already been used
# Guest OS
if (self.input.domain_name in active_guests) \
or (self.input.domain_name in inactive_guests):
return web.conflict(web.ctx.path, "Guest OS is already there.")
# Graphics Port Number
if(int(self.input.vm_graphics_port) in used_graphics_ports):
return web.conflict(web.ctx.path, "Graphics Port is already there.")
# MAC Address
if(self.input.vm_mac in used_mac_addrs):
return web.conflict(web.ctx.path, "MAC Address is already there.")
uuid = string_from_uuid(generate_uuid())
示例2: _POST
# 需要导入模块: from karesansui.lib.virt.virt import KaresansuiVirtConnection [as 别名]
# 或者: from karesansui.lib.virt.virt.KaresansuiVirtConnection import list_used_mac_addr [as 别名]
#.........这里部分代码省略.........
if not src_pools:
self.view.alert = _("Source storage pool is not found.")
self.logger.debug(self.view.alert)
return web.badrequest(self.view.alert)
for src_pool in src_pools :
src_pool_type = kvc.get_storage_pool_type(src_pool)
if src_pool_type != 'dir':
self.view.alert = _("'%s' disk contains the image.") % src_pool_type
self.logger.debug(self.view.alert)
return web.badrequest(self.view.alert)
# disk check
target_pool = kvc.get_storage_pool_name_bydomain(domname, 'os')[0]
target_path = kvc.get_storage_pool_targetpath(target_pool)
src_disk = "%s/%s/images/%s.img" % \
(target_path, options["src-name"], options["src-name"])
s_size = os.path.getsize(src_disk) / (1024 * 1024) # a unit 'MB'
if os.access(target_path, os.F_OK):
if chk_create_disk(target_path, s_size) is False:
partition = get_partition_info(target_path, header=False)
self.view.alert = _("No space available to create disk image in '%s' partition.") % partition[5][0]
self.logger.debug(self.view.alert)
return web.badrequest(self.view.alert)
#else: # Permission denied
#TODO:check disk space for root
active_guests = kvc.list_active_guest()
inactive_guests = kvc.list_inactive_guest()
used_vnc_ports = kvc.list_used_vnc_port()
used_mac_addrs = kvc.list_used_mac_addr()
conflict_location = "%s/host/%d/guest/%d.json" \
% (web.ctx.homepath, src_guest.parent_id, src_guest.id)
# source guestos
if not (options["src-name"] in active_guests or options["src-name"] in inactive_guests):
return web.conflict(conflict_location, "Unable to get the source guest.")
# Check on whether value has already been used
# destination guestos
if (options["dest-name"] in active_guests or options["dest-name"] in inactive_guests):
return web.conflict(conflict_location, "Destination guest %s is already there." % options["dest-name"])
# VNC port number
if(int(self.input.vm_vncport) in used_vnc_ports):
return web.conflict(conflict_location, "VNC port %s is already used." % self.input.vm_vncport)
# MAC address
if(self.input.vm_mac in used_mac_addrs):
return web.conflict(conflict_location, "MAC address %s is already used." % self.input.vm_mac)
# Replicate Guest
order = 0 # job order
disk_jobs = [] # Add Disk
volume_jobs = [] # Create Storage Volume
for disk in virt.get_disk_info():
if disk['type'] != 'file':
self.view.alert = _("The type of the storage pool where the disk is to be added must be 'file'. dev=%s") % disk['target']['dev']
self.logger.debug(self.view.alert)
return web.badrequest(self.view.alert)
disk_pool = kvc.get_storage_pool_name_byimage(disk['source']['file'])
if not disk_pool:
self.view.alert = _("Can not find the storage pool.")
self.logger.debug(self.view.alert)