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' _______________________________________________ Devel mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/devel
