Simone Tiraboschi has posted comments on this change. Change subject: Clean the code to pass pep8 checks ......................................................................
Patch Set 3: (41 comments) http://gerrit.ovirt.org/#/c/26176/3/src/__main__.py File src/__main__.py: Line 1471 Line 1472 Line 1473 Line 1474 Line 1475 > same Done Line 274: try: Line 275: opts = ["--%s=%s" % (k, v) Line 276: for k, v in cp.items("ImageUploader")] Line 277: (new_options, args) = self.parser.parse_args(args=opts, Line 278: values=self.options) > We usually do something like Done Line 279: self.from_option_groups(new_options, self.parser) Line 280: self.from_options(new_options, self.parser) Line 281: except ConfigParser.NoSectionError: Line 282: pass Line 536: "the storage domain didn't have a status " Line 537: "element.") Line 538: else: Line 539: logging.debug( Line 540: _("DC(%s) does not have a storage domain.") % dcName) > move ')' to next line? Done Line 541: if len(imageAry) > 0: Line 542: imageAry.sort(key=get_name) Line 543: fmt = "%-30s | %-25s | %s" Line 544: print fmt % (_("Export Storage Domain Name"), _("Datacenter"), Line 541: if len(imageAry) > 0: Line 542: imageAry.sort(key=get_name) Line 543: fmt = "%-30s | %-25s | %s" Line 544: print fmt % (_("Export Storage Domain Name"), _("Datacenter"), Line 545: _("Export Domain Status")) > same here: Done Line 546: print "\n".join(fmt % (name, dcName, status) Line 547: for name, dcName, status in imageAry) Line 548: else: Line 549: ExitCodes.exit_code = ExitCodes.LIST_IMAGE_ERR Line 550: logging.error(_("There are no export storage domains.")) Line 551: else: Line 552: ExitCodes.exit_code = ExitCodes.LIST_IMAGE_ERR Line 553: logging.error( Line 554: _("There are no datacenters with Export storage domains.")) > ')' to next line? Done Line 555: Line 556: def get_host_and_path_from_export_domain(self, exportdomain): Line 557: """ Line 558: Given a valid export storage domain, this method will return the Line 664: logging.debug( Line 665: "Size of %s:\t%s bytes\t%.1f 1K-blocks\t%.1f MB" % ( Line 666: ovf_file, size_in_bytes, size_in_bytes / 1024.0, Line 667: (size_in_bytes / 1024.0) / 1024.0) Line 668: ) > Perhaps: Done Line 669: logging.debug( Line 670: "Available space in %s:\t%s bytes\t%.1f 1K-blocks\t%.1f MB" % ( Line 671: dest_dir, dest_dir_size, dest_dir_size / 1024.0, Line 672: (dest_dir_size / 1024.0) / 1024.0) Line 669: logging.debug( Line 670: "Available space in %s:\t%s bytes\t%.1f 1K-blocks\t%.1f MB" % ( Line 671: dest_dir, dest_dir_size, dest_dir_size / 1024.0, Line 672: (dest_dir_size / 1024.0) / 1024.0) Line 673: ) > same Done Line 674: Line 675: if dest_dir_size > size_in_bytes: Line 676: return (True, size_in_bytes) Line 677: else: Line 686: os.seteuid(uid) Line 687: dir_stat = os.statvfs(remote_dir) Line 688: except Exception: Line 689: raise Exception( Line 690: "unable to test the available space on %s" % remote_dir) > ) to next? Done Line 691: finally: Line 692: os.seteuid(0) Line 693: os.setegid(0) Line 694: Line 842: Line 843: return retVal Line 844: Line 845: def update_meta_file(self, source_dir, old_image_id, new_image_id, Line 846: image_group_id): > Also here: Done Line 847: """ Line 848: Update the IMAGE attribute in the meta file with Line 849: the the given disk group ID and rename the META file Line 850: with the new disk ID Line 873: Line 874: old_image_dir = os.path.dirname(meta_file) Line 875: new_meta_file = os.path.join(old_image_dir, '%s.meta' % new_image_id) Line 876: logging.debug('old meta file(%s) new meta file(%s)' % Line 877: (meta_file, new_meta_file) > large indent Done Line 878: ) Line 879: os.rename(meta_file, new_meta_file) Line 880: Line 881: return True Line 906: "Substituting old PUUID(%s) with new PUUID(%s)" % ( Line 907: ary[0], image_id_dict[ary[0]]) Line 908: ) Line 909: text = re.sub(r'PUUID=.*', "PUUID=%s" Line 910: % image_id_dict[ary[0]], text > text = re.sub( Done Line 911: ) Line 912: logging.debug('Writing meta file\n%s' Line 913: % text Line 914: ) Line 909: text = re.sub(r'PUUID=.*', "PUUID=%s" Line 910: % image_id_dict[ary[0]], text Line 911: ) Line 912: logging.debug('Writing meta file\n%s' Line 913: % text > large indent Done Line 914: ) Line 915: fp = open(meta_file, "w") Line 916: fp.write(text) Line 917: fp.close() Line 929: iterator = tree.findall('Content/Section') Line 930: for sec in iterator: Line 931: for attr in sec.attrib: Line 932: if str(sec.attrib[attr]).endswith( Line 933: 'VirtualHardwareSection_Type' > large indent Done Line 934: ): Line 935: logging.debug("tag(%s) text(%s) attr(%s) class(%s)" Line 936: % (sec.tag, sec.text, sec.attrib, sec) Line 937: ) Line 940: logging.debug("item tag(%s) item text(%s) item " Line 941: "attr(%s) class(%s)" Line 942: % (item.tag, item.text, Line 943: item.attrib, item) Line 944: ) > same Done Line 945: instance_id_tag = None Line 946: host_resource_tag = None Line 947: resource_type = None Line 948: parent_tag = None Line 950: # Iterate through the child elements of an info Line 951: # and ensure that it has all of the requisite Line 952: # elements that describe a disk. Line 953: if str(elem.tag).endswith('ResourceType') \ Line 954: and elem.text == '17': > We usually do something like: Done Line 955: resource_type = elem.text Line 956: elif str(elem.tag).endswith('HostResource'): Line 957: host_resource_tag = elem.tag Line 958: elif str(elem.tag).endswith('InstanceId'): Line 959: instance_id_tag = elem.tag Line 960: elif str(elem.tag).endswith('Parent'): Line 961: parent_tag = elem.tag Line 962: if (instance_id_tag and host_resource_tag \ Line 963: and resource_type > see above. Also, you do not need the '\' because you already added () Done Line 964: ): Line 965: # Update the PUUID from old to new. Line 966: tmp = item.find(parent_tag) Line 967: if tmp.text in image_id_dict: Line 966: tmp = item.find(parent_tag) Line 967: if tmp.text in image_id_dict: Line 968: logging.debug( Line 969: "old puuid id(%s) new puuid (%s)" Line 970: % (tmp.text, > large indent Done Line 971: image_id_dict[tmp.text]) Line 972: ) Line 973: tmp.text = image_id_dict[tmp.text] Line 974: return self.write_ovf_file(ovf_file, tree) Line 973: tmp.text = image_id_dict[tmp.text] Line 974: return self.write_ovf_file(ovf_file, tree) Line 975: except Exception, e: Line 976: logging.error("Content/Section/Item/Parent element. " Line 977: "Message: %s" % e > large indent Done Line 978: ) Line 979: return False Line 980: Line 981: def __update_xml_disk_parentref(self, ovf_file, tree, parent_combined_id): Line 992: for elem in sec: Line 993: logging.debug("tag(%s) text(%s) attr(%s) class(%s)" Line 994: % (elem.tag, elem.text, elem.attrib, Line 995: elem) Line 996: ) > same Done Line 997: for attr in elem.attrib: Line 998: if str(attr).endswith('parentRef') and \ Line 999: str(elem.attrib[attr]).strip() != '': Line 1000: logging.debug("old parentRef(%s) " Line 995: elem) Line 996: ) Line 997: for attr in elem.attrib: Line 998: if str(attr).endswith('parentRef') and \ Line 999: str(elem.attrib[attr]).strip() != '': > see above. Even if you prefer just '\', we usually move the ':' to under th Done Line 1000: logging.debug("old parentRef(%s) " Line 1001: "new parentRef(%s)" Line 1002: % (elem.attrib[attr], Line 1003: parent_combined_id) Line 1000: logging.debug("old parentRef(%s) " Line 1001: "new parentRef(%s)" Line 1002: % (elem.attrib[attr], Line 1003: parent_combined_id) Line 1004: ) > same Done Line 1005: elem.attrib[attr] = parent_combined_id Line 1006: return self.write_ovf_file(ovf_file, tree) Line 1007: except Exception, e: Line 1008: logging.error("Section/Disk/parentRef element. Message: %s" % e) Line 1200: for attr in sec.attrib: Line 1201: if str(sec.attrib[attr]).endswith( Line 1202: 'VirtualHardwareSection_Type'): Line 1203: logging.debug("tag(%s) text(%s) attr(%s) class(%s)" % Line 1204: (sec.tag, sec.text, sec.attrib, sec)) > same Done Line 1205: itemElement = sec.findall('Item') Line 1206: for item in itemElement: Line 1207: logging.debug( Line 1208: "item tag(%s) item text(%s) item attr(%s) " Line 1212: host_resource_tag, instance_id_tag, \ Line 1213: resource_type = self.__chek_if_disk(item) Line 1214: Line 1215: if instance_id_tag and host_resource_tag and \ Line 1216: resource_type: > same Done Line 1217: n_id_d = {'combined_ids': None, Line 1218: 'new_image_group_id': None, Line 1219: 'new_image_id': None, Line 1220: 'parent_combined_id': Line 1217: n_id_d = {'combined_ids': None, Line 1218: 'new_image_group_id': None, Line 1219: 'new_image_id': None, Line 1220: 'parent_combined_id': Line 1221: parent_combined_id > n_id_d = { Done Line 1222: } Line 1223: Line 1224: ms, old_image_id = \ Line 1225: self.__remap_id(n_id_d, Line 1253: # Again it's odd that they're not daisy chained. Line 1254: if not self.__update_xml_disk_parentref(ovf_file, Line 1255: tree, Line 1256: n_id_d['parent_combined_id'] Line 1257: ): > same Done Line 1258: return False Line 1259: except Exception, ex: Line 1260: logging.error("Unable to update the disk ID in the OVF XML. " Line 1261: "Message: %s" % ex) Line 1257: ): Line 1258: return False Line 1259: except Exception, ex: Line 1260: logging.error("Unable to update the disk ID in the OVF XML. " Line 1261: "Message: %s" % ex) > same Done Line 1262: retVal = False Line 1263: Line 1264: return retVal Line 1265: Line 1273: iterator = tree.findall('Content/Name') Line 1274: elem_ary = list(iterator) Line 1275: if len(elem_ary) != 1: Line 1276: logging.error("There should only be one Name element in the " Line 1277: "OVF XML's Content section") > same Done Line 1278: return False Line 1279: else: Line 1280: logging.debug("tag(%s) text(%s) attr(%s)" Line 1281: % (elem_ary[0].tag, elem_ary[0].text, Line 1285: if not self.write_ovf_file(ovf_file, tree): Line 1286: retVal = False Line 1287: except Exception, e: Line 1288: logging.error("Unable to update the Name element of the Content " Line 1289: "section in the OVF XML. Message: %s" % e) > same Done Line 1290: retVal = False Line 1291: return retVal Line 1292: Line 1293: def remove_nics(self, ovf_file, tree): Line 1300: iterator = tree.findall('Content/Section') Line 1301: for sec in iterator: Line 1302: for attr in sec.attrib: Line 1303: if str(sec.attrib[attr]).\ Line 1304: endswith('VirtualHardwareSection_Type'): > same Done Line 1305: logging.debug("tag(%s) text(%s) attr(%s) class(%s)" Line 1306: % (sec.tag, sec.text, sec.attrib, sec) Line 1307: ) Line 1308: itemElement = sec.findall('Item') Line 1302: for attr in sec.attrib: Line 1303: if str(sec.attrib[attr]).\ Line 1304: endswith('VirtualHardwareSection_Type'): Line 1305: logging.debug("tag(%s) text(%s) attr(%s) class(%s)" Line 1306: % (sec.tag, sec.text, sec.attrib, sec) > same Done Line 1307: ) Line 1308: itemElement = sec.findall('Item') Line 1309: for item in itemElement: Line 1310: logging.debug("item tag(%s) item text(%s) " Line 1427: Line 1428: return retVal Line 1429: Line 1430: def copy_files_nfs(self, source_dir, remote_dir, address, Line 1431: ovf_size, ovf_file_name): > same Done Line 1432: """ Line 1433: Copies all of the files in source_dir to remote_dir. Line 1434: """ Line 1435: files_to_copy = self.get_files_to_copy(source_dir) Line 1434: """ Line 1435: files_to_copy = self.get_files_to_copy(source_dir) Line 1436: if len(files_to_copy) < 1: Line 1437: logging.error("The internal directory structure " Line 1438: "of the OVF file is invalid") > same Done Line 1439: return Line 1440: Line 1441: # Check for pre-existing files. We can't just overwrite Line 1442: # what is already there. Line 1451: logging.error(_('%s exists on %s.' Line 1452: ' Either remove it or supply' Line 1453: ' the --force option to ' Line 1454: 'overwrite it.') Line 1455: % (remote_file, address)) > same Done Line 1456: return Line 1457: else: Line 1458: # Remove the file. Line 1459: self.remove_file_nfs(remote_file, Line 1457: else: Line 1458: # Remove the file. Line 1459: self.remove_file_nfs(remote_file, Line 1460: NUMERIC_VDSM_ID, Line 1461: NUMERIC_VDSM_ID) > same Done Line 1462: Line 1463: # Is there enough room for what we want to copy now? Line 1464: retVal, remote_dir_size = self.space_test_nfs(remote_dir, ovf_size, Line 1465: NUMERIC_VDSM_ID, Line 1462: Line 1463: # Is there enough room for what we want to copy now? Line 1464: retVal, remote_dir_size = self.space_test_nfs(remote_dir, ovf_size, Line 1465: NUMERIC_VDSM_ID, Line 1466: NUMERIC_VDSM_ID) > same Done Line 1467: if not retVal: Line 1468: logging.error(_('There is not enough space in %s (%s bytes) ' Line 1469: 'for the contents of %s (%s bytes)') % Line 1470: (address, remote_dir_size, ovf_file_name, ovf_size)) Line 1465: NUMERIC_VDSM_ID, Line 1466: NUMERIC_VDSM_ID) Line 1467: if not retVal: Line 1468: logging.error(_('There is not enough space in %s (%s bytes) ' Line 1469: 'for the contents of %s (%s bytes)') % > same: Done Line 1470: (address, remote_dir_size, ovf_file_name, ovf_size)) Line 1471: return Line 1472: Line 1473: # Make the remote directories Line 1473: # Make the remote directories Line 1474: for valid_files in files_to_copy: Line 1475: tmp_dir = os.path.join(remote_dir, os.path.dirname(valid_files)) Line 1476: if not self.exists_nfs(tmp_dir, NUMERIC_VDSM_ID, Line 1477: NUMERIC_VDSM_ID): > same Done Line 1478: self.make_dir_nfs(tmp_dir, NUMERIC_VDSM_ID, Line 1479: NUMERIC_VDSM_ID, Line 1480: 0770) Line 1481: Line 1499: return Line 1500: Line 1501: # Copy the .ovf *last* Line 1502: self.copy_file_nfs(ovf_file, remote_ovf_file, NUMERIC_VDSM_ID, Line 1503: NUMERIC_VDSM_ID) > same Done Line 1504: Line 1505: def remove_file_nfs(self, file_name, uid, gid): Line 1506: """ Line 1507: Remove a file as the UID and GID provided. Line 1555: ) Line 1556: ) Line 1557: else: Line 1558: raise Exception(_("either export-domain or" Line 1559: " nfs-server must be provided")) > same Done Line 1560: Line 1561: # NFS support. Line 1562: mount_dir = tempfile.mkdtemp() Line 1563: logging.debug('local NFS mount point is %s' % mount_dir) Line 1570: logging.debug('OVF data %s is a directory' % ovf_file) Line 1571: ovf_file_size = self.get_ovf_dir_space(ovf_file) Line 1572: if (ovf_file_size != -1 and self.update_ovf_xml(ovf_file)): Line 1573: self.copy_files_nfs(ovf_file, dest_dir, address, Line 1574: ovf_file_size, ovf_file) > same Done Line 1575: else: Line 1576: try: Line 1577: ovf_extract_dir = tempfile.mkdtemp() Line 1578: logging.debug('local extract directory for OVF is %s' Line 1611: except KeyError: Line 1612: ExitCodes.exit_code = ExitCodes.CRITICAL Line 1613: logging.error(_("A user named %s with a UID and GID of %d must be " Line 1614: "defined on the system to mount the export " Line 1615: "storage domain on %s as Read/Write" > same Done Line 1616: % (NFS_USER, Line 1617: NUMERIC_VDSM_ID, Line 1618: self.configuration.get('export_domain')))) Line 1619: except Exception, ex: -- To view, visit http://gerrit.ovirt.org/26176 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Idb9f7416f0f81f0913d3c0145cd3c42e05377d71 Gerrit-PatchSet: 3 Gerrit-Project: ovirt-image-uploader Gerrit-Branch: master Gerrit-Owner: Simone Tiraboschi <stira...@redhat.com> Gerrit-Reviewer: Kiril Nesenko <knese...@redhat.com> Gerrit-Reviewer: Sandro Bonazzola <sbona...@redhat.com> Gerrit-Reviewer: Simone Tiraboschi <stira...@redhat.com> Gerrit-Reviewer: Yedidyah Bar David <d...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches