Change in vdsm[master]: [WIP] Continue moving VM code to it's own module
by smizrahi@redhat.com
Saggi Mizrahi has uploaded a new change for review.
Change subject: [WIP] Continue moving VM code to it's own module
......................................................................
[WIP] Continue moving VM code to it's own module
Change-Id: I374dae67449f65c7c55ed028bd301be8b6a01eb5
Signed-off-by: Saggi Mizrahi <smizrahi(a)redhat.com>
---
M vdsm/API.py
1 file changed, 16 insertions(+), 11 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/14/7514/1
diff --git a/vdsm/API.py b/vdsm/API.py
index aab69cd..e6a1048 100644
--- a/vdsm/API.py
+++ b/vdsm/API.py
@@ -136,15 +136,18 @@
for methName in GUEST_AGENT_METHODS:
self.setattr(attrName, partial(guestTrampoline, methName))
+ def _getVmObject(self):
+ return self._cif.vmContainer.get(self._UUID)
+
def _runThinMethod(self, methodName, *args, **kwargs):
- v = self._cif.vmContainer.get(self._UUID)
+ v = self._getVmObject()
if not v:
return errCode['noVM']
return getattr(v, methodName)(*args, **kwargs)
def _runGuestAgentMethod(self, methodName, *args, **kwargs):
- v = self._cif.vmContainer.get(self._UUID)
+ v = self._getVmObject()
if v is None:
return errCode['noVM']
@@ -163,7 +166,7 @@
"""
vmParams['vmId'] = self._UUID
try:
- if self._cif.vmContainer.get(self._UUID) is not None:
+ if self._getVmObject() is not None:
self.log.warning('vm %s already exists' % vmParams['vmId'])
return errCode['exist']
@@ -286,7 +289,7 @@
"""
Obtain statistics of the specified VM
"""
- v = self._cif.vmContainer.get(self._UUID)
+ v = self._getVmObject()
if not v:
return errCode['noVM']
stats = v.getStats().copy()
@@ -364,7 +367,7 @@
"""
params['vmId'] = self._UUID
self.log.debug(params)
- v = self._cif.vmContainer.get(self._UUID)
+ v = self._getVmObject()
if v is None:
return errCode['noVM']
@@ -395,7 +398,7 @@
self.log.debug('Migration create - Failed')
return response
- v = self._cif.vmContainer.get(self._UUID)
+ v = self._getVmObject()
if not v.waitForMigrationDestinationPrepare():
return errCode['createErr']
@@ -921,12 +924,14 @@
return d
else:
return {'vmId': d['vmId'], 'status': d['status']}
- # To improve complexity, convert 'vms' to set(vms)
- vmSet = set(vmList)
+
+ if vmList:
+ vms = (self._cif.vmContainer.get(vm) for vm in vmList)
+ else:
+ vms = self._cif.vmContainer.getVMs()
+
return {'status': doneCode,
- 'vmList': [reportedStatus(v, fullStatus)
- for v in self._cif.vmContainer.getVMs()
- if not vmSet or v.id in vmSet]}
+ 'vmList': [reportedStatus(vm, fullStatus) for vm in vms]}
# Networking-related functions
def setupNetworks(self, networks={}, bondings={}, options={}):
--
To view, visit http://gerrit.ovirt.org/7514
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I374dae67449f65c7c55ed028bd301be8b6a01eb5
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Saggi Mizrahi <smizrahi(a)redhat.com>
10 years, 1 month
Change in vdsm[master]: vdsm: Catch the destkopLock AttributeError on Migration
by Vinzenz Feenstra
Vinzenz Feenstra has uploaded a new change for review.
Change subject: vdsm: Catch the destkopLock AttributeError on Migration
......................................................................
vdsm: Catch the destkopLock AttributeError on Migration
During the migration, on the target the events for disconnected spice
channels are sent before VDSM is able to initialize the guestAgent
instance. In this case, we should not let the exception go through.
Change-Id: I5b6f6b2f2a3f049871902ee7777ae95ea9a52802
Bug-Url: https://bugzilla.redhat.com/955593
Signed-off-by: Vinzenz Feenstra <vfeenstr(a)redhat.com>
---
M vdsm/vm.py
1 file changed, 4 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/95/14395/1
diff --git a/vdsm/vm.py b/vdsm/vm.py
index ddb09c8..b0adc14 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -824,7 +824,10 @@
def _timedDesktopLock(self):
if not self.conf.get('clientIp', ''):
- self.guestAgent.desktopLock()
+ try:
+ self.guestAgent.desktopLock()
+ except AttributeError:
+ self.log.debug("Guest Agent not yet intialized")
def onDisconnect(self, detail=None):
self.conf['clientIp'] = ''
--
To view, visit http://gerrit.ovirt.org/14395
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5b6f6b2f2a3f049871902ee7777ae95ea9a52802
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Vinzenz Feenstra <vfeenstr(a)redhat.com>
10 years, 1 month
Change in vdsm[master]: [WIP] Added getStorageDevices verb.
by barumuga@redhat.com
Hello Ayal Baron, Timothy Asir, Saggi Mizrahi, Federico Simoncelli, Dan Kenigsberg,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/3725
to review the following change.
Change subject: [WIP] Added getStorageDevices verb.
......................................................................
[WIP] Added getStorageDevices verb.
This verb is used to get list of storage devices in the node. Return
value is a dictionary, its keys are device names and values are
properties of those devices as dictionary.
{DEVNAME: {'container': CONTAINER_DEVNAME,
'contentType': CONTENT_TYPE_STRING,
'endSize': SIZE_MB,
'flagList': STRING_LIST,
'fsSize': SIZE_MB,
'fsSizeFree': SIZE_MB,
'fsType': STRING,
'fsUuid': UUID,
'members': DEVNAME_LIST,
'model': STRING,
'mountPoint': STRING,
'name': DEVNAME,
'origin': LV_DEVNAME,
'parent': PARENT_DEVNAME,
'partitions': DEVNAME_LIST,
'size': SIZE_MB,
'sizeFree': SIZE_MB,
'startSize': SIZE_MB,
'status': STATUS_STRING,
'tableType': DISK_TABLE_TYPE,
'type': TYPE_STRING,
'uuid': UUID,
'vendor': STRING},...}
here, property dictionary contains
container: If DEVNAME is used by another device eg. LVM PV, MD etc, name
of that device is set
contentType: This is determined by various other properties. Possible
value is one of 'SWAP', 'OS', 'DATA' and 'NA'
endSize: If DEVNAME is a partition, its end boundry is set. The value
is in MB
flagList: If DEVNAME is a partition, its flags(eg. boot,bios_grub etc)
are set as a list of strings
fsSize: If DEVNAME has a file system, its size is set. The value is
in MB
fsSizeFree: If DEVNAME is mounted, its free size is set. The value is in
MB
fsType: If DEVNAME is formatted, its file system type is set
fsUuid': If DEVNAME has file system, its UUID is set
members: If DEVNAME is a MD, LVM VG etc, its member device names are
set as list of strings
model: Model of DEVNAME is set as string
mountPoint: If DEVNAME is mounted, its mount point is set
name: DEVNAME is set here for completion
origin: If DEVNAME is a snapshot of LV, that LV name is set
parent: If DEVNAME is a partition, its disk name is set
partitions: If DEVNAME is a disk, its partition names are set as list of
strings
size: Size of DEVNAME is set. The value is in MB
sizeFree: If DEVNAME is VG, its size of free extents is set. If its a
partitioned disk, its unallocated size is set. The value is
in MB
startSize: If DEVNAME is a partition, its start boundry is set. The
value is in MB
status: This is determined by various other properites of the DEVNAME.
Possible value is one of 'UNINITIALIZED', 'NA', 'UNUSABLE',
'FORMAT_UNSUPPORTED', 'MOUNTED', 'FORMATTED' and 'PARTED'
tableType': If DEVNAME is a disk, its table(label) type is set as a string
type: This is determined value. Possible value is one of 'MD',
'LVM_VG', 'LVM_LV_SNAPSHOT', 'LVM_LV' and 'BLOCK'
uuid: UUID of DEVNAME
vendor: Vendor of DEVNAME is set as string
Change-Id: I2cb217321a7a8dfcd1b507c7cba2888f08612207
Signed-off-by: Bala.FA <barumuga(a)redhat.com>
---
M vdsm.spec.in
M vdsm/API.py
M vdsm/BindingXMLRPC.py
M vdsm/Makefile.am
A vdsm/storage_device_utils.py
M vdsm_cli/vdsClient.py
6 files changed, 505 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/25/3725/1
--
To view, visit http://gerrit.ovirt.org/3725
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2cb217321a7a8dfcd1b507c7cba2888f08612207
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Bala.FA <barumuga(a)redhat.com>
Gerrit-Reviewer: Ayal Baron <abaron(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimonce(a)redhat.com>
Gerrit-Reviewer: Saggi Mizrahi <smizrahi(a)redhat.com>
Gerrit-Reviewer: Timothy Asir <tjeyasin(a)redhat.com>
10 years, 2 months
Change in vdsm[master]: libvirtvm: use <interface type='network'>
by Dan Kenigsberg
Dan Kenigsberg has uploaded a new change for review.
Change subject: libvirtvm: use <interface type='network'>
......................................................................
libvirtvm: use <interface type='network'>
In the future, this would allow us to migrate a VM from a bridge-based
network to funkier types of networks defined in
http://libvirt.org/formatnetwork.html .
Change-Id: If173a6351b1033c3a1c821cbadd05a2cbdf3d76c
Signed-off-by: Dan Kenigsberg <danken(a)redhat.com>
---
M tests/libvirtvmTests.py
M vdsm/libvirtvm.py
2 files changed, 15 insertions(+), 9 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/41/9441/1
diff --git a/tests/libvirtvmTests.py b/tests/libvirtvmTests.py
index 4293276..2a0f097 100644
--- a/tests/libvirtvmTests.py
+++ b/tests/libvirtvmTests.py
@@ -261,10 +261,10 @@
def testInterfaceXML(self):
interfaceXML = """
- <interface type="bridge"> <address %s/>
+ <interface type="network"> <address %s/>
<mac address="52:54:00:59:F5:3F"/>
<model type="virtio"/>
- <source bridge="ovirtmgmt"/>
+ <source network="vdsm-ovirtmgmt"/>
<filterref filter="no-mac-spoofing"/>
<boot order="1"/>
<driver name="vhost"/>
diff --git a/vdsm/libvirtvm.py b/vdsm/libvirtvm.py
index 3439dc3..7bbab95 100644
--- a/vdsm/libvirtvm.py
+++ b/vdsm/libvirtvm.py
@@ -982,16 +982,17 @@
"""
Create domxml for network interface.
- <interface type="bridge">
+ <interface type="network">
<mac address="aa:bb:dd:dd:aa:bb"/>
<model type="virtio"/>
- <source bridge="engine"/>
+ <source network="vdsm-engine"/>
[<filterref filter='filter name'/>]
[<tune><sndbuf>0</sndbuf></tune>]
</interface>
"""
doc = xml.dom.minidom.Document()
iface = self.createXmlElem('interface', self.device, ['address'])
+ iface.setAttribute('type', 'network')
m = doc.createElement('mac')
m.setAttribute('address', self.macAddr)
iface.appendChild(m)
@@ -999,7 +1000,7 @@
m.setAttribute('type', self.nicModel)
iface.appendChild(m)
m = doc.createElement('source')
- m.setAttribute('bridge', self.network)
+ m.setAttribute('network', netinfo.LIBVIRT_NET_PREFIX + self.network)
iface.appendChild(m)
if hasattr(self, 'filter'):
m = doc.createElement('filterref')
@@ -2790,10 +2791,15 @@
mac = x.getElementsByTagName('mac')[0].getAttribute('address')
alias = x.getElementsByTagName('alias')[0].getAttribute('name')
model = x.getElementsByTagName('model')[0].getAttribute('type')
- bridge = None
+
+ network = None
source = x.getElementsByTagName('source')
if source:
- bridge = source[0].getAttribute('bridge')
+ network = source[0].getAttribute('bridge')
+ if not network:
+ network = source[0].getAttribute('network')
+ network = network[len(netinfo.LIBVIRT_NET_PREFIX):]
+
# Get nic address
address = self._getUnderlyingDeviceAddress(x)
for nic in self._devices[vm.NIC_DEVICES]:
@@ -2819,8 +2825,8 @@
'address': address,
'alias': alias,
'name': name}
- if bridge:
- nicDev['network'] = bridge
+ if network:
+ nicDev['network'] = network
self.conf['devices'].append(nicDev)
def _setWriteWatermarks(self):
--
To view, visit http://gerrit.ovirt.org/9441
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If173a6351b1033c3a1c821cbadd05a2cbdf3d76c
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dan Kenigsberg <danken(a)redhat.com>
10 years, 2 months
Change in vdsm[master]: Sometimes the FD number can be reused in the child process
by smizrahi@redhat.com
Saggi Mizrahi has uploaded a new change for review.
Change subject: Sometimes the FD number can be reused in the child process
......................................................................
Sometimes the FD number can be reused in the child process
This makes sure that the fd is the file that we expected to be closed child
process
Change-Id: I7044936fba8923297c76d9a2123215ec2b793548
Signed-off-by: Saggi Mizrahi <smizrahi(a)redhat.com>
---
M tests/betterPopenTests.py
1 file changed, 7 insertions(+), 6 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/91/9591/1
diff --git a/tests/betterPopenTests.py b/tests/betterPopenTests.py
index 6347460..eb129f4 100644
--- a/tests/betterPopenTests.py
+++ b/tests/betterPopenTests.py
@@ -59,8 +59,9 @@
def testCloseFDs(self):
fds = os.pipe()
+ rpath = os.path.realpath("/proc/%d/fds/%d" % (os.getpid(), fds[1]))
try:
- self._subTest("fds", [str(fds[1])], close_fds=True)
+ self._subTest("fds", [str(fds[1]), rpath], close_fds=True)
finally:
os.close(fds[0])
os.close(fds[1])
@@ -154,11 +155,11 @@
if __name__ == "__main__":
cmd = sys.argv[1]
if cmd == "fds":
- try:
- os.close(int(sys.argv[2]))
- print "False"
- except:
- print "True"
+ fdpath = "/proc/%d/fds/%d" % (os.getpid(), int(sys.argv[2]))
+ if not os.path.exists(fdpath):
+ print True
+ else:
+ print (open(fdpath).read().strip() == sys.argv[3])
elif cmd == "nofds":
try:
--
To view, visit http://gerrit.ovirt.org/9591
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7044936fba8923297c76d9a2123215ec2b793548
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Saggi Mizrahi <smizrahi(a)redhat.com>
10 years, 2 months
Change in vdsm[master]: Misc storage exception class name style
by shuming@linux.vnet.ibm.com
Shu Ming has uploaded a new change for review.
Change subject: Misc storage exception class name style
......................................................................
Misc storage exception class name style
All the misc storage exception class name should
be prefixed with "Misc"
Change-Id: I2f6f279d13b92bbb8f573a0d772d7504860bbbe3
Signed-off-by: Shu Ming <shuming(a)linux.vnet.ibm.com>
---
M vdsm/storage/sp.py
M vdsm/storage/storage_exception.py
2 files changed, 5 insertions(+), 5 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/47/8847/1
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 4aa63c0..7622556 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -220,7 +220,7 @@
.. note::
if the SPM is already started the function will fail silently.
- :raises: :exc:`storage_exception.OperationInProgress` if called during an already running connection attempt.
+ :raises: :exc:`storage_exception.MiscOperationInProgress` if called during an already running connection attempt.
(makes the fact that it fails silently does not matter very much).
"""
with self.lock:
@@ -228,7 +228,7 @@
return True
# Since we added the lock the following should NEVER happen
if self.spmRole == SPM_CONTEND:
- raise se.OperationInProgress("spm start %s" % self.spUUID)
+ raise se.MiscOperationInProgress("spm start %s" % self.spUUID)
self.updateMonitoringThreads()
self.invalidateMetadata()
@@ -1934,7 +1934,7 @@
self.log.error("TODO: Implement")
self._maxHostID
self.spmMailer.setMaxHostID(maxID)
- raise se.NotImplementedException
+ raise se.MiscNotImplementedException
def detachAllDomains(self):
diff --git a/vdsm/storage/storage_exception.py b/vdsm/storage/storage_exception.py
index 54e64e6..a25a588 100644
--- a/vdsm/storage/storage_exception.py
+++ b/vdsm/storage/storage_exception.py
@@ -125,7 +125,7 @@
# Misc Exceptions
#################################################
-class NotImplementedException(GeneralException):
+class MiscNotImplementedException(GeneralException):
code = 2000
message = "Method not implemented"
@@ -154,7 +154,7 @@
message = "Internal block device write failure"
-class OperationInProgress(StorageException):
+class MiscOperationInProgress(StorageException):
code = 2005
message = "Operation is already in progress"
--
To view, visit http://gerrit.ovirt.org/8847
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2f6f279d13b92bbb8f573a0d772d7504860bbbe3
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Shu Ming <shuming(a)linux.vnet.ibm.com>
10 years, 2 months
Change in vdsm[master]: confNet: ifcfg's VLAN should be set only on vlan cfg
by Dan Kenigsberg
Dan Kenigsberg has uploaded a new change for review.
Change subject: confNet: ifcfg's VLAN should be set only on vlan cfg
......................................................................
confNet: ifcfg's VLAN should be set only on vlan cfg
If a misguided script calls addNetwork with explicit VLAN option, it
sohuld not be blindly copied to the top-most device.
We set VLAN=yes on the ifcfg script for the vlan device, and that's
that.
Change-Id: Ia2c9d6c86e73104424ca8ac901bf09e4b98a47ab
Bug-Id: BZ#847733
Signed-off-by: Dan Kenigsberg <danken(a)redhat.com>
---
M vdsm/configNetwork.py
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/11/7411/1
diff --git a/vdsm/configNetwork.py b/vdsm/configNetwork.py
index 3f99a66..2ef0a8a 100755
--- a/vdsm/configNetwork.py
+++ b/vdsm/configNetwork.py
@@ -384,7 +384,7 @@
if mtu:
cfg = cfg + 'MTU=%d\n' % mtu
cfg += 'NM_CONTROLLED=no\n'
- BLACKLIST = ['TYPE', 'NAME', 'DEVICE', 'bondingOptions',
+ BLACKLIST = ['TYPE', 'NAME', 'DEVICE', 'VLAN', 'bondingOptions',
'force', 'blockingdhcp',
'connectivityCheck', 'connectivityTimeout',
'implicitBonding']
--
To view, visit http://gerrit.ovirt.org/7411
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia2c9d6c86e73104424ca8ac901bf09e4b98a47ab
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dan Kenigsberg <danken(a)redhat.com>
10 years, 3 months
Change in vdsm[master]: avoid redundant domain produce() in createStoragePool
by lvroyce@linux.vnet.ibm.com
Royce Lv has uploaded a new change for review.
Change subject: avoid redundant domain produce() in createStoragePool
......................................................................
avoid redundant domain produce() in createStoragePool
Change-Id: If1c236aa3043068ca8f3f376cb340e986cd484bb
Signed-off-by: Royce Lv<lvroyce(a)linux.vnet.ibm.com>
---
M vdsm/storage/hsm.py
M vdsm/storage/sp.py
2 files changed, 4 insertions(+), 13 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/47/7347/1
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index 2227c03..b2c20c0 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -765,19 +765,6 @@
if msdType in sd.BLOCK_DOMAIN_TYPES and msdVersion in blockSD.VERS_METADATA_LV and len(domList) > sp.MAX_DOMAINS:
raise se.TooManyDomainsInStoragePoolError()
- for sdUUID in domList:
- try:
- dom = sdCache.produce(sdUUID=sdUUID)
- # TODO: consider removing validate() from here, as the domains
- # are going to be accessed much later, and may loose validity
- # until then.
- dom.validate()
- except:
- raise se.StorageDomainAccessError(sdUUID)
- #If you remove this condition, remove it from StoragePool.attachSD() too.
- if dom.isData() and (dom.getVersion() != msdVersion):
- raise se.MixedSDVersionError(dom.sdUUID, dom.getVersion(), msd.sdUUID, msdVersion)
-
vars.task.getExclusiveLock(STORAGE, spUUID)
for dom in sorted(domList):
vars.task.getExclusiveLock(STORAGE, dom)
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index ee45151..a5b65c7 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -549,6 +549,7 @@
domain.validate()
if sdUUID == msdUUID:
msd = domain
+ msdVersion = msd.getVersion()
except se.StorageException:
self.log.error("Unexpected error", exc_info=True)
raise se.StorageDomainAccessError(sdUUID)
@@ -560,6 +561,9 @@
# Non ISO domains have only 1 pool
if len(spUUIDs) > 0:
raise se.StorageDomainAlreadyAttached(spUUIDs[0], sdUUID)
+
+ if domain.isData() and (domain.getVersion() != msdVersion):
+ raise se.MixedSDVersionError(domain.sdUUID, domain.getVersion(), msd.sdUUID, msdVersion)
fileUtils.createdir(self.poolPath)
self._acquireTemporaryClusterLock(msdUUID, safeLease)
--
To view, visit http://gerrit.ovirt.org/7347
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If1c236aa3043068ca8f3f376cb340e986cd484bb
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
10 years, 3 months
Change in vdsm[master]: get max_tasks and thread_pool_size from config by getint()
by shaohef@linux.vnet.ibm.com
ShaoHe Feng has uploaded a new change for review.
Change subject: get max_tasks and thread_pool_size from config by getint()
......................................................................
get max_tasks and thread_pool_size from config by getint()
It is OK to get max_tasks and thread_pool_size by getfloat()
The max_tasks will be passed to the Queue as maxsize and the
thread_pool_size is the thread number of the task thread pool.
So int is more reasonable than float
Change-Id: I9fc719b1b4238b0df2d9c882777cb75d7a27d4df
Signed-off-by: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
---
M vdsm/storage/storage_mailbox.py
M vdsm/storage/taskManager.py
2 files changed, 6 insertions(+), 6 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/35/9035/1
diff --git a/vdsm/storage/storage_mailbox.py b/vdsm/storage/storage_mailbox.py
index c537883..1c8700d 100644
--- a/vdsm/storage/storage_mailbox.py
+++ b/vdsm/storage/storage_mailbox.py
@@ -208,9 +208,9 @@
def __init__(self, inbox, outbox, hostID, queue, monitorInterval):
# Save arguments
- tpSize = config.getfloat('irs', 'thread_pool_size') / 2
+ tpSize = config.getint('irs', 'thread_pool_size') / 2
waitTimeout = 3
- maxTasks = config.getfloat('irs', 'max_tasks')
+ maxTasks = config.getint('irs', 'max_tasks')
self.tp = ThreadPool(tpSize, waitTimeout, maxTasks)
self._stop = False
self._flush = False
@@ -466,9 +466,9 @@
self._stopped = False
self._poolID = str(pool.spUUID)
self._spmStorageDir = pool.storage_repository
- tpSize = config.getfloat('irs', 'thread_pool_size') / 2
+ tpSize = config.getint('irs', 'thread_pool_size') / 2
waitTimeout = 3
- maxTasks = config.getfloat('irs', 'max_tasks')
+ maxTasks = config.getint('irs', 'max_tasks')
self.tp = ThreadPool(tpSize, waitTimeout, maxTasks)
# *** IMPORTANT NOTE: The SPM's inbox is the HSMs' outbox and vice versa *** #
self._inbox = os.path.join(self._spmStorageDir, self._poolID, "mastersd", sd.DOMAIN_META_DATA, "inbox")
diff --git a/vdsm/storage/taskManager.py b/vdsm/storage/taskManager.py
index 3bc12f3..f7a5da2 100644
--- a/vdsm/storage/taskManager.py
+++ b/vdsm/storage/taskManager.py
@@ -31,9 +31,9 @@
log = logging.getLogger('TaskManager')
def __init__(self,
- tpSize=config.getfloat('irs', 'thread_pool_size'),
+ tpSize=config.getint('irs', 'thread_pool_size'),
waitTimeout=3,
- maxTasks=config.getfloat('irs', 'max_tasks')):
+ maxTasks=config.getint('irs', 'max_tasks')):
self.storage_repository = config.get('irs', 'repository')
self.tp = ThreadPool(tpSize, waitTimeout, maxTasks)
self._tasks = {}
--
To view, visit http://gerrit.ovirt.org/9035
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9fc719b1b4238b0df2d9c882777cb75d7a27d4df
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
10 years, 3 months
Change in vdsm[master]: vdsm: fix RTC offset
by peet@redhat.com
Peter V. Saveliev has uploaded a new change for review.
Change subject: vdsm: fix RTC offset
......................................................................
vdsm: fix RTC offset
Upon RTC update (hwclock --systohc) on the guest side, libvirt sends the event
with RTC offset from the qemu start -rtc value in seconds. The received offset
should not replace the previous value, but should be added to it. Since the
time update event is relative to the qemu start time, we should store the
initial value and use it for the calculation.
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=956741
Change-Id: I27c70a53f64fb05607e93bffbac25fdee7d1cd2a
Signed-off-by: Peter V. Saveliev <peet(a)redhat.com>
---
M vdsm/vm.py
1 file changed, 4 insertions(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/50/14750/1
diff --git a/vdsm/vm.py b/vdsm/vm.py
index 2b76662..bbc833a 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -351,6 +351,7 @@
self.id = self.conf['vmId']
self._volPrepareLock = threading.Lock()
self._initTimePauseCode = None
+ self._initTimeRTC = None
self.guestAgent = None
self._guestEvent = 'Powering up'
self._guestEventTime = 0
@@ -852,7 +853,9 @@
def _rtcUpdate(self, timeOffset):
self.log.debug('new rtc offset %s', timeOffset)
with self._confLock:
- self.conf['timeOffset'] = timeOffset
+ if self._initTimeRTC is None:
+ self._initTimeRTC = long(self.conf['timeOffset'])
+ self.conf['timeOffset'] = self._initTimeRTC + long(timeOffset)
def extendDriveVolume(self, vmDrive):
if not vmDrive.blockDev:
--
To view, visit http://gerrit.ovirt.org/14750
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I27c70a53f64fb05607e93bffbac25fdee7d1cd2a
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Peter V. Saveliev <peet(a)redhat.com>
10 years, 3 months