Change in vdsm[master]: udev: Race fix- load and trigger dev rule(#891300)
by vvolansk@redhat.com
Hello Lee Yarwood,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/10758
to review the following change.
Change subject: udev: Race fix- load and trigger dev rule(#891300)
......................................................................
udev: Race fix- load and trigger dev rule(#891300)
The rule file is generated, yet not synch-loaded in memory, so a VM with
a with a direct lun fails to start.
This patch inroduces two additional udev functions:
1. udevReloadRules() in supervdsmServer.py .
This should be called before uderTrigger().
2. udevSettle() in supervdsmServer.py .
This should be called after usedTrigger().
is written but not sync loaded in memory.
These functions are now called before and after (in correspondance)
udevTrigger() in appropriateDevice() (hsm.py).
Also added a check in appropriateDevice() to make sure the mapping is
indeed there.
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=891300
Change-Id: If3b2008a3d9df2dcaf54190721c2dd9764338627
Signed-off-by: Lee Yarwood <lyarwood(a)redhat.com>
Signed-off-by: Vered Volansky <vvolansk(a)redhat.com>
---
M vdsm/storage/hsm.py
M vdsm/supervdsmServer.py
2 files changed, 24 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/58/10758/1
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index 5584315..d7d44eb 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -2924,7 +2924,15 @@
Warning: Internal use only.
"""
supervdsm.getProxy().appropriateDevice(guid, thiefId)
+ supervdsm.getProxy().udevReloadRules(guid)
supervdsm.getProxy().udevTrigger(guid)
+ supervdsm.getProxy().udevSettle(guid)
+ try:
+ devPath = '/dev/mapper/%s' % guid
+ fileUtils.validateQemuReadable(devPath)
+ except OSError:
+ self.log.error("Failed to appropriate device permission")
+ raise
@public
def inappropriateDevices(self, thiefId):
diff --git a/vdsm/supervdsmServer.py b/vdsm/supervdsmServer.py
index 486471c..ad73fa4 100755
--- a/vdsm/supervdsmServer.py
+++ b/vdsm/supervdsmServer.py
@@ -226,6 +226,14 @@
return configNetwork.setSafeNetworkConfig()
@logDecorator
+ def udevReloadRules(self, guid):
+ cmd = [EXT_UDEVADM, 'control', '--reload-rules']
+ rc, out, err = misc.execCmd(cmd, sudo=False)
+ if rc:
+ raise OSError(errno.EINVAL, "Could not reload-rules for device \
+ %s, out %s\nerr %s" % (guid, out, err))
+
+ @logDecorator
def udevTrigger(self, guid):
cmd = [EXT_UDEVADM, 'trigger', '--verbose', '--action', 'change',
'--property-match=DM_NAME=%s' % guid]
@@ -235,6 +243,14 @@
%s, out %s\nerr %s" % (guid, out, err))
@logDecorator
+ def udevSettle(self, guid):
+ cmd = [EXT_UDEVADM, 'settle']
+ rc, out, err = misc.execCmd(cmd, sudo=False)
+ if rc:
+ raise OSError(errno.EINVAL, "Could not settle for device \
+ %s, out %s\nerr %s" % (guid, out, err))
+
+ @logDecorator
def appropriateDevice(self, guid, thiefId):
ruleFile = _UDEV_RULE_FILE_NAME % (guid, thiefId)
rule = 'SYMLINK=="mapper/%s", OWNER="%s", GROUP="%s"\n' % (guid,
--
To view, visit http://gerrit.ovirt.org/10758
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If3b2008a3d9df2dcaf54190721c2dd9764338627
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Vered Volansky <vvolansk(a)redhat.com>
Gerrit-Reviewer: Lee Yarwood <lyarwood(a)redhat.com>
11 years, 4 months
Change in vdsm[master]: upgrade: force upgrade to v2 before upgrading to v3
by Federico Simoncelli
Federico Simoncelli has uploaded a new change for review.
Change subject: upgrade: force upgrade to v2 before upgrading to v3
......................................................................
upgrade: force upgrade to v2 before upgrading to v3
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=893184
Change-Id: I2bd424ad29e76d1368ff2959bb8fe45afc595cdb
Signed-off-by: Federico Simoncelli <fsimonce(a)redhat.com>
---
M vdsm/storage/imageRepository/formatConverter.py
1 file changed, 14 insertions(+), 8 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/92/10792/1
diff --git a/vdsm/storage/imageRepository/formatConverter.py b/vdsm/storage/imageRepository/formatConverter.py
index ff9a507..037c212 100644
--- a/vdsm/storage/imageRepository/formatConverter.py
+++ b/vdsm/storage/imageRepository/formatConverter.py
@@ -93,6 +93,19 @@
log = logging.getLogger('Storage.v3DomainConverter')
log.debug("Starting conversion for domain %s", domain.sdUUID)
+ targetVersion = 3
+ currentVersion = domain.getVersion()
+
+ # If we're upgrading from version 0 we need to first upgrade to version 2
+ # and then proceed to upgrade to version 3.
+ if currentVersion == 0:
+ v2DomainConverter(repoPath, hostId, domain, isMsd)
+ currentVersion = domain.getVersion()
+
+ if currentVersion != 2:
+ log.debug("Unsupported conversion from version %s to version %s",
+ currentVersion, targetVersion)
+
if domain.getStorageType() in sd.FILE_DOMAIN_TYPES:
log.debug("Setting permissions for domain %s", domain.sdUUID)
domain.setMetadataPermissions()
@@ -268,17 +281,10 @@
"not critical since the volume might be in use",
imgUUID, exc_info=True)
- targetVersion = 3
- currentVersion = domain.getVersion()
log.debug("Finalizing the storage domain upgrade from version %s to "
"version %s for domain %s", currentVersion, targetVersion,
domain.sdUUID)
-
- if (currentVersion not in blockSD.VERS_METADATA_TAG and
- domain.getStorageType() in sd.BLOCK_DOMAIN_TYPES):
- __convertDomainMetadataToTags(domain, targetVersion)
- else:
- domain.setMetaParam(sd.DMDK_VERSION, targetVersion)
+ domain.setMetaParam(sd.DMDK_VERSION, targetVersion)
except:
if isMsd:
--
To view, visit http://gerrit.ovirt.org/10792
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2bd424ad29e76d1368ff2959bb8fe45afc595cdb
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <fsimonce(a)redhat.com>
11 years, 4 months
Change in vdsm[master]: use CommandPath.name
by Dan Kenigsberg
Dan Kenigsberg has uploaded a new change for review.
Change subject: use CommandPath.name
......................................................................
use CommandPath.name
At the moment, CommandPath.name is initialized, but its only use as a
third string argument to OSError() is ignored.
Change-Id: I1f47b262d463a71b0438648201854cb6556355d8
Signed-off-by: Dan Kenigsberg <danken(a)redhat.com>
---
M vdsm/utils.py
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/30/10830/1
diff --git a/vdsm/utils.py b/vdsm/utils.py
index f29533c..08a5095 100644
--- a/vdsm/utils.py
+++ b/vdsm/utils.py
@@ -896,7 +896,7 @@
break
else:
raise OSError(os.errno.ENOENT,
- os.strerror(os.errno.ENOENT), self.name)
+ os.strerror(os.errno.ENOENT) + ': ' + self.name)
return self._cmd
def __repr__(self):
--
To view, visit http://gerrit.ovirt.org/10830
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1f47b262d463a71b0438648201854cb6556355d8
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dan Kenigsberg <danken(a)redhat.com>
11 years, 4 months
Change in vdsm[master]: Unify produceVolume
by deepakcs@linux.vnet.ibm.com
Deepak C Shetty has uploaded a new change for review.
Change subject: Unify produceVolume
......................................................................
Unify produceVolume
Unify produceVolume function and make it use getVolumeClass
so that subclasses can override getVolumeClass to specify
their own Volume and ensure that produceVolume works
properly with subclass supplying their own volumeclass.
Change-Id: I367582b2741dc0276ec64d8d13fa1e4953f0314b
Signed-off-by: Deepak C Shetty <deepakcs(a)linux.vnet.ibm.com>
---
M vdsm/storage/blockSD.py
M vdsm/storage/fileSD.py
M vdsm/storage/sd.py
3 files changed, 7 insertions(+), 15 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/15/8115/1
diff --git a/vdsm/storage/blockSD.py b/vdsm/storage/blockSD.py
index e596fb6..2da277d 100644
--- a/vdsm/storage/blockSD.py
+++ b/vdsm/storage/blockSD.py
@@ -477,14 +477,6 @@
return time.time() - t
- def produceVolume(self, imgUUID, volUUID):
- """
- Produce a type specific volume object
- """
- repoPath = self._getRepoPath()
- return blockVolume.BlockVolume(repoPath, self.sdUUID, imgUUID, volUUID)
-
-
def getVolumeClass(self):
"""
Return a type specific volume generator object
diff --git a/vdsm/storage/fileSD.py b/vdsm/storage/fileSD.py
index 054fadb..ae06c90 100644
--- a/vdsm/storage/fileSD.py
+++ b/vdsm/storage/fileSD.py
@@ -215,13 +215,6 @@
filesDict[fileName] = stats
return filesDict
- def produceVolume(self, imgUUID, volUUID):
- """
- Produce a type specific volume object
- """
- repoPath = self._getRepoPath()
- return fileVolume.FileVolume(repoPath, self.sdUUID, imgUUID, volUUID)
-
def getVolumeClass(self):
"""
Return a type specific volume generator object
diff --git a/vdsm/storage/sd.py b/vdsm/storage/sd.py
index 55c5b12..4e7485f 100644
--- a/vdsm/storage/sd.py
+++ b/vdsm/storage/sd.py
@@ -358,6 +358,13 @@
self.log.warn("Resource namespace %s already registered",
volumeResourcesNamespace)
+ def produceVolume(self, imgUUID, volUUID):
+ """
+ Produce a type specific volume object
+ """
+ repoPath = self._getRepoPath()
+ return self.getVolumeClass()(repoPath, self.sdUUID, imgUUID, volUUID)
+
def getVolumeClass(self):
"""
Return a type specific volume generator object
--
To view, visit http://gerrit.ovirt.org/8115
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I367582b2741dc0276ec64d8d13fa1e4953f0314b
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Deepak C Shetty <deepakcs(a)linux.vnet.ibm.com>
11 years, 4 months
Change in vdsm[master]: Introduce getMountPoint for NfsStorageDomain
by deepakcs@linux.vnet.ibm.com
Deepak C Shetty has uploaded a new change for review.
Change subject: Introduce getMountPoint for NfsStorageDomain
......................................................................
Introduce getMountPoint for NfsStorageDomain
Move the code to generate the mount point into a seperate
function, so that classes reusing NfsStorageDomain can
override the function to present their own mount point path.
Change-Id: I80f98eddcc31c1f01f42af838ecc483abb955f41
Signed-off-by: Deepak C Shetty <deepakcs(a)linux.vnet.ibm.com>
---
M vdsm/storage/nfsSD.py
1 file changed, 6 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/85/8085/1
diff --git a/vdsm/storage/nfsSD.py b/vdsm/storage/nfsSD.py
index d84fee6..6b53208 100644
--- a/vdsm/storage/nfsSD.py
+++ b/vdsm/storage/nfsSD.py
@@ -71,8 +71,7 @@
# Create local path
mntPath = fileUtils.transformPath(remotePath)
- mntPoint = os.path.join(cls.storage_repository,
- sd.DOMAIN_MNT_POINT, mntPath)
+ mntPoint = cls.getMountPoint(mntPath)
cls._preCreateValidation(sdUUID, mntPoint, remotePath, version)
@@ -94,6 +93,11 @@
return fsd
+ @classmethod
+ def getMountPoint(cls, mountPath):
+ return os.path.join(cls.storage_repository,
+ sd.DOMAIN_MNT_POINT, mountPath)
+
def selftest(self):
"""
Run internal self test
--
To view, visit http://gerrit.ovirt.org/8085
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I80f98eddcc31c1f01f42af838ecc483abb955f41
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Deepak C Shetty <deepakcs(a)linux.vnet.ibm.com>
11 years, 4 months
Change in vdsm[master]: Fix vdsm_hooks pep8.
by asegurap@redhat.com
Antoni Segura Puimedon has uploaded a new change for review.
Change subject: Fix vdsm_hooks pep8.
......................................................................
Fix vdsm_hooks pep8.
Change-Id: Ida004331709ac573db4ae6bf77da407830b31ac8
Signed-off-by: Antoni S. Puimedon <asegurap(a)redhat.com>
---
M Makefile.am
M vdsm_hooks/directlun/after_vm_destroy.py
M vdsm_hooks/directlun/before_vm_migrate_destination.py
M vdsm_hooks/directlun/before_vm_start.py
M vdsm_hooks/faqemu/before_vm_start.py
M vdsm_hooks/floppy/before_vm_migrate_source.py
M vdsm_hooks/floppy/before_vm_start.py
M vdsm_hooks/hostusb/after_vm_destroy.py
M vdsm_hooks/hostusb/before_vm_start.py
M vdsm_hooks/hugepages/after_vm_destroy.py
M vdsm_hooks/hugepages/before_vm_migrate_destination.py
M vdsm_hooks/hugepages/before_vm_start.py
M vdsm_hooks/isolatedprivatevlan/before_vm_start.py
M vdsm_hooks/nestedvt/before_vm_start.py
M vdsm_hooks/numa/before_vm_start.py
M vdsm_hooks/pincpu/before_vm_start.py
M vdsm_hooks/promisc/before_vm_destroy.py
M vdsm_hooks/qos/before_vm_start.py
M vdsm_hooks/smbios/before_vm_start.py
M vdsm_hooks/sriov/after_vm_destroy.py
M vdsm_hooks/vmdisk/before_vm_start.py
21 files changed, 149 insertions(+), 71 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/77/10777/1
diff --git a/Makefile.am b/Makefile.am
index af9913e..48bdc5e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -57,11 +57,7 @@
vdsm/vdsm \
vdsm_api \
vdsm_cli \
- vdsm_hooks/fileinject \
- vdsm_hooks/promisc/after_vm_start.py \
- vdsm_hooks/scratchpad \
- vdsm_hooks/sriov/before_vm_start.py \
- vdsm_hooks/vhostmd \
+ vdsm_hooks \
vdsm_reg \
$(NULL)
diff --git a/vdsm_hooks/directlun/after_vm_destroy.py b/vdsm_hooks/directlun/after_vm_destroy.py
index 8b0a9c2..ce51469 100755
--- a/vdsm_hooks/directlun/after_vm_destroy.py
+++ b/vdsm_hooks/directlun/after_vm_destroy.py
@@ -13,13 +13,15 @@
DEV_DIRECTLUN_PATH = '/dev/directlun'
+
def removeDeviceNode(devpath):
# we don't use os.unlink because we need sudo
command = ['/bin/rm', '-f', devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun after_vm_destroy: error rm -f %s, err = %s\n' % (devpath, err))
+ sys.stderr.write('directlun after_vm_destroy: error rm -f %s, '
+ 'err = %s\n' % (devpath, err))
sys.exit(2)
if 'directlun' in os.environ:
@@ -41,5 +43,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('directlun after_vm_destroy: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('directlun after_vm_destroy: [unexpected error]: '
+ '%s\n' % traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/directlun/before_vm_migrate_destination.py b/vdsm_hooks/directlun/before_vm_migrate_destination.py
index ee57020..b80e60d 100755
--- a/vdsm_hooks/directlun/before_vm_migrate_destination.py
+++ b/vdsm_hooks/directlun/before_vm_migrate_destination.py
@@ -11,19 +11,22 @@
DEV_MAPPER_PATH = "/dev/mapper"
DEV_DIRECTLUN_PATH = '/dev/directlun'
+
def createDirectory(dirpath):
# we don't use os.mkdir/chown because we need sudo
command = ['/bin/mkdir', '-p', dirpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error mkdir %s, err = %s\n' % (dirpath, err))
+ sys.stderr.write('directlun: error mkdir %s, err = %s\n' %
+ (dirpath, err))
sys.exit(2)
mode = '755'
command = ['/bin/chmod', mode, dirpath]
if retcode != 0:
- sys.stderr.write('directlun: error chmod %s %s, err = %s\n' % (dirpath, mode, err))
+ sys.stderr.write('directlun: error chmod %s %s, err = %s\n' %
+ (dirpath, mode, err))
sys.exit(2)
@@ -34,7 +37,8 @@
command = ['/bin/rm', '-f', devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error rm -f %s, err = %s\n' % (devpath, err))
+ sys.stderr.write('directlun: error rm -f %s, err = %s\n' %
+ (devpath, err))
sys.exit(2)
stat = os.stat(srcpath)
@@ -43,14 +47,16 @@
command = ['/bin/mknod', devpath, 'b', str(major), str(minor)]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error mknod %s, err = %s\n' % (devpath, err))
+ sys.stderr.write('directlun: error mknod %s, err = %s\n' %
+ (devpath, err))
sys.exit(2)
mode = '660'
command = ['/bin/chmod', mode, devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error chmod %s to %s, err = %s\n' % (devpath, mode, err))
+ sys.stderr.write('directlun: error chmod %s to %s, err = %s\n' %
+ (devpath, mode, err))
sys.exit(2)
group = grp.getgrnam('qemu')
@@ -61,7 +67,8 @@
command = ['/bin/chown', owner, devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error chown %s to %s, err = %s\n' % (devpath, owner, err))
+ sys.stderr.write('directlun: error chown %s to %s, err = %s\n' %
+ (devpath, owner, err))
sys.exit(2)
if 'directlun' in os.environ:
@@ -81,7 +88,8 @@
srcpath = DEV_MAPPER_PATH + '/' + lun
if not os.path.exists(srcpath):
- sys.stderr.write('directlun before_vm_migration_destination: device not found %s\n' % srcpath)
+ sys.stderr.write('directlun before_vm_migration_destination: '
+ 'device not found %s\n' % srcpath)
sys.exit(2)
uuid = domxml.getElementsByTagName('uuid')[0]
@@ -92,5 +100,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('directlun before_vm_migration_destination: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('directlun before_vm_migration_destination: '
+ '[unexpected error]: %s\n' % traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/directlun/before_vm_start.py b/vdsm_hooks/directlun/before_vm_start.py
index 0fff56a..bde62a2 100755
--- a/vdsm_hooks/directlun/before_vm_start.py
+++ b/vdsm_hooks/directlun/before_vm_start.py
@@ -12,6 +12,7 @@
DEV_DIRECTLUN_PATH = '/dev/directlun'
NUM_OF_PCI = 27
+
def indexToDiskName(i):
s = ''
while True:
@@ -20,6 +21,7 @@
if i == 0:
break
return 'vd' + (s or 'a')
+
def createDiskElement(domxml, devpath, lunid, options):
'''
@@ -72,13 +74,15 @@
command = ['/bin/mkdir', '-p', dirpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error mkdir %s, err = %s\n' % (dirpath, err))
+ sys.stderr.write('directlun: error mkdir %s, err = %s\n' %
+ (dirpath, err))
sys.exit(2)
mode = '755'
command = ['/bin/chmod', mode, dirpath]
if retcode != 0:
- sys.stderr.write('directlun: error chmod %s %s, err = %s\n' % (dirpath, mode, err))
+ sys.stderr.write('directlun: error chmod %s %s, err = %s\n' %
+ (dirpath, mode, err))
sys.exit(2)
@@ -89,7 +93,8 @@
command = ['/bin/rm', '-f', devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error rm -f %s, err = %s\n' % (devpath, err))
+ sys.stderr.write('directlun: error rm -f %s, err = %s\n' %
+ (devpath, err))
sys.exit(2)
stat = os.stat(srcpath)
@@ -98,14 +103,16 @@
command = ['/bin/mknod', devpath, 'b', str(major), str(minor)]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error mknod %s, err = %s\n' % (devpath, err))
+ sys.stderr.write('directlun: error mknod %s, err = %s\n' %
+ (devpath, err))
sys.exit(2)
mode = '660'
command = ['/bin/chmod', mode, devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error chmod %s to %s, err = %s\n' % (devpath, mode, err))
+ sys.stderr.write('directlun: error chmod %s to %s, err = %s\n' %
+ (devpath, mode, err))
sys.exit(2)
group = grp.getgrnam('qemu')
@@ -116,7 +123,8 @@
command = ['/bin/chown', owner, devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('directlun: error chown %s to %s, err = %s\n' % (devpath, owner, err))
+ sys.stderr.write('directlun: error chown %s to %s, err = %s\n' %
+ (devpath, owner, err))
sys.exit(2)
@@ -154,5 +162,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('directlun: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('directlun: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/faqemu/before_vm_start.py b/vdsm_hooks/faqemu/before_vm_start.py
index 18e46fe..ddc6fa7 100755
--- a/vdsm_hooks/faqemu/before_vm_start.py
+++ b/vdsm_hooks/faqemu/before_vm_start.py
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; 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
#
# Refer to the README and COPYING files for full details of the license
#
@@ -39,7 +39,7 @@
devices = domxml.getElementsByTagName('devices')[0]
if devices.getElementsByTagName('emulator'):
- pass # TODO override emulator tag
+ pass # TODO override emulator tag
else:
emulator = domxml.createElement('emulator')
emulatorPath = domxml.createTextNode('/usr/libexec/vdsm/vdsm-faqemu')
diff --git a/vdsm_hooks/floppy/before_vm_migrate_source.py b/vdsm_hooks/floppy/before_vm_migrate_source.py
index c700055..edf38c6 100755
--- a/vdsm_hooks/floppy/before_vm_migrate_source.py
+++ b/vdsm_hooks/floppy/before_vm_migrate_source.py
@@ -4,5 +4,6 @@
import sys
if 'floppy' in os.environ:
- sys.stderr.write('floppy before_vm_migrate_source: cannot migrate VM with floppy hook\n')
+ sys.stderr.write('floppy before_vm_migrate_source: cannot migrate VM with '
+ 'floppy hook\n')
sys.exit(2)
diff --git a/vdsm_hooks/floppy/before_vm_start.py b/vdsm_hooks/floppy/before_vm_start.py
index 4bc3e4b..7616ac6 100755
--- a/vdsm_hooks/floppy/before_vm_start.py
+++ b/vdsm_hooks/floppy/before_vm_start.py
@@ -28,7 +28,8 @@
floppy = os.environ['floppy']
if not os.path.isfile(floppy):
- sys.stderr.write('floppy: file not exists or not enough permissions: %s\n' % floppy)
+ sys.stderr.write('floppy: file not exists or not enough '
+ 'permissions: %s\n' % floppy)
sys.exit(2)
domxml = hooking.read_domxml()
@@ -50,5 +51,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('floppy: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('floppy: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/hostusb/after_vm_destroy.py b/vdsm_hooks/hostusb/after_vm_destroy.py
index 3f6e8c7..8c18a53 100755
--- a/vdsm_hooks/hostusb/after_vm_destroy.py
+++ b/vdsm_hooks/hostusb/after_vm_destroy.py
@@ -14,6 +14,7 @@
HOOK_HOSTUSB_PATH = '/var/run/vdsm/hooks/hostusb-permissions'
+
def get_owner(devpath):
uid = pid = -1
content = ''
@@ -38,6 +39,7 @@
return uid, pid
+
#!TODO:
# merge chown with before_vm_start.py
# maybe put it in hooks.py?
@@ -55,7 +57,8 @@
uid, gid = get_owner(devpath)
if uid == -1:
- sys.stderr.write('hostusb after_vm_destroy: cannot find devpath: %s in file: %s\n' % (devpath, HOOK_HOSTUSB_PATH))
+ sys.stderr.write('hostusb after_vm_destroy: cannot find devpath: %s '
+ 'in file: %s\n' % (devpath, HOOK_HOSTUSB_PATH))
return
# we don't use os.chown because we need sudo
@@ -63,7 +66,8 @@
command = ['/bin/chown', owner, devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('hostusb after_vm_destroy: error chown %s to %s, err = %s\n' % (devpath, owner, err))
+ sys.stderr.write('hostusb after_vm_destroy: error chown %s to %s, '
+ 'err = %s\n' % (devpath, owner, err))
sys.exit(2)
if 'hostusb' in os.environ:
@@ -71,11 +75,16 @@
regex = re.compile('^0x[\d,A-F,a-f]{4}$')
for usb in os.environ['hostusb'].split('&'):
vendorid, productid = usb.split(':')
- if len(regex.findall(vendorid)) != 1 or len(regex.findall(productid)) != 1:
- sys.stderr.write('hostusb after_vm_destroy: bad input, expected 0x0000 format for vendor and product id, input: %s:%s\n' % (vendorid, productid))
+ if len(regex.findall(vendorid)) != 1 or \
+ len(regex.findall(productid)) != 1:
+ sys.stderr.write('hostusb after_vm_destroy: bad input, '
+ 'expected 0x0000 format for vendor and '
+ 'product id, input: %s:%s\n' %
+ (vendorid, productid))
sys.exit(2)
chown(vendorid, productid)
except:
- sys.stderr.write('hostusb after_vm_destroy: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('hostusb after_vm_destroy: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/hostusb/before_vm_start.py b/vdsm_hooks/hostusb/before_vm_start.py
index 3d3bbed..266df60 100755
--- a/vdsm_hooks/hostusb/before_vm_start.py
+++ b/vdsm_hooks/hostusb/before_vm_start.py
@@ -40,6 +40,7 @@
HOOK_HOSTUSB_PATH = '/var/run/vdsm/hooks/hostusb-permissions'
+
def log_dev_owner(devpath, user, group):
entry = devpath + ":" + str(user) + ":" + str(group)
@@ -56,6 +57,7 @@
f = file(HOOK_HOSTUSB_PATH, 'a')
f.writelines(entry)
f.close()
+
#!TODO:
# merge chown with after_vm_destroy.py
@@ -85,10 +87,12 @@
command = ['/bin/chown', owner, devpath]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('hostusb: error chown %s to %s, err = %s\n' % (devpath, owner, err))
+ sys.stderr.write('hostusb: error chown %s to %s, err = %s\n' %
+ (devpath, owner, err))
sys.exit(2)
log_dev_owner(devpath, stat.st_uid, stat.st_gid)
+
def create_usb_device(domxml, vendorid, productid):
hostdev = domxml.createElement('hostdev')
@@ -116,8 +120,11 @@
for usb in os.environ['hostusb'].split('&'):
vendorid, productid = usb.split(':')
- if len(regex.findall(vendorid)) != 1 or len(regex.findall(productid)) != 1:
- sys.stderr.write('hostusb: bad input, expected 0x0000 format for vendor and product id, input: %s:%s\n' % (vendorid, productid))
+ if len(regex.findall(vendorid)) != 1 or \
+ len(regex.findall(productid)) != 1:
+ sys.stderr.write('hostusb: bad input, expected 0x0000 format '
+ 'for vendor and product id, input: %s:%s\n' %
+ (vendorid, productid))
sys.exit(2)
hostdev = create_usb_device(domxml, vendorid, productid)
@@ -126,5 +133,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('hostusb: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('hostusb: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/hugepages/after_vm_destroy.py b/vdsm_hooks/hugepages/after_vm_destroy.py
index c28dfca..2fb5e85 100755
--- a/vdsm_hooks/hugepages/after_vm_destroy.py
+++ b/vdsm_hooks/hugepages/after_vm_destroy.py
@@ -6,6 +6,7 @@
NUMBER_OF_HUGETPAGES = '/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages'
+
def removeSysHugepages(pages):
f = file(NUMBER_OF_HUGETPAGES, 'r')
currPages = int(f.read())
@@ -22,5 +23,6 @@
removeSysHugepages(pages)
except:
- sys.stderr.write('hugepages: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('hugepages: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/hugepages/before_vm_migrate_destination.py b/vdsm_hooks/hugepages/before_vm_migrate_destination.py
index 9d28fdf..d076398 100755
--- a/vdsm_hooks/hugepages/before_vm_migrate_destination.py
+++ b/vdsm_hooks/hugepages/before_vm_migrate_destination.py
@@ -8,6 +8,7 @@
NUMBER_OF_HUGETPAGES = '/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages'
+
def addSysHugepages(pages):
f = file(NUMBER_OF_HUGETPAGES, 'r')
currPages = int(f.read())
@@ -18,7 +19,8 @@
command = ['sysctl', 'vm.nr_hugepages=%d' % totalPages]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('hugepages before_vm_migraton_destination: error in command: %s, err = %s\n' % (' '.join(command), err))
+ sys.stderr.write('hugepages before_vm_migraton_destination: error in '
+ 'command: %s, err = %s\n' % (' '.join(command), err))
sys.exit(2)
f = file(NUMBER_OF_HUGETPAGES, 'r')
@@ -26,6 +28,7 @@
f.close()
return (newCurrPages - currPages)
+
def freeSysHugepages(pages):
f = file(NUMBER_OF_HUGETPAGES, 'r')
@@ -37,7 +40,9 @@
command = ['sysctl', 'vm.nr_hugepages=%d' % (currPages - pages)]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('hugepages before_vm_migraton_destination: error in command: %s, err = %s\n' % (' '.join(command), err))
+ sys.stderr.write('hugepages before_vm_migraton_destination: error '
+ 'in command: %s, err = %s\n' %
+ (' '.join(command), err))
sys.exit(2)
@@ -47,14 +52,14 @@
addSysHugepages(pages)
except:
- sys.stderr.write('hugepages before_vm_migraton_destination: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('hugepages before_vm_migraton_destination: '
+ '[unexpected error]: %s\n' % traceback.format_exc())
sys.exit(2)
-
-
# Add system hugepages
allocatedPages = addSysHugepages(pages)
if allocatedPages != pages:
freeSysHugepages(allocatedPages)
- sys.stderr.write('hugepages before_vm_migraton_destination: cannot allocate enough pages\n')
+ sys.stderr.write('hugepages before_vm_migraton_destination: cannot'
+ ' allocate enough pages\n')
sys.exit(2)
diff --git a/vdsm_hooks/hugepages/before_vm_start.py b/vdsm_hooks/hugepages/before_vm_start.py
index 23874ed..cddf475 100755
--- a/vdsm_hooks/hugepages/before_vm_start.py
+++ b/vdsm_hooks/hugepages/before_vm_start.py
@@ -44,7 +44,8 @@
command = ['sysctl', 'vm.nr_hugepages=%d' % totalPages]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('hugepages: error in command: %s, err = %s\n' % (' '.join(command), err))
+ sys.stderr.write('hugepages: error in command: %s, err = %s\n' %
+ (' '.join(command), err))
sys.exit(2)
f = file(NUMBER_OF_HUGETPAGES, 'r')
@@ -52,6 +53,7 @@
f.close()
return (newCurrPages - currPages)
+
def freeSysHugepages(pages):
f = file(NUMBER_OF_HUGETPAGES, 'r')
@@ -63,7 +65,8 @@
command = ['sysctl', 'vm.nr_hugepages=%d' % (currPages - pages)]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('hugepages: error in command: %s, err = %s\n' % (' '.join(command), err))
+ sys.stderr.write('hugepages: error in command: %s, err = %s\n' %
+ (' '.join(command), err))
sys.exit(2)
@@ -96,5 +99,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('hugepages: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('hugepages: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/isolatedprivatevlan/before_vm_start.py b/vdsm_hooks/isolatedprivatevlan/before_vm_start.py
index 8332470..6f839ed 100755
--- a/vdsm_hooks/isolatedprivatevlan/before_vm_start.py
+++ b/vdsm_hooks/isolatedprivatevlan/before_vm_start.py
@@ -7,6 +7,7 @@
filtername = 'isolatedprivatevlan-vdsm'
+
def addInterfaceFilter(domxml, interface, gateway, ip):
if not ip is None:
filterref = domxml.createElement('filterref')
@@ -45,5 +46,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('isolated-privatevlan: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('isolated-privatevlan: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/nestedvt/before_vm_start.py b/vdsm_hooks/nestedvt/before_vm_start.py
index 446a487..656a03f 100755
--- a/vdsm_hooks/nestedvt/before_vm_start.py
+++ b/vdsm_hooks/nestedvt/before_vm_start.py
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; 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
#
# Refer to the README and COPYING files for full details of the license
#
diff --git a/vdsm_hooks/numa/before_vm_start.py b/vdsm_hooks/numa/before_vm_start.py
index 83e1f10..cefdb6f 100755
--- a/vdsm_hooks/numa/before_vm_start.py
+++ b/vdsm_hooks/numa/before_vm_start.py
@@ -48,5 +48,6 @@
sys.stderr.write('numa: numa already exists in domain xml')
sys.exit(2)
except:
- sys.stderr.write('numa: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('numa: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/pincpu/before_vm_start.py b/vdsm_hooks/pincpu/before_vm_start.py
index 0377992..6ea4528 100755
--- a/vdsm_hooks/pincpu/before_vm_start.py
+++ b/vdsm_hooks/pincpu/before_vm_start.py
@@ -21,11 +21,14 @@
vcpu = domxml.getElementsByTagName('vcpu')[0]
if not vcpu.hasAttribute('cpuset'):
- sys.stderr.write('pincpu: pinning cpu to: %s\n' % os.environ['pincpu'])
+ sys.stderr.write('pincpu: pinning cpu to: %s\n' %
+ os.environ['pincpu'])
vcpu.setAttribute('cpuset', os.environ['pincpu'])
hooking.write_domxml(domxml)
else:
- sys.stderr.write('pincpu: cpuset attribute is present in vcpu, doing nothing\n')
+ sys.stderr.write('pincpu: cpuset attribute is present in vcpu, '
+ 'doing nothing\n')
except:
- sys.stderr.write('pincpu: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('pincpu: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/promisc/before_vm_destroy.py b/vdsm_hooks/promisc/before_vm_destroy.py
index ee6d080..d041c19 100755
--- a/vdsm_hooks/promisc/before_vm_destroy.py
+++ b/vdsm_hooks/promisc/before_vm_destroy.py
@@ -6,6 +6,7 @@
import hooking
+
def removeMirrorNetwork(networkName):
'''
this commands will remove our monitored network (bridge) from the queue:
@@ -17,18 +18,21 @@
command = ['/sbin/tc', 'qdisc', 'del', 'dev', networkName, 'root']
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('promisc: error executing command "%s" error: %s' % (command, err))
+ sys.stderr.write('promisc: error executing command "%s" error: %s' %
+ (command, err))
command = ['/sbin/tc', 'qdisc', 'del', 'dev', networkName, 'ingress']
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('promisc: error executing command "%s" error: %s' % (command, err))
+ sys.stderr.write('promisc: error executing command "%s" error: %s' %
+ (command, err))
# remove promisc mode flag from the bridge
command = ['/sbin/ifconfig', networkName, '-promisc']
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('promisc: error executing command "%s" error: %s' % (command, err))
+ sys.stderr.write('promisc: error executing command "%s" error: %s' %
+ (command, err))
if 'promisc' in os.environ:
try:
@@ -36,9 +40,11 @@
for networkmode in networks.split(','):
network, mode = networkmode.split(':')
- sys.stderr.write('promisc: destroying monitoring network %s in mode %s\n' % (network, mode))
+ sys.stderr.write('promisc: destroying monitoring network %s in '
+ 'mode %s\n' % (network, mode))
removeMirrorNetwork(network)
except:
- sys.stderr.write('promisc: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('promisc: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/qos/before_vm_start.py b/vdsm_hooks/qos/before_vm_start.py
index ecbc05f..bc349ff 100755
--- a/vdsm_hooks/qos/before_vm_start.py
+++ b/vdsm_hooks/qos/before_vm_start.py
@@ -27,10 +27,11 @@
inbound or outbound elements can be once but not mandatory
syntax:
- 00:11:22:33:44:55=in{'average':'1','peek':'2','burst':'5'}^out{'average':'1'}&11:11:11:11:11:11=...
-'''
+ 00:11:22:33:44:55=in{'average':'1','peek':'2','burst':'5'}^'''
+'''out{'average':'1'}&11:11:11:11:11:11=...'''
keys = ['average', 'peek', 'burst']
+
def add_attributes(node, attributes):
data = ast.literal_eval(attributes)
@@ -40,6 +41,7 @@
sys.exit(2)
node.setAttribute(key, data[key])
+
def update_interface(iface, data, domxml):
bandwidth = domxml.createElement('bandwidth')
@@ -76,12 +78,14 @@
iface = find_interface(arr[0], interfaces)
if iface is None:
- sys.stderr.write('qos hook: %s interface is not exists in VM\n' % arr[0])
+ sys.stderr.write('qos hook: %s interface is not exists in '
+ 'VM\n' % arr[0])
sys.exit(2)
update_interface(iface, arr[1], domxml)
hooking.write_domxml(domxml)
except:
- sys.stderr.write('qos hook: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('qos hook: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/smbios/before_vm_start.py b/vdsm_hooks/smbios/before_vm_start.py
index b272e5b..55635a9 100755
--- a/vdsm_hooks/smbios/before_vm_start.py
+++ b/vdsm_hooks/smbios/before_vm_start.py
@@ -18,6 +18,7 @@
bios_entries = ["vendor", "version", "date", "release"]
+
def addSystemEntry(domxml, sysinfo, entry):
systems = sysinfo.getElementsByTagName('system')
if systems.length == 0:
@@ -43,6 +44,7 @@
txt = domxml.createTextNode(entry[name])
e.appendChild(txt)
system.appendChild(e)
+
def addBiosEntry(domxml, sysinfo, entry):
bioses = sysinfo.getElementsByTagName('bios')
@@ -101,5 +103,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('smbios: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('smbios: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/sriov/after_vm_destroy.py b/vdsm_hooks/sriov/after_vm_destroy.py
index 79058e3..ab81e90 100755
--- a/vdsm_hooks/sriov/after_vm_destroy.py
+++ b/vdsm_hooks/sriov/after_vm_destroy.py
@@ -11,12 +11,14 @@
VDSM_VAR_HOOKS_DIR = '/var/run/vdsm/hooks'
SRIOV_CACHE_FILENAME = 'sriov.cache'
+
def returnDeviceToHost(addr, devpath):
# attach device back to host
connection = libvirtconnection.get(None)
nodeDevice = connection.nodeDeviceLookupByName(addr)
- if nodeDevice != None:
- sys.stderr.write('sriov after_vm_destroy: attaching pci device %s back to host\n' % addr)
+ if nodeDevice is not None:
+ sys.stderr.write('sriov after_vm_destroy: attaching pci device %s '
+ 'back to host\n' % addr)
nodeDevice.reAttach()
# return device permissions
@@ -27,7 +29,8 @@
command = ['/bin/chown', owner, dev]
retcode, out, err = hooking.execCmd(command, sudo=True, raw=True)
if retcode != 0:
- sys.stderr.write('sriov after_vm_destroy: error chown %s to %s, err = %s\n' % (dev, owner, err))
+ sys.stderr.write('sriov after_vm_destroy: error chown %s to '
+ '%s, err = %s\n' % (dev, owner, err))
sys.exit(2)
if 'sriov' in os.environ:
@@ -42,7 +45,7 @@
line = f.readline()
if not line:
break
- pass # do something
+ pass # do something
nicAddr = line.split('=')
if nicAddr[0] in nics:
returnDeviceToHost(nicAddr[1], nicAddr[2].strip('\n'))
@@ -54,8 +57,10 @@
f.writelines(lines)
f.close()
else:
- sys.stderr.write('sriov after_vm_destroy: cannot find sriov cache file %s\n' % path)
+ sys.stderr.write('sriov after_vm_destroy: cannot find sriov cache '
+ 'file %s\n' % path)
except:
- sys.stderr.write('sriov after_vm_destroy: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('sriov after_vm_destroy: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
diff --git a/vdsm_hooks/vmdisk/before_vm_start.py b/vdsm_hooks/vmdisk/before_vm_start.py
index da4ee38..0d3ee0a 100755
--- a/vdsm_hooks/vmdisk/before_vm_start.py
+++ b/vdsm_hooks/vmdisk/before_vm_start.py
@@ -14,6 +14,7 @@
driver_types = ('raw', 'qcow2')
+
def indexToDiskName(i):
s = ''
while True:
@@ -22,6 +23,7 @@
if i == 0:
break
return 'vd' + (s or 'a')
+
def createDiskElement(domxml, devpath, drivertype):
'''
@@ -74,11 +76,14 @@
try:
devpath, drivertype = disk.split(':')
except ValueError:
- sys.stderr.write('vmdisk: input error, expected diskpath:diskformat ie /path/disk.img:qcow2\n')
+ sys.stderr.write('vmdisk: input error, expected '
+ 'diskpath:diskformat ie '
+ '/path/disk.img:qcow2\n')
sys.exit(2)
if not drivertype in driver_types:
- sys.stderr.write('vmdisk: input error, driver type: raw or qcow2\n')
+ sys.stderr.write('vmdisk: input error, driver '
+ 'type: raw or qcow2\n')
sys.exit(2)
diskdev = createDiskElement(domxml, devpath, drivertype)
@@ -86,5 +91,6 @@
hooking.write_domxml(domxml)
except:
- sys.stderr.write('vmdisk: [unexpected error]: %s\n' % traceback.format_exc())
+ sys.stderr.write('vmdisk: [unexpected error]: %s\n' %
+ traceback.format_exc())
sys.exit(2)
--
To view, visit http://gerrit.ovirt.org/10777
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ida004331709ac573db4ae6bf77da407830b31ac8
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap(a)redhat.com>
11 years, 4 months
Change in vdsm[master]: pep8 fix of contrib vds_bootstrap and vdsm_reg.
by Dan Kenigsberg
Dan Kenigsberg has submitted this change and it was merged.
Change subject: pep8 fix of contrib vds_bootstrap and vdsm_reg.
......................................................................
pep8 fix of contrib vds_bootstrap and vdsm_reg.
Change-Id: I44b1bc34c65fc67a04c11ba7d7c49d57f3cc4811
Signed-off-by: Antoni S. Puimedon <asegurap(a)redhat.com>
---
M Makefile.am
M contrib/nfs-check.py
M vds_bootstrap/vds_bootstrap.py
M vds_bootstrap/vds_bootstrap_complete.py
M vdsm_reg/config.py.in
M vdsm_reg/deployUtil.py.in
M vdsm_reg/engine.py.in
M vdsm_reg/register-to-engine.py
8 files changed, 568 insertions(+), 328 deletions(-)
Approvals:
Dan Kenigsberg: Looks good to me, approved
Zhou Zheng Sheng: Verified; Looks good to me, but someone else must approve
--
To view, visit http://gerrit.ovirt.org/10771
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I44b1bc34c65fc67a04c11ba7d7c49d57f3cc4811
Gerrit-PatchSet: 2
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap(a)redhat.com>
Gerrit-Reviewer: Antoni Segura Puimedon <asegurap(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
11 years, 4 months
Change in vdsm[master]: pep8 fix of contrib vds_bootstrap and vdsm_reg.
by Dan Kenigsberg
Dan Kenigsberg has posted comments on this change.
Change subject: pep8 fix of contrib vds_bootstrap and vdsm_reg.
......................................................................
Patch Set 2: Looks good to me, approved
--
To view, visit http://gerrit.ovirt.org/10771
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I44b1bc34c65fc67a04c11ba7d7c49d57f3cc4811
Gerrit-PatchSet: 2
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap(a)redhat.com>
Gerrit-Reviewer: Antoni Segura Puimedon <asegurap(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
11 years, 4 months
Change in vdsm[master]: Fix the rest of vdsm storage pep8 issues.
by Dan Kenigsberg
Dan Kenigsberg has submitted this change and it was merged.
Change subject: Fix the rest of vdsm storage pep8 issues.
......................................................................
Fix the rest of vdsm storage pep8 issues.
Change-Id: I246024ef8de59a357504b5101cbada24aaaa80a2
Signed-off-by: Antoni S. Puimedon <asegurap(a)redhat.com>
---
M Makefile.am
M vdsm/storage/dispatcher.py
M vdsm/storage/image.py
M vdsm/storage/iscsi.py
M vdsm/storage/resourceManager.py
M vdsm/storage/sp.py
M vdsm/storage/storage_mailbox.py
M vdsm/storage/threadPool.py
8 files changed, 1,107 insertions(+), 649 deletions(-)
Approvals:
Dan Kenigsberg: Looks good to me, approved
Zhou Zheng Sheng: Verified; Looks good to me, but someone else must approve
--
To view, visit http://gerrit.ovirt.org/10742
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I246024ef8de59a357504b5101cbada24aaaa80a2
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap(a)redhat.com>
Gerrit-Reviewer: Antoni Segura Puimedon <asegurap(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
11 years, 4 months