[ovirt-devel] [VDSM] Dead code found by vulture

Dan Kenigsberg danken at redhat.com
Tue Oct 4 15:14:35 UTC 2016


On Tue, Oct 04, 2016 at 12:37:31AM +0300, Nir Soffer wrote:
> Hi all,
> 
> Adam mentioned this tool, finding dead code:
> https://pypi.python.org/pypi/vulture
> 
> Running on vdsm show lot of unused code. On first look, it has not of false

Cool.

I suppose you ment "has not" -> "has lots"

> positives but I'm sure we can find lot of useful info in the report.
> 
> See example run bellow.

Let https://gerrit.ovirt.org/#/c/65097/ be the first cleanup patch

> 
> Nir
> 
> ----
> 
> $ sudo pip install vulture
> $ vulture vdsm lib client | sort
> client/vdsClient.py:160: Unused attribute 'whitespace'
> client/vdsClient.py:161: Unused attribute 'whitespace_split'
> client/vdsClient.py:1787: Unused function '__pool_status'
> client/vdsClient.py:504: Unused function 'do_newDisk'
> lib/api/schema_to_html.py:338: Unused function 'verify_symbols'
> lib/api/schema_to_html.py:37: Unused variable 'typeKinds'
> lib/api/vdsmapi.py:163: Unused function 'get_type'
> lib/vdsm/cmdutils.py:72: Unused class 'Accounting'
> lib/vdsm/cmdutils.py:73: Unused variable 'CPU'
> lib/vdsm/cmdutils.py:75: Unused variable 'BlockIO'
> lib/vdsm/commands.py:136: Unused function 'seekable'
> lib/vdsm/commands.py:139: Unused function 'readable'
> lib/vdsm/commands.py:170: Unused function 'readinto'
> lib/vdsm/common/eventfd.py:41: Unused variable 'EFD_SEMAPHORE'
> lib/vdsm/common/eventfd.py:42: Unused variable 'EFD_CLOEXEC'
> lib/vdsm/common/eventfd.py:43: Unused variable 'EFD_NONBLOCK'
> lib/vdsm/common/sigutils.py:70: Unused function 'wait_for_signal'
> lib/vdsm/common/zombiereaper.py:62: Unused function 'registerSignalHandler'
> lib/vdsm/common/zombiereaper.py:72: Unused function 'unregisterSignalHandler'
> lib/vdsm/concurrent.py:33: Unused class 'Barrier'
> lib/vdsm/constants.py:105: Unused variable 'EXT_CP'
> lib/vdsm/constants.py:26: Unused variable 'GLUSTER_MGMT_ENABLED'
> lib/vdsm/constants.py:46: Unused variable 'OVIRT_VMCONSOLE_USER'
> lib/vdsm/constants.py:84: Unused variable 'P_VDSM_CONF'
> lib/vdsm/gluster/exception.py:122: Unused class
> 'GlusterVolumeNameErrorException'
> lib/vdsm/gluster/exception.py:127: Unused class 'GlusterBrickNameErrorException'
> lib/vdsm/gluster/exception.py:132: Unused class
> 'GlusterVolumeAlreadyExistException'
> lib/vdsm/gluster/exception.py:137: Unused class
> 'GlusterBrickCreationFailedException'
> lib/vdsm/gluster/exception.py:142: Unused class
> 'GlusterInvalidTransportException'
> lib/vdsm/gluster/exception.py:147: Unused class 'GlusterPeerNotFriendException'
> lib/vdsm/gluster/exception.py:152: Unused class
> 'GlusterInvalidStripeCountException'
> lib/vdsm/gluster/exception.py:157: Unused class
> 'GlusterInvalidReplicaCountException'
> lib/vdsm/gluster/exception.py:162: Unused class
> 'GlusterInsufficientBrickException'
> lib/vdsm/gluster/exception.py:167: Unused class 'GlusterBrickInUseException'
> lib/vdsm/gluster/exception.py:177: Unused class 'GlusterVolumeNotFoundException'
> lib/vdsm/gluster/exception.py:182: Unused class
> 'GlusterVolumeAlreadyStartedException'
> lib/vdsm/gluster/exception.py:192: Unused class
> 'GlusterVolumeAlreadyStoppedException'
> lib/vdsm/gluster/exception.py:207: Unused class
> 'GlusterVolumeInvalidOptionException'
> lib/vdsm/gluster/exception.py:212: Unused class
> 'GlusterVolumeInvalidOptionValueException'
> lib/vdsm/gluster/exception.py:222: Unused class 'GlusterBrickNotFoundException'
> lib/vdsm/gluster/exception.py:227: Unused class
> 'GlusterVolumeRebalanceUnknownTypeException'
> lib/vdsm/gluster/exception.py:232: Unused class
> 'GlusterVolumeRebalanceAlreadyStartedException'
> lib/vdsm/gluster/exception.py:242: Unused class
> 'GlusterVolumeRebalanceAlreadyStoppedException'
> lib/vdsm/gluster/exception.py:344: Unused class
> 'GlusterHostInvalidNameException'
> lib/vdsm/gluster/exception.py:349: Unused class
> 'GlusterHostAlreadyAddedException'
> lib/vdsm/gluster/exception.py:364: Unused class 'GlusterHostInUseException'
> lib/vdsm/gluster/exception.py:400: Unused class
> 'GlusterHostStorageDeviceMountFailedException'
> lib/vdsm/gluster/exception.py:538: Unused class 'GlusterHookReadFailedException'
> lib/vdsm/gluster/exception.py:77: Unused class
> 'GlusterPermissionDeniedException'
> lib/vdsm/gluster/exception.py:82: Unused class 'GlusterSyntaxErrorException'
> lib/vdsm/hooks.py:343: Unused function 'before_vdsm_start'
> lib/vdsm/hooks.py:347: Unused function 'after_vdsm_stop'
> lib/vdsm/hostdev.py:186: Unused function '_process_pci_address'
> lib/vdsm/hostdev.py:191: Unused function '_process_scsi_address'
> lib/vdsm/hostdev.py:196: Unused function '_process_usb_address'
> lib/vdsm/hostdev.py:201: Unused function '_process_assignability'
> lib/vdsm/hostdev.py:218: Unused function '_process_udev_path'
> lib/vdsm/hostdev.py:228: Unused function '_process_driver'
> lib/vdsm/hostdev.py:239: Unused function '_process_storage'
> lib/vdsm/hostdev.py:249: Unused function '_process_vfs'
> lib/vdsm/hostdev.py:260: Unused function '_process_iommu'
> lib/vdsm/hostdev.py:268: Unused function '_process_physfn'
> lib/vdsm/hostdev.py:277: Unused function '_process_productinfo'
> lib/vdsm/hostdev.py:292: Unused function '_process_parent'
> lib/vdsm/hostdev.py:302: Unused function '_process_scsi_device_params'
> lib/vdsm/hostdev.py:61: Unused variable 'CARDBUS_BRIDGE'
> lib/vdsm/jobs.py:271: Unused function '_clear'
> lib/vdsm/jsonrpcvdscli.py:133: Unused function 'set_default_timeout'
> lib/vdsm/kaxmlrpclib.py:116: Unused variable 'SslServerProxy'
> lib/vdsm/kaxmlrpclib.py:122: Unused attribute '_extra_headers'
> lib/vdsm/libvirtconnection.py:70: Unused function 'start_event_loop'
> lib/vdsm/libvirtconnection.py:74: Unused function 'stop_event_loop'
> lib/vdsm/libvirtconnection.py:86: Unused variable 'user_data'
> lib/vdsm/logUtils.py:113: Unused function 'process'
> lib/vdsm/logUtils.py:117: Unused class 'TracebackRepeatFilter'
> lib/vdsm/logUtils.py:137: Unused class 'QueueHandler'
> lib/vdsm/logUtils.py:189: Unused class 'UserGroupEnforcingHandler'
> lib/vdsm/m2cutils.py:99: Unused class 'SSLServerSocket'
> lib/vdsm/network/configurators/ifcfg.py:500: Unused function
> 'restorePersistentBackup'
> lib/vdsm/network/configurators/ifcfg.py:75: Unused function 'is_available'
> lib/vdsm/network/configurators/pyroute_two.py:126: Unused function
> 'removeBridgePort'
> lib/vdsm/network/configurators/pyroute_two.py:34: Unused variable 'ie'
> lib/vdsm/network/errors.py:22: Unused variable 'ERR_OK'
> lib/vdsm/network/ipwrapper.py:42: Unused variable 'NET_SYSFS'
> lib/vdsm/network/ipwrapper.py:519: Unused function 'routeExists'
> lib/vdsm/network/ipwrapper.py:541: Unused function 'ruleExists'
> lib/vdsm/network/ipwrapper.py:588: Unused function 'netns_add'
> lib/vdsm/network/ipwrapper.py:592: Unused function 'netns_delete'
> lib/vdsm/network/ipwrapper.py:596: Unused function 'netns_exec'
> lib/vdsm/network/ipwrapper.py:604: Unused function 'link_set_netns'
> lib/vdsm/network/link/bond.py:130: Unused attribute '_init_options'
> lib/vdsm/network/link/bond.py:64: Unused function 'set_options'
> lib/vdsm/network/link/iface.py:30: Unused variable 'STATE_DOWN'
> lib/vdsm/network/link/iface.py:61: Unused function 'is_oper_up'
> lib/vdsm/network/link/iface.py:65: Unused function 'is_promisc'
> lib/vdsm/network/netconfpersistence.py:110: Unused function 'as_unicode'
> lib/vdsm/network/netinfo/addresses.py:119: Unused function 'is_ipv4'
> lib/vdsm/network/netinfo/addresses.py:123: Unused function 'is_ipv6'
> lib/vdsm/network/netinfo/addresses.py:127: Unused function 'is_dynamic'
> lib/vdsm/network/netinfo/nics.py:29: Unused variable 'OPERSTATE_UNKNOWN'
> lib/vdsm/network/netinfo/nics.py:30: Unused variable 'OPERSTATE_DOWN'
> lib/vdsm/network/netlink/link.py:33: Unused variable 'IFF_BROADCAST'
> lib/vdsm/network/netlink/link.py:34: Unused variable 'IFF_DEBUG'
> lib/vdsm/network/netlink/link.py:35: Unused variable 'IFF_LOOPBACK'
> lib/vdsm/network/netlink/link.py:36: Unused variable 'IFF_POINTOPOINT'
> lib/vdsm/network/netlink/link.py:37: Unused variable 'IFF_NOTRAILERS'
> lib/vdsm/network/netlink/link.py:39: Unused variable 'IFF_NOARP'
> lib/vdsm/network/netlink/link.py:41: Unused variable 'IFF_ALLMULTI'
> lib/vdsm/network/netlink/link.py:42: Unused variable 'IFF_MASTER'
> lib/vdsm/network/netlink/link.py:43: Unused variable 'IFF_SLAVE'
> lib/vdsm/network/netlink/link.py:44: Unused variable 'IFF_MULTICAST'
> lib/vdsm/network/netlink/link.py:45: Unused variable 'IFF_PORTSEL'
> lib/vdsm/network/netlink/link.py:46: Unused variable 'IFF_AUTOMEDIA'
> lib/vdsm/network/netlink/link.py:47: Unused variable 'IFF_DYNAMIC'
> lib/vdsm/network/netlink/link.py:48: Unused variable 'IFF_LOWER_UP'
> lib/vdsm/network/netlink/link.py:49: Unused variable 'IFF_DORMANT'
> lib/vdsm/network/netlink/link.py:50: Unused variable 'IFF_ECHO'
> lib/vdsm/network/netlink/monitor.py:94: Unused attribute '_time_start'
> lib/vdsm/network/ovs/driver/__init__.py:103: Unused function 'detach_bond_slave'
> lib/vdsm/network/ovs/driver/__init__.py:115: Unused function 'list_ports'
> lib/vdsm/network/ovs/driver/__init__.py:119: Unused function 'do_nothing'
> lib/vdsm/network/ovs/driver/__init__.py:52: Unused variable 'ex_val'
> lib/vdsm/network/ovs/driver/__init__.py:83: Unused function 'list_br'
> lib/vdsm/network/ovs/driver/__init__.py:87: Unused function 'add_vlan'
> lib/vdsm/network/ovs/driver/__init__.py:91: Unused function 'del_vlan'
> lib/vdsm/network/ovs/driver/__init__.py:95: Unused function 'add_bond'
> lib/vdsm/network/ovs/driver/__init__.py:99: Unused function 'attach_bond_slave'
> lib/vdsm/network/ovs/info.py:75: Unused attribute '_ifaces_uuids'
> lib/vdsm/network/ovs/info.py:76: Unused attribute '_ifaces_macs'
> lib/vdsm/network/ovs/validator.py:125: Unused function '_nets_with_bond'
> lib/vdsm/network/sourceroutethread.py:66: Unused function
> 'process_IN_CLOSE_WRITE'
> lib/vdsm/profiling/cpu.py:71: Unused function 'profile'
> lib/vdsm/properties.py:100: Unused variable 'objtype'
> lib/vdsm/properties.py:151: Unused class 'String'
> lib/vdsm/properties.py:201: Unused class 'Boolean'
> lib/vdsm/properties.py:231: Unused function 'decode_base64'
> lib/vdsm/protocoldetector.py:214: Unused class '_CannotDetectProtocol'
> lib/vdsm/protocoldetector.py:218: Unused class '_Stopped'
> lib/vdsm/pthread.py:79: Unused function 'getname'
> lib/vdsm/qemuimg.py:43: Unused variable 'QCOW'
> lib/vdsm/qemuimg.py:44: Unused variable 'QED'
> lib/vdsm/qemuimg.py:46: Unused variable 'VMDK'
> lib/vdsm/rpc/bindingxmlrpc.py:125: Unused function 'do_GET'
> lib/vdsm/rpc/bindingxmlrpc.py:165: Unused function 'do_PUT'
> lib/vdsm/rpc/bindingxmlrpc.py:881: Unused variable 'recoveryMode'
> lib/vdsm/rpc/Bridge.py:437: Unused variable 'typefixups'
> lib/vdsm/schedule.py:69: Unused class 'Scheduler'
> lib/vdsm/sslutils.py:209: Unused function 'handle_write'
> lib/vdsm/storage/check.py:142: Unused function 'is_checking'
> lib/vdsm/storage/check.py:218: Unused attribute '_reader'
> lib/vdsm/storage/check.py:219: Unused attribute '_reaper'
> lib/vdsm/storage/clusterlock.py:238: Unused attribute '_sanlockfd'
> lib/vdsm/storage/constants.py:70: Unused variable 'VOL_ROLE'
> lib/vdsm/storage/constants.py:92: Unused variable 'LEASE_SHARED'
> lib/vdsm/storage/devicemapper.py:106: Unused function 'isDmDevice'
> lib/vdsm/storage/devicemapper.py:111: Unused function 'getAllSlaves'
> lib/vdsm/storage/devicemapper.py:123: Unused function '_removeMapping'
> lib/vdsm/storage/devicemapper.py:154: Unused function '_getPathsStatus'
> lib/vdsm/storage/exception.py:1036: Unused class 'StorageServerValidationError'
> lib/vdsm/storage/exception.py:1051: Unused class 'MultipathReloadError'
> lib/vdsm/storage/exception.py:1056: Unused class 'GetiSCSISessionListError'
> lib/vdsm/storage/exception.py:1061: Unused class 'AddiSCSIPortalError'
> lib/vdsm/storage/exception.py:1066: Unused class 'RemoveiSCSIPortalError'
> lib/vdsm/storage/exception.py:1071: Unused class 'RemoveiSCSINodeError'
> lib/vdsm/storage/exception.py:1076: Unused class 'AddiSCSINodeError'
> lib/vdsm/storage/exception.py:1081: Unused class 'SetiSCSIAuthError'
> lib/vdsm/storage/exception.py:1086: Unused class 'SetiSCSIUsernameError'
> lib/vdsm/storage/exception.py:1091: Unused class 'SetiSCSIPasswdError'
> lib/vdsm/storage/exception.py:1096: Unused class 'iSCSILoginError'
> lib/vdsm/storage/exception.py:1111: Unused class 'MultipathSetupError'
> lib/vdsm/storage/exception.py:1116: Unused class 'StorageTypeError'
> lib/vdsm/storage/exception.py:1139: Unused class 'MountTypeError'
> lib/vdsm/storage/exception.py:1144: Unused class 'MountParsingError'
> lib/vdsm/storage/exception.py:1149: Unused class 'InvalidIpAddress'
> lib/vdsm/storage/exception.py:1162: Unused class 'iSCSILogoutError'
> lib/vdsm/storage/exception.py:1185: Unused class
> 'StorageServerConnectionRefIdAlreadyInUse'
> lib/vdsm/storage/exception.py:1190: Unused class
> 'StorageServerConnectionRefIdDoesNotExist'
> lib/vdsm/storage/exception.py:1195: Unused class
> 'UnsupportedGlusterVolumeReplicaCountError'
> lib/vdsm/storage/exception.py:1244: Unused class 'VolumeGroupPermissionsError'
> lib/vdsm/storage/exception.py:1268: Unused class 'VolumeGroupAlreadyExistsError'
> lib/vdsm/storage/exception.py:1278: Unused class 'VolumeGroupRenameError'
> lib/vdsm/storage/exception.py:1293: Unused class 'VolumeGroupReadTagError'
> lib/vdsm/storage/exception.py:1298: Unused class 'VolumeGroupScanError'
> lib/vdsm/storage/exception.py:1303: Unused class 'GetVolumeGroupListError'
> lib/vdsm/storage/exception.py:1351: Unused class 'CannotAccessLogicalVolume'
> lib/vdsm/storage/exception.py:1364: Unused class 'LogicalVolumesListError'
> lib/vdsm/storage/exception.py:1374: Unused class 'LogicalVolumeScanError'
> lib/vdsm/storage/exception.py:1381: Unused class 'CannotActivateLogicalVolume'
> lib/vdsm/storage/exception.py:1386: Unused class 'LogicalVolumePermissionsError'
> lib/vdsm/storage/exception.py:1391: Unused class 'LogicalVolumeAddTagError'
> lib/vdsm/storage/exception.py:1396: Unused class 'LogicalVolumeRemoveTagError'
> lib/vdsm/storage/exception.py:1401: Unused class 'GetLogicalVolumeTagError'
> lib/vdsm/storage/exception.py:1406: Unused class 'GetLogicalVolumesByTagError'
> lib/vdsm/storage/exception.py:1411: Unused class 'GetAllLogicalVolumeTagsError'
> lib/vdsm/storage/exception.py:1416: Unused class 'GetLogicalVolumeDevError'
> lib/vdsm/storage/exception.py:1426: Unused class 'CannotWriteAccessLogialVolume'
> lib/vdsm/storage/exception.py:1440: Unused class 'LogicalVolumesScanError'
> lib/vdsm/storage/exception.py:1452: Unused class 'GetLogicalVolumeDataError'
> lib/vdsm/storage/exception.py:1472: Unused class 'LVMSetupError'
> lib/vdsm/storage/exception.py:1477: Unused class
> 'CouldNotRetrievePhysicalVolumeList'
> lib/vdsm/storage/exception.py:1482: Unused class 'LogicalVolumeAlreadyExists'
> lib/vdsm/storage/exception.py:1487: Unused class
> 'CouldNotRetrieveLogicalVolumesList'
> lib/vdsm/storage/exception.py:1499: Unused class 'PartitionedPhysDev'
> lib/vdsm/storage/exception.py:1521: Unused class 'LogicalVolumeCachingError'
> lib/vdsm/storage/exception.py:1576: Unused class 'SpmParamsMismatch'
> lib/vdsm/storage/exception.py:1607: Unused class 'DomainAlreadyLocked'
> lib/vdsm/storage/exception.py:1612: Unused class 'DomainLockDoesNotExist'
> lib/vdsm/storage/exception.py:1663: Unused class 'MetaDataKeyError'
> lib/vdsm/storage/exception.py:1714: Unused class 'ImportInfoError'
> lib/vdsm/storage/exception.py:1719: Unused class 'ImportUnknownType'
> lib/vdsm/storage/exception.py:1724: Unused class 'ExportError'
> lib/vdsm/storage/exception.py:1733: Unused class 'ResourceNamespaceNotEmpty'
> lib/vdsm/storage/exception.py:180: Unused class 'VolumeIsBusy'
> lib/vdsm/storage/exception.py:215: Unused class 'VolumeUnlinkError'
> lib/vdsm/storage/exception.py:220: Unused class 'OrphanVolumeError'
> lib/vdsm/storage/exception.py:274: Unused class 'CannotModifyVolumeTime'
> lib/vdsm/storage/exception.py:289: Unused class 'NonLeafVolumeNotWritable'
> lib/vdsm/storage/exception.py:294: Unused class 'VolumeCopyError'
> lib/vdsm/storage/exception.py:314: Unused class 'createVolumeSizeError'
> lib/vdsm/storage/exception.py:319: Unused class
> 'VolumeWasNotPreparedBeforeTeardown'
> lib/vdsm/storage/exception.py:348: Unused class 'ImagesActionError'
> lib/vdsm/storage/exception.py:373: Unused class 'ImageValidationError'
> lib/vdsm/storage/exception.py:392: Unused class 'ImageIsEmpty_deprecated_vdsm23'
> lib/vdsm/storage/exception.py:424: Unused class
> 'CouldNotValideTemplateOnTargetDomain'
> lib/vdsm/storage/exception.py:434: Unused class 'OverwriteImageError'
> lib/vdsm/storage/exception.py:489: Unused class 'StorageUpdateVmError'
> lib/vdsm/storage/exception.py:499: Unused class 'StoragePoolTooManyMasters'
> lib/vdsm/storage/exception.py:514: Unused class 'StoragePoolHasPotentialMaster'
> lib/vdsm/storage/exception.py:519: Unused class 'StoragePoolInternalError'
> lib/vdsm/storage/exception.py:524: Unused class 'ImageMissingFromVm'
> lib/vdsm/storage/exception.py:540: Unused class 'StoragePoolAlreadyExists'
> lib/vdsm/storage/exception.py:550: Unused class 'StoragePoolCheckError'
> lib/vdsm/storage/exception.py:565: Unused class 'ImageNotOnTargetDomain'
> lib/vdsm/storage/exception.py:594: Unused class
> 'StoragePoolHigherVersionMasterFound'
> lib/vdsm/storage/exception.py:633: Unused class 'StorageDomainFormatError'
> lib/vdsm/storage/exception.py:645: Unused class 'StorageDomainAttachError'
> lib/vdsm/storage/exception.py:655: Unused class 'StorageDomainDetachError'
> lib/vdsm/storage/exception.py:660: Unused class 'StorageDomainDeactivateError'
> lib/vdsm/storage/exception.py:670: Unused class 'StorageDomainActivateError'
> lib/vdsm/storage/exception.py:690: Unused class
> 'StorageDomainMetadataFileMissing'
> lib/vdsm/storage/exception.py:733: Unused class 'StorageDomainMasterCopyError'
> lib/vdsm/storage/exception.py:770: Unused class 'StorageDomainCheckError'
> lib/vdsm/storage/exception.py:793: Unused class
> 'StorageDomainStateTransitionIllegal'
> lib/vdsm/storage/exception.py:800: Unused class 'StorageDomainActive'
> lib/vdsm/storage/exception.py:815: Unused class
> 'StorageDomainInsufficientPermissions'
> lib/vdsm/storage/exception.py:835: Unused class 'TooManyPVsInVG'
> lib/vdsm/storage/exception.py:855: Unused class 'StorageDomainRefreshError'
> lib/vdsm/storage/exception.py:911: Unused class 'InvalidTask'
> lib/vdsm/storage/exception.py:921: Unused class 'TaskClearError'
> lib/vdsm/storage/exception.py:931: Unused class 'InvalidTaskType'
> lib/vdsm/storage/exception.py:941: Unused class 'TaskInProgress'
> lib/vdsm/storage/fileUtils.py:252: Unused function 'atomic_symlink'
> lib/vdsm/storage/guarded.py:109: Unused variable 'exc_tb'
> lib/vdsm/storage/guarded.py:109: Unused variable 'exc_val'
> lib/vdsm/storage/hba.py:67: Unused function '_rescan'
> lib/vdsm/storage/misc.py:345: Unused function 'parseHumanReadableSize'
> lib/vdsm/storage/misc.py:490: Unused function 'getfds'
> lib/vdsm/storage/misc.py:82: Unused function 'pidExists'
> lib/vdsm/storage/misc.py:95: Unused function 'getProcCtime'
> lib/vdsm/storage/mount.py:43: Unused variable 'VFS_NFS'
> lib/vdsm/storage/mount.py:44: Unused variable 'VFS_NFS4'
> lib/vdsm/taskset.py:28: Unused variable 'AUTOMATIC'
> lib/vdsm/taskset.py:88: Unused function 'pick_cpu'
> lib/vdsm/tool/configfile.py:164: Unused variable 'exec_val'
> lib/vdsm/tool/configfile.py:202: Unused function 'prependSection'
> lib/vdsm/tool/configfile.py:212: Unused function 'prefixLines'
> lib/vdsm/tool/configfile.py:220: Unused function 'unprefixLines'
> lib/vdsm/tool/configurator.py:184: Unused function 'validate_config'
> lib/vdsm/tool/configurator.py:209: Unused function 'remove_config'
> lib/vdsm/tool/configurators/libvirt.py:38: Unused variable 'requires'
> lib/vdsm/tool/dump_volume_chains.py:84: Unused function 'dump_chains'
> lib/vdsm/tool/__init__.py:29: Unused attribute '_vdsm_tool'
> lib/vdsm/tool/network.py:26: Unused function 'retore_nets_init'
> lib/vdsm/tool/register.py:175: Unused attribute 'propagate'
> lib/vdsm/tool/restore_nets.py:29: Unused function 'restore_command'
> lib/vdsm/tool/service.py:363: Unused function 'service_start_command'
> lib/vdsm/tool/service.py:364: Unused variable 'cmdName'
> lib/vdsm/tool/service.py:381: Unused function 'service_stop_command'
> lib/vdsm/tool/service.py:399: Unused function 'service_status_command'
> lib/vdsm/tool/service.py:422: Unused function 'service_restart_command'
> lib/vdsm/tool/service.py:440: Unused function 'service_reload_command'
> lib/vdsm/tool/service.py:458: Unused function 'service_disable_command'
> lib/vdsm/tool/service.py:476: Unused function 'service_is_managed_command'
> lib/vdsm/tool/transient.py:42: Unused function 'setup_transient_repository'
> lib/vdsm/tool/transient.py:64: Unused function 'cleanup_transient_repository'
> lib/vdsm/tool/unified_persistence.py:198: Unused function 'unified_persistence'
> lib/vdsm/tool/vdsm-id.py:26: Unused function 'getUUID'
> lib/vdsm/utils.py:115: Unused function 'rmTree'
> lib/vdsm/utils.py:412: Unused function 'listSplit'
> lib/vdsm/utils.py:719: Unused function 'prependDefer'
> lib/vdsm/utils.py:73: Unused variable 'BEST_EFFORT'
> lib/vdsm/v2v.py:735: Unused variable 'TERM_DELAY'
> lib/vdsm/virt/guestagent.py:497: Unused function 'setNumberOfCPUs'
> lib/vdsm/virt/sampling.py:103: Unused attribute 'duplex'
> lib/vdsm/virt/sampling.py:358: Unused function 'is_empty'
> lib/vdsm/virt/utils.py:174: Unused property 'bound'
> lib/vdsm/virt/utils.py:208: Unused function 'is_kvm'
> lib/vdsm/virt/vmstats.py:267: Unused variable 'start_index'
> lib/vdsm/virt/vmstats.py:267: Unused variable 'start_sample'
> lib/vdsm/xmlrpc.py:37: Unused variable 'protocol_version'
> lib/yajsonrpc/betterAsyncore.py:150: Unused function 'log_info'
> lib/yajsonrpc/betterAsyncore.py:54: Unused function 'handle_expt'
> lib/yajsonrpc/__init__.py:451: Unused function 'registerEventCallback'
> lib/yajsonrpc/__init__.py:454: Unused function 'unregisterEventCallback'
> lib/yajsonrpc/stomp.py:427: Unused function '_milis'
> lib/yajsonrpc/stomp.py:467: Unused function 'getLastError'
> lib/yajsonrpc/stomp.py:565: Unused attribute '_ack'
> lib/yajsonrpc/stomp.py:568: Unused attribute '_valid'
> lib/yajsonrpc/stomp.py:62: Unused variable 'CONTENT_LENGTH'
> vdsm/API.py:1035: Unused variable 'NFS'
> vdsm/API.py:1036: Unused variable 'FCP'
> vdsm/API.py:1037: Unused variable 'ISCSI'
> vdsm/API.py:1038: Unused variable 'LOCALFS'
> vdsm/API.py:1039: Unused variable 'CIFS'
> vdsm/API.py:1040: Unused variable 'POSIXFS'
> vdsm/API.py:1042: Unused class 'Classes'
> vdsm/API.py:1044: Unused variable 'ISO'
> vdsm/API.py:1045: Unused variable 'BACKUP'
> vdsm/API.py:1187: Unused variable 'enableScsiFencing'
> vdsm/API.py:820: Unused variable 'PREALLOCATED'
> vdsm/API.py:821: Unused variable 'SPARSE'
> vdsm/API.py:825: Unused variable 'COW'
> vdsm/API.py:830: Unused variable 'LEAF'
> vdsm/API.py:862: Unused function 'verify_untrusted'
> vdsm/API.py:905: Unused class 'DiskTypes'
> vdsm/API.py:907: Unused variable 'SYSTEM'
> vdsm/API.py:908: Unused variable 'DATA'
> vdsm/API.py:910: Unused variable 'SWAP'
> vdsm/API.py:911: Unused variable 'TEMP'
> vdsm/clientIF.py:102: Unused attribute 'lastRemoteAccess'
> vdsm/gluster/api.py:114: Unused function 'getGeoRepKeys'
> vdsm/gluster/api.py:124: Unused function 'updateGeoRepKeys'
> vdsm/gluster/api.py:175: Unused function 'createMountBrokerRoot'
> vdsm/gluster/api.py:190: Unused function 'mountMetaVolume'
> vdsm/gluster/api.py:237: Unused function 'snapshotScheduleDisable'
> vdsm/gluster/api.py:247: Unused function 'snapshotScheduleFlagUpdate'
> vdsm/gluster/api.py:510: Unused function 'volumeStatsInfoGet'
> vdsm/gluster/apiwrapper.py:104: Unused class 'GlusterTask'
> vdsm/gluster/apiwrapper.py:142: Unused function 'setOptionsList'
> vdsm/gluster/apiwrapper.py:148: Unused function 'addBrick'
> vdsm/gluster/apiwrapper.py:153: Unused function 'removeBrickStart'
> vdsm/gluster/apiwrapper.py:157: Unused function 'removeBrickStop'
> vdsm/gluster/apiwrapper.py:161: Unused function 'removeBrickStatus'
> vdsm/gluster/apiwrapper.py:165: Unused function 'removeBrickCommit'
> vdsm/gluster/apiwrapper.py:169: Unused function 'removeBrickForce'
> vdsm/gluster/apiwrapper.py:173: Unused function 'replaceBrickCommitForce'
> vdsm/gluster/apiwrapper.py:178: Unused function 'profileInfo'
> vdsm/gluster/apiwrapper.py:181: Unused function 'profileStart'
> vdsm/gluster/apiwrapper.py:184: Unused function 'profileStop'
> vdsm/gluster/apiwrapper.py:187: Unused function 'rebalanceStart'
> vdsm/gluster/apiwrapper.py:191: Unused function 'rebalanceStop'
> vdsm/gluster/apiwrapper.py:194: Unused function 'rebalanceStatus'
> vdsm/gluster/apiwrapper.py:197: Unused function 'geoRepSessionStart'
> vdsm/gluster/apiwrapper.py:205: Unused function 'geoRepSessionStop'
> vdsm/gluster/apiwrapper.py:213: Unused function 'geoRepSessionStatus'
> vdsm/gluster/apiwrapper.py:220: Unused function 'geoRepSessionList'
> vdsm/gluster/apiwrapper.py:227: Unused function 'geoRepSessionPause'
> vdsm/gluster/apiwrapper.py:235: Unused function 'geoRepSessionResume'
> vdsm/gluster/apiwrapper.py:244: Unused function 'geoRepConfigList'
> vdsm/gluster/apiwrapper.py:250: Unused function 'geoRepConfigSet'
> vdsm/gluster/apiwrapper.py:257: Unused function 'geoRepConfigReset'
> vdsm/gluster/apiwrapper.py:265: Unused function 'snapshotCreate'
> vdsm/gluster/apiwrapper.py:271: Unused function 'snapshotDeleteAll'
> vdsm/gluster/apiwrapper.py:281: Unused function 'snapshotList'
> vdsm/gluster/apiwrapper.py:297: Unused function 'geoRepSessionCreate'
> vdsm/gluster/apiwrapper.py:307: Unused function 'geoRepSessionDelete'
> vdsm/gluster/apiwrapper.py:32: Unused class 'GlusterHook'
> vdsm/gluster/apiwrapper.py:330: Unused class 'GlusterSnapshot'
> vdsm/gluster/apiwrapper.py:346: Unused function 'configList'
> vdsm/gluster/apiwrapper.py:349: Unused function 'configSet'
> vdsm/gluster/apiwrapper.py:62: Unused class 'GlusterHost'
> vdsm/gluster/apiwrapper.py:75: Unused function 'removeByUuid'
> vdsm/gluster/cli.py:1146: Unused function 'volumeGeoRepStatus'
> vdsm/gluster/cli.py:1221: Unused function 'volumeGeoRepConfig'
> vdsm/gluster/cli.py:1376: Unused function 'snapshotConfig'
> vdsm/gluster/cli.py:1496: Unused function 'snapshotInfo'
> vdsm/gluster/cli.py:1514: Unused function 'executeGsecCreate'
> vdsm/gluster/cli.py:1524: Unused function 'executeMountBrokerUserAdd'
> vdsm/gluster/cli.py:1537: Unused function 'executeMountBrokerOpt'
> vdsm/gluster/cli.py:586: Unused function 'volumeSetHelpXml'
> vdsm/gluster/cli.py:609: Unused function 'volumeAddBrick'
> vdsm/gluster/cli.py:66: Unused class 'BrickStatus'
> vdsm/gluster/cli.py:68: Unused variable 'COMPLETED'
> vdsm/gluster/cli.py:71: Unused variable 'NA'
> vdsm/gluster/cli.py:826: Unused function 'peerProbe'
> vdsm/gluster/cli.py:836: Unused function 'peerDetach'
> vdsm/gluster/cli.py:870: Unused function 'peerStatus'
> vdsm/gluster/gfapi.py:215: Unused function 'volumeStatvfs'
> vdsm/gluster/hooks.py:47: Unused variable 'S'
> vdsm/gluster/hooks.py:49: Unused variable 'K'
> vdsm/gluster/__init__.py:38: Unused function 'listPublicFunctions'
> vdsm/gluster/services.py:45: Unused variable 'START'
> vdsm/gluster/services.py:46: Unused variable 'STOP'
> vdsm/gluster/services.py:47: Unused variable 'RESTART'
> vdsm/gluster/storagedev.py:296: Unused attribute '_defaultFormatOptions'
> vdsm/hooking.py:53: Unused function 'read_domxml'
> vdsm/hooking.py:58: Unused function 'write_domxml'
> vdsm/hooking.py:63: Unused function 'read_json'
> vdsm/hooking.py:68: Unused function 'write_json'
> vdsm/hooking.py:77: Unused function 'exit_hook'
> vdsm/sos/vdsm.py:59: Unused class 'vdsm'
> vdsm/storage/blockSD.py:416: Unused variable 'imgUUUID'
> vdsm/storage/blockVolume.py:276: Unused function 'setImage'
> vdsm/storage/blockVolume.py:421: Unused function 'halfbakedVolumeRollback'
> vdsm/storage/blockVolume.py:422: Unused variable 'taskObj'
> vdsm/storage/blockVolume.py:442: Unused function 'createVolumeMetadataRollback'
> vdsm/storage/blockVolume.py:660: Unused function 'renameVolumeRollback'
> vdsm/storage/blockVolume.py:695: Unused function 'shareVolumeRollback'
> vdsm/storage/hsm.py:259: Unused class 'HSM'
> vdsm/storage/hsm.py:350: Unused attribute '_preparedVolumes'
> vdsm/storage/hsm.py:89: Unused variable 'INITIALIZED'
> vdsm/storage/hsm.py:90: Unused variable 'CAPACITY'
> vdsm/storage/hsm.py:91: Unused variable 'PATHLIST'
> vdsm/storage/hsm.py:97: Unused variable 'STORAGE_CONNECTION_DIR'
> vdsm/storage/image.py:114: Unused function 'createImageRollback'
> vdsm/storage/image.py:252: Unused function 'getTemplate'
> vdsm/storage/iscsiadm.py:31: Unused variable 'ISCSI_ERR_SESS_EXISTS'
> vdsm/storage/iscsiadm.py:351: Unused function 'session_rescan'
> vdsm/storage/iscsi.py:388: Unused function 'fromConf'
> vdsm/storage/iscsi.py:468: Unused function 'getiScsiTarget'
> vdsm/storage/iscsi.py:487: Unused function 'getDefaultInitiatorName'
> vdsm/storage/iscsi.py:48: Unused variable 'ISCSI_DEFAULT_PORT'
> vdsm/storage/iscsi.py:49: Unused variable 'SCAN_PATTERN'
> vdsm/storage/iscsi.py:70: Unused function 'getDevIscsiInfo'
> vdsm/storage/lvm.py:1300: Unused function 'addLVTags'
> vdsm/storage/lvm.py:51: Unused variable 'LVM_DEFAULT_TTL'
> vdsm/storage/lvm.py:629: Unused function 'getAllLvs'
> vdsm/storage/lvm.py:86: Unused variable 'VG_UNKNOWN'
> vdsm/storage/monitor.py:151: Unused property 'domains'
> vdsm/storage/multipath.py:123: Unused function '_resize_map'
> vdsm/storage/multipath.py:142: Unused function 'deduceType'
> vdsm/storage/outOfProcess.py:374: Unused attribute '_modName'
> vdsm/storage/resourceManager.py:958: Unused function 'ownedResources'
> vdsm/storage/resourceManager.py:962: Unused function 'requestedResources'
> vdsm/storage/sdc.py:36: Unused variable 'DEFAULT_REFRESH_INTERVAL'
> vdsm/storage/sdm/volume_artifacts.py:107: Unused function 'is_garbage'
> vdsm/storage/sdm/volume_artifacts.py:224: Unused property 'lease_path'
> vdsm/storage/sd.py:245: Unused function 'sizeStr2Int'
> vdsm/storage/sd.py:546: Unused variable 'mdBackupVersions'
> vdsm/storage/sp.py:1375: Unused function 'getIsoDomain'
> vdsm/storage/storage_mailbox.py:223: Unused function 'flushMessages'
> vdsm/storage/storage_mailbox.py:522: Unused function 'unregisterMessageType'
> vdsm/storage/storage_mailbox.py:589: Unused function 'isStopped'
> vdsm/storage/storage_mailbox.py:592: Unused function 'getMaxHostID'
> vdsm/storage/storageServer.py:118: Unused property 'vfsType'
> vdsm/storage/storageServer.py:130: Unused function 'getLocalPathBase'
> vdsm/storage/storageServer.py:325: Unused property 'retrans'
> vdsm/storage/storageServer.py:65: Unused class 'ExampleConnection'
> vdsm/storage/storageServer.py:69: Unused variable 'arg1'
> vdsm/storage/storageServer.py:69: Unused variable 'arg2'
> vdsm/storage/taskManager.py:143: Unused function 'unloadTasks'
> vdsm/storage/task.py:1302: Unused function 'getState'
> vdsm/storage/task.py:1336: Unused function 'getID'
> vdsm/storage/task.py:436: Unused variable 'medium'
> vdsm/storage/task.py:471: Unused attribute 'metadataVersion'
> vdsm/storage/task.py:528: Unused function '__state_preparing'
> vdsm/storage/task.py:531: Unused function '__state_blocked'
> vdsm/storage/task.py:534: Unused function '__state_acquiring'
> vdsm/storage/task.py:538: Unused function '__state_queued'
> vdsm/storage/task.py:545: Unused function '__state_running'
> vdsm/storage/task.py:548: Unused function '__state_finished'
> vdsm/storage/task.py:551: Unused function '__state_aborting'
> vdsm/storage/task.py:562: Unused function '__state_waitrecover'
> vdsm/storage/task.py:565: Unused function '__state_racquiring'
> vdsm/storage/task.py:569: Unused function '__state_recovering'
> vdsm/storage/task.py:572: Unused function '__state_raborting'
> vdsm/storage/task.py:579: Unused function '__state_recovered'
> vdsm/storage/task.py:582: Unused function '__state_failed'
> vdsm/storage/task.py:585: Unused function '__state_cleaning'
> vdsm/storage/task.py:717: Unused function '_getResourcesKeyList'
> vdsm/storage/task.py:80: Unused variable 'RESOURCE_SEP'
> vdsm/storage/threadPool.py:136: Unused function 'stopThread'
> vdsm/storage/threadPool.py:35: Unused attribute '_taskThread'
> vdsm/storage/threadPool.py:95: Unused function 'getThreadCount'
> vdsm/storage/volume.py:635: Unused function 'killProcRollback'
> vdsm/storage/volume.py:640: Unused function 'rebaseVolumeRollback'
> vdsm/storage/volume.py:773: Unused function 'parentVolumeRollback'
> vdsm/storage/volume.py:788: Unused function 'startCreateVolumeRollback'
> vdsm/storage/volume.py:803: Unused function 'createVolumeRollback'
> vdsm/storage/volume.py:992: Unused function 'extendSizeFinalize'
> vdsm/supervdsm_api/__init__.py:24: Unused attribute 'exposed_api'
> vdsm/supervdsm_api/network.py:29: Unused function 'restoreNetworks'
> vdsm/virt/vmdevices/graphics.py:214: Unused function 'makeSpecParams'
> vdsm/virt/vmdevices/storage.py:167: Unused attribute 'reqsize'
> vdsm/virt/vmdevices/storage.py:332: Unused attribute '_diskType'
> vdsm/virt/vm.py:2126: Unused function '_lookupDeviceByPath'



More information about the Devel mailing list