[Kimchi-devel] [PATCH] pep8 cleanup for model.py

Sheldon shaohef at linux.vnet.ibm.com
Mon Jan 13 12:06:28 UTC 2014


On 01/13/2014 07:33 PM, Rodrigo Trujillo wrote:
> Hi Sheldon, thanks for sending this patch, but I think Aline is 
> refactoring model.py,
> splitting such as what was done for 'control'.
thanks Rodrigo.
I just fix pep8 when I send the former patch <[PATCH] get vms list by 
listAllDomains>
I touch model.py, So I cleanup pep8.

It does not matter. aline can ignore this pep cleanup. And just focus on 
the the former patch.

Cleanup pep8 is easy for me.

>
> Rodrigo Trujillo
>
> On 01/13/2014 09:12 AM, shaohef at linux.vnet.ibm.com wrote:
>> From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>>
>> This patch cleans up pep8 style issue in model.py
>>
>> Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>> ---
>> src/kimchi/model.py | 127 
>> +++++++++++++++++++++++++++++-----------------------
>> 1 file changed, 72 insertions(+), 55 deletions(-)
>>
>> diff --git a/src/kimchi/model.py b/src/kimchi/model.py
>> index 4b7df7e..9d0dad3 100644
>> --- a/src/kimchi/model.py
>> +++ b/src/kimchi/model.py
>> @@ -18,16 +18,14 @@
>> #
>> # You should have received a copy of the GNU Lesser General Public
>> # License along with this library; if not, write to the Free Software
>> -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
>> 02110-1301 USA
>> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
>> 02110-1301 USA
>>
>> import cherrypy
>> import copy
>> import disks
>> import fnmatch
>> -import functools
>> import glob
>> import ipaddr
>> -import json
>> import libvirt
>> import logging
>> import os
>> @@ -43,17 +41,10 @@ import uuid
>>
>>
>> from cherrypy.process.plugins import BackgroundTask
>> -from cherrypy.process.plugins import SimplePlugin
>> from collections import defaultdict
>> from xml.etree import ElementTree
>>
>>
>> -try:
>> - from collections import OrderedDict
>> -except ImportError:
>> - from ordereddict import OrderedDict
>> -
>> -
>> from kimchi import config
>> from kimchi import netinfo
>> from kimchi import network as knetwork
>> @@ -70,7 +61,7 @@ from kimchi.isoinfo import IsoImage
>> from kimchi.objectstore import ObjectStore
>> from kimchi.scan import Scanner
>> from kimchi.screenshot import VMScreenshot
>> -from kimchi.utils import get_enabled_plugins, is_digit, kimchi_log
>> +from kimchi.utils import get_enabled_plugins, kimchi_log
>> from kimchi.vmtemplate import VMTemplate
>>
>>
>> @@ -90,12 +81,15 @@ def _uri_to_name(collection, uri):
>> raise InvalidParameter(uri)
>> return m.group(1)
>>
>> +
>> def template_name_from_uri(uri):
>> return _uri_to_name('templates', uri)
>>
>> +
>> def pool_name_from_uri(uri):
>> return _uri_to_name('storagepools', uri)
>>
>> +
>> def get_vm_name(vm_name, t_name, name_list):
>> if vm_name:
>> return vm_name
>> @@ -105,6 +99,7 @@ def get_vm_name(vm_name, t_name, name_list):
>> return vm_name
>> raise OperationFailed("Unable to choose a VM name")
>>
>> +
>> class Model(object):
>> dom_state_map = {0: 'nostate',
>> 1: 'running',
>> @@ -152,9 +147,10 @@ class Model(object):
>> # Please add new possible debug report command here
>> # and implement the report generating function
>> # based on the new report command
>> - self.report_tools = ({'cmd': 'sosreport --help', 'fn': 
>> self._sosreport_generate},
>> - {'cmd': 'supportconfig -h', 'fn':None},
>> - {'cmd': 'linuxexplorers --help', 'fn':None})
>> + self.report_tools = ({'cmd': 'sosreport --help',
>> + 'fn': self._sosreport_generate},
>> + {'cmd': 'supportconfig -h', 'fn': None},
>> + {'cmd': 'linuxexplorers --help', 'fn': None})
>>
>> self.distros = self._get_distros()
>> if 'qemu:///' in self.libvirt_uri:
>> @@ -183,7 +179,8 @@ class Model(object):
>> net = conn.networkDefineXML(xml)
>> except libvirt.libvirtError, e:
>> cherrypy.log.error(
>> - "Fatal: Cannot create default network because of %s, exit kimchid" 
>> % e.message,
>> + "Fatal: Cannot create default network because of %s, "
>> + "exit kimchid" % e.message,
>> severity=logging.ERROR)
>> sys.exit(1)
>>
>> @@ -192,7 +189,8 @@ class Model(object):
>> net.create()
>> except libvirt.libvirtError, e:
>> cherrypy.log.error(
>> - "Fatal: Cannot activate default network because of %s, exit 
>> kimchid" % e.message,
>> + "Fatal: Cannot activate default network because of %s, "
>> + "exit kimchid" % e.message,
>> severity=logging.ERROR)
>> sys.exit(1)
>>
>> @@ -208,7 +206,8 @@ class Model(object):
>> except OperationFailed as e:
>> # path used by other pool or other reasons of failure, exit
>> cherrypy.log.error(
>> - "Fatal: Cannot create default pool because of %s, exit kimchid" % 
>> e.message,
>> + "Fatal: Cannot create default pool because of %s, "
>> + "exit kimchid" % e.message,
>> severity=logging.ERROR)
>> sys.exit(1)
>>
>> @@ -280,7 +279,7 @@ class Model(object):
>> distro, version, codename = platform.linux_distribution()
>> res['os_distro'] = distro
>> res['os_version'] = version
>> - res['os_codename'] = unicode(codename,"utf-8")
>> + res['os_codename'] = unicode(codename, "utf-8")
>>
>> return res
>>
>> @@ -320,7 +319,7 @@ class Model(object):
>> max_net_io = round(max(currentMaxNetRate, int(rate)), 1)
>>
>> self.stats[vm_uuid].update({'net_io': rate, 'max_net_io': max_net_io,
>> - 'netRxKB': netRxKB, 'netTxKB': netTxKB})
>> + 'netRxKB': netRxKB, 'netTxKB': netTxKB})
>>
>> def _get_disk_io_rate(self, vm_uuid, dom, seconds):
>> prevDiskRdKB = self.stats[vm_uuid].get('diskRdKB', 0)
>> @@ -346,8 +345,10 @@ class Model(object):
>> rate = rd_stats + wr_stats
>> max_disk_io = round(max(currentMaxDiskRate, int(rate)), 1)
>>
>> - self.stats[vm_uuid].update({'disk_io': rate, 'max_disk_io': 
>> max_disk_io,
>> - 'diskRdKB': diskRdKB, 'diskWrKB': diskWrKB})
>> + self.stats[vm_uuid].update({'disk_io': rate,
>> + 'max_disk_io': max_disk_io,
>> + 'diskRdKB': diskRdKB,
>> + 'diskWrKB': diskWrKB})
>>
>> def debugreport_lookup(self, name):
>> path = config.get_debugreports_path()
>> @@ -392,7 +393,7 @@ class Model(object):
>>
>> return name_lists
>>
>> - def _update_host_stats(self):
>> + def _update_host_stats(self):
>> preTimeStamp = self.host_stats['timestamp']
>> timestamp = time.time()
>> # FIXME when we upgrade psutil, we can get uptime by psutil.uptime
>> @@ -474,12 +475,14 @@ class Model(object):
>>
>> for key, val in params.items():
>> if key in VM_STATIC_UPDATE_PARAMS:
>> - new_xml = xmlutils.xml_item_update(new_xml, 
>> VM_STATIC_UPDATE_PARAMS[key], val)
>> + new_xml = xmlutils.xml_item_update(
>> + new_xml, VM_STATIC_UPDATE_PARAMS[key], val)
>>
>> try:
>> if 'name' in params:
>> if state == 'running':
>> - raise InvalidParameter("vm name can just updated when vm shutoff")
>> + raise InvalidParameter("vm name can just updated "
>> + "when vm shutoff")
>> else:
>> dom.undefine()
>> conn = self.conn.get()
>> @@ -598,7 +601,7 @@ class Model(object):
>>
>> def vm_connect(self, name):
>> graphics, port = self._vm_get_graphics(name)
>> - if graphics == "vnc" and port != None:
>> + if graphics == "vnc" and port is not None:
>> vnc.add_proxy_token(name, port)
>> else:
>> raise OperationFailed("Only able to connect to running vm's vnc "
>> @@ -621,7 +624,8 @@ class Model(object):
>> t = self._get_template(t_name, vm_overrides)
>>
>> if not self.qemu_stream and t.info.get('iso_stream', False):
>> - raise InvalidOperation("Remote ISO image is not supported by this 
>> server.")
>> + raise InvalidOperation("Remote ISO image is not supported "
>> + "by this server.")
>>
>> t.validate()
>> vol_list = t.fork_vm_storage(vm_uuid)
>> @@ -632,11 +636,12 @@ class Model(object):
>> with self.objstore as session:
>> session.store('vm', vm_uuid, {'icon': icon})
>>
>> - libvirt_stream = False if len(self.libvirt_stream_protocols) == 0 
>> else True
>> + libvirt_stream = False if len(self.libvirt_stream_protocols) == 0 \
>> + else True
>>
>> xml = t.to_vm_xml(name, vm_uuid, libvirt_stream, self.qemu_stream_dns)
>> try:
>> - dom = conn.defineXML(xml.encode('utf-8'))
>> + conn.defineXML(xml.encode('utf-8'))
>> except libvirt.libvirtError as e:
>> for v in vol_list:
>> vol = conn.storageVolLookupByPath(v['path'])
>> @@ -704,7 +709,8 @@ class Model(object):
>> try:
>> self._get_storagepool(pool_name_from_uri(new_storagepool))
>> except Exception as e:
>> - raise InvalidParameter("Storagepool specified is not valid: %s." % 
>> e.message)
>> + raise InvalidParameter("Storagepool specified is not valid: "
>> + "%s." % e.message)
>>
>> for net_name in params.get(u'networks', []):
>> try:
>> @@ -925,7 +931,7 @@ class Model(object):
>> return '-'.join(('kimchi', interface, vlan_id))
>>
>> def _is_vlan_tagged_bridge(self, bridge):
>> - return bridge.startswith('kimchi-')
>> + return bridge.startswith('kimchi-')
>>
>> def _create_vlan_tagged_bridge(self, interface, vlan_id):
>> br_name = self._get_vlan_tagged_bridge_name(interface, vlan_id)
>> @@ -960,7 +966,7 @@ class Model(object):
>> id = self.next_taskid
>> self.next_taskid = self.next_taskid + 1
>>
>> - task = AsyncTask(id, target_uri, fn, self.objstore, opaque)
>> + AsyncTask(id, target_uri, fn, self.objstore, opaque)
>>
>> return id
>>
>> @@ -981,7 +987,6 @@ class Model(object):
>> except:
>> raise
>>
>> -
>> def _get_vm(self, name):
>> conn = self.conn.get()
>> try:
>> @@ -1027,7 +1032,8 @@ class Model(object):
>> with self.objstore as session:
>> session.delete('scanning', pool_name)
>> except Exception, e:
>> - kimchi_log.debug("Exception %s occured when cleaning scan result" % 
>> e.message)
>> + kimchi_log.debug("Exception %s occured when cleaning scan result",
>> + e.message)
>>
>> def _do_deep_scan(self, params):
>> scan_params = dict(ignore_list=[])
>> @@ -1040,10 +1046,11 @@ class Model(object):
>> if res['state'] == 'active':
>> scan_params['ignore_list'].append(res['path'])
>> except Exception, e:
>> - kimchi_log.debug("Exception %s occured when get ignore path" % 
>> e.message)
>> + kimchi_log.debug("Exception %s occured when get ignore path",
>> + e.message)
>>
>> - params['path'] = scan_params['pool_path'] = 
>> self.scanner.scan_dir_prepare(
>> - params['name'])
>> + params['path'] = scan_params['pool_path'] = \
>> + self.scanner.scan_dir_prepare(params['name'])
>> task_id = self.add_task('', self.scanner.start_scan, scan_params)
>> # Record scanning-task/storagepool mapping for future querying
>> with self.objstore as session:
>> @@ -1068,7 +1075,7 @@ class Model(object):
>>
>> if name in self.storagepools_get_list():
>> raise InvalidOperation(
>> - "The name %s has been used by a pool" % name)
>> + "The name %s has been used by a pool" % name)
>>
>> try:
>> if task_id:
>> @@ -1178,7 +1185,7 @@ class Model(object):
>> pool = self._get_storagepool(name)
>> if pool.isActive():
>> raise InvalidOperation(
>> - "Unable to delete the active storagepool %s" % name)
>> + "Unable to delete the active storagepool %s" % name)
>> try:
>> pool.undefine()
>> except libvirt.libvirtError as e:
>> @@ -1204,7 +1211,7 @@ class Model(object):
>> raise
>>
>> def storagevolumes_create(self, pool, params):
>> - info = self.storagepool_lookup(pool)
>> + self.storagepool_lookup(pool)
>> try:
>> name = params['name']
>> xml = _get_volume_xml(**params)
>> @@ -1239,7 +1246,8 @@ class Model(object):
>> except IsoFormatError:
>> bootable = False
>> res.update(
>> - dict(os_distro=os_distro, os_version=os_version, path=path, 
>> bootable=bootable))
>> + dict(os_distro=os_distro, os_version=os_version,
>> + path=path, bootable=bootable))
>>
>> return res
>>
>> @@ -1269,7 +1277,8 @@ class Model(object):
>> pool = self._get_storagepool(pool)
>> if not pool.isActive():
>> raise InvalidOperation(
>> - "Unable to list volumes in inactive storagepool %s" % pool.name())
>> + "Unable to list volumes in inactive storagepool "
>> + "%s" % pool.name())
>> try:
>> self._pool_refresh(pool)
>> return pool.listVolumes()
>> @@ -1280,7 +1289,8 @@ class Model(object):
>> pool = self._get_storagepool(pool)
>> if not pool.isActive():
>> raise InvalidOperation(
>> - "Unable to list volumes in inactive storagepool %s" % pool.name())
>> + "Unable to list volumes in inactive storagepool "
>> + "%s" % pool.name())
>> try:
>> return pool.storageVolLookupByName(name)
>> except libvirt.libvirtError as e:
>> @@ -1301,7 +1311,8 @@ class Model(object):
>> def _sosreport_generate(self, cb, name):
>> command = 'sosreport --batch --name "%s"' % name
>> try:
>> - retcode = subprocess.call(command, shell=True, stdout=subprocess.PIPE)
>> + retcode = subprocess.call(command, shell=True,
>> + stdout=subprocess.PIPE)
>> if retcode < 0:
>> raise OperationFailed('Command terminated with signal')
>> elif retcode > 0:
>> @@ -1346,7 +1357,8 @@ class Model(object):
>> for helper_tool in self.report_tools:
>> try:
>> retcode = subprocess.call(helper_tool['cmd'], shell=True,
>> - stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>> + stdout=subprocess.PIPE,
>> + stderr=subprocess.PIPE)
>> if retcode == 0:
>> return helper_tool['fn']
>> except Exception, e:
>> @@ -1364,7 +1376,7 @@ class Model(object):
>>
>> def _get_distros(self):
>> distroloader = DistroLoader()
>> - return distroloader.get()
>> + return distroloader.get()
>>
>> def distros_get_list(self):
>> return self.distros.keys()
>> @@ -1436,9 +1448,11 @@ class LibvirtVMTemplate(VMTemplate):
>> conn = self.conn.get()
>> pool = conn.storagePoolLookupByName(pool_name)
>> except libvirt.libvirtError:
>> - raise InvalidParameter('Storage specified by template does not exist')
>> + raise InvalidParameter('Storage specified by template does '
>> + 'not exist')
>> if not pool.isActive():
>> - raise InvalidParameter('Storage specified by template is not active')
>> + raise InvalidParameter('Storage specified by template is '
>> + 'not active')
>>
>> return pool
>>
>> @@ -1449,9 +1463,11 @@ class LibvirtVMTemplate(VMTemplate):
>> conn = self.conn.get()
>> network = conn.networkLookupByName(name)
>> except libvirt.libvirtError:
>> - raise InvalidParameter('Network specified by template does not exist')
>> + raise InvalidParameter('Network specified by template does '
>> + 'not exist')
>> if not network.isActive():
>> - raise InvalidParameter('Network specified by template is not active')
>> + raise InvalidParameter('Network specified by template is '
>> + 'not active')
>>
>> def _get_storage_path(self):
>> pool = self._storage_validate()
>> @@ -1485,7 +1501,7 @@ class LibvirtVMScreenshot(VMScreenshot):
>> dom = conn.lookupByUUIDString(self.vm_uuid)
>> vm_name = dom.name()
>> stream = conn.newStream(0)
>> - mimetype = dom.screenshot(stream, 0, 0)
>> + dom.screenshot(stream, 0, 0)
>> stream.recvAll(handler, fd)
>> except libvirt.libvirtError:
>> try:
>> @@ -1734,8 +1750,8 @@ class LibvirtConnection(object):
>> def get_wrappable_objects(self):
>> """
>> When a wrapped function returns an instance of another libvirt object,
>> - we also want to wrap that object so we can catch errors that happen 
>> when
>> - calling its methods.
>> + we also want to wrap that object so we can catch errors that happen
>> + when calling its methods.
>> """
>> objs = []
>> for name in ('virDomain', 'virDomainSnapshot', 'virInterface',
>> @@ -1791,7 +1807,8 @@ class LibvirtConnection(object):
>> except libvirt.libvirtError:
>> kimchi_log.error('Unable to connect to libvirt.')
>> if not retries:
>> - kimchi_log.error('Libvirt is not available, exiting.')
>> + kimchi_log.error(
>> + 'Libvirt is not available, exiting.')
>> cherrypy.engine.stop()
>> raise
>> time.sleep(2)
>> @@ -1808,8 +1825,8 @@ class LibvirtConnection(object):
>> setattr(cls, name, wrapMethod(method))
>>
>> self._connections[conn_id] = conn
>> - # In case we're running into troubles with keeping the connections
>> - # alive we should place here:
>> + # In case we're running into troubles with keeping the
>> + # connections alive we should place here:
>> # conn.setKeepAlive(interval=5, count=3)
>> # However the values need to be considered wisely to not affect
>> # hosts which are hosting a lot of virtual machines
>
>
>


-- 
Thanks and best regards!

Sheldon Feng(冯少合)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center




More information about the Kimchi-devel mailing list