Dan Kenigsberg has uploaded a new change for review.
Change subject: vdscli: remove usage of VDSMBRIDGE
......................................................................
vdscli: remove usage of VDSMBRIDGE
When not given an address to connect, vdscli.connect() attempts to guess
the address of a local Vdsm server. With ssl disabled, it used to fall
back to looking up the address of the management bridge.
However, Vdsm server no longer care about VDSMBRIDGE when deciding on
which IP address it should listen, so the client side should loose it,
too.
Change-Id: I2127b2d81ca675f5709f8d3f7d2600df98c58be0
Signed-off-by: Dan Kenigsberg <danken(a)redhat.com>
---
M lib/vdsm/vdscli.py.in
1 file changed, 2 insertions(+), 8 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/13/24813/1
diff --git a/lib/vdsm/vdscli.py.in b/lib/vdsm/vdscli.py.in
index e77c5b3..5fa7528 100644
--- a/lib/vdsm/vdscli.py.in
+++ b/lib/vdsm/vdscli.py.in
@@ -1,6 +1,6 @@
# vdscli: contact vdsm running on localhost over xmlrpc easily
#
-# Copyright 2009-2011 Red Hat, Inc.
+# Copyright 2009-2014 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -73,13 +73,7 @@
if d_useSSL:
d_addr = __getLocalVdsName(d_tsPath)
else:
- if config.get('addresses', 'management_ip'):
- d_addr = config.get('addresses', 'management_ip')
- else:
- from . import netinfo
- proposed_addr = netinfo.getaddr('@VDSMBRIDGE@')
- if proposed_addr:
- d_addr = proposed_addr
+ d_addr = config.get('addresses', 'management_ip')
except:
pass
if os.name == 'nt':
--
To view, visit http://gerrit.ovirt.org/24813
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2127b2d81ca675f5709f8d3f7d2600df98c58be0
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dan Kenigsberg <danken(a)redhat.com>
Alon Bar-Lev has posted comments on this change.
Change subject: vdsClient: file based mechanism to provide password
......................................................................
Patch Set 4:
(2 comments)
http://gerrit.ovirt.org/#/c/24733/4/client/vdsClient.py
File client/vdsClient.py:
Line 132: password_line = None
Line 133: with open(path) as f:
Line 134: password_line = f.readline()
Line 135: if not password_line.strip():
Line 136: return path
why password cannot be empty? why do return path?
Line 137: return password_line
Line 138: except IOError:
Line 139: return path
Line 140:
Line 164: return checkAndGetPassFromFile(value)
Line 165: elif 'env' == method:
Line 166: return checkAndGetPassFromEnv(value)
Line 167: else:
Line 168: return location
why do you need one time used functions? collapse all into one.
the format should be file: env: pass: otherwise raise exception.
Line 169:
Line 170:
Line 171: class service:
Line 172: def __init__(self):
--
To view, visit http://gerrit.ovirt.org/24733
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I363a16e6a7872ca05e19d5f520bdba90fb492374
Gerrit-PatchSet: 4
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Alon Bar-Lev <alonbl(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: Yedidyah Bar David <didi(a)redhat.com>
Gerrit-Reviewer: automation(a)ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
oVirt Jenkins CI Server has posted comments on this change.
Change subject: vdsClient: file based mechanism to provide password
......................................................................
Patch Set 4: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/7347/ : FAILURE
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/6445/ : FAILURE
http://jenkins.ovirt.org/job/vdsm_master_pep8_gerrit/7229/ : SUCCESS
--
To view, visit http://gerrit.ovirt.org/24733
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I363a16e6a7872ca05e19d5f520bdba90fb492374
Gerrit-PatchSet: 4
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Alon Bar-Lev <alonbl(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: Yedidyah Bar David <didi(a)redhat.com>
Gerrit-Reviewer: automation(a)ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: No
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>
Francesco Romani has uploaded a new change for review.
Change subject: vm: janitorial: add a restoringState attribute
......................................................................
vm: janitorial: add a restoringState attribute
A VM which needs to restore its state is identified by
checking for the presence of a 'restoreState' attribute in the
Vm.conf dict.
This attribute conveys two distinct informations: the need
to restore a state and the state to be restored.
This patch goes along the line of the
http://gerrit.ovirt.org/#/c/22783/
and aims to make the code cleaner and simpler introducing
an explicit attribute to identify VMs which needs to restore their
state.
Change-Id: Ia9fe3f1e38d55e7e661d41c312b5344a9e560e2a
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm/API.py
M vdsm/clientIF.py
M vdsm/vm.py
3 files changed, 14 insertions(+), 11 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/19/23919/1
diff --git a/vdsm/API.py b/vdsm/API.py
index 152b584..63a04a6 100644
--- a/vdsm/API.py
+++ b/vdsm/API.py
@@ -174,9 +174,11 @@
self.log.warning('vm %s already exists' % vmParams['vmId'])
return errCode['exist']
+ restoreState = False
if 'hiberVolHandle' in vmParams:
vmParams['restoreState'], paramFilespec = \
self._getHibernationPaths(vmParams.pop('hiberVolHandle'))
+ restoreState = True
try: # restore saved vm parameters
# NOTE: pickled params override command-line params. this
# might cause problems if an upgrade took place since the
@@ -260,7 +262,7 @@
'displayNetwork'))
vmParams['displayPort'] = '-1' # selected by libvirt
vmParams['displaySecurePort'] = '-1'
- return self._cif.createVm(vmParams)
+ return self._cif.createVm(vmParams, vmRestoreState=restoreState)
except OSError as e:
self.log.debug("OS Error creating VM", exc_info=True)
diff --git a/vdsm/clientIF.py b/vdsm/clientIF.py
index fe51fa0..11e51fd 100644
--- a/vdsm/clientIF.py
+++ b/vdsm/clientIF.py
@@ -355,7 +355,7 @@
return {'status': doneCode, 'alignment': aligning}
- def createVm(self, vmParams, vmRecover=False):
+ def createVm(self, vmParams, vmRecover=False, vmRestoreState=False):
with self.vmContainerLock:
self.log.info("vmContainerLock acquired by vm %s",
vmParams['vmId'])
@@ -365,7 +365,7 @@
self.log.warning('vm %s already exists' %
vmParams['vmId'])
return errCode['exist']
- vm = Vm(self, vmParams, vmRecover)
+ vm = Vm(self, vmParams, vmRecover, vmRestoreState)
self.vmContainer[vmParams['vmId']] = vm
finally:
container_len = len(self.vmContainer)
diff --git a/vdsm/vm.py b/vdsm/vm.py
index 6e4feda..42b460f 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -1877,7 +1877,7 @@
caps.Architecture.PPC64: 'scsi'}
return DEFAULT_DISK_INTERFACES[self.arch]
- def __init__(self, cif, params, recover=False):
+ def __init__(self, cif, params, recover=False, restoreState=False):
"""
Initialize a new VM instance.
@@ -1890,6 +1890,7 @@
"""
self._dom = None
self.recovering = recover
+ self.restoringState = restoreState
self.conf = {'pid': '0'}
self.conf.update(params)
self.cif = cif
@@ -1905,7 +1906,7 @@
self._creationThread = threading.Thread(target=self._startUnderlyingVm)
if 'migrationDest' in self.conf:
self._lastStatus = 'Migration Destination'
- elif 'restoreState' in self.conf:
+ elif self.restoringState:
self._lastStatus = 'Restoring state'
else:
self._lastStatus = 'WaitForLaunch'
@@ -2249,7 +2250,7 @@
self._ongoingCreations.release()
self.log.debug("_ongoingCreations released")
- if ('migrationDest' in self.conf or 'restoreState' in self.conf) \
+ if ('migrationDest' in self.conf or self.restoringState) \
and self.lastStatus != 'Down':
self._waitForIncomingMigrationFinish()
@@ -2275,7 +2276,7 @@
self.setDownStatus(ERROR, str(e))
def _incomingMigrationPending(self):
- return 'migrationDest' in self.conf or 'restoreState' in self.conf
+ return 'migrationDest' in self.conf or self.restorignState
def stopDisksStatsCollection(self):
self._volumesPrepared = False
@@ -2718,7 +2719,7 @@
self.lastStatus = 'Down'
with self._confLock:
self.conf['exitCode'] = code
- if 'restoreState' in self.conf:
+ if self.restoringState:
self.conf['exitMessage'] = (
"Wake up from hibernation failed")
else:
@@ -3135,7 +3136,7 @@
self._timeoutExperienced)
# Reinitialize the merge statuses
self._checkMerge()
- elif 'restoreState' in self.conf:
+ elif self.restoringState:
fromSnapshot = self.conf.get('restoreFromSnapshot', False)
srcDomXML = self.conf.pop('_srcDomXML')
if fromSnapshot:
@@ -3666,9 +3667,9 @@
self._monitorResponse = 0
def _waitForIncomingMigrationFinish(self):
- if 'restoreState' in self.conf:
+ if self.restoringState:
self.cont()
- del self.conf['restoreState']
+ self.restoringState = False
fromSnapshot = self.conf.pop('restoreFromSnapshot', False)
hooks.after_vm_dehibernate(self._dom.XMLDesc(0), self.conf,
{'FROM_SNAPSHOT': fromSnapshot})
--
To view, visit http://gerrit.ovirt.org/23919
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia9fe3f1e38d55e7e661d41c312b5344a9e560e2a
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Francesco Romani has uploaded a new change for review.
Change subject: vm: janitorial: simply the recovering flow
......................................................................
vm: janitorial: simply the recovering flow
This patch reorganizes and simplifies the control flow
as proposed during the review of
http://gerrit.ovirt.org/#/c/22783/
in order to have simpler and cleaner code.
Change-Id: Ic2c1bc48b9f4df7cb236f27c44755d9778e7e6c9
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
M vdsm/vm.py
1 file changed, 10 insertions(+), 8 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/15/23915/1
diff --git a/vdsm/vm.py b/vdsm/vm.py
index 6e4feda..4914653 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -3093,7 +3093,11 @@
self.conf['smp'] = self.conf.get('smp', '1')
devices = self.buildConfDevices()
- if not self.recovering:
+ if self.recovering:
+ for drive in devices[DISK_DEVICES]:
+ if drive['device'] == 'disk' and isVdsmImage(drive):
+ self.sdIds.append(drive['domainID'])
+ else:
self.preparePaths(devices[DISK_DEVICES])
self._prepareTransientDisks(devices[DISK_DEVICES])
# Update self.conf with updated devices
@@ -3111,10 +3115,6 @@
# So, to get proper device objects during VM recovery flow
# we must to have updated conf before VM run
self.saveState()
- else:
- for drive in devices[DISK_DEVICES]:
- if drive['device'] == 'disk' and isVdsmImage(drive):
- self.sdIds.append(drive['domainID'])
for devType, devClass in self.DeviceMapping:
for dev in devices[devType]:
@@ -3126,9 +3126,7 @@
if self.conf.get('migrationDest'):
return
- if not self.recovering:
- domxml = hooks.before_vm_start(self._buildCmdLine(), self.conf)
- self.log.debug(domxml)
+
if self.recovering:
self._dom = NotifyingVirDomain(
self._connection.lookupByUUIDString(self.id),
@@ -3156,6 +3154,9 @@
self._connection.lookupByUUIDString(self.id),
self._timeoutExperienced)
else:
+ domxml = hooks.before_vm_start(self._buildCmdLine(), self.conf)
+ self.log.debug(domxml)
+
flags = libvirt.VIR_DOMAIN_NONE
if 'launchPaused' in self.conf:
flags |= libvirt.VIR_DOMAIN_START_PAUSED
@@ -3165,6 +3166,7 @@
self._connection.createXML(domxml, flags),
self._timeoutExperienced)
hooks.after_vm_start(self._dom.XMLDesc(0), self.conf)
+
for dev in self._customDevices():
hooks.after_device_create(dev._deviceXML, self.conf,
dev.custom)
--
To view, visit http://gerrit.ovirt.org/23915
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic2c1bc48b9f4df7cb236f27c44755d9778e7e6c9
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Yaniv Bronhaim has posted comments on this change.
Change subject: vdsClient: file based mechanism to provide password
......................................................................
Patch Set 3:
to recap, each api that uses password=*** field, which is easier to understand, will get new field auth=[what:value] (which is for connectStorageServer and validateStorageServerConnection). so if password="yaniv" is specified without auth= field, we'll understand that it is the old api request and we'll use the plain password. if auth= is specified its easy to understand what to parse.
the <> inputs, as in all other commands, it'll be a bit different, but as alon mentions, if we'll have auth= parameter we'll use '-' as placeholder and if the password field exists we'll fail the operation with an error (auth and password field cannot specify together), if auth is not specified we'll use the old form.
--
To view, visit http://gerrit.ovirt.org/24733
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I363a16e6a7872ca05e19d5f520bdba90fb492374
Gerrit-PatchSet: 3
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Alon Bar-Lev <alonbl(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: Yedidyah Bar David <didi(a)redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: No
Hello Nir Soffer, Federico Simoncelli, Vinzenz Feenstra, Dan Kenigsberg, Michal Skrivanek,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/24821
to review the following change.
Change subject: vm: recover must finish with libvirt connection
......................................................................
vm: recover must finish with libvirt connection
bz106336 highlights an scenario on which a Vm can
go Up without a proper libvirt connection established (_dom
attribute initialized), and this can lead to a split-brain.
If a running vm is reported as not running by vdsm, the
engine may start another instance of the same vm on another
host, which will likely cause data corruption when two
vm are writing to the same shared storage.
Description of the scenario:
* while VM is running, storage becomes blocked or not responding.
* the user restarts VDSM while the storage is still blocked.
* VDSM does recovery after restart, but given the fact
that storage was still not responding,
_normalizeVdsmImg() inside buildConfDevices() fails.
* due the way exception are handled, this leads to the
skip of the libvirt connection step, leaving the _dom
attribute at its default value (None), thus
* the VM is disconnected from libvirt and out of sync.
We cannot avoid this sequence of events, nor we can
prohibit users from restarting VDSM, but we can
take measures to avoid to go out of sync.
When starting a new VM, storage failure/unavailability is fatal;
when recovering, we should handle those kinds of error
and ensure we do have a libvirt connection on every Vm object.
This patch excplitely handle this storage not responsive
condition and let the initialization process continue, in
order to make sure we obtain a libvirt handle.
Bug-Url: https://bugzilla.redhat.com/1063336
Change-Id: I6c33a62c29fc70170b6f802a20b6016b301e96de
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
Reviewed-on: http://gerrit.ovirt.org/24423
Reviewed-by: Nir Soffer <nsoffer(a)redhat.com>
Reviewed-by: Michal Skrivanek <michal.skrivanek(a)redhat.com>
Reviewed-by: Dan Kenigsberg <danken(a)redhat.com>
Reviewed-by: Federico Simoncelli <fsimonce(a)redhat.com>
Reviewed-by: Vinzenz Feenstra <vfeenstr(a)redhat.com>
---
M vdsm/vm.py
1 file changed, 20 insertions(+), 9 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/21/24821/1
diff --git a/vdsm/vm.py b/vdsm/vm.py
index b2bd980..a371eb9 100644
--- a/vdsm/vm.py
+++ b/vdsm/vm.py
@@ -1846,6 +1846,10 @@
pass
+class StorageUnavailableError(Exception):
+ pass
+
+
class Vm(object):
"""
Used for abstracting communication between various parts of the
@@ -1988,14 +1992,14 @@
if drv['device'] == 'disk':
res = self.cif.irs.getVolumeSize(drv['domainID'], drv['poolID'],
drv['imageID'], drv['volumeID'])
- try:
- drv['truesize'] = res['truesize']
- drv['apparentsize'] = res['apparentsize']
- except KeyError:
- self.log.error("Unable to get volume size for %s",
- drv['volumeID'], exc_info=True)
- raise RuntimeError("Volume %s is corrupted or missing" %
- drv['volumeID'])
+ if res['status']['code'] != 0:
+ raise StorageUnavailableError("Failed to get size for"
+ " volume %s",
+ drv['volumeID'])
+
+ # if a key is missing here, is hsm bug and we cannot handle it.
+ drv['truesize'] = res['truesize']
+ drv['apparentsize'] = res['apparentsize']
else:
drv['truesize'] = 0
drv['apparentsize'] = 0
@@ -2063,7 +2067,14 @@
# Normalize vdsm images
for drv in devices[DISK_DEVICES]:
if isVdsmImage(drv):
- self._normalizeVdsmImg(drv)
+ try:
+ self._normalizeVdsmImg(drv)
+ except StorageUnavailableError:
+ # storage unavailable is not fatal on recovery;
+ # the storage subsystem monitors the devices
+ # and will notify when they come up later.
+ if not self.recovering:
+ raise
self.normalizeDrivesIndices(devices[DISK_DEVICES])
--
To view, visit http://gerrit.ovirt.org/24821
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6c33a62c29fc70170b6f802a20b6016b301e96de
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.4
Gerrit-Owner: Francesco Romani <fromani(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimonce(a)redhat.com>
Gerrit-Reviewer: Michal Skrivanek <michal.skrivanek(a)redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer(a)redhat.com>
Gerrit-Reviewer: Vinzenz Feenstra <vfeenstr(a)redhat.com>
Yaniv Bronhaim has uploaded a new change for review.
Change subject: Using grep -E when greping conf files
......................................................................
Using grep -E when greping conf files
The grep's \s notation, matching whitespace characters, is not
available when using basic regular expressions syntax since grep 2.15
(raised in f20), the default grep syntax. Although, It is available when using
extended regular expression, activated by the -E flag.
Change-Id: Ibf63316f4cec2ade80a6259a8ceb5b80f2537040
Signed-off-by: Yaniv Bronhaim <ybronhei(a)redhat.com>
---
M lib/vdsm/tool/libvirt_configure.sh.in
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/29/24829/1
diff --git a/lib/vdsm/tool/libvirt_configure.sh.in b/lib/vdsm/tool/libvirt_configure.sh.in
index 8a70be5..fc86455 100755
--- a/lib/vdsm/tool/libvirt_configure.sh.in
+++ b/lib/vdsm/tool/libvirt_configure.sh.in
@@ -47,7 +47,7 @@
get_libvirt_conf_item() {
local cfile="$1"
local key="$2"
- @GREP_PATH@ "^\s*"${key}"\s*=" "${cfile}" | \
+ @GREP_PATH@ -E "^\s*"${key}"\s*=" "${cfile}" | \
tail -1 | @SED_PATH@ "s/\s*$key\s*=\s*//;s/\s*\(#.*\)\?$//"
}
--
To view, visit http://gerrit.ovirt.org/24829
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibf63316f4cec2ade80a6259a8ceb5b80f2537040
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.4
Gerrit-Owner: Yaniv Bronhaim <ybronhei(a)redhat.com>
Alon Bar-Lev has posted comments on this change.
Change subject: vdsClient: file based mechanism to provide password
......................................................................
Patch Set 3:
you wanted to keep backward compatibility, so password should have some value but ignored if auth= is specified, we should use '-' as a place holder in doc.
<vmId> <sec> [disconnect|keep|fail] [params={}] auth=what:value
Please be consistent... use auth= with what:value as well.
id=<id>,connection=<path>,portal=<portal>,port=<port>,iqn=<iqn>,user=<username>,password|password-file|password-env=<password | value>
--
To view, visit http://gerrit.ovirt.org/24733
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I363a16e6a7872ca05e19d5f520bdba90fb492374
Gerrit-PatchSet: 3
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Alon Bar-Lev <alonbl(a)redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken(a)redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
Gerrit-Reviewer: Yedidyah Bar David <didi(a)redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: No