2015-05-26  Petr Horáček  <phoracek@redhat.com>

	network/models: check unified persistence only when it exists
	commit 73bbb27cb is re-configuring a bond if does not exist in
	self.configurator.runningConfig.bonds. However, runningConfig is not
	availabled in the ifcfg configurator.

	Bug-Url: https://bugzilla.redhat.com/1223457
	Continuous-Integration: Jenkins CI

2015-05-26  Dan Kenigsberg  <danken@redhat.com>

	netinfo: handle never-expiring leases
	Bug-Url: https://bugzilla.redhat.com/1224632
	Continuous-Integration: Jenkins CI

	vdsm-tool: is-configured: on el6, we must disable sysv's libvirtd job
	In the old libvirt_configure.sh.in script we used to run chkconfig
	libvirtd off. It has been missing from the new configurators/libvirt.py
	implementation. This patch adds that part which introduced a regression
	after first host restarts. On upgrade, we check is-configured for
	libvirt module - if sysv still handles the service it will report
	NOT_CONFIGURED and reconfigure it to use upstart instead of sysv.

	Label: ovirt-3.5-only - initctl hack is relevant only to el6
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1222154
	Continuous-Integration: Jenkins CI

2015-05-25  Dan Kenigsberg  <danken@redhat.com>

	net tests: skip test_setupNetworks_on_external_bond
	commit f80e6162f introduced test_setupNetworks_on_external_bond that
	depends on a subtle difference in the semantics of restoreNetworks that
	depends on the persistence model. With unified persistence, the
	restoration re-creates the network structure in kernel. However, with
	ifcfg persistence, only the configuration files are written to disk.

	Until this difference is solved, this patch skips the test on when run
	with ifcfg persistence.

	Bug-Url: https://bugzilla.redhat.com/1223457
	Continuous-Integration: Jenkins CI

2015-05-22  Ondřej Svoboda  <osvoboda@redhat.com>

	vm: shorten an 80-char line by renaming unused variables (PEP8)
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-21  Martin Sivak  <mars@montik.net>

	Actually use the NUMA stats thread
	The code from https://gerrit.ovirt.org/#/c/33782/4 is missing
	from the 3.5 branch and that causes the NUMA efficiency fix to
	not work properly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1220113
	Continuous-Integration: Jenkins CI

2015-05-18  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Prevent password logging
	Vdsm should not expose passwords in log messages. We have code in HSM,
	protecting some methods that accept connection lists, which may include
	a password parameter. However this is not the right place to protect
	passwords, as they are logged now by the jsonrpc server.

	This patch introduces the password library, providing:

	  ProtectedPassword     class for wrapping password value, so it is not
	                        logged or persisted by mistake.

	  protect_passwords     replace passwords value with ProtectedPassword
	                        object in nested structures.

	  unprotect_passwords   replace ProtectedPassword objects with the
	                        actual password value.

	The jsonprc server protect request parameters and response result
	containing passwords for logging purpose by using protect_passwords
	method introduced in password module.


	Bug-Url: https://bugzilla.redhat.com/1220039
	Relates-To: https://gerrit.ovirt.org/#/c/40707
	Continuous-Integration: Yaniv Bronhaim <ybronhei@redhat.com>

2015-05-15  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Do not count time spent on migrationCreate against timeout
	Currently, the measured time for the source migration timeout includes
	the time spent on the destination host. This is bad because the time
	spent for some actions during the vm creation can be very expensive and
	time consuming.
	This patch, excludes the time spent during the destination vm creation
	from the measured time.

	The change is not expected to introduce regressions on the source, since
	even now we would hang on the migrationCreate call.

	Bug-Url: https://bugzilla.redhat.com/1221597
	Continuous-Integration: Jenkins CI

2015-05-13  Fred Rolland  <frolland@redhat.com>

	spec: updated qemu-* requirements on EL
	Updated the build version for qemu-kvm-ev,qemu-kvm-rev,qemu-img-ev and
	qemu-img-rhev for a EL build on EL >= 7.

	The required qemu-img version solves a crash when using qemu-img convert
	-t none on some block storage devices (see
	https://bugzilla.redhat.com/show_bug.cgi?id=1203543 for details).

	Bug-Url: https://bugzilla.redhat.com/1221192
	Bug-Url: https://bugzilla.redhat.com/1220333
	Continuous-Integration: Jenkins CI
	Continuous-Integration: Yaniv Bronhaim <ybronhei@redhat.com>

2015-05-13  Idan Shaby  <ishaby@redhat.com>

	spec: require qemu-*-ev on CentOS >= 7
	Added a requirement for qemu-kvm-ev and qemu-img-ev on CentOS >= 7.

	qemu-*-ev rpms are upstream version for qemu-*-rhev.
	These supply features needed that are not available in the regular
	qemu-*, for example 'Live Snapshot'.

	Bug-Url: https://bugzilla.redhat.com/1221192
	Bug-Url: https://bugzilla.redhat.com/1220333
	Continuous-Integration: Jenkins CI
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-13  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfoTests: Do not try to read bonding options
	A user running the tests usually does not have sudo permissions
	to create a bond.

	Continuous-Integration: Jenkins CI

2015-05-12  Martin Sivak  <msivak@redhat.com>

	Fix the CPU quota MOM policy computations
	This changes the way we compute period and quota to what
	is described in the documentation:

	The maximum CPU load percentage is related to the total computing
	power the host has.

	Two issues are also fixed by this:

	- the period could get below 1000 with low enough percentage
	  or high enough vCPU count and libvirt won't accept that

	- the quota number was higher than period when vCPU count was
	  lower than the number of physical CPUs, effectively disabling
	  the CPU limits

	An additional improvement in performance should be visible for
	VMs that do not use cpu limiting (using 100% as the limit),
	because the policy disables cgroups limit tracking in that case.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1213438
	Continuous-Integration: Yaniv Bronhaim <ybronhei@redhat.com>

	Move NUMA collecting code to stats thread
	NUMA collecting was performed any time the .get() method was
	invoked. That caused a serious slow down. This patch moves
	the collecting to where all the other stats are collected.

	I measured the performance of getAllVmStats before and after
	this patch was applied on a host with local storage and
	two NUMA enabled VMs using:

	The results for unpatched VDSM:

	real    0m21.093s
	user    0m11.998s
	sys 0m1.690s

	The results for patched VDSM:

	real    0m18.485s
	user    0m12.009s
	sys 0m1.846s

	And the results for both patched and unpatched VDSM when no
	NUMA enabled VM is started are very similar:

	real    0m18.298s
	user    0m11.878s
	sys 0m1.699s

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1220113
	Continuous-Integration: Jenkins CI

2015-05-11  Ondřej Svoboda  <osvoboda@redhat.com>

	bondopts: Add defaults for new bonding options
	The new options are:
	arp_all_targets, lp_interval, packets_per_slave, tlb_dynamic_lb

	Without this patch, they are reported even if they have default values.
	This is harmless but quite confusing, as we only want to report options
	with values differing from their defaults (which are mode-dependent).

	netinfoTests:testGetBondingOptions, whose purpose is to alert
	us that we are missing some defaults, should now pass again.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1219932
	(cherry picked from commit 649c99978aa39491886ebbe2e33683d6b8756b37)
	Continuous-Integration: Jenkins CI

2015-05-11  David Caro  <dcaroest@redhat.com>

	Fixed parted utils for newer parted
	In the newer parted, the new flag 'esp' is added to the 'boot' flag on all
	partitions.

	Also fixed issue where we returned the trailing commas when a partition had
	more than one flag.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1219875
	(cherry picked from commit 1d399bc3f914f6230234ae9db4bb324f498e30ee)

2015-05-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding qemu-kvm-ev and qemu-img-ev to caps report
	ev suffix for those packages were added - report their versions for
	qemu-img and qemu-kvm packages.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1219754

2015-05-07  laravot@redhat.com  <laravot@redhat.com>

	monitor: return whether the reported status is actual
	When the domain monitoring results are reported after the domain
	monitor was started. The first monitoring run may haven't been yet
	completed - which causes the returned status to be determined as OK
	by the engine (leads to domain status change).

	It was attempted to change the inital returned status in the past but it
	broke the host activation flow in the engine (see change I8e0df) and
	therefore the inital results can't be changed (backward comptability) -
	therefore in this change i add a new info that indicates whether the
	reported status is actual or not.

	When providing the engine the information on whether the returned status
	is actual or not, the engine can decide how to act upon the monitoring
	result and ignore it if it's irrelevant.

	Bug-Url: https://bugzilla.redhat.com/1202399

2015-05-07  Eldan Shachar  <eshachar@redhat.com>

	vm payload: Add Joliet FS support
	Current payload ISO only uses Rock Ridge extension, as a result
	Windows VMs can't use payloads with long filenames. This fix
	adds the Joliet extension to the generated ISO.

	Bug-Url: https://bugzilla.redhat.com/1216900

2015-05-05  Petr Horáček  <phoracek@redhat.com>

	netlink: fix PEP8 missing line in netlink memory leak patch
	Bug-Url: https://bugzilla.redhat.com/1158108

2015-04-29  Petr Horáček  <phoracek@redhat.com>

	netlink: fix PEP8 in netlink memory leak patch
	Bug-Url: https://bugzilla.redhat.com/1158108

2015-04-26  John Taylor  <jtt77777@yahoo.com>

	vdsm: Fix memory leak in netlink/link.py
	The documentation for libnl says that calls to rtnl_link_get_by_name
	increment the reference counter and should be released by a call to
	rtnl_link_put().  That's not done in the get_link(name) function where
	it is used and causes a memory leak.

	Add a C function prototype for the libnl rtnl_link_put function,
	construct the link_info, and call rtnl_link_put before returning from
	get_link(name). This will decrement the reference counter so the
	eventual call to _nl_cache_free(cache) for the used cache will be able
	to free all of its link objects.

	Bug-Url: https://bugzilla.redhat.com/1158108

2015-04-21  Yaniv Bronhaim  <ybronhei@redhat.com>

	Signs tests as broken due to wrong mocking
	Temporary solution to avoid broken uts:
	Both testHostSampleReportsNewInterface
	testHostSampleHandlesDisappearingVlanInterfaces try to communicate
	libvirt using libvirtconnection - we should mock this calls and remove
	the revert this patch.

2015-04-16  Ido Barkan  <ibarkan@redhat.com>

	gitignore: typo

	unbreak crossImportsTests
	get_python_lib(plat_specific=True) returns
	/usr/lib64/python2.7/site-packages which is no longer true for vdsm
	installations.

2015-04-14  Darshan N  <dnarayan@redhat.com>

	gluster: Handle gluster exceptions in json rpc mode.
	This patch adds code to handle gluster exceptions in
	JSON rpc mode. Earlier gluster exceptions were not
	propagated properly in json rpc mode.

	Bug-Url: https://bugzilla.redhat.com/1207150

2015-04-12  Ala Hino  <ahino@redhat.com>

	udevadm: Handle errors and timeouts in udevadm.settle()
	In commit 4c10d3d10c (multipath: Wait for udev events after rescan) we started
	to invoke udevadm.settle() during multipath.rescan(). Since rescan is performed
	in the storageRefresh thread, and we did not handle exceptions, a timeout in
	udevadm.settle() will cause HSM initialization to fail and leave vdsm in
	"initializing" state.

	udev timeout behavior is undocumented. Looking into the code, we found two types
	of logic:
	- On el6, el7 and f20, if timeout occurs, rc=1 and timeout info
	  printed to stdout
	- On f21, timeout is ignored. We opened bz for udev to fix this:
	  https://bugzilla.redhat.com/1209474

	Handling the errors in settle() rather than propagating them seems more useful
	because we do not want to fail the entire operation only because udev fails to
	wait for events.  This is the same behavior implemented in hba.rescan.

	Bug-Url: https://bugzilla.redhat.com/1209028

2015-04-12  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix RescanTimeoutsTests
	In commit 4c10d3d10c (multipath: Wait for udev events after rescan) I
	removed unneeded and badly implemented minimal timeout, and the unneeded
	optional arguments in iscsi.rescan() but forgot to update the tests.

	In this patch:

	- remove the now unneeded and broken test for minimal timeout
	  (the test was passing while the code was broken)
	- simplify the testing infrastructure
	- instead of passing arguments to rescan, monkey-patch the config.
	- use safe monkey-patching.
	- use monotonic_time
	- use real process so we get SIGCHLD when the scan is finished;
	  otherwise, the tests may pass while the code is broken
	- add test for normal operation

	make_config and monotonic_time defined locally in the test because they
	don't exist on ovirt 3.5 branch.

	Bug-Url: https://bugzilla.redhat.com/1209028

2015-04-12  Dan Kenigsberg  <danken@redhat.com>

	drop needless import to make pylakes happy
	should have been part of commit 4c10d3d10.
	iscsiTests.RescanTimeoutTests is to be fixed in another patch.

	Bug-Url: https://bugzilla.redhat.com/1209028

2015-04-12  Nir Soffer  <nsoffer@redhat.com>

	storageServer: Wait for udev events after connect
	Connecting to iSCSI target starts a storm of udev events, that may not
	be handled yet when iscsiadm terminates. This may lead to missing
	devices and failures when creating storage domain.

	Now we wait until current udev events are handled after connecting,
	using new udevadm.settle(). The timeout can be configured using the
	new irs:scsi_settle_timeout option.

	Bug-Url: https://bugzilla.redhat.com/1209028

	multipath: Wait for udev events after rescan
	Previously we were using time.sleep(2) for waiting at least 2 seconds
	after starting iSCSI sessions rescan. This wait was useless for two
	reasons:
	- The sleep was interrupted as soon as iscsiadm process terminated
	- Udev events generated by the SCSI scan and by processing udev rules
	  may not been handled yet when iscsiadm existed.

	This patch replaces the minimal scsi timeout with udevadm.settle(),
	waiting until current udev events are handled.  Since we perform both FC
	and iSCSI scan, the correct place for waiting is in multipath.rescan()
	and not in iscsi.rescan().

	A new configuration was introduced, allowing fine tuning of settle
	timeout in the field.

	    [irs]
	    scsi_settle_timeout = 5

	Bug-Url: https://bugzilla.redhat.com/1209028

	udevadm: Add udevadm wrapper
	Add udevadm wrapper for running udevadm tool. In the current version the
	wrapper implement only the settle() command, which should be used to
	wait for events after modifying scsi connections.

	Bug-Url: https://bugzilla.redhat.com/1209028

2015-04-08  Amador Pahim  <apahim@redhat.com>

	iscsi: Fix iscsi_host path lookup for hardware iSCSI.
	In commit a78793935e (Configure iSCSI iface.net_ifacename), we
	introduced the iface.net_ifacename probe for active sessions. We use
	the sessionID to locate /sys/class/iscs_host/host* and read the
	netdev attribue.

	However, we looked up the session in /sys/devices/platform/host*
	which is correct only for software iSCSI. For hardware iSCSI, the
	session is located in /sys/devices/pci*/*/*/*/host*.
	This patch locates the host using the real iscsi_session path, which
	works for both software and hardware iSCSI.

	Bug-Url: https://bugzilla.redhat.com/1209108

2015-04-08  Nir Soffer  <nsoffer@redhat.com>

	spec: Update libvirt-daemon and libvirt-python requirements
	The errata RHBA-2015:0742-05 fixes bug 1177220 by updating libvirt to
	version 1.2.8-16.el7_1.2.  Details from the advisory follow:

	When using the QEMU emulator to search for a file name in a backing
	chain, QEMU previously searched for an incorrect string. As a
	consequence, QEMU was unable to perform blockpull and blockcommit
	actions involving the affected part of the backing chain. With this
	update, libvirt queries the QEMU version of the string associated with a
	backing chain element. As a result, it is now possible to create
	multiple snapshots and then use consecutive blockcommit actions to clear
	the snapshots. (Bug 1203119)

	In order to resolve the problems with live merge we must require this
	version of libvirt on EL7 hosts. On Fedora this fix is available only in
	1.2.14, which available only on Fedora 22. When running on Fedora < 22,
	we don't have any fix yet to this issue.

	This version of libvirt also includes a fix for LSM (Bug 1176673). The
	libvirt flag VIR_DOMAIN_BLOCK_REBASE_COPY_DEV was added to libvirt and
	the python bindings and will be used by vdsm to make sure block disks
	are handled properly by libvirt.  We need both libvirt-daemon >=
	1.2.8-16.el7_1.1 and libvirt-python >= 1.2.8-7.el7_1.1 for a complete
	fix to the problem.

	Note that we can require new libvirt-daemon only when when building
	RHEV, since our CI is still using Centos 7.0.

	Bug-Url: https://bugzilla.redhat.com/1177220
	Bug-Url: https://bugzilla.redhat.com/1196049

	spec: Simplify libvirt dependencies
	Replaced nested if-else structure with single ifs per ditro/version,
	which are easier to understand and maintain.

	On Fedora, we required libvirt instead of libvirt python - this looks
	like a mistake that works because we require also libvirt-daemon-xxx
	packages. Now we require libvirt-daemon like in rhel >= 7.

	Fedora 18 is not supported for long time ago, so like in master, we
	check now for 0%{?fedora} instead of 0%{?fedora} >= 18.

	Bug-Url: https://bugzilla.redhat.com/1177220
	Bug-Url: https://bugzilla.redhat.com/1196049

2015-04-07  Allon Mureinik  <amureini@redhat.com>

	spec: upgrade selinux dependency for gluster
	Upgrade the SELinux policy dependency in order to require a fix that
	prevents creating GlusterFS domains on EL7.

	Bug-Url: https://bugzilla.redhat.com/1205583

2015-04-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	vdsm-tool: Remove unneeded imp import
	In commit 07beba9e139 (Hack vdsm >=4.16.x for vdsm-tool import issues
	during upgrade) two imp imports were added. This patch removes the
	standard import at the top and leave the import close to the hack.

	Using vdsm-tool restore-conf in init script instead of direct call
	This caused a bug on vdsm upgrade from 4.14 to 4.16 (see commit message
	in https://gerrit.ovirt.org/#/c/39408/). Using vdsm-tool fix
	the import from site-packages. This patch adds the --force option to the
	verb.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1208752

	Hack vdsm >=4.16.x for vdsm-tool import issues during upgrade
	Since oVirt 3.5 (vdsm 4.16) we started to install vdsm site-packages under
	/usr/lib (python_sitelib). In sys.path the import order first check
	under
	/usr/lib64. While upgrading vdsm 3.4 to >=3.5 we perform configure call in
	%postun which calls vdsm-tool, vdsm-tool tries to import vdsm.tool which
	exists both under /usr/lib and under /usr/lib64 in this specific case
	before all vdsm 3.4 files were removed. In such case we get failures all
	over.

	This patch hacks the import part and takes care of importing vdsm.tool
	from the /usr/lib on upgrade.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1208752

2015-04-01  Adam Litke  <alitke@redhat.com>

	Live Merge: work around racy libvirt pivot
	Libvirt version 1.2.8-16.el7_1.2 introduced a bug where the synchronous
	call to blockJobAbort (which we use to pivot to the new leaf after an
	active layer merge completes) will return before the domain XML has been
	updated.  This makes it look like the pivot failed when it actually
	succeeded.  This means that vdsm state will not be properly synchronized
	and we may start the vm with a stale volume in the future which will
	corrupt the VM's storage.  See
	https://bugzilla.redhat.com/show_bug.cgi?id=1202719 for more details.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1207808

2015-04-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Restart supervdsmd service always and not only on-abort
	Currently we restart the service only after SIGKILL (on-abort) but the
	desire behaviour should be always restarts when the process goes down.

2015-03-29  Ido Barkan  <ibarkan@redhat.com>

	Prevent systemd to kill dhclient once vdsm-network service is stopped
	When upgrading VDSM or for that matter, stopping vdsm-network process,
	systemd would kill all the descendants of the service (including dhclient).
	When vdsm-network starts again, it discovers /var/run/vdsm/nets_restored and
	does not restore any network, possibly leaving the system with interfaces
	that have an IP with a timer but no dhclient to renew it. Adding
	KillMode=Process tells systemd to only kill the service main process and
	nothing more.

	Bug-Url: https://bugzilla.redhat.com/1204782

2015-03-25  Petr Horáček  <phoracek@redhat.com>

	network: tests: add error code checking
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1154399

2015-03-24  Ido Barkan  <ibarkan@redhat.com>

	split network restoration from vdsmd.service
	Right now the task of doing network restoration is delegated to the vdsmd
	service initialization. Since systemd does not expect that a long lived deamon
	such as dhclient will stay alive after ExecStartPre stage, it might kill
	dhclient, if that was spawned on dhcp persistent interfaces.

	This patch splits systemd vdsm service into 2 dependant units:
	1. vdsm-network.service which
	   upgrades unified persistence and 3.0.0 networks if needed and then restore
	   networks as its main mission

	2. vdsmd.service which reconfigures the persistent network configuration of
	   vdsm using the configured net_configurator

	Note that from now on, disabling vdsmd cannot render the machine inaccessible
	as the vdsm networks will be started upon boot. Note also that since it is
	inconvenient to implement logic on service files, vdsm-restore-net-config
	learned how to no-op when nets_restored mark exists and this functionality was
	removed from the bash part.

	Bug-Url: https://bugzilla.redhat.com/1204782

2015-03-24  Dan Kenigsberg  <danken@redhat.com>

	spec: require libnl3
	Fedora 22's libnl3 no longer provides libnl package name.
	Now that el6.6 is long out, we can require libnl3 on all platforms.

	Label: ovirt-3.5-only

2015-03-19  Yeela Kaplan  <ykaplan@redhat.com>

	vdscli: allow a connection with a configurable timeout
	Add an option to connect to vdscli with any configurable
	timeout, to allow the user a larger timeout than the
	default ssl 60 seconds.
	Especially useful for long duration storage operations.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1190207

	call named arguments with their name
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1190207

2015-03-19  Petr Horáček  <phoracek@redhat.com>

	network: models: tag non-VDSM devices used by VDSM
	When we setup network over pre-existing vlaned bond, models.py skip
	configuration of pre-existing devices under a vlan (because they are not
	to be changed) in order to not ifdown possibly used devices. Due to this
	behaviour we don't persist mentioned networks and therefore we are not
	able to restore them.

	Now we check if device is a part of vdsm, if not, we configure and
	persist it.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1154399

2015-03-19  Francesco Romani  <fromani@redhat.com>

	API: getVMList: compatibity with internal clients
	After the addition of the 'onlyUUID' parameter, the external
	API of VDSM is now backward compatible:

	- in XMLRPC, we always set explicitely onlyUUID=False, so no room for
	  breakage
	- in JSONRPC, we have Host_getVMList_Call (short status), on which
	  * if onlyUUID is provided from the outside, we use it
	    (works with Engine >= 3.5.1)
	  * if onlyUUID is NOT given (Engine 3.5.0), we default as True,
	    and doing so we preserve the backward compatibility
	- in JSONRPC, in Host_getVMFullList_Call (full status), we use
	  onlyUUID=False explicitely, so no issue hee

	The internal API, however, changed behaviour.
	Being the API internal, it doesn't usually need special care,
	but this time we need, because MOM is a supported client of
	this API.

	With the current 'onlyUUID' defaults, clients of API.py
	will get a list of UUIDs instead of a list of Short Status.

	To fix this, and given the findings outlined in the above bullet points,
	we just switch the default value of 'onlyUUID' to cover this use case.

	Bug-Url: https://bugzilla.redhat.com/1196327
	Related-To: https://bugzilla.redhat.com/1196735

	API: onlyUUID should affect only short status
	this patch makes the 'onlyUUID' parameter take effect only
	if 'fullStatus' equals False (short status was asked).

	depending on 'fullStatus' boolean parameter, the getVMList API can
	return either full or short VM status.
	Due to a bug originally introduced before 3.5.0, short status
	was incorrectly produced as list(UUIDs), but it is meant to be
	a list(dict(vmId:UUID, status:vmStatus), )

	The 'onlyUUID' parameter was added to preserve
	backward compatibility with early Engines 3.5.x, but it is meant
	to fix short status (fullStatus=False), and should not always affect
	output.

	Instead, the current code always produces short and broken status
	if 'onlyUUID' equals True, with the side effect that also fullStatus
	is affected.

	Bug-Url: https://bugzilla.redhat.com/1196327
	Related-To: https://bugzilla.redhat.com/1196735

2015-03-18  Petr Horáček  <phoracek@redhat.com>

	network: persistence: skip bonds owned and used by vdsm
	When upgrading bonds to unified persistence, we should skip foreign bond
	(a bond that has ifcfg-bond lacking the "generated by vdsm" header).
	However, if any of these bonds is used by a vdsm network, it must be
	persisted. Otherwise, calling restore_net removes the bond (when it
	cleans current running config) but it fails to re-create it from the
	persistent config.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1154399

2015-03-16  Petr Horáček  <phoracek@redhat.com>

	init: fix network service status checking
	In init file, we check if network service is running by its status
	return code. Problem is, that this code is "always" 0, therefore we never
	start network service when needed (for example, it's not autostarted
	on CentOS 6).

	`service network status` returns lists of configured and active devices,
	if the list of active devices (on the last row) does not contains all
	VDSM's ONBOOT=yes devices, it means, that network service did not start
	our devices and we should call service network start.

	Related-To: https://bugzilla.redhat.com/1194553

2015-03-11  pkliczewski  <piotr.kliczewski@gmail.com>

	getVMList: let api to manage when send short info
	Bug-Url: https://bugzilla.redhat.com/1196735

2015-03-10  pkliczewski  <piotr.kliczewski@gmail.com>

	getAllVmStats: failing to parse vmids
	Bug-Url: https://bugzilla.redhat.com/1196735

2015-03-10  Dan Kenigsberg  <danken@redhat.com>

	sos plugin: collect /var/lib/vdsm
	ovirt-3.5's vdsm started placing important persistent information under
	/var/lib/vdsm. This information should be collected for post-mortem
	debug.

	Related-To: https://bugzilla.redhat.com/1195989

2015-03-10  pkliczewski  <piotr.kliczewski@gmail.com>

	getVMList: using internal function instead of vm.status
	Bug-Url: https://bugzilla.redhat.com/1196735
	Label: ovirt-3.5 - broken backport

2015-03-10  Amador Pahim  <apahim@redhat.com>

	qemu-img: check/use "-T src_cache" option in convert/rebase when available
	"qemu-img" is used for operations like disk move or snapshot delete.
	This process reads data using the hypervisor page cache. As this data might
	be hotter than any VM memory the system starts swapping out memory pages of
	the running VMs.

	vdsm already uses "-t none" option to avoid cache for output image. Now
	"qemu-img" introduced a new "-T src_cache" to avoid cache for the
	input image (bz#1116558).

	This patch is testing if qemu-img has the new "-T src_cache" option available
	for convert and rebase commands and using it with "-T none" when true.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1199141

2015-03-09  pkliczewski  <piotr.kliczewski@gmail.com>

	schema: fixing rebase issue
	Bug-Url: https://bugzilla.redhat.com/1196735
	Label: ovirt-3.5 - broken backport during rebase

	api: introducing onlyUUID parameter for getVMList verb
	Due to vdsm sending only an array of vmids in a response to getVMList
	the engine asks separately using VM.getStats which creates unnecessary
	load. In order to fix this issue we introduce a new parameter 'onlyUUID'
	which is set to True by default. Engine 3.5.0 still wants to get an
	array of vmids, but for all other versions we set 'onlyUUID' to False
	which returns map of vmids and statuses.

	Bug-Url: https://bugzilla.redhat.com/1196735
	Related-To: https://gerrit.ovirt.org/#/c/38448

2015-03-09  Dan Kenigsberg  <danken@redhat.com>

	restore_nets: during rollback, ignore removal of a missing bond
	If a bond is removed outside vdsm, attempting to restore networks to the
	last known-good set of configuration currently fails.

	With this patch, if vdsm is asked to remove an already-missing bond
	device during an attempt to restore networking, this descripency is
	ignored, and restore_nets would go on attempting to restore further
	networks, hopefully restoring connectivity to the host.

	The accompanying test verifies that restore_nets survive after such
	removal. It also verifies that adding a network on top of an
	already-existing bond ends with the bonding device being consumed into
	the running (and later, persistent) config.

	Bug-Url: https://bugzilla.redhat.com/1196271

2015-03-09  Petr Horáček  <phoracek@redhat.com>

	network: test: remove bond with removed enslaved nics

2015-03-09  Adam Litke  <alitke@redhat.com>

	qemu-img: Handle image end offset on different lines of output
	Current code assumes that qemu-img check output will place the image end
	offset in the second line of output but it can appear later:

	$ sudo qemu-img check
	/rhev/data-center/.../41b2b944-77f0-40d5-a681-c63e0dbb7482
	No errors were found on the image.
	70088/98304 = 71.30% allocated, 0.17% fragmented, 0.00% compressed clusters
	Image end offset: 4594466816

	Update the scanner so it can find it on any line from the second until
	the end of output.

	Bug-Url: https://bugzilla.redhat.com/1199815

2015-03-09  pkliczewski  <piotr.kliczewski@gmail.com>

	Revert "json-rpc: fix the Host.getVMList return value"
	This reverts commit e7ebfdeb7b036ce10f25a3b26657e6414644fc55.

	Bug-Url: https://bugzilla.redhat.com/1196327

2015-03-07  Adam Litke  <alitke@redhat.com>

	Live Merge: Update drive.format after active layer merge
	A merge of the active layer can change the drive format from cow -> raw
	if a snapshot was merged into a raw backing file.  In that case we must
	correct the VM Drive metadata to ensure the drive is handled properly
	after the merge has finished.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1198512

2015-03-03  Francesco Romani  <fromani@redhat.com>

	json-rpc: fix the Host.getVMList return value
	Host.getVMList() should return either VmDefinition or
	VmShortStatus depending on the parameter fullStatus.

	The return value in case fullStatus=False was wrong,
	as it was just a list of UUIDs, while VmShortStatus
	is supposed to be a dictionary holding (at least)
	vmId and vmStatus.

	This change made life harder to Engine monitoring code.
	Missing the status, Engine's monitoring had no choice
	but to call Vm.getStats() after each getVmList(), and that
	has a not-negligible performance cost.

	This patch makes the JSON-RPC output compliant to the
	schema, to what Engine's monitoring expects and also
	to XML-RPC output.

	Bug-Url: https://bugzilla.redhat.com/1196327

2015-03-02  Petr Horáček  <phoracek@redhat.com>

	network: store non-Vdsm ifcfgs with unified persistence
	Unified restoration first removes everything in the running config and
	then tries to regenerate everything that's in the persisted config,
	problem is, that original devices are not persisted.

	In this patch we (temporarily) use ifcfg persistence for non-Vdsm devices
	(even when unified persistence is set), so we are able to restore them.

	Bug-Url: https://bugzilla.redhat.com/1197668

2015-02-27  Petr Horáček  <phoracek@redhat.com>

	network: filter out networks with unconfigured bonds
	Related-To: https://bugzilla.redhat.com/1189229
	Bug-Url: https://bugzilla.redhat.com/1189229

	network: api: allow removal of bond with no slaves
	If we try to remove a bond with no slaves attached, VDSM explodes and
	doesn't allow us to repair the network.

	This patch moves checking of slaves up the stack, only to 'edit' and
	'add' bond's functions.

	'remove' bond function is able to objectivize slaveless bond and allows us
	to remove it.

	Bug-Url: https://bugzilla.redhat.com/1196271

2015-02-26  Nir Soffer  <nsoffer@redhat.com>

	vm: Fix LSM when using libvirt >= 1.2.8
	Libvirt 1.2.8 introduced a regression where disk type is converted from
	"block" to "file" after blockRebase. This breaks our extend logic, leading
	to unwanted extension of up to the disk virtual size, practically making
	it preallocated. In 3.5, this used to extend the disk without limit
	using all free space on the vg.

	Libvirt 1.2.9 introduced a new VIR_DOMAIN_BLOCK_REBASE_COPY_DEV flag
	for fixing this issue. This flag must be used when calling blockRebase
	with block-based disk. This fix was backported to EL7.1 in
	libvirt-1.2.8-16.el7_1.1 and libvirt-python-1.2.8-6.el7_1.1.

	This patch uses VIR_DOMAIN_BLOCK_REBASE_COPY_DEV when available, fixing
	this issue in EL7.1 and Fedora 21. Other platforms are not affected by
	this issue because they are running older libvirt versions.

	We assume that we are always working with local libvirt daemon, and
	having the flag in the libvirt python bindings means that libvirt daemon
	support the flag.

	Bug-Url: https://bugzilla.redhat.com/1196049

2015-02-03  Saggi Mizrahi  <smizrahi@redhat.com>

	stomp: Make sure the \0 is read before slicing the buffer
	In python if you try and slice past the end of the list\string you get
	an empty string and not an IndexError

	The original code check that we got all the data and sliced past the
	ending \0. But on rare cases where the message ended exactly with all
	the content but the \0 was not received.

	The slicing code would silently ignore the fact that the index doesn't
	exist and would return an empty string and switch the parser state
	making all future data have the wrong offset.

	This in turn made the command '\0SEND' instead of 'SEND' which has no
	handler and where silently ignored. The only way to solve this was to
	reconnect.

	Bug-Url: http://bugzilla.redhat.com/1181233
	Reviewed-On: http://gerrit.ovirt.org/37018

2015-02-02  Amador Pahim  <apahim@redhat.com>

	Handle iscsi iface.net_ifacename for existing iface
	Using a new version of engine which provides netIfaceName as an iscsi
	connection option, hypervisor has to properly handle this option.

	- For non-existent iscsi iface, nothing changes. We will create
	  the device using the netIfaceName coming from engine.
	- For already present iscsi iface:
	 * If iface.net_ifacename is empty, we update iface using the value
	   coming from engine.
	 * If iface.net_ifacename has a value and the value is different from
	   the netIfaceName coming from engine, we raise an exception and skip
	   the iface configuration. Manual intervention will be needed.

	Bug-Url: https://bugzilla.redhat.com/1178838

2015-02-02  Maor Lipchuk  <mlipchuk@redhat.com>

	iscsiadm.iface_list() to return iface.net_ifacename
	Currently iface_list() only returns a list with iface names. In order to
	properly instantiate the corresponding iface class, this patch adds to
	iface_list() all parameters returned by the command 'iscsiadm -m iface' in
	a tuple of namedtuples, each one representing a distinct iface.

	The issue that pushed this code was iface class not being instantiated
	with proper iface.net_ifacename. This patch is using the new
	iface_list() format to catch iface.net_ifacename and pass it to iface
	class instatiation.

	Bug-Url: https://bugzilla.redhat.com/1178838

2015-02-02  Amador Pahim  <apahim@redhat.com>

	Configure iSCSI iface.net_ifacename
	When using multiple local devices in same subnet to have MPIO, we need to bind
	each iscsi session to a network device, otherwise system will choose any
	interface in the same subnet to use for the iSCSI session.

	Engine now sends the netIfaceName, which defines the network device to be used
	for each iscsi session. This patch enables vdsm to consume netIfaceName and
	configures iscsi iface accordingly.

	Bug-Url: https://bugzilla.redhat.com/1178838

2015-02-01  Maor Lipchuk  <mlipchuk@redhat.com>

	New sysctl module for run-time changes.
	Some sysctl tunables must be dynamically set to configure system in given
	situations. Those sets won't persist after boot.

	This patch is creating the sysctl module to allow such configuration and preparing
	this module with the functions needed to handle rp_filter configuration. Since sysctl
	tunables can only be set by root user, supervdsmServer is used as proxy. Further
	use of this module can be based in rp_filter configuration.

	Notice that to have mandatory changes sysctl.d/vdsm.conf still should be used.

	Bug-Url: https://bugzilla.redhat.com/1178838

2015-02-01  Amador Pahim  <apahim@redhat.com>

	Set sysctl to allow iSCSI multipath with multiple NICs in the same subnet
	When two or more interfaces are in the same subnet, the default OS
	behaviour won't allow the independent traffic between local NICs and
	iSCSI targets.

	These sysctl tweaks are needed to have iSCSI multipath working in
	such topology:

	  eth1 (192.168.25.200) --|
	                          |-- iSCSI Target (192.168.25.10)
	  eth2 (192.168.25.201) --|

	For the ARP flux problem, where the machine may respond to ARP requests
	from both Ethernet interfaces, we are setting "arp_ignore=1" and
	"arp_announce=2"

	To allow multiple iSCSI connections in a multiple NIC per subnet
	configuration, reverse path filtering must be loosened with
	"rp_filter=2" for the interfaces.

	Bug-Url: https://bugzilla.redhat.com/1178838

2015-01-21  Yeela Kaplan  <ykaplan@redhat.com>

	spec: require selinux that allows logrotate to manage virt_cache
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1131460

2015-01-19  Nir Soffer  <nsoffer@redhat.com>

	lvm: Handle special "unknown device" pv_name
	When a pv is missing (e.g. device was lost or target is disconnected),
	lvm return the special value "unknown device". Keeping this value cause
	vdsm to fail in an unhelpful way when checking device properties when
	trying to access "unknown device":

	    OSError: [Errno 19] Could not find dm device named `unknown device`

	Now we check lvm output and filter out pvs named "unknown device". If a
	pv is missing, it will not be listed in the vg pv_name list, and in the
	pvs cache.

	When reloading vgs, we will see now this error:

	    vg 04598ee3-46ff-4bb3-b8b2-4434f375302e has pv_count 2 but pv_names
	    ('/dev/mapper/1IET_00070003',)

	Previously this error was not logged since vg.pv_name included also
	"unknown device".

	When reloading pvs, we will see a new error:

	    Missing pv: wPIujw-Wmcj-V2O6-r8Fl-X485-mXm7-UxCO3Q in vg:
	    04598ee3-46ff-4bb3-b8b2-4434f375302e

	Finally, a missing pv will show this error during domain selftest:

	    StorageDomainAccessError: Domain is either partially accessible or
	    entirely inaccessible: ('04598ee3-46ff-4bb3-b8b2-4434f375302e',)

	This error was masked before by the OSError above.

	Bug-Url: https://bugzilla.redhat.com/1181678

2015-01-18  Dan Kenigsberg  <danken@redhat.com>

	net config: make sure ifcfg files are not persisted on node
	When setting up networking, a multitude of ifcfg files may be modified.
	If we are using the (default) 'unified' persistence mode, we expect that
	none of these modification is to be persisted for the next boot.

	However already-persisted ifcfg files would; unpersisted files won't,
	which lead to the inconsistent state reported in the bug.

	In this patch we make sure that none of our changes to ifcfg files is to
	be persisted.

	Bug-Url: https://bugzilla.redhat.com/1165203

2015-01-15  Yeela Kaplan  <ykaplan@redhat.com>

	oop: Use a single instance of IOProcess per SD
	Next step after switching from RFH to IOPROC is to
	use a single IOProcess instance for each SD.

	Currently only a single IOProcess instance is used
	for all SDs.

	To avoid load on the system by holding many unused
	IOProcesses we will maintain dictionary:
	KEY - domainID, VALUE - (timestamp, IOPROC)
	When IOProc for domainID is used we will renew the
	timestamp, or delete the item from dictionary

	We will also maintain another dictionary:
	KEY - domainID, VALUE - IOPROC weakref,
	that will allow us to check if IOPROC obj is
	still alive or needs to be recreated.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1180899

	spec: require latest version of IOProcess
	This version includes an important fix for
	IOProcess being referenced by the communication thread

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1182563

2015-01-12  Dan Kenigsberg  <danken@redhat.com>

	init: wait for network service
	The network service is not synchronous. It returns before all of the
	interfaces that it started are actually up.

	This is particularly problematic when upgrading from ovirt-3.4 to
	ovirt-3.5, as one of the first pre-run tasks is to upgrade network
	configuration to the "unified persistence" model.

	This patch waits up to 10 seconds for vdsm-controlled interfaces to
	obtain their IPv4 address. It's a hack, an ugly hack, that does not solve
	the inherent race. The race would be solved only when we tap into
	netlink's event monitor and stall ifup until the interface is actually
	up.

	Bug-Url: https://bugzilla.redhat.com/1174611

2015-01-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	For rhel<=6 build only for x86 platforms
	qemu-img package does not exist for other archs

2015-01-11  Francesco Romani  <fromani@redhat.com>

	vm: make _set_lastStatus safer
	It is not safe to set concurrently state of a VM, because
	the function which does that is not-trivial and racy.

	This is a concrete risk in the case of QEMU dying
	(or being killed, like in rhbz#1142776) unexpectedly
	on Migration Source.

	In this case, the race between the libvirt event handler
	and the migration.SourceThread becomes evident, and
	could end up in messing the Vm state.

	This patch introduces a lock to make concurrent invocations
	of _set_lastStatus safe(r).

	Bug-Url: https://bugzilla.redhat.com/1174813
	Related-To: https://bugzilla.redhat.com/1142776

2015-01-11  ibarkan  <ibarkan@redhat.com>

	fixing race while sampling interfaces
	The race condition is that a vlan device is reported by getLinks and then
	it is no longer there by the time InterfaceSample is called

	Bug-Url: https://bugzilla.redhat.com/1173929

2015-01-11  Nir Soffer  <nsoffer@redhat.com>

	multipath: Fix booting from multipath device
	When booting EL6 system from multipath device, boot will fail because
	/sbin/scsi_id is not included in initrd. /sbin/scsi_id is a symlink to
	/lib/udev/scsi_id, which is included in initrd. Now we use the correct
	documented path.

	Bug-Url: https://bugzilla.redhat.com/1124450

2015-01-06  Daniel Erez  <derez@redhat.com>

	API: move diskSizeExtend logic from BindingXMLRPC
	In order to make cold extend disk usable
	with JSON-RPC, move logic verifying specified
	VM id from 'BindingXMLRPC -> diskSizeExtend' into
	'API (VM class) -> diskSizeExtend'
	[since there's no other mediator for this logic
	to both xml/json rpc protocols].

	Bug-Url: https://bugzilla.redhat.com/1178499

2015-01-01  Oved Ourfali  <oourfali@redhat.com>

	jsonrpc: Image_upload missing in command_info
	Bug-Url: https://bugzilla.redhat.com/1177952

2014-12-29  Nir Soffer  <nsoffer@redhat.com>

	protocoldetector: Fix polling timeout
	The event loop was calculating timeout in seconds, but poll timeout
	should be milliseconds. This caused poll to wait up to 30 milliseconds
	instead of 30 seconds where there are no events to handle.

	Profiling a system running one vm for 5 mintues show _process_events is
	dominating the profile, taking 55% of cpu time:

	    Mon Nov 17 00:22:02 2014    vdsmd-master.prof

	         14440725 function calls (14721061 primitive calls) in 16.907 CPU seconds

	    Ordered by: internal time
	    List reduced from 3079 to 10 due to restriction <10>

	    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	 2241981    5.685    0.000    9.445    0.000 protocoldetector.py:108(MultiProtocolAcceptor._process_events)
	 4501127    1.442    0.000    1.442    0.000 time:0(time)
	 2246162    1.396    0.000    1.396    0.000 __builtin__:0(poll)
	 2242305    0.737    0.000    0.737    0.000 __builtin__:0(max)
	    6566    0.352    0.000    0.536    0.000 spark.py:211(Parser.buildState)
	   50705    0.170    0.001    0.373    0.000 copy.py:144(deepcopy)
	     127    0.158    0.001    0.158    0.001 cpopen.cpopen:0(createProcess)
	   10394    0.154    0.000    0.154    0.000 __builtin__:0(open)
	  154006    0.132    0.000    0.269    0.000 encoder.py:284(JSONEncoder._iterencode)
	    2533    0.124    0.000    0.141    0.000 pthread.py:133(Cond.timedwait)

	With this patch we can see that number of functions calls decreased by 76% and
	total cpu time decreased by 57%:

	    Mon Nov 17 00:33:44 2014    vdsmd-poll-timeout.prof

	         3344648 function calls (3624721 primitive calls) in 7.340 CPU seconds

	    Ordered by: internal time
	    List reduced from 3069 to 10 due to restriction <10>

	    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	      6435    0.346    0.000    0.518    0.000 spark.py:211(Parser.buildState)
	       122    0.166    0.001    0.166    0.001 cpopen.cpopen:0(createProcess)
	     10202    0.157    0.000    0.157    0.000 __builtin__:0(open)
	     50705    0.148    0.001    0.329    0.000 copy.py:144(deepcopy)
	        98    0.140    0.001    0.140    0.001 posix:0(fork)
	    154178    0.115    0.000    0.236    0.000 encoder.py:284(JSONEncoder._iterencode)
	      2496    0.113    0.000    0.131    0.000 pthread.py:133(Cond.timedwait)
	      5870    0.112    0.000    0.153    0.000 spark.py:103(Parser.addRule)
	      3325    0.109    0.000    0.194    0.000 __init__.py:226(LogRecord.__init__)
	     28264    0.103    0.000    0.384    0.000 protocoldetector.py:108(MultiProtocolAcceptor._process_events)

	Now we calculate the the timeout correctly, and improved variable names
	make this code unlikely to break again.

	Bug-Url: https://bugzilla.redhat.com/1177533

2014-12-17  Nir Soffer  <nsoffer@redhat.com>

	spec: Require newer selinux-policy-targeted on EL7
	In EL7 and fedora, selinux did not allow sanlock to send signals to
	vdsm. When the master domain is not accessible on the spm, sanlock was
	trying to terminate and kill vdsm, but since it is not allowed to send
	signals to vdsm, the attempt would fail and the watchdog would reboot
	the machine.

	The new policy fixes this issue, and now vdsm should terminate cleanly
	or will be killed without rebooting the machine.

	We need also a package for Fedora, but the package was not released yet.

	Bug-Url: https://bugzilla.redhat.com/1141658
	Relates-to: https://bugzilla.redhat.com/1172147
	Relates-to: https://bugzilla.redhat.com/1142454
	Relates-to: https://bugzilla.redhat.com/1152594

2014-12-16  Martin Pavlasek  <mpavlase@redhat.com>

	vdsm: fix typo: vcpuLimit - 'limit' was in lower-case
	There are several occurences with 'Limit' so it seems that is just typo
	(only one occurence with lower case).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1143992
	(cherry picked from commit 0bcd473c9e12a68662d92e76df0b297a87e7c788)

2014-12-15  Mooli Tayer  <mtayer@redhat.com>

	spec: bump policycoreutils-python >= 2.0.83-19.47.el6_6.1
	On el6.6 the version with the fix is:
	policycoreutils-2.0.83-19.47.el6_6.1 [1]
	On el6.7 it is
	policycoreutils-2.0.83-19.48.el6 [2]

	[1] https://bugzilla.redhat.com/show_bug.cgi?id=1148800
	[2] https://bugzilla.redhat.com/show_bug.cgi?id=1148062

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1139873

2014-12-10  Francesco Romani  <fromani@redhat.com>

	vm: ensure graphics configuration data in recovery
	Graphics Devices may be not sent by Engine. To cover that VDSM
	reconstructs them from other VM configuration data - which is safe to do
	since the information is there, just organized in a different way.

	The recovery path skips that step, so the configuration is inconsistent.
	Later in the creation path the configuration is assumed to be present
	(either fixed by VDSM or given by Engine), but it is not, and this makes
	the domain initialization fail in the last stages.

	This is evident when upgrading Hosted Engine.
	This issue was unnoticed so far because the reccomended upgrade path
	is to migrate VMs away from the host being upgraded, and that avoid and
	triggers the existing safety nets for the missing configuration data.

	Bug-Url: https://bugzilla.redhat.com/1168709

2014-12-10  Antoni S. Puimedon  <asegurap@redhat.com>

	openstacknet: Fix migration when using security groups
	When migrating, the destination libvirt receives an xml already
	altered by before_device_create like this test one:

	    <?xml version="1.0" encoding="utf-8"?>
	    <interface type="bridge">
	        <mac address="00:1a:4a:16:01:51"/>
	        <model type="virtio"/>
	        <source bridge="qbrtest_port_i"/>
	        <target dev="taptest_port_i"/>
	    </interface>

	The issue is that before_device_create hooking point is not part
	of the migration and it is the only thing that creates the security
	groups bridge and the necessary veths. In order to have migration
	working, then, it was necessary to add a hook that on the hooking
	point 'before_device_migrate' does the security groups bridge and
	veths creation.

	Bug-Url: https://bugzilla.redhat.com/1048880

2014-12-10  Dan Kenigsberg  <danken@redhat.com>

	netinfo.getIpInfo: handle slashless address
	Apparently, 32 bit prefix is not reported within the address field.

	Bug-Url: https://bugzilla.redhat.com/1165210

2014-12-10  Roy Golan  <rgolan@redhat.com>

	mom.d: make CpuTuneEnabled True by default
	we should ship vdsm with that policy enabled otherwise cpu tuning isn't
	taking place at all as the policy isn't evaluated.

	future: control this policy parameter at runtime as well

	Bug-Url: https://bugzilla.redhat.com/1143992
	(cherry picked from commit db830339d13a12f5081a9f661e87470dd95c928e)

2014-12-09  Allon Mureinik  <amureini@redhat.com>

	spec: fix selinux-policy requirement for EL6
	Bug-Url: https://bugzilla.redhat.com/1160808

2014-12-08  Yeela Kaplan  <ykaplan@redhat.com>

	ioprocess: reduce log level to INFO
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1170510

2014-12-07  Yeela Kaplan  <ykaplan@redhat.com>

	sosreport: remove Base class
	Use of Base class inheritance breaks with sos>=3.1

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1167828

2014-12-04  Martin Sivak  <mars@montik.net>

	Restore the default value of rhev_build in the spec file

2014-12-04  Martin Sivak  <msivak@redhat.com>

	Add the missing --enable-rhev definition to configure.ac
	This fixes an error reported by autogen.sh when
	--enable-rhev was on the command line.

2014-12-03  Piotr Kliczewski  <piotr.kliczewski@gmail.com>

	Revert "supervdsm: Add zombiereaper to supervdsm"
	Introduction of zombiereaper is causing communication failures between
	vdsm and supervdsm. The change register signal handler which causes
	multiprocessing to fail.

	There was python bug opened to fix multiprocessing issue but it was not
	backported to 2.6.

	This reverts commit 262550421bd169a04bc5f795c5b95ba0e903b4e.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1168217
	Related-To: http://bugs.python.org/issue17097

2014-12-02  Adam Litke  <alitke@redhat.com>

	irs: Directly register domain state change callbacks
	Currently, domain state change callbacks aren't actually registered
	until a storage pool is connected.  In a hosted engine environment there
	is not a traditional storage pool associated with the storage domain
	that is hosting the engine VM so in this case the event doesn't get
	registered.  Since storage pools are becoming deprecated, there is no
	reason to delay callback registration based on connectStoragePool.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1157421

	clientIF: Use a weakref.proxy when registering contEIOVMs
	Our storage Event class is taking a weakref on the callback function
	that is passed into Event.register.  Unfortunately weakrefs on bound
	methods are dead on arrival.  See this [1] discussion for more
	information.  Use the same approach as StoragePool._upgradeCallback and
	use a weakref.proxy to build the callback function.

	[1] http://code.activestate.com/recipes/81253/

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1157421

2014-12-02  Yaniv Bronhaim  <ybronhei@redhat.com>

	Changing persisted value to libvirt logrotate configure
	Setting persisted to false means that is-configured won't check the
	status of this file. This to avoid differences between ovirt-3.4
	configuration to ovirt-3.5 in /etc/logrotate.d/libvirtd

	In ovirt-3.4 we set the prefix of the configuration without the conf
	version, therefore in 3.5 we alerted that libvirt is not configured
	and asked to run vdsm-tool configure all-over again without having any
	differences between the versions.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1168695

2014-12-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Revert Ib7808f4f217ba3d6d30a60fab6233e36a29f0098 and add set-sasl to spec
	To avoid upgrade issue and set the sasl password during installation,
	this workaround change the use in vdsm-tool to direct call.

	Bug-Url : https://bugzilla.redhat.com/show_bug.cgi?id=1168689

2014-12-01  Adam Litke  <alitke@redhat.com>

	Live Merge: Proactively extend merge target volume
	Since libvirt is not yet providing the write watermark information for
	all volumes, we need to employ a workaround to support live merge on
	block-based storage.  When starting a merge, we can request the base
	volume (merge target) to be extended to the size of the top volume
	(merge source) plus one chunk to accomodate active writing.  This may
	cause some over-extension of the merge target volume but the upside is
	that the merge should complete without active monitoring.  Future
	versions of oVirt will take advantage of an upcoming libvirt enhancement
	to report write watermarks for all volumes which will allow on-demand
	volume extension.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1155583

	Do not extend volume beyond truesize
	When calling getNextVolumeSize on a volume that is close to fully
	allocated, the function can return a value larger than the volume's real
	capacity.  Add an explicit ceiling to prevent this.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1155583

	storage: Search only the current image for children
	The getChildren method of FileVolume is currently searching all images
	in the storage domain for children.  A glob of all metadata files in the
	SD is cached and then passed to grep to look for the child volumes.  The
	problem is that deleteVolumes takes an exclusive lock on the image
	namespace only.  If deletes are active on other images at the same time
	we'll get errors with missing files.

	The code attempts to report the children of a template base volume.
	However, this is not needed now and is not expected to be required in
	the future.  The getVolsOfImage API should be used for templates.
	Therefore, we can fix this race by limiting the search for children to a
	single image.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1069610

2014-12-01  Yeela Kaplan  <ykaplan@redhat.com>

	supervdsm: enable coredumping
	Enable coredump both on el6 (sysvinit)
	and on el7 (systemd).
	Also, limit core size to 0 in case of
	enable_core_dump is set to False

	Bug-Url: https://bugzilla.redhat.com/1167814

2014-12-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fixed %post script error during upgrade
	During post script we initiates vdsm-tool set-saslpasswd call. On
	upgrade we have mixed code that may lead to an error while calling
	vdsm-tool script, as in the related bug.
	In this patch we move the call to set-saslpasswd to init scripts. In
	pre-script phase we can be sure that the newer code is running.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1168689

2014-11-30  Nir Soffer  <nsoffer@redhat.com>

	hba: Rescan using SCSI layer
	Since commit b6a27493a4 (Rescan SAN devices before rebuilding multipath
	bindings) in Jan 2009, we perform scsi scan during multiapth rescan flow.

	In Sep 2013, commit 66c24c1996 (iscsi: Iscsi rescan cleanup) removed scsi scan,
	assuming that iscsiadm --rescan was good enough.  iscsiadm do perform scsi
	scan, but only for scsi_host with iscsi connection.  Since this change, new
	LUNs created on FC storage server are not discovered by hosts.

	In commit 674337d8f9 (multipath: Rescan also FC devices), we tried to fix HBA
	rescanning by using issue_lip.  But issue_lip was proved to be disruptive, (see
	bug 1157681) and was disabled in commit 48fa75287e (multiapth: Disable hba
	rescanning 22 by default).

	This patch restores the missing scsi scan for fc_hosts, enabling discovery of
	new FC LUNs in the multiapth rescan flow.

	Since scsi scan is a blocking operation, we perform the scan using external
	command line tool, ensuring that vdsm cannot get stuck. This tool can be also
	useful outside of vdsm.

	In the fc-scan tool, we perform the scan in parallel, so blocking on
	unresponsive fc_host will not prevent discovery of new devices on other
	fc_hosts.

	Bug-Url: https://bugzilla.redhat.com/1159839
	Relates-To: https://bugzilla.redhat.com/1123637
	Relates-To: https://bugzilla.redhat.com/1157681

2014-11-30  Federico Simoncelli  <fsimonce@redhat.com>

	build: expose rhev_build to make rpm

2014-11-30  Martin Sivak  <msivak@redhat.com>

	Instruct MOM to ignore ballooning when guest agent is not running
	This makes use of the new MOM feature (valid function) and
	associated guest memory collector (GuestMemoryOptional).

	The ballooning part of the policy will be ignored when guest agent
	is not running while the rest of the policy is still evaluated.

	The most notable change is that MOM used to ignore the whole
	policy when guest agent was not available.

	Bug-Url: https://bugzilla.redhat.com/1143992

	Introduce new rhev_build spec file variable and use it for mom
	This new rhev_build variable will contain 1 if VDSM is being
	built in brew as part of the official RHEV product.

	It will contain 0 otherwise (oVirt and Fedora).

	This allows us to adapt to slightly different versions and/or
	package names in RHEV environment.

	Bug-Url: https://bugzilla.redhat.com/1143992

2014-11-27  ndarshan  <dnarayan@redhat.com>

	gluster: proper check in gfapi.py to avoid segfault in libgfapi
	This patch adds proper checks in gfapi.py to avoid
	segmentation fault in libgfapi.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1162640

2014-11-24  Nir Soffer  <nsoffer@redhat.com>

	lvm: Disable chown hack for EL6
	Testing EL6 revealed that the new vdsm lvm udev rules required for EL7
	introduced a race which causes createVolume to fail randomly on some
	machines.

	Since commit 9240b8c5782 (lvm: Do not use udev to set permissions on
	vdsm images), devices are created with default permissions - root:disk.
	Then udev run chown which set the permissions to vdsm:qemu.  Because of
	udev "watch" feature, this permission dance happens twice when creating
	a logical volume:

	    root:disk -> vdsm:qemu -> root:disk -> vdsm:qemu

	Typically when lvcreate returns the permissions changes are done, but
	sometimes it may return while the events are processed. Then when we run
	qemu-img, it fail because the disk permissions are not vdsm:qemu.

	On EL6 we don't need to use the chown hack; We used it because it looked
	like a simple solution that works everywhere. So now we use the old udev
	rules format on EL6, and the new format (chown hack) on EL7 and Fedora.

	By default, we build the old udev format. To enable the new format,
	configure with --enable-chown-hack. The spec enables the chown hack
	on EL7 and Fedora trough configure.

	To create a different rule depending on the configuration, the udev rule
	is generated now by a python script.

	On EL7 using our chown hack, the race does not exist. We also verified
	that using a script creating 600 disks, and using automated QE tests.

	Bug-Url: https://bugzilla.redhat.com/1160620

2014-11-24  Sandro Bonazzola  <sbonazzo@redhat.com>

	sos: remove vdsm pki private keys collection
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1162784
	(cherry picked from commit 7a9628a31edbe227653bc31b5d95c2dc0b69302e)

2014-11-22  Francesco Romani  <fromani@redhat.com>

	jsonrpc: have simplejson as soft dependency
	In commit ec58bca5cb18 we added dependency to
	the external simplejson package to gain some speed,
	especially on RHEL/Centos 6.x.

	We discovered the hard way that python-simplejson
	was moved out of the base system in RHEL/CentOS 7,
	and put into the EPEL repository.
	This is alone makes ec58bca5cb18 not good enough.

	We still want to get the JSON codec speedups, so
	to this patch
	* moves the requires to RHEL/Centos 6.x only
	* makes simplejson a soft dependency.

	Bug-Url: https://bugzilla.redhat.com/1155146

2014-11-21  Sandro Bonazzola  <sbonazzo@redhat.com>

	sos: fix config import
	config module is in not a platform-specific module so
	it's in lib and not in lib64 tree.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1164215
	(cherry picked from commit 44376bd1ea7852c697aac74a4cbca66dba5aa151)

2014-11-20  Francesco Romani  <fromani@redhat.com>

	utils: faster albeit less general deepcopy
	VDSM makes intense use of deepcopy() to ensure
	correctness of the returned Vm data.
	The usage of deepcopy can be reduced, but in order
	to do so a significant amount of work is due
	to clean up and refactor the affected flows.

	For the short/medium term, deepcopy() will be needed;
	unfortunately, deepcopy has a quite significant cost.
	The function must guarantee to do the right thing
	an to behave correctly with all the types and combinations
	thereof, so it does quite some bookkeeping.

	VDSM, however, does not need so much care for its
	usage of deepcopy().
	VDSM uses deepcopy with Vm.conf, which will contain
	only python primitive types, arranged in a structure
	only moderately nested and complex, without fancy
	things like classes or generators.

	Moreover, this data must be pickle-able, because
	VDSM already uses pickle as checkpointing machinery.

	So, for VDSM intents and purposes, both existing and
	foreseeable, we can replace deepcopy with a much
	simpler and faster function, leveraging
	the pickle module, like the one suggested on:

	http://stackoverflow.com/a/1411229

	Bug-Url: https://bugzilla.redhat.com/1155146

2014-11-20  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Wrong key name for getDevicesVisibility
	Bug-Url: https://bugzilla.redhat.com/1159637
	(cherry picked from commit fcf8335f5e2004abd6450e047f70a9d7f314d447)

2014-11-19  Martin Sivak  <msivak@redhat.com>

	Fix ballooning behaviour of freshly received VM
	There is an issue with freshly received VMs. MOM might ask for
	the current balloon status before the stats threads collect all
	data. The target will be reported as 0 in that case and the VM
	will be requested to return all its free memory.

	The balloon info method won't return any data before it
	has everything ready after this fix is applied.

	This also fixes the unittest that was using balloon for checking
	whether the stats system works.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1123274

2014-11-19  Vitor de Lima  <vdelima@redhat.com>

	caps: Report online logical CPUs
	Introduces a new information in the capabilities command which reports
	the list of logical CPUs that are online during its execution.

	This is necessary because the kernel allows logical CPUs to be disabled
	and enable on-the-fly, and ppc64 hosts have only one enabled logical
	CPU per core and several CPU threads disabled. So this patch is needed
	in order to validate CPU pinning configurations and count the number of
	logical CPUs properly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1148092

2014-11-19  Francesco Romani  <fromani@redhat.com>

	jsonrpc: revert switch to the simplejson module
	This reverts commit 58553451547fe70958c01585f58d50c8ed75493b.

	It is too late to have a new dependency in the stable branch.

	Bug-Url: https://bugzilla.redhat.com/1155146

2014-11-19  Martin Sivak  <msivak@redhat.com>

	Change method names in vmtune.py to the PEP8 style
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Add API.VM.getIoTunePolicy
	This method can be used by MoM to retrieve the current ioTune
	boundaries from the domain xml metadata section.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Add API.VM.setIoTune
	This allows MoM (and the engine if necessary) to set the iotune
	limits for disk devices.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Add setIoTune and getIoTunePolicy to the xml-rpc API
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Add IO tunables support to updateVmPolicy
	This allows the engine to set the hard and soft limits for IO.
	MoM will then use those limits as a boundaries for dynamic
	iotune updates.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Francesco Romani  <fromani@redhat.com>

	tests: fix pep8 errors
	Commit: a2890d5d614e856a44102d61576a8591a8d2e52f
	introduced pep8 and pyflakes errors in tests.
	This patch fixes that.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	vm: fix getVmPolicy return type.
	in case of error, getVmPolicy will return a VDSM API return
	value, which may confuse the caller.
	This patch makes getVmPolicy returns explicitely None on error,
	and let the caller handle this condition and bail out correctly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Martin Sivak  <msivak@redhat.com>

	Refactor XMLElement to virt.utils
	This is needed to avoid cyclic dependencies when other files
	need the xml helper class.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Francesco Romani  <fromani@redhat.com>

	janitorial: move isVdsmImage into utils
	this patch moves vdsm/virt/vm.isVdsmImage into utils without code
	changes. In doing so, we bootstrap the vdsm/virt/utils module,
	which will contain the common shared code in the virt package,
	to shed some load from vm.py.

	This change is a preliminary step to the move of VmSamplingThread
	from vm.py to sampling.py.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Martin Sivak  <msivak@redhat.com>

	Refactor updateVmPolicy to use DOM manipulation
	This allows updating the old values instead of just setting
	new data. It will be needed when more sections than cputune
	are present in the metadata xml, because libvirt can only set
	the full metadata block (no partial updates).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Collect current QoS settings for IO devices and report through RunningVmStats
	This info will be used by mom when updating the IO limits and by engine
	to report the current QoS settings to the user.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Improve the _validateIoTuneParams so the params are passed as argument
	This removes side effects from the method and makes it possible to
	use the validator independently on the current Vm settings.

	Another advantage is that it is now much easier to write a unittest
	for the method.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

	Fix the API definition for cpu tune methods
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Francesco Romani  <fromani@redhat.com>

	tests: make api check support falsey values
	the current vmApiTests assume truthy values in the replies.
	The schema actually doesn't requires that, and falsey values
	(e.g. empty lists) are actually valid.

	This patch fixes the tests to support them.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Martin Sivak  <msivak@redhat.com>

	Extract the DOM to Drive name, alias and path logic to reusable method
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-19  Francesco Romani  <fromani@redhat.com>

	vm: return full copy of the conf data on status()
	It is unsafe for status() to return a shallow copy
	of the Vm.conf data.

	Many modules (e.g. copy, json) of the python standard
	libary make use of the iteritems() method when dealing
	with dicts, so they can explode while iterating on
	data being mutated by the creation thread.

	This can be triggered just if someone (Engine) queries for
	Vm status while the creation thread is running, like

	Traceback (most recent call last):
	   File "/usr/lib/python2.6/site-packages/yajsonrpc/__init__.py", line 242, in sendReply
	     encodedObjects.append(response.encode())
	   File "/usr/lib/python2.6/site-packages/yajsonrpc/__init__.py", line 140, in encode
	     return json.dumps(res, 'utf-8')
	   File "/usr/lib64/python2.6/json/__init__.py", line 237, in dumps
	     **kw).encode(obj)
	   File "/usr/lib64/python2.6/json/encoder.py", line 367, in encode
	     chunks = list(self.iterencode(o))
	   File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode
	     for chunk in self._iterencode_dict(o, markers):
	   File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict
	     for chunk in self._iterencode(value, markers):
	[...]
	RuntimeError: dictionary changed size during iteration

	This patch makes it always return a full copy.

	Bug-Url: https://bugzilla.redhat.com/1148583

	jsonrpc: switch to the simplejson module
	During testing, we discovered that on RHEL 6.x
	and Centos 6.x we unnecessarily lose performance
	because the JSON module shipped with python 2.6
	does not include speedups found in python 2.7
	and onwards.

	The standard library module is based on the
	simplejson package, and RHEL 6.x/Centos 6.x already
	provide an updated simplejson rpm.

	Then, this patches makes yajsonrpc use simplejson,
	to recover speed at nearly zero cost.

	To ease development and deployment, this patch
	always make VDSM require simplejson, even
	on platforms shipping a modern enough python
	distribution.

	Bug-Url: https://bugzilla.redhat.com/1155146

2014-11-19  Artyom Lukianov  <alukiano@redhat.com>

	Send to cannonizeHostPort port parameter as string instead of integer.
	Bug-Url: https://bugzilla.redhat.com/1127776
	Bug-Url: https://bugzilla.redhat.com/1163771

2014-11-19  Francesco Romani  <fromani@redhat.com>

	virt: migration: simplify the remote port handling
	When the destination port for migrations is not explicitely
	given, the current code in _setupVdsConnection does a clumsy
	gimmick to get it from the BindingXMLRPC internals.

	This unnecessarily makes the coupling stricter.
	Instead, just use the port specified as per configuration,
	which is the same setting the XMLRPC bindings are using
	anyway.

	Bug-Url: https://bugzilla.redhat.com/1163771

2014-11-18  pkliczewski  <piotr.kliczewski@gmail.com>

	vm: state change missing return value
	Return arguments where ignored in schema for pause and resume verbs.
	We had to update command_info with following verbs to returned
	'vmList' dictionary required by the engine.


	Bug-Url: https://bugzilla.redhat.com/1163089

	jsonrpc: diskSizeExtend missing in command_info
	Bug-Url: https://bugzilla.redhat.com/1161115

2014-11-16  Mooli Tayer  <mtayer@redhat.com>

	spec: bump policycoreutils-python version to 2.0.83-19.47
	New version contains fix for:
	seobject.booleanRecords().modify(...)
	AttributeError: booleanRecords instance has no attribute 'load'

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1139873

2014-11-15  Federico Simoncelli  <fsimonce@redhat.com>

	multipath: add specific fail entry for emc-vnx
	As few other storage arrays also the emc-vnx is forcing the
	queue_if_no_path option on the multipath device.

	This patch adds a specific section for the device maintaining
	the emc defaults but forcing to fail the io instead of queuing.

	In case of queuing we observed that the processes were blocked
	on io and among other things it prevented the storage pool to
	be reconstructed.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1098769
	(cherry picked from commit 9880fdf9989718a097bb05571a6344e28c2f258b)

2014-11-13  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsm-reg: Fix closed log file descriptors
	When calling createDaemon(), all file descriptors are closed, including
	the file descriptors held by log handlers. This patch moves logging
	configuration below the daemonization to make sure the file descriptors
	stay open.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1150238

2014-11-13  Mooli Tayer  <mtayer@redhat.com>

	tool: bugfix function called as attribute.
	to fix bug, introduced in commit 8f87f21, instead of using
	selinux.is_selinux_enabled I suggest using the recently added
	utils.get_selinux_enforce_mode().

	In both cases the code means to check if selinux != disabled
	(permissive | enforcing).

	(cherry picked from commit 975bcacbea064f8a54e3bea0af701176cc3da1b9)

2014-11-11  Martin Sivak  <msivak@redhat.com>

	Support ioTune values >2^31 in getStats over xml-rpc
	This fixes issue with getStats over xml-rpc when ioTune value
	is accidentally increased beyond cca 2e9 (2GB per second).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120246

2014-11-10  Francesco Romani  <fromani@redhat.com>

	vm: safe(r) Vm.conf update in creation thread
	A VM is created asynchronously for performance's sake.
	It is registered in the internal vmContainer inside VDSM
	as early as possible, while real initialization is carried in
	background in the creation thread.
	While creation thread runs, the Vm status is queryable by Engine.

	In the VM creation thread, the code will change the device
	configuration data received from Engine, by adding new devices
	(example: graphic device is added) or by fixing the fields in existing
	device configuration
	(example: for disks configuration, truesize/apparentsize is added).

	The creation thread incorrectly does not take any lock while it is
	changing Vm.conf['devices'], so concurrent access can fail because
	it can find data mutating while iterating.
	This is just made evident by the recent switch to JSON-RPC, but
	it is a quite old flaw in VDSM.

	This is known to break in at least two cases: JSON encoding
	and deepcopy() itself, because both modules in the standard
	library use iteritems() internally when dealing with dicts().

	Since VM creation thread always need to prepare conf data and to
	update it, the best fix is to prepare it without modifying Vm.conf
	unsafely and to update it atomically.

	This patch does that for buildConfDevices().

	Bug-Url: https://bugzilla.redhat.com/1143968

2014-11-10  Dima Kuznetsov  <dkuznets@redhat.com>

	supervdsm: Add zombiereaper to supervdsm
	Supervdsm uses multiprocessing.Process to impersonate other users and
	check access. To avoid waiting on the subprocesses, we add all
	subprocesses to zombiereaper.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=841486

2014-11-04  David Caro  <dcaroest@redhat.com>

	Adding the possibility to skip checks on rpmbuild
	This way you can build the rpms skipping the tests just defining the variable
	with_check to 0 when running rpmbuild, also skipping checks by default when
	building on el* based hosts

2014-11-03  Liron Aravot  <laravot@redhat.com>

	vm, guestagent: return hash should include also the disk mapping
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1063597

	vm: return diskMapping on status()
	status() is used by API.Global.getVMList and should return also the disk
	mapping retrieved by the guest agent.

	Reviewed-On: http://gerrit.ovirt.org/#/c/34636/ - Schema changes
	Reviewed-On: http://gerrit.ovirt.org/31700
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1063597

2014-11-02  Vitor de Lima  <vdelima@redhat.com>

	caps: Additional ppc64 hardware information
	Includes extra information (manufacturer and product name) about ppc64
	hosts in the getVdsHardwareInfo command. This extra information is
	obtained from the device tree and skipped in case it is missing.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1149262

2014-11-02  Nir Soffer  <nsoffer@redhat.com>

	volume: Log the correct error when creating a volume fails
	When a volume creation failed because of CannotCreateLogicalVolume
	exception, we used to lie and log "volume already exists". This log
	confused and wasted many developers hours. Now we log the exception
	value instead.

	Bug-Url: https://bugzilla.redhat.com/1143830
	Relates-To: https://bugzilla.redhat.com/1142710
	(cherry picked from commit 3e17f9828576f16e4ef95f805c2e7ce27b63d812)

2014-11-02  Petr Horáček  <phoracek@redhat.com>

	netinfo:nicSpeed(): fix nicSpeed condition
	In `if s not in (2 ** 16 - 1, 2 ** 32 - 1) or s > 0` first part doesn't
	make sense with OR. Changed to AND.

	I changed conditions to make the function more readable and created unit
	test, to be sure that function returns correct values.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1157224

2014-10-29  Mooli Tayer  <mtayer@redhat.com>

	tool: sebool is-configured when selinux is disabled will always be MAYBE
	Otherwise if selinux is disabled, we get an exception[1]

	[1]:
	>>> sebool_obj = seobject.booleanRecords()
	Traceback (most recent call last):
	  File "<stdin>", line 1, in <module>
	  File "/usr/lib64/python2.6/site-packages/seobject.py", line 2032, in __init__
	    semanageRecords.__init__(self, store)
	  File "/usr/lib64/python2.6/site-packages/seobject.py", line 240, in __init__
	    self.sh = self.get_handle(store)
	  File "/usr/lib64/python2.6/site-packages/seobject.py", line 267, in get_handle
	    raise ValueError(_("SELinux policy is not managed or store cannot be accessed."))
	ValueError: SELinux policy is not managed or store cannot be accessed.

2014-10-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	tool: moving setup booleans verb to be part of the configurators
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1157185

2014-10-29  Nir Soffer  <nsoffer@redhat.com>

	tests: assertIsNone is not available on Python 2.6
	This patch fixes the build on jenkins EL6 slaves.

	(cherry picked from commit be7c990cc2878672b14f117ceb0dc534a737cc76)

2014-10-28  Yaniv Bronhaim  <ybronhei@redhat.com>

	Moving getSELinuxEnforeMode to utils

2014-10-28  Nir Soffer  <nsoffer@redhat.com>

	spec: qemu-img is required during the tests
	The tests use vdsm/qemuimg module, which checks where qemu-img is
	located. We can probably mock it but it does not seem worth the effort.

	Bug-Url: https://bugzilla.redhat.com/1139707

	supervdsmServer: Do not use udev to set permissions on external luns
	Before plugging external luns to vms, we setup up a temporary udev rule
	for setting device permissions. Using this rule will cause the device to
	loose the libvirt selinux label if a device has a change event.

	This is the same issue we had with vdsm images, but with external luns
	we do not trigger change events, so the issue is unlikely. However, if
	it happens, it will cause a vm to pause.

	This patch applies the same fix, use chown instead of udev OWNER and
	GROUP directives.

	Bug-Url: https://bugzilla.redhat.com/1152661
	Relates-To: http://gerrit.ovirt.org/33875
	Relates-To: https://bugzilla.redhat.com/1147910

2014-10-26  Martin Sivak  <msivak@redhat.com>

	Remove noisy log message from CPU metadata collector
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1119336

2014-10-26  Dan Kenigsberg  <danken@redhat.com>

	net: source route: don't attempt to configure invalid values
	If a DHCP server provides Vdsm with invalid ip/netmask/gateway supervdsm
	logs a not-very-useful

	    "ipaddr, mask or gateway not received"

	Instead, this patch logs dhclient's faulty information before passing it
	to the source route configurator, which hopefully would provide the
	local admin more clues regarding the failure.

2014-10-26  Francesco Romani  <fromani@redhat.com>

	virt: sampling: more cautious disk stats check
	In commit d6d0eb763e623 we changed the disk stats
	collection to deal with the benign case of
	known-missing disk stats samples, to avoid add
	bogus error on the logs.

	Unfortunately a case was missing in the live
	storage migration flow, which causes

	TypeError: argument of type 'NoneType' is not iterable

	in the logs defeating the purposes of the
	originating change.
	This patch fixes this issue by adding the missing
	check.

	Bug-Url: https://bugzilla.redhat.com/1148383

2014-10-26  Saggi Mizrahi  <smizrahi@redhat.com>

	protocol_acceptor: Make SSL handshake asynchronous

2014-10-26  ibarkan  <ibarkan@redhat.com>

	Functional test for Multiple Gateways source routing
	adding assertions on the source routing definitions that are configured
	when the network is configured with DHCP.

2014-10-26  Antoni S. Puimedon  <asegurap@redhat.com>

	QoS: Remove broken libvirt-based host network QoS
	Back when the current host network level QoSa was added, it was
	thought that libvirt had a way of configuring and honoring the
	Quality of Service definitions that we were giving it. Unfortunately
	that was an unimplemented part of their api, which forced us to
	design a new implementation with different semantics.

	This patch removes most of the host based network QoS implementation
	from the codebase to prepare vdsm for the following patches which
	will use the new tc package to provide outbound host network QoS.

	We need this backport, because new libvirt's (1.2.9) Network XML
	returns exception when we try to pass QoS parameters to it.
	Traceback:
	  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3881, in
	networkDefineXML
	    if ret is None:raise libvirtError('virNetworkDefineXML() failed',
	conn=self)
	libvirtError: unsupported configuration: Unsupported network-wide
	<bandwidth> element in network vdsm-test-network with forward
	mode='bridge'

2014-10-26  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: cannot put link down on vNIC
	There was no updateDevice method on VM object in the API module. The
	name was vmUpdateDevice which is in conflict with current schema.

	This method was missing from command_info so it was updated.

	Bug-Url: https://bugzilla.redhat.com/1156399

2014-10-23  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Bridge.py reducing logging level
	There are two messages which are logged as warning but do not provide
	any value in production.


	Bug-Url: https://bugzilla.redhat.com/1151867

2014-10-23  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfotests: Do not assume the existence of /var/lib/vdsm/bonding-defaults.json
	The cached bonding defaults file is not available before installation
	so it cannot be used in 'make check'. Use the one from the source tree
	in this case.

	netinfo, tool: Add a vdsm-tool to determine bonding defaults offline
	dump-bonding-defaults reads bonding option defaults (per mode) and saves them
	to /var/lib/vdsm/bonding-defaults.json. VDSM loads the file once at runtime
	and refers to this static information of defaults when reporting bonding
	options of bonds in the system.

	As the bonding defaults are bound to the used kernel it is the responsibility
	of the packager (or the sysadmin in customized setups) to regenerate the file
	by running (during the build, or installation, respectively):

	vdsm-tool dump-bonding-defaults

	It is currently not advised to run the tool on startup because NetworkManager
	may ifup the reference bond, making the tool unable to determine all options.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1142701

2014-10-21  Nir Soffer  <nsoffer@redhat.com>

	multiapth: Disable hba rescanning by default
	Since commit 674337d8f9 we are scanning both iscsi bus and hbas when
	issuing multipath.rescan(). We did not find any bad effects when testing
	in our QE lab, but we have reports from customers that these rescans have
	bad effects on FC connections.

	This patch disables hba rescanning by default, so users can use this
	feature if works for them, until we investigate this issue and provide
	better solution.

	This should have been part of the original patch, since we cannot test
	all kinds of storage servers in the same setup and load used by all
	users. If hba rescanning cannot be used with certain storage server, it
	should be possible to disable this feature.

	Bug-Url: https://bugzilla.redhat.com/1152587

2014-10-19  Antoni S. Puimedon  <asegurap@redhat.com>

	nwfilter: Do not attempt to re-define the nwfilter when not undefining
	Undefining a filter is an operation that can fail. The fact that we
	had the same exception swallowing for two operations, looking up and
	discovering led us to the wrong assumption then of defining again the
	filter even when it had been looked up fine but could not be
	undefined.

	The most sensible behavior to take for 3.5 is to just consider the
	failure to undefine properly and re-define it only in the case of
	failure to look up.

	Bug-Url: https://bugzilla.redhat.com/1150718

2014-10-19  Mooli Tayer  <mtayer@redhat.com>

	tool: remove AUTHOR from vdsm-tool manual page.
	"lists authors of the documentation or program.  Use of an AUTHORS
	section is strongly discouraged.  Generally, it is better not  to
	clutter  every  page with a list of (over time potentially numer‐
	ous) authors; if you write or significantly amend a page,  add  a
	copyright notice as a comment in the source file.  If you are the
	author of a device driver and want  to  include  an  address  for
	reporting bugs, place this under the BUGS section."

	see "man 7 man-pages" from the man-pages package .

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1146469
	(cherry picked from commit 970e74691c172cbe25c8e1f47ec2d1fc43b9783c)

2014-10-14  ndarshan  <dnarayan@redhat.com>

	gluster: Temporary fix for supervdsm memory leak.
	     Supervdsm memory leak is caused by memory leak in libgfapi
	(BZ:1093594) which is used by verb glusterVolumeStatsInfoGet to
	retrive the volume statistics. The libgfapi method glfs_fini()
	is not cleaning up the memory, so everytime the verb is invoked
	memory gets added up(~20-30MiB). This verb is invoked by engine
	every 5 minutes for volume capacity feature. So supervdsm memory
	usage shoots up when gluster is enabled.

	    This patch provides a temporary fix until libgfapi issue is
	resolved. In this patch libgfapi method calls are executed as
	script using execCmd(), by this libgfapi invocation is not part
	of supervdsm process.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1142647

2014-10-14  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding pkgs version details to POWERKVM os
	In getCaps vdsm does not report about qemu-* libvirt mom and kernel rpms
	versions over PPC arch.
	Same as other rhel\fedora dists, the rpms are named the same.
	Therefore this patch adds the same handling to POWERKVM arch.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1151488

2014-10-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Signs vdsm upgraded version for special treatment if required
	In ovirt-3.2 (vdsm 4.10.x) we didn't perform vdsm-tool configure call
	during uninstall. This cause failure on first vdsm run if configure is
	required. This patch signs during pre installation the upgraded
	package version by creating a file with the version string.
	During init script we read this file and determine the required
	operation. This patch only adds the treatment for 4.10.x which will
	perform vdsm-configure call. After handling the upgrade we will remove
	the file to avoid running the same operation on next reset.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1111935

2014-10-12  Nir Soffer  <nsoffer@redhat.com>

	lvm: Do not use udev to set permissions on vdsm images
	udev has changed the rules recently, so setting USER, GROUP, or MODE
	will change also the selinux label behind your back. This issue caused
	vms to pause after extend, rendering thin provisioning disk useless.

	We had a temporary fix, applying a static selinux label on vdsm images,
	but this breaks libvirt security. This patch avoids this issue by not
	using udev to set any permissions, thus preserving the secure selinux
	labels set by libvirt.

	This patch replaces the following commits with a simpler and hopefully
	longer lasting fix which does not need any platform specific code.

	d8d6c17 gitignore: Ingore vdsm-lvm.rule.tpl
	00fbc83 lvm: Modify lv selinux label only if not labablled as libvirt image
	b2268e4 spec: Enable lvm selinux fix for Fedora
	75fc495 lvm: Set libvirt image selinux label on block devices backing vdsm images

	Bug-Url: https://bugzilla.redhat.com/1149883
	Relates-To: https://bugzilla.redhat.com/1147910

2014-10-10  Jiri Moskovcak  <jmoskovc@redhat.com>

	hosted-engine: don't log the whole backtrace for expected problems
	when deploying host for hosted engine, vdsm starts using the HE
	broker api before the deployment is finished, and the required config
	file is not writen, so it results in the exception which polutes the
	log

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1045053
	(cherry picked from commit 3edc284263a291330be982b7fbabb6f4070dd61d)

2014-10-08  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Degrading epoll errors in vmchannels to log level INFO
	Error events from epoll are quite common due to lost connections
	on shutdown, migrations or suspension of VMs, since this is not
	a critical error the message gets degraded to INFO.

	Bug-Url: https://bugzilla.redhat.com/1102549
	(cherry picked from commit 0fa65b1c8b2829473e8b9424c61986f34cc4bda3)

	virt: typo: unlink is in os not in os.path
	When this code path was reached it caused an exception and left the VM
	during recovery in 'PAUSED' state and all communication with the guest
	was no longer available.


	Bug-Url: https://bugzilla.redhat.com/1136982

2014-10-07  Yaniv Bronhaim  <ybronhei@redhat.com>

	Moving python_sitearch to python_sitelib
	VDSM uses pure python code, therefore there is no need to use
	specific sitearch at all while installation vdsm-python files

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1141669

2014-10-07  Federico Simoncelli  <fsimonce@redhat.com>

	mount: fix _loopFsSpecsTimestamp global definition
	The variable _loopFsSpecsTimestamp should be defined as global before
	its first use within a function.

	Bug-Url: https://bugzilla.redhat.com/1112779

2014-10-07  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: default args values in wrong order
	Default arguments values of a method were passed in wrong order due to
	wrong if condition.


	Bug-Url: https://bugzilla.redhat.com/1148499

2014-10-01  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: missing verbs in command info
	Missing clone image structure and image sync data in command info.


	Bug-Url: https://bugzilla.redhat.com/1148498
	(cherry picked from commit 5073708e0e0e2b4fd41625a41ea8bdd0d5e8bb5e)

2014-10-01  Nir Soffer  <nsoffer@redhat.com>

	sslutils: Document M2Crypto threading initialization
	As documented and painfully recognized long ago in, using M2Crypto in a
	multi-threaded server such as Vdsm requires explicit initialization.

	M2Crypto was initialized but the code was not docuemnted properly. This
	lead to the initialization being removed in this patch:
	http://gerrit.ovirt.org/#/c/28858/4/lib/vdsm/verifyingtransport.py

	Hopefully, improved documentation and moving it to the sslutils module
	will prevent such attempts in the future.

	Relates-to:
	http://www.heikkitoivonen.net/m2crypto/api/M2Crypto.threading-module.html
	Relates-to: https://bugzilla.redhat.com/482420
	Bug-Url: https://bugzilla.redhat.com/1147487

2014-10-01  Piotr Kliczewski  <piotr.kliczewski@gmail.com>

	Revert "ssl: adding ssl threading initialization"
	This reverts commit 2889e233dbe9b2cf8b37dfdef9133130e9e43132.

	Bug-Url: https://bugzilla.redhat.com/1147487

2014-10-01  pkliczewski  <piotr.kliczewski@gmail.com>

	ssl: adding ssl threading initialization
	Bug-Url: https://bugzilla.redhat.com/1147487

	ssl: ssl_accept blocks after reboot
	When rebooting host most of the times ssl_accept blocks when there is
	new connection established just after socket is opened. Setting timeout
	on socket seems to help but when testing I noticed sometimes there is
	still connection blocked on ssl_accept.

	Bug-Url: https://bugzilla.redhat.com/1147487

2014-10-01  Nir Soffer  <nsoffer@redhat.com>

	gitignore: Ingore vdsm-lvm.rule.tpl
	In a previous commit I forgot to add this new template to the ignore
	list, which breaks the build. I will be punished for this.

	lvm: Modify lv selinux label only if not labablled as libvirt image
	When using the faulty version of systemd that removes libvirt image
	labels from block devices, this patch has no effect. However when a fix
	is available and libvirt image label exists, vdsm will not change the
	original libvirt label. This allows the increase protection for virtual
	machines.

	Bug-Url: https://bugzilla.redhat.com/1127460

	spec: Enable lvm selinux fix for Fedora
	In case we cannot get the real fix in systemd quickly, this patch
	enables the temporary hack on Fedora.

	Bug-Url: https://bugzilla.redhat.com/1127460

	lvm: Set libvirt image selinux label on block devices backing vdsm images
	The SELinux sVirt protection for QEMU virtual machines is setup in such
	a way that a domain can only access files or devices which are labelled
	svirt_image_t label. Libvirt sets this label on block devices backing
	images when it starts a vm.

	On Fedora 19, 20 and EL 7, the selinux label on the block device is lost
	after refreshing a logical volume.  The root cause of this issue is
	systemd-udevd, trying to "preserve" the selinux label upon device change
	event.

	Loosing the selinux label causes the vm to pause. The only way to use
	the vm is to restart the vm.  Practically, this breaks thin provisioning
	on block storage, since after each automatic extend, a logical volume
	must be refreshed.

	This patch adds a temporary hack, by updating vdsm lvm rules to set the
	libvirt image selinux label on vdsm images. This change should be
	reverted when a fix is available in systemd-udevd.

	This hack is enabled by default only for EL7, since we hope to get a
	fix for systemd-udevd soon for Fedora.

	To enable this hack on other platforms:

	    ./configure --enable-chcon-hack

	Bug-Url: https://bugzilla.redhat.com/1127460
	Releates-To: https://bugzilla.redhat.com/1147910

2014-09-30  Antoni S. Puimedon  <asegurap@redhat.com>

	addNetwork script: Prevent empty bond and vlan from reaching RunningConfig
	The consumers of the addNetwork script pass empty parameters, e.g. ""
	in order to fill the positional arguments that the script takes. The
	problem with that is that those parameters were being passed to
	addNetwork without modification, and that includes the
	_alterNetworkConfig wrapper that makes addNetwork requests reach
	runningConfig (and eventually PersistentConfig).

	Due to the issue above, a stored network could contain entries like
	'bonding': '' and 'vlan': '' that would mess with selective network
	restoration.

	Bug-Url: https://bugzilla.redhat.com/1144639

	vdsm_reg: Make vdsm-reg persist the management bridge it creates
	In the vdsm_reg flow, for the oVirt node, the management bridge is
	created using addNetworks. This puts the management network in the
	RunningConfig ( /var/run/vdsm/netconf/nets ). Then it notifies the
	engine of the registration request.

	When the engine approves the request, it starts the deployment, part
	of which is to start vdsmd. In the common init tasks of vdsmd there is
	the restore_nets task that, if /var/run/vdsm/nets_restored does not
	exist, it will clear all the networks in RunningConfig and configure
	again those in PersistentConfig. The issue is that in a clean
	installation there won't be any PersistentConfig, and thus the system
	will lose connectivity.

	In order to solve this issue, the best course of action is to persist
	RunningConfig as PersistentConfig as soon as the management network
	has been created by vdsm-reg (and strictly before the registration
	request is sent to the engine).

	Bug-Url: https://bugzilla.redhat.com/1144639

2014-09-30  Nir Soffer  <nsoffer@redhat.com>

	qemuimg: Create qcow2 compat 0.10 images when converting existing images
	Commit 1f7c3ac2c handled only creation of new images. This patch adds the
	required -o compat=0.10 option when converting existing images.

	_supports_qcow2_compat() accepts a command argument and invokes the
	specific command to detect if the compat option is supported.

	Bug-Url: https://bugzilla.redhat.com/1139707

2014-09-30  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: hotunplug spelling issue
	Bug-Url: https://bugzilla.redhat.com/1147458

2014-09-30  Ondřej Svoboda  <osvoboda@redhat.com>

	vdsm: No need to 'import threading'
	This fixes the build after "vdsm: making PM 'on' and 'off' sync".

2014-09-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fix typo in filename - ibm_powerkvm-release
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1131965

2014-09-29  Eli Mesika  <emesika@redhat.com>

	vdsm: making PM 'on' and 'off' sync
	Consider the following scenario:

	DC1 with H1 (with PM) and H2 on cluster C1
	another host H3 on DC1 cluster C2

	When we are blocking the communication with iptables from H2 to H1 PM
	card and use the default proxy preferences (cluster, dc) a Restart
	operation will always fail.

	VDSM should perform start/stop sync and return the correct script
	returned code in order that engine will know that H2 fails to perform
	the operation and will try to use H3 as a proxy for the failed operation

	This patch changes the fenceNode function to be sync when 'on' 'off'
	operation are used in the same manner of 'status' operation and return
	the correct exit code of the invoked fencing script to the caller.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1139643

2014-09-27  Dan Kenigsberg  <danken@redhat.com>

	spec: do not require qemu-kvm-rhev on Fedora
	qemu-kvm-rhev is required for oVirt's feature completeness. However it
	is not shipped within Fedora. When Vdsm is built for Fedora, we cannot
	require it. However, when built for oVirt and downstream RHEV, it is
	simpler and nicer to have a strict hard requirement.

	spec: split qemu-kvm* requirement to its own %if
	qemu-kvm* dependency is about to become even more complex, and as such
	it is granted a special %if section.

2014-09-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: avoid require numactl to some platforms
	Avoid numactl issues with s390, s390x, arm platforms.
	Patch provided by Cole Robinson <crobinso@redhat.com>.

2014-09-27  Dan Kenigsberg  <danken@redhat.com>

	spec: allow all archs in Fedora
	As long as Vdsm is in Fedora, its Fedora build must abide to the rules
	and allow building on all supported Fedora architectures.

	Bug-Url: https://bugzilla.redhat.com/1141669

2014-09-24  ndarshan  <dnarayan@redhat.com>

	gluster: Fix for build failure when with_gluster=0
	Currently vdsmapi-gluster-schema.json file is not collected
	by anything when built with_gluster=0, which is causing build
	failure. Modified spec to exclude vdsmapi-gluster-schema.json
	file when gluster is not enabled.

2014-09-22  Yeela Kaplan  <ykaplan@redhat.com>

	oop: Use Storage.oop logger
	Use storage logger to avoid oop logs in /var/log/messages.
	Storage logger is configured to not send messages to syslog.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1131867

2014-09-22  Martin Perina  <mperina@redhat.com>

	fence: Fix description and JSONRPC marshalling for fenceNode API
	1) Fixes description of fenceNode return value
	2) Fixes marshalling of fenceNode return value for JSONRPC

	Bug-Url: https://bugzilla.redhat.com/1143860

2014-09-21  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: sslerror during accept should be logged on warning
	We need to log sslerror which happened during accept using warning
	level. Logging it on error may be confusing to users.

	Bug-Url: https://bugzilla.redhat.com/1141850

2014-09-19  Martin Sivak  <msivak@redhat.com>

	Add a libvirt migration hook to filter out min_guarantee element
	libvirt removed the silent support for min_guarantee element.
	That will break migrations of long running machines and
	resume of machines that were paused with the element still
	in their XML.

	VDSM was updated and new machines won't contain the offending
	element. This fix will remove it when a running machine is migrated
	or resumed.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1138340
	(cherry picked from commit ef7b9647cb6b9c3f46ba81f8238dd5ce0ffa5b87)

2014-09-18  ndarshan  <dnarayan@redhat.com>

	gluster: Fix for json-rpc issue wrt gluster commands.
	This patch adds spec file entry for missing apiwrapper
	module and moved vdsmapi-gluster-schema.json from
	vdsm/gluster/ to vdsm/rpc/.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124481

2014-09-18  Nir Soffer  <nsoffer@redhat.com>

	qemuimg: Create qcow2 compat 0.10 images
	Recent qemu versions introduced a new default qcow2 format (1.1), which
	is not compatible with older versions of qemu. For example, EL6 host
	cannot create snapshots if an image was created on EL7 host.

	This patch uses the "compat" option to create images in the older format
	(0.10), which are are compatible with different versions of qemu.

	The "compat" option is not available on older qemu-img, so we have to
	use the "-o ?" option to detect the availability of the "compat" option
	before creating an image. This is the same method used by libvirt.

	When all supported platforms provide the "compat" option, we can remove
	the "compat" detection code. Chanding the compat version will require
	a new storage domain format.

	Bug-Url: https://bugzilla.redhat.com/1139707

2014-09-18  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: when None is set as default value Bridge.py fails
	When None is set as default value for parameter which uses custom type
	Bridge.py fails.

	Bug-Url: https://bugzilla.redhat.com/1143854

2014-09-16  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: wrong usage of optional arguments in ctor
	When ctor arguments are marked as optional in schema the code compares
	argument names with '*' from schema with request names without '*'.
	This behavior result in passing wrong number of arguments to a method.


	Bug-Url: https://bugzilla.redhat.com/1141510

2014-09-12  Petr Horáček  <phoracek@redhat.com>

	hook: fix macspoof hook
	The hook should be build with default VDSM build.

	Enabling mac-spoofing is required for the appliance specifically for
	dhcp agent which is connected to the networks bridge by a port (one or
	more dhcp agent per network). In order for packets not to be blocked by
	ebtable rules (introduced by nwfilter), mac-spoof should be enabled.

	Bug-Url: https://bugzilla.redhat.com/1139155

2014-09-12  pkliczewski  <piotr.kliczewski@gmail.com>

	upgrade: vdsm-jsonrpc needs to obsolete vdsm-api
	vdsm-api was removed during jsonrpc implementation and now we need to
	make sure that it is removed when we upgrade from older version.

	Bug-Url: https://bugzilla.redhat.com/1140694

2014-09-10  Yeela Kaplan  <ykaplan@redhat.com>

	spec: Require latest ioprocess
	Latest IOProcess(0.12) includes a new patch for
	the python bindings that deals with a memory leak.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124369

2014-09-10  Antoni S. Puimedon  <asegurap@redhat.com>

	ethtool_opts: provide a way to apply to all slaves
	There was a hole in the feature that this hook services in that it
	was not possible to apply some opts to all the slaves in the
	cases when the combination of settings was not appliable to all
	the slaves in a single ethtool command.

	This patch solves the bug by adding a special device name that
	the admin can use when defining the custom network opts, i.e.,
	'*' that will mean that the special device name will be replaced
	with each of the slave names, one at a time, and run as many ethtool
	procs as there are slaves in the bond.

	Bug-Url: https://bugzilla.redhat.com/1126478

2014-09-10  Martin Sivák  <msivak@redhat.com>

	Revert "Force vdsm to stay with libvirt <= 1.2.7"
	This breaks live merge and is not needed now.

	This reverts commit 4573eca868c7d13f36265bbe4901b4f2716311e3.

2014-09-10  Martin Sivak  <msivak@redhat.com>

	Do not add the memtune/min_guarantee element to the libvirt xml
	VDSM does not need to put the min_guarantee to the libvirt XML.
	It was only set and then nobody was accessing it. It will break
	compatibility with tools that read data through libvirt directly,
	but we do not officially support that anyway.

	This part will fix all new VMs. Old VMs need a migration
	hook that will be included as another patch.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1138340

2014-09-10  Petr Horáček  <phoracek@redhat.com>

	revert: libvirt is happy with redefinition of an existing nwfilter
	Bug-Url: https://bugzilla.redhat.com/1138807

2014-09-10  Yaniv Bronhaim  <ybronhei@redhat.com>

	ppc: Over ppc arch vdsm reports UNKNOWN as operationSystem in getVdsCaps
	Vdsm currently checks only /etc/redhat-release path which exists over
	fedora installation for ppc arch but not on PowerKVM platforms.
	Over PowerKVM platforms we should read /etc/ibm_powerkvm-release to
	retrieve the release version.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1131965

2014-09-10  Antoni S. Puimedon  <asegurap@redhat.com>

	unified_persistence: only consider bonds created/touched by vdsm
	When upgrading a system to unified persistence we were considering
	any non empty bond as a bond to persist under unified persistence.
	This was not consistent with our implementation of ifcfg.flush that
	only considers ifcfg files with the vdsm authoring header.

	The patch fixes the behavior by making ifcfg flush and
	unified_persistence upgrade consistent in it's ownership semantics,
	i.e., we will not touch nor consider for persistence files not
	markedly authored by vdsm.

	A side effect of the lack of consistency was that a bond that was
	providing connectivity to a machine could be made to be onboot no
	if it was not immediately the backing device of ovirtmgmt.

	Bug-Url: https://bugzilla.redhat.com/1128140

2014-09-10  Francesco Romani  <fromani@redhat.com>

	sampling: do not produce stats for missing disks
	Adding of a new disk using hotplug (hotplugDisk verb)
	can trigger an error during the stats reporting (getVmStats verb).
	This error is transient, so it was likely got unnoticed so far.

	When a disk is hot-plugged, VDSM correctly updates the list
	of the drives of a VM.
	When stats for such a VM are asked, VDSM iterates over the list of
	the drives of a VM, and  looks up for disk samples of each drive.
	The stats are collected (by default) every 60s, and VDSM considers
	the oldest and the newest samples; so, until the oldest set of
	samples collected includes values for the hotplugged disk,
	we will have an error.

	We have a vulerabilility window up to
	(sampling_window * sampling_interval)
	in the worst case. With default values this is 2 * 60s = 120s.
	After that, everything goes back to normality, and the
	stats for the new disk are reported correctly.

	This patch fixes this issue by just ignoring stats for disks
	which are part of a VM, but for which samples aren't
	yet available.

	Bug-Url: https://bugzilla.redhat.com/1119051

2014-09-10  Martin Sivak  <msivak@redhat.com>

	Force vdsm to stay with libvirt <= 1.2.7
	Libvirt removed silent support for min_guarantee parameter when
	running on Qemu. This prevents us from starting any new VMs
	or migrating VMs to hosts with newer versions of libvirt.

	See https://bugzilla.redhat.com/show_bug.cgi?id=1122455 for
	the libvirt reasoning.

	This patch should force hosts to stay with older versions of libvirt
	until this is resolved.

	Label: ovirt-3.5-only
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1138340

2014-09-09  Yoav Kleinberger  <ykleinbe@redhat.com>

	rpm: make vdsm-python package noarch
	The vdsm-python package should be noarch. It seems that this was simply
	forgotten previously. This patch fixes this issue.

2014-09-07  Dima Kuznetsov  <dkuznets@redhat.com>

	mounts: Optimize mount loop device resolution
	Existing code was re-reading mtab for each /proc/mounts entry.
	Added lookup dictionary that translates /dev/loop spec to actual file
	spec.

	Lookup is reinitialized each time mtab is changed.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1112779

2014-09-05  Francesco Romani  <fromani@redhat.com>

	vm: avoid race while setting guest cpu status
	Inside the Vm class, the state swapping is not atomic.
	This is because the reported state is function of two internal fields,
	lastStatus and guestCpuRunning, which may be updated concurrently
	and not atomically.

	One clear example for this is BZ1111938, on which we see a
	race between pause(), onLibvirtLifeCycle() and getStats(),
	which makes a Vm incorrectly reported as 'Paused'
	(instead of 'Saving State'), which confuses Engine.

	To fix this, we make use of the guestCpuLock everywhere
	we change the state of the guest CPU, in order to synchronize
	access to the field with respect to pause() and cont() methods.

	While good enough for the short term, more aggressive
	refactoring is needed in this area.

	Bug-Url: https://bugzilla.redhat.com/1111938

2014-09-04  pkliczewski  <piotr.kliczewski@gmail.com>

	storage domain detach with force fails
	In jsonrpc schema masterSdUUID and masterVersion are marked as optional.
	We need to provide default values for both arguments.


	Bug-Url: https://bugzilla.redhat.com/1110831

	setNumberOfCpus marshalling issue
	xmlrpc uses vmID twice to construct VM object and to run setNumberOfCpus.
	In xmlrpc we provide implementation how we instantiate API object and
	invoke a verb so we do not care how the parameters are used.

	Whereas in jsonrpc we use "reflection" so we can't use the same parameter twice.


	Bug-Url: https://bugzilla.redhat.com/1138181

2014-09-04  Mooli Tayer  <mtayer@redhat.com>

	tool: fix pyflakes errors[1].
	recently I broke master at change 31293.

	[1]
	./lib/vdsm/tool/configurators/libvirt.py:29: 'NotRootError' imported but unused
	./lib/vdsm/tool/configurators/sanlock.py:24: 'NotRootError' imported but unused

	vdsm-tool: changing root checking in configurator.
	Checking for root as we currently do in configure of libvirt and
	sanlock is not enough. Currently this will fail during the
	isConfigured() check since it does not have premissions to the
	files it attempts to check:
	"OSError: No such file or directory: /etc/libvirt/libvirtd.conf"

	It is easy to see that this check is needed for all the exposed
	methods of configurator. I'm suggesting to do it in the exposed
	verbs in a uniform manner.

	3.5 note: This commit broke master and it must be merged along
	with change I8e86dd38e3a871d55ffc5cb67d5f4596ec4dc3a6.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1136897

2014-09-03  Adam Litke  <alitke@redhat.com>

	Live Merge: add reconcileVolumeChain verb
	If a live merge operation is catastrophically interrupted (we completely
	lose the host on which the VM was running during the merge) engine must
	have a way to discover what happened by examining storage only.

	When the active layer was being merged, it's critical to know whether
	the the pivot completed or not.  Choosing the wrong leaf volume could
	result in data corruption.  When an internal volume is being merged the
	situation is less dire but providing a way for engine to resolve the
	final status of the merge provides for a substantially better user
	experience since the snapshot can be unlocked to allow a cold merge to
	be attempted.

	This new verb must run on SPM and is only valid for images which are not
	in use by running VMs.  It will use qemu-img to examine the actual
	volume chain and will correct the vdsm metadata if needed.  Finally, the
	current volume chain is returned.  This chain can be used by engine to
	understand what happened with the interrupted merge command.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127294

	virt: Resolve snapshot type after prepareVolumePath
	The Drive.blockDev property depends on the presence of the volume path
	locally.  Therefore, it is not safe to call until after the new snapshot
	volume path has been prepared.  Use a lambda function to delay the call
	until the information is needed.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109920

	Live Merge: Suspend disk stats collection during pivot
	When pivoting to the new volume after an active layer merge, there is a
	brief period where the vdsm metadata is out of sync.  During this time,
	the disk stats collection thread will raise an exception since the drive
	cannot be referred to by its old path.  Therefore we disable stats
	collection during this short window until the metadata can be
	synchronized.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109918

	Live Merge: Simplify pivot flow
	The pivot part of a Live Merge can be made a synchronous operation which
	simplifies our flows.  We're already doing cleanup in a thread so just
	do the pivot and wait for it (very short) to complete and then continue
	directly to the volume chain sync part of the cleanup.

	This is much simpler than doing the pivot and waiting another sample
	interval to try the sync portion.

	Live Merge: Mark active layer ILLEGAL before pivoting
	A block commit of the active layer takes place in two phases.  First,
	data is copied from the current leaf to its parent.  During this time,
	all writes to the disk are mirrored to both volumes.  When this process
	converges the two volumes are and will remain identical due to ongoing
	drive mirroring by qemu.  At this point we instruct libvirt to perform a
	pivot from the current leaf to the new leaf.  Once this is complete we
	synchronize our metadata and end the job.

	If we are catastrophically interrupted (lose contact with the host)
	between the pivot request and final metadata synchronization there is
	currently no way to know whether the pivot actually happened.  This
	could be dangerous because restarting the VM on another host with the
	wrong leaf volume could lead to data corruption.

	The solution is to mark the current leaf ILLEGAL before requesting a
	pivot.  Since the volumes are identical at this point it will always be
	safe to rerun the VM using the new leaf.  A subsequent patch will take
	advantage of this ILLEGAL marker to provide engine with a reliable and
	correct volume chain for this recovery scenario.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127294

	Live Merge: Extend internal block volumes during merge
	Libvirt will be exposing the high write watermark for internal volumes
	directly in the domain XML.  An <allocation/> element will be added to
	each member of the image chain.  This patch implements the missing logic
	for _getMergeWriteWatermarks using this new API.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109920

	Live Merge: Get volume chain for multiple drives
	A future patch wants to get volume chain information for all drives in
	one call.  Rather than getting the domXML once per drive, allow
	_driveGetActualVolumeChain to accept a list of drives and parse the
	information all at once.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109920

	qemuimg: Handle new output format
	The current qemu-img info parsing logic assumes that if the output is
	long enough, the backing image will appear on line 6.  In newer qemu
	versions, some additional information has been added to the output.  In
	the case of no backing file, the additional lines will fail to parse.
	Handle this by trying to parse line 6 as a backing file and ignoring
	regex parse errors for this line only.

	Sample output from qemu-2.0.0-rc1:

	[alitke@lager qemu-2.0.0-rc1]$ ./qemu-img info base.img
	image: base.img
	file format: qcow2
	virtual size: 1.0G (1073741824 bytes)
	disk size: 196K
	cluster_size: 65536
	Format specific information:
	    compat: 1.1
	    lazy refcounts: false
	[alitke@lager qemu-2.0.0-rc1]$ ./qemu-img info leaf.img
	image: leaf.img
	file format: qcow2
	virtual size: 1.0G (1073741824 bytes)
	disk size: 196K
	cluster_size: 65536
	backing file: base.img
	Format specific information:
	    compat: 1.1
	    lazy refcounts: false

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127294

	Live Merge: Update path using libvirt supplied value
	When libvirt pivots the active layer after a live merge, the live XML is
	updated to reflect the path of the new active layer.  The new path is
	copied from the backingStore pointer of the old active layer.  Since
	that is a relative path, libvirt makes it absolute but it will not
	remove the '../' path component since that is not always correct (even
	though it would be correct for our environment).  When syncing the
	volume chain, we must use the same path as libvirt does, otherwise
	future calls to libvirt may fail.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109920

	Live Merge: Return more info from _driveGetActualVolumeChain
	In followup patches, we want to return more information about each path
	component from _driveGetActualVolumeChain.  We need the actual path as
	given in the domain XML in order to properly update our metadata after
	an active layer merge.  We also want to use this function to return high
	write watermark information for block volumes.  This patch just converts
	the format returned by _driveGetActualVolumeChain from a simple list to
	a list of named tuples.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109920

2014-09-03  Antoni S. Puimedon  <asegurap@redhat.com>

	iface_sampling: Fix debug logging samples
	Currently we have a debug logging entry whenever the tx/rx rates go
	over 100%. In this log, we try to help debugging of the issue by
	printing the sample value of rx and tx for all the samples in the
	AVERAGING_WINDOW (size 5).

	The problem comes from the fact that the decision to log is taken
	by checking samples hs0 and hs1 iterating over all the devices
	existing on the older hs1. However, there is no guarantee that
	the devices would exist in hs2, hs3, ..., hs_AVERAGING_WINDOW.

	The fix is to simply not include the samples for which the device
	is missing.

	Bug-Url: https://bugzilla.redhat.com/1116577

2014-09-03  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: check volume existence in prepareImage
	This patch introduces a check in prepareImage to return a consistent
	error (VolumeDoesNotExist) when the volume to prepare is not found.

	Before this patch the error was:

	 UnboundLocalError: local variable 'leafInfo' referenced
	   before assignment

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1133617
	(cherry picked from commit 0e9c6a4fb2f126d10d445289753abbf03ed867ae)

2014-09-03  Genadi Chereshnya  <gcheresh@redhat.com>

	netinfo: Return Mac of bond slaves in lower case
	getVdsCaps returns MAC of all interfaces in lower case and for bond slaves
	it returned it in upper cases - fixing inconsistency

	Bug-Url: https://bugzilla.redhat.com/1116810
	(cherry picked from commit bd4a297c25fc5d6e241d28ca5eb0fb2b4c538e6e)

2014-09-03  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove redundant prints during rpm installation
	Those stdout prints are invalid and doesn't assist to the user.
	If configure fails vdsmd won't start and the user will need to
	investigate it. But stdout prints in the installation phase won't
	assist.

2014-09-02  pkliczewski  <piotr.kliczewski@gmail.com>

	getVMFullList hangs into infinite loop when handing many VMs
	When we send 22k response we get -1 during send. After the investigation
	we found that m2crypto ignores error codes and returns -1. We are not
	sure which error is returned. It can be one of SSL_ERROR_WANT_WRITE,
	SSL_ERROR_WANT_READ, SSL_ERROR_NONE, SSL_ERROR_ZERO_RETURN.

	We use numSent in AsyncDispatcher#handle_write to decide whether we need
	to process current buffer or we are done. When numSent is -1 we get into
	infinite loop due to:

	self._outbuf = data[numSent:]

	We split the data and attempt to send it one more time but we still get
	-1. We need to get to the poll loop to continue.


	Reviewed-On: http://gerrit.ovirt.org/#/c/32263/
	Bug-Url: https://bugzilla.redhat.com/1135959

2014-09-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Use stdout for regular output message in removeConf func

2014-09-01  Nir Soffer  <nsoffer@redhat.com>

	tool: Create configurators once
	Commit e5e80540e8 replaced the configurators dict with a function,
	creating a configuration dict on each call. The code added in this
	commit invoke the function many times for each run on the tool, creating
	10's of instances of the configurators. This change is not needed to
	acomplish the purpuse of that patch, and is rather pointless.

	This patch reverts the unrelated change, keeping the configurations in a
	module constant. This change also simplify the tests.

2014-09-01  Dan Kenigsberg  <danken@redhat.com>

	libvirtd.log: time to be less verbose
	After several years, we can drop log verbosity to libvirt's default.
	Currently, libvirt logs are filling up ovirt-nodes that run dozens of
	VMs.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1125237
	(cherry picked from commit da2d0403de40f89da30f0618d903e707632cc445)

2014-09-01  pkliczewski  <piotr.kliczewski@gmail.com>

	Force flag not optional for detach storage domain
	Default value of force flag for detach sd not set but it should be
	optional according to schema.


	Bug-Url: https://bugzilla.redhat.com/1134290

2014-08-31  ndarshan  <dnarayan@redhat.com>

	gluster: Modification of logic for volume capacity calculation.
	This patch modifies the logic for gluster volume capacity
	computation. Earlier the volume capacity was calculated
	wrt non root user. Now logic is modified to calculate
	volume capacity wrt root user.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1129619

2014-08-31  Vinzenz Feenstra  <vfeenstr@redhat.com>

	spec: Only build x86_64 and ppc64 architectures
	We're not supporting any other architectures than x86_64 and ppc64
	at the moment. This patch restricts the rpm builds to those
	architectures.

	(cherry picked from commit 565bb6cba89af6278e3d4e5ae03884d36a2d803e)

2014-08-31  Antoni S. Puimedon  <asegurap@redhat.com>

	el6_tests: fix toolTests to use VdsmTestCase so that assertIn is available
	ovirt-3.5 backport note: at 3.5 VdsmTestCase is imported from
	testrunner and not testlib.

2014-08-31  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix Python 2.6 compatibility
	Recent tests use set comprehension which is available only in Python
	2.7, failing builds on EL machines.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1132677

2014-08-31  Mooli Tayer  <mtayer@redhat.com>

	configfile: sort dict items inserted to config files for consistency.
	See comment  one at bug.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

2014-08-31  Nir Soffer  <nsoffer@redhat.com>

	tool: Fix TypeError when configuration check fails
	When is-configured and validate-config failed for some modules, we got a
	TypeError trying to join a list of configurator objects, instead of list
	of strings.

	    TypeError: sequence item 0: expected string, Sanlock found

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	tool: Remove pointless __init__ methods
	Some configurators had pointless __init__ methods. There is not need to
	implement these if they are empty. Keeping them only cause developers to
	copy and paste this useless code when they create new configurators.

	tool: Fix help message when is-configured fails
	When is-configured fails for some modules, the help message suggested an
	incorrect invocation:

	    vdsm-tool configure module-name

	Instead of the correct:

	   vdsm-tool configure --module module-name

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	tool: Use space after comma when formatting lists
	When formating list of modules in error message, we used to do:

	    foo,bar,baz

	Now lists are formatted in more readable way:

	    foo, bar, baz

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1132677

	tool: Fix another Python 2.6 compatibility issue
	Commit 096cc03d2f replaced the configurators tuple with a dict, using
	dict comprehension syntax, which is not available on Python 2.6. Now we
	use the good old dict() syntax instead.

	We also silence a pep8-1.4.5 complaint.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1132677

	tool: Fix compatibility with Python 2.6
	Commit 398d016b58 was merged too quickly, before Python developers could
	add set literals to Python 2.6. Since this is quite late now to add it,
	I think we should use the good old set() syntax.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	tool: Fix error message for non-existing module
	When user specify non existing module (e.g. foo)using the --module
	option, he would get this confusing error:

	    UsageError: error: argument --module: invalid choice: foo (choose from ['foo'])

	While the availabe modules are certificates, libvirt, and sanlock.

	Now the error display the available modules, sorted, and formatted in a
	user friendly way, instead of as Python list:

	    UsageError: error: argument --module: invalid choice: foo
	    (available: certificates, libvirt, sanlock)

	The relevant test use now real names, so errors look like real errors,
	which help to format them properly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	tool: Raise UsageError when used incorrectly
	Commit e5e80540e8 added a new type of error, when user try to configure
	non existing module. The test for this feature expect a SystemExit
	exception, but the code was actualy raising a KeyError.

	Seems that both the test and the code are wrong, so now a UsageError is
	raised in this case.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1132677

2014-08-31  Mooli Tayer  <mtayer@redhat.com>

	vdsm-tool: roll out self signed certificates in vdsm-tool.
	This is handled in a new 'ModuleConfigure' named 'certificates'.
	Libvirt module now requires 'certificates'.

	certificates are not remove during removeConf.

	previously certificates where generated on init.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	vdsm-tool: suppoort dependencies between ModuleConfigure
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	vdsm-tool: simplify getting modules by names.
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

	vdsm-tool: reorgenize module configurers.
	configurators are different from other vdsm tool exposed
	entities since they have their own lifecycle (defined
	by ModuleConfigure) and they deserve their own directory.

	this happens now since configurator is getting messy
	and it is time to split it into different
	ModuleConfigure file. In addition more are expected
	to join soon.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1127877

2014-08-29  Dan Kenigsberg  <danken@redhat.com>

	tests: checkSudo should skip if bin/sudo is missing
	If the unit tests are run with no sudo binary installed,

	    OSError: [Errno 2] No such file or directory

	is raised instead of the test being skipped.

	This commit includes a typo fix from Ia6395780c007a65e55ae

	Bug-Url: https://bugzilla.redhat.com/1135117

2014-08-28  Yeela Kaplan  <ykaplan@redhat.com>

	configurator: Too many constants to import separately
	needed for following patch (configure multipath)
	where we import even more constants

2014-08-28  Mooli Tayer  <mtayer@redhat.com>

	configurator.py: fix _removeFile to do as described in it's doc string.
	Remove file in a non racy way without using the utils.rmFile()
	which assumes the file exists.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109569

	configurator.py: call Node's delete() for file deletion on node.
	delete() unpersists and shreds the file. the previous call to unpersist
	after deleting a file is wrong.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1134440

2014-08-27  Francesco Romani  <fromani@redhat.com>

	vm: detect migration completed on recovery
	If VDSM is down when a migration completes, it will
	miss the migration completion event on the
	onLibvirtLifeCycleEvent callback, and thus needlessly
	wait the full migration timeout before actually
	asking libvirt for the domain state and get back in sync.

	BZ1104733 provided a quite complex demonstration
	of the fact this scenario is unlikely, but possible.

	To handle this situation, we
	- connect early to the domain, on recovery.
	  We know this is safe because on recovery we iterate on
	  very domain list libvirt provided to us moments before,
	  so the domain will be present.
	- inspect the domain state *before* waiting for migration
	  termination, and skip the wait if the domain is detected
	  running.

	A nice side-effect of this patch is also to clarify a tiny bit the
	creation flows in Vm._run().

	Bug-Url: https://bugzilla.redhat.com/1104733

	vm: ensure valid Vm._dom before domDependentInit
	If we reach the _domDependentInit stage of a VM
	creation, for every possible flow, including
	recovery, we must guarantee that the _dom
	attribute is not None, thus VDSM and libvirt
	are connected.

	Quite a lot of errors could be ignored on
	recovery, but this cannot, ever.

	This patch moves the '_dom is not None'
	check inside _domDependentInit, and makes
	it mandatory for each flow.

	Bug-Url: https://bugzilla.redhat.com/1104733

	vm: split migration completion in smaller methods
	Refactor _waitForIncomingMigrationFinish in smaller
	methods for clarity and to prepare for better
	timeout handling. The method was renamed for better
	clarity: in the case of dehibernation it wasn't
	waiting for anything.
	No functional changes.

	Bug-Url: https://bugzilla.redhat.com/1104733

	vm: make _isDomainRunning more robust
	The Vm._dom atrribute may be set to None
	asynchronously by the _onQemuDeath callback.

	This patch makes sure that the
	Vm._isDomainRunning method can cope with this fact.

	Relates-To: https://bugzilla.redhat.com/1104733

2014-08-27  Petr Horáček  <phoracek@redhat.com>

	Veth devices are shown as NICs + test
	Veth LinkType was not listed in tuple, therefore veths were
	evaluated as NICs.

	New test adds dummies and veths with _fakeNics prefix and with
	non _fakeNics prefix and then verify if fake nics are shown in
	netinfo.nics() and the others are not.

	Bug-Url: https://bugzilla.redhat.com/1125177

	dummies and veths with changeable prefix
	Veth's and dummy's create() functions have unrequired attribute
	prefix.

2014-08-27  Francesco Romani  <fromani@redhat.com>

	vm: simplify the shutdown exit reason
	A VM could be cleanly shutdown in two ways,
	either from inside (user shutdown) or from engine
	(admin shutdown).

	In turn, the shutdown process can involve various
	shutdown methods (guest agent, acpi, forced).

	Currently we use a couple of booleans to detect
	all the various cases, but this is clumsy and
	some paths aren't well covered, so wrong states
	may be reported.

	This patch simplify the reporting by adding an
	explicit, private, 'shutdownReason' field.

	The main reason for the cleanup is to fix a wrong
	exit reason reporting.
	Previously, USER_SHUTDOWN was incorrectly reported
	instead of ADMIN_SHUTDOWN. This patch fixes this.

	Bug-Url: https://bugzilla.redhat.com/557125

	vm: do not use _dom for powerdown
	We must avoid the proliferation of trivial helper methods, but
	using private VM fields across modules is a greater evil, even
	if modules are part of the same package and affine, like vm.py and
	vmpowerdown.py

	To avoid that, a new simple method is added to request clean
	shutdown of a VM through ACPI events.

	Bug-Url: https://bugzilla.redhat.com/557125

2014-08-27  Petr Horáček  <phoracek@redhat.com>

	tests: functional as a package
	I added __init__.py to functional tests' folder, so now we can
	import its modules from unit tests.

2014-08-21  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Handle and store serial to guest device names mapping
	The serial to guest device name mapping helps to identify 'physical' hard
	drives in the guest OS from the outside and correlate our disk images to
	those drives and their name in the guest OS.

	Guest agent implementation: http://gerrit.ovirt.org/#/c/31465/

	Bug-Url: https://bugzilla.redhat.com/1127607
	(cherry picked from commit 7621349e624dd4a3fcced6137d3cb4e2927a3865)

2014-08-19  Dan Kenigsberg  <danken@redhat.com>

	virt: keep on sampling before /var/run/vdsm/client.log exists
	My commit 24c8e24 has introduced a serious bug: if vdsm is started
	before /var/run/vdsm/client.log is created (which is the common case for
	new installations), the host-sampling thread would stop when it fails to
	find it.

	This patch explicitly handles the case of a missing
	/var/run/vdsm/client.log on the two locations that attempted to read its
	time.

	Bug-Url: https://bugzilla.redhat.com/1111234

2014-08-15  Adam Litke  <alitke@redhat.com>

	virt: Change log level for disk stats collection failure
	When hotplugging a new disk, samples for the newly added device will not
	be immediately available which results in a KeyError Traceback in
	vdsm.log.  Since this condition is expected, downgrade the logging level
	from exception to warning.  In the case of a hot plugged disk, the
	failure resolves once enough samples have been collected.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1112998

2014-08-13  Antoni S. Puimedon  <asegurap@redhat.com>

	selinux.restorecon: encode filename to utf-8 string
	selinux python bindings take only a char * as input, not a unicode
	string (C.f. https://bugzilla.redhat.com/908916). For this reason, we
	need to encode a potential unicode string into a utf-8 char string.

	Bug-Url: https://bugzilla.redhat.com/1128074

2014-08-13  Francesco Romani  <fromani@redhat.com>

	vm: more generic recovery check
	On recovery, VDSM checks each VM listed by libvirt
	to see if it should take care of it.
	The check is done by using some system properties
	added in the smbios domain element, which is lacking
	outside x86_64.

	As result, recovery finds no VMs on PPC64.

	This patch makes VDSM use the vm guest agent channels
	to do the recovery check, since they are avaialble
	on all plataforms.

	Bug-Url: https://bugzilla.redhat.com/1126887

2014-08-10  Allon Mureinik  <amureini@redhat.com>

	spec: Require qemu-kvm-rhev in EL
	In EL qemu-kvm does not support live snapshots. In order to support
	them, qemu-kvm-rhev is required. This package is now available in the
	ovirt-releases repository [1].

	[1] http://www.ovirt.org/Vdsm_Developers

	Reviewed-On: http://gerrit.ovirt.org/#/c/31214/
	Bug-Url: https://bugzilla.redhat.com/1127763

2014-08-08  Martin Perina  <mperina@redhat.com>

	fencing: Skip fencing if host is maintaining its lease
	1) Adds fencingPolicy parameter to fenceNode API call. The parameter is
	   optional, but it's supposed to be used in oVirt >= 3.5.
	2) fencingPolicy parameter can contain storageDomainHostIdMap, which
	   is a map of storage domains and host ids
	3) If clusterlock reports that host is live on at least one of specified
	   storage domains, the fence agent execution is skipped and host is
	   considered alive

	Bug-Url: https://bugzilla.redhat.com/1090799

2014-08-08  Nir Soffer  <nsoffer@redhat.com>

	fencing: Introduce getHostLeaseStatus API
	When fencing another host, we like to check if the other host has access
	to storage, to prevent unwanted fencing of a lively host. This patch
	adds an internal API for getting another host status on monitored
	domains.

	The new getHostLeaseStatus API returns a dictionary of monitored domains
	UUIDs and host lease status for each domain, as reported by the cluster
	lock.  The caller will apply a fencing policy using this data to decide
	if host is lively enough to prevent fencing.

	Here is an example result:

	    {'04e604d3-71eb-41e0-a8a3-74404bdd9d75': 'live',
	     '09049dc6-2007-492e-afd9-3ec201775b2a': 'dead',
	     '20501ea5-cf6b-453a-b23d-a708c28cec1f': 'live',
	     '2b02c759-2e4a-4cf0-9b8e-37a6ec77f821': 'unavailable',
	     ...
	     'fc348be8-18f4-42ff-8421-9043203e13a6': 'live'}

	See clusterlock.py for the possible statuses and their meaning.

	Bug-Url: https://bugzilla.redhat.com/1110172

2014-08-08  Piotr Kliczewski  <piotr.kliczewski@gmail.com>

	Revert "jsonrpc: Accept all stomp commands"
	There is no verification whether incoming stomp messages are correct for
	correct runtime context. This work is planned for next release. We can
	use protocol detection as sanity check so we will recieve only messages
	which we know are correct.

	This reverts commit 6c2892a2a0bc337dcd4a40da54d08d3d63f95028.

2014-08-08  Antoni S. Puimedon  <asegurap@redhat.com>

	ifcfg: make default route network be started by sysV
	With the change to unified persistence, the networks defined by vdsm
	are only started and restored on boot by vdsmd itself. The issue with
	this is that if vdsmd fails to start for whichever reason, that may
	impede remote access to the machine.

	This patch is a fix for oVirt 3.5 only (future versions will have
	separate network and vdsm initializations) that solves the issue by
	making all the interfaces that are needed for the network that is
	defined to carry the default route (typically the management network)
	have ONBOOT=yes. That setting makes the initscripts network service
	configure the network itself. So for the default route network, the
	boot process is going to be:
	    a) sysV or systemd start network.service,
	    b) network.service goes over all the ifcfg files and ifups those
	       with ONBOOT=yes
	    c) vdsmd start will call vdsm-network-restore-config which will:
	        + flush ifcfg files
	        + call setupNetworks to restore all the defined networks.

	It's easy to see that if (c) does not happen we will be left with
	only the default route network, so remote access will still be
	possible.

	Bug-Url: https://bugzilla.redhat.com/1128140

2014-08-08  Dan Kenigsberg  <danken@redhat.com>

	Drop ExclusiveArch
	Vdsm supports ppc, and should be built for ppc also for el7.

2014-08-08  Adam Litke  <alitke@redhat.com>

	Live Merge: support active layer commit
	Libvirt is currently adding support for merging the active layer.  This
	operation works similar to a block copy job since it has two phases.  In
	the first phase, data is merged from the active layer into base.  During
	this phase mirroring ensures that active IO is also directed to the base
	snapshot.  Phase 1 is complete when 'cur' == 'end' in the block job
	info.  Vdsm triggers the second phase of the job by calling the
	blockJobAbort function with a special PIVOT flag which instructs libvirt
	to pivot the disk from the active layer to the base.  Once this is
	complete, libvirt will stop reporting the job and vdsm will handle
	post-job cleanup as usual.

	This patch depends on currently unreleased libvirt and qemu features
	that are targeted for a near term release.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1109918
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124970

	Live Merge: Ignore libvirt block job events
	Since VDSM needs to handle missed block job completion events that may
	have been emitted while the daemon was stopped, it is best to not rely
	on the events at all and initiate all cleanup operations from the
	existing polling function.  Since a volume chain sync can be a
	relatively expensive operation involving HSM calls, run it in a separate
	thread.  Depending on the current state of the storage, the sync may
	need to be retried.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124970

	Live Merge: improve log messages
	Make it easier to debug live merge flows by reporting the job ID
	whenever it is available.  This will make the messages more istent and
	easy to correlate.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124970

	Live Merge: Stop scanning volume chains at VM startup
	During VM create (or recovery) we are scanning the volume chain of each
	disk to catch and handle metadata sync issues.  These can happen if a
	block job completed while vdsm was not running or if a block job
	completed when the VM was running on another host but the metadata could
	not be corrected before it was restarted on this host.

	Both of these negative flows are relatively rare but the volume chain
	scanning code incurs a startup penalty on every create/recoverVM.  Drop
	the scanning and handle these cases differently.  To address the first
	scenario, we are going to move away from using the libvirt events and
	rely solely on our cached _blockJobs info stored in the VM recovery
	file.  For the second case, we are going to cooperate with the engine
	and allow it to resubmit the same live merge command when the end state
	of the first submission is ambiguous.  Vdsm will handle the resubmit by
	ensuring the metadata is synchronized.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124970

	Live Merge: Explicitly save block job info
	When we removed _blockJobs from the VM.status() it had the unfortunate
	side effect of causing block job info to not be saved by VM.saveState().
	Fix this by explicitly adding it to toSave.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124970

2014-08-07  Adam Litke  <alitke@redhat.com>

	Live Merge: Add liveMerge capability to vdsCaps
	It is desirable for engine to know up front if a host can support live
	merge so the UI can either enable or disable the 'Delete' snapshot
	command based on presence of the feature.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124970

2014-08-07  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: logging requests and responses
	There was missing information what requests and responses were coming in
	and going out from vdsm.

	Bug-Url: https://bugzilla.redhat.com/1124813
	(cherry picked from commit 39c92b33045c7c85c8ed2db70c81b5d511307615)

2014-08-07  Nir Soffer  <nsoffer@redhat.com>

	image: Detect cycles in image volume chain
	When sorting volume chains, we could get into an endless loop if there
	was a cycle in the volume chain, for example, a volume claiming to be
	its own parent.  The endless loop create a new volume object on each
	iteration, and adds it to the chain list, and will stop only when no
	more memory is available or vdsm is stopped.

	Now ImageIsNotLegalChain is raised as soon as a cycle is detected.

	Bug-Url: https://bugzilla.redhat.com/1125197
	Relates-To: https://bugzilla.redhat.com/1124498

2014-08-07  Federico Simoncelli  <fsimonce@redhat.com>

	fileSD: include gluster in getMountsList
	It is not exactly clear what previous change broke scanDomains but
	looking at the code it seems that gluster was never explicitly handled.

	This patch adds the explicit support for gluster in scanDomains fixing
	the problem of missing storage domain links in the pool directory.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1116585

	sp: add logging for stale domain link collection
	This patch adds logging to the stale domain link collection in order to
	better track links life-cycle.

	Related-To: https://bugzilla.redhat.com/show_bug.cgi?id=1116585

	sp: improve variables in _linkStorageDomain
	In order to avoid future confusion on _linkStorageDomain variables,
	they have been renamed with more meaningful names.

	Related-To: https://bugzilla.redhat.com/show_bug.cgi?id=1116585

	sp: fix storage domain link detection
	It seems that the storage domain link detection never worked. This patch
	fixes the intended behavior.

	Related-To: https://bugzilla.redhat.com/show_bug.cgi?id=1116585

2014-08-05  Nir Soffer  <nsoffer@redhat.com>

	spec: Create default multipath.conf during install
	/etc/multipath.conf does not exits after multipath is installed. This
	causes multipathd to fail silently when started as vdsmd rquired
	service. Later, when vdsm install new configuration and try to reload
	multipathd, it fails and panics.

	Example multipathd start on RHEL 7:

	    [root@reserved-0-247 ~]# systemctl start multipathd
	    [root@reserved-0-247 ~]# systemctl status multipathd
	    multipathd.service - Device-Mapper Multipath Device Controller
	       Loaded: loaded (/usr/lib/systemd/system/multipathd.service; enabled)
	       Active: inactive (dead) since Fri 2014-07-25 13:55:48 IDT; 14min ago
	               start condition failed at Fri 2014-07-25 14:10:04 IDT; 2s ago
	               ConditionPathExists=/etc/multipath.conf was not met

	On EL6, multipathd run when configuration is not available, blacklisting
	all devices. It log this message to /var/log/message in this case:

	    Jul 25 15:25:28 dhcp-1-210 multipathd: /etc/multipath.conf does not
	    exist, blacklisting all devices.

	This patch uses mpathconf to create a default multipath.conf if the file
	does not exists during installation. This configuration blacklist all
	devices, simulating the behavior of multipathd on EL6.

	Bug-Url: https://bugzilla.redhat.com/1120209

2014-08-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	RHEL7 works with systemd and requires systemd macros and tmpfiles.d conf
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1122198

2014-08-05  Dima Kuznetsov  <dkuznets@redhat.com>

	spec: Move /lib files to /usr/lib
	Fedora 19+ and EL7 stopped using /lib which is now a symbolic link to
	/usr/lib and deprecated installing files to /lib.

	We store the following files in /lib:
	 * systemd configs:
	 Not present on EL6, if using systemd always install to /usr/lib.

	 * udev rules:
	 Checks if current version is EL6 and installs to old or new path
	 accordingly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1121494

2014-08-05  Nir Soffer  <nsoffer@redhat.com>

	multipath: Rescan also FC devices
	When rescanning devices, we used to update ISCSI devices, and then run
	multipath to update device mapping. However, we never rescanned FC
	devices.

	We used to believe that "multipath -r" was triggering a rescan of FC
	devices and solving this issue. This may have been true in older
	versions but certainly does not work with current RHEL release, and was
	removed in the previous patch.

	This patch adds the missing FC rescan using the issue_lip sysfs api,
	recommended in the RHEL Storage Administration Guide.

	Bug-Url: https://bugzilla.redhat.com/1121998

2014-08-05  Saggi Mizrahi  <smizrahi@redhat.com>

	stomp: Server side heartbeat implementation
	Bug-Url: https://bugzilla.redhat.com/1115044
	(cherry picked from commit 8e616115540291b201929be4588154892b579ff5)

2014-07-31  Dan Kenigsberg  <danken@redhat.com>

	net: Mark removed interfaces with NM_CONTROLLED=no
	Bug-Url: https://bugzilla.redhat.com/1124876

2014-07-31  Antoni S. Puimedon  <asegurap@redhat.com>

	dhclient: fix kill_dhclient for dhcp reconfigure flow
	When configuring a device with dhclient, we always ask dhclient to
	kill any dhclient daemon that there might be running for the device,
	so that the new dhclient that we (or initscripts) launch will not
	abort due to it.

	Unfortunately, I did not know nor consider that dhclient, when
	checking the interface for discovering, checks that it does not have
	any IP address configured other than '0.0.0.0'. Thus, in order for
	the new dhclient invokation to succeed all the way to daemonization,
	it is necessary to flush the ip addresses of the device.

	Another mistake it had was assuming that the pidfile would be
	found by dhclient -x, but it only knows to look on a path that
	is not used by initscripts nor other tools.

	Bug-Url: https://bugzilla.redhat.com/1122477

2014-07-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove dmidecode build requirement

2014-07-28  Yaniv Bronhaim  <ybronhei@redhat.com>

	Moving vdsm-logrotate config under vdsm conf dir
	The outcome of putting the conf under logrotate.d was daily run of
	logrotate that specified in logrotate.conf which runs the logrotate.d
	scripts. Moving it under vdsm conf dir will allow to use only cron job
	for the rotation without system intervention.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1113264

2014-07-24  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Never replace BOOTPROTO parameter from ifcfg
	This is a backport of a (correct) behaviour in version 4.16,
	as introduced in the commit 08c2cb4b085e70d21438a40d64cffe9625d20d22,
	with Change-Id I88e8a4afa7759d37b9bd5c68a18d38baecfe94a6, reviewed
	on http://gerrit.ovirt.org/28592

	Bug-Url: https://bugzilla.redhat.com/1122475
	Related-to: https://bugzilla.redhat.com/987813

2014-07-24  Yaniv Bronhaim  <ybronhei@redhat.com>

	Arrange pthreading requirement to 0.1.3-3 which includes locked() impl
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1115050

2014-07-24  Yeela Kaplan  <ykaplan@redhat.com>

	oop: add missing utils.forceLink
	Bug-Url: http://bugzilla.redhat.com/1121694

2014-07-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Configure modules without --force flag when isconfigure returns false
	In http://gerrit.ovirt.org/#/c/28007 we introduced enum for isconfigured
	return value. This allows to recognize when module conf should be
	overrided or not. But during that we omitted the configure phase for calls
	without --force flag. This patch adds that back.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1111935

2014-07-22  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: reducing logging noise
	Removed log entires which are not critical to understand how requests
	are processed. Fixed few spelling mistakes.

2014-07-22  Dan Kenigsberg  <danken@redhat.com>

	connectivity log: report dropped devices
	When a networking device is removed from the host it (and its most
	recently recorded state) is logged to connectivity.log

	Bug-Url: https://bugzilla.redhat.com/1111234

	connectivity log: report if Engine has been seen recently
	Vdsm monitors when it has been accessed by a client (most probably
	Engine). If Vdsm finds out that it has not been accessed for the last 30
	seconds (twice the Enginei's polling rate), "recent_client:False" is
	logged to the connectivity.log. When polling is restored,
	"recent_client:True" is reported.

	Bug-Url: https://bugzilla.redhat.com/1111234

	connectivity log: add to spec with proper ownership
	Without this hackery, connectivity.log is owned by root on ovirt-node
	which prevents Vdsm from starting.

	Bug-Url: https://bugzilla.redhat.com/1120049

2014-07-22  pkliczewski  <piotr.kliczewski@gmail.com>

	vdsm: Shuting down protocol detector fails
	When protocol detector is stopped during shutdown, an exception was
	raised. The stop code ignores EPIPE which means that the other side of
	the pipe is disconnected.

	Bug-Url: https://bugzilla.redhat.com/1115104

	vdsm: lastclient info in jsonrpc
	In xml binding there is a hack for getCapabilites which before
	sending response adds listclient and lastClientIface.

	We can not modify API.py to provide this information in a common place
	because it is meaningless for mom thread , or any other in-process API
	consumer.

	We provide similar hack for jsonrpc at the level where we have enough
	information to send back required information.

	Bug-Url: https://bugzilla.redhat.com/1099500

2014-07-22  Dan Kenigsberg  <danken@redhat.com>

	Do not update timestamp on API.getVMList
	Commit 95302a moved the call to _updateTimestamp from the XMLRPC binding
	to the API level. This has the adverse effect of having a local API
	call, that does not use networking at all, to update the client
	timestamp.

	Since MoM calls getVMList periodically, this effectively breaks the
	connectivityCheck feature of the setupNetworks and editNetwork API
	calls: even if such a call breaks network configuration, Vdsm thinks
	that it is still reachable by a client, and maintains the broken
	configuration instead of reverting it.

	Bug-Url: https://bugzilla.redhat.com/1119024

	connectivty log: log duplex state
	Add detected changes of full/half duplex to connectivity.log

	Bug-Url: https://bugzilla.redhat.com/1111234

2014-07-22  Francesco Romani  <fromani@redhat.com>

	vm: hyperv: make hw clock friendlier to windows
	This patch sets the local time as windows reportedly
	expect. According to libvirt docs:

	" Most operating systems expect the hardware clock to
	be kept in UTC, and this is the default.
	Windows, however, expects it to be in so called 'localtime'."
	http://libvirt.org/formatdomain.html#elementsTime

	This is the reccommended setting for windows and reportedly
	has stability benefits for live migrations.

	The new setting is enabled on top of the hyperv optimizations,
	and is disabled by default for backward compatibility.

	Bug-Url: https://bugzilla.redhat.com/1107835

	vm: hyperv: initial windows hyperv support
	This patch adds explicit support for hyperv optimizations.
	The optimizations are both for stability and for performance.
	Engine, or any other client, can enable them by supplying a new
	optional parameter 'hyperVenable' in the Vm parameters at
	creation time.

	As default, the new settings are disabled for backward compatibility.

	The parameters are hardcoded and not externally configurable
	because they are not supposed to be changed very often, if
	changed at all; moreover, we implement the optimal recommended
	settings.

	Bug-Url: https://bugzilla.redhat.com/1110305

2014-07-22  Liron Aravot  <laravot@redhat.com>

	core: GET requests - use Range header
	This patch replaces the use of the custom Size header with use of http
	Range header.
	(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35)
	Note that the use is similar to the use that was done with the Size header.
	The motivation is to use the standard http header (instead of supporting a
	custom header) and not to fully comply with the spec (as there are existing
	gaps).

	After this change the Range header is mandatory to issue a get request for an
	image and support ranges between zero and specified last byte position.

	Related-To: https://bugzilla.redhat.com/show_bug.cgi?id=1037500

2014-07-21  Martin Polednik  <mpoledni@redhat.com>

	vdsm: disable virtio-rng on rhel < 6.6
	Virtio-rng support was added in libvirt 1.0.3, and is missing in
	EL 6.5 (It is supported since libvirt version 0.10.2-31 only).
	The support is indicated by not sending the rngSources in hostCapabilities.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=977079

2014-07-17  Adam Litke  <alitke@redhat.com>

	virt: Restore BC for block type live snapshots
	Commit 02741ce introduced a regression in older hosts running libvirt <
	1.2.2 where libvirt rejects the type='block' and source/dev combination.
	Eric Blake suggested that this could be worked around by supplying the
	old format and new format in the domainshapshot XML document.  This
	union would continue to work as before on old hosts but would pick up
	the correct block snapshot behavior on newer versions.  Basically, we
	still express the disk type but we repeat the newPath inside both a dev
	and file attribute.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1115126

2014-07-16  Yeela Kaplan  <ykaplan@redhat.com>

	fix error handling in isdir and islink
	isdir and islink implemented using ioprocess will
	throw an exception in case of stat failure because of
	errno ENOENT, while it should return False.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1115123

2014-07-13  Nir Soffer  <nsoffer@redhat.com>

	mailbox: Remove fatal, uneeded, and racy check
	After errors in _checkForMail, the error handling code check if the
	_inLock is locked and release it. This check is pointless as
	_checkForMail use try finally block to acquire and release this lock.
	There is no chance that this lock will not be released when returning
	from _checkForMail.

	This check cause the mailbox thread to exit when using pthreading 1.3,
	which reveal the fact that the locked() method was never implemented by
	pthreading. This eliminate the fatal failure.

	Bug-Url: https://bugzilla.redhat.com/1119025

2014-07-13  Antoni S. Puimedon  <asegurap@redhat.com>

	net: skip network restoration if its physical devs are missing
	When performing network restoration on boot it is important that the
	operation configures as many networks as it can and that the
	operation does not fail so that vdsm can start.

	In case a device breaks down, it is possible that the host had other
	networks configured that would still allow remote access after
	reboot.

	This patch allows this use case by filtering out bond and net
	configuration depending on missing physical devices. It also
	introduces error level logs to make it very apparent when
	troubleshooting.

	Bug-Url: https://bugzilla.redhat.com/1113091

2014-07-10  Dan Kenigsberg  <danken@redhat.com>

	connectivty log: more readable changes
	Before this patch, the name of a new interface, as well as the name of
	an interface with a changed property, was not recorded in
	/var/log/connectivity.log. This patch add an <iface_name>: qualifier to
	make the log more informative.

	Bug-Url: https://bugzilla.redhat.com/1111234

2014-07-10  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Accept all stomp commands
	Protocol detector needs to accept all stomp commands. The connection can
	be lost at any time with the engine so we need to make sure that we
	still accept incoming connections from the engine.

	Bug-Url: https://bugzilla.redhat.com/1115044

	test: fixing cif getinstance issue
	During running jsonrpc test cif.getInstance fails due to missing logger.
	We mock getInstance method to return fake cif.

	vdsm: Removal of management_ip info in getCaps
	'management_ip' property containing ip of vdsm
	was removed from the result of getCapabilities because it
	it was never used by the engine.

	vdsm: extend image over jsonrpc
	Schema file was not consistend with API.py. All the verbs should use
	the same constructor param names as it is defined in API.py.

	Bug-Url: https://bugzilla.redhat.com/1113670
	Reviewed-On: http://gerrit.ovirt.org/#/c/29359/

2014-07-10  Antoni S. Puimedon  <asegurap@redhat.com>

	upgrade: fix seal persistence for oVirt node
	The oVirt node filesystem is not persistent by default. However, it
	has a mechanism to persist files and directories. It is necessary
	for a mechanism such as the upgrade sealing, that depends on files
	surviving reboots, to make sure that the files are persisted.

	This bug had a crucial effect on the referenced bug. On boot:
	- the upgrade to unified script would run before restore-nets
	- Since restore-nets hadn't run, nothing would be on running config
	- upgrade to unified would save that empty running config as
	  persisted
	- restore-nets would then run and restore to a non existing
	  configuration.

	Bug-Url: https://bugzilla.redhat.com/1108571

2014-07-10  pkliczewski  <piotr.kliczewski@gmail.com>

	vdsm: Missing hostId parameter on reconstructMaster verb
	Json schema was not consistent with API.py for StoragePool class and
	reconstructMaster method. There was missing hostId parameter.

	Please note that there is parameter ordering difference for coresponding
	xmlrpc poolReconstructMaster method.

	Bug-Url: https://bugzilla.redhat.com/1115466

2014-07-09  Martin Sivak  <msivak@redhat.com>

	Add soft dependency on libvirt's metadata support to stats collector
	There is an issue with libvirt on CentOS 6. The available version does
	not support part of the metadata API. This generates an error message
	every 15 seconds.

	This patch workarounds this by logging the error only once.

	Revert once libvirt supports the xml element metadata on CentOS.

	See bug: https://bugzilla.redhat.com/show_bug.cgi?id=1115039

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1114968
	(cherry picked from commit 935123db785d0a848cfeae5e9cf8cc75ad598701)

2014-07-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding requirement for cyrus-sasl-lib and modify the default path
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1114993

2014-07-08  Daniel Erez  <derez@redhat.com>

	hsm: deleteImage - lock image by imgUUID and sdUUID
	hsm -> deleteImage:
	An image can reside on two storage domains concurrently
	(e.g. during LSM flow: between syncImage and deleteImage phases).
	Hence, deleting an image should take an exclusive lock on both
	image and storage domain IDs.

	I.e. since the image can exist on two storage domains concurrently,
	we cannot take both exclusive locks with the same name.

	Note: the modified lock in this patch is the only one uses merely an
	image UUID.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1097648

2014-07-07  Dan Kenigsberg  <danken@redhat.com>

	introduce connectivity log
	Users have been requesting to have access to a simple log file that
	tracks host connectivity. This patch adds /var/log/vdsm/connectivity.log
	for that purpose. It adds a line for any change of connectivity of
	tracked interfaces.

	Note that the connectivity change is not implemented with `ip monitor`,
	since the latter seems to ignore link speed changes, which are required
	to be logged.

	Bug-Url: https://bugzilla.redhat.com/1111234

	HostStats: stop storing list of host ifids and speeds
	Current code keeps an almost-up-to-date list of host interface names as
	a data member of the HostStatsThread. This information is redundant,
	since host ifids are already available in HostSample.interfaces.

	With the list of ifids, this patch removes a list of their respective
	speed. Each speed is stored, instead with its respective
	InterfaceSample.

	HostStats: recalculate total line rate every time
	This should have been done when we started supporting host plugging in
	commit b7b29e6.

	eliminate sampling.BaseSample
	For quite some time, BaseSample is not a common base class of anything.
	It serves no meaningful abstraction, so this patch inlines into its only
	user.

2014-07-03  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: do not report devices that disappear
	There was a race in getLinks that consisted on devices disappearing
	between them being reported by netlink and information being
	retrieved by the Link class (driver info).

	This patch solves it by reporting just those links that suceed.

	Bug-Url: https://bugzilla.redhat.com/1113948

2014-07-02  Federico Simoncelli  <fsimonce@redhat.com>

	sd: fix volume path returned by linkBCImage
	In a previous commit (c072945 One shot prepare) we involuntarily
	changed the path used for virtual machine images from:

	 /rhev/data-center/<spUUID>/<sdUUID>/images/<imgUUID>/<volUUID>

	to:

	 /rhev/data-center/mnt/blockSD/<sdUUID>/images/<imgUUID>/<volUUID>

	This patch reverts to the previous path in order to minimize the
	differences between different versions of vdsm that could lead to
	live migration issues, e.g.

	 libvirtError: invalid argument: invalid path ... not assigned to
	 domain

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1059482

2014-07-02  Nir Soffer  <nsoffer@redhat.com>

	api: Make remove optional
	According to the scheama, the "remove" argument in
	StoragePool.disconnect is optional, but in API it is defined as
	positional argument and requires a value.

	This error was probbaly hidden by the fact that engine send False when
	using xmlprc. But when using jsonrpc this cause the method call to fail,
	which eventually cause host to be stuck in "Unassigned" state in the
	engine side. This fix the error on the vdsm side.

	Bug-Url: https://bugzilla.redhat.com/1115033
	Relates-to: https://bugzilla.redhat.com/1115044

	bridge: Show more info when method call fail
	When the bridge try to run a method dynamically and the number of
	arguments does not match the function definition, we get an unhelpful
	TypeError. Now a more specific and verbose error is raised:

	    Traceback (most recent call last):
	      File "/usr/lib/python2.7/site-packages/yajsonrpc/__init__.py",
	      line 480, in _serveRequest
	        res = method(**params)
	      File "/usr/share/vdsm/rpc/Bridge.py", line 254, in _dynamicMethod
	        raise InvalidCall(fn, methodArgs, e)
	    InvalidCall: Attempt to call function: <bound method
	    StoragePool.disconnect of <API.StoragePool object at 0x7f77046397d0>>
	    with arguments: (1, u'2440ff3d-275f-42e6-b204-7d055b26b174') error:
	    disconnect() takes exactly 4 arguments (3 given)

	(Traceback lines wrapped for the commit message)

	Relates-to: https://bugzilla.redhat.com/1115033
	Relates-to: https://bugzilla.redhat.com/1115044

2014-07-01  Yeela Kaplan  <ykaplan@redhat.com>

	Add missing validateQemuReadable to oop
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1114499

2014-06-30  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsm-tool: Add logging configuration.
	Added the following flags:
	-l/--logfile
	-v/vv/vvv/--v/vv/vvverbose
	-a/--append

	These flags allow specifying where to put the log, how verbose should it
	be, and should it truncate the log file before writing.

	vdsm-tool: Change upgrade mechanism
	The upgrade decorator is a mechanism within vdsm-tool to allow commands
	to only run once. It has flags to override, but being a function
	decorator, it did not have any direct access to command line arguments
	and did access via sys.argv[2:].

	The patch: http://gerrit.ovirt.org/#/c/27481/ adds flags to vdsm-tool and
	will break upgrade and its argument parsing. I'm proposing to change the
	upgrade from being a decorated function, to a function that operates on
	an upgrade object (interface documented in apply_upgrade docstring) and
	the command line arguments.

	This also allows to have a single argument parser for both
	general upgrade flags and specific per-upgrade flags (no current
	upgrades define flags but we might want this in future, available via
	extendArgParser method, see docs).

	log: Remove metadata.log
	This log exists only in the spec file and logger.conf.
	Removing because not used by VDSM.

2014-06-27  Maor Lipchuk  <mlipchuk@redhat.com>

	detach: Support force detach on Storage Domains with old pools.
	Force detach of storage domain only being supported on storage domains
	which are part of pool.  For supporting import Data Storage Domain
	feature, we should also support force detach of Storage Domain which are
	not connected to any pool.

	The force detach will clear the SP_UUID meta data of the imported
	Stroage Dimain, when a BLANK_UUID will be passed from the client
	and will enable the engine to attach it to other DC in ifferent setups.

2014-06-26  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsm-tool: Add args to remove_saslpasswd
	In a recent patch added, all commands receive arguments, starting with
	their name, this patch changes signature to avoid this:
	Traceback (most recent call last):
	   File "/usr/bin/vdsm-tool", line 209, in main
	     return tool_command[cmd]["command"](*args)

2014-06-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-upgrade: adds wrapper to ovirt-node-upgrade
	Currently ovirt-node provides ovirt-node-upgrade tool which
	should replace vdsm-upgrade. This patch re-write vdsm-upgrade
	as wrapper of ovirt-node-upgrade for legacy systems.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1079087

2014-06-24  Dan Kenigsberg  <danken@redhat.com>

	report clusterLevel 3.5

2014-06-24  Yeela Kaplan  <ykaplan@redhat.com>

	Final separation of IOProcess and RFH
	From now on vdsm will either fully use
	remoteFileHandler implementation or
	IOProcess implementation for out of process(oop).

	Additional oop functionality
	The following functionality for ioprocess is added in this
	patch:
	directTouch
	truncatefile
	padToBlockSize

	ioprocess implementation
	change-Id: I132129315c73e880d998a13f84e822a9d4fec2a6
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1083771

	oop: Add an option to configure oop implementation
	The final goal is to replace remoteFileHandler implementation
	for outOfProcess with ioprocess.
	We will do this in a series of steps
	The first step is to add an option to manually configure
	which one of the two implementations is to be used:
	rfh or ioproc.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1083771

2014-06-23  pkliczewski  <piotr.kliczewski@gmail.com>

	utils: Missing m2c dependency
	When vdsm-python used as standalone there is missing dependency on
	m2crypto which is required for using ssl related code.

	Bug-Url: https://bugzilla.redhat.com/1111601

	tests: extending timeout for jsonrpc tests
	Tripling timeout to lessen the probability that jsonrpc tests do not
	fail on overloaded machines.

2014-06-23  Yoav Kleinberger  <ykleinbe@redhat.com>

	clarify that scsiKey parameter is not passed on
	In this patch I add documentation to make plain that the scsiKey parameter is
	a legacy from older code. In the code itself, I changed the parameter
	name so that this is clear to the next developer that comes along, and
	hopefully will save him/her a wild goose chase.

2014-06-22  Francesco Romani  <fromani@redhat.com>

	virt: stats: get rid of _getStatsInternal
	it was used on just one place anyway.

2014-06-20  pkliczewski  <piotr.kliczewski@gmail.com>

	utils: fixing optional parameters
	Adding names for optional parameters so we do not need to
	depend on ordering.

2014-06-20  Nir Soffer  <nsoffer@redhat.com>

	misc: Use with statement instead of try finally
	Using with make the code much more readable and ensure that you cannot
	forget to release a lock, or place the try finally incorrectly.

	We probably can fix this in other places, but since this is very
	delicate code, it is best to do this is tiny steps.

2014-06-20  Adam Litke  <alitke@redhat.com>

	Live Merge: Fix backing chain xml parsing
	The backingStore element is optional inside of a disk XML block.  It
	will be missing for disks with no backing files (ie. new VM based on
	the blank template).  Handle this case by breaking out of the loop
	rather than returning an error.

2014-06-20  Francesco Romani  <fromani@redhat.com>

	tests: add an helper schema compliancy check class
	This patch extracts the schema compliancy methods
	in a self-contained, reusable class.

	tests: split API schema conformancy tests
	this patch splits the VM API schema tests from the main unit tests body
	with no functional changes.

2014-06-20  Martin Sivak  <msivak@redhat.com>

	Enable CPU monitoring functionality in new mom

	Use str type for vcpuQuota to prevent xml-rpc errors

2014-06-20  Antoni S. Puimedon  <asegurap@redhat.com>

	ifcfg: use oVirt node's to remove files
	Doing this, when flushing the old network configuration, oVirt node
	will take care to unmount and unpersist the files, as well as
	removing them.

	The bug was that ifcfg.flush runs at boot and tries to remove all the
	ifcfg files, but those that are persisted are untouchable due to
	the bindmount.

	Bug-Url: https://bugzilla.redhat.com/1104035

	utils: make isOvirtNode always return a boolean
	Up until now, if the first condition that isOvirtNode was False, the
	function would return a list (generated by glob). This patch fixes
	that as all the consumers use this function for its truthiness.

2014-06-20  Adam Litke  <alitke@redhat.com>

	Fix exception in _getUserCpuTuneInfo and _getCpuCount
	If the cpu tune metadata is not present in a VM's domain xml then
	_getUserCpuTuneInfo will fail with the following exception:

	Traceback (most recent call last):
	  File "/usr/share/vdsm/virt/vm.py", line 2846, in _getRunningVmStats
	    decStats = self._vmStats.get()
	  File "/usr/share/vdsm/virt/vm.py", line 571, in get
	    self._getUserCpuTuneInfo(stats)
	  File "/usr/share/vdsm/virt/vm.py", line 421, in _getUserCpuTuneInfo
	    if eInfo['vcpuLimit']:
	KeyError: 'vcpuLimit'

	This aborts the rest of VM stats collection and causes lots of problems
	for other flows which depend on VM stats (such as Live Merge).

	The same applies to _getCpuCount where the value can be empty in case
	libvirt has issuess accessing the cgroup controllers (currently this
	happens on Fedora 20).

	Fixed by fist checking the availability of the key.

2014-06-20  Antoni S. Puimedon  <asegurap@redhat.com>

	ifcfg: perform blocking dhcp when in rollback
	When rolling back configuration, be it on boot or due to loss of
	connectivity, it is best to know if something goes wrong as early as
	possible. One important part of this is knowing if ifup (and
	specially its dhclient component) succeeded.

	When booting up, parallel dhcp initializations are troublesome and
	can sometimes fail, it is better to perform network restoration
	serially as with ifcfg persistence (initscripts serializes its device
	ifups).

2014-06-19  Francesco Romani  <fromani@redhat.com>

	virt: sampling: make sure balloon values are str
	This patch avoids XML-RPC integer overflows by ensuring
	all the balloon stats are string values.

	vm: add known case for graceful destroy to fail
	In commit 09c2f40ebc318bbd188696fd7d02d2dc73d03256
	we changed the releaseVm flow to be more strict and do not swallow libvirt
	exceptions when domain destruction fails. In these cases the destroy()
	API call will now fail.

	Unfortunately, one particular case escaped verification, and broke.
	When a migration succesfully ends, libvirt notifies a 'Stopped' event,
	with detail VIR_DOMAIN_EVENT_STOPPED_MIGRATED.
	In response to this, VDSM correctly puts the VM as Down, but does not
	trigger the internal onQemuDeath callback, which will invalidate the
	domain handle (Vm._dom field).

	The sequence of events is further demonstrated by this excerpt
	(Logs trimmed for brevity):

	vm.Vm::(_onLibvirtLifecycleEvent)
	vmId=`56d1c657-dd76-4609-a207-c050699be5be`::event Stopped detail 3
	opaque None
	vm.Vm::(cancel) vmId=`56d1c657-dd76-4609-a207-c050699be5be`::canceling
	migration downtime thread
	vm.Vm::(stop) vmId=`56d1c657-dd76-4609-a207-c050699be5be`::stopping
	migration monitor thread
	vm.Vm::(run) vmId=`56d1c657-dd76-4609-a207-c050699be5be`::migration
	downtime thread exiting
	root::(wrapper) Unknown libvirterror: ecode: 42 edom: 10 level: 2
	message: Domain not found: no domain with matching uuid
	'56d1c657-dd76-4609-a207-c050699be5be'
	root::(wrapper) Unknown libvirterror: ecode: 42 edom: 10 level: 2
	message: Domain not found: no domain with matching uuid
	'56d1c657-dd76-4609-a207-c050699be5be'
	vm.Vm::(setDownStatus)
	vmId=`56d1c657-dd76-4609-a207-c050699be5be`::Changed state to Down:
	Migration succeeded (code=4)

	Later, when Engine sends a Destroy command as part of the normal flow,
	in releaseVm we will find a supposedly valid _dom handle (being not
	None), and then the domain destruction will be triggred.
	But being actually the handle stale, the call and will fail for
	missing domain; then in turn the whole destroy() API call will fail.

	It is worth to be noted that 09c2f40ebc318bbd188696fd7d02d2dc73d03256
	only made evident that in this case VDSM was out of sync with libvirt.

	This patch address this problem by adding a known benign case
	on which the gracful destruction can fail.

2014-06-19  Adam Litke  <alitke@redhat.com>

	LiveMerge: fix delete while iterating
	A coding mistake slipped into the onBlockJobEvent handler.  We are
	iterating a dictionary while deleting items.  We need to iterate over
	the keys in this case, not the k,v pairs.

2014-06-18  Yaniv Bronhaim  <ybronhei@redhat.com>

	getServices returns wrong order for depended services for libvirt module
	Configure verb runs over getServices returned list and stop those
	services, configure vdsm, and start them in reverse order. In this patch
	I fix current order which starts vdsm before supervdsmd service

2014-06-18  Dan Kenigsberg  <danken@redhat.com>

	vdscli: drop Windows support
	In prehistorical ages, Engine used to run on Windows, and vdsClient
	could be installed there. This is no longer the case, and there is no
	reason to carry this baggage any longer.

2014-06-18  Martin Sivak  <msivak@redhat.com>

	Remove CPU monitoring from MOM config till MOM patch is ready

2014-06-18  Adam Litke  <alitke@redhat.com>

	fileVolume: Fix getChildren for NFS paths
	Since NFS-based volume paths contain ':' characters, a simple split()
	when parsing grep output will be problematic.  Better use rsplit(':', 1)
	so we don't chop up the path unintentionally.

	example:

	/rhev/data-center/mnt/192.168.2.1:_home_storage_data/aa595433-e281-4886-ab75-6863552a19b9/images/04651881-b154-49f0-a6e0-ce15c66891aa/e42398c8-2073-4a62-b8c2-fd0aac1325bf.meta:PUUID=0b491657-066a-4d21-9464-b97b693325b2

	should split to:
	[0] /rhev/data-center/mnt/192.168.2.1:_home_storage_data/aa595433-e281-4886-ab75-6863552a19b9/images/04651881-b154-49f0-a6e0-ce15c66891aa/e42398c8-2073-4a62-b8c2-fd0aac1325bf.meta
	[1] PUUID=0b491657-066a-4d21-9464-b97b693325b2

	but right now we get:
	[0] /rhev/data-center/mnt/192.168.2.1
	[1] _home_storage_data/aa595433-e281-4886-ab75-6863552a19b9/images/04651881-b154-49f0-a6e0-ce15c66891aa/e42398c8-2073-4a62-b8c2-fd0aac1325bf.meta
	[2] PUUID=0b491657-066a-4d21-9464-b97b693325b2

2014-06-18  Dan Kenigsberg  <danken@redhat.com>

	libvirtconnection: refactor: open a new connection in special function
	This patch splits opening of a new connection to qemu:///system into a
	new function, distinct of further decorations. get() is a cumbersome
	function that could use some trimming.

2014-06-18  Nir Soffer  <nsoffer@redhat.com>

	correctness: Use new-style class when using @property
	Commit 802e88c60c added a @property to few historic old-style classes.
	This works when reading the property value, but does not create a
	read-only property as it should. To have a read-only property, the class
	must be a new-style class (inherit from object). This patch converts
	clientIf, Disaptcher and HSM to new-style classes.

	For more info see:
	https://docs.python.org/2.6/library/functions.html#property

2014-06-18  Francesco Romani  <fromani@redhat.com>

	virt: tests: add missing 'display' parameter
	This patch brings the recovery functional tests
	up-to-date with the last Graphics Device changes
	by re-adding the still-mandatory 'display' parameter.

2014-06-18  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Report bonding options as a dictionary of strings
	The values of bonding options are read from the kernel
	as one or two strings. If there is only one string,
	the value is actually numeric. If there are two,
	the value is an enumeration, with a symbolic name in
	the first string, a numeric code in the second string.

	To simplify the API from the current state (reporting
	the options as "raw" arrays of one or two strings),
	the only value reported now is the number in both cases,
	left in its textual representation.

	The key was changed from 'options' to 'opts'
	to mirror 'opts' in _bridgeinfo.

	A bond info dictionary is thus changed to (abriged):
	'bond4': {
	    'cfg': {'BONDING_OPTS': 'miimon=150 mode=3'},
	    'opts': {'miimon': '150', 'mode': '3'}
	}

	Bug-Url: https://bugzilla.redhat.com/987813

2014-06-18  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Update .gitignore location of vdsm-api.html changed

2014-06-17  Francesco Romani  <fromani@redhat.com>

	tests: fix FakeGuestAgent field
	fix guestIPs, which is supposed to be
	"A space separated string of assigned IPv4 addresses"
	and not a list.

	vm: abort and report error if domain destroy fails
	The call of vm._dom.destroy() is not expected to fail.
	However, if the failure is not impossible, and in
	that case VDSM should detect that and report the
	error instead of blindly go ahead.

	This patch let releaseVm() bail out with an error
	as soon as possible if destroy() fails.

	Due to entanglement of the error floes, the more correct
	way to handle this error conditions is also the nicer,
	by splitting the destroy attempts into submethods.

	vm: narrow down try/except block in releaseVm
	In releaseVm, we have a too wide try/except block;
	only self._dom.destroy() can actually raise libvirtError,
	so this patch narrows down the block size.

	vm: improve the logging when destroying domains
	The logging of the failures of the domain destruction
	in releaseVm was messy and confusing.
	This patch improve the logging and make sure that errors
	aren't silently ignored.

2014-06-17  Nir Soffer  <nsoffer@redhat.com>

	misc: Document and test SamplingMethod
	SamplingMethod implementation was confusing, undocumented and untested.
	This patch document why it must work as it its implemented, and add
	tests verifying its behavior.

2014-06-17  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Make bonding functions private and move them before _getNetInfo
	This is a cleanup after merging just two bondopts patches.
	One of the unmerged patches, whose purpose was to reset
	a bond’s options to default values, needed the functions
	to be public.

2014-06-17  pkliczewski  <piotr.kliczewski@gmail.com>

	vdsm: jsonrpc reboot issue
	When rebooting a host using power management UI there was an issue that
	proxy host failed to start it. The issue was that jsonrpc code expects
	power attribute as it is specified in the schema but it was missing when
	running other commands than status. 

	Now for commands on and off we provide power attribue as 'unknown' which
	fixes the issue.

2014-06-17  Federico Simoncelli  <fsimonce@redhat.com>

	sd: make preallocate optional in volume validation
	In the current effort to move to the new storage API the preallocate
	option may be omitted and therefore should not be validated.

	Relates-To: http://bugzilla.redhat.com/show_bug.cgi?id=1097843

	sd: unify validateCreateVolumeParams
	One validateCreateVolumeParams is enough, there's no real need to have
	it both in the domain and volume object.

2014-06-17  Nir Soffer  <nsoffer@redhat.com>

	profile: Allow disabling threads when using the decorator
	yappi supports profiling all threads (default) or only the thread where
	the profiler was started from. This patch add this option to the profile
	decorator. This is is probably not going to be used very much, but
	useful when you need it.

	New threading tests verify that yappi indeed work correctly with other
	threads, even those that started before yappi was started.

	profile: Support yappi clock types
	yappi supports both "cpu" clock and "wall" clcok. The default "cpu"
	clock is handy when you want to see when time is spent running code. The
	wall clock is handy when you want to understand when time is spent
	running or sleeping.

	See test_cpu_clock and test_wall_clock if the difference between the
	clock is not clear.

	profile: Support yappi builtins option
	yappi support profiling also builtin python functions. This patch adds a
	new configuration value to enable profiling builtins in an application
	wide profile, and a new builtins kwarg to the profile decorator.

	This option can be handy when trying to understand why code is
	expensive.

	profile: Test profile decorator format
	The option to set profile format using a profile decorator was not
	tested. Lets test it before we add new options to this decorator.

	tests: Add assertNotRaises assertion
	Typically we like failing assertions to cause a test failure, and any
	other error to cause a test error. However, in some case we like any
	error to be considered as test failure.  For example, if I'm testing
	code writing a file, and the test is verifying the code by parsing the
	file, we can have many possible errors that mean test failure - missing
	file, parsing error, and sometimes just any error. In this case, we may
	get a test error instead of a failure, and waste time suspecting error
	free test code.

	This patch add a new assertNotRaises assertion, making it easy to get a
	test failure in such cases.

	This assertion can be used inline:

	    self.assertNotRaises(func, "foo", bar=2)

	Or as a context manager:

	    with self.assertNotRaises():
	        that_func('foo')
	        other_func(bar=2)

	The test will fail if any error was raised.

2014-06-16  Kobi Ianko  <kianku@redhat.com>

	Adding "updateVmPolicy" api
	Adding an API method "updateVmPolicy".
	The method will be called from the engine
	when a VM SLA parameter will change, for now
	it will support the change of vcpuLimit.

	Adding utility methods and conf for CPU limit MOM integration
	Adding a MOM policy to monitor CPU tuning parameter.
	Adding methods to vm.py to gather cpu tune information from the vm

	Adding API methods for CPU limit MOM integration
	Adding API methods to vm.py to integrate with MOM's collectors and controllers
	Two new functions were added to the vdsm api:
	VM.setCpuTuneQuota
	This function sets a new quota value to the VM using the libvirt api.
	Input: a Int value representing the quota as explained
	       at "http://libvirt.org/formatdomain.html#elementsCPUTuning".
	VM.setCpuTunePeriod
	This function sets a new period value to the VM using libvirt api.
	Input: a Int value representing the period as explained
	       at "http://libvirt.org/formatdomain.html#elementsCPUTuning".

2014-06-16  Nir Soffer  <nsoffer@redhat.com>

	pthreading: Monkeypatch threading module first
	When using Python 2 we must monkey patch threading module before any
	other module is imported. Next version of pthreading will raise if
	monkey_patch() is called too late.

2014-06-16  Francesco Romani  <fromani@redhat.com>

	vm: fix guest agent stats field
	In commit 068fc28d I mistakenly removed an explicit int() conversion
	because I overlooked the code, and thought the result was going to
	be an int() anyway.

	I was wrong, and the result is a float, which breaks the schema which
	dictates the affected field to be an uint.

	This patch restores the explicit conversion to make the code compliant
	with the schema again.

2014-06-16  Saggi Mizrahi  <smizrahi@redhat.com>

	protocol_detection: reuse address so that VDSM doesn't have to wait after a crash

2014-06-16  Xavi Francisco  <xfrancis@redhat.com>

	persistentDict: Do not warn about missing checksum when metadata is empty
	When parsing the storage metadata, when none is present, accept the metadata
	as valid and log that there's no metadata. In this case  do not log a warning
	informing no checksum is found as there is no metadata.

	Bug-Url: https://bugzilla.redhat.com/1073989

2014-06-16  Nir Soffer  <nsoffer@redhat.com>

	utils: Correct and faster list2cmdline
	subprocess.list2cmdline dominates the profile on idle vdsm with many storage
	domains, using more than 10% of cpu time. We use this function to format
	commands in the log, so it is possible to copy the command to the shell and run
	for debugging.

	Turns out that this is undocumented function used on Windows to convert
	argument list to string compatible with the MS C runtime. Using repr(), it
	works on Linux for simple commands, but does not get quoting right with complex
	commands.

	This patch replaces the function with a correct, simple and efficient
	implementation compatible with Linux shells. The new function should not be
	used with repr(), which render its output useless.

	I tested this patch on Fedora 19 machine connected to 30 storage domains,
	running 10 minutes profiling session as spm.  Without this patch
	subprocess.list2cmdline() is the most expensive function responsible for 12.5%
	of cpu time:

	    Thu Jun  5 23:15:18 2014    vdsmd.prof

	             2139104 function calls (2202966 primitive calls) in 16.652 seconds

	       Ordered by: internal time
	       List reduced from 1785 to 10 due to restriction <10>

	       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	         2151    1.816    0.001    2.140    0.001 subprocess.py:579(list2cmdline)
	       97/128    1.407    0.015   11.004    0.086 threading.py:753(Thread.run)
	        10221    0.494    0.000    1.028    0.000 __init__.py:242(LogRecord.__init__)
	         5397    0.478    0.000    1.575    0.000 misc.py:125(findCaller)
	         8508    0.422    0.000    0.641    0.000 spark.py:211(Parser.buildState)
	        50336    0.404    0.000    0.463    0.000 genericpath.py:85(_splitext)
	  32657/32664    0.273    0.000    0.815    0.000 misc.py:110(_shouldLogSkip)
	        50095    0.271    0.000    0.271    0.000 pthread.py:95(Lock.lock)
	         2147    0.266    0.000    0.517    0.000 subprocess.py:1406(CPopen._communicate_with_poll)
	  50331/50336    0.238    0.000    0.708    0.000 posixpath.py:104(splitext)

	With this patch, utils._list2cmdline() uses only fraction of the cpu time:

	         2158    0.085    0.000    0.118    0.000 utils.py:652(_list2cmdline)

	Note: the profile was performed with older version of this patch, the
	current version is simpler more efficient.

2014-06-16  darshan n  <dnarayan@redhat.com>

	gluster: Get size information of a gluster volume.
	New vdsm gluster verb to get free, used and total size of
	gluster volume. This verb uses libgfapi to get the statistics
	related to volume. This patch makes use of ctypes to utilize
	the libgfapi. This patch also enhances glusterVolumeStatus
	verb to return volume size info as well when status option
	is set to detail.

	verb: glusterVolumeStatsInfoGet

	Output format:
	{"sizeTotal": LONG as STR, "sizeFree": LONG as STR, "sizeUsed": LONG as STR}

2014-06-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix FakeClientIF interface
	clientIF was missing the "ready" property, which caused random failures
	on jenkinks:

	    AttributeError: FakeClientIf instance has no attribute 'ready'

	xmlrpc: Disable unwanted BaseHTTPServer logging
	BaseHTTPServer log incoming requests to stderr, which is redirected to
	/dev/null in production. During the tests, stderr is used to display
	test results. In both cases, the default http logging is useless, and we
	have our own logging.

2014-06-15  Nir Soffer  <nsoffer@redhat.com>

	sp: Nest try-finally for temporary secure change
	There were two instances where the same try-finally block was used for
	both acquiring a lock and setting the pool as secure for a block of
	code:

	     acquire lock
	     try:
	         set secure
	         code that needs both lock and secure state
	     finally:
	         set unsecure
	         release lock

	This type of usage is incorrect. try-finally block should be used for
	one change to ensure that the change is finally reverted, and to make
	the intention of the code clear.

	This patch use nested try-finally blocks, one for the lock, and one for
	the secure state:

	     acquire lock
	     try:
	         set secure
	         try:
	             code that needs both lock and secure state
	         finally:
	             set unsecure
	     finally:
	         release lock

	Because of the extra nesting, comments inside the nested code were
	reformatted and missing punctuation was added.

	I considered replacing the nested try-finally with a secured context
	manager, but since the current code uses try-except-finally, using a
	context manager would create an even deeper nesting or extracting some
	new private methods. To keep minimal changes, I avoid this direction.

	It seems that the secure state block can become smaller - some method
	inside the secured block are @unsecured. I kept the secure block
	semantics are they are now, and will check minimizing the secured block
	in a later patch.

2014-06-15  Antoni S. Puimedon  <asegurap@redhat.com>

	net_func_tests: add test for reconfiguring broken bridged network
	This test checks that bridged networks with missing ports are
	successfully redefined on command. It is related to the syncing
	issues described in https://bugzilla.redhat.com/861701

2014-06-13  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Move _*info back together

2014-06-13  Nir Soffer  <nsoffer@redhat.com>

	sd: Fix wrong usage of properties on old style class
	StorageDomain is an old style class but usess properties, which are
	supported *only* for new style classes. This is a nasty corner in Python
	where you can define @property on old style classes and they seems to
	work in some of the cases, and break in others. The current code happen
	to work because we never try to assign to the read only properties.

	The patch change StorageDomain to be a new style class, and fix the
	tests assuming an old style class.

	For more info see:
	https://docs.python.org/2.6/library/functions.html#property

2014-06-13  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Report current system values for bonding options
	Instead of reading bonding options from ifcfg files,
	use /sys/class/net/BONDNAME/bonding to fetch "live" values.
	Return only those that differ from defaults, introduced in b3f6e0.

	The options are presented in two ways: as a "legacy" string of
	opt=value pairs, separated by spaces, known from ifcfg files,
	and as a dictionary with option names as keys and with arrays
	of strings as values. The arrays can contain a single string
	if an option is numerical or two strings if an option is symbolic
	(name first, code second).

	A bond info dictionary can look like this (abriged):
	'bond4': {
	    'cfg': {'BONDING_OPTS': 'miimon=150 mode=3'},
	    'options': {'miimon': ['150'], 'mode': ['broadcast', '3']}
	}

	Functional network tests now check that bonding options were
	applied.

	Bug-Url: https://bugzilla.redhat.com/987813

2014-06-13  Dan Kenigsberg  <danken@redhat.com>

	Report legacy bond devices instead of actually creating them
	Engine <= 3.2 expects to see bonding devices bond0-bond4 predefined on
	each host. Therefore, Vdsm creates them on boot, and never deletes them.
	This add cumbersome logic, which has lead to bugs.

	Instead, this patch simply reports the existence of the 5 expected
	bonds, instead of actually creating them.

	Note that bond0-bond4 were generated only on el6. Therefore this patch
	limits the reports to that operating system.

	Bug-Url: https://bugzilla.redhat.com/1064208

2014-06-13  bruce  <xiao-lei.shi@hp.com>

	vm: Collect vm numa node runtime pin information
	Get the information that vm numa node runtime pin on which host numa
	nodes.

	Bug-Url: https://bugzilla.redhat.com/1100202

2014-06-12  Dan Kenigsberg  <danken@redhat.com>

	vdscli: avoid ssl-specific localhost heuristic
	Unlike it used to, Vdsm no longer checks its client's identity versus
	the content of the client certificate.

	Therefore, there is no need for the too-clever mechanism of guessing the
	local host adderess from the ssl certificate. That mechanism is known to
	have caused pains when the subject name of the certificate became
	non-resolvable for whatever reason (Cf. http://gerrit.ovirt.org/28107 ).

2014-06-12  Mooli Tayer  <mtayer@redhat.com>

	configurator.py: extract reconfiguration of x is done to verb level.

	Configfile.py: improve indentation of multiline if statments.

2014-06-12  Enrico Tagliavini  <enrico.tagliavini@gmail.com>

	mount: Check if mount specification is a symlink
	If a Posix compatible file system is used as a backend for the VM images
	the mount device can be a symlink. The common case is LVM. Both devices
	in /dev/mapper/ and /dev/$VG/ are symlinks do /dev/dm-$N.

	Currently in CentOS 6.5 when using GFS2 /proc/mounts always point to the real
	device, even if a symlink has been used as argument of the mount command.
	Example in my current system:

	    /dev/dm-13 /rhev/data-center/mnt/_dev_mapper_vg__is5000-lv__virtstorage
	    gfs2 rw,seclabel,noatime,nodiratime,hostdata=jid=0,nobarrier 0 0

	In this case the check performed by the getRecord() method fails since
	the record and the device in /proc/mounts are different. The former is
	the symlink, the latter /dev/dm-$N.

	This change checks if the record is an existing symlinks, and resolves
	it before comparing the record with /proc/mounts.

	On the other hand if the mount command doesn't resolve the symlink, like
	when using ext4 file systems, the comparison with the original given
	spec must still be performed. If either one matches the storage is
	mounted.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=888711

2014-06-12  Mooli Tayer  <mtayer@redhat.com>

	replace configure_libvirt.py with python code.
	The port is to behave as similar as possible to the old
	sh code. python should allow easier testing (tests added)
	and better overall readability.

	A testing matrix [1] documents my tests of this feature.

	The new code uses temp files and replace instead of line by line
	editing for durability.

	removeConf verb has been added and used in the spec file.

	known behavior changes.
	0.)order of configuration values added to config files has
	changed. This does not seem to cause any issues.

	1.)isConfigured() now also tests libvirt's
	logrotate file for vdsm configuration section.

	2.)configuration version is now added to /etc/logrotate.d/libvirt
	like all the other files. (used to be '## beginning of ...' with
	out version). this will allow versioning of this file.
	No errors in removing old configuration.

	3.)removeConf (now a verb and not done in vdsm.spec.in)
	now calls ovirt_store_config when running on ovirt node.
	(I guess before after removing vdsm rpms and restart
	the vdsm configuration would re appear)

	4.) log_filters inside libvirtd.conf used to be:
	"3:virobject 3:virfile 2:virnetlink      3:cgroup..."
	That was due to the following sh line:
	set_if_default "${lconf}" log_filters "\"3:virobject 3:virfile 2:virnetlink \
	    3:cgroup 3:event 3:json 1:libvirt 1:util 1:qemu\""
	now it is
	"3:virobject 3:virfile 2:virnetlink 3:cgroup..."
	both work fine.
	[1] http://www.ovirt.org/Configure_libvirt_testing_matrix

	changes in configfile.py.
	1.) remove suffix space from '# VDSM backup '. This way we maintain backward comp
	with libvirt_configure.sh

	2.) on ovirt node wrap calls to rename with ovirt node unpersist and persist.
	these calls use the new node namespace being ovirt.node.utils.fs.Config.

2014-06-12  Adam Litke  <alitke@redhat.com>

	LiveMerge: Extend internal volumes during live merge
	During a live merge operation data is written to the target of the
	commit (the base volume).  This means that for block-based images, we
	must monitor the base volume and the leaf volume for extension.

	Since libvirt is not providing watermark information for internal
	volumes yet, return an empty set for now until we get the API we need.

	The libvirt bug for the missing API is:
	https://bugzilla.redhat.com/show_bug.cgi?id=1041569

	LiveMerge: Sync volume chain information after live merge
	When a block job event comes in from libvirt or when vdsm notices that a
	block job is no longer running on a disk, we need to check the volume
	chain according to qemu and sync our vm state with that information.

	The items that require synchronization are:
	 - VM.conf['devices'] and VM._devices:
	   * Update volumeID if the active layer was merged
	   * Update volumeChain to remove merged volumes
	 - Image chain
	   * If the merged volume(s) had children, the child's parent UUID must
	     be set to point to its new parent.  For file-based domains, this
	     update can be completed immediately.  Block-based domains maintain
	     the parent UUID in two places: the storage domain's metadata LV and
	     as a LV tag on the volume LV itself.  As HSM we can update the
	     metadata LV but the tags cannot be changed except by SPM.  So,
	     split setParent into two parts so we can update just the metadata
	     LV here.  We will let deleteVolumes clean up the LV tag since it is
	     an SPM operation.

2014-06-12  Alon Bar-Lev  <alonbl@redhat.com>

	utils: add isOvirtNode function.

2014-06-12  Mooli Tayer  <mtayer@redhat.com>

	configurator.py: sort imports alphabetically

2014-06-12  Adam Litke  <alitke@redhat.com>

	build: Remove unused import json
	One of my patches added an unused import for json in vm.py.  Remove it
	and fix the build.  My apologies.

	LiveMerge: Add merge verb and related machinery
	This patch enables the submission of an actual live merge operation to
	the underlying VM.  Once submitted, we poke the stats thread to make
	sure block job information is updated and persist the given merge
	parameters in the VM Disk conf.  This ensures that in case vdsm restarts
	during a block job we will not forget to handle it the next time we are
	started.

	Limitations:
	 - Does not yet work when the active layer is involved due to [1]

	[1] https://bugzilla.redhat.com/show_bug.cgi?id=1062142

	LiveMerge: Add block job info to VM stats
	Live merge operations are transient jobs.  This means that once started,
	qemu and libvirt only know about them as long as they are running.  As
	soon as they finish an event may be emitted but then all traces of the
	block job are gone.  In order to work with transient jobs of this nature
	the manager (engine) needs to know two pieces of information: 1) Is my
	job still running, and 2) once it has stopped, did it succeed or fail.
	This patch provides a reliable answer to the first question.  When a new
	block job is created, the engine will supply a UUID to represent the job
	and this UUID will be persisted by vdsm along with other identifying
	information.  When collecting VM stats, only VM disks with an associated
	job ID will be checked for block jobs.  All active block jobs will be
	returned in the stats.  When a block job expires, the job ID is removed
	from the VM conf and it will no longer be reported.  Due to caching of
	stats, care must be taken to properly refresh the job information in a
	thread-safe way when a new job is created.  Vdsm must guarantee that any
	jobs created will always be represented in calls to getVmStats that
	happen after a call to the future merge verb.

	virt: Refactor drive extension
	A future live merge patch will require the ability to send extend
	messages for internal drive volumes.  To make this easier, refactor
	the code a bit:
	 - Introduce a function that selects candidate volumes
	 - Introduce a function that chooses whether a volume should be extended
	 - getNextVolumeSize should take the current size as a parameter rather
	   than assuming it is self.apparentsize
	 - Pass volumeID explicitly to the extension functions since it may
	   differ from drive.volumeID
	 - When validating a resize, only update the drive if the leaf volume
	   was extended

2014-06-11  Martin Polednik  <mpoledni@redhat.com>

	vdsmapi-schema: fix typo in tpm device
	Small typo in documentation, VmTpmDeviceType is in no way related
	to smartcard.

2014-06-11  Kobi Ianko  <kianku@redhat.com>

	Refactoring reportError func
	Extracting the error function from inner function to class level function.

2014-06-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove usage print on vdsm-tool.UsageError and use it on ExtraArgsError
	This print add usage explanation of vdsm-tool command on error. There is
	no need for such print Unless UsageError refers actually to the verb
	usage, but currently we use it for any usage error.
	On ExtraArgsError catch we add this usage print

2014-06-11  Ondřej Svoboda  <osvoboda@redhat.com>

	netlink: Do not truncate InfiniBand HW addresses anymore

2014-06-11  Adam Litke  <alitke@redhat.com>

	LiveMerge: Add support for deleting merged volumes
	Once a live merge has completed the merged volumes that have previously
	been unlinked from the chain need to be deleted.  We can use the
	existing deleteVolume verb with one minor change for block volumes.
	When deleting a live-merged volume, its former child may have a stale LV
	tag pointing back to this volume.  This occurs because an HSM host
	resolves the block job completion event and can only update the parent
	UUID in the storage domain's metadata LV (not in the LV Tags).  In this
	special case, we sync the LV tag of the child to match the metadata LV
	prior to validating the delete operation.

	Also, don't validate deletes in hsm.py since we already perform
	validation in the volume-specific implementations.

	virt: Lookup conf and device by path
	Live merge requires the ability to lookup a VmDevice and its associated
	conf entry given a disk path.  Provide these helper methods.

2014-06-11  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: json over stomp available on the same socket
	Changes required to have both supported protocols detected on the same
	socket opened by vdsm.

	jsonrpc: xmlrpc protocol detection
	Protocol detection added which only recognize xmlrpc and there is still
	additional socket to handle jsonrpc related communication.

2014-06-11  Antoni S. Puimedon  <asegurap@redhat.com>

	iproute2: raise ConfigNetworkError when dhcp fails and blockingdhcp is set
	It is important that a ConfigNetworkError exception is raised when
	doing the addressing synchronously, otherwise it fails silently.

2014-06-11  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Hacked InfiniBand speed.
	Currently, the kernel errors out with EINVAL when
	reading the speed of ib* devices. Report a speed
	of 10000 for them.

	Handle dummy devices' IOError gracefully.

	Bug-Url: https://bugzilla.redhat.com/1103469

2014-06-11  Nir Soffer  <nsoffer@redhat.com>

	logging: Use 'Storage' log handler for logging storage reports
	This patch enables 23 storage loggers by making them child loggers of the
	Storage logger. Before that change all those logs were used the root
	handler.

2014-06-11  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: ssl related code moved to single module
	New sslutils module was created to keep all ssl related code.
	Unit tests will be added later.

	jsonrpc: Json processing issues fixed
	Number of issues fixed:
	- Default value was missing in SP.disconnect
	- Host.setupNetworks and Image.download was returning True where as it
	should return information according to schema
	- Bridge.py did not processed order of optional parameters properly.
	For fencing flow second optional parameter is ued which caused the
	issue. Fix provide default value for any optional parameters in between.

	jsonrpc: Moving xml rpc related modules in to rpc package
	In order to keep all the modules in single place we move xml rpc module
	into the package where old vdsm-api code already resides.

	jsonrpc: vsam-api removal
	vdsm-api was removed and all rpc related code was moved to rpc package
	within vdsm. The code is packaged as part of vdsm-jsonrpc rpm.

	Removed package was design to hold jsonrpc schema and its parsing code.
	Jsonrpc related code was packaged already in jsonrpc. Together with
	jsonrpc being required we do not need vdsm-api anymore.

	jsonrpc: Removal of not needed reactors
	Json over tcp reactor is not needed at all and proton reactor won't be
	released in 3.5.

2014-06-11  Adam Litke  <alitke@redhat.com>

	virt: Filter internal data for getVMList API
	Filter out all keys that begin with '_' when returning detailed VM
	information via the getVMList API.  This is needed by live merge which
	will persist block job information in a '_blockJobs' key.  We don't want
	that data to be made public

	virt: Specify snapshot type
	Libvirt 1.2.2 introduced the 'type' attribute to the source element in a
	domainsnapshot XML document.  This attribute allows you to specify
	'block' as the type (which we should be doing on block domains).
	Leaving this out creates a snapshot of type 'file' which has some
	troubling side effects.  For one, it changes the disk type from block to
	file.  This interferes with libvirt's write watermark detection causing
	the wrong value to be returned.  In turn, vdsm will extend the drive
	until it consumes the entire block storage domain.  See bug 1091094 [1].

	[1] https://bugzilla.redhat.com/show_bug.cgi?id=1091094

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1091094

2014-06-10  Dan Kenigsberg  <danken@redhat.com>

	net models: simplify error condition
	An attempt to add a bonding device with no nics ends with a different
	error, depending whether the bond is already define in the kernel or
	not. This surprising behaviour means that the functional test
	testFailWithBadParam fails if BONDING_NAME is removed from the kernel.

	This patch unifies the error code, returning ERR_BAD_PARAMS in both
	cases.

	net models: simplify condition
	Bond.objectivize() is always called with a non-None bonding name. No
	need to complicate an internal condition to validate this.

2014-06-09  Nir Soffer  <nsoffer@redhat.com>

	nfsSD: Remove unneeded and expensive mount check
	NFS Storage domain used to check if the domain is mounted in the selftest
	method. This check dominates the profiles on a system with many NFS storage
	domains. This check happens during the monitoring flow, before we run dd to
	read a file from the remote server. If the domain is not mounted, dd will fail
	to read the file. This patch remove the unneeded and expensive check.

	I tested this patch on RHEL 6.5 system connected to 45 NFS storage domains. The
	test included starting the test host as spm, waiting 4 minutes, then creating a
	template from a vm with one system disk and one empty disk. After 10 minutes,
	puting both hosts to maintenance. During this test, vdsm cpu usage has huge
	spikes (5-300%), and while the storage operation is running, it consume about
	200% constantly. Even worse, when trying to put the host to maintenance, one
	host responded only after about 7 tries - it looks that vdsm does not behave
	well under such load.

	In the profile, we can see that the mount checks (isMounted) dominates
	the profile:

	    Sun May 25 17:48:03 2014    nfs-selftest-spm.prof

	             10478858 function calls (10548072 primitive calls) in 619.277 CPU seconds

	       Ordered by: cumulative time
	       List reduced from 1985 to 20 due to restriction <20>

	         ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       790/1958    0.000    0.000  495.314    0.253 domainMonitor.py:186(DomainMonitorThread._monitorDomain)
	      4308/4452  182.416    0.042  451.408    0.101 threading.py:481(Thread.run)
	          38/45    0.000    0.000  437.224    9.716 domainMonitor.py:163(DomainMonitorThread._monitorLoop)
	          36/49    0.000    0.000  389.649    7.952 utils.py:750(wrapper)
	      2077/2135    1.971    0.001  384.503    0.180 mount.py:148(getMountFromTarget)
	      2012/2100    0.120    0.000  383.153    0.182 mount.py:137(isMounted)
	  105751/109301    0.000    0.000  380.141    0.003 mount.py:121(_iterMountRecords)
	      1836/1958    0.264    0.000  333.065    0.170 nfsSD.py:105(NfsStorageDomain.selftest)
	  466934/466985   70.404    0.000  330.915    0.001 mount.py:42(_parseFstabLine)
	  106768/107120   20.775    0.000  286.090    0.003 mount.py:78(_resolveLoopDevice)
	  365495/366408   12.537    0.000  260.821    0.001 mount.py:64(_iterateMtab)
	    10669/12758    0.556    0.000  199.831    0.016 sdc.py:51(DomainProxy.getRealDomain)
	    11452/12758    0.282    0.000  169.311    0.013 sdc.py:101(StorageDomainCache._realProduce)
	        241/242    0.000    0.000  158.204    0.654 sdc.py:93(StorageDomainCache.produce)
	  941546/941554   66.137    0.000  128.888    0.000 posixpath.py:311(normpath)
	    11924/12515    0.406    0.000  116.818    0.009 sdc.py:48(DomainProxy.__getattr__)
	            136    0.056    0.000  112.311    0.826 sdc.py:133(StorageDomainCache._findDomain)
	            136    0.042    0.000  110.590    0.813 nfsSD.py:131(findDomain)
	            136    0.248    0.002  101.375    0.745 nfsSD.py:115(findDomainPath)
	4279715/4279780   25.588    0.000   91.276    0.000 mount.py:70(_parseFstabPath)

	With this patch, cpu usage still has spikes, but typically at (3-40%). During
	the create template operation, there were about 10-20 secodns where vdsm
	consumed about 180% cpu.

	    Sun May 25 18:20:52 2014    nfs-selftest-spm-2.prof

	             5106574 function calls (5188395 primitive calls) in 302.323 CPU seconds

	       Ordered by: cumulative time
	       List reduced from 2002 to 20 due to restriction <20>

	         ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	      4339/4465   59.113    0.014  236.219    0.053 threading.py:481(Thread.run)
	      1133/2550    0.342    0.000  222.124    0.087 domainMonitor.py:186(DomainMonitorThread._monitorDomain)
	          41/45    0.000    0.000  213.524    4.745 domainMonitor.py:163(DomainMonitorThread._monitorLoop)
	          41/49    0.000    0.000  204.217    4.168 utils.py:750(wrapper)
	    14210/16433    0.000    0.000  133.085    0.008 sdc.py:51(DomainProxy.getRealDomain)
	    15206/16433    1.243    0.000  127.866    0.008 sdc.py:101(StorageDomainCache._realProduce)
	        129/136    0.062    0.000  122.497    0.901 sdc.py:133(StorageDomainCache._findDomain)
	        135/136    0.000    0.000  114.658    0.843 nfsSD.py:121(findDomain)
	        135/136    0.204    0.002  103.037    0.758 nfsSD.py:105(findDomainPath)
	    14778/16187    0.530    0.000   99.758    0.006 sdc.py:48(DomainProxy.__getattr__)
	           2550    0.214    0.000   88.393    0.035 fileSD.py:258(NfsStorageDomain.getReadDelay)
	           2550    1.529    0.001   88.155    0.035 misc.py:198(readspeed)
	           2662    0.823    0.000   85.840    0.032 utils.py:646(execCmd)
	        141/142    0.029    0.000   73.539    0.518 mount.py:137(isMounted)
	            195    0.353    0.002   73.002    0.374 mount.py:148(getMountFromTarget)
	    13977/14823    0.000    0.000   72.712    0.005 mount.py:121(_iterMountRecords)
	        244/245    0.000    0.000   65.844    0.269 sdc.py:93(StorageDomainCache.produce)
	    54958/55112   12.500    0.000   64.269    0.001 mount.py:42(_parseFstabLine)
	    14291/14537    3.456    0.000   54.202    0.004 mount.py:78(_resolveLoopDevice)
	          10801    3.400    0.000   51.056    0.005 remoteFileHandler.py:286(RemoteFileHandlerPool.callCrabRPCFunction)

	Comparing both profile we can see that:

	- cpu seconds dropped from 619 to 302 (-51%)
	- Number of functions calls dropped from 10478858 to 5106574 (-51%)
	- Time spent in isMounted dropped from 383 to 73 seconds (-80%)

	We should investigate later why isMounted is called so many times, and consider
	optimizing this code. We should also investigate the create template flow, to
	understand why it cause a such a big spike in cpu usage.

	The system behavior experienced while testing this patch, is similar to what
	bug 1081962 describes.

	Bug-Url: https://bugzilla.redhat.com/1099856
	Relates-to: https://bugzilla.redhat.com/1081962

2014-06-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	pep8 and logic fix for commit 36136c1
	1. Didn't catch in validation pep8 1.4.6 violation
	2. Didn't catch wrong group validation on my environment
	3. Fix isconfigured tests

2014-06-09  Dan Kenigsberg  <danken@redhat.com>

	Make pyflakes-0.8 happier
	Without this patch, pyflakes-0.8.1 complains about

	 ./vdsm/network/sourceroute.py:153: list comprehension redefines 'rule' from line 146

	I do not agree with this complaint of newer pyflakes versions, but I do
	not mind enough to fight it.

2014-06-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Setting enum for isconfigured return value and change override semantics
	isconfigured now returns CONFIGURED, NOT_CONFIGURED and NOT_SURE. This to
	ease and clarify the override semantics.
	If module returns CONFIGURED it means that also on force vdsm won't need to
	reconfigure it, as the module configured properly. Although if configured
	returns NOT_SURE, it means, vdsm already configured the module, but on
	force we desire to override those configuration to defaults.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1088805

2014-06-08  Dan Kenigsberg  <danken@redhat.com>

	build: log pyflakes version
	This may be useful in order to trace inconsistent errors in builds.

2014-06-08  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: fix version to family parameter name
	In commit e435e680fdae8f1baaf8dac549c72db32c07549f there is a change
	to add ipv6 support to various ipwrapper functions. During the
	review process it was suggested to change the parameter from
	'version' to 'family' but I missed one of the parameters.

2014-06-07  Francesco Romani  <fromani@redhat.com>

	vm: rename method for clarity
	rename _getGuestStatus for clarity and
	to reduce the clashing with _getGuestStats.

	virt: stats: move the guest stats in a method
	this patch moves the guest statistics gathering in
	a separate method.

2014-06-06  Antoni S. Puimedon  <asegurap@redhat.com>

	upgrade_unified: fix for nicless and bridges with vnics
	The upgrade script had a mistake when dealing with bridged networks
	that made it not consider bridgeless networks nor bridges that had
	vnics on them.

	This bug would have made that a bridge with nic eth2 and several
	vnics would have setup a network targetting:
	'eth2vnet0vnet1'

2014-06-06  Federico Simoncelli  <fsimonce@redhat.com>

	api: remove obsolete volume prepare and teardown
	The prepare and teardown volume API were never officially supported,
	engine never used them and they were never exposed in vdsClient.
	Additionally as reported in rhbz#1104672 prepareVolume was broken.
	In a recent change (de40063) we exposed prepareImage and teardownImage
	providing a similar functionality.

	Relates-To: https://bugzilla.redhat.com/show_bug.cgi?id=1104672

2014-06-06  Dan Kenigsberg  <danken@redhat.com>

	net: janitorial: format log messages lazily

	_findLiveSnapshotSupport: do not assume that guest <features> exist

2014-06-06  Nir Soffer  <nsoffer@redhat.com>

	blockVolume: Fix NameError when validating volume parameters
	Commit 5cd8c83ba62 was liberally verified, leaving undefined name. Fixed
	now thanks to pyflakes and make check.

	tests: execCmd stress test is not broken now
	Since commit ce66d754, utils.execCmd stress tests should always succeed.

2014-06-05  Nir Soffer  <nsoffer@redhat.com>

	gitignore: Ignore new generated man page
	Commit 3762a03added3 added vdsm-tool manual, but did not upadte
	.gitignore, which broke "make check".

2014-06-05  Federico Simoncelli  <fsimonce@redhat.com>

	volume: fix validateCreateVolumeParams exception
	The validateCreateVolumeParams check was returning an inconsistent
	exception: IncorrectFormat with the parent volume uuid as argument.
	The IncorrectFormat exception should return a format and not a
	volume uuid.

2014-06-05  Andrew Dahms  <andrewjdahms@gmail.com>

	This commit adds a man page for the vdsm-tool command line utility.
	This commit adds the file vdsm-tool.1.in to the vdsm-tool directory,
	updates the vdsm-tool make file and the vdsm spec file to include and
	install the new man page for vdsm-tool to the /usr/share/man/man1 directory.

2014-06-05  Nir Soffer  <nsoffer@redhat.com>

	utils: Decrease cpu usage when executing commands
	After optimizing list2cmdline, we can see that the profile is dominated by
	utils.execCmd() and related functions such as AsyncProc._processStreams().
	This code is quite complex, using fancy classes such as AsyncProc and
	_streamWrapper, and using epoll to poll for 3 file descriptors. These are
	useful when reading asynchronously from multiple streams without risk of
	deadlock.  However, for invoking commands synchronously, polling 2 file
	descriptors, CPopen.communicate, using poll, is safe and much more
	efficient.

	This patch avoids wrapping of the CPopen object with AsyncProc when
	executing commands in sync mode.

	I tested this on two identical RHEL 6.5 machines connected to 32 storage
	domains.  Each one run 5 minutes as spm, and 5 minutes as hsm during 10
	minutes profiling session. The first system was running the previous
	patch in this branch:

	    Tue May 13 09:47:10 2014    /var/run/vdsm/vdsmd.prof

	             8410533 function calls (8466483 primitive calls) in 70.879 CPU seconds

	       Ordered by: internal time
	       List reduced from 1872 to 10 due to restriction <10>

	       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	      1281887    3.404    0.000    6.038    0.000 utils.py:557(AsyncProc._processStreams)
	       131670    2.162    0.000    2.174    0.000 pthread.py:98(Lock.unlock)
	        24898    2.134    0.000   10.016    0.000 utils.py:466(_streamWrapper._readNonBlock)
	       114437    1.992    0.000    2.018    0.000 pthread.py:95(Lock.lock)
	        17996    1.916    0.000   21.293    0.001 io.py:492(BufferedReader.readline)
	       98/136    1.912    0.020   23.986    0.176 threading.py:481(Thread.run)
	         5918    1.829    0.000    6.438    0.001 misc.py:125(findCaller)
	        57658    1.738    0.000    1.821    0.000 genericpath.py:85(_splitext)
	        10005    1.644    0.000    3.479    0.000 __init__.py:226(LogRecord.__init__)
	         2452    1.497    0.001    8.357    0.003 utils.py:623(AsyncProc.wait)

	       Ordered by: cumulative time
	       List reduced from 1872 to 10 due to restriction <10>

	       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	        34/36    0.007    0.000   68.214    1.895 utils.py:770(wrapper)
	           32    0.069    0.002   67.969    2.124 domainMonitor.py:163(DomainMonitorThread._monitorLoop)
	     985/2040    0.728    0.001   67.471    0.033 domainMonitor.py:186(DomainMonitorThread._monitorDomain)
	         2450    0.447    0.000   53.669    0.022 utils.py:666(execCmd)
	         2040    0.093    0.000   46.161    0.023 blockSD.py:594(BlockStorageDomain.getReadDelay)
	         2040    0.131    0.000   45.845    0.022 misc.py:222(readspeed)
	         2040    0.310    0.000   45.696    0.022 misc.py:192(_readfile)
	         2447    0.133    0.000   33.060    0.014 utils.py:633(AsyncProc.communicate)
	       98/136    1.912    0.020   23.986    0.176 threading.py:481(Thread.run)
	    17994/17996    0.250    0.000   21.544    0.001 io.py:532(BufferedReader.next)

	The seconds system was running with this patch:

	    Tue May 13 09:47:04 2014    /var/run/vdsm/vdsmd.prof

	             1988663 function calls (2044070 primitive calls) in 36.675 CPU seconds

	       Ordered by: internal time
	       List reduced from 1871 to 10 due to restriction <10>

	       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       98/136    6.643    0.068   19.059    0.140 threading.py:481(Thread.run)
	         9508    1.566    0.000    2.801    0.000 __init__.py:226(LogRecord.__init__)
	         5795    1.511    0.000    4.948    0.001 misc.py:125(findCaller)
	        56250    1.312    0.000    1.405    0.000 genericpath.py:85(_splitext)
	         2361    1.306    0.001    2.084    0.001 subprocess.py:1344(CPopen._communicate_with_poll)
	        38915    0.881    0.000    2.766    0.000 misc.py:110(_shouldLogSkip)
	    56233/56250    0.827    0.000    2.239    0.000 posixpath.py:94(splitext)
	         9508    0.713    0.000    5.644    0.001 __init__.py:1204(Logger.callHandlers)
	        32083    0.598    0.000    0.598    0.000 misc.py:84(checkForSkip)
	    6953/6965    0.591    0.000    0.627    0.000 pthread.py:133(Cond.timedwait)

	       Ordered by: cumulative time
	       List reduced from 1871 to 10 due to restriction <10>

	       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	        34/36    0.001    0.000   27.957    0.777 utils.py:770(wrapper)
	           32    0.041    0.001   27.767    0.868 domainMonitor.py:163(DomainMonitorThread._monitorLoop)
	     840/1957    0.404    0.000   27.454    0.014 domainMonitor.py:186(DomainMonitorThread._monitorDomain)
	       98/136    6.643    0.068   19.059    0.140 threading.py:481(Thread.run)
	         2365    0.338    0.000   17.226    0.007 utils.py:666(execCmd)
	    9507/9508    0.187    0.000   14.434    0.002 __init__.py:1155(Logger._log)
	    8640/8738    0.243    0.000   14.430    0.002 __init__.py:1034(Logger.debug)
	         1957    0.067    0.000   13.107    0.007 blockSD.py:594(BlockStorageDomain.getReadDelay)
	         1957    0.101    0.000   12.933    0.007 misc.py:222(readspeed)
	         1957    0.131    0.000   12.815    0.007 misc.py:192(_readfile)

	Comparing the profiles show:

	- Number of function calls dropped from 8410533 to 1988663 (-76%)
	- Number of cpu seconds dropped from 70.8 to 36.6 (-48%)
	- Time spent in execCmd dropped from 53.6 to 17.2 seconds (-67%)

2014-06-05  Federico Simoncelli  <fsimonce@redhat.com>

	api: expose prepare and teardown image
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1092166

2014-06-05  Saggi Mizrahi  <smizrahi@redhat.com>

	jsonrpc: Stomp support
	The mini broker turned up to be much more work than I expected.
	This is an intermediate solution. VDSM will accept broker like
	message but will ignore most of them and not enforce policy.

	This is so that we can get the engine talking in the correct way and
	work on the mini broker stress free. This also means that we can release
	VDSM without the mini broker using a message format that is future
	ready.

	It is expected from the engine to send the CONNECT and SUBSCRIBE frames
	even though VDSM doesn't yet enforce them because future VDSM's probably
	will.

2014-06-04  Nir Soffer  <nsoffer@redhat.com>

	mutipath: Remove unneeded and dangerous -r parameter
	Since commit dbf2089488 (Jul 9 2013) multipath call was change to use
	the -r flag, forcing a reload of the device map. This was tested to fix
	a case where new lun is created on the storage server, while a host was
	connected, and the new device is not available when issuing the
	getDeviceList command. According to a comment on gerrit, the change was
	tested for ISCSI and FC storage types, but there is no documentation of
	the testing procedure. The related bug was verified, but has no
	information about how it was verified.

	We have two related bugs:

	- Bug 1078879 tell us that invoking multipath with the -r flag sometimes
	  triggers a segfault in the multipathd daemon. In the bug, multipath
	  developer suggests that as long as multipathd daemon is running,
	  there is no need to invoke multipath to detect new devices, and
	  "multipath -r really isn't useful for much of anything".

	- Bug 1071654 tell us that devices rescanning is broken on FC storage
	  domains (although the -r flag is used). I reproduced this bug using
	  storage QE FC server.

	This patch removes the -r flag. To be on the safe side, I left the
	multipath call as it was since the first multipath commit in 2009. We
	will work with kernel and multipath developers further on removing this
	call if it is indeed unneeded.

	Bug-Url: https://bugzilla.redhat.com/1078879
	Relates-to: https://bugzilla.redhat.com/1071654
	Relates-to: http://gerrit.ovirt.org/17263

2014-06-04  Federico Simoncelli  <fsimonce@redhat.com>

	sp: ensure that master domain is active
	It's not possible to be connected to a pool where the master domain
	is attached (and not active).
	In case the engine tries to send a domain map (memory backend) in
	which the master domain is attached the operation should fail.

2014-06-03  Francesco Romani  <fromani@redhat.com>

	vm: move getBalloonInfo in the stats thread
	To gather the ballon stats, we used to make a direct libvirt
	call in the getStats() body. This is dangerous, because
	getStats() should not contain costly calls, and should
	just gather data.

	This patch reimplements the balloon information getter as a
	sampling function, and moves it into the VmStatsThread
	to make things more robust.

	As remainder to avoid to sneak costly calls in getStats,
	this patch also adds a docstring in getStatsInternal.

2014-06-02  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Ensure not to handle no longer tracked fds in epoll
	In some cases it is possible that events from epoll are received before the
	socket is closed. This patch ensures that we're ignoring events which belong
	to fds we are not tracking (anymore).

	Bug-Url: https://bugzilla.redhat.com/1102072

2014-06-02  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing unused logErr parameter from execCmd

2014-05-31  Federico Simoncelli  <fsimonce@redhat.com>

	volume: fix constants in validateCreateVolumeParams
	This patch solves a problem related to the use of the volume constants.
	The issue, introduced in 9d15a8c, was hid by subsequent patches in the
	same series.

2014-05-30  bruce  <xiao-lei.shi@hp.com>

	vm: Create vm numa node according to the node index
	For vm numa node in libvirt, the node index is decided by the cell
	sequence of the configuration xml. So we sort the node items according
	to the node index and build the dom xml with the sequence.

	Bug-Url: https://bugzilla.redhat.com/1099814

2014-05-30  Federico Simoncelli  <fsimonce@redhat.com>

	volume: unify cow format check on creation
	The same check performed both in fileVolume and blockVolume has been
	moved to the base volume class. Now validateCreateVolumeParams in
	fileVolume doesn't contain anything specific and it has been removed.

	blockVolume: prepare volumes for shrinkToOptimalSize
	The qemu-img check command needs the entire volume chain in order to
	be able to open the image.
	Up until now shrinkToOptimalSize worked only for base volumes, in the
	other cases it was failing with:

	 QImgError: ecode=1, stdout=[], stderr=[
	   "Could not open '(image path)': No such file or directory"]

2014-05-30  Liron Aravot  <laravot@redhat.com>

	core: introducing uploadImageToStream
	Adding uploadImageToStream  verb which allows to retrieve image data from
	vdsm to the requester over HTTP.
	GET requests arriving to the server  to default paths that we use
	today for request handling ('/', '/RPC2') will be treated
	as retrieve requests.
	The retrieve operation  itself is being executed within a task, that's
	needed to indicate that there's an operation executed by
	the host.

	core: BindingXMLRPC - exporting logic out from do_PUT.
	moved logic out from do_PUT method so it could be used by other
	operations as well.

	core: generify "streamDownloadImage" related methods
	This patch generifies the related "streamDownloadImage" methods in
	image/imageSharing to be have more generic name as they could be used
	with any passed fileObj.

	core: removal of unneeded callback passing
	The callback can be executed from sp.py after completing the operation,
	eliminating the need to pass it to imageSharing.

	core: imageSharing - export logic to functions
	The "copy" logic within imageSharing.streamDownloadImage() can be
	generified and exported out to be used by any operation. In this patch it's
	being exported to the copyData function with the appopiate
	generification.

2014-05-30  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: unify vm ovf management lock
	Taking one lock per VM definition could be extremely slow (especially
	when the engine sends 100 ovf). In one case it took more than 3 minutes
	to take 76 locks. This patch unifies the VM locks into a generic one.
	There was no real advantage in the current implementation, in fact if
	by any chance updateVM was stuck trying to persist a VM definition it
	is understood that also removeVM would get stuck at file-system level.
	Moreover storing 100 ovf is a quite fast operation (if it doesn't get
	stuck) and it is not supposed to starve removeVM.
	Multiple removeVM calls are still executed in parallel because the
	generic lock is acquired in shared mode.

	Relates-To: https://bugzilla.redhat.com/show_bug.cgi?id=1100527

2014-05-30  Liron Aravot  <laravot@redhat.com>

	BindingXmlRPC - do_PUT to return created task id in header
	Currently the execution result of "download" to image is being returned
	as json written to the response message body, this patch changes it so that
	in case of failure the failure details (error code and message) would be
	returned as json in the message body while in case of succesful
	task creation the task id would be returned in a header.
	this is needed so that when the abillity to upload an image from vdsm
	would be added, both operations will return a similar result (as in the
	"upload" operation the response message body would contain the contain the
	image data so we'll need to return the task id within the header).

2014-05-29  Martin Perina  <mperina@redhat.com>

	caps: Collect kdump status
	Adds kdump configuration status to caps module. The status can contain:

	  -1 - UNKNOWN (it's set if some error appears during status check)
	   0 - DISABLED (kdump is not loaded or fence_kdump is not configured)
	   1 - ENABLED (kdump is loaded properly and fence_kdump is configured)

	The status will be reported as part of getCapabilities response in key
	'kdumpStatus'.

	The value will be displayed in webadmin in General tab inside Host view
	and it will also be used in kdump detection part in fencing flow.

	Bug-Url: https://bugzilla.redhat.com/1079821

2014-05-28  Daniel Erez  <derez@redhat.com>

	vm: added missing diskReplicate slot in Drive class
	Following commit I6e8dadabdd02d3b44606f215c4bc7b7e306a591a,
	added missing 'diskReplicate' slot in VM -> Drive class.

	Currently, live storage migration fails due to an exception [1]
	on 'diskReplicateStart' method.

	[1] AttributeError: 'Drive' object has no attribute 'diskReplicate'

	vm: wrong message formatting leads to an exception
	vm -> diskReplicateStart:
	wrong string formatting in error log leads to
	the following exception:
	"TypeError: not enough arguments for format string".

2014-05-28  Antoni S. Puimedon  <asegurap@redhat.com>

	ifcfg: remove and re-create bonds when they are not to be destroyed
	In order to make sure that bonds that should be left undestroyed,
	but do not have users, are set with the default options and devoid
	of any previous configuration, we delete the bond and its ifcfg
	file and create new ones.

	Bug-Url: https://bugzilla.redhat.com/1097674

	caps: add reporting of all ipv4 addresses
	With this patch, we add a new field to the reported device
	information. This new field is 'ipv4addrs', that just like the
	current 'ipv6addrs' reports all the addresses of the device (each
	for its own address family). With this new reporting, now 'addr'
	and 'netmask' are specifically reporting the primary address.

2014-05-28  Martin Sivak  <msivak@redhat.com>

	Fix memShared units when reported from MOM
	MOM reports the ksm_pages_sharing value in raw pages.
	Both VDSM and engine expect megabytes, so this patch adds
	the necessary conversion.

	This also moves the PAGE_SIZE_BYTES to caps.py to avoid
	circular dependency.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1072030

2014-05-28  Yaniv Bronhaim  <ybronhei@redhat.com>

	dmidecode: Handle missing values
	Make all hwInfo fields in API optional, and change property retrieval so
	it cannot fail, also, get rid of all keys that contain no actual
	information.

	The engine will assume that all the missing keys are not available and
	report/display an according message (rather than sending 'Not
	Specified')

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1089393

2014-05-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm_config: move download certificate
	DHCP servers might delay to deliver the ip address
	and we can't download the engine certificate from
	vdsm-config stage. This patch is moving the download
	certificate from vdsm-config to vdsm-reg-setup.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1065368

2014-05-27  Antoni S. Puimedon  <asegurap@redhat.com>

	net_tests: add reusing dhclient owned iface
	https://bugzilla.redhat.com/1100264 showed us that we are lacking
	testing of interface reusing, specifically about reusing dhclient
	owned devices. This patch covers this hole in our test coverage.

2014-05-26  Liron Aravot  <laravot@redhat.com>

	avoid waiting for event forever
	When executing put request to vdsm in order to upload data to image, in
	case of exception before a task was started we may wait for the event
	forever, if no task was created there's no need to wait and the error
	can be returned immediately.

2014-05-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove rsyslog requirement and leave the check of syslog fd availability
	Some use syslog-ng instead of rsyslog daemon, this provides the same fd
	to communicate with syslog. Instead of hard requirement in spec file, we
	leave the check during pre-start and update the output.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1083100

2014-05-26  Francesco Romani  <fromani@redhat.com>

	virt: stats: move core static stats in a method
	this patch reorganizes the code to move all the
	stats which will not change after a VM is booted
	into a separate method,

2014-05-26  Antoni S. Puimedon  <asegurap@redhat.com>

	network: publish and honor blockingdhcp setting
	blockingdhcp is an old unpublished network option that allows the
	user to specify that the network configuring should wait for the
	result of upping a dhcp configured interface. When moving to the
	packed (as oposed to unpacked, i.e., **opts) options for
	objectivizeNetworks, this option stopped reaching the network
	models, and thus, stopped being applied.

	This patch re-enables blockingdhcp, publishing it in the API so
	that we continue to honor it.

	iproute2: stop non-vdsm dhclient before we run our own
	It is possible that a device that we re-use, like for example a nic
	or a bond in the installation flow could have a dhclient process
	running for them. That would effectively make the vdsm dhclient run
	fail due to dhclient's detection of it having a 'dhcp agent' already
	running. This patch solves it by pre-emptively telling dhclient to
	kill clients for existent devices that we are about to attempt to
	configure.

	Bug-Url: https://bugzilla.redhat.com/1100264

2014-05-26  Mooli Tayer  <mtayer@redhat.com>

	ConfigFile.py: test for key=val pattern only after replacing old lines.
	Only after changing an old line (by removing or adding a prefix to it)
	should we consider the line as an old key=val pair - We do not replace
	old configuration keys if they exist in a configuration file.

	ConfigFile.py: provide backward compatibility with '# by vdsm' comments.
	see 'Backward compatibility:' at ConfigFile doc for detailed description.

	vdsm-tool: prefix private methods and properties with _

	ConfigFile.py: include default section wrapping comments.
	Since ConfigFile.py represents common operations on config files
	it should also include the default comments vdsm inserts.
	Only version has no default to allow different callares
	have different configuration version.

	ConfigFile.py: improve documentation

	vdsm-tool: add unprefixLines() to configfile.py.
	New method removes 'prefix' from each line starting with it.
	No editing is done on new content added by this config file.

	This method will be used to remove '# VDSM backup' comments
	put inside libvirt logrotate file.

	Changed doc string of prefixLines to reflect the link
	between the two methods.

	Tests included (see testPrefixIdempotencey in toolTests.py).

	unprefixLines is the reverse function of prefixLines so that
	unprefixLines(prefixLines(file)) = file.

2014-05-26  Federico Simoncelli  <fsimonce@redhat.com>

	volume: use qemuimg and remove custom qemuConvert
	This patch removes the custom qemuConvert implementation. It is safe
	to drop the ddWatchCopy part because:

	- it was initially introduced to workaround a bug in qemu-img that was
	  preventing it from working with raw volumes on block devices [1]
	- it was later on used to try and maintain the preallocation of a
	  volume on file domains, but it was covering only one specific case
	  (raw to raw) and in the most common case of copyCollapsed (cow chain
	  to raw) was using qemu-img (not maintaining the preallocation)
	- given bz#1097843 we are trying to phase out preallocation on file
	  domains because it is hard (or sometimes impossible) to guarantee,

	This patch has just shown that there are at least two cases where we
	were (and are) not able to guarantee preallocation (mergeSnapshot and
	copyCollapsed).

	[1] the problem is that qemu-img is designed to maintain sparseness
	when possible. This means that if it fails to detect that the
	destination is a block device then it will seek instead of writing
	zeroes, leving some of the previous data in place.
	This has been fixed since some time and Kevin Wolf mentioned that
	the code is now really explicit about this case being handled (force
	to write zeroes if the destination is raw on a block device).
	Moreover vdsm has been already relying on qemu-img to convert cow to
	raw and it seems that we never hit any issue.

	Related-To: http://bugzilla.redhat.com/1097843

2014-05-26  Francesco Romani  <fromani@redhat.com>

	spice: allow to disable the to clipboard copypaste
	since version 0.9.3, libvirt allows to optionally disable copy and paste
	in the spice protocolol:

	http://libvirt.org/formatdomain.html#elementsGraphics

	this patch expose this capability in VDSM, in the VM definition.
	The new parameter is optional and enabled by default for backward
	compatibility.

	No XML changes are produced at all unless the new parameter is
	specified.

	Bug-Url: https://bugzilla.redhat.com/1052959
	Bug-Url: https://bugzilla.redhat.com/800155

	vm: drop wasteful time.sleep() in releaseVm
	After inspection of the libvirt code, turns out
	the time.sleep(30) we currently have in the releaseVm
	flow is redundant and wasteful.

	Libvirt (1.2.x) already has hardcoded timeout to handle
	the QEMU process termination, and this patch leverages that.

	Before this patch, the sequence of events triggered
	by the dom.destroy() call in the worst case scenario
	(QEMU not responding) is:
	- send SIGTERM (clean shutdown request)
	- wait 10s (libvirt, hardcoded)
	- (fails)
	- log error (libvirt, vdsm)
	- wait 30s (vdsm)
	- send SIGTERM (clean shutdown request)
	- wait 10s (libvirt)
	- (fails)
	- log error (libvirt)
	- send SIGKILL (forced shutdown request)
	- wait 5s( libvirt, hardcoded)
	total time: 10+30+10+5 = 55s (all hardcoded!)

	With this patch, the flow becomes:
	- send SIGTERM (clean shutdown request)
	- wait 10s (libvirt, hardcoded)
	- (fails)
	- log error (libvirt, vdsm)
	- send SIGTERM (clean shutdown request)
	- wait 10s (libvirt)
	- (fails)
	- log error (libvirt)
	- send SIGKILL (forced shutdown request)
	- wait 5s( libvirt, hardcoded)
	total time: 10+10+5 = 25s (no values hardcoded in VDSM)

	Bug-Url: https://bugzilla.redhat.com/1091389

2014-05-26  Antoni S. Puimedon  <asegurap@redhat.com>

	ifcfg: Prevent ifup from failing due to existing dhclient
	When configuring a device with bootproto=dhcp it is possible that
	the device, if pre-existent, had a running dhclient instance that
	would make ifup fail. This is especially true in the oVirt
	deployment flow when we configure the management network over
	a device that very likely already had a dhclient running.

	Up until now this has not hit us hard (though it has polluted logs)
	due to the fact that we ifup dhcp in asyncronous mode and return
	success before the failure.

	Bug-Url: https://bugzilla.redhat.com/1100264

	ifcfg: Put hotplug=no for virtual devices
	In el6 systems, udev can trigger an ifup call when a device is
	created. The issue with the triggering is that when we create a
	virtual device, e.g. a vlan, we do so via ifup, so what will
	happen is:

	we write ethX.Y
	initscripts creates the
	  vlan device with id Y
	  on top of ethX.                      udev detects the new device
	        | Process 1                              | Process 2
	initscripts finished doing             udev calls initscripts' ifup
	ifup, possibly calling dhclient            for the new vlan device
	                                       initscripts possibly calls
	                                           dhclient

	The issue is that the two processes can do the dhclient in whichever
	order and one dhclient will prevent the other from succeeding. Only
	one ifup should be called for each device, so we need hotplug=no to
	prevent Process 2 from succeeding in its ifup.

	Our current usage of ifcfg files does not set hotplug=no
	so that when the user replaces a physical card by hot-unplugging
	and hot-plugging there will be an auto configuration. This behavior
	is maintained by the fact that we only set hotplug=no for those
	devices for which we control the whole life cycle, i.e., vlans,
	bonds and bridges.

	Bug-Url: https://bugzilla.redhat.com/1097818

2014-05-26  Adam Litke  <alitke@redhat.com>

	storage: Split setParent volume operations
	For efficiency on block domains we store a volume's parent UUID in two
	places: as an LV tag on the Volume LV itself, and in the metadata LV of
	the block domain.  For file domains the parent UUID is stored only in
	the volume's metadata file.  This works fine now but when we introduce
	live merge we will have a problem.  On block domains the LV tag can only
	be updated by the SPM and the metadata LV can be updated by the HSM
	host.  On file domains, the metadata file can only be updated by the HSM
	host.  When a live merge completes we will need to update the volume
	chain as soon as possible to match what qemu is actually using.  In
	order to do this from the HSM host (where the live merge completes) we
	need to split setParent into two parts.

	setParentMeta can always be called by the HSM host that is running the
	VM and by an SPM if the volume is not in use.

	setParentTag must only be called by the SPM.

	A common implementation of setParent is added to the Volume base class
	and will ensure compatibility with all existing callers of setParent.

	In the live merge case, we will call setParentMeta when the merge
	completes and will call setParentTag from the deleteVolume SPM verb
	where we actually remove the merged volume.

2014-05-23  Dan Kenigsberg  <danken@redhat.com>

	sourceroute: fix logging arguments

2014-05-23  Nir Soffer  <nsoffer@redhat.com>

	utils: Add execCmd sync mode failing stress tests
	This patch adds couple of tests that stress exceCmd sync mode under high
	concurrency. I added the tests to ensure that the next patch, avoiding
	AsyncProc in sync mode, does not introduce any regressions.

	I tested this on two 8 cores machines with 16G or RAM. One is i7-3770
	running RHEL 6.5, and the other i7-4770 running Fedora 19. I run
	utilsTests.py 10 times on each machine, with the next patch and with
	current code.

	When run with the next patch (using Popen.communicate), using 200
	threads:

	- Python cpu usage is about half of maximum (400% of 800%)
	- Load average in top up to 60
	- utilsTests.py completes in 75 on the faster machine, and 170 seconds
	  on the other.
	- All 10 runs completed successfully.

	When run with the current code (using AsyncProc.communicate), it was too
	slow with 200 threads, so I used only 50 threads:

	- test_write_stdin_read_stderr always fail immediately with OSError,
	  even with 1 thread.
	- Python cpu usage reach close to maximum (798% of 800%)
	- Load average in top up to 45
	- utilsTests.py completes in 98 seconds on the faster machine and 158
	  seconds on the other.
	- On the RHEL 6.5 machine, the tests seems to deadlock after 8 runs,
	  consusing 100% cpu with no progress for 40 minutes.

	Seems that the current execCmd implementation is not reliable and
	scalable as the built-in Python implementation.

2014-05-22  Yeela Kaplan  <ykaplan@redhat.com>

	Remove unused remote file handler method (directWriteLines)

2014-05-22  Francesco Romani  <fromani@redhat.com>

	virt: graphdev: handle ticket for multiple devices
	This patch extends the ticket support for the
	multiple graphics devices scenario.

	This is done by extending the VM.updateDevice API
	to support the Graphics Devices in addition to the
	Network Devices. The parameters which can be updated
	are the one which allow to set a ticket
	for graphics.

2014-05-22  Arik Hadas  <ahadas@redhat.com>

	always teardown snapshot's memory volume
	Teardown the memory volume of snapshot with memory as part of 'finally'
	block to ensure it is done in case an exception is thrown in the
	'snapshot' method as well.

2014-05-22  Federico Simoncelli  <fsimonce@redhat.com>

	volume: use qemuimg and remove custom qemuRebase
	This patch substitutes a custom qemuRebase function with the more
	standard implementation in qemuimg module.

	volume: remove unused imgPath argument from clone
	This patch removes the unused imgPath argument from clone and all its
	related methods.

2014-05-22  Francesco Romani  <fromani@redhat.com>

	virt: graphdev: support multiple graphics devices
	This patch allows a Vm to have more than one Graphics Devices,
	so a we can now have multiple consoles (e.g. SPICE and VNC
	at the same time).

	With this feature, a user can switch clients without restarting that VM.
	Another possible use case is the regular users using SPICE for
	performance and the administrator using VNC for portability.

	Bug-Url: https://bugzilla.redhat.com/976044

2014-05-21  Federico Simoncelli  <fsimonce@redhat.com>

	task: prevent tasks with the same id to be queued
	This patch prevents a task to be queued if its id is already used
	by another task. Previously the task already present in the queue
	would have been lost.

	taskManager: improve task queuing error logging
	This patch improves the task queuing error by adding the id of the task.

	build: add profile-stats to extra-dist files
	The profile-stats script must be distributed. This also solves a build
	problem during the pep8 check (E902 IOError):

	 [Errno 2] No such file or directory: 'contrib/profile-stats'

2014-05-21  Francesco Romani  <fromani@redhat.com>

	stats: change log to exception for missing stats
	Once we have explicitely handled the common error
	conditions for missing stats, we should now consider
	really 'exceptional' the case of a missing stat.

	stats: avoid log if cpu stats are known missing
	There are some known cases on which the cpu stats cannot
	be available, for example if not enough samples are yet
	collected.

	Those cases are already handled by the current code,
	but a message is logged anyway, even if it is a known
	and benign case of  expected missing sample.

	This patch add explicit handling for the benign missing
	cpu stats case, to avoid to produce log noise when it is
	expected to not have the cpu stats.

	virt: migration: always run migration monitor
	Before this patch the migration monitor thread is always
	run, unless the migration monitor interval configuration option
	is explicitely set to zero.

	This patch moves this check inside the migration.Monitor class.
	This patch provides admittedly little benefit on its own,
	in the form of minor cleanup, but is a step toward the unification
	of monitor and downtime threads.

2014-05-21  Martin Betak  <mbetak@redhat.com>

	vdsm: Add force and timeout options to VM.shutdown
	Added optional parameters 'timeout' and 'force' to
	shutdown in vdsm and vdsClient.

	Timeout represents number of seconds to wait before falling back to next
	alternative method of shutdown/reboot.

	If 'force' is True and all graceful methods fail, we reset/destroy the VM.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1054070

2014-05-21  Dima Kuznetsov  <dkuznets@redhat.com>

	pep8: Add non .py sources to PEP8_WHITELIST

2014-05-21  Francesco Romani  <fromani@redhat.com>

	stats: avoid log if disk latency is known missing
	There are some known cases on which the disk latency stats
	are not available, for example if recovery is in progress.

	Those cases are already handled by the current code,
	but a message is logged anyway, even if it is a known
	and benign case of  expected missing sample.

	This patch add explicit handling for the benign missing disk
	latency stats case, to avoid to produce log noise when it is
	expected to not have the disk latency stats.

2014-05-21  Xavi Francisco  <xfrancis@redhat.com>

	storage: Add custom mount options to NFS SD
	When creating or modifying a NFS Storage Domain a user should be able to
	pass more mount options to the underlying host.

	This patch implements a way to pass custom mount options to the
	storageServer using the same approach as the PosixFS SD.

	Bug-Url: https://bugzilla.redhat.com/1087059

2014-05-21  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsm-tool: update to print function
	Update prints to python3 print function

	vdsm-tool: Add command name to args for command
	Each command now receives its own copy of 'sys.argv'-like argument list,
	starting with command name and all its arguments.

	Added exception each command can throw in case wrong params were passed.
	Exception handler for this exception prints the doc string for the
	command.

	Some command functions were split because they're called both from vdsm
	code and vdsm-tool code, so the vdsm-tool expose goes to a wrapper
	function first and ensures the parameters are there, then passes to the
	actual function.

	vdsm-tool: Change exception reporting
	General environment issues will raise EnvironmentError, Execution failures
	will raise RuntimeError. For specific vdsm-tool usage this patch introduce
	vdsm.tool.UsageError as the root class for exceptions to present to the user.
	Usage errors are only printed to the screen preceded by "Error:" and do
	not generate a stack trace.

2014-05-21  Francesco Romani  <fromani@redhat.com>

	schema: mark cpuShares optional
	'cpuShares' is declared as optional, so it should be prefixed
	with an asterisk.

2014-05-21  Dima Kuznetsov  <dkuznets@redhat.com>

	misc: remove readfile function.
	readfile() function was only used inside its own tests, and due to
	recent changes of file-system type detection being removed, it began
	reading always reading with O_DIRECT.

	Its tests do not pass on F20 since they do not read an aligned block
	size, but since nothing uses this code but the tests itself we can
	simply remove it.

2014-05-21  Adam Litke  <alitke@redhat.com>

	LiveMerge: Remove old merge APIs
	The old merge and mergeStatus APIs were never adopted and in order to
	make way for the new live merge feature let's remove this dead code
	first.

2014-05-20  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Read default bonding options
	A randomly-named reference bond is created once to obtain
	the defaults for all bonding modes.

	Some sysfs entries are ignored as they are not actually
	"options", e.g. 'active_slave', 'ad_partner_mac'.

	Related-To: https://bugzilla.redhat.com/987813

2014-05-20  Francesco Romani  <fromani@redhat.com>

	tests: add more tests for graphics devices
	this patch adds a few more sanity tests for
	the graphic devices.

	virt: stats: move vm status detection in a method
	this patch moves the detection of the status of a VM
	in a separate method. No functional changes.

	virt: stats: move vm runtime stats in a method
	this patch gathers all the stats values which
	can change during the life o a VM in a separate
	method.

	vm: floppy: remove special 'readonly' handling
	floppy devices used to have an explicit extra check
	on the image permissions to determine if the image
	had to have the 'readonly' attribute set.

	Engine is already sending this information, and this
	check is already done previously in vm.Drive.getXML()

	Moreover, this check is not only redundant, but it is
	one of the legacy remaining places vdsm can get stuck
	if the ISO domain becomes inaccessible when a VM is
	started, because no out-of-process I/O is used.

	To address those issues, this patch always mark the
	floppy image read-only, and removes the explicit
	additional check and all the code which was used
	only by it.

	This patch purposefully undoes what was done to fix
	https://bugzilla.redhat.com/show_bug.cgi?id=674357
	because nowadays there is no longer use for floppy
	devices outside sysprep, but this is already out of
	direct user control.

	Bug-Url: https://bugzilla.redhat.com/755528
	Relates-To: https://bugzilla.redhat.com/674357

2014-05-20  Dima Kuznetsov  <dkuznets@redhat.com>

	pep8: Fix indentation in supervdsmServer
	Fix pep8 issue in supervdsmServer and added its path to PEP8_WHITELIST
	to make sure don't oversee other pep8 issues in the file.

2014-05-20  Francesco Romani  <fromani@redhat.com>

	vm: fix 'port' reporting with SSL enabled
	If spice is configured with ssl enabled, the 'port' attribute
	may be missing. This patch fixes that.

	The port allocation behaviour in libvirtt may be surprising. If we supply

	    <graphics autoport="yes" keymap="en-us" passwd="*****"
	passwdValidTo="1970-01-01T00:00:01" port="-1" tlsPort="-1" type="spice">
	        <channel mode="secure" name="main"/>
	        <channel mode="secure" name="inputs"/>
	        <channel mode="secure" name="cursor"/>
	        <channel mode="secure" name="playback"/>
	        <channel mode="secure" name="record"/>
	        <channel mode="secure" name="display"/>
	        <channel mode="secure" name="usbredir"/>
	        <channel mode="secure" name="smartcard"/>
	        <listen type='address' address='127.0.0.1'/>
	    </graphics>

	note port=1 and tlsPort=-1 in input
	we will get in output

	    <graphics type='spice' tlsPort='5900' autoport='yes'
	listen='127.0.0.1' keymap='en-us' passwdValidTo='1970-01-01T00:00:01'>
	      <listen type='address' address='127.0.0.1'/>
	      <channel name='main' mode='secure'/>
	      <channel name='display' mode='secure'/>
	      <channel name='inputs' mode='secure'/>
	      <channel name='cursor' mode='secure'/>
	      <channel name='playback' mode='secure'/>
	      <channel name='record' mode='secure'/>
	      <channel name='smartcard' mode='secure'/>
	      <channel name='usbredir' mode='secure'/>
	    </graphics>

	note no 'port' in output

	However, if we do not specify the channels in input

	    <graphics type='spice' port='-1' autoport='yes' listen='127.0.0.1'>
	    </graphics>

	We will get 'port' in output in addition to 'tlsPort', which was
	expected.

	    <graphics type='spice' port='5900' tlsPort='5901' autoport='yes'
	listen='127.0.0.1'>
	      <listen type='address' address='127.0.0.1'/>
	    </graphics>

	Bug-Url: https://bugzilla.redhat.com/1099425

2014-05-19  Francesco Romani  <fromani@redhat.com>

	pep8: fix line too long
	commit b867894ea34ec710cc261646edf3283b90f2dec4 introduced a pep8
	error. This patch fixes that.

	virt: graphdev: add the GraphicsDevice class
	this patch introduces the Graphics Device class to be used
	to define the Vm display properties.
	No more than one Graphics Device is supported.

	If VDSM receives a Graphic Device definition, it uses that;
	otherwise, tries to fallback to display* parameters received as input.

	VDSM will continue to supply the legacy display* parameters
	in stats output and in the conf dictionary (VmDefinition)
	to preserve the backward compatibility. This includes migrations,
	so a VM created with a single new style graphic device can be
	migrated to old VDSMs without breaking cluster compatibility.

2014-05-18  Nir Soffer  <nsoffer@redhat.com>

	utils: Cleanup command logging
	A new dictionary was created for selecting the "SUCCESS" or "FAILED"
	message for the debug log. This is pointless when debug messages are not
	logged. Replaced with nicer and probably more efficient conditional
	expression.

	repr(err) was invoked even when debug messages are not logged. Use now
	%r format, so conversion is done only when log message is formatted.

2014-05-16  Francesco Romani  <fromani@redhat.com>

	vm: report exit reason if restore state fails
	The exit reason code needs to be reported an all error paths.
	It was mistakenly left out on the restoreState error path,
	most likely because this path is different because the exitMessage
	is overwritten.

	This patch ensures exitReason is always reported.

	stats: avoid log if disk stats are known missing
	There are some known cases on which the disk stats cannot
	be available, for example if recovery is in progress.

	Those cases are already handled by the current code,
	but a message is logged anyway, even if it is a known
	and benign case of  expected missing sample.

	This patch add explicit handling for the benign missing
	disk stats case, to avoid to produce log noise when it is
	expected to not have the disk stats.

2014-05-15  Amador Pahim  <apahim@redhat.com>

	hooks: macbind - Attach vm nics to specified bridge
	This hook support binding specified vNIC identified by its mac address
	to custom/other bridge than the currently defined bridge in ovirt.
	This hook is also capable of binding a vNIC to a openvswitch bridge.

	This hook differs from existing "exnet" hook in 2 points:
	 - It is not dependent on a network defined in libvirt. macbind works
	 with any existing bridge on the system.
	 - It is per VM and not per virtual nic. User have an option to change
	 the attachment of one or more virtual nic to different bridges in that
	 specific 'vm run', even-though the vnic is permanently attached to a
	 different bridge.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1091005

2014-05-15  Nir Soffer  <nsoffer@redhat.com>

	sp: Remove uneeded error handler
	domainMointor module does not raise StorageException and handling it
	does not help anyone.

2014-05-15  Xavi Francisco  <xfrancis@redhat.com>

	storage: Add logging on filesystem altering operations
	The rationale behind this patch is to add logging on
	filesystem altering operations. Before, no trace was given when creating or
	deleting symbolic links or removing or renaming files and folders.
	This patch tries to solve this adding debug messages before the
	operations are executed.

	This patch only includes the logging in the VDSM process so no out of
	process log management is needed.

2014-05-15  Nir Soffer  <nsoffer@redhat.com>

	misc: Cleaner readspeed
	When checking reading speed from storage, we used to actually read the
	data from the dd process into vdsm, just to drop it on the floor. This
	makes no sense since we are interested only in the 3 lines of statistics
	read from dd stderr.

	This patch uses execCmd directly instead of using the generic _readfile
	and configure dd to write the data to /dev/null.

	Profiling show no significant change in cpu usage, but doing less work
	is always better than doing more work.

2014-05-15  Federico Simoncelli  <fsimonce@redhat.com>

	volume: use qemuimg and remove custom createVolume
	This patch substitutes a custom createVolume function with the more
	standard implementation in qemuimg module.
	As a side-effect the 'preallocate' flag for the clone method became
	useless and it has been removed.

2014-05-15  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Spaces around operators

2014-05-15  Federico Simoncelli  <fsimonce@redhat.com>

	volume: remove unneeded rebaseVolumeRollback logging
	This patch removes some unneeded extra logging, tasks failures are
	already logged by the task framework in Task._run().

2014-05-15  Dan Kenigsberg  <danken@redhat.com>

	caps: drop a non-surprising error report
	Commit 60dd97a84 changed getVdsCaps to report whether we support live
	snapshots. Usually, not having the relevant architecture in libvirt's
	capapbilities is indeed a bug. However, this is not the case when we are
	faking kvm support.

2014-05-14  Dima Kuznetsov  <dkuznets@redhat.com>

	pep8: Fix pep8 in vdsm-tool
	Added PEP8_WHITELIST to avoid such things in the future.

2014-05-14  Nir Soffer  <nsoffer@redhat.com>

	profile: Add script for printing profile statistics
	This script make it easy to get the typical statistics from a profile.
	See the script docstring for more info.

2014-05-14  Federico Simoncelli  <fsimonce@redhat.com>

	fileVolume: create file volume with correct mode
	This patch removes a race in the volume file permissions between
	creation and file_setrw. Now there's no window of time where the
	volumes may have permissions that are not restrictive enough.
	The correct mode is now also explicit using the VOLUME_PERMISSIONS
	constant.

2014-05-14  Dan Kenigsberg  <danken@redhat.com>

	hooks: introduce before/after_get_caps hook points
	This patches adds a hook point that allows to modify the capabilities
	which Vdsm reports on its getVdsCapabilities API. This hook can become
	useful if a hook writer would like to fake the existence of networks or
	cpu flags.

2014-05-14  Dima Kuznetsov  <dkuznets@redhat.com>

	fakevmstats: Fix debian install paths.
	Remove non-existant file.

2014-05-14  Federico Simoncelli  <fsimonce@redhat.com>

	fileVolume: avoid full size truncation for cow
	During the creation of a new file volume we are supposed to truncate the
	file to its full capacity only if the format is raw. In the cow case we
	should just prepare an empty placeholder to be initialized later on by
	qemu-img.

2014-05-14  Nir Soffer  <nsoffer@redhat.com>

	profile: Introduce profile decorator
	The profile decorator can be used for profiling certain code path, where
	whole application profile is not needed.

	To profile a function, decorate it:

	    from profile import profile
	    import slowmodule
	    ...
	    @profile('expensive_stuff.prof')
	    def test_expensive_stuff():
	        slowmodule.do_expensive_stuff()

	The recorded profile will include all threads running or started while
	my_function was executed.

	Note that you cannot use application wide profile and function profile
	in the same time. To prevent confusion, a profile.Error is raised if you
	try to start a profile while the profiler is already running.

	sp: Remove invalid validation of stale meta data
	When refreshing a storage pool, we used to validate the the metadata
	before refreshing the pool. This validation fail if the storage domain
	was just upgraded from old format where metadata was storaged on the
	medadata lv, to the new format keeping metadata in the lv tags.

	The validation is pefromed now after the refresh, ensuring that the
	metadata is correct after a successful refresh.

	Bug-Url: https://bugzilla.redhat.com/954169

2014-05-13  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Capture migration start time after the semaphore was accquired
	Previously the migration start time was captured at the start of the
	MigrationSourceThread which leads to aborting migrations when the VMs
	had too long to wait for the accquisition of the migration semaphore.

	This patch captures the start time in the moment the migration really
	begins. Additionally this patch logs the time the migration took to
	accquire the migration semaphore to improve debugging of the logs.

	Bug-Url: https://bugzilla.redhat.com/1090109

2014-05-13  Dima Kuznetsov  <dkuznets@redhat.com>

	hooks: Add hook for fake VM stats
	Added 4 new hook-able events:
	 * before_get_vm_stats
	 * after_get_vm_stats
	 Called upon getVmStats() API call.

	 * before_get_all_vm_stats()
	 * after_get_all_vm_stats()
	 Called upon getAllVmStats() API call.

	Also added 'fakevmstats' hook, that is performed on
	after_get_all_vm_stats event and inserts random fake statistics for the
	VM.

2014-05-13  Federico Simoncelli  <fsimonce@redhat.com>

	fileVolume: remove unneeded size conversion in _create
	It quite some time that blockVolume._create is already treating the
	size argument as an integer (e.g. in the SECTORS_TO_MB computation).
	The two places where size is set are: createVolume (hsm.py) where
	validateN does the integer conversion and volume.getSize where
	there's and explicit call to int.

2014-05-12  Stanislav Mikhalevich  <msio57@gmail.com>

	gluster: correct GLUSTER_RPM_PACKAGES
	The patch makes correct GLUSTER_RPM_PACKAGES
	structure for list comprehension (caps.py:454)

2014-05-12  Nir Soffer  <nsoffer@redhat.com>

	sp: setDomainRegularRole is implemented by backend
	Commit ab6014b394 factored out metadata access to pool backend, but left
	one call to StoragePool.setDomainRegularRole() that is implemented now
	by the backend. Detected by pylint.

	Bug-Url: https://bugzilla.redhat.com/1096227

	spec: Require iscsi-initiator-utils >= 6.2.0.873-21
	From version 6.2.0.873-7 up to version 6.2.0.873-20, there is a
	regression in iscsi-initiator-utils, which cause creation of iscsi
	storage domain to fail.

	Vdsm requires now version 6.2.0.873-21 which fixed this regression.

	Bug-Url: https://bugzilla.redhat.com/1076603

2014-05-09  Antoni S. Puimedon  <asegurap@redhat.com>

	bridge_opts: Add iproute2 configurator support
	This patch implements bridging option setting for the iproute2
	configurator (after the previous patch added it for the ifcfg
	configurator).

	Implementing this allows the user of the iproute2 configurator
	to set bridge options like 'forward_delay=2000 multicast_snooping=0'

2014-05-09  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: fix setStoragePoolDescription execution
	In commit ab6014b the pool metadata operations were moved to the pool
	backend, while the call to setStoragePoolDescription was left as it was,
	leading to an attribute error.

	StoragePoolMemoryBackend does not maintain any information about the
	pool so setStoragePoolDescription it is not supported.
	It is safe to ignore the setStoragePoolDescription request because in
	StoragePoolMemoryBackend there's no place where to persist the value
	and engine never tries to read this information.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1096212

2014-05-09  Antoni S. Puimedon  <asegurap@redhat.com>

	bridge_opts: Add ifcfg configurator support
	bridge_opts is a new custom netwrok property that allows to tweak
	the VM networks bridge behavior by passing a string such as:
	    'max_age=2100 forward_delay=300'

	This patch makes processing of such options part of vdsm proper by
	including its processing in the ifcfg configurator.

2014-05-09  Francesco Romani  <fromani@redhat.com>

	vm: report exit reason for migration failed
	this patch add reporting for an explicit exit
	reason when migration fails, instead of
	generic error.

	Relates-To: https://bugzilla.redhat.com/697277

2014-05-09  Nir Soffer  <nsoffer@redhat.com>

	tests: Use testrunner.namedTemporaryDir
	Some tests were working hard ensuring proper cleanup when a test fails,
	instead of using the existing infrastructure.

	tests: Ensure cleanup when tests fail
	Some tests were using an optimstic approach:

	    create_temporary_stuff()
	    self.assertTrue(maybe_false)
	    cleanup_temporary_stuff()

	Other tests, testing directory cleanup code, were not trying to clean up
	at all, assuming that the code works.

	This patch ensure proper cleanup of temporary files when test fails.

2014-05-09  Antoni S. Puimedon  <asegurap@redhat.com>

	net_persistence: Make unified persistence default
	Up until now, we've been using the legacy ifcfg persistence to store
	and retrieve network configurations. This patch switches the default
	to 'unified' so that we'll be able to depend on it moving forward.

	Unified persistence stores its persistence in three places:
	- In transaction data: memory,
	- Current configuration: /var/run/vdsm/netconf/{nets,bonds}
	- Persisted configuration:
	      /var/lib/vdsm/persistence/netconf/{nets,bonds}

	Configurators are responsible to implement a flush method that cleans
	the system from its own persistence files.

	ifcfg: set onboot=no when persistence is 'unified'
	Up until now the ifcfg network configurator had been setting up
	onboot=yes so that when starting up the computer, network.service
	would bring up the vdsm networks and devices. This, however, is
	counter productive when using the 'unified' net_persistence setting
	as the boot up process would:
	1. network.service would create the devices and networks
	2. vdsm-restore-net-config would remove all the networks
	3. vdsm-restore-net-config would flush the ifcfg files
	4. vdsm-restore-net-config would bring up the networks and devices
	   again

	In the case of dhcp, that would imply a lot of duplicated address
	assignment time. Thus, this patch eliminates the step one from
	above.

2014-05-09  Mooli Tayer  <mtayer@redhat.com>

	configfile.py utility for common config file editing operations.
	Add utility to edit config files that is backward compatible
	with libvirt_configure.sh. Support for common operations used
	by vdsm tool. Context managed and commits file upon __exit__
	by replacing original file with a temporary file.

	Also provide a wrapper around ConfigParser to allow read only
	of file with no ini sections([section]).

2014-05-09  Antoni S. Puimedon  <asegurap@redhat.com>

	network: fix unrecognized engine values for STP
	The engine sends STP settings in a 'yes'/'no' range of values, which
	is disjoint from what I set as acceptable in
	I6a1a37485ae40b8c9f2037c671daa3e4c6ac3f90

	This patch fixes the stp booleanization so that it accepts what the
	engine has always sent.

2014-05-09  Nir Soffer  <nsoffer@redhat.com>

	tests: Use testrunner.TEMPDIR
	Storage functional tests used to define their own temporary directory
	path. They use now the testrunner default TEMPDIR which suits also the
	storage tests.

2014-05-09  Francesco Romani  <fromani@redhat.com>

	caps: report if QEMU supports live snapshots
	Depending on QEMU version and configuration, live snapshotting
	may be not supported. In that case, a request sent by engine
	will of course fail.

	Until version 1.2.3, libvirt did not expose any information about
	the live snapshot support, so VDSM, and then engine, had no
	option other than assume this was supported.

	This patch adds detection and reporting of QEMU live snapshot
	support, so engine can make informed choices like, for example,
	disable the relevant fields in the UI.

	Bug-Url: https://bugzilla.redhat.com/1009100

2014-05-09  Antoni S. Puimedon  <asegurap@redhat.com>

	unified_persistence: Fix whitelist value types
	The upgrade script didn't convert the types to what the vdsm schema
	expects for the data in the whitelist.

	This patch addresses that by having a dictionary that has a value
	handling method for each of the elements in the whitelist.

2014-05-09  Francesco Romani  <fromani@redhat.com>

	tests: virt: add infrastructure to test getStats
	This patch adds the initial infrastructure and the first
	very basic tests for the getStats() method.

2014-05-08  Federico Simoncelli  <fsimonce@redhat.com>

	volume: fix qemuRebase function signature
	A sloppy rebase of commit bb50245 hid a necessary update of the
	qemuRebase function signature.

	volume: unify the backing file path computation
	This patch unifies the backing file path computation logic in a single
	function (getBackingVolumePath).

2014-05-08  Nir Soffer  <nsoffer@redhat.com>

	fileUtils: Remove support for direct io on memory filesystems
	In commits e8f3848d12 and 127936c994, we added support for memory based
	filesystems such as tempfs and ramfs. This allows direct io tests to
	work when using temporary files in /tmp. These patches disabled direct
	io when reading or writing to such filesystems.

	Turns out that the code for checking file system type, required for
	these changes, has O(N^2) complexity, and profiles we did in the field
	on RHEV-H systems with many storage domains show that this code is major
	performance issue. We suspect that this issue is related to several
	other bugs and customer cases.

	Further, code using direct io, such as DirectFile, shouldn't try to
	outsmart the caller, disabling direct io magically.  The test writer
	should use the appropriate filesystem for such tests.

	This patch removes the support for memory filesystems, needed only for
	some tests. To prevent failures of the these tests, we use now /var/tmp
	instead of /tmp.

	I tested disabling memory filesystems on two setups.  The first was a
	single customer RHEV-H machine running 3.3 (test performed by customer),
	and the second 2 Fedora 19 hosts running master. Both systems are
	connected to 30 storage domains, are idle and have no vms running. On
	the RHEV-H machine, after disabling memory filesystems, average cpu
	usage dropped from 240% to 17%.  On the Fedora systems, average cpu
	usage dropped from 10% to 5% when running as spm, and from 5% to 3% when
	running as hsm.

	Bug-Url: https://bugzilla.redhat.com/1090664
	Relates-to: https://bugzilla.redhat.com/1074097
	Relates-to: https://bugzilla.redhat.com/1081962
	Relates-to: http://gerrit.ovirt.org/9595
	Relates-to: http://gerrit.ovirt.org/9661

2014-05-08  Francesco Romani  <fromani@redhat.com>

	vm: fix odd migration progress reporting
	migration progress should not start from 100,
	otherwise the user will see smething like:

	progress: 100 -> 0% ... X% ... 100%

	A real-word scenario that shows the need for this patch is
	the following:
	If during the the initialization of migration we experience
	some delay, for example DNS resolve issues, libvirt returns 0
	for all the progress values, and that incorrectly triggered
	the old shortcut, leading to an incorrect initial progress
	value of 100.

2014-05-08  bruce  <xiao-lei.shi@hp.com>

	sampling: Collect numa related statistics
	This patch modifies the HostStatsThread in sampling module to add
	function of collect host numa related statistics data.
	It will add two keys in the rpc response of getVdsStats whose value
	are the host's numa related statistics information.
	Key cpuStatistics, the value is a map, each item follows this format:
	{'cpuCoreId':{'nodeIndex':int, 'cpuIdle':'str', 'cpuSys':'str',
	              'cpuUser':'str'}}
	cpuCoreId      - The id of this cpu core
	nodeIndex      - The numa node index that this cpu core belongs
	cpuIdle        - The idle percentage of this cpu core
	cpuUser        - The user consumed percentage of this cpu core
	cpuSys         - The system consumed percentage of this cpu core
	Key numaNodeMemFree, the value is a map, each item follows this
	format:
	{'nodeIndex':{'memFree':str, 'memPercent':int}}
	nodeIndex      - The index of numa node
	memFree        - The free memory of this numa node in MB
	memPercent     - The used memory percentage of this numa node

	Bug-Url: https://bugzilla.redhat.com/1069303

	caps: Modify numa functions to public
	Modify numa related functions in caps module to be public since they
	are called in other modules.

	vm: Modify memory units of numa node
	This patch is based on http://gerrit.ovirt.org/#/c/25254/ to modify the
	memory units. Since there is a limitation in xmlrpc to transfer large
	integer, this patch modify the memory value to string format in MB unit.

	caps: Repair collect numa information
	This patch repairs the memory issue about collect numa information
	on a non-numa support machine.
	If there is only one cell in the result of libvirt's getCapabilities
	api, we consider it as non-numa support machine. In this situation,
	it will be issue an error when call libvirt's getMemoryStats api.
	Instead, we get the memory stats through /proc/meminfo.

	Bug-Url: https://bugzilla.redhat.com/1069303

	caps: Modify memory units of numa node
	This patch modifies the reported memory units in numa node collection
	process. In order to avoid the limitation of xmlrpc, the memory values
	are modified to string format in MiB unit.

2014-05-07  Dima Kuznetsov  <dkuznets@redhat.com>

	caps: Add selinux enforcement reporting.
	Added selinux field to getVdsCaps() what currently contains the mode of
	enforcement of the host

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=894084

2014-05-07  Antoni S. Puimedon  <asegurap@redhat.com>

	sourcerouting: fix _getRoute not to include local routes
	_getRoute, a method used to find the routes of a vdsm-created table
	in Dynamic Source Routing was listing the routes of the table and
	matching by device. The problem is that such matching would wrongly
	include local scope routes. Having such route would generate an
	IPRoute2 exception when removing routes and rules would never be
	removed, thus leaving behind trash in the rule list.

	After adding source routing for a bridged-network, the ip rules
	would look like:

	    0:      from all lookup local
	    32764:  from all to 240.0.0.0/24 iif test-network lookup 4026531841
	    32765:  from 240.0.0.0/24 lookup 4026531841
	    32766:  from all lookup main
	    32767:  from all lookup default

	The ip routes (as they were selected with
	'ip route show table 4026531841) would look like:

	    toniel602 tests (db78758) # ip route show table 4026531841
	    240.0.0.0/24 dev test-network  proto kernel  scope link  src 240.0.0.1
	    10.34.60.0/22 dev eth1  proto kernel  scope link  src 10.34.60.31
	    169.254.0.0/16 dev eth1  scope link  metric 1002
	    default via 10.34.63.254 dev eth1
	    240.0.0.0/24 via 240.0.0.1 dev test-network
	    default via 240.0.0.254 dev test-network
	    broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1
	    broadcast 240.0.0.255 dev test-network  proto kernel  scope link  src 240.0.0.1
	    local 10.34.60.31 dev eth1  proto kernel  scope host  src 10.34.60.31
	    local 240.0.0.1 dev test-network  proto kernel  scope host  src 240.0.0.1
	    broadcast 240.0.0.0 dev test-network  proto kernel  scope link  src 240.0.0.1
	    broadcast 10.34.60.0 dev eth1  proto kernel  scope link  src 10.34.60.31
	    broadcast 10.34.63.255 dev eth1  proto kernel  scope link  src 10.34.60.31
	    broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1
	    local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1
	    local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1

	As you can see, there is a local entry for dev test-network. This
	entry is parsable with ip vdsm/network/sourcerouting.py:Route.fromText
	and will match the correct device. The issue is that attempting to
	remove such entry will fail on the iproute tool.

	The fix is to call instead:
	'ip route show table all' which makes the output of the iproute tool
	to include table information:

	    240.0.0.0/24 dev test-network  proto kernel  scope link  src 240.0.0.1
	    10.34.60.0/22 dev eth1  proto kernel  scope link  src 10.34.60.31
	    169.254.0.0/16 dev eth1  scope link  metric 1002
	    default via 10.34.63.254 dev eth1
	    240.0.0.0/24 via 240.0.0.1 dev test-network  table 4026531841
	    default via 240.0.0.254 dev test-network  table 4026531841
	    broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src
	    127.0.0.1
	    broadcast 240.0.0.255 dev test-network  table local  proto kernel  scope link
	    src 240.0.0.1
	    local 10.34.60.31 dev eth1  table local  proto kernel  scope host  src
	    10.34.60.31
	    local 240.0.0.1 dev test-network  table local  proto kernel  scope host  src
	    240.0.0.1
	    broadcast 240.0.0.0 dev test-network  table local  proto kernel  scope link
	    src 240.0.0.1
	    broadcast 10.34.60.0 dev eth1  table local  proto kernel  scope link  src
	    10.34.60.31
	    broadcast 10.34.63.255 dev eth1  table local  proto kernel  scope link  src
	    10.34.60.31
	    broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src
	    127.0.0.1
	    local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1
	    local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1
	    unreachable ::/96 dev lo  metric 1024  error -101 mtu 16436 advmss 16376
	    hoplimit 4294967295
	    unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 2002:a00::/24 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 2002:7f00::/24 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 2002:a9fe::/32 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 2002:ac10::/28 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 2002:c0a8::/32 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 2002:e000::/19 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    unreachable 3ffe:ffff::/32 dev lo  metric 1024  error -101 mtu 16436 advmss
	    16376 hoplimit 4294967295
	    fe80::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit
	    4294967295
	    fe80::/64 dev dummy_45  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit
	    4294967295
	    fe80::/64 dev test-network  proto kernel  metric 256  mtu 1500 advmss 1440
	    hoplimit 4294967295
	    unreachable default dev lo  table unspec  proto kernel  metric -1  error -101
	    hoplimit 255
	    local ::1 via :: dev lo  table local  proto none  metric 0  mtu 16436 advmss
	    16376 hoplimit 4294967295
	    local fe80::201:a4ff:feac:8702 via :: dev lo  table local  proto none  metric
	    0  mtu 16436 advmss 16376 hoplimit 4294967295
	    local fe80::bcca:7fff:fe35:44ca via :: dev lo  table local  proto none  metric
	    0  mtu 16436 advmss 16376 hoplimit 4294967295
	    local fe80::bcca:7fff:fe35:44ca via :: dev lo  table local  proto none  metric
	    0  mtu 16436 advmss 16376 hoplimit 4294967295
	    ff02::1 via ff02::1 dev eth1  metric 0
	        cache  mtu 1500 advmss 1440 hoplimit 4294967295
	        ff00::/8 dev eth1  table local  metric 256  mtu 1500 advmss 1440 hoplimit
	        4294967295
	        ff00::/8 dev dummy_45  table local  metric 256  mtu 1500 advmss 1440
	        hoplimit 4294967295
	        ff00::/8 dev test-network  table local  metric 256  mtu 1500 advmss 1440
	        hoplimit 4294967295
	        unreachable default dev lo  table unspec  proto kernel  metric -1  error
	        -101 hoplimit 255

	Now we can just easily filter for those that have the vdsm-created table. The
	old way of asking iproute2 for a specific table suffers of the bug
	https://bugzilla.redhat.com/1094676 which makes querying from but dumping as
	above right.

2014-05-07  Francesco Romani  <fromani@redhat.com>

	vm: add a method to update the devices config
	As part of all creation flows except the recovery one,
	a Vm needs to amend the configuration of the devices
	and update its own configuration accordingly.

	This patch extracts the code which updates the
	Vm.conf devices data and puts it into a separate
	method to make the code a bit more clear.

2014-05-07  Federico Simoncelli  <fsimonce@redhat.com>

	image: remove unused storage_repository attribute

2014-05-06  Antoni S. Puimedon  <asegurap@redhat.com>

	iproute2: Add source routing support
	Up until now, only the ifcfg configurator had support for source
	routing, i.e., adding a routing table for networks that want to
	set a non default (system-wide) gateway.

	This patch implements the needed pieces for iproute2 keeping with
	the current infrastructure of vdsm/network/sourceroute.py, although
	I foresee future patches for simplifying the pieces of the puzzle.

	iproute2: Add static and autoconf ipv6 support
	This patch enables the users of the iproute2 configurator to set
	ipv6 static addresses or change the ipv6 autoconf status of the
	an interface.

2014-05-06  Federico Simoncelli  <fsimonce@redhat.com>

	misc: remove recoveryCallback from watchCmd
	Trying to kill an old process on recovery became obsolete since the
	introduction of deathSignal. Even more, considering that the recovery
	may happen on a different host, killProcRollback had a really little
	chance to succeed.

2014-05-06  Nir Soffer  <nsoffer@redhat.com>

	profile: Add couple of tests
	We plan to modify the profiler so it will be useable for the functional
	tests, where we like to have one profile per test, instead of the
	application wide profile.

	This patch adds couple of tests to make it easier to modify the profiler
	without breaking anything.

	The profile filename and format are now module private constants, so we
	can easily override them during the tests.

2014-05-06  bruce  <xiao-lei.shi@hp.com>

	spec: Add numactl dependency in spec file
	Add numactl package dependency in vdsm spec files. This package is
	needed by vdsm numa feature.

	Bug-Url: https://bugzilla.redhat.com/1069303

2014-05-05  Federico Simoncelli  <fsimonce@redhat.com>

	tasks: loadDumpedTasks shouldn't queue tasks
	loadDumpedTasks should just load the tasks in the unqueuedTasks list.
	It is a subsequent call to recoverDumpedTasks that is in charge to queue
	the recovery (queueRecovery and _queueTask).

2014-05-04  Nir Soffer  <nsoffer@redhat.com>

	profiling: Add an application wide profile
	The built in Python profilers are good for single thread profile but
	given the excessive multi-threaded nature of vdsm, they are useless for
	understing where we spend our time.

	This patch uses yappi <http://code.google.com/p/yappi> to create an
	application wide profile. New configuration options added to enable
	profiling and selecting profile file format.

	The default file format is PSTAT, which can be used with the builtin
	pstats module. Another interesting format is CALLGRIND, used by
	KCachegrind visualization tool.

	Relates-to: https://bugzilla.redhat.com/1074097

	config: Make it easy to create default config
	Previously a default config object was created by invoking a private
	function, modifying the global config, before reading the configuration
	from the config file. This design make it impossible to create a default
	config object for testing, or to reload the configuration while vdsm is
	running.

	This patch replace the private function with public function accepting
	a config object. Now you can create a default config object by creating
	a new config parser and setting the defaults:

	    fake_config = ConfigParser.ConfigParser()
	    config.set_defaults(fake_config)
	    fake_config.set('irs', 'repository', '/my/fake/repository')

2014-05-03  Francesco Romani  <fromani@redhat.com>

	tests: update libvirt fake object
	commit eb2ef555345a32a4f0153ac0341b4c422cdacf8c
	requires the 'close' method to be present.

	This patch updates the tests to let 'make check' run cleanly again.

2014-05-03  Dan Kenigsberg  <danken@redhat.com>

	tool.nwfilter: do not close a connection twice
	My commit eb2ef55534 caused all libvirtconnections to be closed when the
	calling process exists. As reported by Nir on
	http://gerrit.ovirt.org/27313 that commit has a bug and was sloppily
	verified. As of eb2ef55534, no one outside the libvirtconnection module
	should close a libvirt connection.

2014-05-02  Francesco Romani  <fromani@redhat.com>

	recovery: try to restore VMs from recovery files
	on recovery, VDSM tries to recover all the VMs reported
	as active by libvirt.
	If a VM disappears while VDSM is down or restarting, the
	VM silently disappears without VDSM noticing, and the recovery
	file is discarded.

	This patch adds a second recovery try for the VMs which have
	a recovery file but not yet restored using the standard recovry
	loop.

	Those VMs are most down on the recovering host, but VDSM has
	to notify the engine so it is can do proper cleanup and it can
	ensure the correct state is reported to users.

	This patch depends on
	I00ef12883c8035209de0f273925eb8603d6b6da8
	which make sure VMs are setup and reported correctly if
	the underlying QEMU process disappeared.

	Bug-Url: https://bugzilla.redhat.com/1045626

	vm: handle missing domains on recovery
	During recovery, VDSM asks libvirt for the list of existing
	VMs to reconnect to. This works fine on most cases but
	do not handle well the case of a VM vanished (e.g.
	put down or migrated manually) when VDSM is down.

	In order to deal with those cases, we need to consider
	more sources of data to rebuild the list of VM to be
	recovered. The first choice is the collection of recovery
	files. VDSM can iterate through orphan recovery files
	and rebuild empty VM objects for VM somehow disappearead,
	just to let engine collect them.
	This is implemented in
	Id495f6047ba658c2b04da19bd7bf76425b3b9659

	In this case, the attempt to acquire the underlying libvirt
	domain would fail, but we still want to create an hollow VM
	object, granted it is in status Down.

	This patch adds an explicit check in the recovery path to
	make sure that a VM is either created with a valid libvirt
	domain handle, or it is reported as Down so the engine
	can collect its state and explicitely destroy it.

	This patch is part series which collectively fix the bz1045626.

	Bug-Url: https://bugzilla.redhat.com/1045626

	tests: initial tests for vm libvirt callbacks
	This patch adds initial tests for the libvirt callbacks
	of vdsm.virt.Vm.

	The dispatching logic for the libvirt callbacks in clientIF
	is not covered by this patch.

2014-05-02  Liron Aravot  <laravot@redhat.com>

	core: fixing attribute error on fenceSpmStorage
	In change I75493d1db60e51cccd5231b516f963c970d24c99 the pool metadata
	operations were moved to the pool backend, while the call to
	invalidateMetadata in fenceSpmStorage was left as it was, leading to an
	attribute error.

	This patch fixes it by executing the operation on the pool backend object
	rather than on the pool, as the metadata operation are implemented only in
	StoragePoolDiskBackend - there's also a check for the backend type before
	executing it.
	Though it's not the nicest way for doing so, it's the pattern already used in
	hsm.py,therefore in the meanwhile it can be fixed the same way.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1082365

2014-05-01  Liron Aravot  <laravot@redhat.com>

	core: return lver/spm id from pool metadata
	Currently the lver/spm id are being returned as they appear in the
	cluster lock if supported.

	The fenceSpmStorage verb is currently used to manually confirm that
	there's no current spm on the responsibillity of the caller. This verb
	updates the lver/spm id in the pool metadata to indicate that the spm
	role is free.

	This won't help us currently as getSpmStatus will return the info from
	the cluster lock (if supported) which wasn't edited at all. As currently
	we can't edit the information return from cluster lock, we can return
	the same results as in case it wasn't supported by the cluster lock.

	Right now the solution is implemented in StoragePoolDiskBackend only as
	a bug fix, as StoragePoolMemoryBackend isn't being used at the moment.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1092631

2014-04-30  Dan Kenigsberg  <danken@redhat.com>

	Explicitly close libvirt connections at exist
	When a process (such as Vdsm, or `vdsm-tool dummybr`) exists while
	holding an open libvirt connection, libvirt logs an error

	    : error : virNetSocketReadWire:1184 : End of file while reading data: Input/output error

	This patch close all libvirt connections at process exit.

2014-04-30  Vinzenz Feenstra  <vfeenstr@redhat.com>

	schema: Update memory information reported by the agent
	Patch http://gerrit.ovirt.org/#/c/27156/ in the guest agent introduced
	two new variables to be reported. This needs to be reflected in the API

	Bug-Url: https://bugzilla.redhat.com/1024007

2014-04-30  Antoni S. Puimedon  <asegurap@redhat.com>

	ethtool_opts: Add hook for applying network custom property
	ethtool_options is a hook that takes as input a network 'custom'
	property named 'ethtool_opts' that has as its content the
	arguments for the ethtool command line utility.

	This hook detects whether those arguments are valid in the sense
	of applying to nics that belong to the network hierarchy for which
	the custom property has been set.

	As an example of the expected content:
	    '--offload em2 rx on --offload em1 tx on'
	which would apply for a bond that is set over em1 and em2.

2014-04-30  Douglas Schilling Landgraf  <dougsland@redhat.com>

	storage: fix pep issue with image.py
	This patch fix the if indentation that pep complains.
	Introduced by patch 7b4bd1b4.

2014-04-30  Vinzenz Feenstra  <vfeenstr@redhat.com>

	agent: Add new command setNumberOfCPUs(count)
	This adds the support for the new message 'set-number-of-cpus'
	and implements it as GuestAgent.setNumberOfCPUs(count) method in the
	guest agent.

	This shall be called when we hot(un)plug cpus to be able to potentially
	trigger behavior on the guest side to online CPU cores.

	Guest-Agent-API-Version: 1
	Bug-Url: https://bugzilla.redhat.com/1063281

2014-04-30  Dima Kuznetsov  <dkuznets@redhat.com>

	schema: Fix wrong type in GuestNetworkDeviceInfo
	Changed inet and inet6 in GuestNetworkDeviceInfo to be lists as they are
	actually reported by vdsm and received by the engine.

2014-04-30  Tal Nisan  <tnisan@redhat.com>

	Create destination image as preallocated only if format is RAW
	Create a destination image as preallocated only when the destination
	domain does not supports sparseness and the image format is RAW, otherwise
	create it as sparse

	Bug-Url: https://bugzilla.redhat.com/1091956

2014-04-29  Mooli Tayer  <mtayer@redhat.com>

	add all-local in tool Makefile.

2014-04-29  Yeela Kaplan  <ykaplan@redhat.com>

	fileUtils: remove unused method 'isStaleHandle'

2014-04-29  Liron Aravot  <laravot@redhat.com>

	sp: fix spm start when failing to produce domain
	During spmStart we attept to go over all the domains and set their role
	to be regular in case it's not to avoid situation in which there are two
	domains with the master role.
	If we fail to produce any of the domains (which might happen, the
	domains returned by getDomains(activeOnly=True) we shouldn't fail,
	as we attempt to produce all the domains that are marked as active in the
	metadata, but it doesn't mean that they are actually reachable and that
	calling produce() for the domain won't fail.

	In case the we fail to call produce() on domain with
	StorageDomainDoesNotExist exception, it doesn't mean that spmStart should
	fail - otherwise we might never succeed to start spm.

	I believe that we should ignore any exception to avoid the same case in
	different scenarios (for example - failure to alter the metadata), but
	as reviewers requested, let's start with StorageDomainDoesNotExist
	exception only.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1072900

2014-04-29  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vm: Fix guest channel symlink creation handling
	In case of a restart of VDSM the symlinks and sockets won't get cleaned up.
	Commit 4a7af02 partially fixed the issue, however it did not consider the
	case of a crashing VDSM. In case of a crashing or unclean stop (kill)
	of VDSM the symlinks are left behind and the recovery would fail.

	This patch handles these cases and adds a bit more of documentation to the
	code to improve the clarity of the cases it handles.

	Bug-Url: https://bugzilla.redhat.com/1082986

2014-04-29  Antoni S. Puimedon  <asegurap@redhat.com>

	iproute2: add stp setting
	Up unitl now, the iproute2 configurator ignore the bridge object stp
	setting. With this patch, if stp is True, the stp_state of the
	bridge will be set to 1 (no action for False as the default for
	bridge creation is 0).

	ifcfg: fix stp processing
	Some users rely on passing STP=on/off for setting a bridge's stp.
	This worked by passing the option through all the way to the ifcfg
	configurator and have it just copy the key-value to the ifcfg files.
	The problem is that STP was not being popped out of opts, so 'STP'
	would be written to the bridge port devices as well.

	This patch normalizes stp into the Bridge model and takes it out of
	the passthrough.

2014-04-28  Francesco Romani  <fromani@redhat.com>

	virt: migration: restore the usage of 'vmstatus'
	the usage of the 'vmstatus' constants was lost on
	destination in the split of the migration.py.

	virt: stats: move exited vm stats in a method
	this patch moves the ExitedVmStats handling in
	a separate method. No functional changes.

2014-04-27  Mooli Tayer  <mtayer@redhat.com>

	typo in function call should be 'skipontest'

2014-04-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-reg-setup: add import errno
	During vdsm-reg service start it can throw an error about errno.EEXIST
	doesn't exist. This patch adds the import errno.

2014-04-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	spec: remove duplicate entry for BuildRequires
	BuildRequires: python-ethtool appears twice.

	spec: add BuildRequires: rpm-python
	During the make check, the tests modules can import
	caps.py which uses rpm python module and we should set
	BuildRequires for it. This patch adds the BuildRequires.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=837014

2014-04-25  Nir Soffer  <nsoffer@redhat.com>

	lvm: Disable usage of lv_metad daemon
	On current Fedora 19 and 20 lvm version, lvm uses the lvmetad daemon. In
	this configuration, lvm commands do not go any more to the storage to
	read meta data, but use meta data stored in the lvmetad daemon. This
	causes two issues with vdsm:

	- vg_mda_free return 0 when running lvs, causing a warning in vdsm.
	- when creating a new lv, the lv is not seen on other machines in the
	  cluster, failing running vms with the new disk.

	This patch fixes the issue by disabling usage of lvmmetad in vdsm's
	private lvm configuration. lvm commands run by vdsm read metadata from
	storage, while lvm commands running from the shell use lvmetad if
	configured.

	Note that there is a warning in lvm.conf:

	    If lvmetad has been running while use_lvmetad was 0, it MUST be
	    stopped before changing use_lvmetad to 1 and started again
	    afterwards.

	We believe that disabling lvmetad for all access to vdsm volumes is safe
	despite this warning, and lvm developer confirms that it is safe.

	Note: accessing vdsm volumes manually using lvm requires disabling of
	lvmmetad daemon. An admin may do this by modifying lvm.conf, or use the
	--config command line argument:

	    <lvm command> --config "global { use_lvmetad=0 }"

	We considered integrating with lvmetad instead of disabling it. We can
	update lvmetad cache using "pvscan --cache". Using lvmetad, accesing
	meta data is cheap, and maybe we can drop the lvm caching code. This may
	be the right long term solution when lvmmetad is used by default on all
	supported platforms.

	Relates-to: http://lists.ovirt.org/pipermail/users/2014-March/022044.html
	Bug-url: https://bugzilla.redhat.com/1073054

2014-04-25  Federico Simoncelli  <fsimonce@redhat.com>

	qemuimg: support relative backing file in create
	This patch adds the support for creating a qcow2 images with a relative
	backing path. In some cases qemu-img requires to access the backing
	image and being the path relative we need to execute qemu-img with the
	proper cwd.

2014-04-24  Antoni S. Puimedon  <asegurap@redhat.com>

	unified_persistence: Fix defaultRoute type in upgrade script
	Despite the fact defaultRoute is defined by vdsm API to be a boolean
	field, the upgrade to unified persistence script was retrieving it
	as a string. This had the effect that when the ifcfg configurator
	would convert from boolean to 'yes'/'no', both 'True' and 'False',
	being strings would evaluate as True.

2014-04-24  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: use _hsmSchedule for spmStart
	Method spmStart can now take advantage of _hsmSchedule to schedule its
	job (without persistency).
	The spmStart task never needed any persistency because its lifecycle
	is strictly tied to the vdsm process and it doesn't involve any storage
	modification that requires a rollback (or rollforward).

2014-04-23  Federico Simoncelli  <fsimonce@redhat.com>

	qemuimg: use deathSignal when using execCmd
	Adding the deathSignal parameter to the qemu-img commands ensures that
	we won't leave pending processes after vdsm death.

2014-04-23  Francesco Romani  <fromani@redhat.com>

	pep8: fix pep8 1.5.4/1.5.5
	pep8 1.5.4/1.5.5 is even more strict than pep8 1.5.1.
	This patch fixes all he warnings found by pep8 1.5.5.

2014-04-22  Federico Simoncelli  <fsimonce@redhat.com>

	task: support scheduleJob without persistency
	At the moment we are not using any hsm task (the only one is spmStart
	and it's not relying on _hsmSchedule).
	This patch adds the support in taskManager to scheduleJob without any
	persistency, removes the reload of dumped tasks from storageRefresh,
	and finally redefines _hsmSchedule to not use persistency.
	The unused method _hsmSchedule is not removed because it will be used
	by spmStart in a following patch.

2014-04-22  Francesco Romani  <fromani@redhat.com>

	virt: graphdev: add hasSpice helper
	add an helper property to display if a Vm has a SPICE display
	or not.

2014-04-22  Antoni S. Puimedon  <asegurap@redhat.com>

	netlink: User libnl-3 when available
	On new distibutions (Fedora, ubuntu, el7, etc) python-ethtool uses
	libnl3 while vdsm was using libnl1. The problem was that libnl1
	and libnl3 use the same algorithm for allocating netlink ports and
	collided. This patch fixes it by using libnl3 if ethtool uses it.

	Bug-Url: https://bugzilla.redhat.com/1078312

2014-04-22  Francesco Romani  <fromani@redhat.com>

	dmi: remove the printInfo function
	according to 'git grep' is never called.
	make check passes cleanly.

2014-04-22  Federico Simoncelli  <fsimonce@redhat.com>

	fileSD: enable mailbox on file domains
	Since we now support mixed-type storage pools (block and file) we
	must enable the mailbox on file domains in order to satisfy the
	extension requests needed by block domains.
	On file domains the inbox and outbox files were prepared empty so
	we also need to extend them to the proper size as soon as possible:

	* on SPM start
	* on master migration

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1083476

2014-04-22  Francesco Romani  <fromani@redhat.com>

	vm: fix _dom access when QEMU is dying
	commit 8fedf8bde3c28edb07add23c3e9b72681cb48e49 introduced a tiny
	window for races between libvirt notifications (vm._onQemuDeath)
	and polling for stats from engine.

	This is demonstrated by bz1073478, but it really boils down
	to how events are serialized.
	In this case, a stats request from engine is being answered
	while QEMU is being reported down and the _dom handle is being
	shut down, we end up with an uncaught exception.

	This patch address the reported race between polling and qemu death.
	The window of vulnerability is (supposed to be) tiny
	and the issue itself is hard to reproduce.

	Sampling thread is theorically vulnerable to the a race of the
	same type, but this problem will be addressed in a separate
	patch.

	Bug-Url: https://bugzilla.redhat.com/1073478

2014-04-22  Federico Simoncelli  <fsimonce@redhat.com>

	task: update the message when running jobs
	Before this patch the message reported by a task was left to "Task
	is initializing" for all the execution time.
	This patch updates the message reporting what job of the task is
	currently running.

2014-04-22  Dima Kuznetsov  <dkuznets@redhat.com>

	core: Add boot time to the getVdsStats API
	Read boot time from /proc/stat and report in host stats

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1070348

2014-04-22  Federico Simoncelli  <fsimonce@redhat.com>

	dispatcher: use a method wrapper instead of Protect
	This patch replaces the superfluous Protect class with a method wrapper.

	dispatcher: remove system.methodHelp support
	Since when we wrapped XML-RPC requests in BindingXMLRPC and API the
	methodHelp implementation became useless as it's never reached.

2014-04-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-reg-setup: fix logging call
	_createUpgradeDir() uses log.error() which log is not defined.
	This patch fix the call and moves the logging setup before
	the _createUpgradeDir() call.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1056981

2014-04-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	iscsi.py: cleanup - remove temp variable
	Don't need to assign new variable to use target.iqn

2014-04-17  Federico Simoncelli  <fsimonce@redhat.com>

	volume: improve volume clone logging
	This patch adds the traceback output in case of an exception,
	removes the superfluous "Volume.clone:" prefixes and uses the
	correct formatting.

	qemuimg: create size should be a string
	execCmd requires the command list items to be strings.

	lib: rename qemuImg to qemuimg for pep8 compliancy
	Modules should have short, all-lowercase names.

2014-04-17  bruce  <xiao-lei.shi@hp.com>

	tests: add numa feature test data file
	Commit 9d3311320 added a new data file for unit tests. This change
	adds it to build-related configuration files.

	Bug-Url: https://bugzilla.redhat.com/1069303

	caps: Collect numa information
	This patch modifies the caps module to add function of collect
	host numa information and report to ovirt engine.
	It will add three keys in the rpc response of getCapabilities
	whose value are the host's numa related information.

	Key numaNodes, the value is a map, each item follows this format:
	{'nodeIndex':{'cpus':['int'], 'totalMemory':int}}
	nodeIndex      - The index of numa node
	cpus           - The cpu ids(see the cpu id in libvirt api's
	                 capabilities function) which belong to this
	                 numa node
	totalMemory    - The total memory of this numa node in MB

	Key numaNodeDistance, the value is a map, each item follows this
	format:
	{'nodeIndex':[distanceList]}
	nodeIndex      - The index of numa node
	distanceList   - Distances from self to other nodes in sequence,
	                 including self to self

	Key autoNumaBalancing, the value is a int, represents the status
	of auto numa balancing function.

	Bug-Url: https://bugzilla.redhat.com/1069303

2014-04-17  Francesco Romani  <fromani@redhat.com>

	gluster: use the any() builtin
	use
	  any()
	instead of
	  'True' in collection.

	Tiny cleanup patch found while fixing the complains of pep8 1.5.5.

2014-04-16  Federico Simoncelli  <fsimonce@redhat.com>

	blockSD: rename mapMetaOffset to getVolumeMetadataSlot
	The name of the BlockStorageDomain method mapMetaOffset was not
	descriptive enough. The purpose of the method was to return the
	metadata slot of a volume, therefore it has been renamed.

2014-04-16  Vinzenz Feenstra  <vfeenstr@redhat.com>

	agent: number-of-cpus reporting support
	This patch implements handling of the new message 'number-of-cpus'

	The 'count' argument of the message sent by the guest agent is an integer
	and represents the number of CPU cores are visible on the guest OS side.
	If the value is -1, the reporting is not supported or implemented for the
	guest OS.

	The value is exposed to the engine via RunningVmStats structure as
	'guestCPUCount' value.

	Bug-URL: https://bugzilla.redhat.com/show_bug.cgi?id=1063281
	Guest-Agent-API-Version: 1

2014-04-16  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: add bridge option reporting
	This patch adds reporting of the bridge options that reside in
	/sys/class/net/<bridge_name>/bridge/<opt_name>

2014-04-16  Federico Simoncelli  <fsimonce@redhat.com>

	task: remove unused _addTask method

2014-04-16  Dan Kenigsberg  <danken@redhat.com>

	pep8: clean remaining E713

2014-04-16  Francesco Romani  <fromani@redhat.com>

	tests: virt: retry to connect to VDSM at startup
	This patch makes the functional tests retry to connect
	to the VDSM instance before to give up and raise an error.

	The purpose is let tests to actively wait for VDSM
	instance to be up instead of blindly wait some time and
	hope for the best.

	This will help us to drop the 10s sleep we currently
	have in our virt functional tests job.

2014-04-15  Federico Simoncelli  <fsimonce@redhat.com>

	fileSD: unify the metadata permissions definition
	This refactoring is unifying the metadata permissions definition in one
	constant.

	sd: improve metadata sizes definition
	This refactoring is moving the definition of the metadata sizes in a
	dictionary using integers instead of strings.

2014-04-14  Antoni S. Puimedon  <asegurap@redhat.com>

	schema: publish custom network properties
	This patch makes part of the formal api a network attribute named
	'custom' that allows the user to pass a free-form dictionary of
	attributes that may be used by vdsm or its hooks to perform actions.

2014-04-11  Amador Pahim  <apahim@redhat.com>

	hook: spiceoptions: To provide spice option attributes to vm
	This hook goes through VM definitions xml file and manipulate its
	graphics device if the protocol type is spice. This can be used to
	configure spice options. This hook script will be really useful to
	configure some of the spice optimization attributes and values
	like image, streaming, clipboard..etc

	For ex:

	  <graphics type='spice' port='-1' tlsPort='-1' autoport='yes'>
	     ******
	    <image compression='auto_glz'/>
	    <streaming mode='filter'/>
	    <mouse mode='client'/>
	  </graphics>

2014-04-11  Antoni S. Puimedon  <asegurap@redhat.com>

	rpmspec: Drop Fedora <19 special cases

2014-04-10  Antoni S. Puimedon  <asegurap@redhat.com>

	netlink: Re-order 1.public, 2.private, 3.complex
	Reorder the module parts according with
	    1.public,
	    2.private,
	    3.complex

	This way it is much easier for onlookers to find what they look for
	and puts the complex guts of the module right at the end.

2014-04-10  Sandro Bonazzola  <sbonazzo@redhat.com>

	packaging: add qemu user to cdrom group
	Allow to boot VMs from host CD-ROM.

	Bug-Url: https://bugzilla.redhat.com/1082028

2014-04-10  Antoni S. Puimedon  <asegurap@redhat.com>

	custom_net_props: blacklist 'custom' for ifcfg configurator
	The ifcfg configurator has a pass network options through that makes
	those options that are not blacklisted reach the ifcfg files.
	However these options must be textual and valid to initscripts to
	be of any use. This patch blacklists custom as it is neither textual
	nor valid initscripts.

2014-04-10  Francesco Romani  <fromani@redhat.com>

	recovery: clean the VM recovery procedure
	This tiny patch cleans up and optimizes the VM recovery detection.
	While looping on the VMs returned by libvirt, we must check each one
	of them to know if it has to be handled by VDSM.
	This check, however, considers only the properties of the VM under exam,
	so we can do this in one go instead of using two loops
	(actually an explicit loop and one implicit in a list comprehension)

	This patch is not for performance but to to make the code a tiny bit
	cleaner and to fix this message:

	./vdsm/clientIF.py:493: list comprehension redefines 'vm' from line 483

	emitted by some versions of pyflakes.

2014-04-09  Dan Kenigsberg  <danken@redhat.com>

	pep8: silence several errors with no syntactical change

2014-04-09  Dima Kuznetsov  <dkuznets@redhat.com>

	hooking: Add convenience functions for JSON hooks
	Added read_json/write_json, similar in fashion to existing *_domxml
	functions

	hooking: Update file() to open()
	file() is getting deprecated.

2014-04-09  Arik Hadas  <ahadas@redhat.com>

	pad memory volume only when the storage domain is file based
	Memory volume should be padded only when the storage domain in which the
	memory volume resides is file-based device. We used to check the type of
	the storage pool, assuming that all the domains within the pool are from
	the same type. This assumption is not true anymore, as we can have
	different types of storage domains in the same storage pool, in case of
	shared storage. So from now on, we'll check the type of the storage
	domain in which the memory volume is in, and only if it is filed-based
	device we'll pad the volume.

	Bug-Url: https://bugzilla.redhat.com/1082941

2014-04-08  Sandro Bonazzola  <sbonazzo@redhat.com>

	nit: remove duplicate command

2014-04-06  Yeela Kaplan  <ykaplan@redhat.com>

	oop: remove unused attributes

2014-04-04  Francesco Romani  <fromani@redhat.com>

	pep8: lib cleanups for pep-1.5.x
	lib/* is now pep8 1.5.x clean.

	pep8: storage cleanups for pep-1.5.x
	storage/* is now pep8 1.5.x clean.

2014-04-04  Dan Kenigsberg  <danken@redhat.com>

	vm tests: avoid leaving /tmp/blechs.recovery behind
	There's code that expects P_VDSM_VAR_RUN to end with a slash.

2014-04-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm_reg: remove engine.py.in
	engine.py.in was stored in vdsm_reg as part of ovirt-node
	TUI registration stuff. Currently we have ovirt-node-plugin-vdsm
	project which contain engine_page.py replacing this old file.

2014-04-04  Tal Nisan  <tnisan@redhat.com>

	Allow moving of sparse images to a block domains
	When attempting to move a sparse image from a file domain to a block domain
	the destination image is created as sparse which is not supported on block
	domains.
	This patch allows to create the images preallocated on domains that do not
	support sparseness

	Bug-Url: https://bugzilla.redhat.com/1063996

2014-04-03  Francesco Romani  <fromani@redhat.com>

	pep8: hooks cleanups for pep-1.5.x
	hooks/* is now pep8 1.5.x clean.

	pep8: vdsm cleanups for pep-1.5.x
	vdsm/*.py is now pep8 1.5.x clean.

2014-04-03  Nir Soffer  <nsoffer@redhat.com>

	blockSD: Refactor matadataValidity
	The previous code was confusing, using positive conditions to set the
	falsy result; this patch make it clear.

2014-04-03  Francesco Romani  <fromani@redhat.com>

	vm: add boot menu support
	libvirt supports interactive boot menu at guest startup,
	depending on the support of the underlying hypervisor
	and/or BIOS.
	The boot menu can be used to select the boot device
	priority.

	This patch exposes the boot menu setting at VDSM level.

	Bug-Url: https://bugzilla.redhat.com/1047624

	virt: migration: rename migration threads
	drop the now redundant 'Migration' prefix.
	No functional or behavioural changes.

	virt: migration: move threads in a separate module
	This patch moves the migration control threads
	in a separate module.

	No functional/behavioural changes.

2014-04-02  Yeela Kaplan  <ykaplan@redhat.com>

	lvm: remove unused add/remove tags

2014-04-02  Antoni S. Puimedon  <asegurap@redhat.com>

	Do not allow empty network names (bridged nor bridgeless)
	It was possible to create empty network names that ended up in
	libvirt networks called 'vdsm-'. This patch solved it returning
	the appropriate error and not allowing empty bridge names in the
	internal representation either.

	Bug-Url: https://bugzilla.redhat.com/1078899

2014-04-02  Francesco Romani  <fromani@redhat.com>

	pep8: virt cleanups for pep8-1.5
	virt is now pep8-1.5 clean

2014-04-02  Donn Seeley  <donn.seeley@windriver.com>

	vds-tool: keep env on sysV service
	Update env when SYSTEMCTL_SKIP_REDIRECT is set instead of dropping
	it.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1081621

2014-04-02  Dan Kenigsberg  <danken@redhat.com>

	pep8: make pep8-1.5 happy with E241

	pep8: make pep8-1.5 happy with E265

2014-04-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Initial commit for vdsm-tool testing infrastructure
	Running in make check, flexible in modifying the configuration files as
	required for the specific test.

2014-04-01  Dima Kuznetsov  <dkuznets@redhat.com>

	util: fix execCmd to accept tuples
	There was an issue occasionally when flags were given along with a
	command in a tuple, there was an exception in execCmd, because +
	operator was used to append tuple with commands to a list.

2014-04-01  Antoni S. Puimedon  <asegurap@redhat.com>

	network: Introduce the network package
	This is the first patch of the topic branch that wants to end up with
	the vdsm directory having all networking code properly sorted into
	the network package and network scripts.

2014-04-01  Francesco Romani  <fromani@redhat.com>

	tests: make virtTests run on RHEL/CentOS
	This patch includes fixes to let the virt functional test run
	on RHEL/CentOS 6.x:

	* add /sbin to mkinitrd search path
	* fix usage of string formmatting, and to be python 2.6 friendly
	  along the way.

2014-04-01  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Remove all guest sockets on cleanup
	Previously vdsm was cleaning up the guest socket files, but when
	introducing the symlinks we started leaving behind the real sockets
	and just removed the symlinks.
	This patch fixes this by first removing the file the symlink points
	to and then removes the symlink.

	Bug-Url: https://bugzilla.redhat.com/1052097

2014-03-31  Dan Kenigsberg  <danken@redhat.com>

	VmStatsThread: make _getNicStats testable
	With this test, the shame of change Ie356d5f96c73b6 should not repeat.

2014-03-31  Nir Soffer  <nsoffer@redhat.com>

	clientIF: Clean up shutdown process
	clientIF.serve used to check if shutdown process has started once every
	3 seconds, leading to unwanted delay, that may cause vdsm to be killed
	before a profile was written.

	This patch changes clientIF.serve to start the bindings and return,
	allowing the upper layer to wait for a shutdown signal in a more
	efficiant way. This allows stopping a profile when shutdown signal is
	received, before starting the shutdown process, ensuring that a profile
	is written even if shutdown process got stuck and vdsm is killed.

	This way is also more safe, as prepareForShutdown is called from the
	main thread, instead of the signal handler context, where it is not safe
	to call any code. In particular, setting a threading.Event in this
	context cause a deadlock.

	init: Normalize shutdown timeout
	On sysvinit, vdsm was killed 2 seconds after receiving a SIGTERM.
	Currently clientIF check if shutdown is started only once every 3
	seconds. This make it impossible to write profile data when vdsm is
	terminated. On systemd, since no timeout was defined, the default 90
	seconds timeout was used. On upstart, the default 5 seconds was used.

	This patch normalizes the shutdown timeout to 10 seconds on all
	platforms. This seems to be enough for saving profile data and
	performing clean shutdown.

2014-03-31  Xavi Francisco  <xfrancis@redhat.com>

	Add logging to rules operations in supervdsmServer
	Previously when udev rules were created and removed, we had no logging,
	so trying to debug issues with udev rules was very hard. This patch log
	creation and removal of udev rules.

	Although the whole methods were logged using logDecorator the creation
	and removal of each rule was not logged independently

2014-03-31  Sergey Gotliv  <sgotliv@redhat.com>

	iscsi: Specify tpgt to impose creation of a new style node record
	There are 2 formats for an iSCSI node record.

	An old style format where the path is /var/lib/iscsi/nodes/{target}/{portal}
	and a new style format where the portal path is a directory containing a
	record file for each bounded iface. For example:

	/var/lib/iscsi/nodes/{target}/{portal}/eth0
	/var/lib/iscsi/nodes/{target}/{portal}/eth1

	Explicitly specifying tpgt(target portal group tag) on iSCSI login imposes
	creation of the new style node record which enables to access a portal
	through multiple ifaces for multipathing.

2014-03-30  Nir Soffer  <nsoffer@redhat.com>

	clientIF: Remove unused _memLock
	_memLock was used by memTestAndCommit(), which was removed in 6fcfb09456
	on May 2011.

2014-03-28  Francesco Romani  <fromani@redhat.com>

	performance: switch to cPickle
	profiling of the creation code path shows
	that the impact of pickle is not negligible.

	cPickle is a safe drop-in replacement, so this
	patch switch to it for the sake of performance.

	considering a 'monday morning' scenario (mass parallel
	start of many VMs) we see ~5% improvement in startup time

	before:
	mean: 27.984s stdev=1.074s
	best: 10.507s stdev=1.604s
	worst: 42.711s stdev=1.996s
	total: 895.479s stdev=34.375s

	after:
	mean: 26.423s stdev=1.413s
	best: 9.785s stdev=1.669s
	worst: 40.833s stdev=2.452s
	total: 845.523s stdev=45.218s

	pickle is used to save the VM params for checkpointing,
	so the benefits should affect, possibly with lower extent,
	to all VM operation flows.

	py3: introduce a compatibility helper
	introduce a module to host all the compatibility
	code we need to support python2 and python3 with
	the same codebase.

	clientIF: prepareVolumePath payload cleanup
	the prepareVolumePath code path for cdrom/floppy
	images is complicated due the fact the code has to
	deal with both regular and payload-created
	images (vmPayload, used by cloud-init).

	The code has been patched various times, and in the end the
	code became more complex than is needed.

	This patch refactors the existing code in order to simplify
	it, without changes of behaviour.

	Relates-To: http://gerrit.ovirt.org/22928/
	Relates-To: https://bugzilla.redhat.com/1047356

2014-03-28  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Rename guestIF{,Tests}.py to guestagent{,Tests}.py

2014-03-28  Douglas Schilling Landgraf  <dougsland@redhat.com>

	configurator: use sanlock user constant
	Replace the static value with a constant.

2014-03-28  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Rename vmChannels.py to vmchannels.py

2014-03-28  Dan Kenigsberg  <danken@redhat.com>

	vdsm-reg: eliminate the VDSMBRIDGE macro
	VDSMBRIDGE is a historical macro holding the "management bridge" of
	Vdsm. Nowadays, this bridge may well not exist as management network are
	better kept bridge-less. The concept of "management bridge" is currently
	used only within vdsm-reg, and only when it needs to register to a legacy
	oVirt-Engine that expects the bridge to exist.

	This patch hides the unneeded macro within vdsm-reg, to be completely
	dropped when vdsm-reg is replaced by an ovirt-node-register utility.

2014-03-28  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Move virt things into vdsm/virt

2014-03-28  Dan Kenigsberg  <danken@redhat.com>

	vdsm-reg: collect vdsm-config.log
	vdsm-config's log file was dumped in the catch-all /var/log directory.
	Placing it under /var/log/vdsm-reg makes a nicer compartmentalization,
	and makes vdsm's sosreport plugin collect it.

2014-03-28  Nir Soffer  <nsoffer@redhat.com>

	utils: Optimize namedtuple definition in pidStat
	Profiling idle vdsm reveal that 60% of cpu time is spent in creating
	pointless namedtuples. In particular, 823 calls were made in 4.88
	seconds of cpu time, invoking collections.py genexpr function 296805
	times.

	This patch creates the one and only namedtuple needed by pidStat when
	the module is imported.

2014-03-28  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Convert vm status strings to constants
	This patch replaces all vmstatuses to constants.
	Additionally added not documented 'Powering up' status to schema.

2014-03-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	pre-start: touch/configure vdsm logs
	During pre-start of vdsm we must create vdsm logs files
	with proper perms/user/group/ if they doesn't exist.
	This situation happens currently because during
	ovirt node build it cleans /var/log dir so it will
	remove all vdsm logs created during rpm install.

	configurator: move usermod to spec
	vdsm-tool configure --force adds to /etc/group (qemu/kvm) sanlock
	but doesn't persist the file in ovirt node distro which will
	affect vdsm start on next reboot. This patch adds the usermod to
	spec file.

2014-03-25  Dan Kenigsberg  <danken@redhat.com>

	vm iface stats: fix arithmetic
	My commit 672ff43 has a serious arithmetic flaw: the modulu must be
	taken on the sample difference!

	Bug-Url: https://bugzilla.redhat.com/1062166

2014-03-25  Sergey Gotliv  <sgotliv@redhat.com>

	hsm: Rename _BCInitiatorNameResolve function
	Function _BCInitiatorNameResolve actually resolves the iface name not
	the initiator name so new name emphasizes that.

	hsm: Distinguish between iface and initiator when creating iSCSI iface
	VDSM mistakely assumed that iface name and iface initiator name are the
	same, so if admin configured specific initiator name in the host its
	value is mistakenly overwritten by ifaceName in the iface file. In such
	a case the host fails to establish the iSCSI connection with the target.

2014-03-24  Douglas Schilling Landgraf  <dougsland@redhat.com>

	libvirt_configure: move unpersist up
	On commit b4efa0036e065 we have fixed the failure on
	mv command to logrotate file but a few lines above vdsm
	executes a sed which also requires the file be unpersist before it.
	This patch move the unpersist command some lines above.

2014-03-24  Maor Lipchuk  <mlipchuk@redhat.com>

	bindingXMLRPC: Log unhandled exception for new Thread
	Adding a traceback log for unhandled exceptions when execute
	start in BindingXMLRPC class so it will not die silently.

2014-03-24  Vinzenz Feenstra  <vfeenstr@redhat.com>

	tests: Fix pep8 indention error introduced by numa tests

2014-03-24  Dan Kenigsberg  <danken@redhat.com>

	nit: sudoers: drop unused executable
	Should have been dropped by "Move prepare-vmchannel to supervdsm"
	http://gerrit.ovirt.org/4242

2014-03-24  bruce  <xiao-lei.shi@hp.com>

	vm: Set numatune and guest numa topology
	Modify vm module to provide the functions of set numatune and guest
	numa topology when create vm.
	Modify vdsClient to add the related options.
	The xml format of numatune is like:
	<domain>
	  ...
	  <numatune>
	    <memory mode="strict" nodeset="1-4,^3"/>
	  </numatune>
	  ...
	</domain>
	The format of guest numa topology is like:
	<cpu>
	    ...
	    <numa>
	      <cell cpus='0-3' memory='512000'/>
	      <cell cpus='4-7' memory='512000'/>
	    </numa>
	    ...
	</cpu>
	More detailed libvirt reference in:
	http://libvirt.org/formatdomain.html#elementsNUMATuning and
	http://libvirt.org/formatdomain.html#elementsCPU

	Bug-Url: https://bugzilla.redhat.com/1069303

2014-03-22  Douglas Schilling Landgraf  <dougsland@redhat.com>

	libvirt_configure: persist cmd qemu-sanlock.conf
	On a ovirt-node if executing vdsm-tool configure --force
	with libvirt sanlock enabled it will set /etc/libvirt/qemu-sanlock.conf
	but won't use persist command so next reboot the changes will be lost
	and vdsm-tool will complain about libvirt not configured during vdsm start.

2014-03-22  Francesco Romani  <fromani@redhat.com>

	vm: consider 'action' when handling I/O errors
	When VDSM receives an I/O error event from libvirt,
	it does not consider the value of the 'action' callback
	field, and thus considers the guest CPU stopped.

	This is true in the default configuration, which translates
	to the disk write error policy 'stop', but not necessarily
	true if the said policy is 'enospace'.

	In this case the reported state of the CPU goes out of sync.

	Since the error policy may be changed through an hook,
	the safest thing to do is actually check the 'action'
	value as reported by libvirt in the IOError callback.

	This patch adds this check, and additional logging in
	the case the guest CPU is reported running after I/O
	errors.

	Bug-Url: https://bugzilla.redhat.com/1064630

2014-03-21  Antoni S. Puimedon  <asegurap@redhat.com>

	setupNetworks: Fix incorrect mtu overriding when adding multiple networks
	When configuring several networks over a bond, if the iteration over
	the networks to be added made networks with lower MTUs to be added
	after those with higher ones, the last mtu, regardless of value would
	be set.

	This was because the _netinfo object is passed from addNetworks to
	addNetworks and the objectivize of the succeeding addNetworks would
	not see the higher MTUs set by the preceding addNetworks. This would
	only affect the bond MTU when some bond setting would be detected
	as changed and it would trigger bond reconfiguring (for a list of
	what is checked for changes, see netmodels.py:Bond.configure).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1072411

2014-03-21  pkliczewski  <piotr.kliczewski@gmail.com>

	test: ssl reactor not tested in jsonrpc tests
	The ssl flag was not passed to constructReactor so plain tcp reactors
	were only used.

2014-03-21  Martin Betak  <mbetak@redhat.com>

	vdsm: Add ACPI support for VM shutdown/reboot
	Refactored the existing shutdown/reboot code to utilize the
	utils.CallbackChain helper.

	Extracted existing code to new module vmCommands.py and split into
	following classes:

	VmPowerDown    - base class handling CallbackChain functionality
	|-- VmShutdown - shutdown specific callbacks
	`-- VmReboot   - reboot specific callbacks

	Both power-down commands now try first guestAgent (if available)
	and if given power-down action hasn't succeeded in given `timeout`
	ACPI variant will be tried (again if available).

2014-03-21  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: StoragePool connect missing default value
	DomainsMap argument is defined in schema as optional but it is missing
	default value.

2014-03-20  Antoni S. Puimedon  <asegurap@redhat.com>

	vnic QoS: Fix specParams to XML definition conversion
	VDSM API specifies specParams input and output data to have values
	specified as integers. In order to generate valid XML, those values
	should have been converted to strings (and the test should have been
	passing integers as per VDSM schema).

	This patch fixes the conversion code and the tests for it (fix one,
	add a new one for the update flow).

	Bug-Url: https://bugzilla.redhat.com/1067064

2014-03-20  Kiril Nesenko  <knesenko@redhat.com>

	Add contrib directory to the tarball
	- Added contrib directory to the tarball
	- Moved vdsm/ut/ivdsm.py to contrib
	- Removed vdsm/ut/

2014-03-20  Tal Nisan  <tnisan@redhat.com>

	Allow getFileStats for non NFS ISO domains
	getFileStats only allowed file stats to be gathered from NFS ISO domains.
	We currently support ISO domains on any file storage domain so the check
	was corrected.

	Bug-Url: https://bugzilla.redhat.com/1075172

2014-03-19  Dan Kenigsberg  <danken@redhat.com>

	openstack_net hook: search for ovs_vsctl only when needed
	Bug-Url: https://bugzilla.redhat.com/1077283

2014-03-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	Avoid to recompile namedtuple ATTR classes in lvm.
	Re-defining the ??_ATTR classes may be hurting the performance
	during the VM creation (preliminary). This patch avoids attribute
	class creation each time the lvm object is recreated.

	Should be noted that re-creating lvm cached objects during the VM
	creation is not required, therefore paths modified by the actual
	patch should not be called in such scenario.
	This abnormal situation will be corrected in a following patch.

	Dealing with variable attribute strings is not required for the
	actual development of oVirt and the lvm module, then
	_attr2NamedTuple() can be removed.

2014-03-17  Dan Kenigsberg  <danken@redhat.com>

	pep8: use multiline blacklist

2014-03-13  Douglas Schilling Landgraf  <dougsland@redhat.com>

	libvirt_configure: unpersist logrotate.d/libvirt
	On commit 247a76e7 we moved the libvirt settings to libvirt_configure.sh.in and now
	we see that vdsm cannot rename temp. file to /etc/logrotate.d/libvirtd on
	ovirt-node system at the stage we execute vdsm-tool configure --force.
	This patch will add the command unpersist before renaming the file,
	otherwise ovirt-node will complain with "Device or resource busy".

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1074257

2014-03-12  Francesco Romani  <fromani@redhat.com>

	vm: cleanup post-libvirt merge code
	after the libvirt.py merge a couple of methods remained
	dangling and with out-to-date comment.

	This tiny patch drop unused code, and improve the documentation
	of the still useful code with the current state and the feature
	gap still open with libvirt.

2014-03-10  Mooli Tayer  <mtayer@redhat.com>

	minor changes in passwd.py
	Replace Exception with RuntimeError.

2014-03-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	sos: Support SOS version 3
	This patch will add support to sos 3 API and keep compatible
	with old API.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1060383

2014-03-07  Dan Kenigsberg  <danken@redhat.com>

	cleanup: make VmDevice.custom ever-present
	Device configuration may carry a "custom properties" dictionary that is
	copied into its respective VmDevice object. If no such dictionary exist,
	the VmDevice.custom is never set.

	This patch removes this duality. VmDevice.custom is always there, but it
	may be empty if the user has not set any device-specific custom
	property.

	interface xml: allow Engine to specify number of queues
	If a vNIC is used for in-host communication between VMs, its throughput
	would gain if it is allocated with multiple queues, numbering as the
	vCPUs of the VM. This comes with a price of pinning host memory for this
	purpose. Cf. http://www.linux-kvm.org/page/Multiqueue.

	This patch exposes the "queues" per-device custom property which can be
	set in a vNIC profile in Engine. Enable it there with

	    engine-config -s "CustomDeviceProperties={type=interface;prop={
	        other-nic-properties;queues=[0-9]*}}"

	Note that this property is currently supported only by libvirt >= 1.0.6.
	Older versions silently ignores it.

	interface xml: add <driver> subelement in an extendible way
	This patch makes no functional change. A <driver> subelement is added to
	an <interface> element iff requested by the "vhost" custom property.

2014-03-07  Francesco Romani  <fromani@redhat.com>

	stats: report detailed VM down status
	When a VM goes down it reports an exitCode and an
	exitMessage which is passed verbatim to the VM log.

	In order to have translatable messages, a more detailed
	exit reason code is needed.
	This patch is the first step towards an explicit, detailed
	exit reason value. It laids the ground for a full resolution.

	A new explicit exit reason code field is introduced in the
	response, to be filled with the detailed status code.
	The field is added separately for backward
	compatibility with the existing interface.

	Future work will split the GenericError code into detailed
	codes.

	Bug-Url: https://bugzilla.redhat.com/557125

2014-03-06  Dan Kenigsberg  <danken@redhat.com>

	pep8: whitelist everything
	.. except for four auto-generated *.py files

2014-03-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	Install vdsm.conf.example during build
	The sample conf is installed by spec under vdsm docs. Docs files are not part
	of RHEV-H installation to keep rhev-h env small as possible.
	Although, the sample file was delivered only on Fedora which is the
	standard for package delivering (to publish sample conf with the
	package installation).
	The sample file was requested also in rhev-h by users for reference.
	This patch moves the file installation from spec to create it during
	make.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1023941

2014-03-05  Dima Kuznetsov  <dkuznets@redhat.com>

	logging: Enable all loggers
	Unless disable_existsing_loggers is passed as false, logging checks
	the pre-existing logs and disables any that are not mentioned in the
	configuration file, this causes various logs to be not visible.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1060510

2014-03-04  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: bootproto4 is now 'dhcp'/'none' instead of a boolean
	testSetupNetworksAddDelDhcp verifies the new property.

	Legacy BOOTPROTO parameter is set in a network's or iface's
	['cfg'] dictionary to mimic information from ifcfg files
	which may be missing in current setups.

	Bug-Url: https://bugzilla.redhat.com/987813

	netinfo: Add shorthand NetInfo.bridges for consistency

2014-03-03  Antoni S. Puimedon  <asegurap@redhat.com>

	unified pers: fix restoration when moving from ifcfg pers
	Up until now we were only flushing the persistence of the
	configurator currently set up. This had the problem that when
	switching between configurators and persistence models, old
	persistence remainders could be left over.

	Bug-Url https://bugzilla.redhat.com/1064530

	netinfo: reduce netinfo instantiation to be closer to linear
	During each setupNetworks operation there were several points that
	could call for a full NetInfo instantiation. This patch reduces
	the amount of points that do so by replacing instantiation with
	very fast system polling of:

	- ifaceUsers: which will now check link objects and networks only if
	  necessary
	- vlansForIface: which will just use link objects.

	Bug-Url: https://bugzilla.redhat.com/1053114

	ifcfg: stop leaving leftover bridges when removing bonded networks
	When having a network bridged non-vlanned bonded network, removing
	the network while intending to remove the bond would remove the
	network bridge and then create it again.

	This patch fixes it by removing the 'BRIDGE' entry from the bond
	before ifuppin it up again.

	Bug-Url: https://bugzilla.redhat.com/1071398

2014-03-03  Nir Soffer  <nsoffer@redhat.com>

	tests: Add blockSD tests
	Add test for the metadataValidity before modiying its confusing
	implementation.

2014-03-03  Mark Wu  <wudxw@linux.vnet.ibm.com>

	net tests: more combinations mtu combinations
	The tests were splitted from the former functional fix in order to
	expedite the merge of the latter one.

2014-03-01  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: remove code duplication between nics, bridges, bonds and vlans

2014-02-28  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: pass _netinfo to addNetwork
	Bug-Url: https://bugzilla.redhat.com/1053114

	netinfo: Fix wrong filtering of dummy devices
	Dummy (and veth) devices were being filtered for use by vdsm in the
	method isFakeNic, but in the method that is used to determine what
	is reported as nics, isNicLike, it was not being used, and instead
	isDUMMY and isVETH were being called.

	Before this patch, any veth and dummy device were reported in the
	nics() method of netinfo.
	After this patch only those that match the explicit fake setting
	will be reported.

2014-02-28  Yaniv Bronhaim  <ybronhei@redhat.com>

	Use same constants for configuring and check configure of sanlock
	Both DISKIMAGE_GROUP and QEMU_PROCESS_GROUP points to 'qemu'. It's
	confusing to use both one for configure and one for verification.
	The patch uses the same constants and check also if VDSM_GROUP is also
	set properly as required by sanlock process.

2014-02-28  Antoni S. Puimedon  <asegurap@redhat.com>

	ifcfg: Do not take bond/nic down when removing one of their multiple nets
	When taking removing one of the multiple networks that sit on top of
	a bond/nic, it is necessary to adjust the mtu of the devices to the
	new maximum required by the remaining networks that use the devices.
	Example
	    netA has mtu 2500 and is set over bond5.10
	    netB has mtu 2000 and is set over bond5.10

	    when both are set, bond5.10, bond5 and its link devices will
	    have mtu 2500. When netA is removed that should be adjusted
	    to 2000.

	For ifcfg to apply the adjustment, it was necessary to ifdown
	the nic/bond and up it again so it would read the new configuration.
	The problem is that the netB of the example would see a loss of
	connectivity which could affect the users. This patch addresses that
	by using the ipwrapper to make the mtu adjustment and only take
	down the device when no remaining networks use it.

	Bug-Url: https://bugzilla.redhat.com/1060781

2014-02-28  Francesco Romani  <fromani@redhat.com>

	vm: fix migration progress calculation
	We use libvirt.domain.jobInfo() to track the migration progress.
	Among the provided fields, libvirt provides total, elapsed
	and remaining values for `data', `file' and `mem'.

	Where `file' is the permanent storage (disk) to be migrated,
	while `mem' is the volatile storage (ram), and
	`data' = `file' + `mem'.

	We mistakenly consider `data' for permanent storage, so actually
	redo the calculations libvirt already did, and most importantly we
	count the memory twice.

	The documentation of libvirt
	http://libvirt.org/html/libvirt-libvirt.html#virDomainJobInfo
	may be misleading due to poor tipography (misaligned comments)
	and that is the most likely cause for the wrong usage.
	We discovered the correct meaning by investigating among
	libvirt devs and by looking at the libvirt code.

	We use shared storage, so the value of `file' field does
	not really matter to us, but as a cautionary move
	we still track progress using the `data' value, instead
	of the `mem'. Being `data' a superset of `mem', this is
	still correct.

	This patch fixes the progress calculation and simplify
	the migration monitoring code.

2014-02-27  Federico Simoncelli  <fsimonce@redhat.com>

	spec: add missing requirement for sanlock on el7
	In the el7 section we were missing the sanlock and sanlock-python
	requirements.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1064042

2014-02-27  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: report "speed" of underlying device as that of vlan device
	netinfo.py was reporting speed 0 for the vlan devices in the system
	This patch makes that vlan devices, just like nics and bonds, will
	have a speed reported, that one of their underlying device.

	Bug-Url: https://bugzilla.redhat.com/1062617

	net_scale: Don't instantiate NetInfo needlessly
	network validation used to instantiate full-blown NetInfo objects
	when it just needed bondings() and nics(). This patch fixes that
	by calling only for the information that it needs.

	Bug-Url: https://bugzilla.redhat.com/1053114

	net_scale: Allow NetInfo update just the devices
	When deleting networks there was a lot of NetInfo instantiation
	due to the need for checking the devices in each delNetwork
	operation. That need for updated information does not include
	network changes, so this change adds a method for just updating
	the device information and reusing the netinfo objects.

	Bug-Url: https://bugzilla.redhat.com/1053114

2014-02-27  Federico Simoncelli  <fsimonce@redhat.com>

	spec: require libvirt 0.10.2-29.el6_5.4
	A libvirt race condition caused the volume watermark to be reported as
	large as the physical size triggering an extension at the end of each
	live migration.

	This patch adds the requirement for the new libvirt package in order to
	fix the issue.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1038069

2014-02-26  Nir Soffer  <nsoffer@redhat.com>

	xmlrpc: Support HTTP 1.1
	Supporting HTTP 1.1 allow using keep-alive on the client side,
	decreasing the latency and load on the engine and increasing the number
	of host that engine can support.

	This patch override do_POST and report_404 methods that wrongly shutdown
	the connection at the end of the do_POST request. This is the
	responsibility of the server, and not the request handler.  The fixed
	methods are used only on Python 2.6. Python 2.7 already include these
	changes. Then the protocol_version is set to HTTP/1.1, enabling
	automatic keep-alive.

	A new configuration option "xmlrpc_http11" can be used to disbale this
	feature and use HTTP/1.0 as used before.

	We can see in the logs that only few threads are created now for service
	XMLRPC requests, and most requests are handled by the same thread.

	xmlrpc: Disable needless and slow dns lookup
	In Python 2.6, BaseHTTPServer.BaseRequestHandler is invoking
	socket.getfqdn() after each request, to log the client fully qualified
	hostname. If dns is not configured properly, this causes needless delay
	after each request. In Python 2.7, the address_string is not used.

	This patch overrides address_string to return client address, avoiding
	the dns lookup, when running in Python 2.6.

2014-02-26  Dan Kenigsberg  <danken@redhat.com>

	ifcfg.removeNic: ignore missing host interface
	There may be cases where the Ifcfg configurator is asked to remove a Nic
	that is no longer exist on the host. This can happen if the device was
	renamed by an administrator or if it was unplugged from the system.

	In this patch we do not try to ifup the missing device.

	Bug-Url: https://bugzilla.redhat.com/1059773

2014-02-26  Antoni S. Puimedon  <asegurap@redhat.com>

	Make getVlanDevice use the faster netlink information
	getVlanId was already using the newer and faster netlink information
	while getVlanDevice had remained creating a process and parsing the
	output. This patch makes it more consistent and faster.

2014-02-26  Ondřej Svoboda  <osvoboda@redhat.com>

	vm: Fix mistyped 'portMirroring'
	This is related to 8225ae9aeebe88a0f891b390e3c0177671515210
	(vmDevices: add __slots__ to devices) and was hiding
	the bug at https://bugzilla.redhat.com/1011887

2014-02-25  Francesco Romani  <fromani@redhat.com>

	vm: report migration progress in VmStats
	add migration progress information in the
	VM Statistics.

	This information is passed to engine, which can now
	in turn inform the user about the migration status.

	Bug-Url: https://bugzilla.redhat.com/967466

2014-02-25  Federico Simoncelli  <fsimonce@redhat.com>

	vm: snapshot transient disk check should be per disk
	Live snapshot is allowed if all the disks in the snapshot request are
	not transient.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1065886

	vm: pre-validate disks for snapshot
	This patch divides the snapshot disks validation from the path
	preparation in order to limit the rollback scenarios.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1065886

2014-02-24  Antoni S. Puimedon  <asegurap@redhat.com>

	netlink: Introduce socket pool
	If a lot of netlink requests happened _nl_connect would fail at
	the C level, more concretely when doing bind, which would return
	EADDRINUSE.

	This patch addresses that issue as well as reduces the the resource
	consumption of the module by reusing the netlink sockets. The reusing
	is done by a semaphore protected socket pool.

2014-02-24  Nir Soffer  <nsoffer@redhat.com>

	threadLocal: Cleanup thread local storage
	We keep some data in thread local storage, but never clean up. This can
	lead to using stale data when handling many requests in the same tread,
	or to temporary leak, when a long running thread holds a reference to a
	finished task, preventing garbage collection of anything referenced from
	the task.

	This patch ensures that anything we set thread local storage is cleaned
	up when not needed.

	utils: Ensure that XMLRPC threads do not delay shutdown
	The threads created by the XMLRPC server are not daemon threads, so they
	may delay vdsm shutdown if a long request happen to run during shutdown.
	This patch configure XMLRPC server to use daemon threads.

	The daemon_threads class attribute is used by
	SocketServer.ThreadingMixIn. When defined in base class, both the simple
	and secure servers get this configuration through inheritance.

	This change is required for adding HTTP/1.1 support, where XMLRPC server
	threads become long living threads.

2014-02-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	Reload daemon file after each install
	Currently we load the daemon file only on first install. After upgrade
	we could fail with:
	"Warning: Unit file changed on disk, 'systemctl --system daemon-reload'
	recommended."

	This patch perform the reload after each installation of vdsm.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1063772

	Fix in testLeakFd to avoid potential races during the check
	To avoid corrupted tests that leaves fds open, clean the fds before
	checking the first fds state.

2014-02-21  Dan Kenigsberg  <danken@redhat.com>

	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.

2014-02-20  Dan Kenigsberg  <danken@redhat.com>

	confNet: ifcfg's VLAN should be set only on vlan cfg
	If a misguided script calls addNetwork with explicit VLAN option, it
	should 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.

	This is a very limited hack of a wider problem: unrecognized network
	options are copied to the bridge's ifcfg file.

	Bug-Url: https://bugzilla.redhat.com/1051150

2014-02-20  Yaniv Bronhaim  <ybronhei@redhat.com>

	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.

2014-02-20  Federico Simoncelli  <fsimonce@redhat.com>

	client: add the domainsMap in connectStoragePool
	This patch adds the client side support for the pool metadata memory
	backend. The server side support was introduced in patch:

	 b98c448 sp: receive domains map in connectStoragePool

2014-02-20  Francesco Romani  <fromani@redhat.com>

	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

2014-02-20  Federico Simoncelli  <fsimonce@redhat.com>

	lvm: ignore skipped clustered vgs
	In VDSM we use lvm locking_type 1 (local flocks on files in locking_dir)
	because the clustered vg access is handled with the SPM-HSM logic.
	When locking_type is configured to 1 the clustered vgs are skipped for
	all the operations (as they need locking_type 2) and by default the exit
	code of the lvm command is 5 triggering errors in our module.
	Adding the --ignoreskippedcluster flag to lvm commands we avoid the exit
	code error in the event of any clustered vg being present in some of the
	attached LUNs.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=820982

2014-02-19  pkliczewski  <piotr.kliczewski@gmail.com>

	test: declare unstable test as broken
	Before making sure that provided fix [1] makes the test stable it will
	be marked as broken.

	[1] http://gerrit.ovirt.org/#/c/24624/

2014-02-19  jarod.w  <work.iec23801@gmail.com>

	vm: set self._dom to None after destroying vm
	When receiving 'vmDestroy' command, we deal with it using the following
	steps:
	* invoke VM::releaseVm() in VM::destroy
	* invoke _dom.destroyFlags()/_dom.destroy() to destroy vm in VM::releaseVm()
	* When libvirt is done for destroying vm, it emits VIR_DOMAIN_EVENT_STOPPED
	_SHUTDOWN/DESTROYED(due to different flows)
	* VDSM receives the signal, it invokes VM::_onQemuDeath().
	* invoke VM::releaseVm() in VM::_onQemuDeath().
	Unfortunately, it doesn't set self._dom to None after destroying vm in
	VM::releaseVm(). So, it cause the following libvirterror when invoking
	VM::releaseVm() in VM::_onQemuDeath():

	libvirtconnection::101::libvirtconnection::(wrapper) Unknown libvirterror: ecode:
	42 edom: 10 level: 2 message: Domain not found: no domain with matching uuid
	'1813cf7d-d62b-4cc2-86fc-de469e0e37eb' (xxx)

	To ignore the libvirterror, the patch will set self._dom to None when getting signals
	(VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN/DESTROYED).

2014-02-19  Francesco Romani  <fromani@redhat.com>

	tests: add initial tests for clientIF
	This patch adds the tests for prepareVolumePath,
	and prepares the infrastructure for more clientIF tests.

	Relates-To: http://gerrit.ovirt.org/22928/

2014-02-18  Dan Kenigsberg  <danken@redhat.com>

	sampling: avoid needless modulu
	Since Linux jiffies counters wrap at 32 bits, we take modulu 2 ** 32
	when we calculate the difference between two consecustive samples.
	Taking another modulu, after dividing by the time interval, is harmless
	but also needless and confusing.

2014-02-18  Shu Ming  <shuming@linux.vnet.ibm.com>

	Misc storage exception class name style
	All the misc storage exception class name should
	be prefixed with "Misc"

2014-02-18  Adam Litke  <alitke@redhat.com>

	avoid redundant domain produce() in createStoragePool
	As the domains in hsm.createStoragePool are going to
	be accessed much later, and may loose validity till then.
	Just produce from cache and check the validity when actully use it.

2014-02-18  Assaf Muller  <amuller@redhat.com>

	Fix defaultRoute handling
	defaultRoute wasn't being past correctly to objectivizeNetwork,
	so that defaultRoute was always None inside the function,
	no matter what was past to it.

	This meant that DEFROUTE=yes/no was never written to ifcfg files,
	and 'ip route add default...' never applied by the iproute2
	configurator.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1015009

2014-02-17  Antoni S. Puimedon  <asegurap@redhat.com>

	netlink: fix pep8 for 1.4.5 (was fine for 1.4.6)

2014-02-17  Yaniv Bronhaim  <ybronhei@redhat.com>

	Passing "$*" to shell func with quotation marks passes all vars in one
	Instead of passing the variables as passed to test_conflicting_conf
	to the specific test func

2014-02-17  Liron Aravot  <laravot@redhat.com>

	introducing capability to stream data to image
	This patch introduces the a new capabaility to vdsm
	which allows to upload using streaming content to vdsm
	images.

	Previously we sent ovf data using XMLRPC (UpdateVM verb),
	which limits the size of the data, having to encode the
	payload into the xml, and make it hard and inefficient
	to upload lot of data and store it on some image.

	This patch adds the capabillity to stream data to image,
	allowing efficient upload of data in any size and format
	and storing it directly on an
	image. As the  XML-RPC spec doesn't support streaming and
	to avoid requiring another port by using dedicated http
	server, in this patch we use the existing xmlrpc server to
	handle upload requests.

	General upload information:
	-----------------------------------------------------------
	PUT requests arriving to the server with content type of
	application/octet-stream to default paths that we use
	today for request handling ('/', '/RPC2') will be treated
	as upload requests.
	The upload itself is being executed within a task, that's
	needed to indicate that there's an operation executed by
	the host.

2014-02-17  Antoni S. Puimedon  <asegurap@redhat.com>

	net_scale: avoid netinfo instantiation for removal check
	When removing networks, delNetwork used to generate a whole NetInfo
	instance, which is rather costly and in the case that there's a lot
	of delNetworks queued up (like in a lengthy setupNetworks operation)
	it can impact performance significantly.

	We should rely on:
	 - configurator.removeLibvirtNetwork
	 - configurator removal methods

	Bug-Url: https://bugzilla.redhat.com/1053114

	netinfo: optimize ipaddr retrieval
	We used to retrieve IP address information for each device when
	getting capabilities or in general doing netinfo.get. This in turn
	was calling python ethtool that was doing:
	One netlink roundtrip to get the etherinfo object. One round trip
	for ipv4 and one for ipv6.

	For 200 bridged, vlanned, bonded (with 2 nics) networks this meant:
	200bridges + 200vlans + 1 bond + 2 nics = 403 devices
	+
	200 networks
	= 603 calls to getIpInfo for 0.7867s

	This patch changes the implementation so that we use netlink to
	retrieve all the ipaddrs and then we match them to the devices
	we have, saving most of the work.

	= 603 calls to getIpInfo for 0.009371s + 0.03327s spent on
	vdsm.netlink (from netinfo.get)

	It's one of the patches destined to fix the bug below.

	Bug-Url: https://bugzilla.redhat.com/1053114

2014-02-17  Timothy Asir  <tjeyasin@redhat.com>

	vdsm-tool: handle an exception and return an error code
	As an independent cli, it is nicer for vdsm-tool to print an error and
	return an appropriate error code on any exception. Letting exception go
	unhandled make abrt report it as an application crash.

	Bug-Url: https://bugzilla.redhat.com/1054759

2014-02-17  Federico Simoncelli  <fsimonce@redhat.com>

	sp: stop all poolMonitoredDomains on disconnect
	When we attempt to stop the DomainMonitor threads in StoragePool
	we should use the poolMonitoredDomains list instead of using
	getDomains.
	Beside being more consistent and reliable it also fixes a race
	in destroyStoragePool where we detach the last domain and then
	we attempt to stop the remaining DomainMonitor.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1059757

2014-02-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Clean up test classes names
	Now when the securable tests have their own module, we don't need to use
	inner classes. Using top level classes makes the code shorter and easier
	to read.

	While modifying the names, the "My" prefix was removed, as it adds no
	value and annoy the author of this patch.

	Finally, a class method in a test class named its first argument "self"
	instead of "cls" (detected by pylint).

2014-02-15  Nir Soffer  <nsoffer@redhat.com>

	securable: Do not try to secure inner classes
	Previously the class decorator was not careful enough, "securing" any
	callable, which matches inner classes.

	This patch corrects the type check so only unbound methods are matched
	and add more tests, ensuring this will not break in future version.

	tests: Move securable tests to its own test module
	The tests were hidden in  tests/main.py making it harder to find the
	tests.

2014-02-15  Dan Kenigsberg  <danken@redhat.com>

	execCmd: no need to pass the default sudo=False value
	These are remnants from the days where we had a crazier default.
	Cleaned with
	     sed -i 's/execCmd\(.*\), sudo=False/execCmd\1/'
	and a couple of manual additions.

2014-02-14  Dan Kenigsberg  <danken@redhat.com>

	libvirt_configure.sh: fix commit cff03f968e
	This patch fixes two blatant errors, redering ssl=False unworkable.

2014-02-14  Francesco Romani  <fromani@redhat.com>

	client: update the help of `create` command
	This patch updates the help of the `create` command
	to keep up with last changes.

	schema: document the launchPaused parameter
	add documentation for the launchPaused param,
	which was missing from the API schema.

2014-02-14  Daniel Erez  <derez@redhat.com>

	hsm: encapsulate path in appropriateDevice
	As a continuation of Ie0d4d805ca333990ea1f612eb03a87f4a505f4a8,
	appropriateDevice method now returns 'path' as well.

2014-02-14  Martin Polednik  <mpoledni@redhat.com>

	vdsm: add support for TPM device passthrough
	Libvirt has basic support for TPM passthrough, which allows
	VM to be given access directly to host's TPM module.

	Engine constraints: vm with assigned TPM cannot be allowed to
	migrate, host cannot pass single TPM to multiple VMs using
	passthrough protocol (currently only supported protocol
	http://wiki.qemu.org/Features/TPM)

	tests: validate cdrom path sent to/received from vdsm
	related to http://gerrit.ovirt.org/#/c/20074/

	Tests prepareVolumePath for cdrom by verifying that path and
	specParams['path'] and vmPayload works as expected.

2014-02-14  Michal Skrivanek  <michal.skrivanek@redhat.com>

	typo in guest agent channel timeout handling

2014-02-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Validate conf in configure only if not forcing overriding
	When --force flag is sent to configure the conf might be overrided
	(depends on reconfigureOnForce return value).
	Therefore, checking validate conf before overriding can lead to a fail
	while the current configuration is not relevant.

	libvirt_configure.sh already manage to set the right configure in
	libvirtd.conf and qemu.conf according to the ssl verb in vdsm.conf.
	BUT, without this patch we validate the current config
	state before overriding the files even though the --force flag was
	stated, and this lead to fail the configure.

	With that patch, setting in vdsm.conf ssl=True and then running
	"vdsm-tool configure --force" will update libvirtd.conf and qemu.conf
	according to vdsm.conf state.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1036883

	Fixing ssl config validation
	Currently we verify only the config of livbirtd.conf and qemu.conf
	when ssl=False in vdsm.conf. If ssl=True we assumed the validation
	passes. This patch add a check also to ssl=True.

	Except that, the validation function is not general and checks only ssl
	configuration. This patch splits to specific test_conflict functions and
	allow adding more test_conflict functions in the future.

2014-02-13  Dan Kenigsberg  <danken@redhat.com>

	pylint: fix format string

2014-02-13  Federico Simoncelli  <fsimonce@redhat.com>

	api: domainDict is optional in connectStoragePool
	This patch fixes a mismatch between the schema and the actual
	connectStoragePool implementation.

2014-02-13  Daniel Erez  <derez@redhat.com>

	vm: added missing GUID slot in Drive class
	Following commit I6e8dadabdd02d3b44606f215c4bc7b7e306a591a,
	added missing 'GUID' slot in VM -> Drive class
	(needed for the functionality introduced in commit
	Ia4988212f7f96078e774d2a4e7b5cd1681383cb0).

	In addition, verified 'GUID' key existence on _getDiskStats.

	Related-To-Bug-Url: https://bugzilla.redhat.com/1026868

2014-02-12  Martin Betak  <mbetak@redhat.com>

	vdsm: Enable config of VM serial number
	Added support for passing explicit serial number
	as a part of vmParams from the engine.

	This change will enable users to configure various "serial number
	policies" on the engine such as:
	- use VM's UUID
	- use Host's UUID
	- provide custom value
	enabling greater control over the resulting VM's serial number.

	Notes:
	In the first case, the engine will pass the VM's UUID also as a value of
	the 'serial' param.

	In case this new 'serial' param is not passed we fall back to the old
	behavior when we use the host UUID.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=918138

2014-02-12  Nir Soffer  <nsoffer@redhat.com>

	xmlrpc: Use correct base class for parsing request
	Previously we always used SecureXMLRPCServer.parse_request, even when
	using SimpleXMLRPCServer. That happened to work since both inherit
	parse_request from BaseHTTPServer. This patch use the correct base
	class, so if one of them will override parse_request, we use the correct
	method.

2014-02-12  Vitor de Lima  <vitor.lima@eldorado.org.br>

	vm.py: Fix unsupported HPET option in ppc64
	This patch does not allow disabling HPET in ppc64, since the -no-hpet
	option is missing in the ppc64 QEMU.

2014-02-12  Francesco Romani  <fromani@redhat.com>

	tests: add initial tests for timeOffset handling
	the handling of timeOffset has been a source of issues
	recently and deserves more testing.

2014-02-12  Greg Padgett  <gpadgett@redhat.com>

	API: setHaMaintenanceMode command
	New API for setting hosted engine maintenance mode.  This allows the
	engine to send commands to the hosted engine agent in order to ease any
	necessary maintenance tasks.  The following modes are supported:

	local - allow maintenance of the host by effectively stopping the ha
	  agent from performing any vm-related activity.  The engine vm is
	  moved to another host in the ha cluster, and the host score is set
	  to 0.  It is meant to correspond to vds maintenance operations
	  performed by the engine.

	global - allow maintenance of the ha system or engine vm.  All hosted
	  engine state changes are halted for all nodes in the ha cluster,
	  so that user-initiated changes to the vm or hosts are ignored.

	This API improves usability for the hosted engine subsystem by enabling
	changes in the engine ui that would otherwise require the command-line.

	For more information:
	http://www.ovirt.org/Features/Self_Hosted_Engine_Maintenance_Flows

	Bug-Url: https://bugzilla.redhat.com/1053040

	API: return additional Hosted Engine information from vdsStats
	Return additional hosted engine runtime information with vds statistics
	which allows for better interoperability between the engine and hosted
	engine agent.

	Bug-Url: https://bugzilla.redhat.com/1053040

2014-02-11  Martin Polednik  <mpoledni@redhat.com>

	vmDevices: add __slots__ to devices
	VDSM devices are created using setattr over **kwargs, making the
	initialization implicit. Implementing __slots__ does define which
	attributes does the device accept and also slightly improves memory footprint.

2014-02-11  Dan Kenigsberg  <danken@redhat.com>

	fencing: stop using a deprecated command
	Recently, fence-agents stopped supporting the "option" alias for its
	"action" STDIN command.

	https://lists.fedorahosted.org/pipermail/cluster-commits/2013-February/003090.html

	Let us conform to the new option name. The "action" name has been long
	supported by el6 and f19's fence-agents, so it can be safely used.

	Thanks to John Taylor for reporting the issue.

	Bug-Url: https://bugzilla.redhat.com/1063472

2014-02-11  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Vdsm changes
	Here are engine changes: http://gerrit.ovirt.org/#/c/20926/

	This changes include:
	- Fixing ssl
	- Gluster api support
	- Fixing number of issues around Bridge.py and json binding
	  - Bridge: Solved argument of type 'NoneType' is not iterable
	  - Bridge: Args where not filtered properly
	  - Binding: Missing mapping for getHardwareInfo command
	  - Binding: Missing mapping for getAllVMStats command
	  - Binding: Added getFullVMList command

2014-02-11  Federico Simoncelli  <fsimonce@redhat.com>

	vm: discover volume path from xml definition
	In a previous commit (c072945 One shot prepare) we involuntarily
	changed the path used for virtual machine images from:

	 /rhev/data-center/<spUUID>/<sdUUID>/images/<imgUUID>/<volUUID>

	to:

	 /rhev/data-center/mnt/blockSD/<sdUUID>/images/<imgUUID>/<volUUID>

	This generated an issue during live migration between different
	vdsm versions:

	 libvirtError: invalid argument: invalid path ... not assigned to
	 domain

	In this patch we inspect libvirt xml during live migration and vdsm
	restart to identify if it is necessary to update the path cached in
	the drive object (provided by prepareImage).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1059482

2014-02-11  Daniel Erez  <derez@redhat.com>

	vm: Update LUN size when starting a vm
	In order to handle resize of DirectLUN disks
	(i.e. when a LUN volume is extended by user),
	relevant data should be retrieved when invoking getVmStats.

	Hence, added the following information to disks stats for
	DirectLUN disks: truesize, apparentsize and lunGUID
	(the sizes values already exist but are zeroed).
	Using these values, the engine could keep the DB updated.

	The following changes are introduced:
	* hsm:
	  appropriateDevice method now fetches LUN's device size
	  using 'multipath -> getDeviceSize'.
	* clientIF:
	  For LUN devices, updated drive's truesize/apparentsize
	  using hsm's getVolumeSize method.
	* vm:
	  _getDiskStats -> in order to identify each LUN
	  (e.g. on engine side), added 'lunGUID' to dStats
	  when vmDrive.GUID exists (applicable for DirectLUN disks).

	Bug-Url: https://bugzilla.redhat.com/1026868

2014-02-11  Dan Kenigsberg  <danken@redhat.com>

	nettests: remove most of connectivity checks
	With its default connectivityCheck=True, setupNetworks wait for a ping
	before finishing successfully. This slows down the functional tests.
	It is important to keep testing connectivityCheck, but it does not have
	to happen so often.

	nettests: use a constant dict NOCHK
	The options {'connectivityCheck': False} are very common, lets make it
	easier to use them.

2014-02-11  Douglas Schilling Landgraf  <dougsland@redhat.com>

	spec: use Requires %{name}
	We should use macros instead of static names in the spec.
	If in the future we decide to use different name for vdsm package
	it's a matter to put the new package name in Name session.

2014-02-10  Nir Soffer  <nsoffer@redhat.com>

	hsm: Fix missing MAX_DOMAINS constant
	Commit ab6014b394 moved MAX_DOMAINS from sp to spbackends without
	updating all users, breaking creation of a pool on block storage using
	old storage domain format. This patch fix the error by importing the
	name from its new module.

	Bug-Url: https://bugzilla.redhat.com/1059108

2014-02-10  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Make a test run under RHEL 6.5
	dhclient still resides in /sbin/dhclient.

	dnsmasq does not accept the --bind-dynamic option.
	For testing purposes, --bind-interfaces is enough
	although it generates a warning:

	LOUD WARNING: listening on 240.0.0.1 may accept requests via interfaces other than veth_23
	LOUD WARNING: use --bind-dynamic rather than --bind-interfaces to avoid DNS amplification attacks via these interface(s)

	Bug-Url: https://bugzilla.redhat.com/987813

	netinfo: Do not mix local time and UTC, improve tests
	dhclient is run in the background so the functional test can
	finish. Both date-time formats dhclient uses are now tested.

	In the non-functional test, leases are created dynamically.

	Bug-Url: https://bugzilla.redhat.com/987813

2014-02-08  Vinzenz Feenstra  <vfeenstr@redhat.com>

	guestIF: Adding guest agent API versioning support
	With the increasing complexity on different version of the guest agent
	and vdsm we're now introducing API versioning, so only supported messages
	are exchanged between guest agent and vdsm.

	VDSM:
	  - Adds a field to the 'refresh' message reporting the highest API version
	    supported by VDSM

	  - Upon receiving the 'heartbeat' message check for the `apiVersion` field
	    to know if the guest agent supports api versioning.
	    - If the fields is not present:
	      The guest agent won't support api versioning. And it needs to be
	      disabled on the VDSM side and the version 0 has to be assumed. That
	      simply means only messages can be sent which were supported before the
	      API versioning was introduced.
	    - If the field is present:
	      The value of the field is supposed to represent the maximum version
	      supported by the guest agent.

	      VDSM then makes a `min(vdsmMaxApiVersion, guestAgentMaxApiVersion)`
	      to determine the highest common value and uses this value as supported
	      API version.
	      When the value has changed since the last time a heartbeat was received.
	      VDSM will send a message 'api-version' to update the guest agent about
	      the determined value. And sets the internally stored effectiveApiVersion
	      value to this new value.

	Guest Agent:
	    - Adds the field `apiVersion` to the heartbeat containing the highest API
	    version supported by the guest agent

	  - Upon receiving the `refresh` message without a `apiVersion` field, the
	    guest agent immediately will revert immediately fall back to version 0
	    To avoid sending any messages which are not yet supported.

	  - Upon receiving the `api-version` message, the guest agent will verify the
	    value received and sets the value to min(received, maxAgentApiVersion)
	    which should, of course, result in setting the received value (this is
	    just an additional step to ensure it does not send more than supported by
	    VDSM.

2014-02-08  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	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

2014-02-06  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding configure sanlock on force
	If sanlock is down we cannot check sanlock process, so isconfigure return that
	sanlock process is already related to the supplementary group.
	Configure verb won't configure sanlock if isconfigure return True currently.
	Therefore, this patch change the ConfigureOnForce to True so
	'vdsm-tool configure --force' will perform the usermod action as the
	user expected.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1057225

2014-02-06  Dan Kenigsberg  <danken@redhat.com>

	vm iface statistics: never report negative rates
	When Linux tx/rx couters overflow their 32 bit limit, they wrap back to
	zero. This causes our reported rxRate/txRate to become negative for one
	nample. 51073875161d9b932b7

2014-02-05  Douglas Schilling Landgraf  <dougsland@redhat.com>

	spec: vdsm pkg for EL distro must include pkla
	vdsm on EL system should ship the .pkla file or libvirt will
	keep asking password and vdsm won't be able to start correctly.
	Originally the commit f824941b has added into %files session
	the polkit files but on a %else conditional for %0{?rhel} and
	this code contains %else for %if 0%{?fedora} >= 18 which won't be EL as expected.
	Additionaly, a new commit bae85d50 added %with_systemd macro and triggered
	this bug inserting new %if 0%{?rhel}/%else which contains %if 0%{?fedora} >= 18
	and %else but won't work too for EL.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1060524

2014-02-05  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Determine bootproto from dhclient's lease files
	Lease files are never deleted, just replaced so they do not
	become too long. For DHCPv4 checking for an expiration time
	of a lease was added, DHCPv6 leases use different flags.

	Paths to lease files are predefined in lib/vdsm/netinfo.py
	in _DHCLIENT_LEASES_GLOBS, more common ones are welcome.

	Bug-Url: https://bugzilla.redhat.com/987813

	utils: Moved pgrep and getCmdArgs from storage/misc
	They are general enough and useful elsewhere.

	Bug-Url: https://bugzilla.redhat.com/987813

2014-02-05  Dan Kenigsberg  <danken@redhat.com>

	netconf.ifcfg: include CONFFILE_HEADER in route/rule files
	Include the
	    # Generated by VDSM version x.y.z
	header in all vdsm-written ifcfg files.

	fencing: use deathSignal to keep scripts at bay
	Before this patch, the fenceNode verb used a knowingly-raceful code to
	wait for pending fencing scripts, and kill them when Vdsm exited.
	This patch makes sure that deathSignal is sent to pending scripts if
	Vdsm exits or crashes.

	We require version 1.3 of python-cpopen that raises a proper exception
	when an executable is missing.

2014-02-05  Peter V. Saveliev  <peet@redhat.com>

	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

2014-02-05  Sergey Gotliv  <sgotliv@redhat.com>

	clientIF: Teardown volume path only for VDSM images
	Trying to tear down a cdrom or external lun throws an exception which
	creates a lot of log printings.

	Bug-Url: https://bugzilla.redhat.com/980054

2014-02-04  Vered Volansky  <vvolansk@redhat.com>

	stroageTests.py: Call detachStorageDomain on rollback
	vdsClient.deactivateStorageDomain() should be called as
	vdsClient.activateStorageDomain() 's rollback:

	This was missing from the original flow.
	activateSD created the mounts, while deactivateSD unmounts the
	directories used for the SDs. Not calling deactivate leaves the mounts
	lingering in /rhev/data-center. This patch removes these lingering
	mounts. The test passes either way.

2014-02-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding with_jsonrpc global to spec set default to 1
	When this global set to 0, vdsm won't build json related packages that
	currently in work in progress state.

	Changing sanlock not configured print
	Instead of asking for restart sanlock service, just prompt sanlock
	service is not configured. Restart the service might not be enough if
	sanlock configure didn't run before and set the supplementary groups.

2014-02-04  Federico Simoncelli  <fsimonce@redhat.com>

	vm: do not pause during refreshVolume
	There's no need to pause the VM during the logical volume refresh as LVM
	is taking care of freezing the IO during the dm table update.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=889097

2014-02-04  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix damage introduced in 0bc1e2

2014-02-03  Mooli Tayer  <mtayer@redhat.com>

	Text: add description for dstqemut in migration command
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1007686

2014-02-03  Francesco Romani  <fromani@redhat.com>

	vm: implement recommended clock settings
	A new set of recommended clock settings emerged as follows:

	  <clock ...>
	    <timer name="rtc" tickpolicy="catchup"/>
	    <timer name="pit" tickpolicy="delay"/>
	    <timer name="hpet" present="no"/>
	  </clock>

	THose settings are recommended by both libvirt and qemu developers,
	and they apply for all guest OSes.
	Some of them don't affect some OSes, but in those cases they are harmless.

	VDSM used to support just the first setting, tickpolicy 'catchup'
	for rtc, conditioned by the presence of the 'tdf' option.
	Now this setting is always enabled.

	This patch updates the XML generation according with
	the new recommendations, and drop all the references
	to the 'tdf' variable.

	API deprecation notice:
	the 'tdf' parameter is no longer honored;
	however, no supported engines seems to send it anymore.

	Bug-Url: https://bugzilla.redhat.com/1053846

2014-02-03  Martin Polednik  <mpoledni@redhat.com>

	tests: fix possible test failure due to reboot event
	Virt tests currently have a chance of failing even on successful run if
	qemu bios startup takes a bit longer than ussual. This leads to halting
	the VM right before initramfs services start, causing "reboot event"
	(leading to state "RebootInProgress") causing test for upstates to fail.

	This patch changes the default wait time to 30 seconds (through constant
	VM_MINIMAL_UPTIME), giving the test run enough time to finish currectly.

	In future, we would like to get rid of this time by adding a heartbeat
	module to initramfs that would indicate successful boot, allowing for
	faster test runs.

2014-02-03  Douglas Schilling Landgraf  <dougsland@redhat.com>

	spec: do not remove vdsm logs when pkg removed
	In the commits 4a07386 0b6035a we introduced the concept
	of creating of metadata.log, mom.log, supervdsm.log and vdsm.log
	logs during the rpm install and sets the proper
	user/group. However, now when removing vdsm the logs are removed too
	which is not the behaviour as before these commits. This patch will
	add ghost macro in the spec to keep logs available when vdsm is removed.

2014-01-31  Douglas Schilling Landgraf  <dougsland@redhat.com>

	sos: plugin should ignore /var/run/vdsm/storage
	In case sos plugin includes /var/run/vdsm/storage and it contains
	symlinks to block devices it can make the host fill the disk
	and eventually create a 0 sized sosreport.

2014-01-31  Dan Kenigsberg  <danken@redhat.com>

	volumeTests: avoid AttributeError during __del__
	Since sd.StorageDomain.__del__() uses its self.stat,
	FileDomainMockObject must expose it.

2014-01-30  Alon Bar-Lev  <alonbl@redhat.com>

	host-deploy: getChainFromSSL: acquire chain from session and not negotiation
	Although the negotiation seems to be the right place to acquire the
	chain, in some cases (such as the one reported in
	https://bugzilla.redhat.com/show_bug.cgi?id=1058016 ), it was missing
	the root certificate authority, while the chain out of the session is a
	complete one.

2014-01-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	vdsm-tool: handle error during module loading
	While vdsm-tool initiates it loads all python modules under tool folder.
	If one of them throws exception vdsm-tool fails to run. This patch
	handles such exception and reports it to syslog.

2014-01-30  Francesco Romani  <fromani@redhat.com>

	vm: drop unused exception
	The _MigrationError exception is defined and never used;
	The close relative MigrationError (without the leading underscore) is.

	This patch drops the unused _MigrationError.

2014-01-30  pkliczewski  <piotr.kliczewski@gmail.com>

	Moving response implementation of getAllVmStats to API.py
	This code was introduced as part of jsonrpc work.

	getAllVmStats command was implemented in xml binding whereas it should
	be in API. Xml binging uses API directly and json binding uses bridge to
	proxy calls to API. Having this logic in API instead of xml binging
	makes it available for both protocols.

2014-01-30  Francesco Romani  <fromani@redhat.com>

	vm: janitorial: introduce a recovering attribute
	So far, a recovering VM was identified by checking for the
	presence of a 'recover' attribute in the Vm.conf dict.
	Moreover, the attribute was accessed in a thread-unsafe way.
	This added unnecessary complication.

	This patch makes the code cleaner and simpler introducing
	an explicit attribute to identify recovering VMs.

	Full history in the discussion of this change:
	http://gerrit.ovirt.org/#/c/22556/

2014-01-30  Dan Kenigsberg  <danken@redhat.com>

	cleanup: move _updateTimestamp to API.py
	After Engine issues a setupNetworks or editNetwork API calls, it follows
	by repeated ping() calls. If networking has been configured correctly,
	the ping() is processed by Vdsm, and _updateTimestamp notifies helper
	tools that the network configuration should not be rolled back.

	This patch extends this behavior to all users of the API, not only XMLRPC.

	Engines of versions before 3.1 used to call getVdsCaps() instead of the
	lightweight ping() (Engine commit 47c61adeb133d95b has changed that).
	Even older Engines (before commit d87de762dbce2ba7) and modern Engines
	in editNetwork flows, do nothing special and depend on their periodic
	list() call. For backward compatibility, we add _updateTimestamp on
	these specific verbs, too.

2014-01-28  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: vdsm-python requires python-cpopen
	vdsm/utils.py requires python-cpopen

2014-01-28  Antoni S. Puimedon  <asegurap@redhat.com>

	Ethtool_opts: fix retrieval from configwriter.
	getEthtoolOpts was incorrectly defined at the configurator class
	level but used for ifcfg from the ConfigWriter class (accessing
	self). This patch moves it to be a module level function and
	imports it from both places it is used (ifcfg and iproute2
	configurators).

2014-01-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: own metadata supervdsm mom logs
	/var/log/vdsm/metadata.log /var/log/vdsm/supervdsm.log
	/var/log/vdsm/mom.log should be owned by VDSM.

	Additionaly, now are now creating with touch those files
	(and vdsm.log) during the vdsm rpm install.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1055153

2014-01-27  Nir Soffer  <nsoffer@redhat.com>

	sysvinit: Ensure that iscsid is started
	vdsm is starting the iscsid daemon when it starts, but iscsid "start"
	command may silently *not* start the iscsid daemon, because vdsm is
	configuring it's nodes to login manually. When iscsid daemon is not
	running and vdsm is connecting to a storage server, iscsiadm starts
	iscsid daemon. This works when /etc/iscsi/iscsi.conf contains:

	    iscsid.startup = /etc/rc.d/init.d/iscsid force-start

	This is the default configuration on a fresh install of EL 6, and is
	common on developers machines. However when this option is missing,
	iscsiadm fails and iscsi storage is not available. According to the
	comments on the bug, the missing configuration is common in the field.

	This patch starts iscsid using "force-start" command, ensuring that
	iscsid daemon is started and removing the dependency on iscsi.startup
	configuration. This restores the behavior from commit 0233b5e952 in Nov
	2011 until commit 3c0adf791e in May 2013. The behavior was changed to
	make systemd-based deployment (which has no "force-start") start iscsid,
	but now that we have an independent systemd service, it can be safely
	avoided.

	This change does not effect the deployment for systemd or upstart.

	Relates-To: http://gerrit.ovirt.org/14630
	Bug-Url: https://bugzilla.redhat.com/1056948

2014-01-27  Timothy Asir  <tjeyasin@redhat.com>

	gluster: fix vdsmapi gluster json schema error
	Updates schema file for task info, task summary
	and fixes the schema error.

2014-01-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	execCmd with sudo=root raise require tty fault when running as root
	As default sudo request requires tty, although we define notty for user
	vdsm, if we'll try to call sudo command as another use (also root) we
	will be blocked by the "sorry you must have tty" to execute sudo
	command. To avoid that, this patch ignores sudo=True parameter in
	execCmd while running as root.

	Using execCmd to run dmidecode command instead of using subprocess.Popen
	This change is due to a bug while running 'vdsm-tool vdsm-id' as user
	root which calls this function and fails on "require tty" for user root.

	execCmd skip the sudo=True parameter while executing the command [1]

	[1] http://gerrit.ovirt.org/#/c/23721/

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1054759

2014-01-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: vdsm should own vdsm.log
	/var/log/vdsm/vdsm.log should be owned by VDSM.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1055153

2014-01-25  Dan Kenigsberg  <danken@redhat.com>

	netconfig: set ETHTOOL_OPTS when a NIC goes up
	There's broken hardware out there where lro needs to to be turned off
	explicitly.
	This patch lets an admin of a local node set

	  ethtool_opts.eth0 = lro off

	to disable LRO on the interface named eth0.

2014-01-24  Dan Kenigsberg  <danken@redhat.com>

	Deprecate volume mtime
	In pre-historic 2.y days, Engine used volume's "mtime" attribute to
	deduces the ancestry of a volume. See for example BZ#513396.
	In case of an error reading the metadata, "0" or "" was returned.
	This was a bad heuristic that was fixed to using proper pointer to
	parents and children.

	Engine 3.y continues to use the mtime field only when importing ancient
	images that lack proper creation time in their OVF.

	Maintaining this attribure requires costly readings of volume metadata.

	This patch drops the mtime-related code. For backward compatibility with
	old Vdsms and Engines that may expect the existance of this attribute,
	we keep writing "0" to the metadata and reporting "0" to Engine.

2014-01-24  pkliczewski  <piotr.kliczewski@gmail.com>

	schema: Updates based on the current code base
	Following updates are part of this patch:
	VDSM related
	  - getAllVmStats was only available for xml so it was moved to API
	  - vm snapshot method had not optional argument
	  - added implementation for full vm list
	  - added gerHardwareInfo method missing from schema

	Gluster related
	  - Added GlusterVolume.status command and corresponding type which was
	    missing is schema
	  - Added GlusterVolume.profileInfo command and corresponding type
	    which was missing is schema
	  - Added GlusterVolume.setOptionsList command and corresponding type
	    which was missing is schema
	  - Added  GlusterVolume.replaceBrickStart command which was missing is
	    schema
	  - Few updates for command comments

	This patch contains as well fix for snapMemVolHandle which should be
	optional.

2014-01-23  Bala.FA  <barumuga@redhat.com>

	gluster: add host uuid in volume status
	This patch adopts newly added host uuid in gluster volume status cli
	output

2014-01-23  Francesco Romani  <fromani@redhat.com>

	caps: report malfunctioning libvirt
	the fix applied in commit 6c6da596336d6cc1ff121057877ac6ab1f00f147
	can be a source of confusion for users which expect
	a Fedora 19 node is able to join a 3.4 cluster.

	This patch adds log messages which briefly explain
	the reason of the incompatibility and suggest a fix.

	Bug-Url: https://bugzilla.redhat.com/1056918

2014-01-23  Antoni S. Puimedon  <asegurap@redhat.com>

	configNetwork: fix configurator class typo

	Add missing libnl buildrequires dependency

2014-01-22  Federico Simoncelli  <fsimonce@redhat.com>

	spec: bump sanlock version to 2.8
	The new SANLock inquireClusterLock method relies on two new API
	introduced in sanlock 2.8:

	  sanlock.read_resource(path, offset=0) -> dict
	  sanlock.read_resource_owners(lockspace, resource, disks) -> list

2014-01-22  Bala.FA  <barumuga@redhat.com>

	gluster: interpret and use correct xml elements
	xml output of rebalance and remove-brick status returns filesSkipped
	in <skipped> tag and value of <statusStr> tag cleaned up to use it as
	proper enum.

	gluster: adopt xml changes of rebalance and remove-brick status
	xml output of rebalance and remove-brick status add host uuid and task
	runtime (per host and summary).  This patch adopts these additional
	elements below verbs

	* glusterVolumeRebalanceStatus
	* glusterVolumeRemoveBrickStatus

	Below is the change in output which doesn't break backward
	compatibility

	        {'summary': {
	    ==>>    'runtime': FLOAT,
	            'filesScanned': INT,
	            'filesMoved': INT,
	            'filesFailed': INT,
	            'filesSkipped': INT,
	            'totalSizeMoved': INT,
	            'status': STRING
	        },
	        'hosts': [{
	            'name': STRING,
	    ==>>    'id': STRING,
	    ==>>    'runtime': FLOAT,
	            'filesScanned': INT,
	            'filesMoved': INT,
	            'filesFailed': INT,
	            'filesSkipped': INT,
	            'totalSizeMoved': INT,
	            'status': STRING
	        }]}

2014-01-22  Timothy Asir  <tjeyasin@redhat.com>

	gluster: enhance vdsmcli error handling
	Vdsmcli also treated as a functional testing tool. Checking
	the functional parameter could hide the state of depending
	function. Engine might call those functions without these
	parameters also. So the parameter null check should go inside
	the gluster function.

2014-01-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Add BuildRequires to python-argparse
	EL6 build is failing because configure.ac says argparse is fatal error
	in case we don't have it in build system. This patch includes python-argparse as
	BuildRequires. On the other hand, >= F19 contains python-2.7 which has
	python-argparse integrated into the stdlib and don't generate such error.

2014-01-20  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: use link objects for getting known information
	The link objects always contain certain information that used to be
	retrieved separately. This patch avoids this extra info fetching.

	MonkeyPatch: fix applying and reverting (static|class)methods.
	When applying a patch to a class we should cast the method we are
	patching with to be of the same kind (staticmethod, instancemethod
	or classmethod) as the original method that we are replacing. (Note
	that by default setattr sets those methods as instancemethods).

	In Python2, setattr(Class, name, func) automatically converts func
	into an instancemethod. To keep type(Class.func) as function,
	staticmethod(func) must be applied explicitly when reverting.

	Credit goes to Nir Soffer or the final version of the patch and tests.

2014-01-20  Francesco Romani  <fromani@redhat.com>

	packaging: update python-cpopen requirement to 1.3
	update both dependencies and build dependencies to
	python-cpopen 1.3.

	tests: add missing attribute in LibvirtMock object
	testLibvirtconnection.testCallSucceeded raises AttributeError since
	LibvirtMock.virEventRunDefaultImpl is missing.

	This patch adds the missing attribute.

2014-01-20  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: switch link polling to netlink
	Getting the links from iproute2 implied creating a process each time
	and then parsing the output. Due to the fact that this opearations
	happen periodically and sometimes several times per second, the cost
	was too high.

2014-01-20  Federico Simoncelli  <fsimonce@redhat.com>

	sp: fix pool membership check in attachSD
	A race between attachStorageDomain and connectStoragePool using
	StoragePoolMemoryBackend could lead to the new domain not being
	attached (on storage).

	The race happens in StoragePool.attachSD:

	        domains = self.getDomains()
	        if sdUUID in domains:
	            return True

	if the domain map has been already updated by connectStoragePool
	the domain is deemed attached and the remaining operations are
	skipped.

	In this patch:
	- use only validateAttachedDomain in detachSD (validatePoolSD is
	  redundant)
	- make attachSD symmetric to detachSD using validateAttachedDomain
	  to check if the domain is already attached

2014-01-20  Yaniv Bronhaim  <ybronhei@redhat.com>

	To allow downgrade of vdsm we need to support vdsm-tool old API
	During upgrading or downgrading vdsm version we perform reconfigure
	process. This process has been changed between 3.3 to 3.4. This patch
	tries the current version implementation of reconfigure, and if it fails
	it will fallback to vdsmd reconfigure verb, which exists in all
	previous versions of vdsm.

	This workaround need to be removed in vdsm 3.5.

2014-01-20  ndarshan  <dnarayan@redhat.com>

	gluster: additional parsing of host UUID in verb glusterVolumesList
	This patch adds parsing of host UUID for all the bricks in the
	verb glusterVolumesList.
	This information is stored in bricksInfo which is list of dictionary
	where each dictionary has name and hostUUID.
	sample:
	---------------------------------------------------------------
	     'bricksInfo': [{
	                     'name': '192.168.122.2:/tmp/t_b1',
	                     'hostUuid': '04eb591b-2fd3-489e-a22c-5d342a3c713d'
	                     },
	                    {
	                     'name': '192.168.122.2:/tmp/t_b2',
	                     'hostUuid': '04eb591b-2fd3-489e-a22c-5d342a3c713d'
	                     }]
	---------------------------------------------------------------

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1038988

2014-01-20  Yaniv Bronhaim  <ybronhei@redhat.com>

	Changing vdsm-tool and vdsmd pre-tasks outputs to be more meaningful to user
	Previously to this change the output was misleading. Users
	could not understand how to handle configuration issues properly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1029812

2014-01-20  Federico Simoncelli  <fsimonce@redhat.com>

	sp: receive domains map in connectStoragePool
	This patch adds the support for the StoragePoolMemoryBackend and
	the required support in the HSM class to instantiate it and to
	live upgrade from older backends.

	The connectStroagePool API has been updated to receive the extra
	domainsMap dictionary that triggers the use of the new backend.

	sp: refactor out the metadata access from StoragePool
	All the storage pool metadata operations have been relocated to a
	specific backend: StoragePoolDiskBackend. It is now possible,
	implementing the required API, to use different backends for the
	pool metadata.

	A backend may require other attributes and methods in addition to
	the regular API used by StoragePool, these specific features should
	be handled outside of the StoragePool implementation, typically in
	the HSM class where the backward compatibility layer is maintained.

	sp: use setDomainsMap in reconstructMaster
	The metadata access executed in reconstructMaster should be replaced
	by the existing setDomainsMap. In order to do so we also need to set
	the master domain (used by setDomainsMap) and temporarily set the
	storage pool as secure (in the same way we do in create).

	sd: add inquireClusterLock method to StorageDomain
	The leader version and the spm id may be maintained by the cluster
	lock in some implementations (e.g. SANLock).
	This patch introduces the capability of inquiring the cluster lock
	for these values.

2014-01-20  Francesco Romani  <fromani@redhat.com>

	mkimage: do not create world-readable image
	mkimage generates world-readable images by default.
	mkimage spawns a genisoimage process through the cpopen package
	to do the actual work.
	It is of course possible to fix the permissions once the ISO image
	is created with a trivial os.chmod() call, but this will leave
	open a window opportunity to still exploit the bug.
	A more correct and secure way to fix the permissions of the newly
	generated image is to setup the umask just before to exec.

	The current python-cpopen package lacks a way to set the umask
	of the child before to run it, so this patch depends on an enhanced
	python-cpopen, temporarily located here:

	https://github.com/mojaves/python-cpopen

	With this enhanced cpopen, fixing the permissions is trivially made
	by passing the correct umask at the ISO image creation.

	PatchSet v2:
	the cpopen patch has been merged upstream:

	https://github.com/ficoos/cpopen/commits/master

	PatchSet v3:
	* updated vdsm.spec.in and debian.control to require an updated cpopen.

	PatchSet v4:
	* the minimum required cpopen version is 1.2.3-5

	PatchSet v5:
	* rebased against master
	* make iso image not group-writable
	* added explicit permission tests (umask tests alread committed
	  in the cpopen package)

	Bug-Url: https://bugzilla.redhat.com/1034172

2014-01-19  Assaf Muller  <amuller@redhat.com>

	Extend setupNetworks API to accept defaultRoute
	Previously defaultRoute was True for the management network,
	now it is received from the client. For backwards compatability,
	if defaultRoute is not received from the client, it is set
	if the network being configured is the management network.

	Bug-Url: https://bugzilla.redhat.com/1015009

2014-01-18  Miguel Angel Ajo  <miguelangel@ajo.es>

	vdsm: allow hooks to pass down dictionaries in json format
	This will allow to pass, and recover network settings in the
	*_network_setup hook as json dictionaries using the same
	method that is used for XML. In this case the environment
	variable _hook_json is used.

	before_network_setup hook exposes the requested network
	configuration that can be patched by the hook.
	after_network_setup exposes the final system network
	configuration.

2014-01-18  Assaf Muller  <amuller@redhat.com>

	Add netinfo.getDefaultGateway()
	Used in patch:
	https://bugzilla.redhat.com/1015009

	On a new VDSM installation, or an old one upgrading to
	3.4, we detect the current networking configuration and
	persist it to files of our own format. More on this at:
	http://www.ovirt.org/Feature/NetworkReloaded#Unified_persistence

	It is necessary to detect the host default gateway so
	the information could be persisted to files.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1015009

	Change MANAGEMENT_NETWORK to MANAGEMENT_NETWORK*S*
	Before: MANAGEMENT_NETWORK was either 'ovirtmgmt' or 'rhevm',
	        and the value was gotten from automake
	After: MANAGEMENT_NETWORKS = ('ovirtmgmt', 'rhevm')

	This change allows the following patch to solve the bug.

	Bug-Url: https://bugzilla.redhat.com/1015009

2014-01-17  Francesco Romani  <fromani@redhat.com>

	caps: check availability abort on EIO in libvirt
	commit bbeb165e42673cddc87495c3d12c4a7f7572013c
	added support for VIR_MIGRATE_ABORT_ON_ERROR,
	but libvirt 1.0.5.8 shipped in Fedora 19
	do not support that, even if it should be supported
	starting from upstream version 1.0.1.

	This patch provides a workaround for this; if libvirt
	misses this flag, it forces the the cluster level at
	no more than version 3.3.

2014-01-17  Peter V. Saveliev  <peet@redhat.com>

	remove redundant libvirt call
	Checking UUIDString() adresses the bug #603494, which
	is closed ages ago. While it is nice to support really
	ancient libvirt versions, it costs us one extra
	libvirt call. Given global libvirt driver lock, it
	does matter in mass VM creation.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=603494

2014-01-16  Dan Kenigsberg  <danken@redhat.com>

	netinfo: ifcfg: ignore 0 suffix
	'IPADDR0', 'GATEWAY0', 'PREFIX0' and 'NETMASK0' means to initscripts
	exactly as their unsuffixed siblings. With this patch, Vdsm reports them
	as 'IPADDR', so the do not confuse Engine.

	A proper change would be to make Engine/Vdsm API independent of
	ifcfg-specific details. This patch is required anway, for the sake of
	older Engines.

	Bug-Url: https://bugzilla.redhat.com/987832

2014-01-16  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: specify sysV commands for EL6 only
	To provide EL7 builds we must update the spec to not
	include sysV commands since it uses systemd.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1051860

2014-01-16  Vered Volansky  <vvolansk@redhat.com>

	storageTests: Configure via environment variables
	These are used as permutations for the test. We want to automate the
	test and call it with whatever storage type(s) and metadata
	version(s).

2014-01-16  Federico Simoncelli  <fsimonce@redhat.com>

	securable: refactor the securable implementation
	In order to remove the storage pool metadata we need more flexibility
	in defining the isSafe method.
	In fact the different backends (with/without metadata) will rely on the
	StoragePool SPMness to protect their methods.

	In this patch:
	- transform the Securable base class and MetaSecurable in a decorator

2014-01-16  Oved Ourfali  <oourfali@redhat.com>

	sp: changing un-shared treatment in the createVolume function
	Up until now, the only way to create a 'template' disk was by using the
	copyImage command.  This has 2 limitations:
	1. It forces the user to copy all the data instead of doing an in-place
	convert of an image to a template image
	2. Resulting image cannot be qcow which is wasteful in some cases

	This patch addresses that, and allows using an existing disk as a
	template disk, by allowing to "share" a disk that isn't marked as
	"shared", but can be shared as it doesn't have snapshots. This disk will
	be marked as "shared" upon first use.

2014-01-15  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: fix Link's fromText mtu and vlanid types
	Accross the codebase mtu and vlanid are specified to be integers.
	This patch makes sure that when we get the information from
	parsing iproute2 the types are correct.

2014-01-14  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Replaced all too generic except: handlers in vm.py

2014-01-14  Vered Volansky  <vvolansk@redhat.com>

	utils: cleanup - typos, grammar and comments refinement

2014-01-14  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	fix Exception message error in apiTests module

2014-01-14  Dan Kenigsberg  <danken@redhat.com>

	tests: use assertIn when applicable
	On failure, assertIn(x, y) provides more tangible information than the
	plain assertTrue(x in y).

2014-01-13  Federico Simoncelli  <fsimonce@redhat.com>

	sp: improve masterMigrate safety
	The goal of this patch is to clean, optimize and give robustness to
	the masterMigrate method.

	In this patch:
	- acquire the cluster lock before start using the new master filesystem
	- refactor out all the required metadata changes in switchMasterDomain
	- divide the method in two parts (operations required to switch to the
	  new master and previous master cleanup)
	- address the two parts exception handling (hard failure for the first,
	  logging only for the second)

	sp: move validatePoolSD in the StoragePool class
	It's the StoragePool duty to validate if an operation cannot be
	accomplished because the storage domain is not part of the pool.

	For consistency with the other pool Vms API the sdUUID argument
	in the getVmsList method is now mandatory (it is set by the HSM
	public method).

2014-01-13  Roy Golan  <rgolan@redhat.com>

	set the # of vcpus for a VM (hot plug/unplug)
	Introducing new API for setting the number of cpus of a running VM.

	setNumOfCpus(vmId, number)

	http://www.ovirt.org/Hot_plug_cpu

	Prerequisite
	Vm must be Running state.
	libvirt xml:
	* To add cpus a VM must have the max number configured.
	* Both topology and vcpu elements must exist.

	snip from a domxml:
	 <vcpu current='3'>160</vcpu>
	 <cpu mode='custom' match='exact'>
	   <topology sockets='160' cores='1' threads='1'/>
	 </cpu>

	this means there is a total of 160 cpus and the current num is 3

	The underlying API being used is libvirt's setVCpus.
	The result of hot plug/unplug a cpu to a RHEL, for instance, is a new
	device under: /sys/devices/system/cpu/cpuX

	Notes:
	* guest OS support and behavior may(and probably will) vary on trying to
	  to hot plug/unplug.

	* Upgrade: VMs that have been started on hosts before this patch can
	  not plug more CPU than the number of CPUs they started up with.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1036492

2014-01-13  Assaf Muller  <amuller@redhat.com>

	Fix VDSM boot
	Fix regression introduced in Gerrit 22750, hash 114692f.

	The unified net persistence upgrade name was changed, changing
	the name exposed to vdsm-tool. However, the call to the upgrade
	was still using the old name.

2014-01-13  Sander  <bugzilla@grendelman.com>

	nestedvt hook: identify kvm_amd properly
	kvm_amd uses "1" for it's nested flag, kvm_intel uses "Y"

	Bug-Url: https://bugzilla.redhat.com/1035314

2014-01-13  Dan Kenigsberg  <danken@redhat.com>

	ifcfg: exclude HWADDR lines if requested
	In prehistoric days, our ifcfg files included HWADDR lines for
	persistent NIC names on EL5 hosts. Our currently-supported
	systems no longer require HWADDR for that, but rather use udev rules.
	HWADDRs are still required if NetworkManager is running and needs them
	to adhere to our NM_CONTROLLED=no directive.

	HWADDR lines in ifcfg files are frowned upon, since they essentially
	duplicate information that already exists in udev rules.  Users who
	would like to avoid them can now configure hwaddr_in_ifcfg to "never"
	instead of the default "always".

	Bug-Url: https://bugzilla.redhat.com/1044060

2014-01-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing unnecessary check-local from storage Makefile.am
	We used that to run storage_exception main [1] to verify the numeration of
	the error code numbers. This section was removed from storage_exception
	and is not needed anymore. Therefore this patch omits the redundant
	check-local scope.

	[1] http://gerrit.ovirt.org/#/c/2356/4/vdsm/storage/storage_exception.py

2014-01-13  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: vdsm-python requires zombiereaper
	vdsm/utils.py requires vdsm--python-zombiereaper

2014-01-12  Assaf Muller  <amuller@redhat.com>

	Add --run-again option to upgrades
	The --run-again option will ignore the existance of upgrade files
	in /var/lib/vdsm/upgrade/

	Each upgrade will still only run if it thinks it should run.

	The --run-again option has two use cases:
	1) It's easier to tell users to run an upgrade again with
	   --run-again, then it is to tell him/her to delete some random
	   file first, and then run the upgrade again. This will make
	   life slightly easier when tickets start popping up.
	2) During development of upgrades

2014-01-12  Vered Volansky  <vvolansk@redhat.com>

	utils: Moved RollbackContext from misc to utils
	The RollbackContext class was located in storage/misc, and is used by
	several non-storage tests. It was therefore moved to utils, where it
	belongs. Accordingly, RollbackContextTests class was moved to utilsTests
	from miscTests.

2014-01-12  Aravinda VK  <avishwan@redhat.com>

	gluster: Add force option to Volume Create command
	glusterfs cli will fail if system's root partition is used
	as brick dirs. If user wants to use system's root partition as
	bricks dir then "force" option can be used in gluster cli.

	Added the "force" parameter to vdsm verb
	glusterVolumeCreate

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1008942

2014-01-12  Assaf Muller  <amuller@redhat.com>

	BindingXMLRPC bugfix: Use getDeviceByIP() for lastClientIface
	Use the new function introduced in:
	http://gerrit.ovirt.org/#/c/22841/

	To report the 'management device' to the engine.

	BindingXMLRPC bugfix: Added netinfo:getDeviceByIP and a test
	In essence a revert for http://gerrit.ovirt.org/#/c/21470/
	I decided not to actually revert so that we keep the new getRouteTo
	and its test, as its covered by a test and may be useful in the
	future.

	Both 'getDeviceByIP' and 'getRouteTo' solve the same issue:
	How to report to the engine the device through which the last client
	communicated to VDSM. This is used only in installation, so the
	engine knows on what NIC to place the management bridge.

	The getDeviceByIP approach gets the IP addr
	of VDSM's side of the socket, and looks up the NIC which has that IP.
	That had issues with testing (The changes can be seen in this patch).
	getRouteTo's new (But flawed) approach was to route to the engine's
	side of the socket. This failed in all-in-ones as it returned the
	loopback device - It's not possible, nor does it make any sense
	to place the management bridge on the loopback device.

2014-01-11  Vitor de Lima  <vitor.lima@eldorado.org.br>

	utils.py: Add hostUUID retrieval support for KVM on PPC64

2014-01-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Add with_vhostmd
	The package vhostmd is only available on Fedora, the EL* version
	is not available in EPEL.

2014-01-10  Dan Kenigsberg  <danken@redhat.com>

	cleanup: fix inconsistent indentation

2014-01-09  Nir Soffer  <nsoffer@redhat.com>

	clientIF: Rescan devices if device not found after vmHotplugDisk
	According to the analysis in the bug, invoking vmHotplugDisk right after
	connectStorageServer may not leave enough time for multipathd to create
	the device, leading to unnecessary failure.

	As I understand, multipathd is receiving events from udev and creating
	devices. The race is probably related to the asynchronous nature of this
	mechanism. Invoking multipath.rescan() force synchronous update of the
	found devices.

	The original fix in commit 15c7f74365cb5d2c9258bc333c441941c6e42bdb
	tried to to invoke multipath.rescan() if the device was not found. Due
	to a unfortunate error, multipath.rescan() was never invoked.  Although
	the bug was never fixed, QE verified it and customers are using this
	code for the last 6 month.  We believe that the problem is a tiny race
	that is unlikely to happen, but it is possible and should be fixed.

	This patch implements the original fix in a different way, calling
	getDevicesVisibility(), which invokes multipath.rescan() if a device is
	missing.

	Relates-To: https://bugzilla.redhat.com/923773
	Bug-Url: https://bugzilla.redhat.com/1044068

2014-01-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fix return parameter value and name of sanlockConfigModule is-configured
	1. Fixing the return value to the right expected boolean.
	2. Changing ret to configured for more readability of the code.

	Validate VDSM user's sudoer permissions
	On startup VDSM will try to run SUDO arbitrary command to validate that vdsm
	sudoer configuration (sudoers.d/50_vdsm file) is set and read properly.
	If not, will report to syslog and exit.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1024236

2014-01-09  Federico Simoncelli  <fsimonce@redhat.com>

	sp: split metadata transaction in createMaster
	This patch splits the createMaster metadata transactions in two parts:
	one part related to the pool metadata initialization (with safe default
	values) and the second one related to the domain metadata (including
	role, masterVersion and attached pool).

	The reason to split the two operations is to encapsulate the storage
	pool metadata into methods that later on can be moved out of the
	StoragePool class.

	Removing the previous transaction is not risky as the pool metadata
	values are safe defaults and the real commit phase is executed in the
	domain metadata transaction. The two side effects of this change are:

	- we always initialize the pool metadata even when the domain metadata
	  transaction fails
	- the createMaster operation takes now two storage operations instead
	  of one

2014-01-08  Nir Soffer  <nsoffer@redhat.com>

	hsm: Rescan multipath before loading lvm cache
	lvm cache was loaded before multipath rescan, loading possibly stale
	data, since existing devices may disappear and new devices may appear
	after multipath rescan.  After lvm cache was loaded, storage domain
	cache was refreshed, invoking multipath rescan and invalidating lvm
	cache.  Later lvm commands would trigger a second load of the lvm cache.

	This patch refreshes storage domain cache before loading lvm cache,
	ensuring a fresh cache and saving an unneeded lvm cache reload, which
	can be slow when having lot of lvs.

	bootstrap: Return recovery error until hsm is ready
	When constructing HSM, a background thread is started, invoking
	lvm.bootstrap and other initialization tasks.  Since lvm bootstrap is
	performed in a background thread, it may not be done when vdsm is asked
	to connect to storage pool or manipulate images.  This may lead to a
	race when lvm bootstrap thread is deactivating a logical volume after
	engine asked to activate it.

	I considered moving lvm bootstrap into the main thread; However this may
	delay startup by a minute or more when we have huge amount of lvs. While
	server is waiting for bootstrap to finish, engine does not get any
	response from vdsm, and if vdsm is currently the SPM, engine cannot
	switch SPM to another host.

	This patch uses the recovery mechanism to respond with a recovery error
	until hsm background thread is done. From the user point of view, the
	host is "Initializing" until hsm is ready. If initializing host is the
	SPM, engine can switch SPM to another host as soon as vdsm is up.

	If a task in hsm background thread has a fatal error, hsm will never
	become ready, and the host will be considered initializing. This patch
	ensures that we cannot use storage and cause data corruption of storage
	initialization failed. This change may require engine support, fencing a
	host in this state.

	vm: Unify checks for vdsm image
	When testing if dict or vm.Drive object are vdsm image, we have to do
	an ugly type check, and then invoke either vm.Drive.isVdsmImage, or
	vm.isVdsmImage, which use different logic.

	Having vm.Drive.isVdsmImage looks, at first glance, as an improvement,
	but since we handle both dicts and drive objects, this only complicates
	the code. The different logic creates confusion and leads to pointless
	discussions if some key is needed or not in certain context.

	This patch unifies these checks; both vm.Drive and dict have now similar
	interface so isVdsmImage can handle both, and we use the same logic.

2014-01-08  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Rename migration_timeout to migration_downtime_delay
	Previously the migration_timeout value was supposed to be used for
	multiple things. Now the only meaning left is the calculation for
	the delay between the downtime steps.
	To reflect this, the value has been renamed and the code updated to make
	this meaning more obvious.

	Now it is 75 seconds per GiB of RAM the minimum time still is 150 seconds.

	Avoid going into 'Paused' status during long lasting migrations
	If a migration is taking longer than 'migration_timeout' the VM
	moves into 'Paused' state on the destination host.
	This patch increases the timeout to 6 hours as an absolute maximum
	for the destination to wait for the migration to finish.
	This is now reflected as the migration_destination_timeout.

	If the VM after the timeout still has the state PAUSED and the
	reason is `migration` we're going to raise an MigrationError and
	will lead to the destruction of the VM on the destination.

	In all other cases we're keeping the previous behaviour and are
	continuing with normal VDSM tasks without touching the state of
	the VM. That means that if the VM is in PAUSED state due to other
	reasons than migration, it will stay PAUSED.

	Bug-Url: https://bugzilla.redhat.com/1028917

	Introduce a maximum time limit a migration may take
	There are cases where migrations can take too much time. To set a finite
	end to this we're now introducing a new configuration value
	migration_max_time_per_gib_mem which defined the maximum time
	the migration may take per GiB memory. The default value of 64 seconds
	is calculated by 50% of current default value for the maximum bandwidth.
	(1 GiB needs 32 seconds on the maximum bandwidth)

	When migration_max_time_per_gib_mem is set to `0` the functionality
	is disabled.

	This time tracking is now handled in the MigrationMonitorThread on the
	source host side of the migration.

	Bug-Url: https://bugzilla.redhat.com/970645

2014-01-08  Vered Volansky  <vvolansk@redhat.com>

	misc: Fix exception re-raising in RollbackContext
	Former code assumed that exc_value argument is always an Exception
	instance, and tried to re-raise it using the "raise value, None,
	traceback" syntax. It turns out that exc_value in not an Exception
	instance when a KeyError is raised inside the RollbackContext class.
	In this case, exc_type is KeyError, but exc_value is the tuple
	("missingkey",).  When raising this tuple using the
	"raise value, None, traceback" syntax, Python hides the original error
	and raises a new confusing error:

	    "TypeError: exceptions must be old-style classes or derived from
	    BaseException, not str"

	In this patch, if there's no exception in the finally clause, python
	automatically re-raises the original exception (returning True would
	have swallowed it). The first exception in the finally clause is
	saved and re-raised with the "raise expression, expression,
	expression" syntax if there was no exception in the with clause.

	Tests Added:
	1. Verify that the above scenario is handled correctly.
	2. Verify that when an exception is raised both from the with  statement
	   and from an undo statement, the one from the with statement is the
	   one raised from __exit__().

	Relates-To: http://docs.python.org/2.6/reference/simple_stmts.html#the-raise-statement
	Relates-To: http://docs.python.org/2.6/library/stdtypes.html#contextmanager.__exit__

2014-01-08  Federico Simoncelli  <fsimonce@redhat.com>

	sp: refresh metadata on hsm when listing domains
	Previously to get the most updated domains list we were issuing an
	invalidateMetadata request before getDomains (updateMonitoringThreads).

	Given that invalidateMetadata is ignored on SPM (as the cache of the
	single writer is always up to date) we can encapsulate the metadata
	read in getDomainsMap (useful to remove the pool metadata) and always
	call invalidateMetadata before reading PMDK_DOMAINS.
	This will also ensure that on HSM the domains list is always up to
	date.

	The @unsecured decorator is removed from validatePoolSD and
	validateAttachedDomain to make explicit that they should be used only
	on the SPM (as HSM should never use these validations), and therefore
	getDomains won't trigger a metadata invalidation from there.

2014-01-08  Assaf Muller  <amuller@redhat.com>

	Gluster API verbs will now be callable again
	Fix regression introduced in #22837.

	When wrapping GlusterAPI methods via wrapApiMethod,
	wrapApiMethod was accessing a GlusterAPI method's im_self,
	(If f is the wrapped method, then f.im_self), which
	is an alias to an GlusterAPI instance, but the glusterAPI class
	doesn't define updateTimestamp.

	This patch moves 'updateTimestamp' to be a module function,
	which will be available no matter what method wrapApiMethod
	is wrapping.

2014-01-07  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Reduce the migration progress timeout
	The progress of the migration should indicate a stuck migration
	way before the currently configured migration_timeout, which has
	by default 300 seconds.

	Half of the time should be more than enough for now.

	This commit introduces the migration_progress_timeout configuration
	value to be able adjusting this value.

2014-01-07  Yaniv Bronhaim  <ybronhei@redhat.com>

	set reconfigureOnForce attribute to ModuleConfigurer
	When reconfigureOnForce set to True and --force flag set the configure
	verb will overwrite the configuration even if already set.
	For libvirt we do that to keep old semantic of --force flag.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1035847

2014-01-07  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Get rid of legacy status 'Running'
	The status 'Running' means 'Up' and Guest Agent is Responsive,
	however this state is not used by the engine at all even before
	version ovirt 3.0.
	Now we are completely removing it as this is not helpful having
	two states for Up.

2014-01-06  Maor Lipchuk  <mlipchuk@redhat.com>

	API: Replace try-except block with @traceback
	waitForPid thread was using an explicit try except block for
	reporting excpetions.
	The patch replaces it with the @traceback decorator,
	ensuring that exceptions are logged and simplifying the
	code.

2014-01-06  Nir Soffer  <nsoffer@redhat.com>

	clientIF: Decouple HSM and clientIF
	clientIF.irs is currently created in clientIF.__init__, coupling
	clientIF and HSM and creating confusion about irs availability during
	initialization.  There is a small window where irs is constructed but
	not set yet.  This state is invalid; we have only two states, irs
	enabled or not, and we don't support moving from one state to the other.

	This patch separates irs creation from clientIF creation. clientIF is
	created now with either a fully constructed irs object or None,
	eliminating the confusing unwanted state.

	This change also makes it easier to test clientIF, allowing creating of
	clientIF with fake irs instance.

	If we fail to create irs, we panic instead of running without irs.

2014-01-06  Mike Kolesnik  <mkolesni@redhat.com>

	hooks: Security groups support for OVS
	OpenStack Networking for OVS currently can't handle security groups on
	the OVS bridge itself, so a hybrid approach is used where the tap device
	is connected to a Linux bridge (on which the security groups can be
	implemented), and it is connected in turn to the OVS bridge using a
	"patch cable" made of a VETH pair.

	This commit implements the logic stated by:
	http://www.ovirt.org/Features/Detailed_OSN_Integration#Security_groups

	Note: Migration support for OVS + security groups will be added in a
	later patch.

	hooks: Extract devName function for openstacknet
	Extracted function to calculate the device name used for OpenStack
	Networking devices.

	hooks: Extract function for command execution
	This function will be used by the openstacknet hook to execute commands
	in a more convenient way, instead of repeating the logic to exit the
	hook everywhere.

2014-01-06  Dan Kenigsberg  <danken@redhat.com>

	spec: fix name of qemu-img for el7

2014-01-06  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vm: Bring back missing before_device_migrate_source hook call
	During the merge of libvirtvm.py and vm.py this section of the code
	somehow got removed, this patch brings it back.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1048763

2014-01-06  Vitor de Lima  <vitor.lima@eldorado.org.br>

	vdsm: Create VMs for the POWER architecture
	This includes changes necessary to create VMs in the POWER architecture
	 and run ppc64 guests in x86-64 hosts. These changes are:

	- Allow the architecture of a guest to be different from the host,
	  in order to allow x86-64 hosts to test ppc64 specific code
	- Execute x86 specific QEMU features only in x86-64 guests, like
	SMBIOS, guest cpu flags and processor models, ACPI
	- Create a virtual USB keyboard in ppc64 guests (this is not done
	  automatically like in the x86-64)
	- Create a virtual USB mouse in ppc64 guests
	- Use the Standard VGA device instead of the Cirrus Logic VGA in ppc64
	  guests
	- Change the default drive interface to SCSI in ppc64 guests
	- Increase the default memory size for fake ppc64 KVM guests
	- Tests covering the PPC64 specific code

2014-01-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	Updating README with vdsm-tool new api

2014-01-05  Maor Lipchuk  <mlipchuk@redhat.com>

	libvirtconnection: Fix _EventLoop.run if thread exited abnormally.
	Previously if the event loop thread exited abnormally, the run variable
	was left in wrong value. Now the variable is set back to False in this case.

	libvirtconnection: Fix a race when starting the eventloop
	This patch fixes a race which occurs when setting self.run to True
	only after starting the thread.

	lbvirtconnection: use root logger
	Assign log variable the default logger which is the root logger.
	The log of libvirtconnection is not configured in the configuration file
	which cause the all the logs that using that not to be seen in the vdsm.log

	The use of the root logger will make the log be seen in the vdsm.log

2014-01-05  Assaf Muller  <amuller@redhat.com>

	BindingXMLRPC bugfix: Return lastClientIface for current connection
	The patch does two things:
	1) Fixes a bug where lastClientIface was for the previous
	   connection, and not the current one. The method to retrieve
	   the last client was through a log_request LoggingMixIn
	   which is invoked at the end of a response, not at the beginning.
	   The patch removes the usage of that MixIn, and instead uses
	   values that are updated at the beginning of the connection
	2) Simplifies the 'LoggingMixin' out of the picture as its no
	   longer needed

	BindingXMLRPC cleanup: Remove unused variables

	BindingXMLRPC cleanup: Inline getServerInfo
	Inlining getServerInfo because:
	1) It's used exactly once
	2) I'd like to avoid people using it at all. It only works
	   if there's exactly one client, and only for one command
	   at a time. It works for the purposes it's used, but if
	   (code) users expect it to work for all cases they'd be
	   in for a surprise

2014-01-05  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: remove master info from getStorageDomainInfo
	The pool metadata doesn't belong in the storage domain information
	and ovirt-engine never read those values.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1033942

2014-01-04  Nir Soffer  <nsoffer@redhat.com>

	supervdsmServer: Cleaner way to wait for signals
	supervdsmServer was using silly way to wait for termination, working
	around Python bug. This patch use the standard way to wait until
	termination signal is received, eliminating the workaround.

2014-01-04  Dan Kenigsberg  <danken@redhat.com>

	update NIC: having no custom properies is valid
	Older Engines, that preceded per-vNIC custom properties (Vdsm commit
	38b1f8fb) do not send the "custom" element at all. This has to be
	interpreted exactly as an empty custom element.

	Bug-Url: https://bugzilla.redhat.com/1047646

2014-01-03  Francesco Romani  <fromani@redhat.com>

	tests: do not check permissions on dos filesystem
	commit 0b147dc2e247e787ad760ba30a8b8815eb65daca
	introduced an extra step in unit tests, to check
	the permissions of the files in the created filesystem.

	This is fine for filesystems which support permissions,
	but DOSFS/FAT/VFAT does not, then the tests on this
	filesystem started to fail for no good reasons.

	This patch fixes this misbehaviour by disabling the
	permissions check in filesystem which do not support
	them.

	vdsm: prepareVolumePath payload misdetection fix
	The changeset http://gerrit.ovirt.org/#/c/22324/3
	used a condition too broad for its check, causing
	a device path misdetection when cloud-init is used.

	It is triggered in the following case:
	specParams vmPayload attribute has
	"file"(with content), path" non existent.
	Device's (drive's) "path" is set to ''.
	The code then consider the cdrom with vmPayload
	a case of empty CDROM and creating it as such.
	It did work before because the condition results
	false when there is no 'path' in drive['specParams']
	(which is the case here) and goes to the
	next condition section (the right one with payload handling)

	This patch provides a band-aid fix to the issue
	by tightening the prepareVolumePath check.

	Bug-Url: https://bugzilla.redhat.com/1047356

2014-01-03  Nir Soffer  <nsoffer@redhat.com>

	sourceRouteThread: Encapsulate inotify thread
	sourceRouteThread defined a main function for the inotify thread, but
	the thread was created and started from supervdsmServer main function.
	This couple these modules, expose module implementation details, and
	make both sourceRouteThread and supervdsmServer harder to understand and
	maintain.

	This patch move inotify thread creation boilerplate from supervdsmServer
	main function to a start function in sourceRouteThread module.  The
	inotify thread main function is private now, unlikely to be used from
	other modules by mistake.

	A nice side effect is shortening the too-big-and-growing try-block in
	supervdsmServer main.

	supervdsmServer: Run sourceRouteThread in a thread
	The current code was running the sourceRouteThread main function in the
	main thread instead of starting it in a thread. This probably leads to
	bogus message in the supervdsm log. Now the code is doing what it was
	trying to do.

2014-01-03  Antoni S. Puimedon  <asegurap@redhat.com>

	sourceRouteThread: log unhandled exceptions

2014-01-03  Maor Lipchuk  <mlipchuk@redhat.com>

	clientIF: Log unhandled exception for new Thread
	Adding a traceback log for unhandled exceptions, when openning a new thread, so
	it will not die silently.  Since the log in clientIF instance is inaccessible
	from the decorator, we use the default root logger.

2014-01-02  Mike Kolesnik  <mkolesni@redhat.com>

	hooks: Renamed openstacknet_consts file
	In order to put functions in the shared file, it is more appropriate to
	name it openstacknet_utils rather than openstacknet_consts.

2013-12-31  Maor Lipchuk  <mlipchuk@redhat.com>

	libvirtconnection: Log unhandled exception for new Thread
	Adding a traceback log for unhandled exceptions when execute __run in EventLoop
	class so it will not die silently.

2013-12-30  Federico Simoncelli  <fsimonce@redhat.com>

	sp: remove a dangling _saveReconnectInformation
	A reordering of patches left a dangling _saveReconnectInformation in the
	StoragePool class. It should have been removed with:

	 6fd14dd sp: remove automatic storage pool reconnection

	sp: encapsulate spm status in StoragePool
	The scope of this patch is to group the spm status values and access
	them consistently in StoragePool and HSM.

2013-12-27  Federico Simoncelli  <fsimonce@redhat.com>

	sp: remove scsiKey from connectStoragePool

2013-12-27  Francesco Romani  <fromani@redhat.com>

	ksm: janitorial: with construct, file() to open()
	Summary: use open() and with wherever feasible.

	Details:
	- move from file() to open(), as the direct usage of file()
	  is deprecated:
	  http://docs.python.org/2/library/functions.html#file
	  http://docs.python.org/release/3.0/whatsnew/3.0.html#builtins
	- use the with construct wherever possible, with files and
	  threading.Locks
	  http://docs.python.org/2/library/threading.html#using-locks-conditions-and-semaphores-in-the-with-statement
	- factor the code which read the procfs entries in a couple
	  of helper functions, and a few tests for them.

	PatchSet V2:
	- moved tests into specific file ksmTests.py.
	- used more specific check assertGreater insted of generic assertTrue.

	PatchSet V3:
	- registered ksmTests.py in Makefiles
	- fix pep8 in ksmTests.py
	- in KsmMonitorThread.adjust there is no need to call running() with
	  lock held.

	PatchSet V4:
	- revert to assertTrue in tests, because more specific asserts require
	  python 2.7; EL6 is python 2.6.

	PatchSet V5:
	- keep the tests ordered.

2013-12-26  Assaf Muller  <amuller@redhat.com>

	Improved macspoof hook README following user request

	Unified net persistence upgrade: Change 'bridged' from str to bool
	'bridged' is defined as a bool in the VDSM API, although both
	a string and a bool seem to work.

2013-12-26  Dan Kenigsberg  <danken@redhat.com>

	setupNetworks: support networks with no underlying NIC
	The old addNetwork API supported the ability to create a bridged network
	that has no leg to the outer world. This capability was lost in the
	not-so-very-new setupNetworks API.

	If a user had a nicless network defined by addNetwork, and tried to
	upgrade to unified persistence, the upgrade script (which uses
	setupNetworks) would have failed.

2013-12-26  Nir Soffer  <nsoffer@redhat.com>

	hsm: Do not hide errors when checking device visibility
	When checking devices visibility, all errors from os.stat() are treated
	as "device does not exists", hiding fatal error and making it harder to
	debug and fix them.

	This patch handle only ENOENT for checking visibility and raise other
	errors we cannot handle.

	Relates-To: https://bugzilla.redhat.com/923773
	Bug-Url: https://bugzilla.redhat.com/1044068

	hsm: Check all devices visibility after multipath rescan
	After invoking multipath rescan, existing devices may disapper, and
	non-existing devices may appear. The orignal code was checking again
	only one device after a rescan, possibly returning bogus results.

	This patch check now all devices after invoking multipath.rescan().

	Relates-To: https://bugzilla.redhat.com/923773
	Bug-Url: https://bugzilla.redhat.com/1044068

	Revert "clientIF: rescan devices on failed hotplugDisk"
	Commit 15c7f74365cb5d2c9258bc333c441941c6e42bdb tried fix a case where
	device is not visible after hotplug. The solution included a call to
	multipath.rescan() if the device does not exists, and checking again if
	the device exists. However, due to sneaky bug in the fix, the code was
	never invoking multipath.rescan(), and was actually a Placebo.

	The original commit added an undocumented public method for scanning
	devices visibility. The method did not perform readability check, like
	getDevicesVisiblity; there is no documentation or other evidence why
	this solution was chosen.

	The original commit tried to improve the way devices are checked for
	visibility, checking if all devices exists after multipath.rescan().
	However this improvement was canceled because multipath.resacn() was
	never running.

	The original code was calling os.stat() once per device.  After the
	commit, we call os.path.exists() for all devices, and os.stat() for
	existing devices.  This additional calls are pointless and introduces a
	race, when a devices exist in the first call, and disappear in the
	second.  Since the commit remove the exception handling while calling
	os.stat(), getDevicesVisibility may fail now with OSError in this case.

	One successful change was improving logging in clientIF, but this should
	have never be committed with the rest of the changes.

	This is the first patch in series of patches fixing the regressions
	introduced by the original commit and adding the good changes.

	This reverts commit 15c7f74365cb5d2c9258bc333c441941c6e42bdb.

	Relates-To: https://bugzilla.redhat.com/923773
	Bug-Url: https://bugzilla.redhat.com/1044068

2013-12-25  Dan Kenigsberg  <danken@redhat.com>

	link monitor: do not leave stray `ip monitor` behind
	ipwrapper.Monitor.start() spawns an `ip monitor link` process that may
	run forever. If Vdsm crashes, we should take care to kill it, or it
	would leak.

	Due to this patch, ipwrapper.Monitor.start() should be called from an
	ever-lasting thread.

2013-12-25  Federico Simoncelli  <fsimonce@redhat.com>

	sp: remove unused recoveryMode from spmStart

	sp: remove unused scsiFencing parameter

2013-12-25  Francesco Romani  <fromani@redhat.com>

	tests: janitorial: cleanup temporary directories
	A few tests don't cleanup the temporary directories they created to run.
	A the end of the day, you can easily end up with tons of
	entries in /tmp.

	This patch ensures each testcase does its own cleanup, by using
	a new contextmanager to handle and clean automatically a
	temporary directory.

	Also, move away the test data handling from ifcfgConfigWriterTests's
	__init__/__del__ and move it into setUp and tearDown, to make the
	process more predicatable and robust.

2013-12-24  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix assert bug in testBrokenBridgelessNetReplacement
	If the underlying device is missing, vdsm will not report
	the network, but its config in vdsm is still there before
	the broken network is removed.

2013-12-24  Dan Kenigsberg  <danken@redhat.com>

	config: rename net_persistence
	'persistence' is a too-generic name for a configurable controlling the
	persistence method of network definitions. 'net_persistence' would be a
	more appropriate name. Let us rename this one quickly before anyone
	starts to use the current name.

2013-12-24  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netconf: Add dhcp support for iproute2 configurator
	This patch enables iproute2 configure ip address via dhcp.

	netconf: Add config option for network configurator
	After adding iproute2 configurator, we need a config option
	to indicate which configurator should be used to perform
	network configuration.

	Note that net_configurator=iproute2 is not yet fully functional. It
	lacks:
	- source routing
	- ipv6
	- Persisting and reporting the BOOTPROTO option

2013-12-23  Antoni S. Puimedon  <asegurap@redhat.com>

	link monitor: replace events() with optionally continuous iteration
	The way to use the monitor now is:
	- Iteration on a stopped monitor:

	    mon = Monitor()
	    mon.start()
	    mon.stop()
	    for event in mon:
	        do things with the event

	- Iteration on a running monitor:

	    mon = Monitor()
	    mon.start()
	    for event in mon:
	        do things with the event

	This is the first step towards having a thread that keeps netinfo
	updated by events.

2013-12-23  Federico Simoncelli  <fsimonce@redhat.com>

	sp: remove automatic storage pool reconnection
	On startup the storage pool directory (/rhev/data-center/<spUUID>)
	is removed by __cleanStorageRepository preventing the automatic
	reconnection (_connectStoragePool) from actually taking place.
	Since vdsm has been running for quite some time (years) without the
	automatic reconnection we can safely remove it.

2013-12-23  Martin Polednik  <mpoledni@redhat.com>

	vdsm: add logging to _getUnderlyingDriveInfo
	_getUnderlyingDriveInfo() currently logs nothing - due
	to unfrequent calls to this function, it might be good idea
	to add verbose logging that displays how the devices are
	matched in _devices and conf['devices']

2013-12-23  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: fix excessive process creation
	_detectType is a very very often used operation and it was relying
	executing the ethtool binary for its operation. That was so costly
	that we were forced to use memoization to minimize the impact.
	Unfortunately, that came with its own risks, as the memoization
	was name based and could eventually give wrong names or even more
	common, fail to detect that a device is no longer present in the
	system.

	python-ethtool has a method for getting this information but
	reports the IOErrors incorrectly (missing errnos). A patch has
	been submitted for it and when it is released across the OS
	versions we support we could drop this code.

2013-12-23  Federico Simoncelli  <fsimonce@redhat.com>

	sp: _refreshDomainLinks must not change the metadata
	Method _refreshDomainLinks is used on HSM hosts and it shouldn't change
	the pool metadata. In order to make sure that the domains are properly
	marked as regular we fix their role during startSpm and activateSD.

	In this patch:
	- add _updateDomainsRole to make sure that all the regular domains are
	  marked as regular (used at startSpm time)
	- mark domain as regular during activation

2013-12-23  Vitor de Lima  <vitor.lima@eldorado.org.br>

	vdsm: Handling topology for ppc64
	This change adds a method to extract the CPU topology information
	thourght the lscpu command. The current method for x86_64 hasn't
	been changed.

	This is done due to libvirt showing wrong information about ppc64
	topology (issues BZ 621546 and 751205), the lscpu command is being
	used to obtain it.

	The topology tests were changed to be executed in a mock
	architecture and new test cases were added to handle ppc64 methods.

2013-12-23  Federico Simoncelli  <fsimonce@redhat.com>

	sp: add setMasterDomain to StoragePool
	It turns out that getMasterDomain is used mostly as a setter for
	the masterDomain attribute. This patch makes it explicit renaming
	the method to setMasterDomain.

2013-12-23  Francesco Romani  <fromani@redhat.com>

	mkimage: create files with explicit permissions
	The files in the ISO image created with mkimage.mkIsoFs,
	most notably `user_data` and `meta_data.json`, will
	have world readable permissions.
	They contain sensitive data, so it is unsafe to do so.

	This patch addresses the issue by adding the capability to set
	per-file permissions at creation time in
	mkimage._decodeFilesIntoDir
	the current default is 0o640, so we just avoid to create any
	world-readable file at all.

	Another approach to obtain the same result could be to use
	the -file-mode option of the `genisoimage` program.

	Fixing the permissions directly into the python code has the following
	advantages:

	* we use the correct permissions right from the start, effectively
	  closing the vulnerability window; if we let genisoimage fix things,
	  there still is a (very short) time window on which the newly
	  created files are still world-readable.

	* this paves the road to fine-grained, per-file permissions
	  with negligibile extra cost (in short, this is more forward-compatible).

	However, we still need to change to behaviour of `genisoimage` because
	it now uses the `-r` option to smartly fix permissions and POSIX
	attributes in a meaningful way. Now we need to preserve verbatim the
	attributes. The biggest (only?) effect is that genisoimage
	no longer automatically fixes uid/gid of the content of the ISO image
	to 0/0, and preserves the creator process values.

	PatchSet V2:
	- removed defaults in _openFile: not needed.
	- more complete permissions test: check user and group permissions.

	Bug-Url: https://bugzilla.redhat.com/1034247

2013-12-20  Peter V. Saveliev  <peet@redhat.com>

	vdsm: migration progress: count memRemaining also
	Take into account that not only dataRemaining can grow, but memRemaining
	can it too. So, we should check both of them.

	+ make code slightly more readable.

2013-12-20  Martin Betak  <mbetak@redhat.com>

	vdsm: Add support for Guest Reboot
	Added optional parameter reboot to shutdown in vdsm and vdsClient.
	This parameter represents whether the user wants to reboot the VM
	(reboot=True) or just a regular shutdown (reboot=False). To keep
	backwards compatibility, the default is False.

	Current implementation only utilizes the guest agent for reboot and does
	nothing in its absence. The semantics of existing shutdown should be
	unchanged by this patch.

	Note that older versions of GA don't support the reboot flag and
	consqeuently will issue a shutdown instead of reboot.

2013-12-20  Antoni S. Puimedon  <asegurap@redhat.com>

	sriov: stop virtual functions from being reported as nics
	Previously we were reporting SR-IOV Virtual functions a regular nics.
	This was misleading and was counter productive when wanting to use
	a hook for attaching (or passing through) a VF as a vNIC to a VM.

	This patch implements the first part, "Filter out unused virtual functions from
	being reported as nics." of:
	http://www.ovirt.org/Features/UCS_Integration

	link monitor: Reuse Link parsing
	'ip -d -o link show' and 'ip monitor link' lines share most of the
	format. The main difference is that the latter has the special
	deleted lines.

	This patch makes the monitor parser worry only about the specific
	monitor bits ('deleted') and reuse the logic iproute2 link entry
	parsing.

	linkmonitor: fix reported device name of vlans and macvlans
	Previously, vlans and macvlans would get the event name reported as:
	- 'foo@bar', where bar is the device the foo macvlan sits on.
	- 'bond777.555@bond777', where bond777 is the device the 555 vlan
	  sits on.

	After this fix, both devices would be properly reported as:
	- foo
	- bond777.555

	Since we use the ifindex, we'll add it to the event.

2013-12-20  Francesco Romani  <fromani@redhat.com>

	tests: janitorial: factor named temp file creation
	A common pattern in the testsuite is to create a named
	temporary entry in the filesystem, optionally filled
	with test data and, less commonly,  with adjusted permissions.

	This patch refactor this behaviour in an handy context manager,
	named temporaryPath, which also ensures entries are deleted when
	no longer needed.

	It is worth to point out that the usage of this context manager
	can be at least partially replaced with tempfile.NamedTemporyPath;
	If it's the case, this will be addressed in a future patch.

	PatchSet V2:
	- fix rebasing

	PatchSet V3:
	- always cleanup the temporary path, even in presence of exceptions.

2013-12-19  Antoni S. Puimedon  <asegurap@redhat.com>

	vmfex: fix vdsm.spec.in error
	I was fixing http://gerrit.ovirt.org/#/c/22529/10 on a host and
	verifying there. I decided that for one word ammend I could copy
	it by hand and I managed to "fat-finger" it. May the typo machines
	that are my hands get urticaria.

	vmfex: Add vmfex device custom properties hook
	The current vmfex hook works at the VM level which creates some
	usability issues. This new hook makes it easier for the
	administrator to map a vNIC to a VM-FEX port by just making him
	specify a custom device property called 'vmfex' that has the
	Port Profile as content.

	This is half of the implementation of level IV of:
	http://www.ovirt.org/Features/UCS_Integration

	The other half to follow up in another patch is to filter out the
	Virtual Functions from the nics report in netinfo.nics()

	ipwrapper: workaround for ip -o link bug with intel sriov
	There is currently an iproute bug ( https://bugzilla.redhat.com/1045032 )
	when reporting intel SR-IOV capable devices that makes the report be:

	    [root@dell-r210ii-07 ~]# ip -o l
	    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN \    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
	    2: p1p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000\    link/ether 90:e2:ba:04:29:88 brd ff:ff:ff:ff:ff:ff
	        vf 0 MAC d2:e9:dd:53:3d:a5
	        vf 1 MAC aa:f7:de:38:1c:f9
	        vf 2 MAC 22:44:45:db:ff:8a
	        vf 3 MAC a2:59:8d:b9:17:30
	        vf 4 MAC 4a:d8:39:86:38:d5
	        vf 5 MAC 6e:4e:cc:21:74:7f
	        vf 6 MAC d6:75:14:15:1d:8b
	    3: p1p2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000\    link/ether 90:e2:ba:04:29:89 brd ff:ff:ff:ff:ff:ff
	        vf 0 MAC 66:0c:f8:af:e4:bb
	        vf 1 MAC 2e:4e:a5:99:c1:33
	        vf 2 MAC 46:ff:0f:cc:8e:a5
	        vf 3 MAC e6:b6:67:e6:54:7d
	        vf 4 MAC 16:fb:b0:a2:c7:55
	        vf 5 MAC 16:58:73:bd:15:8f
	        vf 6 MAC ce:d1:fe:b9:5d:cb
	    4: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000\    link/ether d0:67:e5:f0:82:44 brd ff:ff:ff:ff:ff:ff

	As seen above, instead of showing the vf extra information in the same line
	escaping with '\', it prints extra lines.

2013-12-19  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: refresh pool connection on connectStoragePool
	This patch ensures that connectStoragePool would trigger a refresh
	when the host is already connected to the same pool.
	Using connectStoragePool instead of refreshStoragePool is at the base
	of the storage pool metadata removal but it also solves an existing
	problem in the non-operational recovery flow where the engine sends
	a connectStoragePool request.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1026697

2013-12-19  huntxu  <mhuntxu@gmail.com>

	fileSD: Fix image deletion on gluster domain
	getImagePath() does not work for glusterSD. The problem is caused by
	that domaindir's base paths of glusterSD and other file-based SD are not
	the same. For glusterSD, it's sd.storage_repository/mnt/glusterSD,
	while it's sd.storage_repository/mnt/ for other file-based storage
	domains. This makes the deletion fail on gluster domain.

	With this patch we use the storage domain's domaindir to get the image's
	directory correctly.

	Reference:
	  * http://lists.ovirt.org/pipermail/users/2013-December/018653.html

2013-12-19  Yeela Kaplan  <ykaplan@redhat.com>

	vm: Update domains list for disks attached to vm after LSM
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1036680

2013-12-19  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Add iproute2 configurator
	This patch adds a new host network configurator based on iproute2.
	We could just reuse the ifcfg's configurator totally and add a new
	ConfigWriter based on iproute2. But it turns out this approach is
	not very suitable to the iprtoute2 model. The ifcfg configurator
	depends on the behavior of ifup/ifdown, so it imposes some
	unnecessary restriction on the new ConfigWriter.  So this patch
	chooses to add a new configurator and reuse some code of ifcfg
	configurator. In future, we could move those common code to a base
	class after refactoring ifcfg configurator.

	This patch dosen't include the support for dhcp and ipv6, which
	will be added in following patches.

2013-12-18  Dan Kenigsberg  <danken@redhat.com>

	netinfo.getRouteDeviceTo: return a device name
	As of commit 1a825c79, netinfo.getRouteTo() returned a Route object if
	it had found one, and the empty string on various error conditions.
	That's a bad practice, and makes BindingXMLRPC code explode with an
	AttributeError when it tries to compute route.device.

	This patch renames the function to getRouteDeviceTo() and makes it
	return routing device name (or empty string) as needed by
	BindingXMLRPC.getServerInfo.

2013-12-18  Saggi Mizrahi  <smizrahi@redhat.com>

	threadpool: Move iteration logic to it's own method
	By moving it to a method you use python's natural scoping rules and
	enforce that even in the future iteration local variables don't leak
	out.

2013-12-18  Assaf Muller  <amuller@redhat.com>

	upgrade.log now owned by vdsm:kvm
	Bug:
	If the admin installs VDSM, but before VDSM's first run
	manually calls vdsm-tool (As root) then /var/log/vdsm/upgrade.log
	is created with root:root file privileges. However, if vdsm-tool
	is not manually used before VDSM's first run then upgrades
	will be ran under the vdsm user, so /var/log/vdsm/upgrade.log
	will be created with vdsm:kvm privileges.

	Fix:
	* Create upgrade.log in only one place by separating it out to
	  a new logging conf file
	* Make sure that upgrade.log is owned by vdsm:kvm when it is created

2013-12-18  Federico Simoncelli  <fsimonce@redhat.com>

	sp: specific method to validate the master version
	The validation of the master domain version must be abstracted as
	it relies on directly accessing the pool metadata.

	In this patch:
	- remove (the barely unused) validatePoolMVerHigher
	- add a specific method in charge to validate the master version on
	  a specific domain (validateMasterDomainVersion)

2013-12-17  Vitor de Lima  <vitor.lima@eldorado.org.br>

	vdsm: Report fake capabilities
	This patch introduces a 'fake KVM on PPC64' mode, adding
	a configuration parameter indicating to VDSM if it must report fake
	capabilities, so a x86_64 host could be used to validate PPC64-specific
	code.

2013-12-17  Federico Simoncelli  <fsimonce@redhat.com>

	sp: avoid masking uuid in StoragePool methods
	For some unknown reason during an unrelated refactoring these methods
	began to trigger pep8 errors related to the uuid variable masking the
	module with the same name.

2013-12-15  Dan Kenigsberg  <danken@redhat.com>

	hook: extnet: attach a vNIC to a libvirt network defined outside oVirt
	This patch adds a hook which allows to connect a vNIC to a libvirt
	network that is managed outside of oVirt. To use this hook, you should
	first define and activate such a network, as documented in
	http://libvirt.org/formatnetwork.html, on each host where the hook is
	deployed.

	For example, to use an openvswitch bridge, first virsh net-define
	    <network>
	      <name>ovs-net</name>
	      <forward mode='bridge'/>
	      <bridge name='ovsbr0'/>
	      <virtualport type='openvswitch'/>
	    </network>

	This preperation was not required in a previous version for the hook
	(named forcebridge). However, this version allows to benefit of
	non-bridged libvirt networks, too.

2013-12-15  Jiri Moskovcak  <jmoskovc@redhat.com>

	Changed BrokerLink log level to prevent log flooding
	- vdsm imports the BrokerLink lib with ovirt_hosted_engine_ha,
	  unfortunatelly it's logger generates a lot of debug output
	  in the default configuration, so this patch sets the level
	  of the whole ovirt_hosted_engine_ha package to ERROR
	  to limit the amount of the logs

	- NOTE: this patch needs some changes in the ovirt_hosted_engine_ha
	  logging, without these changes it does not have any
	  effect

	Depends-On: I40fb7aca813800dd445e858406034736817cac9c
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1040884

2013-12-13  Antoni S. Puimedon  <asegurap@redhat.com>

	configNetwork: Fix bridgeless broken network deletion
	When trying to delete a broken bridgeless vdsm network, if the iface
	referenced by the network definition was missing, delNetwork would
	not get any device on its call for vlan, nic and bonds, but
	objectivize would be called nonetheless, failing with a:

	ERR_BAD_PARAMS: 'Network defined without devices.'

	The fix consists on just removing the network from libvirt when the
	backing device is missing.

	Bug-Url: https://bugzilla.redhat.com/1020356

2013-12-13  Nir Soffer  <nsoffer@redhat.com>

	libvirtconnection: Do not start event loop on import
	Starting a thread on import is very bad idea. This patch fix that by
	adding start_event_loop() function and makes the event loop class
	private and more robust.

2013-12-12  Antoni S. Puimedon  <asegurap@redhat.com>

	sourcerouting: make thread daemonic
	The Python interpreter waits for non daemonic threads. The
	sourceRouteThread shouldn't keep the process waiting.

2013-12-12  Dan Kenigsberg  <danken@redhat.com>

	janitorial: drop stray refs to storage.misc.execCmd
	storage.misc.execCmd was moved to vdsm.utils quite long ago. Drop
	references from outside the storage subdir to the old location.
	Further references (from within storage) should be dropped in a future
	patch.

	janitorial: drop remaining betterPopen references
	betterPopen has been named cpopen long ago, and was spun off to an
	independent package. This patch clears the remaining references to the
	old vague name.

2013-12-12  Francesco Romani  <fromani@redhat.com>

	utils: janitorial: refactor utils.readMemInfo
	minor cleanup in readMemInfo:
	- split the actual parsing logic in a separate function;
	- modernized readMemInfo, switching from file() to with/open().
	- added a couple of unit tests to be sure everything still works.

	PatchSet V2:
	address the comments about V1:
	- parseMemInfo is now _parseMemInfo, as it is not expected to be
	  used outside the utils.py (and its tests)
	- use os.path.dirname() to find the test data

	PatchSet V3:
	- registered mem_info.out as test data.

	PatchSet V4:
	- register mem_info.out in vdsm.spec.in and in the debian install file.

	PatchSet V5:
	- drop stray blank line.

2013-12-11  Saggi Mizrahi  <smizrahi@redhat.com>

	syncproc: Add blocking mode.
	By setting `proc.blocking = True` it will make reading and writing move
	to blocking mode.

	This is useful when you don't want read operations to return when no
	data is available but instead wait for it.

	asyncproc: Return None when no data could be read
	According to http://docs.python.org/2/library/io.html#io.RawIOBase
	we need to return None when a non-blocking call couldn't produce any
	data and not an empty strings.

	Originally we returned an empty string and that confuses other IO
	subsystems in python which assume this behaviour is correct.

	asyncproc: Removed the close count.
	When I originally wrote the class I assumed that since the process side
	FD is closed I should mark it closed on VDSMs side as well.

	This appeared to be problematic as stuff in the python infrastructure
	don't like it when I autoclose the FD for them.

	I partially solved it by adding the close counter so that things don't
	crash because they don't expect the FD to get closed while they are
	reading even if they got EOF.

	But since closing the FD doesn't really need to be reflected in the
	stream I now decided it's better to just leave it marked as open in the
	stream wrapper. The real FD is managed by AsyncProc so there is no worry
	about an FD leak.

	I just remove the close count buffer and never mark the FD as closed an
	leave it up to the user. We loose the ability to detect a stream closing
	without waiting for an empty string but that is how python wants you to
	do it and this is how we will.

2013-12-11  Martin Polednik  <mpoledni@redhat.com>

	vdsm: prepareVolumePath correct path handling for cdrom
	prepareVolumePath looked for 'path' key in specParams
	without looking at path in device itself, causing empty
	path in specParams to override device path. This patch
	adds device.path to checking mechanism to avoid overriding
	valid path

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1009469

2013-12-11  Antoni S. Puimedon  <asegurap@redhat.com>

	netconf: provide a default rollback for configurators
	This patch adds a default rollback method that configurators are
	free to override as long as they keep the contract in the docstring
	of the vdsm/netconf/__init__.py:rollback method, i.e., return None
	(even implicitly, not returning anything) when there is no need for
	rollback at tha API.py level. If there is something to rollback,
	return it in a Config object.

	The Ifcfg configurator, being on its way to deprecation is supposed
	to keep its current memory rollback, so we can keep its overriding
	method. The iproute2 configurator won't need to declare it.

	netconfpersistence: add diffing method to Config
	This patch makes it easy to diff two network configurations
	in a way that gives you a resulting Config object that can
	be used for a setupNetworks operation.

	If the current configuration is B and we want to put the
	system in state A, we'd do:

	    diff = A.diffFrom(B)
	    setupNetwork(diff.networks, diff.bonds, {})

	netconf: define rollback contract at internal API
	This patch defines the contract Configurator rollback methods must
	implement to be compliant:

	1. Rollback what they deem necessary by themselves.
	2. Return whatever networks and bonds they did not roll back (a diff
	   between the current state and the last known runningconfig) as
	   a netconfpersistence.Config object. If they rolled back everything
	   return None (for non unified persistence configurators) or and
	   empty config object.

	The configurator context manager will raise a RollbackIncomplete
	exception if there are nets and/or bonds remaining to be rolled
	back. That will be bubbled up to the API module that will invoke
	an inRollback setupNetworks to finish the roll back.

2013-12-11  ndarshan  <dnarayan@redhat.com>

	gluster: raise suitable exception based on errno for peerDetach
	Raising suitable exception based on the errno given by gluster
	cli output for verb peerDetach.

2013-12-10  Dan Kenigsberg  <danken@redhat.com>

	sampling: take storageDomains directly from storage subsys
	HostStatsThread does not poll storageDomains statistics, but still it is
	used to relay them from the storage subsystem to the getVdsStats api.
	This is cumbersome and confusing. This patch eliminates the need to pass
	a clientIF reference to the HostStatsThread, and keeps the knowledge of
	which statistic elements are provided (code, delay, lastCheck, etc)
	with the storage subsystem.

2013-12-10  Antoni S. Puimedon  <asegurap@redhat.com>

	specfile: Add dosfstools and psmisc as build required dep
	Running a new F20 minimal install I installed all build reqs and saw
	that the 'make rpm' step failed due to missing psmisc's fuser and
	dosfstools mkfs.msdos.

2013-12-10  Vitor de Lima  <vitor.lima@eldorado.org.br>

	Adding ppc64 handling to getVdsCaps
	This introduces a parser capable of interpreting the /proc/cpuinfo
	present in IBM POWER hosts. It also retrieves the possible emulated
	machines for QEMU guests. The POWER 7 processors are not compatible
	between themselves so only the host CPU is reported as compatible
	in the _getCompatibleCpuModels() function.

	vdsm: Hardware information about POWER hosts
	This introduces information about the hardware of IBM POWER hosts.
	In these machines the dmidecode cannot be used.

	This patch also creates a module used by functions that need to
	retrieve information about PPC64 hosts. It includes a function to
	get hardware platform information about the host.

2013-12-10  Antoni S. Puimedon  <asegurap@redhat.com>

	QoS: make report only when present and say so in the schema
	Libvirt XML format specifies that bandwidth elements (inbound and
	outbound) are only optionally present. When present they should
	have an average and optionally have the fields 'burst' and 'peak'.

	While this was correctly defined in the vdsm api schema for input
	(setupNetworks for instance), it was not defined for the capabilities
	reporting. That left a not well defined situation where no QoS was
	defined and it was being included in the report without following
	the specification in the paragraph above.

	This patch fixes this inconsistency by reporting the bandwidth
	elements only when present in the network definition, and only
	containing those fields that are defined for them.

2013-12-10  Saggi Mizrahi  <smizrahi@redhat.com>

	sampling: make HostStatsThread a daemon thread
	It can cause VDSM to hang when being improperly shut down.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1022036

2013-12-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	sanlock isconfigured raises an exception instead of returning result
	isconfigured calls expect boolean as return value. Exception should be
	raised only on critical failures such as sanlock service isn't installed,
	or sanlock group does not exist.

2013-12-09  Dan Kenigsberg  <danken@redhat.com>

	Introduce caps.isOvirtNode()

2013-12-09  Antoni S. Puimedon  <asegurap@redhat.com>

	rpm_spec: Add ethtool as a requirement
	The new ipwrapper link type detection depends on the ethtool binary
	that is commonly installed by default but not on minimal
	installations. This patch ensures that it is not missing.

2013-12-09  Dan Kenigsberg  <danken@redhat.com>

	lvm.env: move to /usr/share/vdsm/storage
	lvm.env is a tiny helper script, intended to make it a bit easier to
	debug Vdsm-controlled lvm state. It is being created whenever the lvm
	module is loaded, which generates an annoying warning message in unit
	test.

	This patch makes lvm.env ship statically with vdsm. It can be used by

	    . /usr/share/vdsm/storage/lvm.env

2013-12-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing hack for stopping libvirt-guests as conflict service
	Due to recent fix in libvirt, libvirt-guests daemon now returns right
	error code when checking its status. Thanks to that we can treat
	libvirt-guests as all other daemons.

2013-12-09  Alexey Shabalin  <a.shabalin@gmail.com>

	use defined options from configure

2013-12-09  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Rename confusing lastCheck variable
	In repoStats we use the "lastCheck" value as the time since domain
	status was checked. In DomainMonitorStatus we use "lastCheck" value as
	the time were domain was checked.  This patch eliminates the confusion
	by using "checkTime" for the time where status was checked.

	domainMonitor: Separate change detection from lastCheck value
	Since commit 45f3037ca1e, lastCheck value is initialized to special
	NOT_CHECKED_YET value, and used for detecting the first monitor status change.
	This change caused repoStats to return high lastCheck value until the first
	monitor check is done, causing host activation to fail, and host becoming
	non-operational.

	Previously, lastCheck value was initialized to monitor thread creation time,
	and repoStats was returning valid lastCheck value even before the first domain
	check was finished. While somewhat incorrect, this behavior is required for
	engine monitoring logic.

	This patch restore the previous lastCheck semantics and use a new
	firstChange flag for detecting the first status change.

	Relates-To: https://bugzilla.redhat.com/1003588

	threadPool: Do not keep reference to tasks
	Worker thread was taking a task from the threadpool queue, run it, and
	then hold it until the next task is run. This causes the task and all
	objects referenced from it to keep living until the next task is run by
	this thread.

	This patch ensure that worker thread does not keep referece to tasks
	after they were run.

	Relates-To: https://bugzilla.redhat.com/1032925

2013-12-08  Nir Soffer  <nsoffer@redhat.com>

	vm: Refix vm unpausing during recovery
	Commit 45f3037ca1 should have fixed vm unpausing during recovery, but it
	did not because of unfortunate cherry-pick.  The original patch was
	initializing vm sdIds list when running a vm in recovery mode. This code
	path was removed in commit 93d09f6567 which was merged on the same day.

	This patch adds back the missing code path and remove leftover comment
	about recovery mode.

	Relates-To: http://gerrit.ovirt.org/21649/
	Bug-Url: https://bugzilla.redhat.com/1036358

2013-12-07  Nir Soffer  <nsoffer@redhat.com>

	sp: Fix stopping domain monitors
	Commit 2671777c69 fixed stopping of domain monitors by stopping monitors from
	StoragePool.__del__. This was a dangerous fix because a stray reference to the
	pool may delay invocation of __del__ until the referring object is deleted,
	delaying stopping of domain monitors for unlimited time. In case of a memory
	leak, the pool may never be deleted and domain monitors would never stop.

	Fortunately, this fix did seem to work for couple of years, until commit
	7b1cc6a20f made the domain monitor pool independent. Instead of one domain
	monitor object per pool, there is now a single shared domain monitor object
	used by all pool objects. Having a shared domain monitor, the pool __del__
	method became deadly.

	Shortly after commit 7b1cc6a20f was merged, a new random error appeared in CI
	jobs, where there is no storage space left, while storage has plenty of space.
	The root cause of the error was anonymous thread running at unexpected times
	and stopping silently all domain monitors.  Adding some logging revealed that
	this thread was started from StoragePool.__del__ method. This thread was
	running 14 minutes after the original pool was disconnected, stopping domain
	monitors used by the current pool object. It seems that a task was holding a
	reference to the old pool, and when the task was finished, the old pool was
	finally destroyed.

	We seem to stop monitoring when we should, and stopping monitoring in
	the __del__ method is redundant.  This patch removes the deadly method.

	Relates-To: https://bugzilla.redhat.com/705058
	Relates-To: http://gerrit.ovirt.org/19762
	Bug-Url: https://bugzilla.redhat.com/1032925

2013-12-06  Amador Pahim  <apahim@redhat.com>

	vdsm hooks: Add missing "snapshot=no" attribute to "disk" elements.
	Missing snapshot="no" attribute is leading live snapshot to fail.
	This patch adds snapshot="no" attribute to vdsm hooks adding disks.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1036111

2013-12-06  Antoni S. Puimedon  <asegurap@redhat.com>

	ip monitor: replace pairwise with grouper
	pairwise takes an iterator or elements '123456789' and generates an
	iterator that gives: ('1', '2'), ('2', '3'), ('3', '4'), ('4', '5')...

	grouper takes an iterator or elements '123456789' and generates an
	iterator that gives: [('1', '2'), ('3', '4'), ('5', '6'), ('7', '8'), ('9',
	None)]

	Since the data to parse from iproute2 commands is structured closer
	to grouper, change to that.

2013-12-06  Francesco Romani  <fromani@redhat.com>

	vm: janitorial: replace file() with open()
	As per docs, open() is preferred to file():
	http://docs.python.org/2/library/functions.html#file

	moreover, file() was removed in python3:
	http://docs.python.org/release/3.0/whatsnew/3.0.html#builtins

2013-12-05  Antoni S. Puimedon  <asegurap@redhat.com>

	netconf: privatize inRollback
	inRollback is not part of the external setupNetworks api. Thus, it
	is wise to be coherent and prefix it with '_'.

	netconf: Make vdsm-restore-net-config use _inRollback
	The setup networks operations performed by vdsm-restore-net-config
	are by nature rollback operations. They are split into two steps,
	- removal of the nets.
	- configuration of the persisted network config.

	Each of the preceding actions has a different rollback context,
	making a possible memory rollback (if _inRollback was not used)
	rather fruitless, specially when booting up when there is nothing
	to roll back to. It is better that the operations are set as
	not elegible for rollback.

2013-12-05  Greg Padgett  <gpadgett@redhat.com>

	vm: Fix exception when shutdown() called on vm in 'Down' state
	Attempting to call the shutdown() method on a VM which is in 'Down'
	state resulted in an exception if called through xmlrpclib.  Instead,
	adopt the convention used by similar APIs such as migrate() and return
	errCode['noVM'].

	Bug-Url: https://bugzilla.redhat.com/1027297

2013-12-03  Vladimir Tananko  <bs@artcon.ru>

	deployUtil: expect integer vlan id from new netinfo
	Commit 8b2bbe6e5 changed netinfo.getVlanID() to return the vlan id as an
	integer, istead of a string. This makes a lot of sense, but breaks
	compatibility with ancient deployUtil code.

	Bug-Url: https://bugzilla.redhat.com/1037277

2013-12-03  Dan Kenigsberg  <danken@redhat.com>

	tests: declate alignmentScanTests as broken
	More often then not,

	    alignmentScanTests.AlignmentScanTests.test_aligned_image
	    alignmentScanTests.AlignmentScanTests.test_unaligned_image

	fail on our Jenkins slaves with the message

	    libguestfs: error: could not connect to libvirt (URI = NULL): Failed to connect socket to '/run/user/1001/libvirt/libvirt-sock': Permission denied [code=38 domain=7]

	Mark them as broken until we understand the issue better.

	Quarantine ovirt-3.0.0 network upgrade
	Since ovirt-3.0.z, Vdsm uses libvirt networks (with names vdsm-*) to store
	its own networks. Older Vdsms did not have those defined, and used only
	Linux bridges. _syncLibvirtNetworks created a vdsm-bla network for every
	bridge named bla, even if that bridge had nothing to do with ovirt.

	This patch replaces _syncLibvirtNetworks with an upgrade that does
	this conversion on the rare occasion that upgrade is needed. It
	identifies this occasion by the existence of ovirtmgmt bridge
	and nonexistence of a vdsm-ovirtmgmt network.

	Moving the code to a separate upgrade would make it easier to get rid of
	it once ovirt-3.0.0 hosts are no longer supported.

2013-12-03  Mooli Tayer  <mtayer@redhat.com>

	Remove verbosity from restorecon hack for /var/log/core.
	vebosity spams consoel during installation.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1031109

2013-12-03  Martin Polednik  <mpoledni@redhat.com>

	vdsm: add support for virtio-rng devices
	This patch adds support for virtio-rng device, allowing
	passthrough of /dev/random and /dev/hwrng. getVdsCapabilities
	additionally returns rngSources, a list of host's available
	entropy sources.

2013-12-03  Assaf Muller  <amuller@redhat.com>

	Unified network persistence [4.2/4.*] - Upgrade updates running conf
	Adds a pre-start task that calls:
	vdsm-tool upgrade-to-unified-persistence

	The upgrade gathers networking information and updates the running
	config of the unified network persistence. Networking persistence
	currently uses ifcfg files and after the upgrade will use the
	new model. An explanation of how the new persistence model works can
	be found at:
	http://www.ovirt.org/Feature/NetworkReloaded#Unified_persistence

	Unified network persistence [4.1/4.*] - Upgrade mechanism
	Unified network persistence feature:
	http://www.ovirt.org/Feature/NetworkReloaded#Unified_persistence

	This patch is the first of two patches that implement an upgrade
	that is run the first time VDSM that uses unified network
	persistence is started. The goal is to look at the current
	host networking configuration and populate the running
	and persistent configurations.

2013-12-02  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Improve logging
	We have logs in domain monitor thread, and we can see when a monitor
	starts or stops, but we don't have any info which thread triggered the
	operation.  This patch adds info level log messages when starting and
	stopping domain monitoring, revealing the caller thread.

	Relates-To: https://bugzilla.redhat.com/1032925

2013-12-02  Assaf Muller  <amuller@redhat.com>

	Added netinfoTests:testGetEmpty
	The new test should prevent the regression introduced in:
	http://gerrit.ovirt.org/#/c/21652/

	And fixed in:
	http://gerrit.ovirt.org/#/c/21850/

2013-12-02  Yeela Kaplan  <ykaplan@redhat.com>

	clientIF: Fix use of getConfDevices
	getConfDevices was merged into buildConfDevices in
	commit Ifd3a209967f97a55fe861c4446e8f93e1a1da08e

2013-12-02  Petr Sebek  <psebek@redhat.com>

	bugfix: UpdateVmDevice QoS
	QoS was not handled in method Vm._updateInterfaceDevice.

	Inbound/outbound is kept in current state if related parameter is missing in
	specParams. It is deleted if it is in specParams but empty ({'inbound':{}}).

	Bug-Url: https://bugzilla.redhat.com/1002300

2013-11-30  Antoni S. Puimedon  <asegurap@redhat.com>

	netconf: drop rollback to last persisted if mem rollback fails
	When memory rollback fails it is likely to be due to a malfunction
	or a state that we probably can't handle. The previous behavior was
	to let that on the hands of the oVirt fencing. This patch restores
	the known and expected behavior.

2013-11-29  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Log unhandled exceptions in domain monitor thread
	DomainMonitorThread does not handle exceptions in the thread main
	function, making it harder to modify the code or understanding
	unexpected failures in the field.

	The patch log unhandled exceptions so it will never die silently.

	Relates-To: https://bugzilla.redhat.com/1034741

	hsm: Log unhandled exceptions in storage refresh thread
	hsm's storage refresh background thread does not handle exceptions,
	making it harder then it should to debug stupid errors in underlying
	calls or debug real errors in the field.

	This patch log a traceback for unhandled exceptions so it will never die
	silently again.

	utils: Add unhandled exceptions logging decorator
	We have at least two places where exceptions in thread main function are
	not handled, making debugging such threads impossible. This patch adds a
	new decorator that make it easy to log tracebacks for unhandled
	exceptions.

	The recommended use case is to decorate a thread main function. This
	ensure that we get a traceback for any error in the thread, including
	errors in error handling code. This should be used on all in threads in
	the system.

	Note that the decorator only adds logging - it does not change the
	program flow.  The unhandled exception is raise again so you can safely
	use it on script main function, without changing the exit code. Do not
	try to use this for ignoring exceptions.

	See utilsTests for example usage.

	Relates-To: https://bugzilla.redhat.com/1034741

2013-11-29  Dan Kenigsberg  <danken@redhat.com>

	tests/functional/virt: drop testInitramfsReadable
	testInitramfsReadable fails when the test framework creates its own
	initramfs image, instead of using the host's. Such condition is
	unfavorable, since it wastes time and may cause failures to boot the
	guest, but it is not a failure per se.

	storage: drop an unused configurable sd_validate_timeout

	vm: drop unused MigrationSourceThreadClass abstraction
	Since the libvirtvm.py merger into vm.py (commit ee082b87), we have only
	one MigrationSourceThreadClass. Thus, there is no need for this
	abstraction.

2013-11-28  Dan Kenigsberg  <danken@redhat.com>

	fix selinux dependency
	Fix a typo in the release field, introduced by commit 68d44c613.

2013-11-28  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: fix defaultdict regression
	netinfo.get is supposed to retun a map containing the keys:
	- bondings
	- bridges
	- networks
	- nics
	- vlans

	The change http://gerrit.ovirt.org/#/c/21652/5/lib/vdsm/netinfo.py
	replaced the dictionary initialization to 'networks': {} (and
	assignment of the other keys to a dict that could be empty) with a
	defaultdict.

	Unfortunately since not always are there gonna be elements for each
	of the keys that get() is supposed to return, get() could end up
	reporting only 'nics', creating all sorts of havoc in caps.py and
	any get() consumer. (It failed the unit tests on machines without
	vdsm networks defined).

2013-11-28  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: conditional for hostname require
	Fedora rawhide (F21) build is failing because cannot locate /bin/hostname.
	It has changed to /usr/bin/hostname as changelog from hostname 3.14-2.

	Koji info:
	http://koji.fedoraproject.org/koji/buildinfo?buildID=471302

	vdsm.spec: conditional to execute semanage
	To avoid load policy when selinux is disabled, only
	execute semanage when selinux is enabled.

2013-11-28  Assaf Muller  <amuller@redhat.com>

	Report device to engine in a new fashion
	Previously we were using the source IP of the socket to the engine
	and trying to extract the device out of that.

	The new approach is to simulate routing to the engine and get
	the device used to forward packets to the engine.

2013-11-28  Timothy Asir  <tjeyasin@redhat.com>

	gluster: Add force option to add brick command
	Allows option to glusterfs to create brick directries
	under root partition.

2013-11-28  Antoni S. Puimedon  <asegurap@redhat.com>

	netconf: Add limit to rollback for recursive configurator
	This is the first patch of a series that is intended to provide
	a default configurator memory rollback implementation and define
	the contracts of the rollback operation. To do that, first it is
	necessary to define a difference between a regular setupNetworks
	operation and one performed with the purpose of rolling back.

	If a configurator implemented the rollback operation via calling
	setupNetworks, we would potentially end up recursing until it
	succeeded (and we have no guarantee for success).

	This patch adds a parameter to the configurator constructor and
	the setupNetworks options that allows the configurator to pass
	to setupNetworks inRollback=True when it uses it for rollback
	purposes.

2013-11-28  Martin Betak  <mbetak@redhat.com>

	utils: Introduce CallbackChain
	Added new utility class encapsulating the pattern
	of invoking multiple alternative methods to achieve
	given task.

2013-11-28  Assaf Muller  <amuller@redhat.com>

	Made ipwrapper.py:Route class more robust
	Route can now parse routes of the form:
	'local 127.0.0.1 dev lo  src 127.0.0.1'

	Added lib/vdsm/utils.py:touchFile

2013-11-27  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding debian folder makefile

2013-11-26  Nir Soffer  <nsoffer@redhat.com>

	vm: Fix vm unpausing during recovery
	Domain monitor thread was not reporting when going from unknown state to
	known state. The thread would start with a bogus valid state, before
	checking the domain. If the first domain check found the domain as
	valid, no notification was emitted. If there were paused vms while
	connecting to the pool, they were not unpaused as they should.

	This patch fix various modules:

	- Domain monitor status lastCheck is initialized now to special
	  NOT_CHECKED_YET value. The monitor thread use this value to detect the
	  first sample, and emit the missing notification.

	- To get the new event when monitor thread starts, domain state change
	  are registered now *before* the monitor threads are started.

	- To get the vm unpause code to work in recovery mode, the Vm.sdIds is
	  initialized in Vm._run. This probably fixes other issues with
	  recovered vms.

	Bug-Url: https://bugzilla.redhat.com/1003588

2013-11-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	Disable exception on after hooks failures
	Adding to all after hooks - raiseError=False

2013-11-26  Martin Sivak  <msivak@redhat.com>

	Reorder limit checks in grow quest
	balloon_min is a computed value that can (and will) go over
	balloon_max. When the controller tries to use it VDSM reports
	exception.

	Reorder the checks so the balloon_max constant check is the latest
	one to limit the value.

2013-11-26  Assaf Muller  <amuller@redhat.com>

	Prettify/simplify netinfo.py:get()
	get() now iterates over the links once instead of 4 times.

2013-11-26  Martin Polednik  <mpoledni@redhat.com>

	vdsm: refactor buildConfDevices and getConfDevices into single function
	Removes code duplication while flow should remain the same
	- also removes getConfSmartcard call in buildConfDevices as this
	call is obsolete (smartcard was introduced later and is therefore not
	needed for backwards compatibility)

2013-11-25  Vinzenz Feenstra  <vfeenstr@gmail.com>

	vdsm: pre-defined range for spice/vnc ports
	Libvirt's default port range 5900-65535 which is out of VDSM's
	documented range 5634 to 6166. But since the medieval time we
	already use libvirt's default. We'll define the new range as
	5900-6923 (1024 ports) So:

	1. Set some limited port range, that can be used in FW conf
	2. Use start port 5900 as it is already used by customers
	3. Use the endport as 6923
	4. Change VDSM documentation according to new port range

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=983088

2013-11-25  Yaniv Bronhaim  <ybronhei@redhat.com>

	Catch gluster import error in glusterVolume
	glusterSD is imported by hsm and imports glusterVolume. with_gluster=0
	variable leaves gluster files but omit gluster directory. This leads to
	import error that must be treated.

2013-11-25  Federico Simoncelli  <fsimonce@redhat.com>

	api: remove the uploadVolume command
	The uploadVolume command was never used by the engine and has been
	obsoleted with the introduction of the imageSharing module.

2013-11-24  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix PEP 8 issue.

2013-11-23  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfoTests: fix link info consistency and docstrings

	netinfo: Make get() use getLinks
	By making get() use getLinks we avoid getLinks being called by nics
	and by vlans, so it is all in all one less process creation and
	less work to retrieve vlans and bridges as well.

	For that to be possible we add the isBridge and isBond to ipwrapper.

	ipwrapper: add convenient Link.isNICLike
	The addition of Link.isNICLike() allows us to centralize the logic
	for which devices are to be treated as nics.

	ipwrapper: Move hidden bonds' nic logic from netinfo
	This patch moves the remaining logic of what could hide a nic to
	ipwrapper so that it is all well enclosed in a single digestible
	method.

	Since the nic master is retrieved from the ip links, that needs
	a couple of tweaks in netinfoTests, namely:
	- Adding the master information to the link line for the nics to
	  be hidden. Which means that the tmpdir fixture is not necessary
	  anymore.
	- Monkeypatch the new Link info about existing bonds and the
	  hidden config.

2013-11-22  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo/sampling: split speed into nic and bond specific methods
	Speed is calculated very differently for nics and bonds. This patch
	splits the logic into two different methods and makes netinfo and
	sampling use them.

	bondOpts: Fix reporting [] instead of [''] for empty opts
	Touched also speed so that it would not try to access the first
	element of what is not an empty list instead of a list with an
	empty element.

2013-11-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Keeping gluster modules when with_gluster set to 0
	Currently the code imports and uses gluster modules. Setting
	with_gluster=0 brakes the code. With this patch with_gluster=0 will
	only drop the vdsm-gluster rpm creation.

2013-11-22  Dan Kenigsberg  <danken@redhat.com>

	Revert "gluster prepareImage: return gluster-specific information"
	This reverts commit 51081b81de8cda48e0060e which is universally known to
	be quite ugly, and is also unhelpful since we do not support
	gluster-based VM with snapshots.

2013-11-22  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper Monitor: fix for deleted links
	The previous parsing would not work when a link was deleted. This
	patch fixes it and sets the state as DELETED on those cases.

	ipwrapper Monitor: Move to using detailed oneline
	Change the ip monitor command to use the more machine readable
	"ip -d -o monitor link" (one line per link event).

2013-11-22  ndarshan  <dnarayan@redhat.com>

	Add 3.4. to clusterLevels and supportedENGINEs.
	Add version 3.4. to clusterLevels and supportedENGINEs, returned
	by VDSM as part of engine calling getCapabilities. This allows
	to test 3.4 specific features from engine.

2013-11-22  Martin Polednik  <mpoledni@redhat.com>

	Ensure cancellation of migrations gets handled correctly
	If the migration is cancelled before the source calls libvirt.migrateToURI2
	we have to raise an libvirtError with the VIR_ERROR_OPERATION_ABORTED error
	code to ensure that _finishSuccessfully() does not get called and we're
	correctly reporting that the migration has been cancelled and that we're
	destroying the VM on the destination in the process, since we're bailing
	out.

	Additionally we'll do the check if the migration has been cancelled
	right after the semaphore has been accquired, to avoid doing things
	like calling the before_vm_migration_source hook and calling the
	destination vdsm to create the VM instance.

	Bug-Url: https://bugzilla.redhat.com/1023131

2013-11-22  Antoni S. Puimedon  <asegurap@redhat.com>

	Make ip link wrapper hidden config be at class lvl
	Before this patch we got the config for each device that needed it.
	This allowed each device to pick up changes in the config that
	could have happened between each device object creation, at the
	cost of speed and simplicity. Since config is supposed to be
	stable during the life of a vdsm process, this was moved to the class
	level.

2013-11-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	sos/vdsm.py: Collect /etc/vdsm permission
	An user complained that vdsm failed to start on his
	machine. It was finally tracked down to his /etc/vdsm missing read
	permissions for vdsm. Let us collect /etc/vdsm permission so it is
	easier to pinpoint for the next user.

2013-11-21  pkliczewski  <piotr.kliczewski@gmail.com>

	xmlrpc: Parsing error logging enhancement - vdsClient
	Logging enhancement which helps understand the issues during
	parsing xml response obtained from vdsm. Parsing
	issues can occur when bad characters are in xml etc.

	In order to get raw response we need to wrap one of transport
	classes (plain or provided class for ssl) and present it to
	the user when ExpatError is raised.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=982065

2013-11-21  Sergey Gotliv  <sgotliv@redhat.com>

	Fix calculation of file volume allocated size
	Allocated size was computed using st_blksize as block size. st_blksize
	is the "preferred" buffer size for efficient file system I/O on the file
	system where the block is. This patch use block size of 512 bytes as
	specified in stat(2) manual.

2013-11-21  Martin Betak  <mbetak@redhat.com>

	vdsm: Accents in the vm name break the migration
	Added utf-8 encoding of the configuration xml on the destination to
	handle non-ascii characters.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1002246

2013-11-21  Petr Benas  <pbenas@redhat.com>

	tests: Add NetworkTest.testSetupNetworksAddDelkDhcp
	Tests adding and deletion of network with dynamically
	assigned address.

	Patch version 11. Cosmetic refractoring in firewall.py.

2013-11-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Requires python-cpopen >= 1.2.3-4
	Previous version of python-cpopen conflicts with vdsm-python-cpopen.
	This patch requires a new version of python-cpopen which fix it.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1020321

2013-11-21  Nir Soffer  <nsoffer@redhat.com>

	lvm: deactivate lvs during bootstrap
	When using FC storage, physical volumes are connected during boot, and vdsm
	logical volumes are auto-activated by both /etc/rc.sysinit and
	/etc/init.d/netfs startup scripts. These logical volumes do not pick changes
	done by the SPM on the storage, which may lead to data corruption sooner or
	later, when a vm is trying to write to logical volume with stale meta data.

	This patch check all vdsm logical volumes during lvm bootstrap and
	deactivate them if possible. Special logical volumes are refreshed,
	since they are accessed early when connecting to storage pool, possibly
	before lvm bootstrap is done. Open logical volumes are skipped because
	we assume that they use correct meta data when opened.

	To fix the auto-activation during boot, we could perform this only on
	the first start of the service and limit the operation to FC storage.
	However, we decided to use this on all block storage types, and on every
	start of the service, as additional layer of protection from logical
	volumes left active after unclean shutdown of the service, or other
	failures to deactivate logical volumes.

	Deactivation adds up to two lvchange calls for each volume group with
	active logical volumes. After the first service start, logical volumes
	are typically inactive and this change adds minimal additional cost,
	refreshing active special logical volumes.

	Depends on http://gerrit.ovirt.org/#/c/19871 for refreshing multiple
	logical volumes in one call.

	Bug-Url: https://bugzilla.redhat.com/1009812

2013-11-21  Dan Kenigsberg  <danken@redhat.com>

	Revert "xmlrpc: Parsing error logging enhancement - vdsClient"
	This reverts commit d7a6bd9c3d5593263692616fa0d92f047 which broke
	vdsClient. While cannot continue to deliberate about the proper solution
	while vdsClient is still broken.

	Bug-Url: https://bugzilla.redhat.com/1032419

2013-11-20  Assaf Muller  <amuller@redhat.com>

	Mark netinfoTests.testGetIfaceByIP as a broken test
	The test has been failing since python-ethtool-0.6-5.

	The goal is to get rid of the function and its test, and
	use a different approach to solve the problem that the function
	was originally solving.

2013-11-20  Lee Yarwood  <lyarwood@redhat.com>

	lvm: Allow multiple LVs to be refreshed at once.
	This change refactors the refreshLV method to allow multiple
	volumes to be refreshed at once as possible with the activate
	and deactive methods.

	This is patch 1 in a series of 3 that aim to resolve BZ#1009812.

	This patch is required by the changes listed below :

	lvm: Make the isLVActive() method public.
	http://gerrit.ovirt.org/#/c/21386/

	blockSD: Ensure active volumes are refreshed before use.
	http://gerrit.ovirt.org/#/c/21387

	bug-url: https://bugzilla.redhat.com/1009812

2013-11-19  Martin Sivak  <msivak@redhat.com>

	Allow setting just a single value in MoM policy
	This patch prevents a policy coruption that could have happened
	when the 01-parameters policy was updated with just a single
	value. If there were more values defined, the variables were lost
	and the policy ended up broken.

	This patch defines the variables in a file that is not touched
	by the setMOMPolicyParameters and uses (set name value) syntax
	in the generated policy part.

	It also remembers the old setting and puts all the values to
	the policy part when it is autogenerated.

2013-11-19  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Migration cancellation replies wrong message format
	The message currently returns:

	{'status': {'message': 'Migration canceled',
	            'code': { 'status': { 'message': 'Migration not in progress',
	                      'code': 47}}},
	            'progress': 1}

	The content of code is wrong. This commit fixes it so the message will
	look like this:

	{'status': {'message': 'Migration canceled', 'code': 47}, 'progress': 1}

	Bug-Url: https://bugzilla.redhat.com/1015887

2013-11-19  Assaf Muller  <amuller@redhat.com>

	Add unit tests for unified network persistence

2013-11-19  pkliczewski  <piotr.kliczewski@gmail.com>

	xmlrpc: Parsing error logging enhancement - vdsClient
	Logging enhancement which helps understand the issues during
	parsing xml response obtained from vdsm. Parsing
	issues can occur when bad characters are in xml etc.

	In order to get raw response we need to wrap one of transport
	classes (plain or provided class for ssl) and present it to
	the user when ExpatError is raised.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=982065

2013-11-18  Petr Benas  <pbenas@redhat.com>

	ipwrapper: add support for veth NICs
	Update ipwrapper to consider veth NICs as FakeNICs in the same
	way it does with dummy NICs. This change is required for the
	testSetupNetworksAddDelDhcp functional test.

2013-11-18  Saggi Mizrahi  <smizrahi@redhat.com>

	spec: Don't depend on unreleased RPMs.
	The requested package is not yet available in RHEL and will only be
	available in 6.5.

2013-11-18  Federico Simoncelli  <fsimonce@redhat.com>

	vm: prevent faulty volume extensions
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=998443

2013-11-18  ndarshan  <dnarayan@redhat.com>

	gluster: new verb to remove host using host UUID
	This patch adds a new verb glusterHostRemoveByUuid which
	retrives the host name based on uuid passed and uses it to
	remove the host.

	new verb: GlusterHostRemoveByUuid
	return type: bool (success or failure)
	possible Exception: GlusterHostNotFoundException /
	                    GlusterHostRemoveFailedException.

2013-11-18  Antoni S. Puimedon  <asegurap@redhat.com>

	vdsm.spec: Add python-inotify as buildrequires dep
	This is needed because now the configure step checks for the
	packages necessary for running vdsm.

	Get rid of mutables(lists) as default parameters
	In Python having a mutable as a default method parameter is
	dangerous due to the fact that the mutables are created on
	module creation rather than on method invokation. Thus, a
	call to a method could pollute the environment for the next
	call.

	This patch cleans most instances of that happening.

2013-11-18  Federico Simoncelli  <fsimonce@redhat.com>

	domainMonitor: tag pool monitored domains
	As part of the monitoring implementation:

	 7b1cc6a Adding [start|stop]MonitoringDomain()

	updateMonitoringThreads has been modified to assume that the list of
	the monitored domains is the same as the list of the attached domains:

	+        poolDoms = self.getDomains()
	...
	-        for sdUUID in monitoredDomains:
	+        for sdUUID in poolDoms:
	             if sdUUID not in activeDomains:
	                 try:
	                     self.domainMonitor.stopMonitoring(sdUUID)

	This assumption is not valid when we are detaching a storage domain
	(as it won't be listed by getDomains anymore). The resulting issue is
	that the monitor domain thread is not stopped and the host id is left
	acquired (ids file/device kept open by sanlock).

	This patch reverts the updateMonitoringThreads changes and adds a tag
	mechanism for the pool monitored domains.

2013-11-17  Antoni S. Puimedon  <asegurap@redhat.com>

	Added missing python modules to the configure.ac checks

2013-11-17  Dan Kenigsberg  <danken@redhat.com>

	sampling.ImagePathStatus: drop unused code, and only it
	The ImagePathStatus is never started, but one of its methods is used by
	HostStatsThread.get(). This patch moves the still-used bits of
	ImagePathStatus code into HostStatsThread, and drops the unused
	ImagePathStatus thread.

2013-11-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Ubuntu: Sync with vdsm.spec.in
	Recently we split zombiereaper and made some changes in libvirt
	configuring. This patch update Ubuntu packaging scripts to keep up with
	vdsm.spec.in.

	Ubuntu: make hard coded group names configurable in configurator.py
	In the sanlock part of our configurator, it uses qemu,kvm as the group
	names. In Ubuntu the group names may be different. This patch makes the
	two group names configurable.

2013-11-17  Vered Volansky  <vvolansk@redhat.com>

	Improve error when multipath can't access a pv
	InvalidPhysDev gave a cryptic error message - Invalid physical device.
	The message was amended to "Multipath cannot access physical device(s)" along
	with the device(s) name(s). The exception name was changed according to the new
	message content. Note: The only thing needed here by the oVirt engine is the
	error code, which was not changed in this patch, so there are no
	compatibility issues with older oVirt engines.

	Bug-url: https://bugzilla.redhat.com/852003

2013-11-17  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: Add ovs, libteam and vlan.device reporting support
	This patch enables proper classification of ovs bridges and
	teamd "bonds" as well as adds one extra attribute to vlans and
	macvlans, device, that reports upon which device they are created.

	Additionally, it adds memoization to detectType so successive
	calls don't need to go all the way down to cpopen for ethtool. This
	is okay since it is very rare, unadvisable and probably unsupported
	to change device names on the fly and use those vacant names for
	other device types.

	iproute2 ip link wrapper
	Provide a wrapper for iproute2's "ip -d -o link show" (detailed ip
	show without line jumps).
	This is done by parsing the standard output from executing the above
	command and constructing link objects holding all exposed information
	(be it generic such as mtu or link kind specific link vlanid)

	Apart from fixing the specified bug, it also future proofs netinfo
	(and vdsm networking in general) for newer distributions like F20,
	which include more input that we were previously not parsing or
	parsing badly. As a key addition, it includes link type detection
	depending on iproute detailed output when available and falls back
	to ethtool output.

	Bug-Url: https://bugzilla.redhat.com/1026236

2013-11-16  Dan Kenigsberg  <danken@redhat.com>

	Report qemu-kvm-rhev if installed
	Bug-Url: https://bugzilla.redhat.com/1029792

2013-11-14  Assaf Muller  <amuller@redhat.com>

	Enhanced netinfo.getBootProtocol, added unit tests
	netinfo.getBootProtocol assumed we were using ifcfg files.
	It now checks for the persistence model and implements an
	ifcfg-less getBootProtocol. Added a unit test both for
	the ifcfg version and unified persistence version.

	Remove onboot, delay, forward_delay from setupNetworks API
	The engine never sends onboot and delay so they are safe to remove.
	forward_delay is an undocumented API key that was deemed
	harmful and unneeded and is removed as well. All three
	keys are now blacklisted and will not be written to ifcfg
	files if sent via the API. Instead, onboot will always be
	yes and delay will always be 0.

2013-11-14  Martin Polednik  <mpoledni@redhat.com>

	vdsm: change network sampling interval to 15 seconds
	As discussed on engine-devel, there is no reason to poll libvirt more
	often than engine polls vdsm. This patch will make polling in sync with
	cpu (vm_sample_cpu_interval) polling.

2013-11-14  Federico Simoncelli  <fsimonce@redhat.com>

	vm: refresh raw disk before live extension
	As part of the online disk extension (raw format on block domains) flow
	the leaf logical volume is extended by the SPM to the new size.
	On the HSM host (where the VM is running) we need to refresh the volume
	in order to update the volume segments and make the new size visible to
	the qemu process.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1029501

2013-11-13  Federico Simoncelli  <fsimonce@redhat.com>

	vm: unify _highWrite and _onAbnormalStop
	Both _highWrite and _onAbnormalStop should share the same logic about
	the volume extension.

2013-11-13  Ryan Harper  <ryanh@us.ibm.com>

	Add build-dep packages so yum-builddep is effective
	yum-builddep doesn't get all of the required packages
	needed to build vdsm and vdsm rpms.  Update the specfile
	Build-Requires to include the needed packages.

2013-11-13  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove vdsm directories on uninstallation

2013-11-13  Sandro Bonazzola  <sbonazzo@redhat.com>

	Renaming /etc/sysctl.d/vdsm to /etc/sysctl.d/vdsm.conf
	Fixing Bug #740887 it has been added the file /etc/sysctl.d/vdsm which
	works fine on RHEL and CentOS but it's not read on Fedora because
	it should be /etc/sysctl.d/vdsm.conf ( see sysctl --system output )

	Bug-Url: https://bugzilla.redhat.com/1029368

2013-11-12  Pavel Zhukov  <pzhukov@redhat.com>

	Invalidate filters  on HSMs before rescanning extended VG
	domainMonitor thread might use stale lvm filters while running vgs
	command after extending of the VG (added PV is missed in the filter
	set). Since LvmCache doesn't invalidate filters, the volume
	group  is marked as partial and domainMonitor selftest fails
	(host goes to non-operational status). By design filter should be
	invalidated if cmd returns nonzero code but vgs returns zero even if
	devices are filtered . The patch introduces public  method for
	filter invalidation and calls it from the getDevicesVisibility
	because getDevicesVisibility is called on all DC hosts after
	adding new device but before extendSD.

	Bugzilla-Url: https://bugzilla.redhat.com/1022976

2013-11-12  Federico Simoncelli  <fsimonce@redhat.com>

	lvm: fix pv_count and pv_names check

2013-11-12  Antoni S. Puimedon  <asegurap@redhat.com>

	Make netinfo's _match_name a vdsm lib utility.
	move the functionality to lib/vdsm/utils.py and drop the non
	pythonic map in favor of a generator.

2013-11-11  Dan Kenigsberg  <danken@redhat.com>

	gluster prepareImage: return gluster-specific information
	Since the introduction of gLuster storage domains (1d90895cdda8,
	committed 9 months ago), prepareImage returns an additional element
	beyond the path to the leaf: a dictionary keyed by "info", carrying
	gluster-specific information.

	This dictionary has been dropped by a recent refactoring of prepareImage
	since the computation of its contents assumes that the leaf volume is
	part of a storage pool, and this is harmful to the "Hosted Engine"
	effort.

	This patch re-introduces the lost functionality, in the price of a
	redundant production of a volume. To make this a little less expensive
	and harmful to HE, we limit the production to gluster volumes.

	This patch is not the child we've prayed for, but it works.

	Special thanks to Samuli Heinonen <samppah@neutraali.net> for reporting
	the bug and testing this patch.

	Bug-Url: https://bugzilla.redhat.com/1022961

2013-11-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	Introducing configurator package in vdsm-tool
	This package union libvirt and sanlock configuration operations for now.
	The package defines ModuleConfigure interface and API for modules configuration
	tool. The format for the configure command is modified to:

	vdsm-tool configure --module libvirt --force

	This module also provides is-configured and validate-config verbs with
	the same syntax.

	--force flag means the configure flow will stop all related services if
	needed. Without force, if one of the related services is running, the
	configure will fail.

	For reuse and easier additional configurers for other services, all the
	developer needs to add is an object that inherit ModuleConfigure and
	implements the interface for test, dry and configure, then adding the
	class to configurers.

2013-11-09  ndarshan  <dnarayan@redhat.com>

	gluster: correct parameter for creating hookpath in verb hookAdd.
	parameter hookLevel must be in lower case for creating correct
	path for hook. so that parameter is changed to lower case.

	bug url: https://bugzilla.redhat.com/show_bug.cgi?id=1024263

2013-11-08  Antoni S. Puimedon  <asegurap@redhat.com>

	fuserTests fix for f20 and arch
	In newer distributions, fuser doesn't report a process as accessing
	it's own executable file, making this test fail. We don't know why
	this has changed (tried with newer kernels and newer fuser and the
	issue persists) but we do not care enough about fuser reporting all
	the pids from the processes created and alive of an executable file.
	We fix this test for the fuser use case that we have.

2013-11-08  Assaf Muller  <amuller@redhat.com>

	Add lib/tool/restore_nets.py to debian/vdsm-python-install

2013-11-07  Nir Soffer  <nsoffer@redhat.com>

	pep8: Fix indentation to comply with pep8 1.3.3
	Commit 2c9f0d66db7795 introduced a pep8 indentation regression, breaking
	the build on RHEL using vdsm provided pep8. This patch fixes the
	indentation by breaking long statement to multiple lines.

	Relates-To: https://bugzilla.redhat.com/1022975

2013-11-07  Assaf Muller  <amuller@redhat.com>

	Transmogrify netinfo gateway default value from 0.0.0.0 to ''
	Antecedently, if a device lacked IP addressing information,
	netinfo proclaimed the ipaddr as '', netmask as ''
	and gateway as '0.0.0.0'.

	The transpose from '0.0.0.0' to '' is momentous both for congruity
	and for input corroboration during setupNetworks. setupNetwrosk would
	fail for an (ip: '', netmask: '', gateway: '0.0.0.0'). This
	can bechance if the unified network persistence upgrade was
	perpetrated on a network with no ip configuration.

	The next time I get a -1 on a commit message I promise to
	reword it to Biblical English (Present work excluded).

2013-11-07  Sergey Gotliv  <sgotliv@redhat.com>

	Revert "vm: Pause vm in case volume allocation is greater than lv size"
	This reverts commit ca1539b7c96bd1dacb1b583fcfe6cae3c2a514c3.
	This patch has to be refactored.

2013-11-07  Mooli Tayer  <mtayer@redhat.com>

	configuring selinux allowing qemu-kvm to generate coredumps.
	this is a hack until we replce coredumping with abrt.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1005031

2013-11-07  Federico Simoncelli  <fsimonce@redhat.com>

	Revert "sampling.ImagePathStatus: drop unused code"
	This reverts commit 8086bf15e11d7e7cec26ba33cfccc95448214e01.

2013-11-07  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Update of the guest memory stats schema
	Newer guest agent versions are now additionally reporting swap stats. This
	needs to be reflected in the schema.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1025845

2013-11-06  Saggi Mizrahi  <smizrahi@redhat.com>

	iscsi: Iscsi rescan cleanup
	* Remove forceIscsiScan(): iscsiadm already does that when refreshing
	  sessions
	* Cleanup iscsi.rescan(): Replace complex logic with a simpler
	  implementation since new iscsiadm takes care of all of this itself
	* Make iscsi.rescan() more testable
	* Test confusing timeout semantics of iscsi.rescan()

	Bug-Url: https://bugzilla.redhat.com/964595

2013-11-06  Antoni S. Puimedon  <asegurap@redhat.com>

	cleanup: Improve lib/vdsm imports (PEP328)
	PEP328 ( http://www.python.org/dev/peps/pep-0328/ ) does away with
	the ambiguity of where the modules that are being imported reside
	making the codebase much more browsable.

	With a codebase of:
	    package/
	        __init__.py
	        subpackage1/
	            __init__.py
	            moduleX.py
	            moduleY.py
	        subpackage2/
	            __init__.py
	            moduleZ.py
	        moduleA.py

	this (moduleY.py):
	    import moduleX
	    import moduleZ
	becomes
	    from . import moduleX
	    from ..subpackage2 import moduleZ

	Which makes it much more evident where things are and avoids possible
	shadowing of packages in site-packages.

2013-11-05  Dan Kenigsberg  <danken@redhat.com>

	Avoid M2Crypto races
	As documented in
	http://www.heikkitoivonen.net/m2crypto/api/M2Crypto.threading-module.html
	and painfully recognized long ago in https://bugzilla.redhat.com/482420,
	using M2Crypto in a multi-threaded server such as Vdsm requires explicit
	initialization.

	Bug-Url: https://bugzilla.redhat.com/1026556

2013-11-05  Yeela Kaplan  <ykaplan@redhat.com>

	vm: Pause vm in case volume allocation is greater than lv size
	Qemu bug is causing qcow to allocate extents beyond the volume's
	physical size. In this case we want to avoid extending the volume in
	infinite loop and pause the vm, to avoid data corruption.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=998443

2013-11-05  Miguel Angel Ajo  <miguelangel@ajo.es>

	tests: prevent hook validation decorator from leaving scripts installed
	It fixes a bug in the hook validation decorator, that left tests
	scripts installed into the system. Now they're properly removed
	right after the tests.

	Adds rmTree function to vdsm.utils.

2013-11-05  Martin Sivak  <msivak@redhat.com>

	Fix ballooning rules for computing the minimum available memory
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1025845

2013-11-05  mpolednik  <mpoledni@redhat.com>

	vdsm: centralize device limit checking
	Device limits are currently checked on case by case bases,
	this patch implements call that centralizes the checking

2013-11-05  Nir Soffer  <nsoffer@redhat.com>

	lvm: Do not use udev cache for obtaining device list
	lvm is obtaining the device list from udev. When using concurrently,
	udev sometimes returns incomplete list, which cause lvm to think that a
	vg is missing, and the command may fail with "Volume group not found"
	error, or "Cannot change VG test while PVs are missing".

	lvm fixed this issue in version 2.02.100-7.el6 by disabling udev cache,
	setting obtain_device_list_from_udev to 0. Unfortunatlly, lvm fix is not
	enough for vdsm, as the fix is applied only if no lvm.conf file exists.
	When upgrading existing lvm installation, lvm creates a lvm.conf.rpmnew
	file, and the system administrator is responsible for updating lvm
	configuration.

	This patch disable udev cache using the --config option, used to
	override many other lvm options, ensuring proper configuration on both
	new and upgraded systems.

	Disabling udev cache may have minimal performance effect according to
	lvm developers.

	Bug-Url: https://bugzilla.redhat.com/1014942

2013-11-04  Amador Pahim  <apahim@redhat.com>

	Allow disable MOM KSM control.
	This patch add ksmEnabled var to enable/disable mom ksm control.
	Now users can use vdsClient to runtime disable/enable
	(default enabled) ksm control:

	 $ vdsClient -s 0 setMOMPolicyParameters ksmEnabled=False

	Bug-Url: http://bugzilla.redhat.com/1025780

2013-11-04  Saggi Mizrahi  <smizrahi@redhat.com>

	utils: Create AsyncProcessOperation
	This is an object to wrap a process so it can be treated as an
	AsyncOperation.

	Features:
	* Takes care of pid collection
	* Has pluggable output parsing
	* Process appropriate implementation of wait() and stop()

	Related-Bug-Url: http://bugzilla.redhat.com/964595

2013-11-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	Don't fail hotplugNic operation when after hook fails
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1015171

2013-11-04  Federico Simoncelli  <fsimonce@redhat.com>

	upgrade: fix v3ResetMetaVolSize argument
	In commit c072945 (one shot prepare) the v3ResetMetaVolSize argument
	was changed from volume object to volume uuid (string) triggering
	attribute errors during the execution (e.g. getMetaParam, etc.).
	This patch fixes the issue reintroducing the volume objects and the
	relevant exception handling.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1022975

2013-11-04  Dan Kenigsberg  <danken@redhat.com>

	libvirt is happy with redefinition of an existing nwfilter

2013-11-04  Assaf Muller  <amuller@redhat.com>

	Fix minor network functional tests issues
	Some tests were asserting that networks existed based on out
	of date statuses.

2013-11-04  Dan Kenigsberg  <danken@redhat.com>

	sampling.ImagePathStatus: drop unused code
	In pre-historic rhev-2.1 days, ImagePathStatus thread was used to
	collect and cache information about the image repository accessibility.
	However, this code was never used by ovirt-3.y.

	By default, images_check_times is set to 0, meaning that the
	sampling.ImagePathStatus thread is never started. It is highly unlikely
	that there's a secret vdsm client out there that explicitly turns on
	this monitoring thread and read the 'storageDomains' element out of
	getVdsStats.

2013-11-04  Petr Sebek  <psebek@redhat.com>

	Monitor bridges using vdsStats
	Changes in vdsm/sampling.py are neccessary because previously no new
	interfaces would be added to vdsStats. It would happen only after
	restart vdsmd and therefore reinitializaton of HostStatsThread. Now
	there is update of ifids and ifrates everytime sample is taken.

	To give HostStatsThread time to collect data for statistics we skips
	hotplugged interfaces what does not have all samples. In current setting
	with AVERAGING_WINDOW==5 and SAMPLE_INTERVAL_SEC==2 it takes 10 seconds
	to start giving information about hotplugged interface.

	Bug-Url: https://bugzilla.redhat.com/675560
	Bug-Url: https://bugzilla.redhat.com/988469

	Removal of needless base class StatsThread
	From this base class inherit only class HostStatsThread, therefore can
	be content of class StatsThread moved to class HostStatsThread without
	changing of functionality and with higher clarity.

2013-11-04  Martin Polednik  <mpoledni@redhat.com>

	vdsm: move balloon logic out of buildConfDevices
	Encapsulates empty balloon creation logic outside of
	buildConfDevices to improve code readability

	vdsm: move watchdog default params to WatchdogDevice
	Watchdog device creation is currently handled in
	buildConfDevices, creating unnecessary code pollution.
	This patch moves the creation to WatchdogDevice class,
	cleaning up buildConfDevices code. Side effect is that
	we lose access to specParams if they are not passed from
	engine.

2013-11-02  Sergey Gotliv  <sgotliv@redhat.com>

	Replace unused getFileList() with more flexible getFileStats()
	1. Rename to getFileStats().

	New name getFileStats() better describes the essence of that API.
	This is safe to rename it because this API is not in use.

	2. Add caseSensitive option.

	Currently Engine is using getIsoList() and getFloppyList() APIs to
	retrieve the list of iso and floppy files respectively. Both these APIs
	are working in case-insensitive manner but don't provide file
	statistics. getFileStats() returns file statistics. Adding
	caseSensitive option allows using getFileStats() instead of
	getIsoList() and getFloppyList().

	Bug-Url: https://bugzilla.redhat.com/1005889

2013-11-01  Dan Kenigsberg  <danken@redhat.com>

	vdsm.utils: drop unused ImagePathStatus and getPidNiceness

	drop unused checkPathStat
	We actually have two copies of this junk DNA. Trim it.

	sampling: StatsThread: dropped unused methods
	This is only a first step twards removal of the useless base class
	StatsThread.

2013-11-01  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix fix getDomUuidFromVolumePath()
	Bug-Url: http://bugzilla.redhat.com/1017735

2013-10-31  Antoni S. Puimedon  <asegurap@redhat.com>

	Make vdsm-tool dynamic module loading take the package name into account
	According to the imp.load_module API documentation:
	    http://docs.python.org/2/library/imp.html#imp.load_module
	the name that is passed as a first parameter should be the full
	module name, i.e., including the package name. Without the package
	name, relative imports and future proofing of the module are not
	possible.

2013-10-31  Saggi Mizrahi  <smizrahi@redhat.com>

	storage: fix getDomUuidFromVolumePath()
	getDomUuidFromVolumePath returned the imgUUID instead of the sdUUID.

	Since this is used as the parameter for getProcessPool() a process pool
	was created per image id instead of per domain id.

	Since imgUUIDs are much more abundant this can cause the creation of an
	obscene number of process pools and in turn a lot of processes.

	Bug-Url:http://bugzilla.redhat.com/017735

2013-10-31  Antoni S. Puimedon  <asegurap@redhat.com>

	Network functional tests assertion improvements
	This change allows for more fine grained assertion errors. It allows
	, among other things, to differentiate if what failed is making a
	net or putting it into the running configuration.

2013-10-31  Aravinda VK  <avishwan@redhat.com>

	gluster: Return status after remove brick/rebalance stop
	Initially glusterVolumeRebalanceStop and glusterVolumeRemoveBrickStop
	returns true/false.

	Since rebalance and remove brick operations are async operations, if
	rebalance/remove-brick STOP is triggered after these async tasks completed
	then vdsm returns success when executing stop command. But since task is
	completed engine has to show that task is completed(Now showing STOPPED)

	This patch returns status after successful execution of stop command.
	engine will check the summary[status] to see the status of task and
	display in UI accordingly.

	This patch will not affect the backward compatibility since "status"
	is not changed in output dict.
	'status': {'code': 0, 'message': 'Done'}

	Output:
	{'hosts': [{'filesFailed': LONG as STR,
	            'filesMoved': LONG as STR,
	            'filesScanned': LONG as STR,
	            'filesSkipped': LONG as STR,
	            'name': STRING,
	            'status': STRING,
	            'totalSizeMoved': LONG as STR},..],
	 'status': {'code': 0, 'message': 'Done'},
	 'summary': {'filesFailed': LONG as STR,
	             'filesMoved': LONG as STR,
	             'filesScanned': LONG as STR,
	             'filesSkipped': LONG as STR,
	             'status': STRING,
	             'totalSizeMoved': LONG as STR}}

	Possible exceptions with these verbs:
	No new exceptions introduced, XmlErrorException was raised when status parsing fails.

	GlusterVolumeRebalanceStopFailedException
	    code = 4137
	    message = "Volume rebalance stop failed"

	GlusterVolumeRemoveBrickStopFailedException
	    code = 4150
	    message = "Volume remove brick stop failed"

	GlusterXmlErrorException
	    code = 4106
	    message = "XML error"

2013-10-29  Greg Padgett  <gpadgett@redhat.com>

	stats: return HA agent score when applicable
	For Hosted Engine, the engine needs to know the HA score assigned to
	each host by the HA agent--if it's installed.  This patch returns the
	score via the statistics interface.

2013-10-29  Dan Kenigsberg  <danken@redhat.com>

	qos hook: fix spelling
	Former code did not allow netting QoS peak value. Thanks Sven Kieske for
	reporting this.

2013-10-28  Saggi Mizrahi  <smizrahi@redhat.com>

	Move zombieReaper to its own package
	It is not vdsm specific so it's a prime candidate for extraction.

2013-10-25  Antoni S. Puimedon  <asegurap@redhat.com>

	More explicit octal values (pep-3127)
	Change 0XXX to 0oXXX so that that these values are more visibly octal
	and forwards compatible with Python 3.3+.

	This change follows the spirit of:
	http://www.python.org/dev/peps/pep-3127/

	"The default octal representation of integers is silently confusing to people
	unfamiliar with C-like languages. It is extremely easy to inadvertently create
	an integer object with the wrong value, because '013' means 'decimal 11', not
	'decimal 13', to the Python language itself, which is not the meaning that most
	humans would assign to this literal."

2013-10-24  Assaf Muller  <amuller@redhat.com>

	Unified persistence [3/4] - Restore network config
	Add vdsm-restore-net-config support for unified persistence.
	It relies on flushing of configurator-specific persistence, i.e.,
	each configurator should remove its persisted conf, leaving
	only unified persistence as source of persistence.

	After the configurator persistence is flushed, the unified
	persisted nets and bonds are passed to a setupNetworks call.

	Since we want vdsm-restore-net-config to be run at boot after
	libvirtd but before vdsmd listens, the service was removed
	and it was integrated as one of the start tasks. However, we
	must run vdsm-restore-net-config only during boot time, and
	not on every vdsmd restart.

	If the restoration is run via vdsmd_init_common.sh we touch
	/var/run/vdsm/nets_restored that, if present, marks to future
	vdsmd restarts that service boot-time network restoration is
	no longer expected nor in order.

	The user can explicitly restore the nets by calling
	/usr/share/vdsm/vdsm-restore-net-config or via vdsm-tool:
	vdsm-tool restore-nets

2013-10-24  Mooli Tayer  <mtayer@redhat.com>

	makedirs should precede configure_coredump and other init tasks.

	codestyle: one task per line

2013-10-24  Antoni S. Puimedon  <asegurap@redhat.com>

	fix bash ineffective timestamp
	If we were to perform more than a setSafeNetworkConfig in a second
	the timestamp would be the same and we'd explode by putting
	    /var/run/vdsm/netconf inside the old
	    /var/lib/vdsm/persistence/netconf.931247
	like so
	    /var/lib/vdsm/persistence/netconf.931247/netconf
	instead of replacing it atomically.

	Adding the nanoseconds to the timestamp makes collisions go away.

	Fix monitor state change for newer kernels/iproute
	On el6 kernels adding a vlan over a link doesn't create an entry for
	the link under the vlan. On f19+ kernels it does happen, so we need
	to check that the state change instead of just checking if there is
	some state reported.

2013-10-24  Petr Sebek  <psebek@redhat.com>

	Add IPv6 support to configNetwork
	This patch add IPv6 functionality to network configuration. We want to
	run every device as dual stack device so IPConfig now uses IPv4 AND
	IPv6(or one of them).

	This patch was built on Hunt Xu's patch 11741.

2013-10-24  Timothy Asir  <tjeyasin@redhat.com>

	gluster: fix hook list error if magic.MIME_TYPE not supported.
	Enhance _getMimeType function to
	fix hook list error if any lower version of python-magic
	does not support magic.MIME_TYPE

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1018076

2013-10-23  Dan Kenigsberg  <danken@redhat.com>

	ipwrapperTest: fix another sloppy error by danken

2013-10-23  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix link Monitor unpack error and device retrieval

2013-10-23  Dan Kenigsberg  <danken@redhat.com>

	ipwrapper: wrap `ip monitor link`

	drop a non-variable variable

2013-10-22  Dan Kenigsberg  <danken@redhat.com>

	nestedvt hook: document the need of a nested-enabled kernel

2013-10-22  Aravinda VK  <avishwan@redhat.com>

	vdsmapi: gluster: vdsmapi schema definitions for existing gluster verbs
	vdsmapi schema definitions for existing gluster vdsm verbs

2013-10-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding reconfigure libvirt to vdsm upgrade flow
	After upgrade vdsm and supervdsm should restart if ran (due to code upgrade).
	libvirt configure should run if needed, and if reconfigure occurred we
	should restart libvirt service as well if it was up.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1019200

2013-10-22  Eduardo Warszawski  <ewarszaw@redhat.com>

	Making getVSize and getVTrueSize SD methods.
	* Units sanitized. The two methods return now size in bytes,
	  like st_size.
	* getVTrueSize() renamed to getAllocSize().

	TODO:
	These two method should be unified in a future patch since the
	two values are returned in the same call for file volumes and
	the two values are identical for block volumes.

	Required to reduce the volume size functions proliferation.

2013-10-22  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: Update Ubuntu packaging scripts
	Recently upstream VDSM added some files and dirs, as well as some
	dependencies. Unfortunately depndency upgrade for linux kernel and
	selinux-policy-targeted are not available on Ubuntu.

	This patch adds files and dirs, update glusterfs dependency
	declaration, and update vdsm release version.

2013-10-21  Eduardo Warszawski  <ewarszaw@redhat.com>

	Don't re-produce the same SD again.

2013-10-21  Amador Pahim  <apahim@redhat.com>

	Report bond speed as function of slaved nics speed and bond mode
	Currently bond interfaces are always assumed to have 1GB of speed,
	reflecting in inaccurate network usage calculations.

	This patch add bond speed probe to netinfo.speed(), considering bond
	mode and slaved nics speed:

	 Failover modes: 1 and 3
	  Bond speed = active slaved nic speed.

	 Load Balance modes: 0, 2, 4, 5 and 6
	  Bond speed = all slaved nics speed summed up.

	Bug-Url: https://bugzilla.redhat.com/1007860

2013-10-21  Eduardo Warszawski  <ewarszaw@redhat.com>

	Rename Image.copy() to Image.copyCollapsed().
	Renaming this method in order to clarify it's result and
	differentiate it from dict.copy()

2013-10-20  Mooli Tayer  <mtayer@redhat.com>

	minor changes in libvirt connection
	change logging levels and use functools.wraps

2013-10-20  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: Fix vdsm.prerm of Ubuntu packaging scripts
	On Ubuntu, qemu-sanlock.conf is not used, so there is no need to
	restore it during the packaging removal.

2013-10-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	New getChildrenList implementation.
	This implementation returns children of any image on the SD.
	Avoids to produce each volume in the domain.

	Related-to: https://bugzilla.redhat.com/show_bug.cgi?id=960952

2013-10-20  Nir Soffer  <nsoffer@redhat.com>

	tests: Minor cleanup in monkeypatch module and tests

2013-10-20  Dan Kenigsberg  <danken@redhat.com>

	testValidateBondingOptions: declare root requirement
	Our Bond.validateOptions() and and its test require root permissions.

2013-10-18  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: fix isoprefix KeyError for inactive domains
	In a recent change f9cf58b (Make getRepoStats() a hsm method) a
	new regression was introduced that causes a KeyError on isoprefix
	for inactive domains.

	In this patch:
	* fix the isoprefix KeyError for inactive domains
	* fix indentation for a related block of code

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1020543

2013-10-18  Russ Herrold  <herrold@owlriver.com>

	tests: typo fix
	typo fix of package name

	Bug-Url: https://bugzilla.redhat.com/1020484

2013-10-17  Antoni S. Puimedon  <asegurap@redhat.com>

	Make link state change monitoring use an async proc

2013-10-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: libvirt configuration detection should skip /dev/null
	We disabled libvirt-sanlock in Ubuntu, so QLCONF is set to /dev/null,
	and later we need to grep "${BY_VDSM_VERS}" from QLCONF to confirm
	libvirt is configured. grep returns 1 for /dev/null but actually libvirt
	is configured. This patch skip /dev/null when grep libvirt .conf files.

	Packaging: fix ./configure option for libvirt environment file
	The help string "=FILE" is incorrectly added to the name of the
	configure option --with-libvirt-service-default. So This patch moves
	"=FILE" to help string.

2013-10-16  Allon Mureinik  <amureini@redhat.com>

	sd.py: Remove sds from sdCache when connecting
	When connecting to a storage server, pre-existing domains should be
	removed, since we have no way of knowing what happened to these
	domains in the meanwhile.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=950055

2013-10-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding dependency on cpopen formal package
	Removing cpopen code from vdsm and using formal package instead

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=903246

2013-10-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Add monkey patching class decorator
	Using the new MonkeyClass decorator, you can do monkey patching during
	all test methods in a test case class, without implementing setUp() or
	tearDown().

2013-10-15  Antoni S. Puimedon  <asegurap@redhat.com>

	Drop evil exception swallowing form removeNic

2013-10-15  Dan Kenigsberg  <danken@redhat.com>

	fix [start|stop]MonitoringDomain introduction version
	vdsm-4.13.0 was released without this new verb, which should be
	available only in vdsm-4.14.

2013-10-14  Federico Simoncelli  <fsimonce@redhat.com>

	stats: return domain lockspace status

2013-10-14  Nir Soffer  <nsoffer@redhat.com>

	tests: Add Patch class for fixture monkey patching
	MonkeyPatch decorator is useful when you want to monkey patch some
	modules during one test and use different or no monkey patcing during
	other tests.  However, when monkey patching all methods in a test case
	class, using a decorator is tedious, leads to duplicate code and hamper
	readability.

	This patch adds a Patch object for monkey patching during all tests in a
	test fixture. New tests cover both MonkeyPatch decorator and new Patch
	object and serve as example code.

2013-10-14  Martin Betak  <mbetak@redhat.com>

	vdsm: Remove dead code in MigrationSourceThread.run
	Removed the mstate variable and the corresponding if as the
	variable was not used otherwise and the condition always true.

2013-10-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	Adding [start|stop]MonitoringDomain().
	startMonitoringDomain() is added for monitoring a storage domain
	without being connected to the pool and geting and ID for such
	SD lockspace.

	stopMonitoringDomain() stops the monitoring and releases the ID.

	Monitoring results are gathered with repoStats().

	Caveat Emptor:
	SDs added to the monitor using startMonitoringDomain() should not
	be part of the pool! i.e. the pool domain set and the added SDs set
	should be disjoint.

	Making repoStats pool independent.

	Make getRepoStats() a hsm method.
	Making repoStats pool independent.

2013-10-14  Dan Kenigsberg  <danken@redhat.com>

	fix premature selinux dependency
	Vdsm v4.13.0 places its storage repository under /var/run/vdsm/storage
	instead of the non-standard trademarked /rhev/data-center. This change
	requires a compatible change to selinux which would be available only
	when selinux-policy-3.7.19-195.el6.13 is released.

	Until then, to try out vdsm on EL6, one should set selinux to permissive mode or manually

	    sudo semanage fcontext -a -s system_u -t virt_var_run_t -r s0 '/var/run/vdsm(/.*)?'

2013-10-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Moving coredump configuration to common script

2013-10-12  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Refactoring the device dict creation
	The device dictionaries are created on multiple different locations and
	explicitly.
	To avoid this duplication we're now moving it to one location where we
	define an immutable tuple of tuples and generate the dictionaries from
	there.

2013-10-11  Eduardo Warszawski  <ewarszaw@redhat.com>

	Read pool metadata once in StoragePool.getInfo()
	The behavioural change of spm_id should be safe since
	StoragePool.getInfo() call in  hsm.getStoragePoolInfo() is under
	the (shared) pool lock making startSpm block in this host when
	the info is retrieved.

	Making repoStats pool independent.

2013-10-11  Miguel Angel Ajo  <miguelangel@ajo.es>

	vdsm hooks: this patch provides after/before_network_setup hooks.
	This enables the capability to interact with physical network
	management interfaces, setting up extra parameters, or
	interacting with switches, etc.

	It also introduces a standard testing decorator for hook
	testcases.

2013-10-11  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Bump kernel requires version to pass testSetupNetworksMtus on F19
	It's found that testSetupNetworksMtus fails on F19 because of the
	broken promiscuity reference counting issue in kernel. It has been
	fixed in kernel-3.11.3-201.fc19. With the updated kernel, the test
	testSetupNetworksMtus can pass. For detailed information, please see:
	https://bugzilla.redhat.com/show_bug.cgi?id=1005567

	This problem doesn't exist in RHEL6 because it's triggered by a new
	kernel change. So we don't need any fix for rhel kernel.

2013-10-11  Aravinda VK  <avishwan@redhat.com>

	gluster: Fix output format compatibility of removeBrickStatus
	Rebalance status and Remove brick status have common output structure,
	engine uses common code to parse the vdsm output of both verbs.

	This patch fixes the incompatibility in remove brick status output.
	(As this verb is not consumed by engine/RHS-C yet, its OK to differ
	in compatibility now)

	Output:
	    {'summary': {
	        'filesScanned': INT,
	        'filesMoved': INT,
	        'filesFailed': INT,
	        'filesSkipped': INT,
	        'totalSizeMoved': INT,
	        'status': STRING
	    },
	    'hosts': [{
	        'name': STRING,
	        'filesScanned': INT,
	        'filesMoved': INT,
	        'filesFailed': INT,
	        'filesSkipped': INT,
	        'totalSizeMoved': INT,
	        'status': STRING
	    }..]}

2013-10-11  Nir Soffer  <nsoffer@redhat.com>

	tests: refactor remoteFileHandler truncateFile tests
	The old test was too big, causing one test to fail if the other failed.
	Now there are 2 separated tests, sharing setup, teardown and check
	methods.

	Additionally, creation of the test file is more correct, and the code is
	hopefully more readable.

2013-10-11  Federico Simoncelli  <fsimonce@redhat.com>

	test: add ddWatchCopy append tests

2013-10-11  Antoni S. Puimedon  <asegurap@redhat.com>

	Remove redundant file closing

2013-10-10  Antoni S. Puimedon  <asegurap@redhat.com>

	Properly cleanup after using bond in test

2013-10-10  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	vm: add the transient disk support
	A transient disk is a temporary qcow layer based on a (usually
	internal) volume that is attached to a VM in read-write mode.
	All changes stored in the transient disk will be lost as soon
	as the disk is hot-unplugged or when the VM exits.
	Its primary use is to access in read-write mode a snapshot
	(read-only volume).
	Libvirt doesn't support transient disks yet, hence this patch
	includes also all the required parts to fill that gap.

2013-10-10  Martin Polednik  <mpoledni@redhat.com>

	virtTests: fix initramfs permission detection
	Initramfs and kernel permission was being detected using os.access
	which caused running tests as root or user with permissions
	to read initramfs and kernel when vdsm did not have these permissions
	to fail the tests without creation if temporary initramfs
	as os.access would see it as readable while it in fact was not.

	This patch replaces os.access call with os.stat call,
	which checks for permissions of >004 to make sure that
	vdsm user can or can't read initramfs

2013-10-10  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing unnecessary subshell call

2013-10-10  Antoni S. Puimedon  <asegurap@redhat.com>

	Ifcfg: Fix file writing races
	On a fast enough computer, it could very well happen that we'd do:
	    open('foo', 'w').write('moo')
	    execCmd(['cat', 'foo'])

	And that the content that 'cat' would show for foo would not be 'moo'
	but whatever was there before the write, due to the file closing
	happening at a non deterministic point of time.

	How was this horribly edgy case unearthed? Good question!

	Let's say we have a bond0 with slaves em2 and em1. We are in the
	process of removing the bond completely.

	removeNic basically stripes the nic ifcfg file of everything except
	the hwaddr, device type, etc. So, if there was previously for nic em1
	MASTER=bond0

	after removeNic, there is an ifup of em1 (to leave the link state up)
	that would still see bond0 as master. That in turn would make
	initscripts trigger ifup of bond0, but that ifcfg file no longer
	exists, ifup fails, raises an exception, and the whole removal is
	rolled back.

	Needless to say, this was unfindable with the debugger, as the file
	close would be fast enough due to the debugger slowing down operation.

2013-10-10  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing libvirt_configure from pre-start and ask for manual run
	Before starting vdsmd we need to add vdsm configuration to
	libvirtd.conf. This part is performed by vdsm-tool libvirt_configure
	verb. Currently we call it as part of init script pre-start function,
	but doing that must follow restart of depended services as libvirtd. We
	don't want to restart services as part of vdsmd init script, so this
	patch detach the auto reconfigure and report to user to perform it
	manually if attempt to start vdsmd without having libvirtd.conf
	configured.
	Performing start\stop actions on external services during service start
	is invalid and can lead to bugs in different service managers.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1013371

2013-10-10  Federico Simoncelli  <fsimonce@redhat.com>

	oop: improve safety for truncateFile
	In order to make truncateFile safer and to avoid any confusion on its
	behavior:

	* a new comment has been added mentioning O_TRUNC and "w" to avoid any
	  future mistake in this area
	* a new test has been added to check the expected outcomes
	* the "w" mode has been removed from truncateFile (used in os.fdopen)
	  to prevent any future reconversion to open(path, "w")
	* the risk of a file descriptor leak (for a failing os.fdopen call)
	  has been removed using the relevant posix calls

2013-10-10  Yaniv Bronhaim  <ybronhei@redhat.com>

	Changing return method from vdsmd start function

2013-10-10  Antoni S. Puimedon  <asegurap@redhat.com>

	testrunner P_VDSM path fix
	when running run_tests_local.sh the tests that want to find modules
	that would usually be installed to /usr/share/vdsm should look in
	$repo_root/vdsm instead of $repo_root.

2013-10-09  Saggi Mizrahi  <smizrahi@redhat.com>

	Tests: Fixed resource manager stress test
	It now should perform more reliably and reduce side effects. Can be now
	be run even on weaker hosts though the test will be less effective.

2013-10-09  Eduardo Warszawski  <ewarszaw@redhat.com>

	More precise catch in block volume create.
	Narrow the exception when failed to deactivate a new created
	volume.

2013-10-09  Antoni S. Puimedon  <asegurap@redhat.com>

	configNetwork Missing space in error string

2013-10-08  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netconf: Sort bond's slave when objectivizing
	To make iproute2 configurator pass testBondHwAddress, we need keep
	the bond's slaves sorted. Otherwise bond's hwaddr will vary with the
	order of enslaving. This work is done by initscript for ifcfg
	configurator. The patch restores the nicSort function to get the
	same order of initscript does.

2013-10-08  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: protect deleteImage with the spm lock

2013-10-08  Eduardo Warszawski  <ewarszaw@redhat.com>

	Make hsm.getVolumesList() pool independent.
	Related to BZ#960952.

2013-10-08  Yeela Kaplan  <ykaplan@redhat.com>

	image: Calculation of chain to remove is inaccurate
	The if condition will always return false,
	therefore list 'rmChain' will always be composed of only one volume.

2013-10-08  Dan Kenigsberg  <danken@redhat.com>

	caps: coarse-grain libvirt.rpm may be missing
	As of http://gerrit.ovirt.org/15761 we no longer require the legacy
	libvirt.rpm to be installed on Fedora, so getCaps should not look for
	it. Instead, it should report the information of the installed
	libvirt-daemon-kvm.rpm.

	Without this patch we get an annoying
	    (_getKeyPackages) rpm package libvirt not found
	log message, and do not report libvirt's version.

2013-10-08  Federico Simoncelli  <fsimonce@redhat.com>

	fileVolume: fix volume type check in _extendSizeRaw
	This patch fixes the volume type check in _extendSizeRaw and improves
	the size checks.

2013-10-08  Eduardo Warszawski  <ewarszaw@redhat.com>

	Avoid redundant check for volume create rollback.
	The same check will be called during volume delete.
	In addition removing createVolumeRollbackError, code 228.

	Related-to: BZ#960952

2013-10-08  Yeela Kaplan  <ykaplan@redhat.com>

	image: produce volume in order to shrink after merge
	Create of new volume in case of raw base volume,
	causes us to work on a stale object when shrinking
	the merged volume.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1015071

2013-10-08  Bala.FA  <barumuga@redhat.com>

	gluster: remove unwanted error codes
	This patch fixes to remove unwanted error codes which are no longer
	needed.

2013-10-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix getStorageDomainInfo() logic.
	Domains with 'role' == MASTER_DOMAIN should always be attached
	to a pool.
	Detect 'stale' master domains.
	Not hiding errors anymore.
	Catching specific errors.

	BC: If the domain is a Master but it is not connected to the actual
	(host) pool, master_ver, host_id and lver are not returned.

	Required for making repoStats pool independent.

2013-10-07  Dan Kenigsberg  <danken@redhat.com>

	vm.Vm._getUnderlyingDriveInfo: extract path of gluster disks
	_getUnderlyingDriveInfo() is broken by design. It has no reliable means
	to match Engine-requested devices with libvirt-produced ones. As a
	heuristic, it uses the device's as matching key. However, before this
	patch, it failed to extract the path from the xml definition of gluster
	disks.

	Bug-Url: https://bugzilla.redhat.com/1007980

2013-10-05  Antoni S. Puimedon  <asegurap@redhat.com>

	Drop single use inheritance
	There is only one class inheriting from Device, VmDevice. Device
	has no instances, so it is better to drop it altogether in favor
	or VmDevice, which is inherited from a sizeable amount of times.

2013-10-05  Timothy Asir  <tjeyasin@redhat.com>

	gluster: fix integer overflow error in rebalance status
	Provides rebalance status values as strings to avoid overflow error
	when a rebalance status values exceeds the XML-RPC limits

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1012393

2013-10-04  Assaf Muller  <amuller@redhat.com>

	Unified network persistence [2/4] Respond to setSafeNetworkConfig
	This patch adds setSafeNetwork capabilities to the unified
	persistence model. At this stage, it is able to store the running
	configuration to /var/lib/vdsm/persistence/netconf/{nets,bonds}
	in an atomic way so that it will be available after reboot.

	In the following patches there should be added a service that
	calls a configurator flushing system that deletes the configurator
	persistence bits before networking goes up and instead uses the
	unified persistence to restore the network configuration.

	Unified network persistence [1/4] - Save running config
	This patch introduces the new persistence model for vdsm networking.
	It is meant to provide a single reliable way abstracting persistence
	out of the netconf configurators as much as possible.

	To achieve its purpose, it stores the network actions as setupNetwork
	parameters serialized in json which are then used for rollback and
	initialization.

	The first patch in the series saves the current state of networks,
	nics and bonds to a folder.
	The second patch copies the contents of the running config folder
	to a startup config folder
	The third patch uses the startup config folder to restore network
	configuration to the host upon host boot up.

2013-10-04  Bala.FA  <barumuga@redhat.com>

	gluster: add task support
	gluster volume operations like rebalance, replace-brick, remove-brick
	are async operations which needs to be tracked as async tasks in
	oVirt. This is done by introducing below new verbs.

	New verb:
	* glusterTasksList
	    - return value structure:
	        {TASKID: {
	                  "volume": VOLUMENAME,
	                  "status": TaskStatus,
	                  "type": TaskType,
		          "bricks": [BRICK1,..],
			  "data": SUMMARY
	                  }, ...}

2013-10-04  Peter V. Saveliev  <peet@redhat.com>

	vdsm: support VIR_MIGRATE_ABORT_ON_ERROR
	Abort VM migration on EIO by default. The flag is supported
	since libvirt 1.0.1 upstream, so use it only in appropriate
	cluster versions.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=961154

2013-10-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix vdsClient.repoStats() bad path.
	(Or why using your list as a dict is bad.)

	vdsClient: is list a dict?
	Short answer: NO!

	Enable VM migration to old vdsm's.
	Old vdsm's can't run VM from /var/run/vdsm/storage and rely on
	/rhev/data-center hierarchy.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1011608

2013-10-04  Dan Kenigsberg  <danken@redhat.com>

	Reintroduce afterMigrationStatus
	In http://gerrit.ovirt.org/19306 I was fooled to believe that we can
	drop the unused afterMigrationStatus parameter. However vdsm version
	prior to that change (e.g. that of ovirt-3.3.0) expect to delete it.

2013-10-02  Antoni S. Puimedon  <asegurap@redhat.com>

	Manage and fix test dummies handling -> module level
	We can handle the dummies at the global level so that less work needs
	to be done per test and the cleanupNetwork decorator doesn't miss
	the dummies that were previously already destroyed at that stage.

	The reutilization of the dummy interfaces exposed two bugs in the
	current tests in their cleaning up phase that this patch addresses
	as well.

2013-10-02  Mooli Tayer  <mtayer@redhat.com>

	Text: add 'dstqemu' to vds client migration command description
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1007686

2013-10-02  Nir Soffer  <nsoffer@redhat.com>

	readme: how to configure libvirt after manual installation
	When vdsm is installed automatically, libvirt is configured during the
	bootstap flow. However, when installing vdsm manually the user must
	configure and restart libvirt using vdsm-tool.

2013-10-01  Nir Soffer  <nsoffer@redhat.com>

	Fix tokenizing of unsupported data in vdsmapi-schema.json
	vdsmapi tokenizer got into an endless loop when unsupported token was
	found. Example input trigering this are invalid tokens such as unquoted
	string, or valid JSON tokens like null, true and false, which are not
	supported by the parser.

	Now the tokenizer raise ValueError with the offending data. This should
	be good enough for developers usage.

	New unittests cover tokenizing valid, invalid and unspported tokens.

2013-10-01  Mooli Tayer  <mtayer@redhat.com>

	Alphabetize test modules list that has gone out of order.

	libvirtconnection: ping libvirt upon disconnection
	Upon recieving an error from libvirt we should ping it
	(using getLibVersion) and only upon failure treat it as down.

	Libvirt error codes do not distinguish recoverable from non-recoverable
	libvirt errors.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=982634

2013-10-01  Martin Polednik  <mpoledni@redhat.com>

	vdsClient: hibernate now sends required hiberVolHandle
	- vdsClient did not pass hiberVolHandle, causing it to fail any attempt
	to hibernate
	- BindigsXMLRPC defaulted required parameter to None

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=802446

2013-09-30  Shahar Havivi  <shaharh@redhat.com>

	vdsm: add support for ram/vram on QXL device
	setting support for qxl device with proper ram/vram attributes:

	1 Monitor, Single PCI checked     64MB   32MB
	2 Monitors, Single PCI checked    128MB  32MB
	4 Monitors, Single PCI checked    256MB  32MB

	Bug-Url: https://bugzilla.redhat.com/787578

2013-09-30  Federico Simoncelli  <fsimonce@redhat.com>

	vm: shared attribute backward compatibility
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1011608

2013-09-29  Eduardo Warszawski  <ewarszaw@redhat.com>

	Convert guids into mapper devs for extend blockSD
	After I1ec54147205992ac130684d01e73cd7aceccad48, which changed
	multipath.getMPDevNamesIter() to return full paths,
	HSM.extendStorageDomain() guids param should be converted accordingly.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1012944

2013-09-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	Workaround to avoid password request when starting vdsmd service
	During start of vdsmd we shutdown conflicting services. As part of this
	we try to stop libvirt-guests. `service libvirt-guests stop` tries to
	access libvirtd which requires sasl authentication.
	This patch removes libvirt-guests lockfile instead of stopping the service.

	The patch should be reverted after a fix for:
	https://bugzilla.redhat.com/show_bug.cgi?id=1011981 will be available
	(Comment was added above the change to keep tracking the issue)

	The workaround was part of vdsmd init script already in the past and was
	removed by mistake.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1010693

2013-09-28  Martin Polednik  <mpoledni@redhat.com>

	vdsProxy pass calls to undefined methods to API and return msg/status
	Currently, every API call to be made has to be appended to utils.py in
	order to be accessible by vdsProxy instance, this patch removes this
	need for calls where only status and msg return values are relevant and
	therefore reducing code (and api) duplication

2013-09-27  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm: Load softdog if hardware watchdog is not available
	On Ubuntu softdog is not loaded automatically. When there is not
	hardware watchdog available, we have to load softdog to make wdmd and
	sanlock work properly.

	This patch detects /dev/watchdog during vdsmd startup and load softdog
	if /dev/watchdog does not exist.

2013-09-26  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Ubuntu: packaging: keep up with vdsm.spec.in
	In vdsm.spec.in we add new files and folders, so add those files and
	folders to Ubuntu packaging scripts as well.

2013-09-26  Mark Wu  <wudxw@linux.vnet.ibm.com>

	tests: Fix testBondHwAddress for fedora kernel
	In relatively new kernel, the hwaddr of bonding will be set to a
	random address when the last slave is released. You can find it in:
	https://github.com/torvalds/linux/blob/master/drivers/net/bonding/bond_main.c#L1824

	So to make the testBondHwAddress pass on fedora, we need backup the
	hwaddr before destroy it.

2013-09-26  Dan Kenigsberg  <danken@redhat.com>

	net tests: setupNetworks over exiting USED bond
	Currently testSetupNetworksAddOverExistingBond fails, but only because
	it is too strict: it does not allow the bonding device to change its
	state even when it has no users. However, if the bond is not used, we
	actually WANT it to be reconfigured (e.g. if its MTU is to be set to a
	lower value).

	Thus the tests is amended so that it would fail only if bond0 changes
	its operstate while it is being used by a birdgeless network.

2013-09-25  Federico Simoncelli  <fsimonce@redhat.com>

	sd: use the correct default for LEASE_TIME_SEC
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1011505

2013-09-25  Sandro Bonazzola  <sbonazzo@redhat.com>

	systemd: vdsmd: fixed sanlock requirement
	Added missing .service.

2013-09-25  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix duplicate port mirrorring when reattaching vm
	When there is a VM running with port mirrorring defined, the fact
	that a vdsm restart re-attaches by "recreating" the vdsm vm object
	makes it run setPortMirroring again. This caused every vdsm restart
	to add a mirrorring duplication.

	Bug-Url: https://bugzilla.redhat.com/1001704

2013-09-25  Timothy Asir  <tjeyasin@redhat.com>

	gluster: bug fix for listing and adding hook
	Earlier, with regard to gluster hooks there would be definitely a pre and post
	directory for each and every gluster command. But presently, if either pre
	or post script is not present there will be no pre or post directories also.
	Therefore, if there is no such directories available the gluster hook list
	will simply omit it.
	When a gluster hook is added if pre or post directories are absent, they
	will be created accordingly, then the hook will be added.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=999795

2013-09-25  Yeela Kaplan  <ykaplan@redhat.com>

	iscsiadm: Filter out IPv6 addresses when discovering targets
	This patch is not diminishing any capabilities we have, since we
	currently don't support ipV6 targets in vdsm.

	When discovering targets on Netapp storage we get a return value that
	includes both IPv4 and IPv6 addresses.

	The only thing I've changed is preventing vdsm from failing discovery
	because of getting an unexpected response from iscsiadm (our parser is
	very hardcoded).

	If we decide to support ipV6 addresses for discovery, login and managing
	the connection then it needs to be addressed separately.

2013-09-24  Vitor de Lima  <vitor.lima@eldorado.org.br>

	deployUtil: Remove null character from the id on IBM POWER
	The hardware id for IBM POWER machines had a trailing null character that
	caused errors in the oVirt engine. (This patch was also submitted to the
	oVirt host deploy project).

2013-09-23  Sandro Bonazzola  <sbonazzo@redhat.com>

	packaging: spec: selinux-policy-targeted requirements
	fixed selinux policy-targeted requirements for fedora.

2013-09-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	supervdsmServer was not passing kwargs to fuser
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1006203

	respawn script fix: Adding -- after logger arguments and using $*
	Without using -- the usage of $@ in the string can count as more arguments to
	logger call instead of part of the string. This crashes the respawn process.

	The replacement of $@ to $* is to avoid spaces during the print.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=986635

2013-09-21  Greg Padgett  <gpadgett@redhat.com>

	vdsm-tool: update wording of libvirt/supervdsm restart message
	Update wording of message telling the user what to run in order to
	restart libvirt and supervdsmd.

2013-09-20  Petr Sebek  <psebek@redhat.com>

	Fix missing bootproto line
	Bootproto of new network was overwritten by value in ifcfg file. That
	file lacked BOOTPROTO value and therefore it was stated as None value
	(not str).

	Bootproto was deleted by function _removeConfigValues because deleted
	vlan called function vlan.device.remove() -> Nic.remove().

	Patchset 4 fixes usecase tested by testAddVlanedBridgeless_oneCommand.

	Patchset 6  log ifcfg files that are written
	            fixes usecase tested by testAddVlanedBridgeless
	            added function isBond() to NetDevice

	Patchset 7  removed needless functions removeIfaceCleanup and
	            _removeConfigValues
	            in _getIfaceConfValues is given priority to network setup
	            over current configuration in cfg file

	Bug-Url: https://bugzilla.redhat.com/980174

2013-09-20  Juan Hernandez  <juan.hernandez@redhat.com>

	Fix pep8 issue in SecureXMLRPCServer
	Commit 35c571 introduced a pep8 issue (an extra blank line) that
	produces failures in continuous integration jobs.

2013-09-20  Bala.FA  <barumuga@redhat.com>

	gluster: Using XML output for rebalance/remove-brick status verbs
	Modified rebalance/remove-brick status output to consume XML
	output provided by gluster cli command.

	Modified verbs(As below verbs are not consumed by engine/RHS-C yet,
	its OK to differ in compatibility issue now)
	glusterVolumeRebalanceStatus
	glusterVolumeRemoveBrickStatus

	Output:
	    {'summary': {
	        'filesScanned': INT,
	        'filesMoved': INT,
	        'filesFailed': INT,
	        'filesSkipped': INT,
	        'totalSizeMoved': INT,
	        'status': STRING
	    },
	    'hosts': [{
	        'name': STRING,
	        'filesScanned': INT,
	        'filesMoved': INT,
	        'filesFailed': INT,
	        'filesSkipped': INT,
	        'totalSizeMoved': INT,
	        'status': STRING
	    }]}

2013-09-20  Juan Hernandez  <juan.hernandez@redhat.com>

	Log client address on SSL errors
	We used to write to the log the IP address of the client when an SSL
	error occurred. With the introduction of cached SSL sessions this
	stopped working. This patch modifies the SSLServerSocket class that was
	introduced in order to implement cached SSL sessiosn so that when an SSL
	error is detected while accepting a connection the IP address of the
	client will be added to the message of the exception, and thus written
	to the log as part of the traceback, for example:

	  BindingXMLRPC::ERROR::2013-09-17
	  20:34:25,901::BindingXMLRPC::72::vds::(threaded_start) xml-rpc handler exception
	  Traceback (most recent call last):
	    File "/usr/share/vdsm/BindingXMLRPC.py", line 68, in threaded_start
	      self.server.handle_request()
	    File "/usr/lib64/python2.7/SocketServer.py", line 280, in handle_request
	      self._handle_request_noblock()
	    File "/usr/lib64/python2.7/SocketServer.py", line 290, in _handle_request_noblock
	      request, client_address = self.get_request()
	    File "/usr/lib64/python2.7/SocketServer.py", line 463, in get_request
	      return self.socket.accept()
	    File "/usr/lib64/python2.7/site-packages/vdsm/SecureXMLRPCServer.py", line 128, in accept
	      raise SSL.SSLError("%s, client %s" % (e, address[0]))
	  SSLError: sslv3 alert certificate unknown, client 192.168.122.1

	Note the text "client 192.168.122.1" added to the last line of the
	traceback.

	Bug-Url: https://bugzilla.redhat.com/983630

2013-09-19  Federico Simoncelli  <fsimonce@redhat.com>

	blockVolume: round up volume size for createVolume
	The logical volume size granularity used in lvm(.py) is 1Mb, therefore
	the size in sectors should be aligned. When the size is particularly
	small this also prevents failing lvcreate calls with size 0m.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1009086

2013-09-19  Martin Polednik  <mpoledni@redhat.com>

	vdsm: remove afterMigrationStatus
	The expectation for afterMigrationStatus was dropped before ovirt-3.0,
	as part of https://bugzilla.redhat.com/609417. Versions prior to
	ovirt-3.0 are no longer supported, thus we may finally remove this.

2013-09-19  Sergey Gotliv  <sgotliv@redhat.com>

	Fix parent volume rollback after failure to create snapshot
	1. Calling teardown() without prepare() throws an exception
	2. Narrowing try/except block
	3. Moving call to teardown() to finally block
	4. Remove redundant internal "if"

	Bug-Url: https://bugzilla.redhat.com/982004

2013-09-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	multipath.getMPDevNamesIter() return /dev/mapper.
	multipath names return the /dev/mapper part of the path for
	consistency with lvm module.

	Normalize lvm._buildFilter().

	Introduce lvm short filters.
	lvm commands that operate in a known VG can use the known pvs for
	filter.

2013-09-18  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: VDSM v4.12.0 packaged on Ubuntu
	Add files for building VDSM .deb packages on Ubuntu. The package is
	split into vdsm-python, vdsm-client, vdsm, vdsm-tests ,various vdsm
	hooks, vdsm-python-cpopen vdsm-yajsonrpc and vdsm-gluster.

	How does it work.
	The deb packaging scripts are written according to Debian New
	Maintainers' Guide [1]. We use dh_make, quilt and -buildpackage to do
	the packaging. All files unde the sub-dir debian are related to
	packaging. The most important ones are as follow.

	debian/changelog
	This file declares the deb package version.

	debian/control
	This file declares the dependency packages and other basic informations

	debian/rules
	This file is an executable Makefile. During the packaging process, it
	calls dh_XXX helpers to do the things. We can override some of the stages to
	provide custom actions. In this rule file, the following build options
	are used.
	1 Do not configure libvirt to use sanlock, since it's not supported on
	Ubuntu.
	2 Do not configure libvirt to use selinux and apparmor. Becuase apparmor
	is conflicting with VDSM, and libvirt on Ubuntu does not compiled with
	selinux support, so just do not use the security driver of libvirt.
	3 Hooks are enabled and built into respetive packages.

	debian/package-name.install
	Describe files go to the respective sub .deb packages. The directory
	containing the file is created automatically.

	debian/package-name.dirs
	Any dir that is not created automatically by the .intall file.

	debian/vdsm.postinst
	debian/vdsm.postrm
	debian/vdsm.preinst
	debian/vdsm.prerm
	These four files are maintainer scripts. They are like %pre %post %preun
	and %postun in a RPM .spec file. They are run before VDSM package is
	intalled, upgraded, and removed. The Debian upgrading process is not
	like RPM.
	Script execution order when updating a RPM [2]
	     %pre of new package
	     (package install)
	     %post of new package
	     %preun of old package
	     (removal of old package)
	     %postun of old package
	Script execution order when updating DEB [3]
	    old->prerm upgrade new_ver
	    new->preinst upgrade old_ver
	    (new files are unpackad)
	    old->postrm upgrade new_ver
	    (old files are deleted)
	    new->postinst configure old_ver
	So you will see the contents of these file is very different with
	vdsm.spec.in. Another difference is Debian do not generate .pyc files
	when packaging, instead, it just ship .py files and after install,
	compile the .py to .pyc according to /etc/python/debian_config [4]. The
	postinst and prerm scripts do this automatically if we include the
	string "#DEBHELPER#". This means actions calling the .pyc files should
	happen after the .pyc files are generated.

	Other files are just boilerplates to fill.

	There are some dependencies that are too old or not available on Ubuntu.

	python-ethtool
	Too old. The official maintainer does not work on it any longer. So we
	have to download the source package and repackage it using the latest
	upstream.

	python-pthreading
	Not available on Ubuntu, need to create .deb packages.

	python-rtslib
	Ubuntu provide the official version, but in functional tests we use the
	Fedora forked version. The two versions are not compatible. Now we do
	not add python-rtslib dependency to vdsm-tests. The user can install the
	Fedora forked version by "pip install rtslib-fb", if they want to run
	functional tests.

	sanlock
	Too old. The official maintainer does not work on it any longer, but he
	helps me and provide new version of sanlock packages. These new packages
	are not in Debian official repository unless they are well tested. For
	now we can host these packages together with VDSM .deb package. The
	packages are for Debian, thus I made a little change to fit into Ubuntu.

	libvirt-sanlock
	libvirt-sanlock is not available on Ubuntu, but it's in Debian "sid",
	the next Debian release. Not sure Ubuntu will take lbvirt-sanlock in
	next release. So now just drop libvirt disk locking.

	I re-packaged python-ethtool, and packaged python-pthreading from sratch.
	sanlock pakcages are provided by the original maintainer, and I modified
	it to suit into Ubuntu. The packages are put on launchpad.net [5]. To test
	the package, firstly setup a Ubuntu 1304 server, then run the following
	command.

	add-apt-repository ppa:zhshzhou/vdsm-ubuntu
	add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.4
	aptitude update
	aptitude install python-pip vdsm vdsm-gluster vdsm-tests vdsm-client
	pip install rtslib-fb
	chmod a+r /boot/vmlinuz* /boot/initrd.img*
	cd /usr/share/vdsm/tests
	./run_tests.sh functional/virtTests.py functional/storageTests.py

	[1] http://www.debian.org/doc/manuals/maint-guide/index.en.html
	[2] http://fedoraproject.org/wiki/Packaging:ScriptletSnippets
	[3] https://wiki.debian.org/MaintainerScripts
	[4] http://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages.html#s-byte_compilation
	[5] https://launchpad.net/~zhshzhou/+archive/vdsm-ubuntu

2013-09-18  Petr Sebek  <psebek@redhat.com>

	Change of ConfigWriter._createConfFile parameters
	ifcfg.ConfigWriter._createConfFile now accepts _ipConfig object instead
	of number of arguments. It helps to reduce number of arguments passed

2013-09-17  Alon Bar-Lev  <alonbl@redhat.com>

	packaging: spec: own /etc/pki/vdsm/libvirt-spice

2013-09-17  Federico Simoncelli  <fsimonce@redhat.com>

	sp: update lease parameters on masterMigrate
	Given the current API the lease parameters should be considered pool
	metadata (since they're passed to vdsm in createStoragePool and in
	reconstructMaster). On the contrary the implementation is (rightfully,
	you might argue) storing these values in the domain metadata.

	On master migrate we should copy the lease parameters from the old
	master to the new one in order to maintain the appropriate values.

	In this patch:
	- update lease parameters on masterMigrate
	- relax the default parameters

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=999343

2013-09-17  Yeela Kaplan  <ykaplan@redhat.com>

	hsm: deleteImage fails because of wrong dictionary use
	also, get fake template params before deleting the template.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=964649

2013-09-16  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: fix updateVolumeSize for raw volumes

2013-09-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing automatic restart of services in libvirt-reconfigure
	libvirt-reconfigure also restarted libvirtd as post reconfigure operation. The
	restart is required but there is no reason and its not expected to perform it
	automatically as part of the reconfigure operation.

	Restart also required to supervdsmd service (as described in the
	Bug-Url). Instead of restarting both, this patch prints message to user to
	preform the restart manually.
	To make it easier and centralized the patch also adds
	libvirt-configure-services-restart command that restart related services
	after reconfigure.

	For backward compatibility with systemd, this also update
	systemd-vdsmd script to restart libvirtd and supervdsmd services in
	previous versions.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=999853

2013-09-16  Federico Simoncelli  <fsimonce@redhat.com>

	imageSharing: return proper size in httpGetSize
	When importing images from OpenStack Glance the Content-Length is 0
	so we need to override the value with the content of the custom header
	X-Image-Meta-Size.

2013-09-16  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netconf: Fix the mtu of bond/nic not being set for new network
	The configuring should not be skipped if the new vlaned network
	over the bond or nic has a bigger mtu than current.

	This patch fixes the testSetupNetworksMtus functional test, broken by
	http://gerrit.ovirt.org/17491.

	Bug-Url: https://bugzilla.redhat.com/1004196

2013-09-15  Yaniv Bronhaim  <ybronhei@redhat.com>

	Handling errors in daemonAdapter
	This patch adds --syslog arguments to daemonAdapter, this option is
	needed in order to catch and log possible failures when vdsm is run via sysv,
	which does not capture stderr of the service script (which is used by
	default).

	This patch also introduces daemonAdapter class to simplify the implementation.

	Modification in lockfile usage mechanism as part of sysv init script
	The problem:
	Start can run if lock is free and respawn pid is not exist. Currently we keep
	holding the lock until the service is stopped. It means, that if the
	process that was initiated (the respawn prcoess) was crashed, we still hold
	the lock (as we didn't stop it by service stop) and this blocks us from
	initiating new instance. We acquire lock when start, and release it only after
	stop.

	The solution:
	Using flock to avoid multi instances of the init script. Vdsm execution
	is performed in subprocess and it releases the locked fd before starting
	the respawn process.

2013-09-15  Amador Pahim  <apahim@redhat.com>

	vdsClient: Fix str/unicode concatenation issue.
	"vdsClient -s 0 getVmsInfo <spUUID>" command fails with error:
	Error using command: 'ascii' codec can't encode characters in position
	2001-2004: ordinal not in range(128)

	Here the snip from guest info xml causing the issue:
	...
	<app_list>Windows XP ¸üÐÂ (KB898461),Microsoft Kernel-Mode Driver Framework
	Feature Pack 1.9,RHEV-Tools 3.2.8,WebFldrs XP,RHEV-Serial 3.2.4,RHEV-Spice-Agent
	3.2.5,RHEV-Agent 3.2.5,RHEV-SSO 3.2.4,RHEV-USB 3.2.3,RHEV-Balloon 3.2.4,
	RHEV-Spice 3.2.3,RHEV-Block 3.2.4,RHEV-Network 3.2.4</app_list>
	...

	Positions 2001-2004 point for characters "¸üÐÂ".

	infos['vmlist'][entry] can be type str or unicode. When it happens to
	be unicode with characters out of ASC-II range, converted to str and
	concatenated with the given strings, the issue is triggered:

	To reproduce with python interpreter:

	>>> var = u'¸üÐÂ'
	>>> type(var)
	<type 'unicode'>
	>>> test = 'string' + str(var)
	Traceback (most recent call last):
	  File "<stdin>", line 1, in <module>
	UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal
	not in range(128)

	This patch is removing the str() conversion for infos['vmlist'][entry]. The result
	is 'message' variable as type unicode when infos['vmlist'][entry] is unicode.

	Also, to avoid stdout redir encode error, the messages print is encoded as UTF-8.

2013-09-14  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: Fix help string and usage for --disable-libvirt-sanlock
	Help strings in configure.ac for --disable-libvirt-sanlock and
	--disable-libvirt-selinux are as follow.

	  --disable-libvirt-sanlock
	                          disable libvirt sanlock plugin [default=yes]
	  --disable-libvirt-selinux
	                          disable libvirt selinux plugin [default=yes]

	From simplicity and disambiguation, we remove "[default=yes]". This
	patch changes the help string to as follow

	  --disable-libvirt-sanlock
	                          disable libvirt sanlock plugin
	  --disable-libvirt-selinux
	                          disable libvirt selinux plugin

	So there is no ambiguity of whether the feature is disbale or enabled
	by default. We also avoid suggesting user to use
	"--disable-libvirt-sanlock=yes|no" which is a bit confusing (at least to
	me). The user can just use "--disable-libvirt-sanlock" to disable it.

	This patch also fix the code logic related to ENABLE_LIBVIRT_SELINUX in
	libvirt_configure.sh.in to make it agree with the help string.

2013-09-13  Assaf Muller  <amuller@redhat.com>

	Functional Tests [3/3]: Added static source routing functional test

	Functional Tests [2/3]: Added ipwrapper.ruleExists+routeExists
	Added functional tests for both functions as well.

	We can now parse rules that contain '[detached]' - If you add
	rules for devices that don't exist (Or add rules for devices
	that do exist and then delete the device) then 'ip rule' outputs
	the rule with '[detached]'. We couldn't parse such rules.
	This is important because when cleaning up rules that the test
	added we first get rid of the dummy nic and only then get
	rid of rules.

2013-09-13  Federico Simoncelli  <fsimonce@redhat.com>

	lib: add create function to the qemuImg module

2013-09-12  Shu Ming  <shuming@linux.vnet.ibm.com>

	Nits: clean the magic number for seek()

2013-09-12  Federico Simoncelli  <fsimonce@redhat.com>

	vdsm-tool: handle missing sanlock pid file

2013-09-12  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: make libvirtd env file path and qemu process user group configurable
	In Ubuntu, qemu user is libvirt-qemu, qemu group is kvm. libvirt daemon
	environment file is /etc/default/libvirt-bin. This patch make these
	configurable by adding the following options.

	--with-libvirt-service-default=/etc/default/libvirt-bin
	--with-qemu-user=libvirt-qemu
	--with-qemu-group=kvm

	The default value are based on RH family so Fedora and RHEL can safely
	ignore these options.

2013-09-10  Federico Simoncelli  <fsimonce@redhat.com>

	vdsm-tool: fix qemu-sanlock configuration
	Fixing the logic about qemu-sanlock configuration: if sanlock is
	enabled then qemu-sanlock.conf needs to be updated.

2013-09-10  Ayal Baron  <abaron@redhat.com>

	Removing validate sd from spm verbs which calls ckvg and refreshes the domain metadata on the spm even though the spm already controls the changes (i.e. a lot of redundant time is wasted)
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=979193

2013-09-10  Yeela Kaplan  <ykaplan@redhat.com>

	Remove redundant check that causes lvm cache to refresh every volume creation
	We try to create a volume without validating if it exists first.
	If the volume exists we need to make sure we don't it delete in
	rollback.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=979193

2013-09-10  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: Remove hard coded 12- prefix of vdsm-lvm.rules from upstream
	vdsm-lvm.rules.in is to fix lvm block device permissions, it should be
	applied after the system default lvm rules. On RH family distributions,
	12 is correct because system default is 11-dm-lvm.rules. On Ubuntu, 12 is
	incorrect and we use 61-vdsm.lvm.rules. This patch removes the 12-prefix
	from the upstream file name, and leaves the downstream packaging script
	to decide the correct installed name.

2013-09-10  Alon Bar-Lev  <alonbl@redhat.com>

	build: cleanup: reformat AC_ARG_ENABLE
	consistent use of tabs/non-tabs.

	consistent use of formatting method for all statements.

	consistent indent, single tab, not "drawing" code.

	shorter lines as requested.

2013-09-10  Yeela Kaplan  <ykaplan@redhat.com>

	remoteFileHandler: Add create exclusive option for truncateFile
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=979193

2013-09-10  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: fix sloppy rebase of one shot prepare
	A sloppy rebase of c072945 "One shot prepare" removed the changes
	introduced by cef2d5b "vm: extend shared property to support locking".

2013-09-10  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: bondHwAddress, safeNetworkConfig, volatileConfig
	Added three functional tests:

	* testBondHwAddress
	* testSafeNetworkConfig
	* testVolatileConfig

2013-09-09  Yeela Kaplan  <ykaplan@redhat.com>

	lvm: add logs to indicate finshing reload lvs op
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=979193

2013-09-09  Eduardo Warszawski  <ewarszaw@redhat.com>

	One shot prepare.
	The number of storage accesses is reduced to 1 or none instead of
	the recursive volume images produces.
	Requires a new selinux policy.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=960952
	Related to BZ#769502, BZ#990509.

2013-09-08  Sergey Gotliv  <sgotliv@redhat.com>

	Making setStorageDomainDescription the SPM command

2013-09-07  Dan Kenigsberg  <danken@redhat.com>

	Require libvirt that allows vmUpdateDevice
	Bug-Url: https://bugzilla.redhat.com/1001001

2013-09-07  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packaging: libvirt plugin of selinux and sanlock usage is configurable at build time
	VDSM makes use of these two plugins. However on platform such as Ubuntu,
	libvirt is compiled without selinux and sanlock plugin. In this patch we
	make these plugins configurable at build time by

	--enable-libvirt-selinux
	--enable-libvirt-sanlock

	By default they are both enabled.

	Because of non standard use of substitution (not using AC_OUTPUT) the
	scripts that are effected will not be regenerated unless make clean is
	called, out of the scope of this patch.

2013-09-07  Alon Bar-Lev  <alonbl@redhat.com>

	build: cleanup: reformat use of AC_ARG_ENABLE
	1. Use AS_HELP_STRING to format help.

	2. Use autoconf variable for statement.

2013-09-04  Federico Simoncelli  <fsimonce@redhat.com>

	spec: remove shared glusterfs requirements
	Since we now require glusterfs in the main package we can now remove the
	same dependencies from the gluster rpm.

2013-09-03  Federico Simoncelli  <fsimonce@redhat.com>

	storage: kill ongoing operations on exit
	Some storage operations must be forcibly interrupted when the vdsm
	(parent) process exits.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=713434

2013-09-03  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fixing start return the return value of vdsm execution

	Adding requires to python-argparse

	Removing has_systemd from sysv script
	After separating sysv and systemd common code, we forgot cleaning all
	systemd dedicated code from sysv init script. This patch removes has_systemd
	calls and definition from sysv init script, as this script doesn't in use by
	systemd anymore.

2013-09-03  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests : setupNetworks resizeBond, remove param validation.
	Added a couple of tests:

	* testSetupNetworksResizeBond (functional test).
	* testValidateNetSetupRemoveParamValidation (unit test).

	Adding further coverage of setupNetworks and functions
	on which it depends.

2013-09-03  Federico Simoncelli  <fsimonce@redhat.com>

	vm: extend shared property to support locking
	The drives "shared" property has been extended (from True/False) to
	support sanlock locking.

	The new values are:

	 - "none":      no infomation (locking disabled)
	 - "exclusive": the disk is used by the VM in exclusive mode
	 - "shared":    the disk might be used by multiple VMs

	For backward compatibility the old values are mapped as follows:

	 - True: "shared"
	 - False: "none" (or "exclusive" if use_volume_leases is True)

2013-09-02  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Add vdsm upstart jobs
	Add Upstart jobs for vdsmd, supervdsmd, vdsm-restore-net-config,
	vdsm-tmpfiles.

	vdsmd, supervdsmd, vdsm-restore-net-config jobs are Upstart counterpart
	of vdsmd.service, supervdsmd.service and vdsm-restore-net-config.service
	in systemd.

	vdsm-tmpfiles is to create directories under /var/run/ for vdsm and
	supervdsm. In Upstart there is no systemd-tmpfiles.sercice equivalent,
	so we implement simple script in vdsm-tmpfiles to do the necessary job.

2013-09-01  Yeela Kaplan  <ykaplan@redhat.com>

	clientIF: return doneCode in getDiskAlignment
	Engine expects a dictionary instead of an integer(0)

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=998411

2013-08-31  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: setupNetworks convertVlanNetBridgeness, Mtus
	Added a couple of functional tests:

	* testSetupNetworksConvertVlanNetBridgeness
	  covering behavior of converstion of a network
	  from bridged to bridgeless and viceversa.

	* testSetupNetworksMtus covering behaviour of
	  setupNetworks when used with different mtus.

	test : delNetwork with bond accumulation.
	Added functional test covering behaviour of delNetwork
	when creating and deleting a bond.

2013-08-30  Assaf Muller  <amuller@redhat.com>

	Functional Tests [1/3]: Added module for dummy nics
	Added setLinkUpDummy, setLinkDownDummy, setIPDummy
	These methods will be used in an upcoming test

	Added required ipwrapper functions for iproute2 configurator
	These ipwrapper functions are required by more than one patch
	so for efficiency's sake I've moved them to a separate patch.

2013-08-30  Dan Kenigsberg  <danken@redhat.com>

	fix testDelNetworkWithMTU
	If a network with an MTU lesser than the default is created on top of an
	existing nic or bond, the new MTU is not set on the underlying device.
	This makes sense if the high MTU of the device is being used by
	something else, but not if there are no users to the device.

	There is a caveat to this fix, though. If someone outside of Vdsm has
	been using the underlying device for other purposes (such as another
	vlan with a higher MTU), Vdsm would now change the MTU while it takes
	ownership on the device. This should be of no surprise, since when Vdsm
	owns a device, it truly owns it, and may control all of its attributes.

2013-08-30  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Packageing: Move SystemD and SysVInit files to respective sub-dirs
	A new dir /init is created to place vdsm init files.
	/init for common init files.
	/init/systemd for SystemD related files.
	/init/sysvinit for SysV init related files.
	/init/upstart will be created in future for Upstart related files.

2013-08-29  Allon Mureinik  <amureini@redhat.com>

	vm.py: Fix comment regarding MOM and KSM
	Fixed the comment's typo and grammar mistake.

2013-08-29  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	packaging: rename supervdsmServer.py to supervdsmServer and add environment file
	supervdsm process is started by "python supervdsmServer.pyc". This is a
	bit verbose when it is put in the SysV init script and SystemD service
	unit. This patch renames supervdsmServer.py to supervdsmServer to enable
	the init script start supervdsmServer directly.

	In this patch, an environment file is also add for supervdsmd service.

	vdsmd and supervdsmd: extract common init tasks and add init adapter
	Move common init tasks from vdsmd.init.in to a separated file,
	vdsmd_init_common.sh. This enables SysV init script, SystemD and other
	init systems re-use vdsm pre-start/post-stop scripts.

	Add vdsm/init/daemonAdapter for various init systems. daemonAdapter can
	start vdsm optionally with respawn and console redirection. On powerful
	init systems, we call daemonAdapter with no/few options, on SysV init
	system, we call it with respawn, console redirection and pid creation
	option. In this way we can remedy the gap of powerful init systems and
	less powerful ones.

	This patch uses daemonAdapter in vdsmd.init.in, vdsmd.service,
	supervdsmd.init.in and supervdsmd.service.in.
	vdsmd systemd service does not relies on SysV init scripts to run init
	tasks any more, it calls vdsmd_init_common.sh to run init tasks.

2013-08-27  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: setupNetworks with invalid params.
	Added three tests:

	* testIsNicValid
	* testBuildBondOptionsBadParams
	* testSetupNetworksAddBadParams

	covering the behaviour of configNetwork._buildBondOptions,
	nic entity creation and setup networks when providing
	invalid parameters.

	tests: adding missing cleanup decoration
	Some tests need to cleanup the env in case of failure.
	This patch adds the missed cleanupNet decoration to
	some tests.

2013-08-27  Antoni S. Puimedon  <asegurap@redhat.com>

	Allow configurators to be used as context managers
	Since configurators have commit and rollback, they are the perfect
	candidate for being used as context managers.

	Before:
	    configurator = Ifcfg()
	    try:
	        b = Bond(bonding, configurator, options, nics,
	                 mtu, NetInfo(), implicitBond).configure()
	    except:
	        configurator.rollback
	        raise

	After:
	    with Ifcfg() as configurator:
	        Bond(bonding, configurator, options, nics,
	             mtu, NetInfo(), implicitBond).configure()

2013-08-27  Alon Bar-Lev  <alonbl@redhat.com>

	vdsmd: remove reconfigure sanlock on 'reconfigure' verb
	reconfigure sanlock is perform at every restart, so there is no need for
	performing that on reconfigure target.

	if it is required, we need vdsm-tool configure or similar verb, as
	systemd does not support custom targets.

2013-08-26  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	xmlrpcTests: Mount configfs automatically
	In some systems such as Ubuntu, configfs is not mounted by default.

	In this patch, configfs is mounted automatically for iscsi tests.

	xmlrpcTests: Detect Ubuntu initramfs when booting VM
	Ubuntu initramfs file name is different from that in Fedora and RHEL.
	This patch tries to detect possible initramfs file names.

2013-08-26  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: setupNetworks compatibility bond and nic.
	Added four functional tests, testing setupNetworks
	compatibility for nics and bonds bridged and bridgeless:

	* testSetupNetworksNetCompatibilityBondSingleBridge
	* testSetupNetworksNetCompatibilityBondSingleBridgeless
	* testSetupNetworksNetCompatibilityNicSingleBridge
	* testSetupNetworksNetCompatibilityNicSingleBridgeless

2013-08-26  Antoni S. Puimedon  <asegurap@redhat.com>

	Remove bonds before editing and adding
	The current implementation of handleBondings relies on the
	non-deterministic ordering of the bondings dictionary for choosing
	which bonds should be handled first.

	The correct ordering is to first delete all the bonds to remove,
	then edit and finally add new bonds. This ensures that slaves
	of bonds to remove are properly freed before being added to existing
	or new bonds.

	Bug-Url: https://bugzilla.redhat.com/987525

2013-08-25  Martin Polednik  <mpoledni@redhat.com>

	xmlrpcTests: refactoring
	- split xmlrpcTests into storageTests and virtTests to reduce complexity
	- use vdsProxy approach for virtTests part

2013-08-24  Antoni S. Puimedon  <asegurap@redhat.com>

	fix getVlanID returning an int issues
	The fact that getVlanId now returns an int causes issues across
	the networking codebase due to the fact that there was a lot of
	concatenation of the kind:

	    vlanDev = ifacename + '.' + vlanId

	which of course causes a TypeError due to trying to concatenate
	string and int.

	Additionally, there was code like:

	if (not) vlan:

	which now that vlan is int, will be evaluated as False when we
	use vlan with id 0.

	Finally, this patch makes all internal dealings with vlan ids
	to be converted to integer on reception.

2013-08-22  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	vdsm.spec: BZ 988299: Fix GlusterFS RPM dep to support GlusterFS SD
	This patch fixes the GlusterFS RPM dependency needed by VDSM to
	support Gluster Storage Domain feature. Recent GlusterFS RPM
	re-packaging effort to better separate the client and server side
	bits and availability of qemu with libgfapi support mark the
	pre-req for this patch. These pre-req are now available in
	F18/F19/RHEL6/Centos6 and above in the appropriate distro specific
	repos. Also removing F17 dep as its End of life now.

	BZ 988299 has more details, with pointers to the community
	discussions around these.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=988299

2013-08-22  Antoni S. Puimedon  <asegurap@redhat.com>

	Don't down bonds and nics when adding vlan or resizing
	When adding vlans on top of devices, a configure of the underlying
	device incurs in ifdown and ifup, which in case of that device
	backing other vlans, will cause a network interruption.

	This patch makes that nics are only reconfigured (if a vlan is being
	put on top of them) when the interface was already down. This works
	because any extra config that would need to be applied for the new
	action needs only application on the vlan device itself.

	For Bonds, we only need to reconfigure in case the bonding options
	differ or the slaves don't match, in any other case, it's the same
	as with nics.

	Bug-Url: https://bugzilla.redhat.com/982632

2013-08-22  Amador Pahim  <apahim@redhat.com>

	[3/3] Use fixed getVlanDevice() and getVlanID().
	Change many functions to use getVlanDevice() and getVlanID() as a
	split('.') replacement.

	[2/3] Add "vlanid" to VLAN information
	Currently vdsm does not report vlan id as an idependent field. ovirt-engine
	is deducting vlan id by parsing vlan name, not reasonable as vlans can be
	made with any name.
	This patch adds the 'vlanid' information for vlans to be consumed by
	ovirt-engine:

	...
	        vlans = {'eth0.10': {'addr': '',
	                             'cfg': {},
	                             'iface': 'eth0',
	                             'ipv6addrs': [],
	                             'mtu': '1500',
	                             'netmask': '',
	                             'vlanid': 10},
	                 'eth0.myvlan': {'addr': '',
	                                 'cfg': {},
	                                 'iface': 'eth0',
	                                 'ipv6addrs': [],
	                                 'mtu': '1500',
	                                 'netmask': '',
	                                 'vlanid': 20}}

	...

2013-08-22  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix the 'MTU' option in networkTests
	The 'mtu' option should be in lower case. It doesn't fail with ifcfg
	configurator, because the 'MTU=1234' passes through to the ifcfg file
	as an extra option.

2013-08-21  Martin Polednik  <mpoledni@redhat.com>

	vdsmapi-schema: optional/required params fix
	- VideoDevice specParams field 'vram' is required according to
	current dom getXML
	- Smartcard device was previously missing required parameters
	mode and type
	- Type is actually required only for passthrough mode, fixed in code and
	  definition

2013-08-21  Yaniv Bronhaim  <ybronhei@redhat.com>

	After exception on _recoverExistingVms thread we should try again
	Currently we fail the process on exception and gets stuck on recovery.
	This might be because libvirt exception during first connect. Anyhow, we
	should continue try to recover to start serving vdsm requests.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=991091

2013-08-21  Giuseppe Vallarelli  <gvallare@redhat.com>

	macspoof hooks: new hook script to enable macspoof filtering per vnic.
	Puropose of this patch is to add a new hook script which is
	almost equal to the existing one except that is applied on
	a per vnic basis. This hook script uses a different custom
	property ifacemacspoof to avoid conflicts with the macspoof
	one which operates for all VM's interfaces.

	* Patchset-1 first implmentation.
	* Patchset-2 Removing for loop cycling through ifaces,
	             the xml is only related to a specific iface.
	* Patchset-3 Cherrypicked on top of fix broken storage test.
	* Patchset-4 Changed custom property name from macspoofperdevice
	             to ifacemacspoof, small fixes to README.
	* Patchset-5 Updated implementation, fixed small issue
	             related to the parsing code.
	* Patchset-6 Updated README key is now part of CustomDeviceProperties.
	* Patchset-7 Added before_nic_hotplug hook script.
	* Patchset-8 Changed script name to macspoof_vnic and used it
	             for 2 events instead of having two equal scripts.
	             Updated Makefile and added docstring on top of the script.
	* Patchset-9 Inlined removeFilter function, changed assignment 'style'.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=908704

2013-08-21  MeiLiu  <liumbj@linux.vnet.ibm.com>

	modify mom functional test to use VdsProxy
	This patch puts vdscli APIs in VdsProxy in utils. It modifies mom functional
	test to use it instead of direct calling. It resembles the way network
	functional test uses.

2013-08-20  Amador Pahim  <apahim@redhat.com>

	Introducing hidden_vlans configurable.

2013-08-20  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: setupNetworks add net bond breaking and resizing.
	Added 3 functional tests to cover cases of new networks
	on top of a bond after resizing/breaking and behaviour
	of setup networks which should keep a network when
	resizing a bond.

	List of added functional tests:

	* testSetupNetworksAddNetworkToNicAfterBondResizing
	* testSetupNetworksAddNetworkToNicAfterBondBreaking
	* testSetupNetworksKeepNetworkOnBondAfterBondResizing

2013-08-19  Allon Mureinik  <amureini@redhat.com>

	define.py: remove %s from imageErr
	imageErr untypically has an %s in the error message.
	To make things worse, most flows do not fill it, producing messages
	which are difficult to understand.

	This patch removes the aforementioned %s.

	Bug-Url: https://bugzilla.redhat.com/960635

2013-08-17  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: adding missing cleanupNet and refined testQosNetwork.
	Some additional cleanupNet were necessary on some tests
	which might, on possible failure, make the env dirty.
	Added the deletion of network created in the testQosNetwork.

2013-08-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	libvirt configure: use "ed" instead of "sed --copy -i"
	"sed -i" generates a temp file for output, then renames the temp file to
	the targeted file. Renaming a file means just changing the content of
	the directory entry, and the edited file has different inode index from
	the original version. So the sed edited file is a different file though
	with the same file name as the original version. To use sed on
	ovirt-node on bind-mounted files, we need "--copy" to copy the temp file
	into targeted file instead of renaming. Unfortunately, "--copy" is
	provided by a patch that is specific to the RPM packaged sed on Red Hat
	family distros. The "--copy" option is neither in GNU sed [1] nor in
	Single Unix Specification sed [2].

	In this patch we use "ed" instead of "sed -i --copy". "ed" edits the
	file in-place, by buffering the edited contents in memory and flushing
	to the file at last.

	[1] http://www.gnu.org/software/sed/manual/sed.html
	[2] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html

2013-08-16  Amador Pahim  <apahim@redhat.com>

	[1/3] Fix getVlanID() and getVlanDevice().
	Previous implementations work only under root privileges.
	This patch reimplements both functions to use "ip" tool.

2013-08-16  MeiLiu  <liumbj@linux.vnet.ibm.com>

	mom: add mom balloon functional tests for running vms
	The balloon functional test includes the grow and shrink tests.
	It uses diverse policies to triger grow and shrink operation.

2013-08-16  Giuseppe Vallarelli  <gvallare@redhat.com>

	refactoring: replacing ifcfg dependency to storage with one from lib.
	Ifcfg is using execCmd from storage.misc module, this patch replaces it
	with its equivalent from utils module.

2013-08-15  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netconf: Simplify addSourceRoute arguments

	netmodels: Improve getIpConfig using namedtuple

2013-08-13  Federico Simoncelli  <fsimonce@redhat.com>

	image: use successor volume size when merging
	Volumes in the same image chain might have different capacity since the
	introduction of the disk resize feature. This means that when we merge
	volumes the ancestor should get the new size from the successor in order
	to be able to contain the additional data that we are collapsing.

2013-08-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Handling signals interrupts, using pidofproc and prevent lock over systemd
	Under start lock, if signal is received, we should clean the lock file and
	stop the instance. During stop we should not stop the process until
	respawn and vdsm instances are cleared.

	Instead of checking the existence of respawn.pid and vdsmd.pid files, using
	pidofproc checks if the processes are actually run. The deletion of the
	respawn.pid file is redundant and leads to conflicts.

	Over systemd we don't require to use locking at all. Systemd takes care of
	that.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=994912

2013-08-13  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: setupNetworks add one or more vlans.
	Added a couple of functional tests:

	* testSetupNetworksAddVlan
	* testSetupNetworksAddManyVlans

	covering the behaviour of setupNetworks when adding
	one or more vlans.

2013-08-12  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix stale call to deactivateVolumes().
	Calling deactivateImage() is correct due to the one volume (no
	template limitation of Image._activateVolumeForImportExport().

	This calls were introduced by a conflict in changes:
	Ib208bb20d88633167b5c66b42febe912439a022d
	I4b6a4e99cf3a657affb4f5e96aa1ac1978a297da

2013-08-12  Assaf Muller  <amuller@redhat.com>

	Only remove dhcp source routing if the removal reason is "STOP"
	If the reason is FAIL then the IP configuration is not lost
	and source routing should not be removed. Only STOP actually
	removes the ip configuration from the device.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=995142

2013-08-11  Assaf Muller  <amuller@redhat.com>

	Management network is now kept in main routing table
	Only the management network should add its default route
	to the main routing table. Each NetDevice holds an IpConfig
	instance who now holds defaultRoute='yes', 'no' or None.
	Only the top level device will have a defaultRoute value.
	When writing ifcfg files we check if we got a defaultRoute
	value, if so we write it.

	Patch Set 7 changed the implementation so that only the top
	level device has DEFROUTE=yes/no in its ifcfg file.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=984028

2013-08-11  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	SecureXMLRPCServer: Work with Official M2Crypto Release
	VDSM uses the "settimeout" method of M2Crypto.SSL.Connection. This
	method is defined by a patch shipped in Fedora and RHEL m2crypto RPM.
	The "settimeout" patch is not available in official code, so other
	distro such as Ubuntu does not provide "settimeout".

	We can detect if the "Connection" class provides "settimeout" and work
	with both RPM and official release of M2Crypto. If it provides
	"settimeout", use it, otherwise falls back to use "settimeout" from the
	socket object.

2013-08-10  Giuseppe Vallarelli  <gvallare@redhat.com>

	lint: providing a default pylintrc
	We can use pylint to enable some further checks on the codebase.
	This can help up to have a cleaner codebase. The proposed pylintrc
	is adapted from the one used by the Python language to let us
	use java-like coding conventions for functions, methods and such.

2013-08-09  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: addNetwork bond with one or many vlans.
	Added a couple of functional tests:

	* testAddNetworkBondWithManyVlans
	* testAddNetworkVlanBond

	covering the behaviour related to addNetwork using bond
	and vlans.

	refactoring: rename variable in getVlanID function
	In the function getVlanID we're using id as a variable
	name, proposed refactoring changes this variable name,
	so we don't redefine the built-in function 'id'.

2013-08-08  Ohad Basan  <obasan@redhat.com>

	Fixing return value of function 'start' in init script
	During fixing lock mechanism (http://gerrit.ovirt.org/#/c/17662) we
	change to use locked_start function, this set to return "start ||
	release_lock && return 1". Without surrender the second part with brackets,
	this function returns always 1. This 1 returns as exit code and fail external
	operations as hostDeploy.

2013-08-07  Assaf Muller  <amuller@redhat.com>

	Source Route script now checks that the DHCP response is whole
	Previously we assumed that every DHCP response contains a
	gateway. Clearly that's wrong :(

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=994600

2013-08-07  Dan Kenigsberg  <danken@redhat.com>

	supervdsm: some log beautification
	- log return value, not only function call
	- keep try-block cleaner

	Patchset-1 Initial implementation.
	Patchset-2 Used @wraps decoration from functools.

2013-08-07  Yaniv Bronhaim  <ybronhei@redhat.com>

	Lock init script when vdsmd starts up until the service is stopped
	As described in:
	http://fedoraproject.org/wiki/Packaging:SysVInitScript#Why_do_SysV_initscripts_with_resident_daemons_require_lock_files.3F
	This patch adds lock mechanism between stop and start operations.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=984616

2013-08-07  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo getIfaceCfg cleanup, naked except removal
	getIfaceCfg was using shlex but not taking advantage that it
	can handle comments better than we were doing (inline comments
	and such). This patch makes heavier use of it as well as removes
	the naked exceptions that were catching BaseExceptions (which
	is usually evil).

	vdsm_reg: fix ovirt_node without default bridge
	This patch reflects the fact that nowadays ovirt-node usually
	doesn't have a br* interface by default, thus the standing
	assumption that it did lead to exceptions.

	Bug-Url: https://bugzilla.redhat.com/988990

2013-08-07  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Bump requires version of selinux-policy-targeted
	Current SElinux policy prevent the dhcp hook for source routing
	from running. It has been fixed in latest selinux policy, so we
	we need bump the requires version. More information, please see:
	https://bugzilla.redhat.com/show_bug.cgi?id=977856

2013-08-07  Yeela Kaplan  <ykaplan@redhat.com>

	vm: Fix broken hotunplugDisk
	hotunplugDisk was broken by commit:
	I4a19380c26ff4b6b697455e060dab4c651ff3f7c

	vm: Remove redundant if statements in hotUnplugDisk

2013-08-07  Assaf Muller  <amuller@redhat.com>

	VDSM now writes its version number in VDSM-generated ifcfg files
	Take 2!
	This is a fix so that the code is identical in master and ovirt-3.3
	branch.

2013-08-06  Yeela Kaplan  <ykaplan@redhat.com>

	clientIF: maintain list of vm's domains inside the vm object
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=990985

2013-08-06  Saggi Mizrahi  <smizrahi@redhat.com>

	infra: Rearrange PYTHONPATH for remoteFileHandler
	When running tests P_VDSM is set to $GIT_ROOT which makes "import vdsm"
	conflict. This makes sure we only take from the root dir in case there
	is no other alternative.

	infra: Add logging in case PoolHandler crashes
	This helps for debugging cases where the helper crashes because of bugs
	rather than an IO error

	We only do it if the process closes in a timely fashion as it might be
	in D state for a long time.

	schema: Fix schema error

2013-08-06  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: addNetwork with one or more vlans.
	Added a couple of functional tests:

	* testAddNetworkManyVlans
	* testAddNetworkVlan

	covering the behaviour related to addNetwork using vlans.

	tests: miscellanous tests with/without addNetwork.
	Added three functional tests:

	* testTwiceAdd
	* testDelWithoutAdd
	* testEditWithoutAdd

	covering the behaviour of addNetwork when bridge is already in use,
	editNetwork and delNetwork in case of missing network.

2013-08-06  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix break in FileVolumeGetVSizeTest
	The implementation of FileVolume.getVSize was improved in
	http://gerrit.ovirt.org/17510. The test case of it should be updated
	accordingly.

2013-08-05  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Fix regression introduced by refactoring libvirtvm
	Rebasing the changeset of refactoring libvirtvm.py and vm.py into vm.py [1]
	caused an accidental removal of changes made in commit 30a4b50 [2].

	This commit fixes the mess up of this rebase mess up.

	[1]: http://gerrit.ovirt.org/gitweb?p=vdsm.git;a=commit;h=ee082b8
	[2]: http://gerrit.ovirt.org/gitweb?p=vdsm.git;a=commit;h=30a4b50

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=985735

	vdsm: Always retrieve alias for Balloon and Console devices
	We haven't been retrieving the alias value for console devices which
	now starts to bite us due to the assumption that all VmDevice objects,
	have to have an alias attribute during the migration.

	Due to a bug in the handling for Balloon devices this also happened.

	This commit fixes the problem for the future by retrieving the aliases.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=988065

2013-08-05  Assaf Muller  <amuller@redhat.com>

	Crash fix for migrations that involve devices with no aliases
	The destination host updates the device XML cache for every
	device by scanning the VM's XML that was received from
	the source host, breaking it apart and placing each device's
	XML into its Device class instance. The identification
	of devices is done via the alias pulled from the VM conf. Some
	devices don't have aliases pulled from libvirt. In any case,
	migrations should succeed (instead of crashing VDSM) and
	devices with no aliases should be dealt with in a separate patch.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=988065

2013-08-05  Eduardo Warszawski  <ewarszaw@redhat.com>

	Make lvm.listPVNames() be based on vgs information.
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=955993

	Avoid Img and Vol produces in fileVolume.getV*Size
	No need for produce Images and Volumes for get the volume path
	when calculating the size.

	Related to BZ#960952, BZ#769502.

	Too many True sizes for a False Volume class.
	Since an (abstract) volume never will be instantiated alone, get
	the size of the typed object instead.

	Removes Volume.getVSize(), Volume.getVTrueSize() and
	Volume.getVolumeTrueSize().

	Reduce the number of SD produces.

	Related to BZ#960952, BZ#769502.

	Remove unused lvm._vgmknodes().

	Remove broken getDeviceInfo().
	This function is unused by the Engine.
	It was broken a long time ago, Jun 19 of 2012, without complains,
	by commit f4304e25.

2013-08-04  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: delNetwork with specified mtu.
	Added one functional test:

	* testDelNetworkWithMTU

	covering the behaviour related to delNetwork when
	when setting an mtu.

	refactoring: fix imports stmts, replaced glob with iglob for uniformity.

	QoS host networks: caps now reports QoS for networks.
	In the context of applying QoS to host networks it's important
	to report the current networks' QoS. Example follows below:

	 'awesome': {'addr': '',
	             'bridged': True,
	             'cfg': {'DELAY': '0',
	                     'DEVICE': 'franta',
	                     'NM_CONTROLLED': 'no',
	                     'ONBOOT': 'yes',
	                     'TYPE': 'Bridge'},
	             'gateway': '0.0.0.0',
	             'iface': 'awesome',
	             'ipv6addrs': ['fe80::210:18ff:fee1:6d2e/64'],
	             'ipv6gateway': '::',
	             'mtu': '1500',
	             'netmask': '',
	             'ports': ['p1p4'],
	             'qosInbound': {'average': '1024', 'burst': '2048', 'peak': ''},
	             'qosOutbound': {'average': '2400', 'burst': '', 'peak': ''},
	             'stp': 'off'}

	Same information is available when calling networks() function, after adding
	a network named pluto this is the expected result:

	{'ovirtmgmt': {'bridge': u'ovirtmgmt',
	               'bridged': True,
	               'qosInbound': '',
	               'qosOutbound': ''},
	 'pluto': {'bridge': u'pluto',
	           'bridged': True,
	           'qosInbound': {'average': u'1024', 'burst': '', 'peak': ''},
	           'qosOutbound': {'average': u'2400', 'burst': '', 'peak': ''}}}

	In case a QoS is not defined in for incoming/inbound or outgoing/outbond
	traffic an empty string is placed instead to mark as undefined.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=987586

2013-08-04  Yeela Kaplan  <ykaplan@redhat.com>

	multipath: Use reload option on multipath rescan
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=964768

2013-08-02  huntxu  <mhuntxu@gmail.com>

	jsonrpc: make TCPReactor IPv6 capable

2013-08-01  Dan Kenigsberg  <danken@redhat.com>

	spec: vdsm-hook-sriov on el6 should not require non-existing rpm
	As reported by a dead horse, el6 does not carry
	libvirt-daemon-driver-nodedev so the said hook should not require this
	subrpm. Since it the rpm hook is meaningful only when vdsm is installed,
	and el6's vdsm requires al libvirt, we need no special requirement
	there.

2013-08-01  Assaf Muller  <amuller@redhat.com>

	VDSM now writes its version number in VDSM-generated ifcfg files

2013-08-01  Martin Sivak  <msivak@redhat.com>

	Add support for direct setting of cpu_shares when creating a VM
	This adds new API field to the Vm structures. The new field
	'cpuShares' will override the old 'nice' when used.

2013-07-31  Eduardo Warszawski  <ewarszaw@redhat.com>

	One shot teardown.
	Unique or none lvm command issued instead of recursive image
	volumes produces.

	Changing volumes that are active in multiple hosts can lead to DC.

	Related to BZ#960952, BZ#769502.

2013-07-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	Changing libvirt configure print

2013-07-31  Sergey Gotliv  <sgotliv@redhat.com>

	Removing update of 'node.startup' setting in 'addIscsiPortal'
	I removed not working code in 'addIscsiPortal' method. It supposed
	to update 'node.startup' setting to 'manual', but used 'discoverydb'
	operational mode instead of 'node' what caused to exception.

	Bug-Url: https://bugzilla.redhat.com/851050

2013-07-31  Martin Sivak  <msivak@redhat.com>

	Mark ksmtuned as conflicting service in the init file
	MoM and ksmtuned fight over control of ksm when running at the
	same time. MoM is the prefered manager now so ksmtuned should
	be stopped during VDSM startup. VDSM can start ksmtuned again
	when needed (in case MoM is not available or fails).

	Resolves: rhbz#987926

2013-07-31  Yeela Kaplan  <ykaplan@redhat.com>

	clientIF: automatically unpause vms in EIO when SD becomes active

2013-07-31  Shahar Havivi  <shaharh@redhat.com>

	Support for multiple heads for Qxl display device
	Bug-Url: https://bugzilla.redhat.com/787578

2013-07-31  Doron Fediuck  <dfediuck@redhat.com>

	mom: Require latest mom
	Latest mom build uses strings for the balloon info,
	needed for proper ballooning integration.

	This patch will make vdsm depending on the latest mom
	supporting the strings api.

2013-07-30  Giuseppe Vallarelli  <gvallare@redhat.com>

	refactoring: Configurator base class making attributes explicit.
	Currently the base class contains references to internal attributes
	in some methods that are instantiated in the subclass Ifcfg.
	Proposed refactoring let the baseclass instantiate the configApplier
	and the _libvirtAdded set.

	Refactoring: changing nic_devices visilibity, now private.
	nic_devices is used in the as helper function of the
	public one nics(), having both as public might be
	misleading for the user of this module.

2013-07-30  huntxu  <mhuntxu@gmail.com>

	vdscli: update cannonize helper function for IPv6 environment
	The original approach considers any string contains a colon to have
	a port information which is not true in IPv6 environment.

	The new approach assumes the input string follows the format
	'host [ ":" port ]' in rfc3986 as it would be then used in a URI, gives
	a default port if the input doesn't supply one. This means IPv6
	addresses should be enclosed within square brackets ("[" and "]").

	How to test:
	* The following commands should all work correctly in a default setup
	  1) for IPv4 environment:
	    * vdsClient -s 127.0.0.1 getVdsCaps
	    * vdsClient -s 127.0.0.1:54321 getVdsCaps
	    * vdsClient -s localhost getVdsCaps
	    * vdsClient -s localhost:54321 getVdsCaps
	  2) for IPv6 environment:
	    * vdsClient -s [::1] getVdsCaps
	    * vdsClient -s [::1]:54321 getVdsCaps
	    * vdsClient -s localhost6 getVdsCaps
	    * vdsClient -s localhost6:54321 getVdsCaps
	    * vdsClient -s ['IPv6 link-local addr'%ovirtmgmt] getVdsCaps
	    * vdsClient -s ['IPv6 link-local addr'%ovirtmgmt]:54321 getVdsCaps

2013-07-30  Yeela Kaplan  <ykaplan@redhat.com>

	multipath: Reload multipathd instead of restart on setup
	Multipathd is required by vdsmd.
	We should not take care of starting it, but only reloading
	new configuration.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=988995

2013-07-30  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Do not fail releasing a VM due to agent stopping errors
	If the guest agent socket couldn't get created for whatever reason
	VDSM will no longer be able to stop release the VM without killing
	it manually and restarting the VDSM service.
	This patch is fixing this problem and also logs the occurrences.

	Bug-Url: https://bugzilla.redhat.com/985770

2013-07-30  Ohad Basan  <obasan@redhat.com>

	fileSD: remove reference to the removed safeUnlink
	the method safeUnlink was replaced by rmFile
	changed the file to use the new method

2013-07-30  Assaf Muller  <amuller@redhat.com>

	Improved ip rule and route robustness + improved logging
	* SuperVDSM should no longer crash when failing to parse routing
	  rules.
	* Improved logging - Routes / rules that cannot be parsed are
	  logged.
	* (Improved logging)^2 - Failing to configure or remove source
	  routing no longer displays a scary stack trace, just the error
	  message.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=987335

2013-07-26  Martin Sivak  <msivak@redhat.com>

	Use strings when reporting VM's memory stats
	This patch changes the API to use strings when reporting memory and
	balloon stats for a VM. This fixes an issue with xml-rpc that
	can only transfer 32 bit signed numbers.

	The maximum memory value when using KiB is about 2TB and we
	already hit that.

	Resolves: rhbz#974917

2013-07-26  Dan Kenigsberg  <danken@redhat.com>

	follow modern naming of wifi devices
	Fedora has forsaken wlan* names, but sampling wifi device still spams
	the logs with

	  File "/usr/lib64/python2.7/site-packages/vdsm/netinfo.py", line 235, in speed
	    s = int(file('/sys/class/net/%s/speed' % dev).read())
	IOError: [Errno 22] Invalid argument

2013-07-26  Mark Wu  <wudxw@linux.vnet.ibm.com>

	spec: fix that vdsmd.service is not enabled after installation
	For fedora18+, we use the helper macro to replace the manual systemd
	scriptlets. But for post installation, %systemd_post is expanded as
	below:
		/usr/bin/systemctl preset vdsmd.service >/dev/null 2>&1 || :
	So vdsm service will be disabled after installation because the default
	systemd preset setting disable all services which are not explictly
	enabled in the configuration files.

	We can ship a preset configuration file to enable vdsmd service, but
	reverting to manual systemd scriptlets is simpler and doesn't lose any
	benefit.

2013-07-25  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Make guest agent FQDN information available
	The FQDN value is the fully qualified domain name of the guest OS.
	This might be on not properly configured systems only 'localhost.localdomain',
	however for properly configured systems this is a very useful information.

2013-07-25  Arik Hadas  <ahadas@redhat.com>

	do not rely on default values on restoreFlags invocation
	The signature of libvirt's verb 'restoreFlags' changed - in previous
	versions it didn't set default values for its optional arguments. this
	patch changes how we invoke this verb to set the 'flags' argument to 0
	explicitly in order to be backward compatible with libvirt versions that
	don't set default values for 'restoreFlags' arguments.

	Bug-Url: https://bugzilla.redhat.com/988229

2013-07-25  Petr Sebek  <psebek@redhat.com>

	Deleted ovirt check from vdsm-restore-net-config
	Check if the machine is ovirt node prevented from proper network
	restoration. Deleted condition is no longer needed.

	Bug-Url: https://bugzilla.redhat.com/979081

2013-07-25  Yeela Kaplan  <ykaplan@redhat.com>

	image: shrink the new volume When merging block cow volumes
	On merge, size of the new volume is currently the sum of virtual
	sizes of the original volumes that were merged. With qcow
	volumes on block devices we don't use the whole size of the new volume,
	so we want to allocate only the actual size needed by the new volume
	with some additions to match the vdsm conventions.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=887909

2013-07-25  Lee Yarwood  <lyarwood@redhat.com>

	dumpStorageTable: Avoid an unnecessary traceback if vdsmd is down.
	When vdsmd is down the first getConnectedStoragePoolsList call
	results in a 'Connection Refused' trace being shown. To avoid
	this trace being picked up by abrt and thus worrying users we
	should test the connection, catching any errors before continuing.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=987833

2013-07-25  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netconf: Skip source routing cfg files when restoring devices
	_sortModifiedIfcfgs() uses the cfg files under '/etc/sysconfig/network-scripts'
	to get the devices which should be stopped and started during rollback. But the
	backed up files could also include source routing cfg files after the source routing
	feature was added. So this patch skips those files when it gets the devices list.

2013-07-23  Antoni S. Puimedon  <asegurap@redhat.com>

	fix setupNets 'remove' of non-existent net
	setupNetworks was assuming that if a net was not in vdsm nets nor in
	libvirt nets it was a net that we were trying to add when, in fact,
	it could very well be a non-existent network that was incorrectly
	marked for removal.

	The fix checks the case specified above and raises the same
	configNetworkError that delNetwork does on similar circumstances.

	Bug-url: https://bugzilla.redhat.com/977843

2013-07-23  Federico Simoncelli  <fsimonce@redhat.com>

	build: use pythondir for vdsmapi

2013-07-23  Giuseppe Vallarelli  <gvallare@redhat.com>

	bugfix: regression network qos
	Inbound and Outbound parameters are no longer dispatched
	through the configurator when adding a network, this means
	that configured network will not present the desired
	QoS. See previously merged implementation
	http://gerrit.ovirt.org/#/c/15724/17/vdsm/configNetwork.py

	* Patchset 1 - Improving a previously defined functional test
	               and verified that the current implementation make
	               the updated test fail.

	* Patchset 2 - Adding missing qos parameters to configureLibvirtNetwork
	               verified the code behaviour.

2013-07-23  Assaf Muller  <amuller@redhat.com>

	Improve logging for misformed ip routes and rules

2013-07-23  Federico Simoncelli  <fsimonce@redhat.com>

	build: do not distribute precompiled cpopen.so

	build: use pythondir for yajsonrpc

2013-07-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Catching remoteError while communicate with supervdsm
	When remoteError is raised due to broken communication with supervdsm,
	try to reconnect to supervdsm socket and raise runtime exception.
	If fails to reconnect, vdsm calls panic and restarts itself.

	Initialize supervdsm log before importing other modules
	1. When importing configNetwork, it imports libvirtconnection that
	initializes it own logger. The setconfig should occurred before the import.
	2. Adding log print before each call to supervdsm.

2013-07-22  Martin Sivak  <msivak@redhat.com>

	Fix missing symbol errors in the MoM policy for ballooning

2013-07-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding libvirtd dependency when supervdsm starts up with systemd
	libvirt service needs to be up and serving before supervdsm starts up.

2013-07-22  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Add folders required by sourceRoute to vdsm-tmpfiles.d.conf
	sourceRouteThread needs '/var/run/vdsm/sourceRoutes' , so let systemd's
	tmpfiles service create it after reboot. Without this patch,  sourceRouteThread
	will fail and therefore supervdsmd will fail to start too.

	trackedInterfaces is also required by sourceRoute, so add it together.

	change v1>v2: add trackedInterfaces

2013-07-21  Eduardo Warszawski  <ewarszaw@redhat.com>

	Symmetrize *StorageDomain.*activateVolumes().
	Related to BZ#960952, BZ#769502.

2013-07-21  Assaf Muller  <amuller@redhat.com>

	Fixed functional test SetupNetworksAddBondWithManyVlans

	Source routes files now deleted on non-VDSM interfaces
	Files in /var/run/vdsm/sourceRoutes are created by a VDSM DHCP
	hook for all interfaces that release or get a DHCP configuration.
	sourceRouteThread.py configures source routing on those interfaces.
	However, first it checks that the interface in question is known
	to VDSM. Previously the files weren't deleted in such a case.

2013-07-21  Dan Kenigsberg  <danken@redhat.com>

	functional network tests: revert config on failure
	With systemd, `systemctl vdsm-restore-net-config start` does nothing, as
	that service is marked as already-started since boot time. Using
	`restart` instead makes the tests revert config remnants upon test
	failure.

2013-07-19  Martin Sivak  <msivak@redhat.com>

	Use the current balloon size from libvirt info
	This patch changes our current data source for balloon information
	from internal vdsm balloon target to the real live data provided
	by libvirt.

	The old target value is now reported as balloon_target.

2013-07-18  Doron Fediuck  <dfediuck@redhat.com>

	mom: require latest mom version
	Latest mom will support balloon_min needed for minimum guaranteed
	memory. This patch makes vdsm dependant of the relevant version.

2013-07-18  Dan Kenigsberg  <danken@redhat.com>

	Bugfix: xml network definition.
	In case of a bridgeless network, interface xml element should be
	contained within the forward element, it should not be a direct
	child of the network element like in the case of a bridged network.

2013-07-18  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove '/run/vdsm' from vdsm-tmpfiles.d.conf
	'/var/run' is symlink of '/run', so the dir '/run/vdsm' also be
	created when the tempfiles service create '/var/run/vdsm'. And
	we don't use '/run/vdsm' directly, so we don't need care about it.

2013-07-18  Humble Chirammal  <hchiramm@redhat.com>

	dumpStorageTable: Fix typos in serverConnection string
	Current version of dumpStorageTable has typo on 'serverConnection'
	string. This corrects it.

2013-07-17  MeiLiu  <liumbj@linux.vnet.ibm.com>

	Fix required mom version
	mom-0.3.2 contains changes to the policy language, balloon guest
	collector and reset mom policy API. Without changes on balloon
	collector, balloon will not work. The new version also provides
	reset mom policy API for vdsm related interface to support multi-policy.
	These are what we need in vdsm, and thus the version is updated.

2013-07-17  Humble Chirammal  <hchiramm@redhat.com>

	sos: Patch to add sanlock.log in sos.
	Currently the sanlock.log is missing from vdsm plugin of sos.
	This adds missing sanlock log to troubleshoot sanlock issues.

	Bug-Url:https://bugzilla.redhat.com/attachment.cgi?id=774659

2013-07-17  Federico Simoncelli  <fsimonce@redhat.com>

	vm: catch getVolumeSize failures in _normalizeVdsmImg
	When getVolumeSize fails during the VM startup (e.g. volume is missing
	or corrupted) a descriptive error should be returned (instead of the
	previous KeyError: 'truesize'). An example of this behavior can be found
	in BZ#883858.

2013-07-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsmd.init.in: fix some style problems
	Add quotes to variable references. Use configurable variable instead of
	hard coded utility path. Uniform the block statement style.

2013-07-17  Giuseppe Vallarelli  <gvallare@redhat.com>

	Hidden bonds[2/2]: Refactored and updated nics implementation.
	nics implementation now allows to hide bonds marked as hidden
	in the config file.

2013-07-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: adding {?with_tmpfiles_macro}
	The macro %{_tmpfilesdir} was introduced by Fedora 18.
	This patch will add a Fedora validation before using it.

2013-07-16  Federico Simoncelli  <fsimonce@redhat.com>

	image: add support to upload/download images
	This patch adds the support for uploading and downloading images using
	different methods. Added API:

	 uploadImage(methodArgs, spUUID, sdUUID, imgUUID, volUUID=None)

	 downloadImage(methodArgs, spUUID, sdUUID, imgUUID, volUUID=None)

	Argument methodArgs elects the method used for uploading or downloading
	the image and provides the required additional information needed to
	reach the receiving/sending endpoint.
	Arguments spUUID, sdUUID, imgUUID identify an image and the optional
	volUUID option could identify a specific volume in the chain (the leaf
	is used by default).

	This patch also adds the implementation of the 'http' method used to
	download/upload images from/to web servers or any other http service
	(e.g. openstack glance).

	 info = {
	   'method': 'http',
	   'url': 'http://source-or-destination/path/to/image',
	   'headers': {'X-My-Header', 'MyHeaderValue'},
	 }

2013-07-16  David Gibson  <david@gibson.dropbear.id.au>

	guestIF: Rework XML character filtering
	Data from the guest agent is essentially untrusted, and may contain
	characters which cannot be included in XML such as vdsm's XML-RPC
	responses.

	Commits b5db7c60b61ef6143d3be27c58658ac94c858626 (guestIF: Additional
	object strings filtering) and aef1a7d288d0e5f82ebc4fea3e5f0155e9a7f541
	(agent: XML Character filtering improvement) are attempts to correct this
	filtering, but they are conceptually incorrect and can both fail to
	filter characters which need to be filtered, and filter characters which
	do not need to be filtered.

	aef1a7d288d0e5f82ebc4fea3e5f0155e9a7f541 added code to run the XML
	filtering before UTF8 decoding the message from the guest.  This is
	incorrect, since the characters permitted in XML files are defined
	in terms of Unicode code points, not individual byte values.  This means
	that we currently filter out perfectly valid characters such as \u2122
	(trademark symbol) because its UTF8 encoding (\xe2\x84\xa2) contains a byte
	(0x84) with the same value as the ordinal of one of the XML restricted
	characters.  Worse, filtering that byte gives a bytestring which is
	no longer valid UTF8, and so will lead to a UnicodeError exception on
	decode.

	Since that filtering also takes place before UTF8 and JSON decoding, those
	steps may still result in the construction of invalid XML characters.

	b5db7c60b61ef6143d3be27c58658ac94c858626 partially corrects this by
	(re-)adding XML filtering after the UTF8 and JSON decode as well.  This
	is conceptually correct, but the filter is not thorough enough.  Currently
	the code only filters out characters in set XML defines as
	"RestrictedChar".  In XML valid characters are those in the set "Char"
	which are not in "RestrictedChar", and the filtering currently leaves in
	characters which are neither in "Char" nor "RestrictedChar" - this includes
	the surrogate pair code points, \ufffe and \uffff.  \uffff at least will
	cause the XML parser in ovirt to choke.

	This patch addresses all the above problems.  Additionally it now replaces
	bad characters with the official Unicode replacement character '\ufffd',
	instead of '?'.  It also adds the 'replace' error handling on the UTF8
	decode, so that invalidly encoded UTF8 strings from the guest will not
	cause an exception in VDSM.

2013-07-16  Martin Sivak  <msivak@redhat.com>

	Enable balloon and use the MoM multiple policies feature
	This moves mom policy configuration to /etc/vdsm/mom.d and
	splits the policy files to:

	00-python.policy
	01-parameters.policy
	02-balloon.policy
	03-ksm.policy

	It also uses the 01 file as the destination for updates
	received using the setMOMPolicyParameters API call.

	Add setMOMPolicyParameters
	This adds setMOMPolicyParameters to the API and a configuration
	option mom/tuning_policy to the configuration file.

	It is intended to be used for fine tuning a MoM policy.

2013-07-16  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	destroyStoragePool: release host id lease correctly
	In hsm.py destroyStoragePool, it calls pool.domainMonitor.close() before
	pool.detachAllDomains(). domainMonitor.close() assumes SPM is stopped
	and releases the host id lease for all domains, however this is not true,
	because the master storage domain is not detached and the cluster lock
	is still ative. This causes domainMonitor fail to release host id lease
	of the master domain but the monitor thread is stopped. In log file we
	can see this exception traceback. When we call formatStorageDomain,
	sanlock is still active on the id lease file so the domain can not be
	cleaned, and it raises an exception
	"MiscDirCleanupFailure: Directory cleanup failure" for fileSD,
	"VolumeGroupRemoveError: Volume Group remove error" for blockSD.

	Since pool.detachAllDomains() detaches master storage domain and
	releases cluster lock, pool.domainMonitor.close() should be called after
	pool.detachAllDomains(). Actually self._disconnectPool() indirectly
	calls pool.domainMonitor.close() at last, so there is no need to call it
	directly in destroyStoragePool().

	This patch deletes the line calling pool.domainMonitor.close() in
	destroyStoragePool(), so that the cluster lock and host id lease of
	master storage domain are released in the correct order, and
	formatStorageDomain would succeed in cleaning the domain.

2013-07-16  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove mac address from host interface statistics
	It's unnecessary to report mac address in host interface statistics
	since it's unchanged. And it's not used by engine side. So it's safe
	to remove it.

2013-07-16  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm: /usr/lib/tmpfiles.d/vdsm.conf
	tmpfiles.d is a service in Fedora 15 and later for managing temporary files and
	runtime directories for daemons. Directories /var/run and /var/lock are symlinks
	into the /run tmpfs filesystem. As such, they are created empty on every reboot.
	For files intended to be placed into those directories, this should normally
	not pose any problems. For directories, however, we often need to create the
	directories ahead of time. This is best done using the tmpfiles.d mechanism.

	vdsm.spec: glusterfs 3.4
	Glusterfs 3.4 package now available at Koji, updating the spec.

2013-07-15  Federico Simoncelli  <fsimonce@redhat.com>

	vm: add the live diskSizeExtend method
	This patch adds the diskSizeExtend HSM method to implement the live disk
	extension.

	 returnCode = diskSizeExtend(vmUUID, driveSpecs, newSize)

	 driveSpecs =  {
	   'poolID':   '<spUUID>',
	   'domainID': '<sdUUID>',
	   'imageID':  '<imgUUID>',
	   'volumeID': '<volUUID>',
	 }

	 returnCode = {
	   'status': {'code': 0, 'message': 'Done'},
	   'size': '<newSize>',
	 }

	The driveSpecs (usually poolID, domainID, imageID, volumeID) indentify
	the disk to extend. The driveSpecs as GUID is not supported.
	The returnCode also returns the newSize of the disk seen by the guest
	(might be different from the requested one, e.g. rounded by QEMU).

	The returnCode might also return the following specific errors:

	- noVM(1): Virtual machine does not exist
	- resizeErr(58): Wrong resize disk parameter
	- updateDevice(56): Failed to update device

	deploy: add rpcbind to the needed services
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=977940

	init: restart sanlock groups are missing
	If sanlock was started before the *first* installation of vdsm
	then it is probably missing the supplementary groups and it needs
	to be restarted.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=977926

	volume: add the extendVolumeSize method
	This patch adds the extendVolumeSize SPM method to implement the volume
	size extension (disk resize).

	 extendVolumeSize(spUUID, sdUUID, imgUUID, volUUID, newSize)

	The argument spUUID, sdUUID, imgUUID, volUUID indentify the volume to
	extend, newSize is the new size of the volume in bytes.

2013-07-15  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	trival change for skip mom test logic
	    using wrapper of runtime vdsm caps to judge mom module existence
	instead of trying to load, make it usable for other testcases outside
	this module.

2013-07-15  Mark Wu  <wudxw@linux.vnet.ibm.com>

	spec: restart systemd-modules-load.service on post installation
	It's observed that the needed modules are not loaded after vdsm is
	installed without rebooting system. That's because we reply on
	systemd-modules-load.service to load the modules required by vdsm,
	but systemd-modules-load.service can't detect the new config
	file added by vdsm. It should not be a problem if the vdsm host
	is added to ovirt engine. So this change only make it more friendly
	for people who run vdsm in standalone mode.

2013-07-15  Assaf Muller  <amuller@redhat.com>

	Multiple Gateways[6/2]: Swapped libvirt network & netEnt creation
	During source routing configuraton for DHCP interfaces we wanted
	to know if we're dealing with an interface that's 'owned' by
	VDSM. Because of that we swapped the order in which we ifup
	or ifdown an interface and create its libvirt network,
	so that first we create the libvirt network and then the
	top level device, that way when we ifupifdown and get a DHCP
	response we can check if the interface is known to libvirt.
	That introduced a bug when deleting a network that was on top
	of a bridgeless-bond. Additionally, because of patches 3+4
	in the Multiple Gateways series the original swap created a
	race condition.

	This patch reverses the libvirt network creation / deletion
	and net entitiy creation / deletion to the original order,
	and uses an alternative / additional method to check if an
	interface is owned by VDSM.

	Patch Set 3:
	* Added /var/run/vdsm/trackedInterfaces to spec/make files

	Patch Set 4:
	* Added comment so that future generations know why we must
	  first remove the libvirt network and then the network entity
	  during delNetwork
	* Moved interface tracking files add/delete to
	  DynamicSourceRoute. Moved libvirt/vdsm interface checks
	  from static to dynamic as well
	* Added a helper method to get a tracking file path, using
	  os.path.join

	Patch Set 5:
	* Fixed pep8 issue

	Patch Set 6:
	* Removed debugging log output

	Patch Set 7:
	* Use util.rmFile to remove tracking files
	* Open and then close files instead of using the touch binary
	  for creating tracking files

2013-07-15  Yeela Kaplan  <ykaplan@redhat.com>

	lvm: Enhance lvm performance by altering filter
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=981055

2013-07-15  Assaf Muller  <amuller@redhat.com>

	Multiple Gateways[5/2]: sourceRoute handles exceptions
	sourceRoute.configure and remove now handle IPRoute2Error
	exceptions that can be thrown if using DynamicSourceRoute
	and the Iproute2 configurator. The Iproute2 configurator
	calls 'ip rule add/remove, ip route add/remove' that can
	throw exceptions if the configuration fails.

	For example:
	  1) If we try to add routes if the interface is down
	     (Which might happen during host bootup)
	  2) If we try to configure routes that already exist
	  3) If we try to remove rules that don't exist

	Patch Sets 2-4:
	* Rebases

	Patch Set 5:
	* Moved exception handling to sourceRoute.py

	Patch Set 6:
	* Removed unused imports

	Patch Set 7:
	* Updated commit message

2013-07-15  Yeela Kaplan  <ykaplan@redhat.com>

	fileSD: fix set update for getAllImages
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=982617

2013-07-13  Assaf Muller  <amuller@redhat.com>

	Multiple Gateways[4/2]: Fixed ifdown bug for DHCP interfaces
	If the admin manually ifdown'd an interface of ours following
	patch 3 in the series, we failed to remove the routes and rules
	we created during ifup. The reason is that since patch 3 we
	are working with files. The dhclient hook created a file during
	ifdown and finished the ifdown operation before VDSM got the
	notification that the file was created. By the time VDSM got
	the notification the interface was already down and thus could
	not find any information about the interface.

	This patch fixes that bug by adding the device to the rule
	while adding the rule, so that we may use the device name
	to look up all rules created for that device.

	Patch Set 2:
	* Renamed Rule.inDevice to Rule.srcDevice
	* Removed sourceRoute.py:_getNetwork

	Multiple Gateways[3/2]: Re-did comms between dhclient and vdsm
	SElinux disallows dhclient to change routing table information directly,
	and so we needed a different way for dhclient to communicate with vdsm.
	We did it via files and inotify.
	dhclient writes to /var/run/vdsm/sourceRoutes with all of the info
	of the DHCP response. supervdsm checks that folder upon startup
	(in case dhclient operated while supervdsm was down) and registers
	an inotify event handler on that folder on a separate thread.

	Patch Set 3:
	* Re-added libvirt check when configuring a network
	* Added sourceRouteThread.py, /var/run/vdsm/sourceRoutes dir to
	  spec and make files
	* Capitalized DHClientEventHandler, removed os.path.join usage
	* Files created in /var/run/vdsm/sourceRoutes are now named $timeStamp
	  and we now read the folder in alphabetical order during vdsm start up
	  so that we handle dhcp responses by their received order

	Patch Set 4:
	* Removed argparse from spec file
	* Changed from file created to file closed to fix possible race
	* Answered Giuseppe's and Dan's reviews

	Patch Set 5:
	* Fixed pep8 issue
	* Fixed bug with signature of the event handler. It needed two
	  versions: One I call manually, and one inotify calls

2013-07-13  Aravinda VK  <avishwan@redhat.com>

	gluster: verbs for managing services
	Verbs to manage or get status of gluster/system services.

	glusterServicesGet: To get the status of given system services
	Output structure:
	{'services': [{'name': SERVICE_NAME,
	               'status': STATUS,
	               'message': MESSAGE},..]}

	glusterServicesAction: To start/stop/restart system services like
	glusterd, memcached, gluster-swift-account, smb, gluster-swift-container..
	Output structure:
	{'services': [{'name': SERVICE_NAME,
	               'status': STATUS,
	               'message': MESSAGE},..]}

2013-07-13  Mark Wu  <wudxw@linux.vnet.ibm.com>

	vdsm-tool: remove 'vdsm/tool/*.pyc' files on uninstallation
	It's found that 'vdsm/tool/*.pyc' files are not removed on uninstallation.
	It could cause a break after installing a different version vdsm. That's
	because vdsm-tool tries to load all python modules under vdsm.tool. If the
	requirements of these old modules can't be sytisfied by the new installed
	packages, vdsm-tool will abort.

	This problem is caused by a wrong target type for python files in
	lib/vdsm/tool. They're not compiled during 'make install' and therefore
	complied python files are not tracked by rpm.

	This patch also fixes a wrong target name in CLEANFILES.

2013-07-11  Assaf Muller  <amuller@redhat.com>

	Add bootproto during delNetwork
	bootproto isn't sent from the engine for the delNetwork command.
	However, the multiple gateways feature code needs to behave
	differently during delNetwork as a function of the bootproto.

	This patch gets the bootproto from the cfg file. When we
	add other configurators we'll have to deal with this.

	Patch Set 2:
	* Moved getBootProto from configNetwork to netinfo

2013-07-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	Extend vdsm-tool: moving configure libvirt to external shell script
	Using vdsm-tool to configure libvirt

	Rewrite isOvirt function

2013-07-10  Antoni S. Puimedon  <asegurap@redhat.com>

	net_functional_tests: bondWithManyVlans.
	This patch adds a tests for adding several vlanned networks over
	a bond.

	netinfo updating infra for functional tests
	This patch adds a way to implicitly have current network information
	in the functional tests when performing operations that alter the
	networking state.

2013-07-10  Mooli Tayer  <mtayer@redhat.com>

	Decoupling libvirtconnection.py from clientIF.py
	1.) Decoupling libvirtconnection.py from clientIF.py
	adding libvirt cb handlers for vm events belongs in vm.py
	2.) bugfix: not all libviryconnecition.get() invocations
	from vdsm are wrapped with error handling code
	(with an important implication in the bug description:
	 causes vdsm to shutdown on libvirt connection error)

	These two come in the same patch because removing
	the cif dependency (clientIF instance) from libvirtconnection
	must handle errors in a new way - sendind SIGTERM to the current
	process which solves the bug.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=958367

2013-07-10  Giuseppe Vallarelli  <gvallare@redhat.com>

	Bugfix update device hooks: after_update_device failure.
	In case of failure during before update device, after_update_device
	should use the backup object, having vnicXML not in a valid state.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=893576#c11

2013-07-10  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Cleanup the usages of configWriter in configNetwork
	We should keep the interaction with configWriter inside configurator.
	So this patch changes to construct new configWriter instantance in
	ifcfg's __init__() and use configurator to implement the transaction
	management of configuration.

2013-07-10  Arik Hadas  <ahadas@redhat.com>

	RAM snapshots feature
	This patch adds the ability to take live snapshot of a VM that includes
	its memory state, and to restore memory state that is saved as part of a
	snapshot when reverting back to it.

	There is a detailed description of the design at the feature page:
	http://wiki.ovirt.org/Features/RAM_Snapshots

2013-07-10  Ofri Masad  <omasad@redhat.com>

	API: Add free memory to stats
	currently, only memAvailable is exposed by API. But this api is a
	calculated value and so it may return negative value in case ksm
	is up and pages are shred among VMs.

	The new "memFree" returns the true free memory on the host.
	i.e. 'MemFree' + 'Cached' + 'Buffers' (from meminfo)

	Bug-Url: https://bugzilla.redhat.com/977758

2013-07-10  Assaf Muller  <amuller@redhat.com>

	before/after_update_device hook now receives custom properties
	Patch Set 2:
	Patch set 1 took the custom properties from the device. But
	that means that the custom properties past in the command
	are ignored. Patch set 2 fixes this: The custom properties
	are now always taken from the verb's arguments, and the
	device's custom properties are updated.

	Patch Set 3:
	Moved the update to the in-memory cache of the device's
	custom properties to a more sensible location.

2013-07-10  Dan Kenigsberg  <danken@redhat.com>

	spec: finer-grained libvirt requirement

2013-07-09  Martin Sivak  <msivak@redhat.com>

	Add balloon_min to VM.getVmBalloonInfo
	The balloon_min key will take its value from memGuaranteedSize
	attribute. It's default value will be 0, but can be overriden by
	whoever is creating the VM instance or setting the attributes.

	This functionality is needed for basic memory QoS.

2013-07-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	vdsm-tool usage: Adding path variable to init script

2013-07-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.init: do not use previous libvirt logrotate
	In the past VDSM have been creating /var/log/libvirtd.log to track libvirt
	calls and also add rule for such file into /etc/logrotate.d/libvirtd.
	However, now VDSM uses /var/log/libvirt/libvirtd.log (commit fe01963f)
	and should replace any previous conf on /etc/logrotate.d/libvirtd
	with VDSM suggestions.

2013-07-09  Giuseppe Vallarelli  <gvallare@redhat.com>

	Qos feature: Adds bandwidth definition at configuration level.
	Network definition when configuring libvirt network is enriched with
	the optional bandwidth parameters for traffic shaping. Patch includes
	a refactoring of the xml generation and some tests.

2013-07-08  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netconf: Add a base configurator class
	This patch add a base configurator class to make the code not related
	to specific configurator implementation shared by configurator ifcfg
	and iproute2.

	It renames ifcfg's member configWriter to configApplier, a more generic
	name and also applicable to iproute2.

2013-07-08  Antoni S. Puimedon  <asegurap@redhat.com>

	Simplify configWriter to use netmodels
	configwriter add methods were using tons of parameters. It would be
	simpler if they were to use netmodels info.

	Patch Set 2: clean up the netmodels configurator interaction.

	Patch Set 4: Changed bond and bridge properties to use isinstance.

2013-07-08  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm-tool: speedup loading seboolsetup.py
	On RHEL6 "import seobject" takes a very long time. This patch moves the
	seobject import statement in seboolsetup.py from module top level to
	function level. This small modification reduces the total startup time
	of VDSM, since VDSM moves most of the management utilities into
	vdsm-tool.

2013-07-08  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix pep8 issue with net functional tests cleanup
	The previous patch lacked a blank line and due to jenkins
	giving false positives I missed the problem.

2013-07-08  Dan Kenigsberg  <danken@redhat.com>

	/me is tired of pep8 flavors

2013-07-08  Mike Kolesnik  <mkolesni@redhat.com>

	hooks: Fix openstacknet hook
	The hook should be built with default VDSM build since we want to supply
	it to users.

	Additionally, the consts file should be packaged with it's "binaries" in
	the RPM.

2013-07-08  Antoni S. Puimedon  <asegurap@redhat.com>

	Cleanup networking functional tests dummy conf
	Due to the fact that the dummies used for the functional tests are
	treated just like nics, ifcfg files for them remain after the
	functional tests are completed. This patch adds a module teardown
	action that restores the networking configuration file status
	previous to running the tests.

	Patch Set 2:
	- Moved the teardown to module level for symmetry.

2013-07-07  Mike Kolesnik  <mkolesni@redhat.com>

	hooks: README for OpenStack Network vNIC hook
	Added a readme file outlining the general behaviour of the hook.

	hooks: Support OpenStack Network in hot plug NIC
	Adding hook support for hot plugging a vNIC to the VM.
	The hook should behave exactly as the before_device_create hook, so
	reusing the same hook code for hot plugging.

	hooks: Support OVS in OpenStack Network vNIC hook
	The hook will now support connecting a vNIC both to a standard linux
	bridge, and an OVS bridge.

	The hook should work in tandem with the corresponding OpenStack Network
	plugin: Linux Bridge or OVS plugin.

	hooks: Add OpenStack Network vNIC hook
	This hook is used to enable OS-network agent to connect a vNIC as it
	wants, instead of trying to connect to the bridge that is sent by engine
	(which doesn't exist, as the vNIC should be managed by the agent).

	Upon migration, the updated XML is being sent, so no further hook
	besides this one is required.

2013-07-07  Martin Sivak  <msivak@redhat.com>

	Clean the imports a bit

2013-07-07  Mooli Tayer  <mtayer@redhat.com>

	Adding intellij project files to .gitignore
	Patch Set 2:
	Re-ordered new files to keep .gitignore sorted

2013-07-06  huntxu  <mhuntxu@gmail.com>

	BindingJsonRpc: correctly stop reactors
	vdsm raises an exception saying "AttributeError: 'str' object has no
	attribute 'stop'". This commit fixes this problem.

2013-07-05  huntxu  <mhuntxu@gmail.com>

	tests: Use uppercase label for floppy in mkimageTests
	Commit 10c1c41fd8e in dosfstools: "Write uppercase letters in label."
	That commit has been in dosfstools since version 3.0.16, and Fedora 19
	uses version 3.0.20.

	For quick reference(copied from dosfstools commit message):
	  * https://bugzilla.novell.com/show_bug.cgi?id=657011#c4
	  * http://support.microsoft.com/kb/71715/en-us

2013-07-05  Peter V. Saveliev  <peet@redhat.com>

	vdsm: fix config comment for migration_timeout
	The migration_timeout variable means not overall migration timeout,
	but the timeout since migration is stalled. Each time when migration
	does some progress, this timeout counter is reset. Thus, overall
	migration time can be longer than migration_timeout, and this is
	by design.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=970645

2013-07-05  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm-tool: service management work with previous systemd release
	The service management assumes systemctl automatically adds ".service"
	suffix to the service name. This is true for the latest SystemD, but
	before systemd-44-20.fc17 [1], this feature is not available.

	This patch adds ".service" suffix before sending the service name to
	systemctl, so it does not depend on the auto-suffixing feature any more.

	[1] https://lists.fedoraproject.org/pipermail/package-announce/2012-October/090358.html

	Reported-by: Deepak C Shetty <deepakcs@linux.vnet.ibm.com>

2013-07-04  Greg Padgett  <gpadgett@redhat.com>

	vm payload: custom volume labels
	Change required for cloud-init integration: support custom volume labels
	for vm payload.

	Bug-Url: https://bugzilla.redhat.com/619761

	vm payload: creation of full pathnames in payload
	Change required for cloud-init integration: support the creation of
	payloads with files residing in subdirectories of the payload image.

	Bug-Url: https://bugzilla.redhat.com/619761

2013-07-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove unused hsm._hsmSchedule()
	Related to: BZ#960952.

2013-07-04  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	PEP8: fix variours errors
	pep8 1.4.6 gives the following error
	tests/hooksTests.py:140:23: E127 continuation line over-indented for
	visual indent
	tests/hooksTests.py:141:18: E124 closing bracket does not match visual
	indentation

	And pep8 1.4.5 on RHEL6 gives the following error
	vdsm/guestIF.py:30:5: E122 continuation line missing indentation or
	outdented

	This patch fixes the errors while makes pep8 1.4.5 and 1.4.6 both agree
	with the fix.

2013-07-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding to make a print of pep8 and pyflakes versions

2013-07-03  Martin Sivak  <msivak@redhat.com>

	Fix the charset conversion logic in hooks.py
	The proper way to convert text from byte oriented string to unicode
	is to call str.decode(encoding). This patch fixes this and makes
	Jenkins tests work for people with diacritics in their names.

	The issue was caused by my name (with czech accents) being present
	in an environment variable which was processed in hooks.py
	using the following code:

	scriptenv = os.environ.copy()
	for k, v in scriptenv.iteritems():
	    scriptenv[k] = unicode(v).encode('utf-8')

	This unicode call expects the data to be in ascii, but my name was
	encoded as utf-8 in this case.

2013-07-03  Eduardo Warszawski  <ewarszaw@redhat.com>

	Improve StoragePool.detachAllDomains() monitoring.

2013-07-03  Assaf Muller  <amuller@redhat.com>

	Fixed rollback of port-mirroring enabled nic during hotplugNic
	During vm.py:hotplugNic, if the nic had port mirroring enabled
	and setPortMirroring failed, then previously the rollback
	tried to use self.hotunplugNic with a 2nd parameter but the method
	only accepts one parameter, as it should.

	Patch Set 2:
	Fixed merge issues

2013-07-03  Peter V. Saveliev  <peet@redhat.com>

	vdsClient: check getFileList arguments
	A simple check of getFileList arguments on the function call.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=958878

2013-07-03  Ohad Basan  <obasan@redhat.com>

	Fix pep8 compliance after updating to latest pep8

2013-07-03  Mike Kolesnik  <mkolesni@redhat.com>

	vm: Fix custom device properties on hot operation
	On hot plug & unplug of a vNIC/vDisk the custom device parameters should
	be taken from the device itself, as is done in the run VM operation,
	thus keeping a consistent API.

2013-07-03  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fixing pep8 and pyflake errors after updating to new pep8 version

2013-07-02  Yeela Kaplan  <ykaplan@redhat.com>

	tests: Mark JsonRpcServerTests as broken

2013-07-02  Dan Kenigsberg  <danken@redhat.com>

	functional tests: allow ssl too

2013-07-02  Giuseppe Vallarelli  <gvallare@redhat.com>

	Hidden bonds[1/2]: Adding a test to cover the current implementation of nics().

2013-07-01  Federico Simoncelli  <fsimonce@redhat.com>

	volume: add the BLOCK_SIZE constant

2013-07-01  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Storage Domain V3 Functional Tests
	The functional tests are for storage domain v1, change them to test
	both storage domain v1 and v3. Getting host id lease from sanlock takes
	more time in storage domain v3 so the patch increases the waiting time
	before timeout.

	Add NFS storage domain functional tests
	Test creating NFS storage domain, pool, image, volume.
	Test creating VM with the NFS storage.

	How to verify:
	1. build and install VDSM rpms, including vdsm-tests
	2. start VDSM service
	3. cd /usr/share/vdsm/tests
	4. ./run_tests.sh -m 'nfs' functional/xmlrpcTests.py

2013-06-30  Aravinda VK  <avishwan@redhat.com>

	gluster: new vdsm verb glusterHostUUIDGet
	New gluster vdsm verb to get glusterd UUID of the host, which uses
	gluster cli command "gluster system:: uuid get"

	Gluster CLI sample output:
	UUID: f2023224-2ae2-4893-92ab-b078defd2991

	new verb: glusterHostUUIDGet
	Output structure: {'uuid': UUID}

2013-06-30  Antoni S. Puimedon  <asegurap@redhat.com>

	Make networking API endpoints match schema
	There used to be non-optional parameters with default values. And
	not only that, the default values were mutable which is bad.

	Patch Set 2:
	- Rebased.

2013-06-29  Aravinda VK  <avishwan@redhat.com>

	dumpStorageTable: fixed a unhandled exception when poollist is empty
	when poollist is empty then dumpStorageTable was failing with
	'IndexError: list index out of range', Also crash dump was reported
	in /var/log/messages

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=961816

2013-06-29  Dan Kenigsberg  <danken@redhat.com>

	vdscli: make __getLocalVdsName more robust
	vdscli attempts to guess the name of the local host by reading the
	"subject" of its openssl certificate.

	On Fedora 19, the order of the subject fields has changed. This patch
	makes __getLocalVdsName a bit more robust, and adds a unit test for it.

2013-06-27  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	nit fix for _cleanOldFiles
	svdsm.sock will not be in filterd fileType

2013-06-27  huntxu  <mhuntxu@gmail.com>

	XMLRPCServer: make XMLRPCServer able to listen on IPv6 addresses
	SimpleXMLRPCServer is derived from SocketServer.TCPServer of which the
	default address_family is socket.AF_INET, that makes it could only
	listen on IPv4 connections. This patch wraps it and extends its
	ability on IPv6 networks.

	How to test:

	  1. Build and install VDSM RPMs
	  2. Edit /etc/vdsm/vdsm.conf, change "addresses/management_ip = ::",
	and "vars/jsonrpc_enable = false"(as known to break JSONRPC)
	  3. Restart VDSM daemon
	  4. "netstat -nlp6t" or "ss -nlp6t" should indicate vdsm XMLRPC server
	is listening on "::"
	  5. "vdsClient -s '[::1]:54321' getVdsCaps" succeeds

2013-06-27  Yeela Kaplan  <ykaplan@redhat.com>

	clientIF: Check disk alignment using virt-alignment-scan

2013-06-27  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix potential race of getting caps during addNet
	getmtu can return IOError when a libvirt network underlying device
	does not exist. This can happen when we get a getVdsCapabilities
	request after the libvirt network entry has been added but before
	the device has been ifupped.

2013-06-26  Yeela Kaplan  <ykaplan@redhat.com>

	alignmentScanTests: Remove text output validation of help
	'virt-alignment-scan --help' output has changed in fedora 19.
	No need to check the actual output text, but only that we
	can run 'help'.

2013-06-26  Greg Padgett  <gpadgett@redhat.com>

	vm payload: clarify intent of supporting multiple files
	With cloud-init integration now using payloads with multiple files,
	clarify that this is supported in the payload code.

	Bug-Url: https://bugzilla.redhat.com/619761

2013-06-26  Eduardo Warszawski  <ewarszaw@redhat.com>

	Ignore partially deleted images in getAllImages().
	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=905038

	Remove StoragePool.getImageDomainsList().
	Avoid code duplication.

	Related to BZ#905038.

	Interface changes for getImageDomainsList internal changes.
	Complement to I25fe2714e4c4e832230653cebc87d8da0e81028b.

2013-06-26  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix multiple default gateways reporting
	Up until now there was just a default gateway per host, defining
	default as going towards 0.0.0.0/0. If more than one device
	received a default gateway setting, only the latest to be
	configured kept its configuration as host default configuration.

	Now, thanks to multiple gateways, we have a routing table for each
	network, which allows us to have multiple default gateways to
	report. The only issue is that /proc/net/route only reports
	information for table 254, while we are using several. For this
	reason, we change the implementation to use ipwrapper to get the
	information from all the tables.

	PatchSet 2:
	- Fix calling to ipwrapper and added it to lib/vdsm/Makefile.am

	PatchSet 3:
	- Rebase on top of the fixes of multiple gateways.
	- Split Routes fromText into parser and fromText.
	- Made source use the new placement and parse method of ipwrapper.

	Patch Set 4:
	- Rebase the patch.

2013-06-26  Assaf Muller  <amuller@redhat.com>

	Multiple Gateways[2/2]: configNetwork integration
	This patch provides the integration of sourceRoute with the
	configurator flow.

	For static routes, multiple gateways uses the ifcfg configurator
	and its configWriter to write:
	    /etc/sysconfig/network-scripts/{route,rule}-netname
	Those files are taken care of by ifup/ifdown.

	For dynamic routes (DHCP) it has a hook in
	/etc/dhcp/dhclient.d/sourceRoute.sh that is automatically executed
	by dhcpd when it obtains a lease for a device. The hook will call
	directly the sourceRoute.py command line UI that will delegate
	the actions to the iproute2 configurator. For this hook to work,
	selinux needs a few policy updates that have been requested in:

	https://bugzilla.redhat.com/show_bug.cgi?id=977856

	The selinux-policy changes are needed due to the fact that the python
	code in sourceRoute.py is being executed from the dhcp_t context
	and not from the usual service, reason for which currently there was
	no policy to allow such context to access several parts of the system
	via python.

	The integration is done at the configureDevice level because it is
	the only sensible choice considering that the static file removal
	must be done between ifdown and ifup (so that ifdown takes down the
	rules and ifup doesn't have them anymore so it does not apply them)
	and the fact that configureDevice for nics and bonds must leave the
	device up, i.e., they do ifdown and ifup inside the method.

	Patch Set 2:
	- delNetwork now checks that the bootproto is not dhcp
	- In sourceRoute.py: Removed check if the interface has
	  a libvirt network on top of it because it was preventing
	  DHCP interfaces from going up properly. Will need to think
	  of a different fix.

	Patch Set 4:
	- Fixed the Makefile and spec for dhcp hook installation.

	Patch Set 5:
	- Fixed the network deletion. It was trying to remove routes for an
	  already unexistant network device.

	Patch Set 7:
	- Fixed dhcp flow by changing when we do libvirt network addition
	  and deletion.

	Patch Set 8:
	- Addressed review comments. Fixed the ifup ifdown flow when using
	  the ifcfg configurator (and the iproute2 for dhcp).

	Patch Set 9:
	- Addressed review comments and squashed:
	      http://gerrit.ovirt.org/#/c/16087/1
	      I09aec8fa9a2ef2d61609a0a807f4e7130978fbfb
	  into this patch.

	Multiple Gateways[1/2]: add sourceRouting module
	http://www.ovirt.org/Features/Multiple_Gateways

	Patch Set 3:
	* Trivial fixes after comments from initial review

	Patch Set 4:
	* Use newly implemented iproute2 binary wrapper

	Patch Set 5 - 8:
	* Rebased changes from ipwrapper.py
	* Structural changes to allow introducing a configurator

	Patch Set 9:
	* Configure now checks if the gateway received
	  is 0.0.0.0. If so, nothing has to be done.

	Patch Set 11:
	* Squashed with next patch in series
	* Added a configurator to SourceRoute
	* Moved SourceRoute add/del routes/rules to Ifcfg configurator
	  and Iproute2 configurator.
	* configure and remove now check that the requested interface
	  is 'tracked' by VDSM. That is, it was created by us
	  and not an interface configured manually by the admin.
	* SourceRoute no longer needs or knows if it's Static or not.

	Patch Set 12:
	* Added sourceRoute.py and netconf/iproute2.py to make
	  and spec files

	Patch Set 13:
	* Use a argparse to deal with command line arguments

	Patch Set 14:
	* Dropped WIP tag and changed name to reflect that it is a partial
	  state of the feature.

	Patch Set 15:
	* Rebase

	Patch Set 16:
	* Reflect the changes of method names in the previous patch.

	Patch Set 18:
	* Fix deleting network without routes and rules.

	Patch Set 19:
	* Fix ipaddr -> ip.

	Patch Set 21:
	* Fix 'static' -> 'none'.

	Patch Set 22:
	- Fix bug when taking down interfaces. The previous version failed to
	  remove rules due to the fact that on el6:
	      ip route show table xxxxxxxxx
	  gives the routes of the xxxxxxxxx table but also of the main table,
	  so for example the ovirtmgmt route on a different device and
	  different table was being marked for removal from table xxxxxxxxx.
	  Since the route wasn't really on the table, netlink returned an
	  exception and we never reached the rule removal stage.

	Patch Set 23:
	- Make the code cleared in the except ValueError.

	Patch Set 24:
	- Sort import sections alphabetically. Make staticmethods out of
	  instance methods without state nor class dependencies.

	Patch Set 25:
	- Fixed the bootup issues for DHCP and refactored sourceRoute into
	  static and dynamic for easier integration in the following patch.

	Patch Set 26:
	- Addressed review comments about logging and documenting.

2013-06-26  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix bridgeless net regression
	The commit:
	Ie8bb5fd9fc6ad69cf120d62264d73490b65b82d7
	http://gerrit.ovirt.org/#/c/11356/4/

	That commit introduced a bug that prevents the user from configuring
	a bridgeless network with dhcp. That is so because after the change,
	if ipaddr is None, which is the most usual case when configuring a
	network for dhcp, bootproto will be overriden by what was on the
	original config file (quite probably None).

2013-06-24  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	functional test: boot VM with network interface device

2013-06-24  huntxu  <mhuntxu@gmail.com>

	netinfo: get an interface using one of IP addresses assigned to it
	We record the server's IP address for each XMLRPC request, preventing
	manually parsing the routes files.
	This patch also fix an error that when connected from localhost(using
	tools like vdsClient) through the loopback interface, vdsm would report
	the interface associated with the default gateway as the used interface,
	instead of the expected result 'lo', because the routing table doesn't
	contain any information for the device 'lo'.

2013-06-24  Antoni S. Puimedon  <asegurap@redhat.com>

	configNetwork: fix handleBondings regression
	during the rebase destroy was not updated to its new name of
	destroyOnRemoval. This patch fixes that.

	Patch Set 2:
	- Added a functional test to catch this sort of problem in the
	  future.
	Patch Set 3:
	- Fixed arguments.

	Patch Set 4:
	- Added extra tests.

	Patch Set 5:
	- Improvement on the tests.

	Patch Set 6:
	- Fixed pep8.

	Patch Set 7:
	- simplified pinger.

	Patch Set 8:
	- Cleaned the pinger implementation.

2013-06-23  Mike Kolesnik  <mkolesni@redhat.com>

	Don't depend on storage module
	There is no real need for hooking module to depend on the storage
	module, except for the execCmd which is being delegated to
	utils.execCmd, so importing the execCmd directly from utils instead.

2013-06-23  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: fix getMaxMtu generator handling
	getMaxMtu was changed to use iterables instead of just lists.
	The check for if and a generator is always True regardless of
	it generating any elements. Thus, max could fail.

	This fixes a regression introduced by:
	http://gerrit.ovirt.org/15355

2013-06-22  Dan Kenigsberg  <danken@redhat.com>

	vmTests: split data to another module
	As suggested by Maciej and promised to Vinzenz in
	http://gerrit.ovirt.org/14111
	Also, bury the turm "libvirtvm".

2013-06-21  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove unused hsm members.
	_statslock, _domstats, _cachedStats.

2013-06-20  Giuseppe Vallarelli  <gvallare@redhat.com>

	tests: Adding functional tests for networking
	Functional tests for creation and deletion of virtual networks:
	This patch includes tests related to the addNetwork verb in
	particular validation of input params. Tests added are the
	following ones:

	* test_add_delete_network
	* test_fail_with_invalid_bonding_name
	* test_fail_with_invalid_bridge_name
	* test_fail_with_invalid_ip_config
	* test_fail_with_invalid_nic
	* test_fail_with_invalid_params

2013-06-19  Assaf Muller  <amuller@redhat.com>

	iproute2 binary wrapper
	Initially to be used by the upcoming multiple gateways
	feature. Only the needed commands were implemented.

	Patch Set 5:
	  * Changed Route and Rule parsing to Toni's more
	    robust method
	  * Route class: Previously there was a distinction
	    between a default route and a normal route. I removed
	    that distinction and the word 'default' in a route
	    is interpreted as '0.0.0.0/0'

	Patch Sets 6-9:
	  * Empty

	Patch Set 10:
	  * Added ipwrapper.py to spec and make files

	PatchSet 11:
	  * Made changes proposed in earlier reviews.

	PatchSet 12:
	  * Parsing unit tests.

	PatchSet 13:
	  * Added forgotten parsing unit tests.

	PatchSet 15:
	  * Changed name of routeForDevice to reflect that it only returns the single
	    route for the link network of the device.

	PatchSet 16:
	  * Removed unnecessary output from action performing methods.

	PatchSet 17:
	  * Added python-netaddr to the build requirements.

	PatchSet 18:
	  * Rebased to get the benefits from markin jsonrpc tests as broken.

	PatchSet 19:
	  * Provided more descriptive docstrings for fromText.

2013-06-19  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove unused onlyDataDomains parameter from getImageDomainsList.
	This patch is required for unify hsm.getImage* functions logic.
	onlyDataDomains parameter never was false. In addition it was
	erroneously used by the CLI.

2013-06-18  Dan Kenigsberg  <danken@redhat.com>

	Declare a broken test as such
	jsonRpcTests.JsonRpcServerTests.testMethodCallArgList tends to fail when
	run on Jenkins, such as in
	http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/2864

2013-06-18  Antoni S. Puimedon  <asegurap@redhat.com>

	netmodels code cleanup
	Removes unused parameters and variables.

2013-06-18  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Separate libvirt network configuration from ifcfg
	The libvirt network configuration code could be reused by non persistent
	configurator, so this patch separates it from the ifcfg configurator.

	NetReload: netmodels for editBonding/removeBonding
	Re-implement the logic of editBonding and removeBonding using
	netmodels.

	PatchSet 11: Rebase.

2013-06-18  Lukas Bednar  <lbednar@redhat.com>

	Add code coverage support
	This commit adds option to enable vdsm code coverage by setting

	    COVERAGE_PROCESS_START=/path/to/config/file/for/python-coverage/module

	in /etc/sysconfig/vdsm.

2013-06-17  Giuseppe Vallarelli  <gvallare@redhat.com>

	Fix param name in vdsmapi-schema: naming issue.
	Data type for inbound and outbound params should be
	VmInterfaceDeviceBandwidthParams instead of
	VmInterfaceBandwidthParams.

2013-06-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm-tool: extend service module to cover alternative service names
	Service names are different on various systems, instead of hard-coded
	service names for each supported system, we can extend vdsm.tool.service
	to detect the right service name given some hints (possible alternative
	names). This makes the service management more flexible and helps to
	port us to new systems easily.

	This patch iterates over the alternative service names list for each
	management operation.

2013-06-16  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#836161 - Remove code obsoleted by deleteImage() rewrite.
	This is a separate patch for improved readability.

	Related to BZ#910013, BZ#905938, BZ#875708, BZ#864073

2013-06-13  Daniel Erez  <derez@redhat.com>

	introducing virtio-scsi support
	Drive class:
	* makeName - map 'scsi' to 'sd'
	* getXML:
	- added 'sgio' flag [1]
	- device='lun' is used instead of device='disk' for supporting
	  LUN passthrough (which can be used with virtio-scsi).
	  Hence, adding 'driver' tag similarly to 'disk' device.

	LibvirtVm class:
	* getUnderlyingDriveInfo - get/set 'sgio' attribute.

	TestLibvirtvm class:
	* testControllerXML - test 'virtio-scsi' controller
	* testDriveXML:
	- test virtio-scsi image disk
	- test virtio-scsi LUN passthrough

	API Schema:
	* Updated:
	- VmDiskDeviceInterface
	- VmDiskDeviceType
	- VmControllerDevice

	[1] 'sgio': SCSI Generic IO - filtered/unfiltered
	(indicates whether the kernel will filter unprivileged
	SG_IO commands for the disk).

2013-06-13  Amador Pahim  <apahim@redhat.com>

	Added 3.3 to SupportedENGINES in dsaversion

2013-06-13  Assaf Muller  <amuller@redhat.com>

	Added 3.2 to SupportedENGINES in dsaversion

2013-06-13  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.init: ajust libvirt log file
	Nowadays VDSM configure libvirt daemon to log into /var/log/libvirtd.log.
	This patch will make vdsm set the log file into the current default
	location for libvirt logs /var/log/libvirt/libvirtd.conf.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=755548

2013-06-13  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm-tool: extend "service" module to check existence of a service
	Add a service-is-managed command to check if a service is managed by
	either of the supported init systems. With the decorator _XXXNative in
	previous commit, the implementation of service-is-managed command is
	straight forward: just add _XXXNative tag to a action function that
	always succeeds.

	vdsm-tool: avoid service action redirections
	Some smart init system will redirect actions to other init system when
	the service is not managed natively. This behaviour interferes the
	parsing of the service action output.

	Add a decorator _XXXNative to check if a service is managed by a certain
	init system. _XXXNative tag is then added to every action function to
	avoid execution of an action on a service that is not managed by that
	particular init system, so as to avoid redirections.

	An environment variable is also added for SysV actions to prevent
	redirection to SystemD, this is specific for those systems with
	co-existence of SystemD and SysV, and is no harm to those systems with
	only SysV or with co-existence of Upstart and SysV.

2013-06-13  Giuseppe Vallarelli  <gvallare@redhat.com>

	QoS feature: Adds bandwitdh elem to a network interface definition.
	NetworkInterfaceDevice can now generate xml definition for shaping
	incoming and outgoing traffic supported attributes are the following
	ones: average, burst and peak.

2013-06-13  Arik Hadas  <ahadas@redhat.com>

	fix for after_vm_dehibernate hook not being called
	Due to what seems to be a copy-paste or typo problem, the
	after_vm_hibernate hook was called instead of after_vm_dehibernate
	hook after the vm is being dehibernated. This patch correct that call.

2013-06-12  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Simplify setNewMtu()
	It will update the interface's MTU only if its user being removed has
	the maximum MTU.

2013-06-11  Timothy Asir  <tjeyasin@redhat.com>

	gluster: fix remove disabled hook exception handling error
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=971775

2013-06-11  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Move removing libvirt network to configurator
	This patch adds a wrapper for the configWriter.removeLibvirtNetwork()
	in configurator and call it in delNetwork because we should try to
	avoid using ConfigWriter directly in configNetwork.py

2013-06-11  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: vmChannels: Do not use epoll unregister
	We don't use epoll.unregister for the deregistration from epoll anymore.
	According to the epoll documentation, epoll will remove the fd when the
	fd was closed.
	Since we're always closing the sockets where this is used and we
	otherwise might run into race conditions we're no longer calling
	epoll.unregister to avoid attempts to unregister fds which might no
	longer belong to us.

	The problem on this race condition is that we're handling file descriptors
	by numbers. When we're ending the GuestAgent by calling stop() it will send
	the fd to the listener thread by inserting it into a queue so the listener
	can handle it the next time. However we're immediately closing the socket and
	the OS is free to reuse the fd. By the time we're going to unregister the fd
	from epoll the fd might have been already reused for our process by the OS
	because it reassigns the lowest available fileno.

	To solve this issue we're using the capability of epoll to detect closed
	fds and rely on it's mechanism to unregister them. By that we're not running
	into the issue of unregistering the fd from fd which might have been already
	already assigned to a different object.

2013-06-11  Mark Wu  <wudxw@linux.vnet.ibm.com>

	NetReload: netmodels for delNetwork
	This patch re-implements the delNetwork logic using the network
	entities defined in netmodels.

2013-06-11  Federico Simoncelli  <fsimonce@redhat.com>

	iscsi: report hba sessions as fiber channel
	At the moment the engine doesn't support static (unmanaged) iscsi
	connections therefore it's safer to maintain the old behavior and
	report the HBA iscsi sessions as if they were fiber channel devices.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=967605

2013-06-10  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	multipath.py: use vdsm.tool.service to restart multipathd
	multipath.py restart and reload multipathd using service command
	directly. This patch uses vdsm-tool service module to manage the system
	service improves portability. It covers SysV, SystemD and Upstart as
	well as possible daemon names in various systems (multipathd is named
	multipath-tools in Ubuntu).

	Add "service-reload" command to vdsm-tool service module
	"vdsm-tool service-reload XXXd" will notify the system service to reload
	its configurations

2013-06-10  Dan Kenigsberg  <danken@redhat.com>

	fix testBuildCmdLine not to be upstream-specific
	A certain downstream product would like to change SMBIOS_PRODUCT without
	failing the unit test.

2013-06-10  Eduardo Warszawski  <ewarszaw@redhat.com>

	Improve __prefetch logging.
	Related-To: https://bugzilla.redhat.com/show_bug.cgi?id=967296

2013-06-09  Federico Simoncelli  <fsimonce@redhat.com>

	misc: handle scientific notation in readspeed
	When the amount of bytes is low and the speed is high the elapsed time
	is expressed using the scientific notation.

	In this patch:
	* handle dd errors
	* minor fix to make _readfile prettier

	Bug-Url: http://bugzilla.redhat.com/show_bug.cgi?id=948232

2013-06-07  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netinfo: Simplify the check if an interface still has any other users.
	In current oVirt network models, a nic device has four kinds
	of usages:
	    * bonding's slave
		* vlan's slave
		* bridge's port
		* bridgeless network's interface
	A bond device has the same usages as nic except the first one.

	And an interface(nic or bonding) could be multiplexed by different usages.
	But bonding and bridge need use the interface exclusively. So only two
	combinations are valid:
		* multiple vlan users
		* multiple vlan users with one bridgeless network user

	When we remove one user of an interface, we need check if the interface
	still has by other users except the user being removed currently. According
	to that, we decide if restore the interface to initial state or destroy it
	(for bonding).

	The original code can work fine both with the netinfo instantiated before
	or after the user is removed. In the new code, it needs an updated netinfo
	instance, which doesn't include the user is already removed. And it doesn't
	require any information about the user removed.

	In the original implementation, the checks for nic and bonding are handled differently
	because it also checks the bond users if a nic is a slave of bond. Actually,
	it's not neccessary either. If the bond has other users, we will not remove its
	slave. That means the check will not be invoked. So for the check of nic, it
	doesn't need care about the usage of its bond master, because it's done in bond
	level.

2013-06-07  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: update python-pthreading
	F19 and EL7 should require python-pthreading >= 1.0.2

2013-06-07  Giuseppe Vallarelli  <gvallare@redhat.com>

	Bugfix: TypeError when using configNetwork.addNetwork with bootproto as kw param.
	A TypeError is raised when using configNetwork.addNetwork by providing
	bootproto as a keyword argument, this patch solve this issue without
	altering addNetwork and objectivizeNetwork interfaces.

2013-06-06  Antoni S. Puimedon  <asegurap@redhat.com>

	Unify mtu internal representations as integers
	In netmodels, configNetwork and netinfo.getMaxMtu we always handle
	MTUs as being of integer type. There were only two exceptions to
	this rule, in netinfo reporting code. This code makes getMtu
	to return an integer just like getMaxMtu and makes the exceptions
	be exceptional cases that will use str.

2013-06-05  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netmodels: add a backward reference to NetDevice's master device
	The netmodels keeps reference to slave device for a master device, but
	the slave device doesn't have a backward reference. This patch adds
	the reference on configuring, which can make it easier to get its usage
	on removing an interface. In the coming delNetwork implementation based
	on netmodels, we just call netdevice.remove() to delete a network entity.
	So the NetDevice object should contain all the information needed by
	the remove operation. We have different handling on removal when an
	interface is attached to different types of masters. For example, if the
	master of an inferface is Bond, Vlan, or Bridge, then we don't need
	consider removing IP configuration on it because it could not be the top
	object of the network hierarchy.

2013-06-05  Timothy Asir  <tjeyasin@redhat.com>

	gluster: Fix vdsm gluster api schema error
	fixed typo and renamed 'boolean' into 'bool' in json schema file
	and renamed 'type' into 'mimetype'.

2013-06-05  Giuseppe Vallarelli  <gvallare@redhat.com>

	fix: Adding missing hooks folder to vdsm.spec.in
	Missing folders in vdsm.spec.in for the update device hooks are
	the following ones: before_update_device and after_update_device.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=893576

2013-06-05  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Extract helper functions for updating nic and bonding's mtu

	Reduce the redundant parameters for addVlan()

	Separate adding libvirt network from configuring host network.
	It makes it simpler to test the network configure functions, and
	also make the code a little bit cleaner.

2013-06-05  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm-toolize dummybr and nwfilter
	Move dummybr and nwfilter to vdsm-tool, so that all the init wrappers in
	the supported or to-be-supported systems can call them uniformly.

2013-06-05  Maciej Lichon  <maciej.lichon.wroclaw@gmail.com>

	Added unit test libvirtvmTests.py:TestLibvirtvm.testBuildCmdLine

2013-06-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	Making getAllTasks[List and Statuses] an SPM command
	Currently VDSM does not manage HSM tasks. This verb is used only to poll
	SPM tasks. If the host is not SPM, an exception will be raised. Backwards
	compatibility is not required as the verb API is not changed and the
	behaviour stays as expected in older clusters (Instead of returning empty
	list for non-spm hosts, vdsm will raise exception as expected).

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=880547

2013-06-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Support teardownVolumePath(None)
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=962549

2013-06-04  Antoni S. Puimedon  <asegurap@redhat.com>

	NetReload: netmodels for addNetwork
	This patch defines the netwok entities that we use in oVirt:

	- NetDevice,
	- Bridge,
	- Vlan,
	- Bond,
	- Nic

	These entities are now responsible for their underlying devices for
	the addNetwork step.

	The interaction is as follows:

	1. addNetwork -(generates netmodels via)-> objectivizeNetwork
	2. "configure(logical_net)" is called on the top network device,
	3. The top network device calls configure for its device type on the
	   configurator, that in turn calls configure in any underlying device.

	In a following patch, they shall take
	responsibility as well for network deleting.

2013-06-03  Timothy Asir  <tjeyasin@redhat.com>

	gluster: Added verbs for read, update, add and remove hooks
	Below new verbs are added to perform read, update, add and remove hooks

	* hookRead
	  Output Structure:
	       {'content': HOOK_CONTENT,
	        'type': MIME_TYPE,
	        'md5sum': MD5SUM}
	* hookUpdate
	* hookAdd
	* hookRemove

2013-06-03  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm.tool.service: fix _systemctlNative
	_systemctlNative lists systemd units and check if the given service is
	managed by systemd. There is a bug in the checking code. When
	splitting words, it does not fetch the word from the resulting array.
	The first word is the name of the unit/service. This patch fix the
	problem.

	Another small problem is it does not format the error message correctly,
	this patch fix the formatting.

	At last it fixes a bad doc string.

2013-06-03  Saggi Mizrahi  <smizrahi@redhat.com>

	cpopen: Fix signal handling in sync points

2013-06-03  Federico Simoncelli  <fsimonce@redhat.com>

	domain: use the dd statistics for the domain delay
	The previous implementation of getReadDelay was calculating the reading
	time (for the domain statistics) checking the execution time of dd.
	This patch introduces a low level readspeed command to parse the more
	accurate statistics provided by dd in the stderr.

	Bug-Url: http://bugzilla.redhat.com/show_bug.cgi?id=948232

2013-06-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Supervdsm didn't create pid file when starting up
	This cause errors over sysV when trying to perform service operations

	closing file after writing

2013-05-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	Returning namedtuple from util.pidStat for simpler usage

2013-05-30  Saggi Mizrahi  <smizrahi@redhat.com>

	cpopen: Fix tests
	Now they run on make check

2013-05-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Creating /var/run/vdsm directory as part of rpm installation
	Supervdsm service cannot start without the existence of this directory,
	it creates its pid file and socket there. Instead of only set the
	directory attributes (%ghost flag) also include the directory as part of the
	package.

2013-05-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	Supervdsm as external service
	Creating supervdsmd and set dependencies between vdsm and supervdsm
	services

2013-05-29  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm-tool: service probing do not trigger abrt warning on RHEL6
	When an service management operation fails, the service module raises a
	RuntimeError, this triggers abrt warning of un-caught Python exceptions.
	This is good for reporting error when fail to start a service, but
	probing command such as "service-status" should not raise un-caught
	exception if the service is down. It should report the error code and
	leave the caller to decide what to do (probably start that service).

	In this patch we define a specific exception for service operations,
	then for service probing operation, it swallows the exception, prints
	error message and returns 1. For other management operations, the
	exception is still raised.

2013-05-29  MeiLiu  <liumbj@linux.vnet.ibm.com>

	vdsm: Add ioTune support at vm creation
	The code parses the 'ioTune' descrption for block devices at vm creation
	time and adds the tag accordingly.

	e.g.
	Adding 'ioTune':{'read_bytes_sec': 6120000, 'total_iops_sec': 800} in specParams for a
	block device will add the following in dom xml for that device.

	<iotune>
	    <read_bytes_sec>6120000</read_bytes_sec>
	    <total_iops_sec>800</total_iops_sec>
	</iotune>

	These parameters constrains the I/O bandwith for the device.

2013-05-28  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fix py_modules in setup.py, and duplicate declaration of cpopen.so in spec
	After modifying cpopen.py to __init__.py we should also update setup.py
	parameters.

	Both only omit warnings during build.

2013-05-28  Yeela Kaplan  <ykaplan@redhat.com>

	devicemapper: remove unused _parseDevFile and getDevUuid

	multipath: remove unused device attribute 'devnum'

2013-05-28  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: [REFACTORING] libvirtvm.py bye bye
	In order to start with the refactoring as a first step we'll get rid of
	libvirtvm.py and merge vm.py into libvirtvm.py and named this whole thing
	vm.py

	Additionally Vm and LibvirtVm have been merged into one and there's now
	only a class Vm.
	Also devices have been renamed from LibvirtVmDevice to VmDevice
	for simplicity.

2013-05-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	Extend vdsm-tool commands - retrieving host uuid by utils.getHostUUID
	Deploying an host requires to verify if an host has vdsm installed.
	The command 'vdsm-tool vdsm-id' returns vdsm uuid if vdsm is installed.
	It doesn't require running vdsm instance.
	This patch also adds 'legacy' parameter to getHostUUID for backward
	compatibility, if set to false the mac address won't be added to the
	uuid.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=964967

2013-05-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	Using pidStat to get pid creation time
	In proc/pid/stat field 21(starttime) defined the time when the process
	started. Before we used ctime (time of last status change) that might change
	during process run.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=966133

2013-05-22  Assaf Muller  <amuller@redhat.com>

	Allow modification of disk xml by before_disk_hotplug
	The return value of hooks.before_disk_hotplug wasn't being used
	like it is in hooks.before_nic_hotplug. Meaning that if a hook
	changed the disk XML it wasn't actually updated in the VM's
	domxml.

2013-05-22  Federico Simoncelli  <fsimonce@redhat.com>

	version: upstream dirty is nightly
	Previously the upstream dirty builds were released using a pre-release
	versioning (prefixing a 0). This doesn't fit the release process in
	which the upstream builds are nightly.

	More information on pre-releases at:

	http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Pre-Release_packages

	In this patch:

	* remove the leading 0 used for pre-releases (instead of nightly)
	* remove vdsm.spec on make clean
	* use any tag (not just the annotated ones) to identify the release

2013-05-22  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Use UUID as unique identifier for socket names
	To avoid issues with limitation on the length of paths to UNIX Domain sockets
	we're changing the behavior to use the UUID of the VM.

	Additionally for backwards compatiblity we're making a symlink of the old name
	if it not already exists.

	Bug-Url: https://bugzilla.redhat.com/918536

2013-05-22  Antoni S. Puimedon  <asegurap@redhat.com>

	Move getMaxMtu to netinfo
	For a while now, getMaxMtu has not used any part of configWriter,
	but just netinfo information. Thus, it is only right that it should
	be moved to its rightful module, i.e., netinfo.py.

2013-05-21  Federico Simoncelli  <fsimonce@redhat.com>

	oop: rename createSparseFile to truncateFile

2013-05-21  Eduardo Warszawski  <ewarszaw@redhat.com>

	Deactivate libvirtVM.Drives()
	Change I8d310f216987b7 has introduced teardownVolumePath() calls with a
	Drive object instead of a drive dictionary from self.conf.
	In its previous form, teardownVolumePath() has silently ignored such
	input, keeping the volume active.

	This patch makes teardownVolumePath() handle such inputs properly. This
	is one baby step in the process of getting rid of self.conf: we would
	like to use the objects everywhere within vdsm.

	Note that this patch introduces an ugly log line when pointlessly trying
	to tear down a cdrom device. This would be fixed in a subsequent patch.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=962549

2013-05-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Fix bashisms in vdsmd.init.in and ovirt_functions.sh
	Fix vdsmd.init.in bashisms to make it run in dash, the default scripting
	shell on Ubuntu. Use checkbashisms in Ubuntu devscripts package to check
	it then fix one by one.

	Some bashisms that are not going to be fixed in this patch:
	1. "local" is not in POSIX but dash supports it, however old dash does
	not support "local x y", so we have to "local x; local y".
	2. gettext related bashisms, they do not harm in Ubuntu.

	[1] https://launchpad.net/ubuntu/+source/devscripts
	[2] https://wiki.ubuntu.com/DashAsBinSh#I_am_a_developer._How_can_I_avoid_this_problem_in_future.3F
	[3] http://mywiki.wooledge.org/Bashism

2013-05-17  Antoni S. Puimedon  <asegurap@redhat.com>

	Raise ValueError when passed invalid prefix
	We should give meaningful Python errors to assist with user-input
	checking. This patch is one step in this direction.

2013-05-17  Giuseppe Vallarelli  <gvallare@redhat.com>

	Test: regression test to catch cross imports.
	This test is useful to catch non legal imports in lib/vdsm.
	Lib modules cannot use/depend upon regular (non python package
	vdsm) modules: for example lib/vdscli.py can't depend on
	vdsm/guestIF.py module. This test updates the PYTHONPATH by
	removing the regular vdsm modules, later it tries
	to import lib modules, if there are non legal imports
	an ImportError is raised. The error message reports
	the traceback showing the non legal import.

2013-05-17  Saggi Mizrahi  <smizrahi@redhat.com>

	service: make iscsid a systemd dependency
	Also remove starting iscsid with force-start as it is no longer
	supported

2013-05-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Adding cpopen as external python package to vdsm
	vdsm-python-cpopen is an external package for betterPopen code. This
	provides as part of vdsm rpms until this package will be part of
	fedora's official packages.

2013-05-16  Giuseppe Vallarelli  <gvallare@redhat.com>

	Refactoring storage.misc: moving watchCmd and its deps to vdsm.utils.
	This refactoring is needed to break the depedency of lib/vdsm/qemuImg
	from vdsm/storage/misc. Modules inside lib/vdsm should not use
	anything that is not present in the python std lib or in a dependency
	of the vdsm-python package.

2013-05-16  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: python-2.4 compatibility
	minor changes to support python-2.4.

2013-05-15  Giuseppe Vallarelli  <gvallare@redhat.com>

	refactoring: getMaxMtu updated implementation using max builtin.
	Improvement to getMaxMtu implementation which now is more
	succint by using max builtin function.

2013-05-15  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing mocking of _start function and add extraCmd variable to proxy
	Instead of adding monkeyPatch only for adding PYTHONPATH before running
	the command, setting self.extraCmd will append extra field to the
	execution.

2013-05-15  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	storage: Fix the case when VDSM host is not a gluster peer
	Currently when using glusterSD, VDSM has the need to know the
	transport type of gluster volume for which it uses gluster cli
	which assumes that VDSM host is part of gluster cluster (peer).
	This may not be true always and imposes a constraint that VDSM
	host must be a gluster peer.

	This patch fixes the above by doing 2 things...

	Adds support for --remote-host gluster cli option to volumeInfo
	API. This helps retrieve gluster volume info from a host that
	is not a gluster peer (Eg. VDSM host)

	Adds support to use the ability of gluster cli (--remote-host) to
	retrieve the gluster volume info even when VDSM host is not a
	gluster peer.

2013-05-14  Petr Sebek  <psebek@redhat.com>

	Added setupNetworks command to vdsClient
	To have ability to setup networks and bondings configuration from vdsClient.

2013-05-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Issuing a real pvs cmd when there are no PVs belonging to a VG.
	Assumed the vgName is an existent reacheable VG, must be PVs
	belonging to it.
	The pvs dict may be staled if this is a FC setup and/or
	connectStorageServer was not issued and therefore the storage view
	was not refreshed.

	This patch is an alternative to other fixes for the same bug.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=955993

2013-05-13  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove in-function import of netinfo
	Since the circular module dependency had been solved in
	http://gerrit.ovirt.org/13838, we could remove the in-function
	import.

2013-05-13  Giuseppe Vallarelli  <gvallare@redhat.com>

	refactoring: Changing constant name in NICENESS enum in storage.misc module.
	Within the storage.misc module there's an enum representing NICENESS
	for processes, NICENESS.LOW becomes NICENESS.HIGH which represents
	the lowest priority.

2013-05-09  Dan Kenigsberg  <danken@redhat.com>

	drop a few unused external scripts

2013-05-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	netconf/ifcfg: remove only backup files
	clearBackups() removes the entire directory /var/lib/vdsm/netconfback/.
	Because of that, TPS test (rpm -V vdsm) has failed.

	This patch, will remove all files/directoies inside /var/lib/vdsm/netconfback/
	and keep this directory.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=958009

2013-05-09  Dan Kenigsberg  <danken@redhat.com>

	jsonRpcTests.ReactorTests.test is broken
	And I'm tired of its in-gerrit errors
	http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/1355/console

2013-05-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Moving panic function to utils and set panic mock for tests
	The patch moves panic function to vdsm utils for general use.
	During tests panic call will raise assertionError.

	Check supervdsm execution return code

2013-05-08  Yeela Kaplan  <ykaplan@redhat.com>

	clientIF: rescan devices on failed hotplugDisk
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=923773

2013-05-07  Federico Simoncelli  <fsimonce@redhat.com>

	domain: unify the createVolume method

2013-05-06  Assaf Muller  <amuller@redhat.com>

	vdsm now prints when a SIGTERM or SIGUSR1 is handled.

2013-05-06  Federico Simoncelli  <fsimonce@redhat.com>

	libvirtvm: avoid concurrent VM changes during saveState
	When multiple changes of the VM configuration are applied at the
	same time there's an high chance of saveState failing during a
	deepcopy for a RuntimeError exception (e.g. dictionary changed size
	during iteration). To avoid this problem the configuration changes
	and the saveState requests are now serialized.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=948940

2013-05-06  Timothy Asir  <tjeyasin@redhat.com>

	gluster: Added gluster hooks support
	Gluster hooks enable users to run scripts on pre or post level of
	gluster command execution. Pre scripts are executed before gluster
	command execution and post scripts are executed after gluster
	command execution.

	Below new verbs are added to perform to list, enable and disable hooks.

	New verbs:
	* glusterHookEnable
	* glusterHookDisable
	* glusterHooksList
	    Output structure:
	        [{'name': HOOK-NAME,
	          'status': STATUS,
	          'type': MIME_TYPE,
	          'command': GLUSTERCOMMAND,
	          'level': HOOK-LEVEL,
	          'md5sum': MD5SUM}]

2013-05-06  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Don't log irrelevant errors with level ERROR
	libvirtconnection.get() wrapMethod logs unhandled libvirtErrors
	as ERROR. However it's irrelevant at that point, therefore it
	should log it only as DEBUG message.

	Bug-Url: https://bugzilla.redhat.com/955593

2013-05-06  Assaf Muller  <amuller@redhat.com>

	vdsm now reports pid when starting up.
	When vdsm starts it now outputs to the vdsm log:
	"MainThread::INFO::2013-05-05 11:57:38,609::vdsm::89::vds::(run)
	(PID: 14576) I am the actual vdsm..."

	Bug-Url: https://bugzilla.redhat.com/952089

2013-05-05  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-reg: move OK message to caller.
	Due bz#890572 engine.py now calls setVdsConf() to write into vdsm_reg.conf.
	However, setVdsConf() prints an 'OK' message used in the old bootstrap and
	it's showing in oVirt TUI. This patch will move this OK message to the
	caller.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=925967

2013-05-04  Timothy Asir  <tjeyasin@redhat.com>

	gluster: move exportToSupervdsm at module level as makePublic
	The scope of exportToSuperVdsm decorator is limited to cli.py.
	It's moved to module level which enables the usage widely.
	And the function name exportToSupervdsm changed into makePublic.

2013-05-03  Mark Wu  <wudxw@linux.vnet.ibm.com>

	trivial: Improve the ways to get bonding devices and their slaves
	Compared with using glob, it could make the code simple and clean.
	And it could be a little faster in the case of finding bonding device.

2013-05-03  Aravinda VK  <avishwan@redhat.com>

	vdsmapi: vdsmapi support for gluster vdsm verbs
	Reads vdsmapi-gluster-schema.json from gluster directory if
	vdsm-gluster is installed.

2013-05-03  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec.in: update raw_version_revision
	The raw_version_revision from dsaversion.py should be updated with the
	version/release of RPM removing the git stuff.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=893193

2013-05-02  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsmd.init.in: simplify system services management by using vdsm-tool
	In vdsm-tool there is a module implemented the service management
	utilities that covers systemd, upstart and sysv.

	vdsm-tool: add service management utilities

	vdsm-tool: unify ad-hoc execCmd implementations
	There are various ad-hoc execCmd implementations in the modules of
	vdsm-tool. Before the parent of this patch, execCmd is in storage.misc,
	we can not import storage.misc.execCmd without modifying PYTHONPATH. The
	parent of this patch moved execCmd to vdsm.utils, so this patch makes
	use of the 'official' execCmd implementation in vdsm.utils for all the
	modules of vdsm-tool.

	storage.misc: Move execCmd and its dependencies to vdsm.utils
	The original vdsm.utils.execCmd actually imports and invokes
	storage.misc.execCmd, which means if a process does not have
	/usr/share/vdsm in its PYTHONPATH and want to use vdsm.utils.execCmd, it
	will fail. Furthermore, lib/vdsm/utils.py should not use anything that
	is not present in the python standard library or in a dependency of the
	vdsm-python package.

	execCmd is very useful for modules in vdsm-tool, currently these modules
	use ad-hoc execCmd implementation. This patch moves storage.misc.execCmd
	and its dependencies to vdsm.utils, so that other modules can import the
	'official' execCmd implementation without adding /usr/share/vdsm to
	PYTHONPATH.

2013-05-02  Giuseppe Vallarelli  <gvallare@redhat.com>

	Update device hooks: Added before and after update device hooks.
	Bug-Url:https://bugzilla.redhat.com/show_bug.cgi?id=893576

2013-05-01  Federico Simoncelli  <fsimonce@redhat.com>

	vm: update volume apparentsize after snapshot
	After a live snapshot succeeded we need to force the update of the
	volume apparentsize to avoid races in the extension requests.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=923964

2013-04-30  Federico Simoncelli  <fsimonce@redhat.com>

	stats: report the domain version
	Given that some features are available only since a specific domain
	version (e.g. live snapshots require at least V3) and the upgrade
	is asynchronous for the non-master domains (see upgradeStoragePool)
	VDSM should provide to the engine a way to determine if a domain
	(other than the master) has been upgraded or not.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=951057

2013-04-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding utils package to outOfProcess and remoteFileHandler
	As part of http://gerrit.ovirt.org/11423 we added utils package to
	outOfProcess modules. oop uses remoteFileHandler to run external
	processes, each external process expose modules and functions. To allow
	running function from utils package with outOfProcess, we need to
	register utils module to crabRPCServer that handles the requests.

	The utils.py module name is vdsm.utils (as its under vdsm package).
	To avoid register all vdsm module to the crabRPCServer we use custom
	name and it allows an access by oop.utils.func

	fix pep8 err

2013-04-30  Dan Kenigsberg  <danken@redhat.com>

	cleanup: inline STRG_*SCSI_* macros
	They are used only once; their name is less clear than their content.

2013-04-28  Assaf Muller  <amuller@redhat.com>

	Added four new hook points for device migrations
	Continued effort on device custom properties. Added four new
	hook points: before/after_device_migrate_source, and
	before/after_device_migrate_destination. The new hooks are called
	for every device that has custom properties.

	Patch Set 2:
	* Added destination hooks, but they aren't called yet
	* Modified installation files, man page to reflect new hook points.

	Patch Set 3:
	* We now call the before/after_device_migrate_destination hooks.
	* Since the device._deviceXML cache is not sent when migrating
	  a VM, I had to re-populate that cache at the destination host,
	  via a search by device alias.

	Patch Set 4:
	* Fixed wording in man page
	* Added more verbose error reporting in _updateDevicesCache
	* Updated copyright for libvirtvm.py file

	Patch Set 5:
	* We now crash horribly if an alias was not found for a device
	  when updating devices domxml cache after migrating
	* _updateDevicesCache has been changed from O(n^2) to O(n)

	Patch Set 6:
	* Removed orphaned function
	* Semantic changes

2013-04-27  Eduardo Warszawski  <ewarszaw@redhat.com>

	Mark getImageDomainsList() as deprecated.
	getImageDomainsList needs to be connected to the pool and ignores
	every non responding domain. Therefore the result can be wrong and
	misleading.
	This function should be replaced by getImagesList call.

2013-04-27  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	misc.py: fix logskip
	The intention of logskip is to change the caller information appeared in
	log messages. It goes back and skip the stack frames that we do want to
	ignore, then find the nearest caller frame that is not tagged as "should
	skip", and use its filename, line number and function name information
	as the caller information in the log message. It's useful to skip stack
	frame of some utility function and log caller of the utility function.

	The original logskip mechanism has two bugs. It overrides the standard
	logger's findCaller method in function enableLogSkip(), however
	enableLogSkip() itself will appear in the stack because the overriding
	function refers a local variable "skipFunc" in the enableLogSkip(), thus
	the Python interpreter has to keep the stack frame for a closure. We can
	not avoid the closure so the soluion is adding function enableLogSkip()
	itself to the "should skip" list.

	This patch adds function enableLogSkip() itself to the "should skip"
	list by prepending the "logskip" decorator to it.

	Another bug is when deciding if we should skip the current frame, the
	first condition branch in function _shouldLogSkip() does not properly
	handle the following case. When the "logSkipName" is assigned and the
	current frame's function body is not registered as skip,
	_shouldLogSkip() thinks we should not skip. Howerver it's possible that
	the whole source file is registered in this case, so we should skip this
	frame as well. This patch fixes this problem.

	remoteFileHandler: update the stale comments of import statements
	When new child process of remoteFileHandler is started in unit test,
	there is no vdsm package installed, so we can not import modules under
	vdsm. There is an "if __name__ != 'main'" to conditionally not import
	modules from vdsm package in the child process.

	After commit d8778ad, which is reviewed at http://gerrit.ovirt.org/9217 ,
	'../' is added to PYTHONPATH of the child process in unit test. The
	working dir of the child is ./tests, so "from vdsm import X" will get
	the module at ./tests/../vdsm/X.py . It can safely import modules under
	the vdsm package now. There is no need to protect the import statements.
	Then old comment explaining this becomes stale.

	This patch drops the old comment, while keeps the import statements in
	the "if", because the imported modules are not used in child process.

2013-04-27  Mark Wu  <wudxw@linux.vnet.ibm.com>

	NetReload: Move removeBondings and editBondings implementation to ifcfg.py

2013-04-27  Daniel Erez  <derez@redhat.com>

	readlines - remove redundant pathExists check
	fileSD -> readlines:
	* The verification of path existence is redundant.
	* Try to read the metadata file and handle an exception:
	- If no such file: return an empty list.
	- Else, raise the exception.

	Bug-Url: https://bugzilla.redhat.com/882667

2013-04-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.init: replace libvirt logs filter
	Currently VDSM adds to libvirtd.conf a filter to include debug
	messages from libvirt daemon. However, the log size is increasing quickly
	with useless information about libvirt objects when the system is
	running out of problem.

	This patch will improve the logs for libvirt sources and remove
	OBJECT_* messages to reduce the size of libvirtd.log.

	Thanks to Pavel Zhukov for suggestion.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=920614

2013-04-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	Retry MD reads when validating pool-domain membership.
	Assumed that engine has a reason to test a particular SD, a
	a failure may be consequence of stale metadata.
	Retrying once to read the metadata again in order to overcome
	missing storagePoolrefresh'es.

	Remove redundant domStatuses parameter from validateAttachedDomain()
	The only possible status of a SD belonging to a pool are active or
	attached.
	Then the domain status is irrelevant when checking membership to
	the pool.

2013-04-25  Yaniv Bronhaim  <ybronhei@redhat.com>

	Modify max_outgoing_migrations default value to 3
	With default 5 and migration_max_bandwidth 32MiBps, over 1Gbps link the
	host's link become saturated.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=956683

2013-04-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding comment before getting libvirt connection
	If libvirt-sock does not exist, and vdsm is restarted - vdsm tried 10
	seconds to communicate with libvirt. In the log we see a gap for 10
	seconds after the "I am .." print and before the libvirt error exception.
	This delay, without knowing the specific location of vdsm process, can hide
	the actual reason for the delay. If the service stopped before the
	exception we'll see only the "I am.. " print without knowing where vdsm
	got stuck.

2013-04-23  Greg Padgett  <gpadgett@redhat.com>

	vdsmd.init: disable libvirt connection keepalives
	Libvirt now has keepalives enabledby default (see bug 832081), but
	they should be disabled until vdsm can make use of them (bug 949192).

	The main problem remaining is that certain libvirt versions (notably
	0.10.2-18.el6.x86_64) don't behave well when using keepalives: the
	connection can be closed if the system is under load, causing spurious
	vdsm problems that wouldn't be present if keepalives weren't in use.

	The libvirt bug has been subsequently fixed, but until a newer libvirt
	can be required, we shouldn't rely on the corrected behavior.

	Bug-Url: https://bugzilla.redhat.com/834041

2013-04-23  Vinzenz Feenstra  <vfeenstr@redhat.com>

	guestIF: Additional object strings filtering
	Filtering the plain UTF-8 data is not enough. The filter has
	to be applied also on the object parsed from json to be really
	effective.

	Example why this is required:

	o = json.loads('{ "x": "\\u0000" }')

	Now the 'o' python object looks like this:
	{ "x": "\x00" }

	Therefore we need to filter even the parsed object

2013-04-23  Laszlo Hornyak  <lhornyak@redhat.com>

	fix access to watchdog event actions
	The data structure 'actionEnum' is a a list, but it was accessed as
	function.

2013-04-23  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Revert "Use 'ip link' to get different kinds of interfaces"
	This reverts commit 8febe0e40650983d809abaa10be983bc1953ef1e.

	The netlink support for bridge is only available on kernel 3.0+.
	Please see the following commit for details.
	http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bb900b27a2f49b37bc38c08e656ea13048fee13b

	Add netlink support for bond is also added after kernel 2.6.32.
	So this solution doesn't work on RHEL6 system. We have to revert
	it.

2013-04-23  Eduardo Warszawski  <ewarszaw@redhat.com>

	Prefetch domains when connecting a storage server.
	When a storage server is connected is searched for domains.
	A uuid:findDomain method dictionary is saved for accelerate
	further produces.

	Related to BZ#891074

2013-04-22  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix getPools comment.

2013-04-22  Michal Skrivanek  <michal.skrivanek@redhat.com>

	spec: bump libvirt version for el6
	resolves libvirt stability issues (e.g. BZ #922063)

2013-04-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	engine.py.in: adding note about setting password
	Users should be warn that if they set password to be able to add
	oVirt Node from oVirt Engine it will enable SSH daemon.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=746582

2013-04-18  Yaniv Bronhaim  <ybronhei@redhat.com>

	Initializing libvirt connectivity in external thread to clientIF
	Getting libvirt connection as part of startup can take long under high
	load. Until clientIF is ready to serve API requests, the host state is
	non-responsive. To avoid that, we make the connection in external
	thread, and until all recover process is ready the host reports the its
	on initialization state.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=949192

2013-04-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix StorageDomainDoesNotExist raise messages.

2013-04-18  Vinzenz Feenstra  <vfeenstr@redhat.com>

	agent: XML Character filtering improvement
	The filtering of invalid characters for XML documents must not be
	performed on unicode strings but on the encoded utf-8 string.
	If we do not do this we'll be missing out on filtering everything
	what would destroy the XML documents.
	If there has been found an invalid character in the UTF-8 string
	it _may_ cause the message to be discarded due to UTF-8 decoding
	errors. However we don't want invalid strings to come through any
	way.

	Updated the unit tests for reflecting the changes.

2013-04-17  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Fix check for connection issues with libvirt
	There has been a made a mistake by mixing domain codes
	with error codes of libvirt.
	Additionally libvirt is reporting VIR_ERR_INTERNAL_ERROR
	if libvirtd gets restarted or stopped somehow (e.g. after a crash)
	This fix takes care to cleanup the mixup and adds the missing
	error code.

	Bug-Url: https://bugzilla.redhat.com/852956

	vdsm: Try to reconnect on vmchannel after errors
	Currently the vm channel listener is not handling any errors. If an error
	occurred we would not try to reconnect and the connection to the guest is lost
	for the lifetime of the guest or until VDSM gets restarted.

	To handle this situation this patch introduces a mechanism to reconnect to the
	channel. Once an error occurred the setup callback is called, which gives the
	handled client the chance to recreate the socket and prepare it for a connect.
	After that callback was called, the errornous connection will be moved into the
	unconnected items dict where it will be handled by the event loop.

	If there have been 5 or more unsuccessful attempts made the reconnect rate will
	be slowed down to the same time as specified for the 'read timeout'.
	The items which are slowed down are moved into the 'reconnect_cooldown' dict.

	Bug-Url: https://bugzilla.redhat.com/871616

	vdsm: Delay desktop lock until we are sure it was a disconnect
	This is a hack to mitigate the issue of spice-gtk not respecting the
	configured secure channels [1]. Spice-gtk is always connecting first to
	a non-secure channel and the server tells the client then to connect
	to a secure channel. However as a result of this we're getting events
	of false positive disconnects and we need to ensure that we're really
	having a disconnected client
	This timer is supposed to delay the call to lock the desktop of the
	guest. And only lock it, if it there was no new connect.
	This is detected by the clientIp being set or not.

	[1]: https://bugzilla.redhat.com/show_bug.cgi?id=879352

	Bug-Url: https://bugzilla.redhat.com/905930

2013-04-17  Eduardo Warszawski  <ewarszaw@redhat.com>

	Add forceLink() which replaces a link if it already exists.
	Reduce the number of fileUtils.safeUnlink() callers.
	safeUnlink() will be removed, using rmFiles() instead.

2013-04-17  Federico Simoncelli  <fsimonce@redhat.com>

	image: update the volume permissions when needed
	Volumes leaves created in 2.2 did not have the group writeable bit
	set. In order to be able to start VMs from old NFS volumes we need
	to check (and eventually fix) the group permissions during the volume
	preparation.

	The code to address this issue was already present but commit 5a0b2c9
	reintroduced the problem substituting the prepareVolume calls with
	prepareImage.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=911417

2013-04-17  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove fileUtils.cleanupfiles().
	Racy, redundant, named out of convention, ...

	Remove fileUtils.safeUnlink().
	safeUnlink() usage replaced by utils.rmFile() calls.

2013-04-17  Petr Sebek  <psebek@redhat.com>

	Bond destroying
	If there is deleted network with bond other than bond[0-4] and no
	other network is using that bond, the bond is destroyed. bond[0-4]
	must be kept for backward compatibility, but we don't want to accumulate
	any other bond.

	Because we need same set of bondings in load_needed_modules.py.in, set of
	bondings was added to netinfo and imported from there. The path to
	bonding masters now also comes from netinfo.BONDING_MASTERS.

	Bug-Url: https://bugzilla.redhat.com/928442

2013-04-17  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Use 'ip link' to get different kinds of interfaces
	It's a little faster than listing the dir '/sys/class/net'

2013-04-16  Dan Kenigsberg  <danken@redhat.com>

	vdsmd: do not swallow libvirt error
	Recently I've seen multiple cases of vdsm not starting up with a vague
	error "Failed to define network filters on libvirt", when the underlying
	issue was that libvirt has crashed.

	It's better to have a line or two of log noise, in order to see that
	libvirt could not have been reached.

2013-04-15  Dan Kenigsberg  <danken@redhat.com>

	sampling: a quick fix to make vdsm run again
	commit c506391442bc was merged too quickly, leaving a process that fails
	to start due to
	    AttributeError: 'HostStatsThread' object has no a ttribute 'nics'

2013-04-14  Antoni S. Puimedon  <asegurap@redhat.com>

	NetReload: Moved addNetwork logic to the configurator
	This change starts moving the logic of configNetwork API endpoints
	towards the configurators.

	configureBridge, configureVlan, configureBond and configureNic
	after this patch have to take care of the underlying devices
	explicitly in the configurator modules. However, the underlying
	device handling will be abstracted to the network models in a
	future patch. Thus, the code of configureBond for any configurator
	such as Ifcfg is gonna be something like:

	self.configWriter.addBonding(params)
	for slave in bond.slaves:
	    slave.configure(params)

2013-04-14  Vered Volansky  <vvolansk@redhat.com>

	Catch appropriate KeyError instead of any exception
	resourceManager.registerNamespace() raises a KeyError exception.
	Calling methods were catching any exception, treating all as
	KeyError, which means non-KeyError exceptions were swallowed. Now only
	KeyErrors are caught and logged as info (instead of warn), and other
	potential exceptions are not caught at all, i.e., not swallowed
	anymore.

2013-04-14  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: increase policycoreutils version for RHEL
	Due bz#893065 if selinux is disable vdsm package can not
	be installed on RHEL systems.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=903309

2013-04-12  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Separate sampling code from vdsm.utils
	vdsm.utils should only include helper functions which could be shared
	different modules. Sampling is a separate function, so it should be
	moved out of utils. It could resolve the problem of circular import.

2013-04-11  Assaf Muller  <amuller@redhat.com>

	Device custom properties: Cache device XML after hotplug
	We now cache new device XML after diskHotplug and nicHotplug,
	just like we cache device XML when they are created during
	vmCreate.

2013-04-11  Federico Simoncelli  <fsimonce@redhat.com>

	spec: enable gluster upstream and on fedora 19
	The gluster package should be always enabled upstream or since fedora 19
	in koji builds.

	spec: use the fedora systemd macros
	Add the support for the fedora systemd macros introduced in fedora 18.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=850412

	svdsm: fix fuser import in supervdsmServer

2013-04-11  Vered Volansky  <vvolansk@redhat.com>

	Remove storage messages from syslog
	Storage messages are irrelevant to the syslog and still appear in the
	vdsm log.
	vdsm/storage/fileUtils.py is now logging to Storage.fileUtils.

2013-04-10  Peter V. Saveliev  <peet@redhat.com>

	vdsm: change default migration bandwidth in conf
	Libvirt changed the default behaviour in migration bandwith
	definition. Prior to versions 0.10.x it used "0" to define
	default 32MBps limit, now it uses "0" to define unlimited
	speed.

	This patch preserves the former way, when the default was
	32MBps. It needed in enterprise environments, where mass
	migration with unlimited bandwith can have a serious impact
	on the network infrastructure.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=925981

2013-04-10  Saggi Mizrahi  <smizrahi@redhat.com>

	Don't user sudo in fuser

2013-04-10  Yeela Kaplan  <ykaplan@redhat.com>

	Remove redundant parameter that breaks resourceManager test

2013-04-10  Antoni S. Puimedon  <asegurap@redhat.com>

	NetReload: ConfigWriter, ifup/down to configurator
	NetworkReloaded mandates that the configuration done by
	configNetworks shall be done using configurators that do the
	step of modifying the state of the networking stack.

	This patch moves ConfigWriter ifup and ifdown to the
	ifcfg configurator module (in netconfg) while keeping everything
	working. Next in the series there shall be patches that wrap
	the methods that were moved into actions done to the Ifcfg
	Configurator object.

2013-04-10  Federico Simoncelli  <fsimonce@redhat.com>

	vm: rename _updateDrive to updateDriveParameters
	As preparation for change I472c2931 the method _updateDrive is renamed
	to updateDriveParameters to avoid confusion with updateDriveVolume.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=923964

2013-04-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	Checking syslog availability before starting vdsm
	If logger is not able to open /dev/log, it throws exception and vdsm
	does not start. This path verifies that this file exist and fail vdsm
	start if not.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=928861

2013-04-09  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Ignore after_vm_cont hook if _dom was not yet created
	There's a race condition happening which results in an exception because the
	domain has not yet being assigned/created.

	This is a workaround to fix the exception from happening, however this is not
	a long term solution.

2013-04-09  Peter V. Saveliev  <peet@redhat.com>

	vdsm: fix Vm cleanup routine
	The issue was that on Vm disk hot unplug the general clean up routine
	was called, that wiped out also qemu and ovirt guest agent's sockets.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=927143

2013-04-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.init.in: removing /var/log/vdsm/libvirt.log
	We added it quite long ago to track libvirt lost event issues.
	These days we are much stable and libvirtd.log already contains
	libvirt informations.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=928217

	vdsm.spec.in: with_gluster
	Option to manage Gluster sub-package.

2013-04-08  Saggi Mizrahi  <smizrahi@redhat.com>

	testrunner: Add NOSE_COLOR env var
	Allows forcing output of color to non terminal.

	Useful for case where the errors are longer then the scrollback:

	    NOSE_COLOR=1 ./run_tests_local.sh jsonRpcTests | less -R

2013-04-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	shareVolumeRollback() should raise when recovery failed.
	Engine does not care whether an exception is thrown during
	rollback, as such exception is caught by task.Task._run() when
	it is calls the rollback function.
	Removed try blocks in order to raise exceptions caused by failed
	volume link removal in other than an inexistent link.

	Make getAllVolumes() not fail on broken images.
	getAllVolumesImages differentiates between legal and remnants.
	Added getAllRemnants for garbage detection.

	Related to: BZ#905938, BZ#910013, BZ#875708

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=917363

	Marking del/zero volumes in blockSD class.
	Previous delete was not atomic since lvremove of multiple LVs can
	partially fail (e.g. since volume is open) leaving some volumes
	intact and others deleted.
	Marking before delete will enable garbage collection in such cases.
	The old rename convention is not atomic since the rename should be
	done sequentially.

	Related to: BZ#905038, BZ#910013, BZ#875708

2013-04-07  Federico Simoncelli  <fsimonce@redhat.com>

	sp: refreshDomainLinks before convertDomain
	Domain conversion requires the links to be present.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=948346

2013-04-07  Muller  <amuller@redhat.com>

	Device custom properties: Keep non-custom devices in domxml
	Bug fix for device custom properties feature: Previously only
	devices with custom properties were added to the VM's domxml
	because of stupidity. Now all devices are added and device
	creation hooks are called only for devices with custom
	properties.

	Patch Sets 2-5:
	Styling, naming.

2013-04-07  Yeela Kaplan  <ykaplan@redhat.com>

	sp: invalidate lvm cache if attachSD fails
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=883390

2013-04-06  Antoni S. Puimedon  <asegurap@redhat.com>

	sriov: Make the hook safe for concurrency
	The current model uses a cache that is not locked and could
	be overwritten by a second VM creation effectively preventing
	the return of the chown to root:root.

	This patch solves that by creating with exclusivity a file for
	each virtual function that is attached (thus avoiding locking)
	but having concurrency safety due to the OS guarantee that the
	not more than a single processes can perform an open when the
	flags O_CREAT | O_EXCL are set.

2013-04-05  Antoni S. Puimedon  <asegurap@redhat.com>

	Make sr-iov hook use interface instead of hostdev
	According to libvirt documentation, for the sr-iov virtual function
	"nics" to have permanent and unique MAC addresses, the passthrough
	should be done using <interface type='hostdev'> instead of
	<hostdev>.

	This change modifies the hook to take advantage of this libvirt
	definition for stable sr-iovs.

	The chown step is necessary to attach the virtual function to the VM
	Otherwise, it is not possible to detach the virtual function from the
	OS and attach it to the VM due to dynamic_ownership=0 (which is
	necessary for network storage because dynamic ownership, ATM, always
	sets ownership to root:root on VM destroy/hotunplug).

2013-04-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding rsyslog requierment to spec
	Without rsyslog service, vdsm logger throws exception and does not
	start.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=928861

2013-04-04  Federico Simoncelli  <fsimonce@redhat.com>

	sp: remove duplicated code for repoPath

2013-04-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	Increasing the amount of open file descriptor for vdsm user
	As part of fixing fds leak we increase the amount of available open fds
	to allow stability in large scale of simultaneously operations.
	Currently lv operations can't run simultaneously and
	wait for pior operation to end. Simultaneously attach sd requests open
	fds and close them only after end, when operation waits on lv operation
	vdsm keeps the fds open for long time.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=920532

2013-04-04  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix crash on vm start with netdevs w/out some info
	Some devices, like sr-iov do not have information in the domxml to
	represent name and model.

	This patch fixes the issue by detecting when we are dealing with a
	passed through device and setting special values for name and model.

2013-04-04  Assaf Muller  <amuller@redhat.com>

	Per device custom properties for before/after vm destroy.
	Patch Set 2:
	Run before/after device destroy hooks only on devices that
	have custom properties. after_device_create,
	before_device_destroy and after_device_destroy hook calls
	now share code (Removed code duplication).

	Patch Set 3+:
	Code styling and prettifying.

2013-04-04  Muller  <amuller@redhat.com>

	Added support for before and after device create.
	before_device_create is called for each device,
	that has custom properties, right before
	before_vm_create. Each such hook is supplied the device's
	dom xml and any custom properties. after_device_create is
	called for each device that has custom properties
	right after after_vm_start.

	Patch Set 2:
	Changed it so only devices that have custom properties
	call such per-device hooks. Styled up code.

	Patch Set 3+
	Styling / fixing comments.

2013-04-04  Assaf Muller  <amuller@redhat.com>

	Custom properties per device.
	This is the first commit in a series of patches that
	will implement custom properties per device.
	The first commit deals with hot plugging and unplugging
	devices and enabling custom properties for those hook
	points.

	Patch Set 1:
	1) All methods related to nic and disk hot plug and unplug
	in hooks.py and libvirtvm.py now pass the params dictionary
	onwards.

	2) Added unit test 'deviceCustomProperties' under hooksTests.py,
	that verifies that a custom property sent to a hook is indeed
	available in that hook.

	Patch Set 2:
	Updated the man page to reflect the fact that custom properties
	are now exposed as environment variables to device hooks

	Patch Set 3:
	Broke down long line in man page.

2013-04-03  Alon Bar-Lev  <alonbl@redhat.com>

	vdsm-reg: avoid issuing errors to console
	Using logging.error() during the ovirt-node dialog results in writing
	messages to console. This is undesired in dialog mode.

	Change the error to debug to avoid.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=947905

2013-04-03  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Fix iSCSI functional tests in Fedora 18
	There are two fix.

	1. modprobe iscsi_target_mod before running tests in Fedora 18

	In Fedora 18, iscsi_target_mod is not loaded by default. If the module
	is not loaded, the rtslib will fail to configure iSCSI targets for the
	storage backend and the test will fail. This patch load the module
	explicitly before running the tests.

	2. Wait for some time for VDSM to refreshing the device list

	If two iSCSI tests are arranged back to back, we should wait for VDSM to
	refresh the iSCSI session info. Otherwise the _getIqnDevs method fails.

2013-04-03  Yeela Kaplan  <ykaplan@redhat.com>

	Relink template hard links to meta and lease files
	In file based domains every image that is based on a
	template contains a hard link to the template volumes.

	Since an export domain may contain images without the
	backing template, when copying the template to the export
	domain we need to relink the derived images to it to be able
	to later on collapse the chain on import
	(without qemu-img crashing).
	In addition, in case we're importing a template to override a
	corrupted template we also need to relink.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=864073

2013-04-03  Mark Wu  <wudxw@linux.vnet.ibm.com>

	netinfo: there may be up to one network attached directly to an Iface
	Since one nic could be only used for one non-VLANed bridge or one non-VLANed
	bridgeless network, it needn't continue to check other networks after
	found one.

2013-04-03  Federico Simoncelli  <fsimonce@redhat.com>

	image: placeholder optimization on preallocation
	When the destination of a copy or move command is an NFS domain
	we should try to optimize the placeholders creation avoiding
	unnecessary prezeroing (only relevant case: RAW PREALLOCATED).
	In such case in the past we were using a TEMPORARY_VOLUME_SIZE
	to create a placeholder with a temporary size of 10Mb.
	This is interfering with live storage migration as the following
	volumes in the chain are inheriting the temporary size inside the
	qcow header (virtual disk size).
	With this patch we are instead forcing the creation of the volume
	as SPARSE as this won't have any side effect on the qcow header.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=910445

2013-04-02  Mark Wu  <wudxw@linux.vnet.ibm.com>

	trivial: Use os.uname to get kernel version insteaf of reading proc files

2013-04-02  Douglas Schilling Landgraf  <dougsland@redhat.com>

	dsaversion: Adding raw_version_revision
	Due commit 23a0c7199371a8f6b767b8f49c87da11b466d7da, currently
	we cannot change the way we show version and release or it
	will affect old oVirt Engine versions. To keep compatible,
	this patch will add raw_version_revision which can be used
	to show the version and revision during VDSM initialization.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=893193

2013-03-31  Federico Simoncelli  <fsimonce@redhat.com>

	vdsm: move vdsm_cli to the new location in the repository
	Additionally the file lists (e.g. gitignore, Makefile.am, etc.) that
	contained the vdsm_cli path have been reordered alphabetically.

2013-03-29  Timothy Asir  <tjeyasin@redhat.com>

	gluster: fix nasty 'glusterfs not installed' vdsm.log warnings

2013-03-28  Amador Pahim  <apahim@redhat.com>

	Probe cpu count from new libvirt capabilities.
	vdsm is using libvirt to get cpu count information. Libvirt was not
	reporting the right information on AMD Bulldozer 62XX processors
	or unusual cpu architectures. To fix it , libvirt people introduced[1]
	the expanded capabilities topology output:

	<capabilities>
	  <host>
	    <topology>
	      <cells num='3'>
	        <cell id='0'>
	          <cpus num='4'> <!-- this is node with Hyperthreading -->
	            <cpu id='0' socket_id='0' core_id='0' siblings='0-1'/>
	            <cpu id='1' socket_id='0' core_id='0' siblings='0-1'/>
	            <cpu id='2' socket_id='0' core_id='1' siblings='2-3'/>
	            <cpu id='3' socket_id='0' core_id='1' siblings='2-3'/>
	          </cpus>
	        </cell>
	        <cell id='1'>
	          <cpus num='4'> <!-- this is node with modules (Bulldozer) -->
	            <cpu id='4' socket_id='0' core_id='2' siblings='4-5'/>
	            <cpu id='5' socket_id='0' core_id='3' siblings='4-5'/>
	            <cpu id='6' socket_id='0' core_id='4' siblings='6-7'/>
	            <cpu id='7' socket_id='0' core_id='5' siblings='6-7'/>
	          </cpus>
	         </cell>
	        <cell id='2'>
	          <cpus num='4'> <!-- this is a normal multi-core node -->
	            <cpu id='8' socket_id='1' core_id='0' siblings='8'/>
	            <cpu id='9' socket_id='1' core_id='1' siblings='9'/>
	            <cpu id='10' socket_id='1' core_id='2' siblings='10'/>
	            <cpu id='11' socket_id='1' core_id='3' siblings='11'/>
	          </cpus>
	         </cell>
	      </cells>
	    </topology>
	  </host>
	</capabilities>

	As libvirt use a fallback fake topology when probing unusual cpu
	architectures (for example, AMD 6200 series), new capabilities is
	the only reasonable source of information for any cpu architecture[2].

	vdsm must be changed to read cpu information from this new source.

	- cpuThreads: To gather the number of threads, take the total number of
	processors by counting the "<cpu ...>" lines in the NUMA topology
	section.

	- cpuCores : Count the siblings information. The number of distinct
	siblings info determines the number of cores. On a bulldozer machine
	all cores have separate core_ID but they share the siblings, as they're
	threads.

	- cpuSockets: Count the number of distinct "socket_id".

	[1] - http://libvirt.org/git/?p=libvirt.git;a=commit;h=79a003f9b0042ef4d2cf
	[2] - https://www.redhat.com/archives/libvir-list/2013-January/msg01140.html

2013-03-28  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	make user and group names in vdsm udev rules configurable
	In Ubuntu, the group name of qemu is not "qemu" but "kvm". This patch
	makes the user and group names in the rule file configurable.

	The patch is on going work of porting VDSM to Ubuntu
	http://www.ovirt.org/VDSM_on_Ubuntu

2013-03-28  Yeela Kaplan  <ykaplan@redhat.com>

	image: Set legality of volume to LEGAL after copy
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=864073

2013-03-27  Yeela Kaplan  <ykaplan@redhat.com>

	Remove hbtl attribute of non-scsi devices
	hbtl addressing has no meaning when it comes to cciss
	(and also non-scsi) devices since hbtl is scsi addressing
	and cciss is not a scsi device.
	multipath actually "makes up" hbtl values for cciss devices
	in its implementation, and gives the lun in the hbtl quartet
	the default value '0'.

2013-03-27  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix _getNetworkIp for non-bridged networks.
	Since this method servers for any kind of network, not just
	bridged ones, we shouldn't convert network to the backing
	device before calling getaddr.

	Bug-Url: https://bugzilla.redhat.com/921595

	Reduce calling to ethtool.
	Currently we do separate ethtool device object retrieval for getaddr,
	getnetmask and getipv6addrs. This patch unifies it into a single
	getIpInfo while leaving the api for the separatemethods available.

	Furthermore, it simplifies the get method by moving the device
	specific methods to their own methods.

	As a bonus, this has about 25% perf when creating a netinfo.NetInfo
	instance.

2013-03-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	Encode '=' when persisting the Task.
	"For a reason unknown (to me), task.py does not use pickle to
	persist its data to file. We cannot fix that without breaking
	backward-compatibility."
	Danken, circa 2012.

	Caveat Emptor:
	This patch expands the string space that can be encoded when
	a task is dumped and not tries to solve all task serialization
	issues.
	Since the old code ignored fields that can't be encoded,
	we continue to assume that doing this no harms the system.
	Based on this assumption we are disregarding the case of a task
	load in a host with this code when the dump contains real '_eq_'.

	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=915068

2013-03-25  Yeela Kaplan  <ykaplan@redhat.com>

	storageServer: fix connect to detect mount errors
	Raise the appropriate exceptions in case of mount error or
	permissions error to mount point.
	Also, exit connect in case of mount failure to avoid using
	uncreated mount.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=883877

2013-03-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: fence-agents-all
	fence-agents package in version 4 replaced the package name
	to fence-agents-all. This patch will adapt vdsm spec to this change.

2013-03-24  Antoni S. Puimedon  <asegurap@redhat.com>

	Optimize netinfo.networks.
	Currently netinfo.networks is doing three trips to libvirt:
	 - libvirtmod.virNetworkLookupByName
	 - libvirtmod.virConnectListNetworks
	 - libvirtmod.virNetworkGetXMLDesc

	With this change, we reduce it to:
	 - libvirtmod.virNetworkGetXMLDesc
	 - libvirtmod.virConnectListAllNetworks

	Testing
	========

	In [185]: %timeit foo()
	100 loops, best of 3: 4.45 ms per loop

	%timeit netinfo.networks()
	%100 loops, best of 3: 7.55 ms per loop

2013-03-24  Dan Kenigsberg  <danken@redhat.com>

	fix storage.fuser
	Bug-Url: https://bugzilla.redhat.com/922515

2013-03-24  Federico Simoncelli  <fsimonce@redhat.com>

	spec: bump libvirt version for el6
	The new libvirt version includes several bugfixes and enhancements to
	increase the reliability and the stability.

	Highlights:

	- BZ#915347 cannot resume a suspended vm
	- BZ#915354 cannot run a vm with several snapshots
	- BZ#922095 libvirtd memory leak

2013-03-21  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix IndexError when ifup does not give error msg
	There are some rare, but existing cases in which ifup does not print
	any error messages.

	configNetworks: network info gathering to netinfo
	These three methods are dealing with netinfo information and
	use netinfo instances (speciall ifaceUsers). This patch proposes
	moving them to netinfo.

	The other two methods could be left in configNetwork, but I would
	do it with a leading underscore.

	This is the first of a series of patches that build gradually
	towards network reloaded.

2013-03-21  Lee Yarwood  <lyarwood@redhat.com>

	vdsm: Add additional exception handling within vmChannels.py
	At present any exception thrown by _epoll.poll(1) is not caught. This patch adds
	additional exception handling to catch and log any exceptions thrown by the
	thread.

	Bug-Url: https://bugzilla.redhat.com/918541

2013-03-21  Antoni S. Puimedon  <asegurap@redhat.com>

	SetupNetworks: remove redundant logging.
	Most of setupNetworks was wrapped in a try catch the sole purpose
	of which was to log any error that could happen. This is not
	necessary anymore due to the fact that supervdsm.py (caller of
	setupNetworks) has its setupNetworks call under logDecorator
	which achieves the original purpose in a more generic way.

2013-03-21  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	Add 3.3. to clusterLevels
	Add version 3.3. to clusterLevels, returned by VDSM as part
	of engine calling getCapabilities. This allows to test 3.3
	specific features from engine.

2013-03-20  Amador Pahim  <apahim@redhat.com>

	Migration warning due to high guest memory changes
	Migration process consists in copy guest RAM to new Host. After the
	copy, migration code loops back to the beginning and re-copies all pages
	modified after the copy. The hope is that the list of pages which must
	be copied shrinks with each pass over the memory range.
	Guests with large number of memory writes can delay migration process
	and even stuck it, if memory writes are faster than memory copy.
	This patch add a message to expose this situation, improving the
	supportability.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=919201

2013-03-20  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Fix installation location of betterPopen

2013-03-20  Igor Lvovsky  <ilvovsky@redhat.com>

	Add migration network support.
	Add additional parameter to vmMigrate to support dedicated migration network
	http://www.ovirt.org/Features/Migration_Network

2013-03-19  Bala.FA  <barumuga@redhat.com>

	gluster: use remove brick cli xml output
	glusterVolumeRemoveBrickStart, glusterVolumeRemoveBrickStop,
	glusterVolumeRemoveBrickCommit and glusterVolumeRemoveBrickForce use
	gluster cli xml output than stdout parsing.

	glusterVolumeRemoveBrickStart is not consumed by engine/RHS-C yet,
	its OK to differ in compatibility issue now.

2013-03-19  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Move all files for the VDSM module to a separate folder

2013-03-19  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing ownership option for logrotate.conf
	After separting supervdsm log to external file, and that supervdsm uses
	the same logrotate configuration, we need to omit this option to keep
	supervdsm.log rotated without changing the ownership of the file.

	Seperating supervdsm log to supervdsm.log file
	Supervdsm as root process can change the logfile ownership to root when
	creating the file. Manual deletion of vdsm.log can cause this scenario.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=912308

2013-03-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	task: Fix spelling.

2013-03-18  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Storage connection reference: move persistent dir to /var/lib/vdsm
	The current persistent dir for connection reference is
	/var/run/vdsm/connections, however /var/run is tmpfs so it's not truely
	persistent enough. According to the WIKI page [1], the connection
	reference is meant to survive reboots. This patch moves the persistent
	dir to /var/lib/vdsm/connections to achieve this.

	[1] http://www.ovirt.org/Features/ConnectionReferences#Description

2013-03-17  Dan Kenigsberg  <danken@redhat.com>

	Require newer initscript
	Avoid initscript/udev bug https://bugzilla.redhat.com/907365 that cause
	network device renaming to "renameXX".

2013-03-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm: create /etc/modules-load.d/vdsm.conf
	systemd-modules-load.service(8) reads from
	/etc/modules-load.d/<program>.conf the kernel modules
	required to be loaded during the boot.

	This patch creates /etc/modules-load.d/vdsm.conf
	which will hold all kernel modules required by VDSM.

2013-03-16  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	multipath.py: add Ubuntu scsi_id path when searching for scsi_id
	The patch is on going work of porting VDSM to Ubuntu
	http://www.ovirt.org/VDSM_on_Ubuntu

2013-03-16  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Makefile.am: EXTRA_DIST ordered by LC_ALL=C
	Setting order.

2013-03-15  Bala.FA  <barumuga@redhat.com>

	gluster: use replace brick cli xml output
	glusterVolumeReplaceBrickStart, glusterVolumeReplaceBrickAbort,
	glusterVolumeReplaceBrickPause and glusterVolumeReplaceBrickCommit use
	gluster cli xml output than stdout parsing.

	glusterVolumeReplaceBrickStart is not consumed by engine/RHS-C yet,
	its OK to differ in compatibility issue now.

	gluster: use rebalance cli xml output
	glusterVolumeRebalanceStart and glusterVolumeRebalanceStop use gluster
	cli xml output than stdout parsing.

	glusterVolumeRebalanceStart is not consumed by engine/RHS-C yet, its
	OK to differ in compatibility issue now.

2013-03-15  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	hook-macspoof: fix packaging
	The macspoof is an optional package. When we configure without hook
	option, is not installed to rpmbuild/BUILDROOT. However in the
	vdsm.spec.in, it is not an optional package, so rpmbuild fails to
	locate the related file in this case.

	This patch moves the hook-macspoof file section to the optional hooks
	part in vdsm.spec.in .

2013-03-14  jarod.w  <work.iec23801@gmail.com>

	Delete useless withRelaunch argument of onReboot in vm.py
	If we set the withRelaunch argument to True, it can't work normally
	because function relaunch() on clientIF class isn't defined.Here, we
	delete the useless argument directly to avoid potential error.

2013-03-14  Assaf Muller  <amuller@redhat.com>

	New hook that disables mac spoof filtering
	'macspoof' is a new hook that disables mac spoof filtering on a
	VM basis.

2013-03-14  Jan Lieskovsky  <jlieskov@redhat.com>

	vdsm_hooks: Add support for checkimages VDSM hook
	Introduce the checkimages VDSM hook - perform consistency
	check on a qcow2 format disk image using the QEMU disk
	image utility.

	v2: remove whitespace noise
	    add support for block images

	v3: remove more tab noise

	VDSM hook alternative to the validateImage SPM command.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=611183

2013-03-14  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix validateBonding tests without bonding
	There were remnants of the old validateBonding test
	that were made obsolete by:
	    Change-Id: I023a5bb8a52719559bb9d4716f25e0cba8b3530b
	That monkeypatching is not needed anymore. Now we just skip
	the test if bonding is not loaded, i.e., BONDING_MASTERS
	sysfs does not exist.

2013-03-14  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	HostStatsThread: change way of counting CPUs
	There is no /sys/class/cpuid in Ubuntu Server 12.10 64 bit.
	Use max(os.sysconf('SC_NPROCESSORS_ONLN'), 1) instead.

	The patch is on going work of porting VDSM to Ubuntu
	http://www.ovirt.org/VDSM_on_Ubuntu

2013-03-13  Vered Volansky  <vvolansk@redhat.com>

	tests: testMethodBadParameters decorated as broken
	testMethodBadParameters Sometime fails the build, and sometimes doesn't.
	It's now decorated as broken until it's fixed.

2013-03-13  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-upgrade: fix xml format
	Fixed illegal XML that affects upgrade from Engine.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=920671

2013-03-13  Keith Robertson  <kroberts@redhat.com>

	sos: Follow symbolic links with tree command
	The VDSM SoS plug-in uses the tree command to get
	a view into storage domains.  SDs can
	contain symbolic links; however, tree does not
	follow symbolic links by default.  This patch sets
	an option on tree to follow symlinks so that the
	entire SD may be assessed.

2013-03-13  Bala.FA  <barumuga@redhat.com>

	gluster: set glusterfs dependency version
	Now vdsm-gluster depends on glusterfs version 3.4.0 or higher.

2013-03-13  Timothy Asir  <tjeyasin@redhat.com>

	Caps: Include glusterfs packages
	Updated getVdsCaps verb to provide glusterfs package info along with
	other key package details.

2013-03-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix mailbox Exception type.
	Making mailbox raised exception more precise.
	May be the 1st of an improved mailbox logging patches.

2013-03-12  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix races in sd.createMasterDir()

2013-03-12  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	define qemu process user and group in configure.ac for Ubuntu
	Ubuntu qemu process started by libvirt is libvirt-qemu:kvm, and there
	is no group named qemu, only group kvm. This patch sets the correct
	value of the variable in configure.ac .

	The patch is on going work of porting VDSM to Ubuntu
	http://www.ovirt.org/VDSM_on_Ubuntu

2013-03-12  Bala.FA  <barumuga@redhat.com>

	bootstrap: remove glusterfs packages
	As glusterfs packages are dependencies for vdsm-gluster package,
	having these in bootstrap is redundant

2013-03-12  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix checking bonding options for missing bonds.
	Right up until now, we were checking the options for a bond A
	that would have to be potentially created by checking for the
	existance of /sys/class/net/A/bonding/<opt>. Obviously, if the
	bond had not been created at that point, the option validation
	would fail.

	This patch makes the option validation be done on whichever bond
	is present on the system and, if none are, it creates the bond
	to check the options.

	Bug-Url: https://bugzilla.redhat.com/918666

2013-03-11  Yeela Kaplan  <ykaplan@redhat.com>

	storageServer: fix spelling

2013-03-11  Dan Kenigsberg  <danken@redhat.com>

	Do not attempt to run hook with an unknown vnic
	If hotunplugNic() is called with a badly-specified vnic, we should not
	run the after_nic_hotunplug_fail() hook, as we cannot supply its
	required param: nicXml is unassigned at this stage.

	Bug-Url: https://bugzilla.redhat.com/919356

2013-03-10  Mark Huth  <mhuth@redhat.com>

	dumpStorageTable to handle images with multiple leaf volumes
	dumpStorageTable encounters a KeyError exception if an image has
	multiple volume chains (and thus multiple leaf volumes) which occurs
	when previewing a snapshot.

	This patch allows dumpStorageTable to work with images that have
	multiple chains / leaf volumes.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=890983

2013-03-09  Mark Wu  <wudxw@linux.vnet.ibm.com>

	configNetwork: Improve the validation of netmask

2013-03-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Makefile.am: ignore false positive pyflakes lvm.py
	Temporary workaround.

2013-03-08  Mark Wu  <wudxw@linux.vnet.ibm.com>

	configNetwork: Fix bootproto preservation for bridgeless network
	bootproto should be also preserved for bridgeless network as what
	the commit 948057 fixed for static ip address.

2013-03-08  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	spmstop: add "--" to /usr/bin/kill invocation parameters
	In Ubuntu kill, invocation like "kill -9 -xxx" is not parsed correctly.
	We should use "kill -9 -- -xxx" instead.

	The patch is on going work of porting VDSM to Ubuntu
	http://www.ovirt.org/VDSM_on_Ubuntu

2013-03-07  Douglas Schilling Landgraf  <dougsland@redhat.com>

	AUTHORS: adding dougsland
	Adding myself.

2013-03-07  MeiLiu  <liumbj@linux.vnet.ibm.com>

	Fix mom and ksmtuned conflict
	Mom integrated in vdsm performs ksm adjusting according to the policies.
	If ksmtuned has been started before vdsmd, ksmtuned will afect the action
	performed by the ksm controller in mom. Therefor, ksmtuned is added as a
	conflict of vdsm which starts mom.

2013-03-07  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Fix localfs functional tests in Fedora 18
	localfs storage backend is placed in /tmp, however /tmp is tmpfs in
	Fedora 18 and it does not support direct IO, so we can not use it for
	storing the backend data and the tests fail.

	This patch create localfs storage backend in /var/tmp.

2013-03-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Adding with_systemd macro
	This patch adds the macro with_systemd which can be used
	to validate if the system uses Systemd.

2013-03-06  Aravinda VK  <avishwan@redhat.com>

	gluster: Handling Attribute error in Python 2.6
	xml.etree.cElementTree in Python 2.6 doesn't have the attribute
	ParseError(Introduced in Python 2.7). VDSM gluster/cli.py tries
	to capture etree.ParseError when gluster cli returns incompatible
	xml output.

2013-03-06  Vered Volansky  <vvolansk@redhat.com>

	hooks: Add disk hot plug/unplug hooks
	Added four hook points named:
	1. before_disk_hotplug
	2. after_disk_hotplug
	3. before_disk_hotunplug
	4. after_disk_hotunplug

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=908656

2013-03-06  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	fix a PEP 8 issue in vdsm/configNetwork.py

2013-03-05  Douglas Schilling Landgraf  <dougsland@redhat.com>

	engine.py: return False on cert error screen
	If we cannot download the engine certificate we should
	only show the error screen and return.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=895912

	engine.py: replace sed to setVdsConf
	Use the standard way to write into vdsm-reg.conf.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=890572

2013-03-05  Antoni S. Puimedon  <asegurap@redhat.com>

	Don't crash on libvirt network re-definition.
	This patch is aimed to solve the libvirt syncing bug described in
	bugurl. In short, the vdsmd restart scenario is solved by the
	previous patch (30c63c5).

	This one solves the case when the interface backing a bridge/network
	has disappeared (and thus is not reported by netinfo to the engine)
	and then the engine sends a new setupnetwork that attempts to
	recreate the partially defined network. Up until now, libvirt would
	report an exception. Now we make a best-effort to remove the network
	before trying to add it again, by adding a control case in the
	setupNetworks logic where networks to be removed are usually removed.

	Bug-Url: https://bugzilla.redhat.com/861701

2013-03-05  Roy Golan  <rgolan@redhat.com>

	Catch libvirt timeout and return an error on setVmTicket
	Return an errCode instead of an exception libvirt timeout in setVmTicket
	verb and setting the 'message' to be the exception string representation
	so upper layers would have more info about what went wrong.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=878064

2013-03-04  Shu Ming  <shuming@linux.vnet.ibm.com>

	Fix the broken PYTHONPATH
	@builddir@/vdsm is a non-exsiting path

2013-03-04  Federico Simoncelli  <fsimonce@redhat.com>

	build: add load_needed_modules.py.in to EXTRA_DIST

2013-03-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Ignore postZero flag when deleting an image on a fileSD.
	Ignoring parameters is very bad but we will continue to do that
	because fixing the engine is very hard.

	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=911209

2013-03-03  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: always check validateNotSPM when disconnecting from a pool
	At the moment of this writing vdsm doesn't have a valid flow to
	disconnect from a pool if the host is the SPM; the side effect
	of calling _disconnectPool (e.g. a failed refreshStoragePool) is
	that the SPM resource will remain locked.

	If we want to introduce a change to allow the disconnection from
	the pool even if the host is the SPM we should do it explicitly
	with a specific patch that stops the SPM.

2013-03-03  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	Override getLocalPathBase in GlusterFSConnection
	Override getLocalPathBase in GlusterFSConnection as a better
	way to specify mount point for GlusterSD

2013-03-01  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	Introduce getLocalPathBase for MountConnection
	Introduce getLocalPathBase in MountConnection so that
	class re-using it can override it to present their own
	path base.

2013-03-01  huntxu  <mhuntxu@gmail.com>

	configNetwork: improve assertBridgeClean

	network: reuse netinfo.ports()

2013-02-28  MeiLiu  <liumbj@linux.vnet.ibm.com>

	Fix sslTests import bug
	ImportError for SecureXMLRPCServer is triggered when the test runns in
	installed directory.
	It should be imported from vdsm folder in python library.

2013-02-28  Antoni S. Puimedon  <asegurap@redhat.com>

	Improve the readability of define.py
	Maintain pep8 compatibility but improve the readability by
	recovering some space (reducing indentation).

2013-02-28  Yeela Kaplan  <ykaplan@redhat.com>

	If attachSD fails - rescan for new vgs not visible from spm
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=883390

2013-02-27  Federico Simoncelli  <fsimonce@redhat.com>

	pool: ignore refreshStoragePool calls on the SPM
	The refreshStoragePool command is an HSM command and should not be
	issued (and executed) on the SPM. At the moment we just ignore it
	for legacy reasons but in the future vdsm could raise an exception.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=882958

2013-02-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding sudo rules to multipath and removing unused rules
	When vdsm tries to cp multipath.conf file as part of setupMultipath that
	tries to keep the last multipath.conf file into multipath.conf.1, we get an
	error that sudo command requires a password.

	This patch add rules to allow operations on absolute path of multipath.conf
	file.

	Removing old code that related to directories that vdsm doesn't use anymore.

	Bud-Id: https://bugzilla.redhat.com/show_bug.cgi?id=907389

2013-02-26  Dan Kenigsberg  <danken@redhat.com>

	caps: allow rpm name to be different from reported package name
	This patch makes it easier to ship a package which is implemented by a
	differently-named rpm. It mimics what we have for Debian, even though
	currently this patch keeps the exact mapping.

2013-02-26  Federico Simoncelli  <fsimonce@redhat.com>

	stats: compute the iso prefix asynchronously
	The iso prefix must be computed asynchronously because in any other
	synchronous operation (e.g.: connectStoragePool, getInfo) vdsm cannot
	risk to stop and wait for the iso domain to report its prefix (since
	it might be unreachable).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=880098

2013-02-26  Dan Kenigsberg  <danken@redhat.com>

	tool: _enable_bond_dev: reopen bonding_masters per bond
	Writing multiple +bondnames into /sys/class/net/bonding_masters is not
	enough to add new bonding devices. One has to reopen that file for each
	added bond.

2013-02-26  Federico Simoncelli  <fsimonce@redhat.com>

	pool: refactor getInfo and getRepoStats
	Both getInfo and getRepoStats (in StoragePool) grown some
	inconsistencies over time. It's time to do some cleanup in
	this area before proceeding with any additional change.

2013-02-25  huntxu  <mhuntxu@gmail.com>

	tc: set/unset promisc when it's really needed
	When setPortMirroring is called multiple times for the same network (in
	case that more than one vms on the same host would monitor the same
	logical network), we don't need to set the device's promisc flag to on
	more than once.

2013-02-21  Yaniv Bronhaim  <ybronhei@redhat.com>

	Add to logrotate conf file that new created logs will be owned by vdsm
	Using create options that set each new log file to mode 644 owned by
	user vdsm and vdsm group

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=912308

2013-02-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	Uniform LocalDirectoryConnection.checkTarget() errors.
	Hard to believe: there are uglier things the the True or Exception
	pattern.

2013-02-20  Yaniv Bronhaim  <ybronhei@redhat.com>

	removing the use of zombie reaper from supervdsm
	This may solve validateAccess errors, but can cause defuct subprocesses.
	This patch is signed as WIP until we'll find better solution, until then
	this patch helps to verify if the previous errors that was caused thanks
	to zombie reaper handling don't occur.

2013-02-19  Adam Litke  <agl@us.ibm.com>

	api: Convert process_schema.py to use vdsmapi.get_api()

	api: Convert schemaTests to use vdsmapi.get_api

	api: Move DynamicBridge to vdsmapi schema processing

2013-02-19  Eduardo Warszawski  <ewarszaw@redhat.com>

	Do not delete the template when zeroing a dependant image.
	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=910013

2013-02-19  Dan Kenigsberg  <danken@redhat.com>

	Drop remnant CMD_LOWPRIO
	Commit aba12f81be549 attempted to drop all CMD_LOWPRIO, but due to a sloppy
	rebase, one reference remains.

2013-02-19  Adam Litke  <agl@us.ibm.com>

	tests: Skip stress tests that behave badly when run in parallel
	A particular test: resourceManagerTests.testStressTest works by spawning lots of
	threads to test the resource manager.  Unfortunately, when run in parallel with
	other tests (as happens on Jenkins), it can cause spurious errors in comletely
	unrelated tests by causing the user to exceed its thread limit.  There is no
	real way around this problem other than to skip this test when tests can be
	running in parallel.

	To achieve this, introduce a new nose plugin (similar to SlowTestsPlugin) that
	can be activated by a command line parameter or environment variable.  When
	active, tests marked as @stresstest will be skipped.

	The environment variable NOSE_SKIP_STRESS_TESTS should be added to the Jenkins
	unit test job.

2013-02-19  Peter V. Saveliev  <peet@redhat.com>

	hook_faqemu: using libvirt instead of hacking it
	Passing -no-kvm / -enable-kvm directly to qemu is a rather bad idea,
	if you do not change domain type. These options should be set by
	libvirt upon the domain type: domain type='kvm' will engage kvm
	and domain type='qemu' will use faqemu correctly in all libvirt
	versions on any host type.

	Since vdsm-faqemu do not provide nothing but this option hack,
	it can be safely removed, libvirt will do all the work. Beside of
	that, there is no need for /dev/kvm creation hack, since domain
	type='qemu' does not check it on the startup.

2013-02-19  Adam Litke  <agl@us.ibm.com>

	api: Organize schema symbols by type
	Currently the vdsmapi module returns the parsed schema as a large list of
	symbols.  Consumers of this list have all resorted to reorganizing the symbols
	by type (commands, types, enums, maps, etc).  Rather than forcing each user to
	rewrite this code, just do it correctly at the source.  This reduces code
	duplication and makes at easier to add new symbol types (such as events and
	errors).

2013-02-19  Saggi Mizrahi  <smizrahi@redhat.com>

	jsonrpc: Make jsonrpc an independent package
	The json-rpc core is needed by the client and by the server.

	I changed the package name to yajonrpc (yet another json-rpc) to avoid
	collisions with existing jsonrpc implementations.

	jsonrpc: Use the AsyncoreClient implementation in tests too
	No need to have two implementation for the same thing

	jsonrpc: Check for credit before popping a message from the queue

	jsonrpc: Use asyncore instead of custom solution
	Use the built in asynchronous loop infrastructure instead of a custom
	one. This is much less code to maintain.

	I purposefully changed dumped the tcpReactor name for the class and
	module because I will do some more work to add unix sockets in the
	future.

	If only someone would have told me this existed beforehand. I wouldn't
	have spent so much time on the original reactor. Anyway, no use crying
	over spilt milk.

	jsonrpc: Make reactor clients 1st class objects
	Also add support for batch requests, tests to come soon

	jsonrpc: Remove unecessary check

2013-02-18  Giuseppe Vallarelli  <giuseppevallarelli@gmail.com>

	doc: Solved sphinx-build import errors.
	Added _static folder to remove a sphinx-build warning,
	removed obsolete SPM.rst, updated doc Makefile it now
	exports the PYTHONPATH, before doc generation create_sl
	is invoked and adds a symbolic link to vdscli.py in the
	vdsm python package if it's missing. Reduced warnings
	with :noindex: directive.

	doc: Added make file target, treating warnings as errors.
	Added htmlstrict make file target, warnings are treated
	as errors making sphinx-build stop doc creation.

	doc: updated conf.py and different *.rst files with new references.
	Updated conf.py (sys.path, copyright's year), Removed empty
	storage/overview file. Updated references in the different
	*.rst files by using fully qualified package names.

	Doc generation now works except for clientIf and vm modules,
	but a little step is necessary: adding to the PYTHONPATH
	the vdsm python package.

	doc: Reorganized doc structure in root project folder
	Moved the sphinx doc at project root folder, got rid
	of source folder inside doc, updated Sphinx Makefile
	and .gitignore to not track doc/build folder.

2013-02-18  Adam Litke  <agl@us.ibm.com>

	api: Remove some unneeded functions from vdsmapi.py

	api: Separate api schema into its own package
	The vdsm schema definition is needed by the vdsm server but also by clients.
	Split the shema into its own package so it can be installed by clients without
	pulling in server-side dependencies.

2013-02-14  Muller  <amuller@redhat.com>

	Issue when running make rpm in Fedora 18 without root access.
	The ConfigWriterTests:testPersistantBackup fails, because it uses libvirt's
	createNetwork and removeNetwork functions, but libvirt requires root access.
	The current solution is to use monkey patch, and simply nullify the create
	and remove network functions. The test now passes, but this might
	not be the ideal solution to the problem.

2013-02-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	Adding VM based locks to ovf modify functions.
	Caveat Emptor:
	Avoids concurrent runs, but not serializes.
	Simultaneous updates or removes of ovf files (like removing many
	disks from the same VM) may result in inconsistent ovf's.

	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=878894

	Move hsm.validatePoolSD() -> pool.validatePoolSD().
	Since StorageDomainNotMemberOfPool and StorageDomainNotInPool
	are handled the same in the Engine is better to raise the
	proper Exception in spite that before
	StoragePool.validateAttachedDomain() raised the 2nd one only.

	Related to BZ#878894.

2013-02-13  Antoni S. Puimedon  <asegurap@redhat.com>

	Simplify removeVlan by removing duplicated code.

2013-02-13  Adam Litke  <agl@us.ibm.com>

	tests: Make getFreePort work in a multithreaded environment
	getFreePort does not currently work reliably if multiple copies are running
	concurrently.  Since each copy starts at the same port, the chance of choosing
	the same port number at the same time is great.  Switch to letting the OS find
	an available port.

	This should fix the intermittent failures of jsonRpcTests and apiTests.

2013-02-13  Antoni S. Puimedon  <asegurap@redhat.com>

	Make vdsClient prettyprint dictionaries.
	This helps a lot reading getVdsCaps.

	This change makes that something like this:

	networks = {'ovirtmgmt': {'iface': 'ovirtmgmt', 'addr': '10.34.60.86', 'cfg': {'IPV6INIT': 'yes', 'MTU': '1500', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'BOOTPROTO': 'dhcp', 'DEVICE': 'ovirtmgmt', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'ipv6addrs': ['fe80::5054:ff:fe68:2557/64'], 'mtu': '1500', 'netmask': '255.255.252.0', 'stp': 'off', 'bridged': True, 'ipv6gateway': '::', 'gateway': '10.34.63.254', 'ports': ['eth0']}}

	Becomes this:

	networks = {'ovirtmgmt': {'addr': '10.34.60.86',
	                          'bridged': True,
	                          'cfg': {'BOOTPROTO': 'dhcp',
	                                  'DELAY': '0',
	                                  'DEVICE': 'ovirtmgmt',
	                                  'IPV6INIT': 'yes',
	                                  'MTU': '1500',
	                                  'NM_CONTROLLED': 'no',
	                                  'ONBOOT': 'yes',
	                                  'TYPE': 'Bridge'},
	                          'gateway': '10.34.63.254',
	                          'iface': 'ovirtmgmt',
	                          'ipv6addrs': ['fe80::5054:ff:fe68:2557/64'],
	                          'ipv6gateway': '::',
	                          'mtu': '1500',
	                          'netmask': '255.255.252.0',
	                          'ports': ['eth0'],
	                          'stp': 'off'}}

2013-02-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix bad  image tagging when postzeroing.
	The postzero code fails to remove the image tag from the volume
	and adds an extra tag without the right prefix.

2013-02-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	After fail to connect to supervdsm more than 3 time vdsm gets into panic
	Due to race between old supervdsm instance to the new instance after
	prepareForShutdown, sometimes the socket is removed after
	new supervdsm started to listen on it.
	_pokeParent thread unlink the socket when distinguish that vdsm is dead.
	This can take more time than the time that takes to vdsm to startup and
	start the new instance of supervdsm. The unlink removes the socket file
	and vdsm cannot communicate with supervdsm.
	When the communication fails, vdsm calls panic and restart itself, this
	will start supervdsm again as needed.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=910005

2013-02-12  Peter V. Saveliev  <peet@redhat.com>

	vdsm: migration status structure refactoring

2013-02-12  Gal Hammer  <ghammer@redhat.com>

	BZ#841555 A migration failure with an "AttributeError" exception.
	Libvirt sometimes send the SUSPENDED/SUSPENDED_PAUSED event
	after RESUMED/RESUMED_MIGRATED (when VM status is PAUSED
	when migration completes, see qemuMigrationFinish function).
	In this case self._dom is None because the function
	_waitForIncomingMigrationFinish didn't update it yet.

2013-02-12  Yeela Kaplan  <ykaplan@redhat.com>

	Change lvm filter use of regular expression to 'replace \x'
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=908776

2013-02-11  Peter V. Saveliev  <peet@redhat.com>

	vdsm: migration log messages spelling

2013-02-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing vdsm configuration when removing vdsm service
	Before we removed that section only over rhel and we looked for the
	wrong string. This patch adds sed command for both dist with the current
	string that is written by vdsmd init script.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=902346

2013-02-10  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#840407 - Create a fake template when moving to backup SD.
	This code is repeated twice because the copy in deprecated
	moveMultipleImages() will be removed when this image will be
	removed in the next version.
	All the related fake template code should be removed.

2013-02-09  Federico Simoncelli  <fsimonce@redhat.com>

	misc: handle properly timeout=-1 in NoIntrPoll
	The parameter timeout=-1 (no timeout) of NoIntrPoll wasn't properly
	handled by the previous implementation; it was in fact returning an
	empty set of file descriptors if the process was interrupted by a
	signal. This patch ensures that the parameter is taken in account
	(do not return until there is an event) even when the process is
	interrupted.

2013-02-08  Saggi Mizrahi  <smizrahi@redhat.com>

	tests: (OCD) Add space at the end of the sample string
	When the strings are concatenated there needs to be a space or there is
	a punctuation sign without a space after it.

	jsonrpc: Change start_listening to createListener

2013-02-08  huntxu  <mhuntxu@gmail.com>

	netinfo: report IPv6 information

2013-02-08  Saggi Mizrahi  <smizrahi@redhat.com>

	jsonrpc: Add support for multiple listeners
	Make is so that a reactor can have more then one listeners running

2013-02-07  Saggi Mizrahi  <smizrahi@redhat.com>

	jsonrpc: Change cxtr to connector to make the code a bit more understandable

	jsonrpc: Federate context and request-response objects
	This is the ground work needed to allow batch requests and bidirectional
	jsonrpc.

	jsonrpc: Add multi-threading option to JsonRpcServer

	jsonrpc: Fix race in ProtonReactor and add better delivery semantics

2013-02-07  Peter V. Saveliev  <peet@redhat.com>

	migrateStatus() progress report
	The percentage is based on libvirt dataTotal and dataRemaining
	fields of the virDomainJobInfo struct

	vdsm: fix tunneled migration regression

2013-02-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	Rename parent volume in blockSD.getAllVolumes.
	Renaming variable names for better readability.

2013-02-06  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix broken NFS.
	self.sdUUID does not exist when self.validateFileSystemFeatures
	is called.

	Broken by Icf14d1c4737.

2013-02-06  Gal Hammer  <ghammer@redhat.com>

	BZ#829110 Remove a "Domain not found" error from stats thread.
	Removed redundant code which changed VM status if error occured on
	the stats thead.

2013-02-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm: Move sysctl
	sysctl should be called at boot time.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=907086

2013-02-06  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#836161 - Remove preDeleteRename().

2013-02-05  huntxu  <mhuntxu@gmail.com>

	netinfo: implement functions gathering IPv6 information

2013-02-05  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Requires policycoreutils-2.1.13-55 to avoid another break on selinux disabled.
	When selinux is disabled on f18, it fails to import module sepolicy
	with an exception. It causes the the vdsm-tool unavailable, and therefore
	the bonding module can't be loaded when vdsm starts up. For details,
	please see https://bugzilla.redhat.com/show_bug.cgi?id=889698

2013-02-05  Dan Kenigsberg  <danken@redhat.com>

	split restore-net-conf away of vdsmd.init service
	There is no need to revert network configuration when vdsmd is
	restarted, only when the host is rebooted after being fenced.

	This becomes painfully visisble if vdsm is restarted due to spm
	failover, and while at it - rolls back an unrelated network
	configuration.

2013-02-05  Adam Litke  <agl@us.ibm.com>

	schema: Update VmDefinition to match current behavior
	The schema for VmDefinition was incorrect in that it had some fields marked as
	mandatory even though they may be omitted.  Also, exitCode and exitMessage were
	not included in the original definition.

	schema: Eliminate 'class' from StorageDomainInfo
	'class' is usually a reserved word and makes a bad name for a type field.
	Change it to domainClass and add the required type fixup to the Bridge.

2013-02-04  Saggi Mizrahi  <smizrahi@redhat.com>

	Storage: Check that underlying file system supports direct IO
	- Check when creating a domain
	- Check when creating a domain object

	This is done so that we don't allow posixfs domains on top of targets
	that don't support direct IO.

	Direct IO is needed in order to read the metadata reliably in a
	clustered environment. It is also a required feature for Sanlock.

2013-02-04  Dan Kenigsberg  <danken@redhat.com>

	configNet: allow delete/update of devices with no ifcfg
	In Fedora 18, ifcfg files are missing by default. This patch assumes
	that there are no custom MTU setting for a device with no ifcfg file.

	This version of the patch owes a lot to Mark Wu's
	http://gerrit.ovirt.org/11357 and to Toni who convinced me that it is
	better to read the MTU directly from kernel.

	Bug-Url: https://bugzilla.redhat.com/906383

2013-02-03  Eduardo Warszawski  <ewarszaw@redhat.com>

	Do not fail when getVSize is called on an inactive LV.
	Bug-uri: https://bugzilla.redhat.com/show_bug.cgi?id=878955

2013-02-01  Douglas Schilling Landgraf  <dougsland@redhat.com>

	load_needed_modules: adding bridge module
	if bridge module is not loaded
	net.bridge.bridge-nf-call-* is ignored by sysctl.

2013-01-31  Adam Litke  <agl@us.ibm.com>

	jsonrpc: Rearrange test classes for reusability

2013-01-31  Yeela Kaplan  <ykaplan@redhat.com>

	Handle spaces in device names using lvm filter
	any character that is not on udev whitelist (0-9, A-Z, a-z, #*-.:= _)
	will get translated into an encoded form \xNN where NN is the
	hex value of the character.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=876575

2013-01-30  Saggi Mizrahi  <smizrahi@redhat.com>

	tests: Fix race in misc:DdWatchCopy.testStop
	Use a named pipe instead of an actual source file so we know no data
	will ever be read.

2013-01-30  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Require openssl
	deployUtil uses openssl command, we should Require it.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=905728

2013-01-30  Dan Kenigsberg  <danken@redhat.com>

	Fedora 18: require a newer udev
	Due to https://bugzilla.redhat.com/903716 `udev: device node permissions
	not applied with "change" event' we could not use block storage in
	Fedora. Let us explicitly require a newerer systemd that fixes this
	issue, to avoid users' dismay.

2013-01-29  Lee Yarwood  <lyarwood@redhat.com>

	upgrade: catch MetaDataKeyNotFoundError when preparing images
	Ensure that we catch and continue past any MetaDataKeyNotFoundError
	exception when preparing images that may contain partially removed
	volumes. For example where the LV is still present but the metadata
	block has been blanked out.

2013-01-29  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Improve dom xml gereration
	This patch adds a new class XMLElem, which allows to create a XML element
	and set its attributes and text node with one call. Also it can add
	a child element with the attibutes of child. Then dom xml generation
	code can just focus on getting attributes from vm's defintion. It also
	make it easier to replace minidom with elementtree if neccessary in future.

2013-01-28  Adam Litke  <agl@us.ibm.com>

	schema: Strengthen schema verification
	Add additional checking to process-schema.py to detect the following errors:
	 - Symbol comment documents a field which is not defined in the symbol
	 - Symbol references an undefined type

	schema: bridges was added to VdsmCapabilities
	In 1fa30a, Dan added a new field 'bridges' to VdsmCapabilities but did not
	update the schema to reflect it.  At the moment we are not checking for
	extraneous fields in our types so I just caught it now by chance.

2013-01-28  Dan Kenigsberg  <danken@redhat.com>

	Expose a new argument for tunneled migration of a VM
	Tunneled migration (notice the US spelling!) provides better
	authentication and encryption for migration data, in the price of higher
	CPU consumption and libvirtd latency. Let Engine choose if this is
	wanted per migration command.

2013-01-28  Antoni S. Puimedon  <asegurap@redhat.com>

	Remove redundant exception assignations.
	Remove some obvious assignations from the except clauses that do
	not make any use of them.

2013-01-28  Federico Simoncelli  <fsimonce@redhat.com>

	clusterlock: add the local locking implementation
	In order to have a faster and more lightweight locking mechanism on
	local storage domains a new cluster lock (based on flock) has been
	introduced.

2013-01-27  Saggi Mizrahi  <smizrahi@redhat.com>

	jsonrpc: Make jsonrpc test timeout constant

	jsonrpc: Add timeout to JsonRpcTests:JsonRpcServerTests
	Without it tasks linger forever if server fails to respond

	jsonrpc: Add some more tests to JsonRpcTests

	jsonrpc: Allow JsonRpcBindings to initialize an AMQP transport

	jsonrpc: Run JsonRpcServer requests in their own thread
	Currently it uses the transport thread.
	This change creates a clear separation of control flow.

	This makes sure there is a single sync point for all json-rpc requests
	and that handling a request never blocks the transport for processing
	messages.

	jsonrpc: Add more logging to JsonRpcTests to ease debugging

	jsonrpc: Don't call server.shutdown since it doesn't exist

	jsonrpc: Basic AMQP 1.0 transport support
	I don't set the port on purpose, the configuration scheme will have to
	be changed to more appropriately support multiple transports. This will
	be done in another patch.

	Since qpid-proton is in package review for fedora I don't add it as a
	requirement in the RPM or for testing. It will be used if present in the
	system.

	If you know how to review packages for fedora you are welcome to visit
	the BZ[1].

	We are planning on moving the binding files away from vdsm_api to vdsm
	code so that only client side and API code is in the vdsm_api dir.
	When that is done we will need to create an RPM for each transport so
	that users don't have to install dependencies for all transports.

	[1] https://bugzilla.redhat.com/874105

	tests: Make python version configurable
	This is good if you want to run a debugger shell (like winpdb) instead
	of just running vanilla python.

2013-01-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	adding myself as an author

2013-01-25  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix test errors on el6
	Include full new-style implementation of assertRaises so that even old
	versions of python can run all tests

2013-01-25  Federico Simoncelli  <fsimonce@redhat.com>

	domain: remove race condition in extend
	During a domain extension the metadata mappings are checked against
	MAX_PVS, in doing so the self._extendlock should be acquired to prevent
	multiple concurrent extensions that would surpass the MAX_PVS number.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=876663

2013-01-25  Dan Kenigsberg  <danken@redhat.com>

	logUtils.funcName: work on partial methods
	misc.Event.emit() fails when its callback is a partial(method, args) as
	it is neither a method, nor has func_name.

	Thread-645::WARNING::2013-01-24 01:29:11,212::misc::1236::Event.Storage.DomainMonitor.onDomainConnectivityStateChange::(_emit) Could not run registered method because of an exception
	Traceback (most recent call last):
	  File "/usr/share/vdsm/storage/misc.py", line 1228, in _emit
	    logUtils.funcName(func))
	  File "/usr/share/vdsm/logUtils.py", line 31, in funcName
	    return func.func_name
	AttributeError: 'functools.partial' object has no attribute 'func_name'

2013-01-25  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	tests/functional: Add GlusterSD functional test
	Add functional testcase for glusterSD. This requires a gluster
	volume named 'testvol' running on the same system as this test
	runs as a pre-req.

	tests/functional: Use deleteVolume instead of deleteImage
	Since we are creating a volume, the undo/rollback should
	do deleteVolume instead of deleteImage. deleteImage does
	not work well for derived filedomains (eg. glusterSD) as
	it does not honor the volumeClass associated with the
	derived domain, so its not possible to write a test using
	deleteImage for glusterSD. Technically too, deleteVolume
	fits the current flow of testcase better than deleteImage
	as there isn't a chain of volumes being created to be
	really justified to use deleteImage

2013-01-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BindingXMLRPC: flowID for Irs calls
	Adding flowID to vdsm log for Irs calls

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=800355

2013-01-24  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: use alternate method for verify certificate
	M2Crypto at python-2.6 issues deprecation warning for current method of
	acquiring certificate chain. Use an alternate method.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=901470

2013-01-24  Vered Volansky  <vvolansk@redhat.com>

	vdsm: Fix diskReplicateFinish call description
	vdsClient diskReplicateFinish had the same description as Start.
	Changed "Start" to "Finish".

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=901606

2013-01-24  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	Support for GLUSTERFS_DOMAIN
	This patch introduces a new storage domain of type
	GLUSTERFS_DOMAIN, which uses gluster as the storage backend.

	In GLUSTERFS_DOMAIN, vdsm creates the storage domain by mounting
	the gluster volume (akin to nfs mounting export path). VMs
	created using this domain exploit the QEMU's gluster block
	backend. Instead of accessing the vmdisk as a file path, it
	accesses the vmdisk as a network disk device, served by gluster
	server/volume.

	This patch attempts to re-use nfsSD core logic (to an extent)
	to support domain of type GLUSTERFS_DOMAIN.

2013-01-24  Yeela Kaplan  <ykaplan@redhat.com>

	Change scsi_id command path to be configured at runtime
	On fedora 18 scsi_id path is no longer under /sbin/scsi_id,
	we configure vdsm to look for the path at runtime
	and thus remove it from constants.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=886087

2013-01-24  Andrey Gordeev  <dreyou@gmail.com>

	Explicitly shutdown  m2crypto socket
	Aparently some versions of the m2crypto library don't shutdown correctly
	underlying sockets when a SSL connection is closed.

	In Python 2.6.6 (the version in RHEL6 and in CentOS6) when the XML RPC
	server closes a connection it calls the shutdown method on that
	connection with sock.SHUT_WR as the parameter. This works fine for plain
	sockets, and works well also for SSL sockets using the builtin ssl
	module as it translates the call to shutdown to a complete shutdown of
	the SSL connection. But m2crypto does an different translation and the
	net result is that the underlying SSL connection is not completely
	closed.

	In Python 2.7.3 (the version in Fedora 18) when the XML RPC server
	closes a connection it calls the shutdown method on that connection with
	sock.SHUT_RDWR, so no matter what SSL implementation is used the
	underlying SSL connection is completely closed.

	This patch changes the SSLSocket class so that it explicitly shuts down
	and closes the underlying socket when  when the connection is closed.

2013-01-24  Federico Simoncelli  <fsimonce@redhat.com>

	domain: select the cluster lock using makeClusterLock
	In order to support different locking mechanisms (not only per-domain
	format but also per-domain type) a new makeClusterLock method has been
	introduced to select the appropriate cluster lock.

2013-01-24  Dan Kenigsberg  <danken@redhat.com>

	vdsmd.service: require either ntpd or chronyd
	Fedora 18 ships with chronyd by default, which conflicts with ntpd. We
	do not really care which one of the two is running, as long as the host
	clock is synchronized. That's what requiring time-sync.target means.

2013-01-24  Mark Wu  <wudxw@linux.vnet.ibm.com>

	spec: requires selinux-policy to avoid selinux failure on access tls cert
	selinux-policy tightened up the security on svirt_t on fedora18. It causes
	that svirt_t is disallowed to access cert_t file. And therefore it will block
	qemu run spice server with tls. For more details, please see:
	https://bugzilla.redhat.com/show_bug.cgi?id=890345

2013-01-24  Antoni S. Puimedon  <asegurap@redhat.com>

	Simplify ip address validation leveraging socket.
	Currently we have a ad-hoc validation of the validity of ip
	addresses. Since the standard socket module has a built-in
	validator inside inet_pton, we could leverage it.

2013-01-23  Federico Simoncelli  <fsimonce@redhat.com>

	misc: rename safelease to clusterlock
	The safelease module is now contaning also the sanlock implementation
	and soon it might contain other (e.g.: a special lock for local storage
	domains), for this reason it has been renamed with a more general name
	clusterlock. The safelease implementation also required some cleanup in
	order to achieve more uniformity between the locking mechanisms.

2013-01-23  Adam Litke  <agl@us.ibm.com>

	Bridge: Fix the specification of the getAllTasks return value

2013-01-23  Juan Hernandez  <juan.hernandez@redhat.com>

	Copy truncate vdsm-reg.log
	When the vdsm-reg program doesn't stop (if it fails to contact the
	engine, for example) it will continuously generate messages that can
	flood the log. Moving the log file is not enough because the program
	keeps it open, so the space is not freed. As the program opens the file
	for appending it is safe to copy and truncate the file.

2013-01-23  Dan Kenigsberg  <danken@redhat.com>

	test CommandPath

2013-01-23  jarod.w  <work.iec23801@gmail.com>

	vdsm: free loop device when umounting floppy in mkimage.py
	After umounting floppy successfully, it doesn't free automatically
	the loop device. Here, we add the support to free the loop device
	in the umount function of Mount class and free it to prevent it
	using up all loop devices.

	The issue only happened in the special case that node is built using
	livecd-tools(version: 16.8-1) and rpms from centos63. Because:
	1. Centos63 disables auto-destruction feature and still depends on
	   /etc/mtab to free the loop device.
	2. Livecd-tools links /etc/mtab to /proc/self/mounts, so umount can't
	   get suggestion to free the loop device from /etc/mtab.

2013-01-23  Dan Kenigsberg  <danken@redhat.com>

	net: drop nicSort
	nicSort was introduced so that vdsm calls ifup on bonded nics in the
	same order that initscripts does it, in order to obtain the same master
	mac address.

	A simpler and safer solution is to delegate ifup of bonded nics to
	initscripts, which does that when we ifup the bond device.

	In this commit we drop nicSort together with its remaining usage.

2013-01-21  Federico Simoncelli  <fsimonce@redhat.com>

	domain: use shared lock for extendStorageDomain
	The extendStorageDomain command shouldn't hold an exclusive lock on
	the storage domain since it can be executed also during other long
	tasks (e.g.: moveImage).

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=876663

2013-01-21  Antoni S. Puimedon  <asegurap@redhat.com>

	Simplify netinfo get.
	This patch refactors netinfo to have the network data fetching on
	a separate function. This reduces the get() complexity and will
	allow the possibility of reusing the new method (via a future patch
	wrapping of it) for more fine-grained information retrieval, e.g.,
	update just a network info of a Netinfo instance.

2013-01-20  Yeela Kaplan  <ykaplan@redhat.com>

	use qemu-img convert to copy sparse volumes when moving a vm
	Previously all volumes were copied with dd, with sparse files this
	would result in the destination volume being fully allocated.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=748386

2013-01-20  Antoni S. Puimedon  <asegurap@redhat.com>

	Remove old-style exception raising (pep3109)
	The only exception is when raising with a traceback, for which
	there is not a new-style equivalent both Python 2.x.

2013-01-20  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Extract bonding options building into a separate function.
	To make setupNetworks shorter, move the bonding options building code
	into a separate function.

2013-01-19  Mark Wu  <wudxw@linux.vnet.ibm.com>

	tests: Fix parted_utils_tests break on fedora 18
	parted 3.1 improves its support for loopback devices. The 'model' string
	returned by libparted is updated to 'Loopback device'. For more information,
	please see:
	http://anonscm.debian.org/gitweb/?p=parted/parted.git;a=commit;h=3e35b6

	Because another bug of parted.version() on rhel6
	(https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=700383),
	we can't use parted.version() to differentiate the parted version.
	We could restort to rpm db, but loop device is only used in test code,
	so it should be safe to ignore the test of model string.

	Revert "tests: Fix parted_utils_tests break on fedora 18"
	The commit 51d76e caused a break on rhel6 host because of a bug
	in parted.version(). Please see:
	https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=700383
	It's fixed in Fedora 14, but not backported to RHEL6. So we have to
	find a workaround for the break on Fedora18.

	This reverts commit 51d76e04727c2d41371eb207f02a0f84de74a140.

2013-01-19  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix inefficiency in getBridgelessNetworks
	This commit makes getBridgelessNetworks use the Netinfo instance
	networks instead of generating its own. Additionally, it is put in
	the style and vicinity of the most semantically similar method of
	the class, to improve the module's readability.

2013-01-17  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Add a flag to libvirtvm's status to report watchdog event
	This flag will be set once watchdog event is triggered.
	The client can get watchdog event by checking the 'watchdogEvent'
	key in the return value of getVmStats or getAllVmStats API.
	This flag will be overwriting if watchdog fires more than once for
	the same VM before it was polled.
	And the flag will be not cleanup after it is set unless the client
	restart or shutdown VM.
	So add a timestamp in the message of this flag.

	The timestamp is the time in seconds since the Epoch.

	When the client poll this flag, it should record and check the
	timestamp to make sure that the event is already triggered.

	fix the optional parameters error of api schema file
	some discrptions of optional parameters miss #optional
	some definitions of optional parameters miss *

	fix two parameters of VmParameters in vdsmapi schema
	from the comments of VmParameters, the two parameters are #optional

2013-01-16  Andrey Gordeev  <dreyou@gmail.com>

	Add usbutils req to usbhook

2013-01-15  Saggi Mizrahi  <smizrahi@redhat.com>

	Refactor communication infra
	This is one phase in many, there is still a lot to do but it's a good
	step in the right direction.

	As I said, this is far from complete but it's enough code for a commit
	IMO.

	- Properly layer code to allow multiple transports
	- Isolate json-rpc logic to the actual json-rpc layer
	- Someone more conferment but still incomplete json-rpc 2.0 implementation
	- Make sure tcp handling uses one thread
	- Write some more tests

2013-01-15  Yaniv Bronhaim  <ybronhei@redhat.com>

	Moving pidStat function to utils
	As in general it doesn't serve only the storage part

2013-01-15  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix code style for API.
	Apply the code style suggestions in:
	    http://gerrit.ovirt.org/#/c/9993/1/vdsm/API.py

2013-01-15  Mark Wu  <wudxw@linux.vnet.ibm.com>

	tests: Fix parted_utils_tests break on fedora 18
	parted 3.1 improves its support for loopback devices. The 'model' string
	returned by libparted is updated to 'Loopback device'. For more information,
	please see:
	http://anonscm.debian.org/gitweb/?p=parted/parted.git;a=commit;h=3e35b6

2013-01-15  Antoni S. Puimedon  <asegurap@redhat.com>

	Update except syntax according to pep3110.
	The old except BlahException, e: is ambiguous and discouraged going
	forward. The new syntax for python 3.x is supported since Python 2.6
	and already present in our codebase, so it makes sense to
	homogeinize our syntax. For more information:

	http://www.python.org/dev/peps/pep-3110/

2013-01-14  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	tests: add iscsi storage functional test
	Create iSCSO storage backend and create vdsm storage layout on it.
	Use LIO as iSCSI target and skip the test if LIO is not available.

	functional tests: Wait till backend server of storage connection reference is connected
	Storage connection reference performs the actual connecting in
	asynchronous manner, so add a retryAssert on the storage connection
	status to wait it gets connected. Otherwise the creation of storage
	domain will fail if the backend connection in VDSM is not ready.

	Extract a super class for backend servers in functional test, the
	waiting for the ready of the connection is put in the super class,
	because this waiting can be useful to iscsi and glusterfs testing.

	storage connection monitor: don't recover an unmanaged connection
	A connection can be deleted (unmanage) when the storage connection
	monitor thread is in in Event.wait(). When the monitor thread continues
	to execute, it thinks the connection is lost and try to recover it, but
	the fact is it is unmanaged. This bug prevent iscsi connections from
	releasing cleanly.

	This patch checks if the connection is still managed by the monitor
	before recovering it.

2013-01-13  Federico Simoncelli  <fsimonce@redhat.com>

	udev: Race fix- load and trigger dev rule
	The rule file is generated, yet not synch-loaded in memory, so a VM with
	a direct lun fails to start.
	This patch reloads the rules before triggering using the new private
	udev functions - udevReloadRules() in supervdsmServer.py .
	Also added a check in appropriateDevice() (hsm.py) to make sure the
	mapping is indeed there.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=891300

	upgrade: force upgrade to v2 before upgrading to v3
	During the upgrade of a domain to version 3 vdsm reallocates the
	metadata slots that are higher than 1947 (given a leases LV of 2Gb)
	in order to use the same offsets for the volume leases (BZ#882276
	and git commit hash 2ba76e3).
	This has no effect when the domain is version 0 since the metadata
	slots offsets are fixed (the first physical extent of the LV) and
	they can't be reallocated. In such case the domain must be upgraded
	to version 2 first.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=893184

2013-01-13  Dan Kenigsberg  <danken@redhat.com>

	use CommandPath.name
	At the moment, CommandPath.name is initialized, but its only use as a
	third string argument to OSError() is ignored.

2013-01-13  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	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.

	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.

2013-01-12  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix vdsm_hooks pep8.

	pep8 fix of contrib vds_bootstrap and vdsm_reg.

	Fix the rest of vdsm storage pep8 issues.

2013-01-11  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	Move gluster/{cli,exception,hostname,__init__}.py to vdsm rpm
	This move is being done so that vdsm code using gluster cli
	doesn't have the need to depend on vdsm-gluster rpm

2013-01-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: BuildRequires: python-pthreading
	Moving python-pthreading to be a generic BuildRequirement

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=891542

2013-01-10  Yaniv Bronhaim  <ybronhei@redhat.com>

	Searching for both py and pyc file to start super vdsm
	In oVirt Node we don't keep py files.

2013-01-09  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove duplicate implementation of tobool
	This patch removes the duplicate tobool function from hooking.py,
	and replace it with utils.tobool.

2013-01-08  Mark Wu  <wudxw@linux.vnet.ibm.com>

	vdsm.spec: Don't require python-ordereddict on fedora
	It is a regression introduced by commit bb0620f. The condition "0%{?rhel} < 7"
	also holds true on fedora, so it causes to require python-ordereddict on fedora

2013-01-05  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	PEP 8: fix ignored errors E12{6,7,8}

2013-01-04  Saggi Mizrahi  <smizrahi@redhat.com>

	Increase timeout in remoteFileHandlerTests:PoolHandlerTests.testStop
	On congested hosts (like the oVirt Jenkins host) the test might fail
	even though nothing is broken it is just taking longer then expected.

2013-01-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: increase selinux-policy for rhel distro
	Adding missing booleans:
	- sanlock_use_nfs added in selinux-policy 3.7.19-131
	- sanlock_use_fusefs added selinux-policy 3.7.19-155.5

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=889122

2013-01-04  Adam Litke  <agl@us.ibm.com>

	tests: Test schema validity
	Add a simple test case to check schema validity.  For now, we just call the
	schema parser and make sure it doesn't raise any exceptions.

2013-01-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: python-ordereddict only for rhel < 7
	rhel7 contains python 2.7 which already includes ordereddict module,
	no need extra python package.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=891542

2013-01-03  Dan Kenigsberg  <danken@redhat.com>

	mount.py: handle (deleted) mount points
	If an NFS mount is removed from the server, client side kernel appends
	" (deleted)" to it specification. It comes from fs/dcache.c's d_path()
	function:

	  Convert a dentry into an ASCII path name. If the entry has been deleted
	  the string " (deleted)" is appended. Note that this is ambiguous.

	In this patch we assume that every mount specification ending with this
	string is indeed a deleted one, and not a funky nfs server provided by
	an evil admin that hates Linux.

	Bug-Url: http://bugzilla.redhat.com/807351

	net: drop redundant ifdown/up of bond's nics.
	Commit 5cabaaa130 has introduced a logic that we are trying to
	eliminate: we should not ifdown a bonded nic directly, initscripts do it
	for us.

	netConf: fix a sloppy rebase
	Commit 5cabaaa1 is refering to ConfigWriter.NET_CONF_PREF which was
	dropped by a parallel commit 1ebff6e5b.

2013-01-03  Saggi Mizrahi  <smizrahi@redhat.com>

	Add callback to the plethora of retry halting possibilities

2013-01-02  Federico Simoncelli  <fsimonce@redhat.com>

	spec: fix typo in the numa hook summary

2013-01-02  Maor Lipchuk  <mlipchuk@redhat.com>

	VDSM: Fix VDSM error message.
	Rephrase VDSM error message.

2013-01-01  Tomas Jelinek  <tjelinek@redhat.com>

	Integrate Smartcard support
	This patch is a VDSM part of the integrating
	the smartcard support to the ovirt:

	This VDSM part integrates the smartcard  in
	a supported way, not just as an unsupported custom hook.

	It also removes the smartcard hook itself.

2013-01-01  Yeela Kaplan  <ykaplan@redhat.com>

	Rename lease files on v3 file SDs when renaming data and meta files
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=886842

2012-12-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	isRunning didn't check local variable before reading saved data
	All internal svdsm files contained last svdsm instance info,
	after restart we didn't verify local manager instance before processing
	the operation and got AttributeError exception when calling svdsm
	manager.

	This returns false when _svdsm instance is None or in firstLaunch.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=890365

2012-12-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	adding getHardwareInfo API to vdsm
	Super vdsm retrieves system info about host hardware
	parameters. This info will be shown as part of getHardwareInfo
	API call in a structure called HardwareInformation.

	This feature currently available only for x86 cpu platfroms, for other
	platfroms the api call returns empty dictionary.

	Feature-Description:
	http://wiki.ovirt.org/wiki/Features/Design/HostHardwareInfo

2012-12-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: bump python-ethtool version
	python-ethtool 0.6-2 shows None for ipv4_address request.
	This patch requires python-ethtool version 0.6-3 or higher.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=879148

2012-12-25  Michal Skrivanek  <michal.skrivanek@redhat.com>

	prepareForShutdown is not called when connection to libvirt is broken.
	add few more error codes taken from libvirt's virsh code. In future we should
	replace all this with a callback function they are adding in (not in RHEL 6.3).
	And perhaps avoid restarting vdsm and re-populate object from the new libvirt
	instance instead.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=852956

2012-12-25  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Fix of the unit tests from commit 09f850f

2012-12-24  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Improvement of the GuestAgent class memory usage
	Change in the implementation of reading and handling messages from
	the guest agent. Every 64KiB the newly arrived content is checked for
	a newline character and all messages are handled immediately before
	it continues to read. If the received data do not contain a new line
	character the data is appended to the buffer list and the
	_buffer_size variable increased by the size of all stored buffers in
	the list. If _buffer_size exceeds the defined threshold, currently set to 1MiB,
	the buffer list will be discarded and _buffer_size will be reset to 0.
	Additionally the _message_state variable will be set to 'MessageState.TOO_BIG'
	which indicates that the message must not be parsed once the next new-line
	character will arrive. Messages which are too big will never be parsed.

	Once a new-line character after a too big message arrives, the _message_state
	variable will be reset to MessageState.NORMAL.

	This change has been done to improve and control the amount of memory consumed
	by instances of the GuestAgent class.

	Scenarios covered by the test:
	* Multiple messages sent at once with various sizes
	  (handled in TestGuestIFHandleData.testBigChunk)
	* Messages sent in chunks one by one with oversized messages and normal
	  sized messages. (handled in TuestGuestIFHandleData.testMixed)

2012-12-24  Igor Lvovsky  <ilvovsky@redhat.com>

	Allow to remove NIC if it not in use
	In additional reset MTU to 1500 for bond device if existed
	and not in use

2012-12-24  Eduardo Warszawski  <ewarszaw@redhat.com>

	fix prepareVolumePath: BZ#843387, BZ#872961
	 * fix the case with empty cdrom or floppy drives
	 * fix the case with vmPayload for cdrom or floppy
	 * raise proper exception, if the drive is not supported

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=843387
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=872961

2012-12-23  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	improve the readability of prefix2netmask

2012-12-23  Antoni S. Puimedon  <asegurap@redhat.com>

	Don't fail silently when ifup fails.
	Up until now we discarded ifup return codes and ignored the possible
	errors present in ifup stdout. Use this information to perform better
	error reporting.

	The tests change is due to the fact that now that we treat ifup
	errors as excepcional occurences, for unit testing the persistent
	backups (thing which can be done by a regular user) we do not need
	to test ifup and ifdown of the current config as it is not a thing
	that the unprivileged user is normally allowed to do.

	Bug-Url: https://bugzilla.redhat.com/856737

2012-12-23  Pradipta Kr. Banerjee  <bpradip@in.ibm.com>

	test_getIfaceByIP changes for IBM POWER(ppc64) architecture
	/proc/net/route o/p is dependent on endianness and existing
	test case only handles x86 arch. This patchset adds support for
	ppc64 architecture

2012-12-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix typo in negative flow log in blockSD.rmDCImgDir().
	Related to BZ#885489.

2012-12-20  Greg Padgett  <gpadgett@redhat.com>

	api: Report CPU thread info in getVdsCapabilities
	Report CPU thread info in getVdsCapabilities

2012-12-20  Dan Kenigsberg  <danken@redhat.com>

	storageMailboxTests: fix for f18
	storageMailboxTests fails on F18 because it creates the mailbox files on
	/tmp, which is tmpfs on F18, and does not support O_DIRECT flags.

	This patch makes it use /var/tmp instead, which is usually storage-based
	and has O_DIRECT.

2012-12-20  Yaniv Bronhaim  <ybronhei@redhat.com>

	restarting libvirtd didn't work over allinone setup
	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=888258

2012-12-20  Yeela Kaplan  <ykaplan@redhat.com>

	Override compellent device defaults in multipath.conf
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=865673

2012-12-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	Distinguish between local and mounted SD's.
	Remote SD's were identified like locals due to mismatched name
	mangling.
	This patch is a minimal emergency fix.
	The /rhev/datacenter hierarchy should be revised.
	The need for localFsSD's should be revised too.

	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=886533

2012-12-19  Adam Litke  <agl@us.ibm.com>

	api: Remove object instancing
	After further discussions on the mailing list, we decided to use object
	namespacing instead of object instances.  Doing this involves several changes to
	the schema and the DynamicBridge:

	 - Remove construction parameters from 'class' definitions in the schema
	 - Add the former construction parameters to each command
	 - Change the DynamicBridge to handle API.py object instantiation
	 - Fix spUUID handling in the API.py StorageDomain class
	 - Update the xmlrpc binding to reflect changes to API.py

2012-12-19  Moti Asayag  <masayag@redhat.com>

	Add results.log to .gitignore

	Support guest agent selective ip reporting
	The guest agent might not report inet element,
	therefore processing its input should support it and
	return an emply ips list instead.

	vdsm: pep8 cleanups

2012-12-19  Eduardo Warszawski  <ewarszaw@redhat.com>

	Handling removing file Exceptions.

2012-12-19  Pradipta Kr. Banerjee  <bpradip@in.ibm.com>

	Add correct TUNSETIFF ioctl value for IBM Power (ppc64) in tcTests.py
	The existing _TUNSETIFF value is specific for x86 arch. This patch
	adds the value for ppc64 arch

2012-12-18  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix blockSD pep8.

2012-12-18  Saggi Mizrahi  <smizrahi@redhat.com>

	caps nits

	Fix miscTests:ExecCmd.testNice failing due to race

2012-12-18  Antoni S. Puimedon  <asegurap@redhat.com>

	drop configNetworkTests.ConfigWriter.NET_CONF_PREF dup
	NET_CONF_PREF should be defined only once, in netinfo.py.
	Since the tests are using a non-real location for ifcfg files, that
	single definiion should be monkey-patched, or we would stumble upon
	null-named devices.

2012-12-18  Yaniv Bronhaim  <ybronhei@redhat.com>

	Check if log file exist on startup and log directory is accessible
	If file isn't exist we need to continue. Otherwise, os.access returns
	false and we report permission error.
	When continue we need to verify that vdsm has the right permissions to  create
	the log file in the log directory.

2012-12-18  Saggi Mizrahi  <smizrahi@redhat.com>

	Make advanced process invocations part of execCmd
	There are a bunch of places in the code where priority is set using ad
	hoc command concatenation. This is hard to understand and error prone.
	This patch adds this as a feature of execCmd so proper use is always
	enforced.

	- niceness can be set with the nice parameter
	- ionice class and class data can also be set with the appropriate
	  parameters
	- setsid can be set as a boolean with setsid=True

2012-12-18  Federico Simoncelli  <fsimonce@redhat.com>

	spec: require policycoreutils and skip sebool errors
	In order to avoid a policycoreutils bug (rhbz 883355) when selinux is
	disabled we now require the version 2.1.13-44 (or newer) of Fedora.
	Additionally we now skip any error in the rpm scriptlets for the sebool
	configuration (sebool-config) since they could interfere with the rpm
	installation potentially leaving multiple packages installed.

2012-12-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	caps.py: osversion() validate OVIRT
	Currently we are only validating RHEV-H node.
	This patch will validate oVirt node as well in osversion().

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=873917

2012-12-17  Antoni S. Puimedon  <asegurap@redhat.com>

	Remove redundant ifupping of bonded ifaces.
	ifup-eth of initscripts, when ifupping a bond checks which are
	its slaves and ifups them. Thus, removing this two ifup places
	we avoid a big source of FAILED messages in our logs while
	keeping all the functionality and correctness.

2012-12-17  Yeela Kaplan  <ykaplan@redhat.com>

	Take care of 'No devices found' when calling dmsetup status
	When there are no devices dmsetup status
	will return only: 'No devices found'

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=881947

2012-12-17  Antoni S. Puimedon  <asegurap@redhat.com>

	Remove redundant vlan device deletion.
	ifdown-eth has a clause that on ifdown of a vlan interface, said
	interface is deleted using ip link delete xxx type vlan. That
	happens synchronously and just one line before we do the deletion
	ourselves and generates a lot of FAILED messages in vdsm.log.

2012-12-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	vdsm/vdsm: fix vdsm start failure
	vdsm checks the log file permissions before start. However the log file
	path in the code is not correct, so it checks a non-existing file and
	always fails. This patch fix the problem.

2012-12-15  Antoni S. Puimedon  <asegurap@redhat.com>

	Yet another bunch of completely pep8 fixed files.

	Multiple pep8 fixes
	Several complete pep8 fixes in the road to complete pep8 compliance.

2012-12-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding check of os.access to vdsm log file during startup
	If log file isn't accessible we'll report to syslog and exit

2012-12-13  Antoni S. Puimedon  <asegurap@redhat.com>

	PEP8 completely fix caps and its tests.
	This is not only nice but necessary because as of the previous
	commit, the build didn't work.

2012-12-13  Dan Kenigsberg  <danken@redhat.com>

	spec: two minor beautifications

2012-12-13  Adam Litke  <agl@us.ibm.com>

	schema: Missing comment for new VmDeviceType
	When adding a new 'console' VmDeviceType, the submitter forgot to include
	documentation in the comment block.  This caused process-schema.py to fail.

	schema: Fix schema for VM.updateDevice
	Another recent update broke the schema file.  I'll take the blame for this one
	since I approved the change :)  Some missing and/or malformed data in comments
	was causing the process-schema script to fail.  Another reason for validating
	the schema during the build.

	schema: Missing schema information for 'syncType'
	Commit <> added a new API Image.syncData but did not fully spec the arguments.
	The referenced enum type 'syncData' has no definition.  Adding the missing bit
	based on my examination of the code.

	This is why we need something like http://gerrit.ovirt.org/#/c/9433/ to validate
	the schema at build time.

2012-12-13  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix duplicate emulated machines returned
	On Fedora, libvirt call getCapabilities() also append the list of emulated
	machines to the 'domain' node whose type is 'kvm'. The list is identical to
	what's listed in the default info of that arch. So it would cause
	getElementsByTagName('machine') matches all of machine tags and return a list
	of duplidate emuated machines.

	This patch changes to only collect information from the direct children of
	tag 'arch' and adds a test case for it.

2012-12-12  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	add a Makefile command to generate vdsm-api.html
	This command is used to generate vdsm-api.html from vdsmapi-schema.json
	Also it is easy to check the schema syntax errors, when new APIs are
	added in vdsmapi-schema.json.

2012-12-12  Federico Simoncelli  <fsimonce@redhat.com>

	spec: add python-pthreading build require

2012-12-12  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix pep8 completely for API.py

	Fix vdsClient.py pep8 completely.

	Fix flake8 warnings for network code.
	This patch fixes flake8 complaints on the code related to
	networking and libvirtvm.

2012-12-11  Saggi Mizrahi  <smizrahi@redhat.com>

	Refactor mom init error flow
	Splitting a log to to log invocation is bad because it could potentially
	separate the 2 log lines. Further more, it usually points out to a bad
	flow if you only sometimes need to log in the same flow so you resort to
	such tricks.

	- Add proper exception when MomThread fails to initialize
	- Make the two error flows clear and have each logged properly

2012-12-11  Dan Kenigsberg  <danken@redhat.com>

	a more delicate rollback
	If things go wrong during setupNetwork, we try to revert the networking
	state to what it used to be. Until this patch, we stopped the network
	service, reverted all ifcfg-* files, and restarted networking.

	This procedure disruppted all connection, even those unrelated to the
	ones being set up.

	With this change, we are taking down only affected devices, and revert
	them to their pre-setupNetwork state.

2012-12-11  Bala.FA  <barumuga@redhat.com>

	set libvirt dependency version to 0.9.10-21.el6_3.6 in RHEL
	When vdsm runs on RHEL based VMs, in some environment it fails to
	start due to missing cpu topology information from libvirt.  This
	issue is tracked at https://bugzilla.redhat.com/show_bug.cgi?id=868972
	and fixed in libvirt version 0.9.10-21.el6_3.6.

2012-12-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	adding log print before svdsm dies

2012-12-11  Vinzenz Feenstra  <vfeenstr@redhat.com>

	vdsm: Attaching a console should be controllable
	Added a new console device which enables the engine to
	define that the virtual machine shall have a virtio console

	VDSM will upon creation insert a console with pty type and
	a 'virtio' target device on port 0

	Updated libvirtvm test to correspond with the changes

2012-12-11  Amador Pahim  <apahim@redhat.com>

	Online check ksmState and ksmPages.
	Currently ksmState and ksmPages is updated only when adjust()
	is called (vm._startUnderlyingVm() and libvirt.releaseVm()).
	Since ksmtuned can turn on/off ksm any time, vdsm will report
	inaccurate information until adjust() be called.
	This patch changes ksmState and ksmPages update to every API
	call, reflecting always the accurate information.

2012-12-11  Antoni S. Puimedon  <asegurap@redhat.com>

	netwiring: [4/4] Add API definitions.
	Fourth and final of the Network Wiring feature patches. It adds the
	implementation for using the new vmUpdateDevice feature and add
	linkActivate support for createVm and hotplugNic.

2012-12-11  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vmfex hook: generating rpm
	Generate vmfex rpm with others hooks.

2012-12-10  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix E241

	vdsm_reg/define.py: drop unused file

	style: drop trailing backslash per Zhou's request

2012-12-10  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	integrate zombie reaper in supervdsmServer
	    Integrate zombie reaper in supervdsmServer
	to reclaim the zombie produced by validateAccess.
	    As python has a bug to block signal
	when calling thread.join():
	    http://bugs.python.org/issue1167930.
	    Change it to a timeout join.

	Nit fixes of supervdsmServer
	use utils.rmFile instead of unlink
	Raise err in supervdsmServer final exit is useless,
	remove it.

2012-12-10  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix E125

	pep8: fix E124

2012-12-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	pep8 fixes for vdsm file

2012-12-09  Dan Kenigsberg  <danken@redhat.com>

	vdsm startup: fix assert statement
	SyntaxWarning: assertion is always true, perhaps remove parentheses?

2012-12-09  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	iscsi.py: fix log message format
	The logging methods accept the first argument as message, and rest
	arguments as format values and options. The original code wrongly splits
	a message into several arguments, so only the first part is recognized as
	message and the rest are recognized as values.
	Since there are no format specifiers in the actually recognized message,
	it will raise error when it finds there are format values.

	This patch utilizes the implicit string concat feature and fix this bug.

2012-12-08  Igor Lvovsky  <ilvovsky@redhat.com>

	Add default MTU=1500 to NIC's ifcfg files.
	When we add bridge with custom MTU on top of nic, this MTU will be set properly
	on interface. But if we'll remove this bridge (including removing of MTU
	keyword from NIC's ifcfg file) and add instead the bridge with default MTU
	(without MTU keyword at all in ifcfg file) the actual MTU on the interface
	will stay as before.
	The only way to change the actual MTU is add MTU keyword explicitly to ifcfg file.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=873745

2012-12-07  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove duplicate implementation of prefix2netmask

2012-12-07  Laszlo Hornyak  <lhornyak@redhat.com>

	cpu mode support for vdsm
	This patch adds special hostPassthrough and hostModel as cpuType values.
	If the cpuType is one of these values, the <model> tag will not be
	created for libvirt, instead, a mode attribute will be created in the
	<cpu> tag with value 'host-passthrough' or 'host-model'.

2012-12-07  Antoni S. Puimedon  <asegurap@redhat.com>

	netwiring: [3/4] Add cli entry point.
	Third of the Network Wiring feature patches. It adds the cli support
	for using the new vmUpdateDevice feature.

	netwiring: [2/4] Add API definitions.
	Adds the schema definitions as for vmUpdateDevice described in:
	    http://wiki.ovirt.org/wiki/Feature/DetailedNetworkWiring#New_API

2012-12-07  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	xmlrpcTests: change skipNoKVM into a decorator
	After using skipNoKVM as decorator, the code looks cleaner.

	class XMLRPCTest(TestCaseBase):
		@skipNoKVM
		def testMethod(self):
			...

2012-12-06  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	remove redundant import misc
	there is already "import storage.misc as misc"

2012-12-06  Antoni S. Puimedon  <asegurap@redhat.com>

	netwiring: [1/4] Extend vmInterfaceDevice API def
	This patch extends the definitions of vmInterfaceDevice in
	order to allow vmHotplugNic and vmCreate to set a vnic link
	status as well as set portMirroring for it.

2012-12-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Move mom requirement
	There is no EPEL repo for RHEL7 and since oVirt 3.2 will require
	mom, let's move the mom requirement to not include RHEL7.

2012-12-06  Federico Simoncelli  <fsimonce@redhat.com>

	upgrade: reallocate the metadata slots when needed
	Few vdsm releases (4.9 prior 496c0c3, BZ#732980) generated metadata
	offsets higher than 1947 (LEASES_SIZE - RESERVED_LEASES - 1).
	This patch reallocates such slots to free ones in order to use the
	same offsets for the volume resource leases.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=882276

	sdcache: add refresh to connectStoragePool
	When connecting to a storage pool we should clear the domain cache to
	pick up all the changes that might have been introduced by other hosts.
	Additionally since StoragePool.refresh has a similar behavior to
	connectStoragePool it should also contain the invalidateStorage call to
	force an iscsi rescan.

	In this patch:
	* reinstate the sdCache.refresh call in connectStoragePool
	* add invalidateStorage to StoragePool.refresh

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=879253

2012-12-06  Dan Kenigsberg  <danken@redhat.com>

	pep8: comply with E122 and E123

2012-12-05  Saggi Mizrahi  <smizrahi@redhat.com>

	Sometimes the test host is overloaded and that might cause a false positive with such a low timeout

2012-12-05  Dan Kenigsberg  <danken@redhat.com>

	dd: use iflag=direct only when supported by the os
	Much like as vdsm's use of fileUtils.DirectFile that was fixed in
	http://gerrit.ovirt.org/9595, we should not pass the "direct" flag to
	/bin/dd when the underlying filesystem does not support it.

2012-12-05  Federico Simoncelli  <fsimonce@redhat.com>

	vm: increase the volume extension on storage migration
	During live migration VDSM needs to subsequently extend two volumes
	instead of one; doubling the size of the chunk to extend the watermark
	limit is doubled and VDSM has more time to accomplish the operations.

2012-12-05  Dan Kenigsberg  <danken@redhat.com>

	pep8: comply with E121 (indentation must be multiple of 4)

2012-12-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove Pool.isMember() function.
	Related to BZ#878894.

2012-12-04  Federico Simoncelli  <fsimonce@redhat.com>

	thread: daemonize HSM_MailMonitor and storageRefresh
	In order to successfully complete the prepareForShutdown command
	some additional threads have been switched to daemon.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=880961

2012-12-04  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix return value of shutdown() on failure

2012-12-04  Antoni S. Puimedon  <asegurap@redhat.com>

	concurrency: Vdscli uses a new HTTP conn per req.
	Python-2.7 changed xmlrpclib's implementation detail of spawining
	a new http/https connection per each request to add support for
	Keepalive. Unfortunately, this implementation detail was also what
	made the xmlrpclib's Transport be thread-safe.

	This change reverts the change in Transport, thus mantaining the
	thread-safety of our python client code for unencrypted
	communications.

2012-12-04  lvroyce  <lvroyce@linux.vnet.ibm.com>

	vdsm: use default libvirt event handler impl
	Removed libvirtev in favour of the native libvirt event loop
	implementation.

	Moved eventToString from libvirtev.py to libvirtvm.
	Additionally adjusted the event type strings to reflect
	http://libvirt.org/html/libvirt-libvirt.html#virDomainEventType

2012-12-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix block volume atomicity creation issue.
	BlockVolume creation is a 2 step process where first an LV is
	created and then tags are added to it. If another host refreshes
	it's cache between the 2 commands it will have an LV with partial
	data on it. To solve this issue, we add an initial tag to the
	lvcreate command so that any other host would be able to identify
	this volume as incomplete and ignore it.
	Special LVs still have not MD tags.

	Bug-uri: https://bugzilla.redhat.com/show_bug.cgi?id=876558

2012-12-03  Federico Simoncelli  <fsimonce@redhat.com>

	vdsm-tool: add the sebool configuration module
	This patch moves the sebool configuration from a shell scriptlet in the
	rpm package to the vdsm-tool command.

2012-12-03  Yaniv Bronhaim  <ybronhei@redhat.com>

	fixing pep8 issues in supervdsm

2012-12-03  Saggi Mizrahi  <smizrahi@redhat.com>

	Skip mountTests:MountTests.testLoopMount test if mkfs.ext2 is not installed

	Properly raise OSError in betterPopen

2012-12-03  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	fix error handling for misc.NoIntrPoll
	When recieving signal, poll raises select.error, and epoll raises OSError.
	Former exception wasn't caught by NoIntrPoll, which defies the purpose of that
	wrapper (see backtrace).

	Tested poll/epoll, pipe/file, closed pipe/pipe buffer overflow
	pipe write/read end error will not raise poll error.

	Storage.CrabRPCProxy: ERROR: Problem with handler, treating as timeout
	Traceback (most recent call last):
	  File "/home/jenkins/workspace/vdsm_unit_tests/vdsm/storage/remoteFileHandler.py", line 180, in callCrabRPCFunction
	    rawLength = self._recvAll(LENGTH_STRUCT_LENGTH, timeout)
	  File "/home/jenkins/workspace/vdsm_unit_tests/vdsm/storage/remoteFileHandler.py", line 149, in _recvAll
	    timeLeft):
	  File "/usr/lib64/python2.7/contextlib.py", line 84, in helper
	    return GeneratorContextManager(func(*args, **kwds))
	  File "/home/jenkins/workspace/vdsm_unit_tests/vdsm/storage/remoteFileHandler.py", line 133, in _poll
	    res = misc.NoIntrPoll(self._poller.poll, timeout)
	  File "/home/jenkins/workspace/vdsm_unit_tests/vdsm/storage/misc.py", line 1348, in NoIntrPoll
	    return pollfun(timeout)
	error: (4, 'Interrupted system call')

	Exclude generated python files from pep8 list
	Generated files will raise pep8 error because of path substitution:
	E501 line too long (86 characters)
	Check the py.in for PEP8 is enough for these files.

2012-12-03  Timothy Asir  <tjeyasin@redhat.com>

	added glusterVolumeProfileInfo verb
	Following is the output structure

	when nfs is true:
	{'volumeName': VOLUME-NAME,
	 'nfsServers': [
	     {'nfs': SERVER-NAME,
	      'cumulativeStats': {'blockStats': [{'size': int,
	                                          'read': int,
	                                          'write': int}, ...],
	                          'fopStats': [{'name': FOP-NAME,
	                                        'hits': int,
	                                        'latencyAvg': float,
	                                        'latencyMin': float,
	                                        'latencyMax': float}, ...],
	                          'duration': int,
	                          'totalRead': int,
	                          'totalWrite': int},
	      'intervalStats': {'blockStats': [{'size': int,
	                                        'read': int,
	                                        'write': int}, ...],
	                        'fopStats': [{'name': FOP-NAME,
	                                      'hits': int,
	                                      'latencyAvg': float,
	                                      'latencyMin': float,
	                                      'latencyMax': float}, ...],
	                        'duration': int,
	                        'totalRead': int,
	                        'totalWrite': int}}, ...]}

	When nfs is false:
	{'volumeName': VOLUME-NAME,
	 'bricks': [
	     {'brick': BRICK-NAME,
	      'cumulativeStats': {'blockStats': [{'size': int,
	                                          'read': int,
	                                          'write': int}, ...],
	                          'fopStats': [{'name': FOP-NAME,
	                                        'hits': int,
	                                        'latencyAvg': float,
	                                        'latencyMin': float,
	                                        'latencyMax': float}, ...],
	                          'duration': int,
	                          'totalRead': int,
	                          'totalWrite': int},
	      'intervalStats': {'blockStats': [{'size': int,
	                                        'read': int,
	                                        'write': int}, ...],
	                        'fopStats': [{'name': FOP-NAME,
	                                      'hits': int,
	                                      'latencyAvg': float,
	                                      'latencyMin': float,
	                                      'latencyMax': float}, ...],
	                        'duration': int,
	                        'totalRead': int,
	                        'totalWrite': int}}, ...]}

2012-12-03  Adam Litke  <agl@us.ibm.com>

	tests: Cleanup apiTests exception handling
	As Dan reported in http://gerrit.ovirt.org/#/c/9442/ the behavior of
	SocketServer differs between versions of python which causes the
	exception raised by sendMessage() to change.  Rather than key the
	expected exception based on the Python version, clean up the flow so it
	will behave the same across Python versions.

2012-12-03  Dan Kenigsberg  <danken@redhat.com>

	vdsmd.init: drop check_port_taken
	net-tools is not installed on F18 by default, and was obsoleted by
	iproute a decade ago. This is a good opportunity to drop the whole
	check_port_taken attempt from the daemon startup. This check is
	inherently raceful, it was applied only to the the xmlrpc port (even if
	jsonrpc is used), and is utterly unhelpful if we're using systemd (that
	reports error to system log, just like vdsm.log).

	pep8: more semi-automatic fixes

2012-12-02  Saggi Mizrahi  <smizrahi@redhat.com>

	Have direct file not use the O_DIRECT flag on tmpfs and ramfs
	tmpfs and ramfs don't support the O_DIRECT flags. This is intentional as
	O_DIRECT tells the kernel to bypass the page-cache and those file
	systems live solely on the page cache. Since the effect desired by
	direct IO is accomplished on these file systems without the flag there
	is no reason for the use to test the FS every time before opening a file
	for direct access.

	The reason we keep the same class instead of falling back to the regular
	file object is so we keep the semantics of the DirectFile() class and
	the user doesn't have to care that the underlying FS doesn't really
	support direct IO.

2012-12-02  Igor Lvovsky  <ilvovsky@redhat.com>

	Remove network.service dependencies from vdsmd.service
	In current vdsm behaviour during network rollback vdsm need to stop network service,
	rollback latest network changes and start network service again,
	but in host with systemd network service can't be stoped.
	According to systemd concept if service required by another service it will be immediately
	started again. In such situation vdsm can't revert network changes if needed.

	In this patch we remove network.service dependencies from vdsmd.service and add it
	as NEEDED_SERVICES in vdsmd.init

2012-12-02  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding monkeyPatch that replaces _start function of superVdsmProxy for tests
	This because changes in svdsm internal parameters can cause unexcpected
	behaviour and we can avoid it, at least when adding python path. This
	implementation is only useful for tests and revert changes that cause
	svdsm to crash.
	Apparently when adding empty PYTHONPATH in front of sude in normal run
	svdsm can't initialize itself and die, instead of explaining the reason
	I'm trying to avoid changing vdsm implementation and modify only the
	tests.

2012-12-02  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: start messagebus as it is libvirtd dependency

2012-12-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	The return of super vdsm tests
	We couldn't run svdsm tests because imports didn't exist under vdsm
	installation directory when running the tests. We want to be able to run
	those tests without having to install vdsm rpm.

	Here we add extraPythonPath that included the current directory. It is
	useful only for tests, if we run it normally we want vdsm to be
	installed in its default directories and we don't need this additional
	python path list.

2012-12-01  Saggi Mizrahi  <smizrahi@redhat.com>

	More PEP8 fixes

2012-11-30  Dan Kenigsberg  <danken@redhat.com>

	spec: our tests requires 'import selinux'
	configNetwork imports selinux during its unittest, thus we need it when
	we build the rpm.

	spec: hack around el6 logrotate dependency issue
	We currently require logrotate >= 3.8.0 which is not part of el6,
	because we use the 'su' directive. This patch drops 'su' from el6
	builds, and requires logrotate version that does not need it.

2012-11-30  Amador Pahim  <apahim@redhat.com>

	libvirtvm: Avoiding snapshot metadata creation
	After creating a new snapshot, it is not possible to live-migrate:

	  libvirtError: Requested operation is not valid: cannot migrate domain
	with 1 snapshots

	Issue is also affecting storage live migration due to use of the same vm
	snapshot function during the live storage migration process.

	This patch introduces the libvirt flag needed to avoid snapshot metadata
	creation.

	Bug-Url: http://bugzilla.redhat.com/872277

2012-11-30  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix remaining vdsm/*.py

2012-11-29  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Extract a method _getCapsXMLStr() to get capabilities from libvirt
	The new function  _getCapsXMLStr() could be shared by _getCpuTopology()
	and _getEmulatedMachines(). And it also saves a libvirt call by memorizing
	the result.

2012-11-29  Dan Kenigsberg  <danken@redhat.com>

	libvirtvm: prepare for <interface type='network'>
	In the near future (actually, in the following patch), I would like to
	define virtual interfaces with <source network>. If such a VM is
	migrated to a host expecting <source bridge>, bad thing would happen.

	This patch extracts <interface>'s network for bridge- and network-based
	interfaces alike. It should be applied to all the hosts in the cluster
	before generating the first network-based interface.

2012-11-29  Saggi Mizrahi  <smizrahi@redhat.com>

	tests: Drop abberant AttributeError
	PoolHandler.__del__ may be called by Python after the reference to
	zombieReaper module has been reset to None. This leads to an annoying
	    AttributeError: 'NoneType' object has no attribute 'autoReapPID'
	when tests finish.

	This commit swallows this error.

2012-11-28  Bala.FA  <barumuga@redhat.com>

	Adopt the change in xml output format
	'gluster volume status --xml' output added values under
	<volumes/volume> levels.  This change is taken up in the parsing.

2012-11-28  Dan Yasny  <dyasny@gmail.com>

	Cisco VM-FEX support vdsm hooks
	Moved the lock to handleDirectPool

	Author: Dan Yasny <dyasny@gmail.com>

2012-11-27  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	miscTests: using MACRO instead of string

	remoteFileHandler.py: nit fix for poll mask
	poll() should use POLLERR/POLLHUP instead of EPOLLERR/EPOLLHUP

2012-11-27  Haim Ateya  <hateya@redhat.com>

	upgrade: make sure that the lease files have correct permission
	Fix a bug where we tried to initialize sanlock lock before calling
	the function to set proper permissions.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=870024

2012-11-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Add packages versions for rhel7
	Add condition for RHEL7 packages.

2012-11-26  Federico Simoncelli  <fsimonce@redhat.com>

	hooks: add the nested virtualization hook
	If the nested virtualization is enabled in your kvm module this hook
	will expose it to the guests.

2012-11-26  Dan Kenigsberg  <danken@redhat.com>

	libvirtev.py: move to site_packages/vdsm
	Until we drop this little module, it has to sit within the vdsm package,
	or else `from vdsm import libvirtconnection` would fail.

	Bug-Url: https://bugzilla.redhat.com/870985

2012-11-26  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove REST bindings
	No one uses them and no one should. We are going in a different
	direction for a supported API and keeping the rest bindings alive is
	confusing and cumbersome.

2012-11-26  Adam Litke  <agl@us.ibm.com>

	mom: Report the status of the mom threads
	It will be useful to check on the status of the MOM threads.  Add a new field to
	the HostStats structure to provide this information.

	spec: Add MOM as a package dependency
	For oVirt 3.2, we are switching to MOM for KSM tuning.  One of the goals of this
	release is to ensure that MOM is running in all deployed oVirt hosts (ovirt-node
	and standalone).  A recent enough version of MOM is now available upstream for
	Fedora and RHEL and we build nightly RPMs on ovirt.org.  I think we are ready to
	add this packaging dependency now.

2012-11-26  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix libvirtconnection.py

	pep8: have a space after all operators, not before colon

	nwfilter, vmChannels: pep8 fixes

2012-11-22  Igor Lvovsky  <ilvovsky@redhat.com>

	Allow break bond with attached network while VM is running.
	The problem was that we counted tap device on the bridge as part of bond
	because of wrong behaviour of getNicsVlanAndBondingForNetwork.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=875487

2012-11-21  Saggi Mizrahi  <smizrahi@redhat.com>

	remoteFileHandler pep8 fixes

2012-11-21  Dan Kenigsberg  <danken@redhat.com>

	configNet: support PREFIX option
	PREFIX=16 means NETMASK=255.255.0.0.

	Bug-Url: https://bugzilla.redhat.com/866540

	vdsmd.init: retire ifconfig
	Replace ifconfig with iproute2's /sbin/ip also in our init script.
	Drop an old irrelevant comment that mentions ifconfig.

2012-11-21  Laszlo Hornyak  <lhornyak@redhat.com>

	pep8 fixes
	fixes in the code to make vdsm build on rhel 6.3

2012-11-21  Dan Kenigsberg  <danken@redhat.com>

	tc: retire ifconfig
	ifconfig was deprecated quite a few years ago, and some
	modern distribution do not ship it by default.

	In this patch, we dump its only use, by setting promisc flag directly.
	We implement set_flags() in hope to see ethtool add it.

2012-11-20  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Add an option to create a watchdog device.
	A support for a watchdog device was added to the "devices"
	configuration.

	Also add the watchdog event callback to log the watchdog action
	of VM.

	model of watchdog:
	    'i6300esb' default model, emulating a PCI Intel 6300ESB
	    'ib700'    emulating an ISA iBase IB700
	Only one watchdog device is supported for each VM.

	action of watchdog timeout:
	    'reset'     forcefully reset the guest
	    'shutdown'  gracefully shutdown the guest (not recommended)
	    'poweroff'  forcefully power off the guest
	    'pause'     pause the guest
	    'none'      default, do nothing
	    'dump'      automatically dump the guest

	the parameter of 'watchdog' device as follow:
	{'device': 'watchdog', 'type': 'watchdog',
	 'specParams': {'model': 'i6300esb', 'action': 'none'}}

	The watchdog device can be used to detect guest crash or hang, and
	if 'dump' is chosen for the action of watchdog timeout, libvirt will
	dump guest's memory on timeout automatically.

	The directory to save dump files can be configured by auto_dump_path
	in file /etc/libvirt/qemu.conf.

	The watchdog device requires an additional driver and management
	daemon in the guest. Just enabling the watchdog in the vdsm
	"devices" configuration does not do anything useful on its own.

2012-11-20  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	avoid creating hangover in storage domain cache after formatting
	HSM._recycle(self, dom) tries to delete the storage domain from cache by
	calling "sdCache.manuallyRemoveDomain(dom.sdUUID)". This is OK, but when
	it invokes "dom.format(dom.sdUUID)" to format storage domain, the "dom"
	is a proxy object and have to look for the true storage domain object by
	calling 'StorageDomainCache._realProduce()', thus cause the storage
	domain added to the cache again. This bug will prevent us re-using the
	storage domain UUID even though we format it.

	This patch invokes the format method of the proxy object first, then
	delete the storage domain from cache, and can avoid creating hangovers.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=806774

2012-11-20  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix a flaw introduced by commit 2c0fd0796

2012-11-20  Itzik Brown  <itzikb@mellanox.com>

	Adding hooks support for NIC hotplug
	Adding the ability to write hooks for events
	of NIC hotplug and hotunplug.
	Hooks are: before_nic_hotplug, after_nic_hotplug,
	before_nic_hotunplug,after_nic_hotunplug,
	after_nic_hotplug_fail and after_nic_hotunplug_fail

2012-11-19  Adam Litke  <agl@us.ibm.com>

	tests: Support parallel testing in apiTests
	The apiTests module tests the JSON-RPC server by creating a server instance on a
	specific port and then connecting clients to that port.  Unfortunately, this
	means that only one instance of the test can be running on a host at any given
	time.  Our Jenkins infrastructure would like to run parallel tests.  To enable
	this, we allow the test to find an open port to use.

2012-11-19  Bala.FA  <barumuga@redhat.com>

	used gluster cli xml output
	Below verbs are using gluster cli xml output
	glusterVolumesList
	glusterVolumeCreate
	glusterVolumeStop
	glusterVolumeDelete
	glusterVolumeSet
	glusterVolumeReset
	glusterVolumeBrickAdd
	glusterVolumeRemoveBrickForce
	glusterHostAdd
	glusterHostRemove

2012-11-19  Dan Kenigsberg  <danken@redhat.com>

	lvm: make len(LV_ATTR_BITS) == number of lv attr bits
	Bug-Url: https://bugzilla.redhat.com/876958

	drop type() calls
	Python method resolution knows to find class methods as it is.

2012-11-19  Mark Wu  <wudxw@linux.vnet.ibm.com>

	trivial: Fix a typo of mom package name on Debian

2012-11-19  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	add VM creation test over localfs storage layout
	It can be easily extended to use nfs or iscsi storage layout.

	extract a method for booting a test VM through kernel boot
	Hide the kernel boot and initramfs details into a method and provide a
	template configuration, then just call the method with custom VM
	configurations

2012-11-19  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	storage functional test with multiple storage domains and images
	add xmlrpc functional test for local storage,
	it can be extend to nfs and iscsi backends

2012-11-19  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	DeferableContext: Change to RollbackContext for easy undoing
	We often need to perform a series of operations:
	    op[0], op[1], ... op[N]
	These operations may allocate files, locks, connections, and op[K] may
	depend on op[K-1] 's result

	Sometimes it's not feasible to create context manager for each resource,
	because the number of the resource involved in a transaction can be a
	variable, for example, reading from a configuration file, but there is no
	way to use a variable number of the "with" statement, and
	contextlib.nested is being deprecated. So we need a concise framework
	to do rollback.

	This patch subclass DeferableContext and proposes an idiom to do this
	kind of rollback. DeferableContext re-raises the last exception, while
	this patch re-raises the first exception, for the earliest exception
	may be the root cause and most helpful when investigate the problem.

2012-11-18  Federico Simoncelli  <fsimonce@redhat.com>

	pool: refresh multipath on connectStoragePool
	On connectStoragePool we should rescan the iscsi connections to
	reactivate them in case they were previously interrupted.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=870768

2012-11-18  Adam Litke  <agl@us.ibm.com>

	mom: Add mom package version to vdsCapabilities

2012-11-16  Daniel Erez  <derez@redhat.com>

	Adding support for force extend block domains
	Passing 'force' flag through extendStorageDomain
	to enable block storage domain force extend [1]
	(_initipvs already accepts the 'force' flag).

	[1] Force is used to extend a storage domain with a LUN even if
	it is already a part of a VG / has partitions on it / etc
	(i.e. the user doesn't have to manually cleanup before using the LUN).

2012-11-16  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	schema: nit schema fix

2012-11-15  Adam Litke  <agl@us.ibm.com>

	mom: Redirect mom init stacktrace to debug log
	When MOM initialization fails we are currently falling back to the old
	KsmMonitor.  When this happens we print a warning which is appropriate.  Since
	the error is handled, we should not print the stack trace at warning level.
	This information is useful in debug mode however.

	Split the stack trace printout into a separate debug logging message.

2012-11-15  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	sslTests: fix parallel build in Jenkins
	sslTests uses a fixed port for binding socket. When it is run in
	parallel Jenkins builds, it will fail with port conflicts.

	This patch tries to find new available port if the default port is
	occupied.

2012-11-15  Adam Litke  <agl@us.ibm.com>

	build: Add BuildDepends for m2crypto
	During the build, I get the following traceback:

	Traceback (most recent call last):
	  File "../tests/testrunner.py", line 274, in <module>
	    hackVdsmModule()
	  File "../tests/testrunner.py", line 252, in hackVdsmModule
	    sub = __import__(name, globals(), locals(), [], -1)
	  File "/home/aglitke/rpmbuild/BUILD/vdsm-4.10.2/vdsm/SecureXMLRPCServer.py",
	line 39, in <module>
	    from M2Crypto import SSL, X509
	ImportError: No module named M2Crypto

	We need the m2crypto package at build time now as well (in order to run tests).

2012-11-14  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	fix several errors when run process-schema.py to parser schema file.
	1. two command names do not match the their comments
	2. fix "Interrupted comment block" error. The comment of each entity
	should start with double pound

2012-11-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	Not remove volumeless or inexistent images.
	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=876115

2012-11-13  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	xmlrpcTests: narrow the expected exception when using retry
	Change the expected exception from the default Exception to
	AssertionError

2012-11-13  Juan Hernandez  <juan.hernandez@redhat.com>

	Implement SSL session cache
	We are currently implementing SSL for the XML-RPC communications with
	the standard Python "ssl" module. Unfortunately this module uses OpenSSL
	in such a way that a new OpenSSL context object is created for each
	client connection. This means that OpenSSL can't reuse the session
	cache that is stored in the context object, so the heavy part of the SSL
	handshake (asymmetric encryption) is performed for each connection.  In
	addition, as we use HTTP 1.0, this also means that we use one connection
	per request, and thus one handshake per request. This is a potential
	performance problem in the VDSM side and a huge performance problem in
	the engine side: when the number of hosts managed by the engine grows
	the use of CPU can grow to a point where almost all the CPU is used for
	SSL handshakes.

	This patch uses the Python M2Crypto.SSL module and creates an OpenSSL
	context object associated to the server socket. This context object is
	where OpenSSL stores the cached sessions information. Instead of
	creating a context object for each client socket the context object
	already created for the server socket is reused. This means that the
	cached sessions are also reused. This session reusing greatly reduces
	the amount of CPU used for handshakes.

	Bug-Url: https://bugzilla.redhat.com/857035

2012-11-13  Dan Kenigsberg  <danken@redhat.com>

	skip supervdsmTests until they work in-tree

2012-11-13  Federico Simoncelli  <fsimonce@redhat.com>

	tests: sort the tests and remove duplicates

	tests: add FileVolumeGetVSizeTest
	This patch adds a test for the getVSize method for file domains.

	tests: drop the sanlock-python dependency
	Testing vdsm shouldn't require sanlock to be installed and running.

2012-11-13  Dan Kenigsberg  <danken@redhat.com>

	build on el6: import OrderedDict from elsewhere
	Commit 1db772c71e has introduced usage of collections.OrderedDict which
	is not part of el6's Python 2.6. This patch imports Raymond Hettinger's
	implementation if OrderedDict is missing in the default location.

2012-11-13  Federico Simoncelli  <fsimonce@redhat.com>

	tests: override the P_VDSM definition in local tests
	The P_VDSM constant is used to configure the PYTHONPATH variable for
	the out of process handlers and it should be overridden during the
	local tests (vdsm is not installed).

2012-11-13  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix hsm.py
	Errors introduced by commit b83a0c157d5c and overlooked by my rebase of
	commit af99446a7cd35.

2012-11-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	svdsm import error
	By mistake I added 'import utils'. This patch fixes svdsm running
	errors and svdsm uts flow

2012-11-13  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	make vdsm/storage/hsm.py PEP8 clean
	clean hsm.py code style problems, and add it to PEP 8 whitelist in
	Makefile.am

2012-11-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#836161 - Changed code obsoleted by deleteImage() rewrite.
	Change image.move and image.multipleMove to call the new
	deleteImage implementation instead of image.delete

	BZ#836161 - Rewrite of deleteImage() complement.
	Volume operations should be done at the SD level to avoid
	retrieving static data multiple times from disk.
	Added lvm.lvDmDev() returning the dm-X for active LVs.
	Use this to get active LV size without issue a lvm command.

	Complements: I304ff5cd70186ffc9789cd1ac9337efa6c5ff695

2012-11-13  Federico Simoncelli  <fsimonce@redhat.com>

	remoteFileHandler: improve PYTHONPATH definition
	The recently added import for logUtils in misc.py broke the out of
	process (remoteFileHandler) subsystem (ImportError: No module named
	logUtils).
	Defining PYTHONPATH with relative paths is both unreliable and
	insecure.

	In this patch:
	* Remove an old sys.path modification in misc.py
	* Improve the PYTHONPATH definition in remoteFileHandler removing the
	  relative path

2012-11-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding supervdsm unit tests
	Adding svdsm uts file. Main tests produce initialization, crashes and
	calling of svdsm. We verify svdsm reaction in those cases.
	To manage that we turn filenames to variables, and change them during
	the tests. This lets us more flexability to use temporary files to run
	svdsm instance.

2012-11-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	configure.ac: check python-pthreading module
	Adding AX_PYTHON_MODULE macro to check if python-pthreading module
	is installed.

2012-11-12  Federico Simoncelli  <fsimonce@redhat.com>

	logging: report the node hostname when vdsm starts
	It is convinient to correlate a log report to a specific host.

2012-11-12  Saggi Mizrahi  <smizrahi@redhat.com>

	Handle a race where it takes some time fot the cmdline to disappear after killing a process

	Fix problem where a 0 error code will cause remoteFileHandler to become a zombie

	Integrate zombie reaper in test framework
	Some parts of VDSM count on the zombie reaper being set up.

	Implement a zombie reaper
	This is meant to solve the issues where one starts a process but doesn't
	care about the return value.

	By using zombieReaper.autoReapPID(pid) you can register the reaper to
	automatically reap your process when it dies.

2012-11-12  Dan Kenigsberg  <danken@redhat.com>

	vdsmapi: fix a pep8 glitch
	I've forgot to include it into Adam's former patch.

2012-11-12  Adam Litke  <agl@us.ibm.com>

	jsonrpc: Implement the JsonRPC server for the next-gen API
	This patch implements a new Binding plugin to serve the next generation vdsm API
	over a JsonRPC wire protocol.  The basic format of a message is:

	    <size><json-data>

	<size> is an unsigned 64 bit integer in big endian format that indicates the
	length of <json-data> in bytes.  <json-data> is either a request or a response
	in Javascript object notation (JSON).

	A request object has the following fields:
	    id:  An integer which will be repeated in the matching response
	    methodName:  The name of the API method to be called
	    args (optional): A JSON object containing arguments to the method

	A response object has the following fields:
	    id:  An integer which will be the same as the matching request
	    result:  The return value of the method (defined in the API schema)
	    error:  A JSON object containing error information
	            code:  An integer error code
	            message:  Error context information

	Method calls are dispatched to vdsm using a MethodBridge.  The DynamicBridge
	dispatches calls based on an API schema document and a set of schema exceptions.
	In this way, the API can be expanded without the need to add more code to this
	server infrastructure.  When a request is made, the DynamicBridge attempts to
	resolve 'methodName' to a schema defined method.  If found, the necessary
	arguments are collected from the request and the function call is dispatched to
	the internal vdsm API.

	Schema exceptions:
	Currently, vdsm does not completely conform to its own API schema.  It is not
	possible to correct all of the discrepencies due to the need to maintain
	backwards compatibility with current API users.  To facilitate migration to this
	API, the DynamicBridge implements a set of overrides to translate between the
	schema-defined API and what is implemented in vdsm today.  There are three types
	of method overrides and one type of argument override:

	Method overrides:
	1. Custom call function:  If a new API does not map directly to an existing vdsm
	   API (or multiple functions must be called to get the result), a custom 'call'
	   function can be defined for the API.  This function will be called instead of
	   trying to find a vdsm API to call.

	2. Return field name:  Many vdsm functions' return values are nested in a
	   dictionary.  This override specifies the key to use when accessing the result
	   so that it can be returned un-nested to the caller.

	3. Custom result post-processing function:  Some vdsm APIs return results in a
	   non-standard format and a special function must be used to reformat the data
	   to comply with the schema.

	Type override:
	Some data types have a different representation internally to vdsm than we have
	defined in the schema.  A type override can be used to convert between the two
	formats.  Currently, the only kind of translation we do is to rename fields
	within a given type.

2012-11-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Add vdsm-xmlrpc as Requirement
	In last released version "vdsm" has provided xmlrpc functionality,
	and now it does not.

2012-11-10  Hercinger Viktor  <hercinger.viktor@gmail.com>

	netinfo: added configuration to show dummy NIC's too
	With the vars.fake_nics configuration a list of comma-separated
	interfaces can be specified. If a dummy interface matches the
	fnmatch pattern, it will be included in the NIC list.

2012-11-09  Dan Kenigsberg  <danken@redhat.com>

	storage/threadPool: fix copyright notice

2012-11-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	clienteIF: replace MOM self.log.error to warn
	If mom package is not installed, at this point vdsm should
	throw warning message instead of error.

2012-11-08  Federico Simoncelli  <fsimonce@redhat.com>

	libvirtvm: set volume the format in live snapshots
	When we update the drive objects (and configurations) at the end of
	a live snapshot we should also update the format to be "cow" in order
	to start requesting the drive extensions on block devices.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=874481

2012-11-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Using only globalPool allow only 10 processes
	For each domain we want to have process pool with limit slots of
	processes, this way we optimize glob over mounted links.
	This fix uses different pool for each domain, instead of the global one.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=853011

2012-11-07  Peter V. Saveliev  <peet@redhat.com>

	BZ#855924 -- fix 3.1 -> 3.0 migration again
	The issue was that fixing self._vm.conf is not enough -- we should
	fix self._machineParams, that will work in all the cases.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=855924

2012-11-07  Adam Litke  <agl@us.ibm.com>

	schema: Return objects rather than UUIDs
	Rather than returning UUIDs and forcing the API user to instantiate their own
	objects using those UUIDs, just return initialized objects.  This patch just
	changes the API schema.  The specific implementation of this idea appears in the
	patch that implements the code generator.

	This is not exhaustive, but an example of the idea.  The rest can be converted
	over time.

	schema: Remove VmFullStatus
	The VmFullStatus alias is a meaningless indirection that simply causes confusion
	to API users.  In all cases, its use just means VmDefinition so use that type
	instead.

	schema: New type VmParameters
	Although the format of the data passed via VM.create is very similar to a
	VmDefinition, some of the parameters don't make sense to pass in the context of
	creating a new VM.  Solve this by creating a new type for VM parameters.

2012-11-07  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	fix REMOVED_IMAGE_PREFIX not defined error
	Recently http://gerrit.ovirt.org/#/c/8506 is merged, it moves
	REMOVED_IMAGE_PREFIX = "_remove_me_" from vdsm/storage/image.py to
	vdsm/storage/sd.py. So all occurrence of REMOVED_IMAGE_PREFIX in
	image.py must be changed to sd.REMOVED_IMAGE_PREFIX, otherwise
	pyflakes will say REMOVED_IMAGE_PREFIX not defined.

2012-11-07  Saggi Mizrahi  <smizrahi@redhat.com>

	Make utils pep8 compliant

2012-11-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#836161 - Rewrite of deleteImage().
	Volume operations should be done at the SD level to avoid
	retrieving static data multiple times from disk.
	Added lvm.lvDmDev() returning the dm-X for active LVs.
	Use this to get active LV size without issue a lvm command.

2012-11-06  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Remove redundant plus between two strings in parenthesis
	Python will join them automatically without plus

2012-11-06  Saggi Mizrahi  <smizrahi@redhat.com>

	Don't forget to close thread pool when stopping the SPM mailer
	This causes thread leak anytime we call startSpm and an error is raised

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=872935

2012-11-06  Bala.FA  <barumuga@redhat.com>

	Change in error message format
	out, err or rc is added to error message only if its non-empty.

2012-11-06  Yaniv Bronhaim  <ybronhei@redhat.com>

	Cleanup unlinked mounts should be sync to hsm initialization
	Using external thread to cleanStorageRepositories that are not linked can
	cause a race if connectPool starts on same link simultaneously.
	Clearing broken links should be done before enabling connect pool.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=872270

2012-11-05  Saggi Mizrahi  <smizrahi@redhat.com>

	Change None equasion in storageServer

	Set up better threading in tests to make sure it happens correctly
	Some object in VDSM count on better threading being set up. They might
	break if it isn't set up or even worse set it up in the middle of a test
	run cause weird and unexpected errors in the test run.

	Also there might be bugs related to our use of pthreading and they will
	not be detected by the tests if it is not set up.

	This make sure pthreading is imported and set up before any tests are
	run.

	Fix getCmdArgs() on some hosts
	for some hosts cmdline might take some time to get actual content. This
	means to fix it by retrying if the content is missing.

	pep8 now also check visual aligment

2012-11-04  Yaniv Bronhaim  <ybronhei@redhat.com>

	itmap unit tests

2012-11-04  Federico Simoncelli  <fsimonce@redhat.com>

	fileVolume: make getVSize a real classmethod
	Formerly fileVolume even if declared as classmethod it was actually
	relying on producing the object to obtain the required information.
	This patch makes it a real classmethod (symmetric with block domains)
	which is particularly useful in case of half-baked volumes.

	Bug-Url: https://bugzilla.redhat.com/871811

2012-11-03  Saggi Mizrahi  <smizrahi@redhat.com>

	Make sure during upgrade that lease files have correct permission
	Bug-Id: https//bugzilla.redhat.com/show_bug.cgi?id=870024

2012-11-03  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Applied PEP-8 guideline on code

2012-11-02  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: pyflakes/python-pep8 BuildRequirement
	pyflakes and python-pep8 are not default RHEL packages.
	This patch will move it for non rhel system requirements.

	configure.ac: pyflakes/python-pep8 reduce to warn
	Replace error message for warning message if build
	system doesn't contain pyflakes and python-pep8
	packages installed.

2012-11-01  Dan Kenigsberg  <danken@redhat.com>

	doh! fix the former commit
	I've decorated the class instead of the test method :-(

	Declare GetCmdArgsTests.test as broken
	Commit 86a259a804fbe6eb exposed a bug which we do not know to explain or
	to properly reproduce. This patch marks the broken test as such.

	FAIL: test (miscTests.GetCmdArgsTests)
	----------------------------------------------------------------------
	Traceback (most recent call last):
	  File "/home/jenkins/workspace/vdsm_unit_tests/tests/miscTests.py", line 77, in test
	    self.assertEquals(misc.getCmdArgs(sproc.pid), args)
	AssertionError: Tuples differ: () != ('sleep', '4')

	Second tuple contains 2 additional elements.
	First extra element 0:
	sleep

	- ()
	+ ('sleep', '4')

2012-11-01  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix getCmdArgs() failing on some hosts

2012-11-01  Greg Padgett  <gpadgett@redhat.com>

	storage: Don't ignore nfs_mount_options in vdsm.conf
	The nfs_mount_options configuration setting in vdsm.conf was ignored.

	If the engine doesn't pass any mount options, and nfs_mount_options are
	present (and not the defaults), then use the options from the config
	file, as options to 'posixfs' connection. Otherwise, use whatever the
	engine passes and/or defaults as was done previously.

	Bug-Url: https://bugzilla.redhat.com/826921

2012-10-31  Yeela Kaplan  <ykaplan@redhat.com>

	Catch exception thrown by forceIScsiScan causing disconnect to fail
	Sending disconnectStorageServer twice triggers two calls to
	forceIScsiRescan. The first rescan closes the fd of the dd process for
	the disconnected hba. The second rescan tries to write to the same hba
	but doesn't find it anymore and dd exits and raises exception.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=868681

	Add rescan to formatStorageDomain to solve multipath race
	disconnectStorageServer and connectStorageServer are performed
	sequentially before formatStorageDomain, causing a race with multipath.
	The minimal timeout in forceIScsiScan gives multipath time for
	stabilization before trying to format the storage domain.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=844180

2012-10-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Reporting error instead of warn when timeout is raised in oop operation

2012-10-30  Gal Hammer  <ghammer@redhat.com>

	BZ#867439 VM unexpectedly was shutdown after migration.
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=867439

2012-10-30  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix version handling for NFS
	- The version parameter is now string. This is done to support NFS 4.1 and
	4.2.
	- Also moving of code around so that backward compatibility hacks are
	  limited to the old storage management API.

2012-10-29  Saggi Mizrahi  <smizrahi@redhat.com>

	Save a few seconds while running misc tests

	Make sure teardown() is called in case of errors
	This also adds scopedPrepare. It should be use unless there is absolutely
	no other choice!

	Bug-Url: https://bugzilla.redhat.com/815359

2012-10-29  Federico Simoncelli  <fsimonce@redhat.com>

	volume: save the correct size during creation
	As the comment in the patch states: when the volume format is raw what
	the guest sees is the apparent size of the file/device therefore if the
	requested size doesn't match the apparent size (eg: extends granularity
	in LVM) we need to update the size value so that the metadata reflects
	the correct state.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=868272

2012-10-29  Eduardo Warszawski  <ewarszaw@redhat.com>

	Log if timed out during fileSD.scanDomains().
	git gr -i -E  'sd.*?\.produce\('

	Fix race in fileUtils.createdir().
	Checking dir inexistence and creating it afterwards is racy.

	This version creates the target dir, and if it already existed
	check if has the requested permissions.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=838547

2012-10-28  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix exception string in lvm.changeVGTags().

2012-10-27  jarod.w  <work.iec23801@gmail.com>

	vdsm: delete undefined varable in mk_sysprep_floppy

2012-10-27  Federico Simoncelli  <fsimonce@redhat.com>

	pool: live storage migration implementation
	This patch introduces the support for the live storage migration in
	VDSM. The following new VM verbs are exposed:

	 result = diskReplicateStart(vmId, srcDisk, dstDisk)
	 result = diskReplicateFinish(vmId, srcDisk, dstDisk)

	The srcDisk and dstDisk are in the DriveSpecVolume format, e.g.:

	 driveSpecVolume = {
	     'device': 'disk',
	     'domainID': <sdUUID>,
	     'poolID': <spUUID>,
	     'imageID': <imgUUID>,
	     'volumeID': <volUUID>,
	 }

	The srcDisk describes the current image used by the VM and dstDisk
	describes the final image destination after the migration is completed.
	In diskReplicateStart srcDisk and dstDisk must be different, on
	diskReplicateFinish if srcDisk is different from the dstDisk then the
	live storage migration is completed, otherwise if srcDisk is equal to
	the dstDisk then the live storage migration is aborted and the VM falls
	back on the srcDisk (this can also be exploited for live cloning a VM).

	The possible returned errors are:

	- noVM(1): the VM is not present
	- imageErr(13): the image is not present
	- replicaErr(55): the replication request failed (e.g.: there is another
	  replication ongoing, there is no ongoing replication to stop, etc.)
	- unavail(40): the replication is not ready to switch to the destination
	  (the streaming process is ongoing), retry later. In the future this
	  information will be monitored with an HSM task.
	- changeDisk(41): the final operation to switch to the destination
	  failed and the VM falls back to the source.

	To copy the volume chain the following SPM verbs are now exposed:

	 taskId = cloneImageStructure(spUUID, sdUUID, imgUUID, dstSdUUID)
	 taskId = syncImageData(spUUID, sdUUID, imgUUID, dstSdUUID, syncType)

	The general purpose of these verbs is to expose advanced options to
	perform the copy of an image from a source storage domain (sdUUID) to
	a destination storage domain (dstSdUUID).
	The cloneImageStructure operation is preparing a new identical volume
	chain on the destination (dstSdUUID). The syncImageData operation is
	performing the real copy (copying the data) from the source volume chain
	to the destination.

	The 'syncType' parameter supports the following options:

	 SYNC_VOLUMES_ALL  # All the volumes are synchronized
	 SYNC_VOLUMES_INTERNAL  # Only the internal volumes are synchronized
	 SYNC_VOLUMES_LEAF  # Only the leaf volume is synchronized

	The returned errors are the regular storage domain errors with a special
	emphasis for the ones already returned by copyImage and moveImage.

	An example of a full live storage migration flow is:

	 ... live snapshot on srcDisk ...

	 SPM: cloneImageStructure(spUUID, sdUUID, imgUUID, dstSdUUID)
	 ... wait for the imageSync task to finish ...

	 VMHOST: diskReplicateStart(srcDisk, dstDisk)

	 SPM: syncImageData(spUUID, sdUUID, imgUUID, dstSdUUID,
	                    SYNC_VOLUMES_INTERNAL)
	 ... wait for the imageSync task to finish ...

	 VMHOST: diskReplicateFinish(srcDisk, dstDisk)

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=865384

2012-10-26  Dan Kenigsberg  <danken@redhat.com>

	pep8: fix 2 errors and ignore plenty of others
	We need to either ignore or fix upstream pep8 errors so that vdsm can
	build in Fedora 18.

2012-10-26  Saggi Mizrahi  <smizrahi@redhat.com>

	Refresh storage in getDevicesVisibility() using multipath.rescan() instead of forceIScsiRescan()
	Using forceIScsiRescan() just refreshes the iSCSI targets, you need a new
	multipath run for devices to actually register in the device mapper.

2012-10-26  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Fix string format in storage exception

2012-10-26  Eduardo Warszawski  <ewarszaw@redhat.com>

	Require lvm with  ignored_mdas fix
	PVs blonging to a VG are reported as free if the PV is listed
	before reading the VG metadata, which is in another PV.
	This may cause false getVGInfo() reports.
	The present lvm version fixes it.

	Note that the Fedora required version is not updated as lvm2
	package is not updated there.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=798635
	Related to: https://bugzilla.redhat.com/show_bug.cgi?id=836663

	BZ#836161 - Pluralize lvm.changelv().
	Allow changing multiple attributes at once.

	Related to BZ#836161 - Add image to task name to improve log.
	The name will be used in the future for garbage collection.

2012-10-26  Mark Wu  <wudxw@linux.vnet.ibm.com>

	trivial: Clean handling of missing parameter in hotplugNic/hotunlugNic
	We can't construct a NetworkInterfaceDevice using an empty dict. So
	it doesn't make sense to assign an empty dict to nicParams and let
	it go further. And the parameter 'nic' is already validated in API level,
	so it should be safe to use it directly.

2012-10-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm_reg: generate deployUtil.py and config.py
	Adding nodist_vdsmreg_PYTHON to all-local target. Otherwise, deployUtil.py and config.py won't be generated.
	Thanks to Ravi Nori for the report!

	Introduced by commits:
	9459af3fa7f823d04d6e3ac5c5439ec6b2b6e961 (deployUtil)
	04efb9572326aa08bcc4af8e35c77433ee4146b0 (config)

2012-10-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	libvirt_password: remove new line char
	Do not generate different passwords.
	In the past we created the libvirt_password inside spec file without the newline char (echo -n).
	These days, we have a file that contain the password but uses the newline char. This scenario make
	the rpm upgrade completes with a warning message sharing that the password has changed.
	This patch will remove the newline char from the libvirt_password file.

	Introduced by commit: 1e5b390943a9c35e666bae06184fd8ea9cfdf289

	Example:
	 Updating   : vdsm-<snip>
	5/11
	warning: /etc/pki/vdsm/keys/libvirt_password created as /etc/pki/vdsm/keys/libvirt_password.rpmnew

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=866533

2012-10-25  Dan Kenigsberg  <danken@redhat.com>

	pep8: drop redundant trailing backslash
	Upstream pep8.py tool cries about it, and it was easy to fix
	automatically.

	While at it, fixed badly-broken long lines.

2012-10-25  Antoni S. Puimedon  <asegurap@redhat.com>

	Replace 'has_key' with 'in'
	Replace the dictionary method 'has_key' for the more
	pythonic and forwards compatible 'in' operator.

2012-10-25  Dan Kenigsberg  <danken@redhat.com>

	pep8: clean few small files

2012-10-24  jarod.w  <work.iec23801@gmail.com>

	add -d parameter when umouning in mk_sysprep_floppy
	After umounting mntpoint successfully, it doesn't free automatically
	the loop device. Here, we add '-d' parameter to free the device to
	prevent it using up all loop devices.

	The issue only happened in the special case that node is built using
	livecd-tools(version: >= 16.8-1) and rpms from centos63. Because:
	1. Centos63 disables auto-destruction feature and still depends on
	  /etc/mtab to free the loop device.
	2. Livecd-tools links /etc/mtab to /proc/self/mounts, so umount can't
	  get suggestion to free the loop device from /etc/mtab.

2012-10-24  Juan Hernandez  <juan.hernandez@redhat.com>

	Don't require fingerprint
	Currently, during automated installation of the node, we require the
	user to provide the fingerprint of the CA certificate in the
	"management_server_fingerprint" kernel option. This should be optinal,
	so if it is not provided then nothing is checked.

	Bug-Url: https://bugzilla.redhat.com/856167

2012-10-24  Yaniv Bronhaim  <ybronhei@redhat.com>

	itmap starts threads for each argument causes too many oop operations
	This patch starts the threads until we reach to maxthreads, than we
	wait for one thread to end and move on until we loaded all threads.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=523011

2012-10-24  Amador Pahim  <apahim@redhat.com>

	Validating number of required args in spmStart()
	Bug-Url: http://bugzilla.redhat.com/868619

	Currently vdsClient spmStart() returns
	"(Unexpected exception )" error if we provide
	less arguments than required. spmStart()
	expects 7 arguments, with 5 of them being
	required.
	This patch changes validateArgTypes() to allow
	number of required args specification instead
	of requireAllArgs "true" or "false" - wasn't
	enough when not all arguments, but some
	are required - and specifies the number of
	required args to spmStart().

2012-10-24  Federico Simoncelli  <fsimonce@redhat.com>

	upgrade: handle the templates lease files
	On file domains multiple lease files were generated for the
	same template volume. This patch addresses the issue upgrading
	the domain by volume and taking advantage of a new specific
	volume method (_shareLease) to share the lease with the other
	images.

	In this patch:
	* Fix the multiple leases for the same template volume issue
	* Improve the domain V3 conversion upgrading by volume (instead
	  of by image)

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=855425

2012-10-24  Alon Bar-Lev  <alonbl@redhat.com>

	packaging: add a method to reconfigure without init.d parameter
	systemd does not support additional service commands[1], while there can
	be argue if this is good or bad this is the fact.

	CURRENT IMPLEMENTATION

	Current bootstrap implementation uses hybrid approach while trying to
	pass "reconfigure" to init.d, and when fails, access the init.d script
	directly.

	This is highly none expected behavior.

	NEW IMPLEMENTATION

	Add /var/lib/vdsm/reconfigure file, if exists perform reconfiguration.

	This will work with any init.d system without issues.

	The service will be reconfigure at next start.

	** We cannot remove the code from the current vdsm-bootstrap, so it able
	   to reconfigure previous versions of vdsm.

	[1] http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities

2012-10-24  Igor Lvovsky  <ilvovsky@redhat.com>

	NIC hotplug should fail if setPortMirroring failed
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=867806

2012-10-24  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix vdsClient relative import woes.
	This patch enables the users to execute vdsClient
	without problems even from the source build tree.
	In general it makes the execution more resilient
	to naming conflicts in the local directory.

2012-10-24  Shu Ming  <shuming@linux.vnet.ibm.com>

	Text: fix the syntax error in the comment of createVolume()

2012-10-24  Douglas Schilling Landgraf  <dougsland@redhat.com>

	sos/vdsm.py: Add vdsm-reg dir
	Collect file(s) from /etc/vdsm-reg

2012-10-24  Antoni S. Puimedon  <asegurap@redhat.com>

	Make netinfoTests follow closely python guidelines.
	Change 'file' by 'open' and use a with block not to wait for gc.
	Prefer list comprehensions to map and filter.

2012-10-23  Peter V. Saveliev  <peet@redhat.com>

	BZ#867413 VDSM should return supportedENGINEs
	There is no references for supportedRHEVMs in the code of the
	ovirt-engine, but we have a reference for supportedENGINEs.
	According to it, the variable should be reported in the same
	format as supportedRHEVMs and has the same meaning.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=867413

2012-10-23  Federico Simoncelli  <fsimonce@redhat.com>

	stats: move the lastCheck computation to getRepoStats
	Since getVdsStats relies on repoStats for the storage domain statistics
	it makes sense to move the lastCheck computation into the latter one.
	Moreover the repoStats call before this patch was returning the unix
	timestamp for the lastCheck (wrong) instead of the elapsed time.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=868721

2012-10-22  Peter V. Saveliev  <peet@redhat.com>

	BZ#855924 fix VM config dictionary
	Fix vm.conf dictionary for compatibility with targets < 3.1.
	The issue was that 3.0 defines cdrom and floppy as dedicated
	dictionary keys, while 3.1 places them among other drives.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=855924

2012-10-22  Igor Lvovsky  <ilvovsky@redhat.com>

	Add 'name' attribute to VM conf during _getUnderlyingNetworkInterfaceInfo.
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=867813

2012-10-22  Yaniv Bronhaim  <bronhaim@gmail.com>

	SuperVdsm validation of recovery after crash
	When calling svdsm we verify if svdsm is up by reading its pid create
	time and compare it to timestamp that is written every svdsm
	initialization.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=846307

2012-10-22  Yeela Kaplan  <ykaplan@redhat.com>

	Update scsi_id options format and add devices to multipath.conf
	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=819745

	Clean /rhev/data-center/mnt/ after failed mount command
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=853040

2012-10-22  Dan Kenigsberg  <danken@redhat.com>

	Factor betterThreading out of Vdsm
	Recently, I've spun-off betterThreading as
	http://pypi.python.org/pypi/pthreading and have placed it in Fedora
	https://admin.fedoraproject.org/pkgdb/acls/name/python-pthreading .

	I believe that other complex multi-threading Python2 applications running
	on Linux would benefit from python-threading. Let us use it instead of
	containing it.

	Python3's implementation of threading already uses pthread, making
	pthreading useless if Python 3 is used.

2012-10-21  Saggi Mizrahi  <smizrahi@redhat.com>

	Properly propagate pool timeout in file handler

2012-10-21  Federico Simoncelli  <fsimonce@redhat.com>

	Revert "Initial live block migration API"
	This reverts commit 9e83bef71e6e02bf1264498d5f7297e377b32ca5.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=865384

2012-10-20  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix some pep8 errors in storageServer.py
	This doesn't make it 100% compliant because it's just irrelevant changes
	extracted from a bigger patch rebase.

	The job is finished in the next patch.

2012-10-19  Adam Litke  <agl@us.ibm.com>

	pep8: Make vdsm_api pep8 clean
	Since the vdsm_api directory does not yet have a Makefile.am, the files cannot
	be checked because vdsm_api isn't included in the distribution.  The next patch
	in this series will remedy that by establishing an automake presense in
	vdsm_api/ .

2012-10-19  Federico Simoncelli  <fsimonce@redhat.com>

	domain: fix onDomainConnectivityStateChange attribute
	The onDomainConnectivityStateChange event is not a DomainMonitorThread
	attribute.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=853703

2012-10-19  Saggi Mizrahi  <smizrahi@redhat.com>

	Clean up findCaller and add tests

2012-10-19  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	make vdsm/kaxmlrpclib.py PEP 8 clean

2012-10-19  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	add path instead of file items in PEP8_WHITELIST
	In some of directories, the pep8 of all the python source files are
	cleaned up, Just leave the path in pep8 list, remove the file items

	If a new python file is added in these pathes, the audobuild will
	check pep8 of this file automatically without adding it in pep8 list.

2012-10-18  Greg Padgett  <gpadgett@redhat.com>

	storage: can't create gpfs domain
	Validation for ':' in the path during creation of posix storage domains
	causes failure when creating gpfs domains; instead, check this only for
	nfs domains.

2012-10-18  Federico Simoncelli  <fsimonce@redhat.com>

	image: avoid prezeroing optimization in some cases
	The prezeroing optimization should be used only when it is actually
	stricly required. Using such optimization with COW is dangerous since
	the qcow2 header would contain the temporary volume size (10Mb).

	Until now this wasn't a problem because the content of the volume
	(qcow2 header included) would have been replaced by the original
	content (during a copy), with the introduction of live storage
	migration this might become a problem because the leaf is actually
	used for mirroing.

	volume: remove domain shared lock from getVolumeSize
	During long operations involving an exclusive lock on a storage
	domain (e.g.: domain upgrade) the getVolumeSize calls coming from
	the VmStatsThread are queued and the statsAge grows until the VMs
	are moved to not-responding.

	Also the extendVolume requests are queued (with requests coming
	from other hosts in the cluster) and the (redundant) refreshVolume
	issued by the VMs on the SPM.

	Removing the getSharedLock call from such methods is the safest
	way to fix the issue since we don't use more granular locks during
	the upgrade (image/volume locks) and these calls can either succeed
	or fail without undesirable side effects.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=865386

2012-10-17  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	fix comments in vm.getStats

2012-10-17  Laszlo Hornyak  <lhornyak@redhat.com>

	start ksm and ksmtuned when vdsm starts
	Bug-Url: https://bugzilla.redhat.com/854027

2012-10-17  Federico Simoncelli  <fsimonce@redhat.com>

	setup: move the certificate generation
	Generating the certificate at the service startup (instead of during the
	rpm installation) has a better chance to succeed (and a better recovery
	process). Moreover this allows appliances (like ovirt-node) to postpone
	the certificate generation when the service is actually used for the
	first time.

	In this patch:
	* Move the certificate generation from the spec file to the init file

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=860067

	vm: remove unused reqsize and needExtend
	It is some time that reqsize and needExtend have been dismissed, in
	preparation of some more extensive rework in the watermark handling
	(for the live storage migration support) we should explicitly remove
	the superfluous parts that we don't need to maintain.

	Rel-Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=865384

2012-10-16  Greg Padgett  <gpadgett@redhat.com>

	storage: failure to reconnect to authenticated iSCSI LUNs
	Fix failure to reconnect to iSCSI storage domains on LUNs requiring
	authentication due to missing CHAP credentials.

	The credentials were sent to VDSM when connecting sessions on the host,
	but VDSM was not sending them back to the engine when the engine queried
	for connection properties.  Without this, the engine couldn't store them
	in the database, and thus couldn't send them back out to any host trying
	to connect (or reconnect) the storage.

2012-10-16  Dan Kenigsberg  <danken@redhat.com>

	port mirroring requires a newer kernel
	It may be unsafe to use port mirroring due to kernel bug
	https://bugzilla.redhat.com/846585 and its el-6.3.z
	clone https://bugzilla.redhat.com/851444 .

2012-10-16  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	schema: add explanation string for the ballonInfo field
	Recently http://gerrit.ovirt.org/#/c/3669/ is merged. It adds a new
	member named balloonInfo to the type RunningVmStats, but forgets to add
	the corresponding information string in the comments. This will cause
	process-schema.py raise a KeyError when looking for info_data of
	balloonInfo and fail to generate the html documentation.

	This patch adds the corresponding information string.

2012-10-16  Mark Wu  <wudxw@linux.vnet.ibm.com>

	test: Add test cases for domxml generation

2012-10-15  Greg Padgett  <gpadgett@redhat.com>

	storage: Change low-priority tasks to idle priority
	Some tasks run as best-effort priority level 7, which is not low enough
	to prevent starvation of higher-priority tasks on the host.  This can
	hurt response time and even cause timeouts under heavy load.

	Instead, use idle priority so that the operations are done without
	interrupting other system operations.

	Note that idle priority behavior changed in kernel 2.6.25; there is now
	a guarantee of forward progress for processes at this level, making it
	usable for tasks such as these.

	Bug-Url: https://bugzilla.redhat.com/854242

2012-10-15  Adam Litke  <agl@us.ibm.com>

	schema: getStorageRepoStats returns StorageDomainVitalsMap
	The schema incorrectly had getStorageRepoStats returning StorageDomainStatsMap.
	In fact it returns a StorageDomainVitalsMap.  Fix the error and remove the
	unused mapping type StorageDomainStatsMap.

	schema: Change the format for specifying unions
	Unions are regular types but with methods to 'cast' the internal object to one
	of the member types.  We need to do it this way to support languages that lack
	the concept of type casting (ie. Python).  Change the schema to accomodate this
	new way of representing unions:
	 - 'data': contains fields that are common to all sub-types in the union.
	   Useful for identifying what the generic type should be casted to (eg.
	   VmDevice.deviceType).
	 - 'union': A list of types to which this object may be cast.  Causes the proper
	   casting methods to be generated.

	schema: Fix up VmDefinition Types

2012-10-15  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix some pep8 errors

2012-10-15  Laszlo Hornyak  <lhornyak@redhat.com>

	report cpuUser and cpuSys separately (#800367)
	Bug-Url: https://bugzilla.redhat.com/800367

	Uses virDomainGetCPUStats to get the CPU information instead of info()
	The content of the exported 'cpuSys' and 'cpuUser' changes:
	 - cpuSys is the sum of system_time and user_time reported by libvirt
	   since none of these include the guest time
	 - cpuUser is the time consumed only by the guest VM without the
	   system_time and the user_time

2012-10-15  Alon Bar-Lev  <alonbl@redhat.com>

	vdsm-reg: use M2Crypto instead of pyOpenSSL
	M2Crypto is much more supported and has superior coverage.

2012-10-15  Igor Lvovsky  <ilvovsky@redhat.com>

	Bump libvirt version to libvirt-0.9.10-21.el6_3.5
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=866163

2012-10-14  Antoni S. Puimedon  <asegurap@redhat.com>

	Keep nics up after network ops.
	All the network operations leave the nics up
	after this patch.

	Bug-Url: https://bugzilla.redhat.com/691484

2012-10-10  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	remove unassigned nice in vm
	_nice in vm is never assigned so should not reported in vm stats

2012-10-10  Saggi Mizrahi  <smizrahi@redhat.com>

	Added test to verify that miscExec throws exception when invoking a command that doesn't exist

2012-10-10  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix a bug in the naming convertion of cpu feature 'sse4_x'
	The list slice opertion missed the last character. It caused
	the feature name couldn't get chance to be converted into
	libvirt's naming.

2012-10-10  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: allow customize bridge name for standard sequence
	For gluster integration, we need bootstrap to be able to accept
	management bridge name within bootstrap and not relay on vdsm build time
	settings.

	As gluster only performs standard host bootstrap (as opposed to
	registration), the customization will be available only for this
	sequence.

	In future the registration sequence will be altered to match the standard
	sequence.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=863717

2012-10-10  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Add exit code for vdsm-tool commands
	The exit code is useful for user that calls vdsm-tool commands,
	So return the exit code of vdsm-tool commands as shell commands do.

2012-10-09  Antoni S. Puimedon  <asegurap@redhat.com>

	Make nics, vlan and bonding dhcp ifup to be asynchronous.
	Extends the asynchronous dhcp ifup beyond bridges.

2012-10-09  Dan Kenigsberg  <danken@redhat.com>

	libvirtconnection: retry opening a libvirt connection
	When we try to open a connection to libvirt too early after libvirtd has
	been started, we fail. This was first noticed in vdsmd after reboot, and
	was hacked there. However, the same bug appears when vdsm-reg-setup is
	run after reboot, and may appear during bootstrap.

	This patch polls for 10 seconds when a new connection to libvirt is
	requested.

	Bug-Url: https://bugzilla.redhat.com/862002

	tests: drop a partial reimplementation of util.retry

	move storage.misc.retry to vdsm.utils
	retry() is not storage-related. It is used only once, by supervdsm. I'm
	moving it outside so it is more easily usable.

2012-10-08  Dan Kenigsberg  <danken@redhat.com>

	vdsm-reg does not use traceroute for quite some time
	traceroute should have been dropped from the spec file when
	https://bugzilla.redhat.com/689726 was solved.

2012-10-08  Alon Bar-Lev  <alonbl@redhat.com>

	vdsm-reg: use web server CA extracted from SSL handshake
	CURRENT IMPLEMENTATION

	During registration, the CA certificate of the web server is downloaded
	from ENGINE_URL/ca.crt

	PROBLEM IN CURRENT IMPLEMENTATION

	There is no way to separate between the CA of the engine that issues
	certificates for vdsm and the web interface certificate.

	JUSTIFICATION

	Having 3rd party CA for web server certificate is required to meet
	organization policy. The 3rd party CA may already be trusted so issuing
	web server certificate using 3rd party CA makes deployment easier.

	NEW IMPLEMENTATION

	Acquire CA certificate from the TLS/SSL handshake.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=863292

2012-10-08  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	fix tests package dependency
	vdsm-tests depend on python-nose, it was only required for build env
	add this to runtime env to make tests available for users.

2012-10-08  Federico Simoncelli  <fsimonce@redhat.com>

	specfile: require selinux-policy 3.10.0-149
	Update to the newest selinux-policy package in fedora, among other
	general fixes it contains:

	- sanlock needs to send Kill Signals to non root process
	- update sanlock policy to solve all AVC's

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=863980

2012-10-08  Antoni S. Puimedon  <asegurap@redhat.com>

	Generalize asynchronous ifupping of network interfaces.
	Make the already used asynchronous ifupping of network
	interfaces (added for BZ#498940) to be an option of the
	general ifup function.

2012-10-08  Federico Simoncelli  <fsimonce@redhat.com>

	sdcache: remove the domain weakref cache
	This patch removes the (now) redundant weakref cache (replaced by the
	DomainProxy) and also parallelize the _findDomain calls for different
	storage domains.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=851146

2012-10-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove unused image.preDeleteHandler().
	Dead code remove.

2012-10-06  Amador Pahim  <apahim@redhat.com>

	Change source of CPU sockets/cores to libvirt capabilities
	Bug-Url: http://bugzilla.redhat.com/833425

	/proc/cpuinfo is not enough to provide full CPU
	sockets/cores/threads information in some systems,
	e.g. multi NUMA AMD Magny-Cours processors. To bypass
	different/unusual architectures and avoid duplication
	of code between vdsm and libvirt, this patch changes
	the source of CPU topology from /proc/cpuinfo to
	libvirt API.

	Since libvirt ignores funky topologies [1] with
	assimetric number of sockets per numa node and
	cores per socket, this patch assumes that all
	numa nodes has the same number of sockets and
	all sockets has the same number of cores.

	Merged with Laszlo's changes in http://gerrit.ovirt.org/8302

	[1] - http://libvirt.org/git/?p=libvirt.git;a=commit;h=ac9dd4a676f21b5e3ca6dbe0526f2a6709072beb

2012-10-05  Pradipta Kr. Banerjee  <bpradip@in.ibm.com>

	Add support for KVM on IBM POWER processor (ppc64)
	This patchset adds ppc64 arch support to the bootstrap code.
	Changes have been made to enable detection of CPU vendor,
	virtualization capability of the POWER platform and getting
	system UUID for KVM on POWER

2012-10-05  Greg Padgett  <gpadgett@redhat.com>

	storage: Default to NFSv3 if version not specified
	Unexpectedly switching to NFSv4 during e.g. upgrades from 3.0 to 3.1
	can cause permissions issues.  Unless explicitly set, use v3 as the
	default.  (By default, engine doesn't pass a version for SPs with
	compatibility version 2.2 or 3.0.)

	Bug-Url: https://bugzilla.redhat.com/855729

2012-10-04  Saggi Mizrahi  <smizrahi@redhat.com>

	Use buffer size in multiplies of the recommended transfer size
	Using the recommended transfer size fixes the memory corruption for NFS.

	Bug-Id: http://bugzilla.redhat.com/845660

2012-10-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	setNetworking(): set bridge status
	Currently, if the bridge for some reason is not created, users are informed
	with a warning message and bootstrap continues, the host is rebooted and
	Engine will report the node as Non Responsive.

	This patch will stop bootstrap as soon as any error occurs adding brigde
	and will show to users the an error message like:

	"Failed to install Host X.Y.Z. Step: SetNetworking:
	  Details: addNetwork error trying to add mangament bridge."

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=840300

2012-10-02  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Introduce a new verb setBalloonTarget
	We need this API to achieve memory overcommitment on guest level. Here's
	the definition of the new API:

	setBalloonTarget:
	    Dynamically change the target amount of physical memory allocated
	    to a guest.

	    Input parameter:
	        vmId   - VM UUID
	        target - target physical memory size in kibibytes
	    Return value:
	        success: return doneCode
	        failure: return errCode including underlying libvirt error message.

	And the ballooning information is added into the response of
	getVmStats(). It can be collected on vdsm client by this way:

	   balloon_info = s.getVmStats(vmId)['statsList'][0]['balloonInfo']

	Please note that setBalloonTarget can work only when a virtio balloon
	device is available for the guest. So to test it with vdsm API, you need
	put the following python dictionary into the 'devices' list in VM's conf
	to enable balloon device:

	{'device': 'memballoon', 'type': 'balloon', 'specParams':
	 {'model': 'virtio'}}

	On ovirt-engine, there's checkbox 'Memory Balloon Enabled' in the
	'New/Edit VM' UI. You can enable it in cluster 3.1.

2012-10-02  Timothy Asir  <tjeyasin@redhat.com>

	Added glusterVolumeProfileStop verb

	Added glusterVolumeProfileStart verb

2012-10-02  Bala.FA  <barumuga@redhat.com>

	Added glusterVolumeStatus verb
	Following is output structure depending on statusOption passed

	No option or default output:
	{'name': NAME,
	 'bricks': [{'brick': BRICK,
	             'port': PORT,
	             'status': STATUS,
	             'pid': PID}, ...],
	 'nfs': [{'hostname': HOST,
	          'port': PORT,
	          'status': STATUS,
	          'pid': PID}, ...],
	 'shd: [{'hostname': HOST,
	         'status': STATUS,
	         'pid': PID}, ...]}

	detail option output:
	{'name': NAME,
	 'bricks': [{'brick': BRICK,
	             'sizeTotal': SIZE,
	             'sizeFree': FREESIZE,
	             'device': DEVICE,
	             'blockSize': BLOCKSIZE,
	             'mntOptions': MOUNTOPTIONS,
	             'fsName': FSTYPE}, ...]}

	clients option output:
	{'name': NAME,
	 'bricks': [{'brick': BRICK,
	             'clientsStatus': [{'hostname': HOST,
	                                'bytesRead': BYTESREAD,
	                                'bytesWrite': BYTESWRITE}, ...]},
	           ...]}

	mem option output:
	{'name': NAME,
	 'bricks': [{'brick': BRICK,
	             'mallinfo': {'arena': int,
	                          'fordblks': int,
	                          'fsmblks': int,
	                          'hblkhd': int,
	                          'hblks': int,
	                          'keepcost': int,
	                          'ordblks': int,
	                          'smblks': int,
	                          'uordblks': int,
	                          'usmblks': int},
	             'mempool': [{'allocCount': int,
	                          'coldCount': int,
	                          'hotCount': int,
	                          'maxAlloc': int,
	                          'maxStdAlloc': int,
	                          'name': NAME,
	                          'padddedSizeOf': int,
	                          'poolMisses': int},...]}, ...]}

2012-10-02  Juan Hernandez  <juan.hernandez@redhat.com>

	Store engine web CA cert in engine_web_ca.pem
	Currently we store the CA certificate downloaded from the engine for
	registration purposes in the /etc/pki/vdsm/cacert.pem file.  This file
	is then replaced by VDSM by its default one during reboot, making a
	backup before. This means that after the reboot vdsm-reg can't use it to
	download the SSH key, and this means that registration fails.

	This patch changes deployUtil.py so that it downloadto s the certificate
	of the CA that signs the certificate of the engine web server to a new
	file: /etc/pki/vdsm/enginecacert.pem. This file is not touched by the
	VDSM start script, so that vdsm-reg can use it later to download the SSH
	key correctly.

	Bug-Url: https://bugzilla.redhat.com/856167

2012-10-02  Ryan Harper  <ryanh@us.ibm.com>

	Fix check-local build error
	Commit a062a1ae5124b6bce0beb73433fe0bf5822e6ebd changed
	vm.py removing a call to the caps module, but didn't remove
	the module import from source file and now pyflakes complains.

	(hungerforce) vdsm % make check-local
	find . -path './.git' -prune -type f -o \
	        -name '*.py' -o -name '*.py.in'  | xargs /bin/pyflakes
	./vdsm/vm.py:36: 'caps' imported but unused
	make: *** [check-local] Error 123

	This patch just removes the import.

2012-10-02  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix disconnect iscsi connections.
	iscsi disconnect failed to find the session to be disconnected,
	Resulting in a void operation.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=854151

2012-10-02  Igor Lvovsky  <ilvovsky@redhat.com>

	Read 'source'/'bridge' of NIC interface only if exists

2012-10-02  Peter V. Saveliev  <peet@redhat.com>

	BZ#781975 VM creation concurrency limit
	Since libvirt now does not support concurrent VM creation,
	simultaneous requests lead to the situation when a user
	should wait all VMs to be created before he sees any progress
	in the UI. Tho just for now it is more reasonable to limit
	parallel creation (4 threads does the stuff slightly faster
	than 1, and a user will see the progress in UI). As libvirt
	will support more fine-grained lock in its driver, we can
	return to caps.CpuInfo().cores() usage.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=781975

2012-10-02  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: remove MAC address from vds unique id
	CURRENT IMPLEMENTATION

	vds unique id is at format: @BIOS UUID@_@Low(MAC)@

	If BIOS UUID was not available either empty or "Not" were used.

	PROBLEMS IN CURRENT IMPLEMENTATION

	BIOS UUID may be missing or duplicate.

	MAC may change either because of bonding (resolved) or
	because of physical adapter change.

	ASSUMPTION

	Hosts with no BIOS UUID or with duplicate UUID are less than 0.05% of
	the hosts we manage.

	CONCLUSION

	No need to add great complexity malformed UUID hosts 0.05%.
	But remove the MAC issues from the solution.

	METHOD

	Remove the MAC address from vds unique id.
	Allow to bypass BIOS UUID with configuration.

	DETAILS

	If /etc/vdsm/vdsm.id exists at host, content is the vds unique id.

	If running on RHEV-H persist /etc/vdsm/vdsm.id during bootstrap or
	vdsm-reg.

	/etc/vdsm/vdsm.id is created by first engine vds unique id lookup
	or manually by administrator.

	SIDE EFFECTS

	If RHEV-H is reinstalled on malformed host (one with no BIOS UUID)
	it will be treated as a new host.

	RHEV-H without the complimentary vdsm fix will not be able to
	register if installed on BIOS that does not support UUID, as it will
	not generate logical UUID before registration.

	If BIOS contains duplicate UUID, manual intervention should apply,
	creating /etc/vdsm/vdsm.id manually.

2012-09-30  Yeela Kaplan  <ykaplan@redhat.com>

	Refresh storage in getDevicesVisibility using forceIScsiRescan
	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=766281

2012-09-30  Federico Simoncelli  <fsimonce@redhat.com>

	domain: releaseHostId only when the domain is present
	In this patch:
	* do not release releaseHostId if the domain is missing
	* improve the checks for produce() and isIsoDomain()

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=854953

	setup: configure selinux for sanlock on nfs

2012-09-29  Peter V. Saveliev  <peet@redhat.com>

	BZ#855922, fix attribute error during migration
	VM migration rhev-3.0 -> rhev-3.1 raises AttributeError
	because of setting read-only attribute blockDev on Device
	object. So, here we skip read-only properties.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=855922

2012-09-29  Moti Asayag  <masayag@redhat.com>

	vdsm: Use virsh to check if libvirt is up
	The patch replaces libvirt socket file existence check with a check
	using virsh, so there is no need to depend on internal libvirt
	implementation details.

	Bug-Url: https://bugzilla.redhat.com/859483

2012-09-29  Federico Simoncelli  <fsimonce@redhat.com>

	build: improve the gitignore Makefile check

2012-09-28  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: use yum API
	PREVIOUS IMPLEMENTATION

	Use of yum command-line to automate package installation.

	Install package almost one by once, so valid status can be reported to
	master.

	PROBLEMS IN PREVIOUS IMPLEMENTATION

	 - As each package was installed separately, conflicts could not be
	   resolved.

	 - Dependency list should have been maintained, to match dependencies'
	   changes over time.

	 - Alternate packages, or any alternate dependency trees should have
	   been maintained separately.

	 - Each execution of yum recalculate the cache, mirrors and
	   dependencies, this took time.

	 - If another instance is running, yum waits for ever.

	NEW IMPLEMENTATION

	Use the yum python API, use single transaction, only top-level
	components, proper logging.

	This implementation resolves all the issue of previous implementation.

	Also removing the architecture specific package naming.

	PROBLEMS IN NEW IMPLEMENTATION

	As it turns out, the yum API is not exactly pure API, it needs a lot
	more work especially at log interface, as its lazy use of logs and
	direct print of messages to stdout/stderr is not something that is
	expected from an API.

	The new implementation applies workarounds to these issues, for now we
	are good.

	CLEANUP

	As the vdsm-bootstrap package is to be installed on older engines,
	legacy code could not have been removed. The usage of yum from
	deployUtils, and the installation functions from the vds_bootstrap.py
	could have been removed, ~340 lines of code.

2012-09-28  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Apply memoized to getos()
	getos() is called by _getKeyPackages() every time the capabilies
	are queried. For the case of RHEL system, it has to call
	os.path.exists() four times to get the OS name.  So it's worth to
	memory it by the decorator memoized. And it will not change while
	vdsm is running, so it's safe to be cached.

2012-09-27  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Enable balloon controller for MOM by default.
	Since vdsm can support memory balloon tunning now, we should enable
	the balloon controller for MOM by default.

	Use 'yum clean expire-cache' instead of 'yum clean all'
	It's observed that cleaning all yum caches could cause a ssh timeout
	during host installation. 'yum clean expire-cache' is much more light
	weight and 'yum clean all'. If the cache is still valid, nothing
	significant will be deleted.

	This idea is taken from Greg Padgett.

2012-09-27  Federico Simoncelli  <fsimonce@redhat.com>

	Support for the new polkit rules
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=829884

2012-09-27  Bala.FA  <barumuga@redhat.com>

	glusterHostsList verb returns local hostname as IP address or FQDN
	The verb glusterHostsList executes the 'gluster peer status' command
	to fetch list of servers of the gluster cluster.  However the output
	of this command doesn't include the server on which the command is
	being executed.  For completeness the verb appends current server
	detail to the list given by gluster

	When hostname of the current server is used in the detail, the problem
	with hostname is that what's saved in engine db in the host_name field
	is not necessarily the actual hostname of the host, but whatever user
	entered while adding the host, which could be ip address also.  So
	engine can't rely on the hostname, particularly on compare the list
	returned by the glusterHostsList verb with the list of hosts present
	in engine DB to identify if something has changed because of direct
	cli operations from the gluster cli.

	So this patch enables sending an ip address instead of hostname of the
	current server.  Engine db contains all ip addresses of the server,
	and hence ip address can be used for comparisons.

2012-09-27  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	schema: Fixup command return values
	There still one is not fixuped, so fix it.

2012-09-26  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	generate initramfs on demand in VM creation test
	Fedora is shipped with initramfs, so use it directly. Some other distros
	are shipped with initrd, so generate initramfs on demand.

2012-09-26  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Add vdsm-tool/load_needed_modules.py to .gitignore
	When we're adding a new file (*.py.in) using the macro of autobuild,
	we need put the auto generated file (*.py) to gitignore list. So add
	a task to the 'check-local' target. Both the idea and code are taken
	from Dan Kenigsberg's comments.

2012-09-26  Fernando Granha Jeronimo  <fgranha@linux.vnet.ibm.com>

	Fix vdsm-reg service name
	Due to a problem with the vdsm-reg service name (vdsmd-reg instead of vdsm-reg),
	the service is not enabled after rpm installation.

2012-09-26  Federico Simoncelli  <fsimonce@redhat.com>

	General json schema fixes
	In this patch:
	* add the 'class' typeKind
	* fix the info_return behaviour (now a string)
	* misc fixes in vdsmapi-schema.json

2012-09-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.init: verify if libvirt socket file exists
	Currently, VDSM init script checks if libvirt daemon is up with pgrep command.
	However, libvirt daemon shows up before the socket file be ready.

	This patch will add a new validation (check if the socket file exists) to be used
	with pgrep command.

	Bug-Url: https://bugzilla.redhat.com/859483

2012-09-26  Dan Kenigsberg  <danken@redhat.com>

	vdsmd: await for libvirt with systemd, too.
	Commit bdb9c443b5 added a call to await_libvirt_start_workaround if
	libvirt is restarted by upstart. The same reasoning applies to the case
	where libvirt is start by systemd.

	Bug-Url: https://bugzilla.redhat.com/859483

2012-09-25  Michal Skrivanek  <michal.skrivanek@redhat.com>

	converting some more RH strings to oVirt

2012-09-24  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix BZ#846323 fix.

2012-09-24  Changming Bai  <baichm@linux.vnet.ibm.com>

	make vdsm/storage/storage_exception.py PEP 8 clean

2012-09-24  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	fix dataProgress of migration
	so the dataRemaining is more reasonable to calculate dataProgress
	than dataProcessed.
	Also, we can see that libvirt also use dataRemaining to calculate
	dataProgress in print_job_progress function of virsh-domain.c.

2012-09-24  Juan Hernandez  <juan.hernandez@redhat.com>

	Validate downloaded SSH public key
	During registration the SSH public key of the engine is downloaded,
	but it is not verified in any way. In some situations we can be
	getting garbage from the server, for example when we connect to an
	HTTPS server using the HTTP protocol. That garbage can end up in the
	uthorized_keys file.  This patch changes deployUtils.py so that it
	verifies that what we get looks like a valid SSH public key before
	saving it to the file.

	Bug-Id: https://bugzilla.redhat.com/856167

	Validate downloaded CA certificate
	During installation the CA certificate of the engine is downloaded,
	but it is not verified in any way. In some situations we can be
	getting garbage from the engine, for example when we connect to an
	HTTPS server using the HTTP protocol. That garbage can corrupt a
	previously downloaded CA certificate. This patch changes
	deployUtils.py so that it verifies that what we get is a valid X.509
	certificate before saving it to the file.

	Bug-Id: https://bugzilla.redhat.com/856167

2012-09-24  Saggi Mizrahi  <smizrahi@redhat.com>

	Use the recommended alignment instead of using pagesize
	Page size is the usual recommended alignment but when it isn't using it
	can cause memory corruption.

2012-09-24  Juan Hernandez  <juan.hernandez@redhat.com>

	Add input parameter to _logExec
	This allows the use of _logExec when some text has to be provided in the
	standard input of the executed command.

2012-09-24  Saggi Mizrahi  <smizrahi@redhat.com>

	Add permutation feature to testing framework
	This allows creation of a single test case template that is mutated into
	several actual test cases. This makes testing methods with several
	options that don't change the output much easier.

	For an example check out tests/permutationTests.py.

2012-09-23  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix data passing to process when doing async execution
	There is a mistake in the current file where the stream data is being
	sent to when using `sync=False` is stdout instead of stdin. This makes
	the feature not work.

	Further more, I added flush so that the data is sent before the function
	returns because it's a bit more intuitive.

	Also, add a test to check that this feature works so in the future this
	kind of thing wouldn't occur.

2012-09-23  Doron Fediuck  <dfediuck@redhat.com>

	vdsm: Unifying engine and vdsm commit templates
	As agreed in ovirt's arch mailing-list[1], we'd like the engine's
	commit template and vdsm conventions to agree on BZ referencing.

	This change adds a sample commit message template with a 'Bug-Url:',
	which matches the mentioned agreement. The way to use this sample
	is with: 'git commit -s -F vdsm-commit-template.txt -e'. Usage of
	the template is optional, and meant for convenience only.

	[1] http://lists.ovirt.org/pipermail/arch/2012-September/000838.html

2012-09-23  Igor Lvovsky  <ilvovsky@redhat.com>

	Require a new initscripts-9.03.31-2.el6_3.1
	A new initscript supports VLAN tag on descriptively-named interfaces:
	https://bugzilla.redhat.com/show_bug.cgi?id=854852

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=859109

2012-09-23  Yeela Kaplan  <ykaplan@redhat.com>

	BZ#844180: Change scsi scan to asynchronous
	Defined a minimal time to wait after a scsi rescan in order to
	minimize races between dm being updated and vdsm looking for
	available devices

2012-09-21  Federico Simoncelli  <fsimonce@redhat.com>

	Remove superfluous macros in the specfile
	In this patch:
	* remove the redundant %attr macros for the vdsm hooks
	* set the %defattr ownership to root:root

2012-09-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-upgrade: stop vdsm when complete upgrade
	We should stop vdsm daemon to avoid any additional
	communication with Engine before the upgrade/reboot happens.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=854766

2012-09-20  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec.in: use locale LC_ALL=C
	During VDSM instalation, we verify if SELinux booleans are
	enabled with return of semanage command, output like: "on" or "off".
	These are English words and if the system contains a different
	locale, example pt_BR the validation will fail.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=857556

	This patch will change the locale for English (C) while
	installation VDSM.

2012-09-20  Antoni S. Puimedon  <asegurap@redhat.com>

	Do not propagate top layer interfaces bootproto to the underlying devices.
	When adding an interface to a composed network interface,
	bootproto was incorrectly applied also to the underlying
	network interfaces. This patch corrects it by unsetting the
	slave interfaces bootproto.

	Bug-Id: https://bugzilla.redhat.com/857112

2012-09-19  Yaniv Bronhaim  <ybronhei@redhat.com>

	stressCheckTest fails because it passes the rlimit
	We tried to use 75 precent of rlimit, but most of the time the os is
	already uses more then 25 precent and the test creates more threads than
	the os can.
	This patch changes it to 50% of rlimit.

2012-09-19  Federico Simoncelli  <fsimonce@redhat.com>

	Fix the prepareForShutdown XML-RPC call

2012-09-18  Dan Kenigsberg  <danken@redhat.com>

	caps.osversion: use @memoized instead of reimplementing it

2012-09-18  Juan Hernandez  <juan.hernandez@redhat.com>

	BZ#856167 - Parse correctly the management_server parameter
	When doing automatic installations we parse the management_server
	parameter to find the engine address and port number, but we don't
	parse it correctly if the port number is missing, in this case we end
	up using the address as both address and port number. This patch fixes
	that so when the port number is missing the default 443 will be used.

2012-09-18  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	faqemu: remove the fake /dev/kvm after vdsmd stops
	/usr/libexec/vdsm/vdsm-faqemu, the fake emulator, will create a fake
	/dev/kvm before it starts a real emulator. This fake device is for
	cheating libvirtd. This fake /dev/kvm is not deleted automatically after
	vdsmd stops. If we want to switch to real KVM support then, the fake
	device will prevent the system creating the real device, thus makes the
	user very confused about the error. This patch detects and deletes the
	fake /dev/kvm after vdsmd stops whenever faqemu is enabled or not in the
	vdsmd.conf.

2012-09-18  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	pep8 clean for vdsm/vdsm

2012-09-18  Dan Kenigsberg  <danken@redhat.com>

	pep8ize vdsm/vdsm entry point

2012-09-17  Antoni S. Puimedon  <asegurap@redhat.com>

	Fix crash when libvirt refers to non-existing non-bridged interfaces.
	This fix catches the crash resulting of checking information in sysfs of a
	non-existing network reported by libvirt.

	Bug-Id: https://bugzilla.redhat.com/856163

2012-09-17  Laszlo Hornyak  <lhornyak@redhat.com>

	removing cpuIdle
	cpuIdle is not used by the engine, and it is wrong anyway

2012-09-15  Amador Pahim  <apahim@redhat.com>

	vdsm.spec.in: Requires: python-libguestfs
	Solving vdsm_hooks/fileinject/before_vm_start.py
	"import guestfs" dependency.

2012-09-14  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Make netinfo.py PEP8 clean

2012-09-14  Douglas Schilling Landgraf  <dougsland@redhat.com>

	setNetworking(): return bridge status
	if the bridge for some reason is not created we should warn users
	in the oVirt Engine. Otherwise, it will continue and complete the bootstrap,
	reboot the Host and oVirt Engine willreport the Node as Non Responsive
	without any additional info.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=840300

2012-09-13  Pradipta Kr. Banerjee  <bpradip@in.ibm.com>

	Modify getOSVersion to use python 'platform' module
	Modify getOSVersion function to use the python 'platform'
	module instead of custom file parsing logic

2012-09-13  Federico Simoncelli  <fsimonce@redhat.com>

	Add the autotools support in the spec file
	This change makes easier for rpm-based distributions to backport patches
	that touch the autotools files.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=847535

	Fix the rpm package discovery process in vdsm caps
	If the rpm package isn't found it shouldn't be added to the packages
	dictionary.

2012-09-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#846323 - Adding deprecated to removeVG().
	removeVG() interface will be removed.
	Use formatStorageDomain() instead.

	BZ#846323 - Search PV's belonging to the VG in removeVG.
	Use only one lvm operation when removing a VG.
	Using more than one is racy.
	In addition avoid the use of getAllPvs() which will be removed
	in the future.
	Only one getAllPvs() call remains!

2012-09-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	engine.py: fail if Password doesn't match
	Currently, if users in the Node TUI add the password to include the
	node through Engine and passwords doesn't match, no failure
	message will show and it will continue.

	This patch will show to users a failure message if the passwords
	doesn't match.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=854457

	Test:

	  * Install Node
	  * Select oVirt Engine Tab
	  * Add passwords that doesn't match and click 'Apply'

	vdsm-reg-setup: get hostname with gethostname()
	Previously we relied upon the fallback behavior of socket.getfqdn()[1] which returned
	the hostname only in the case that it could not find an entry or alias with a dot.
	In ovirt-node if the user sets a new hostname, this adds an alias to /etc/hosts
	that maps to localhost.local domain and leads to engine not listing the
	user-requested hostname. The fix is to not use getfqdn(), but gethostname().

	Test
	=====
	* Install oVirt Node 2.5.1-1.0
	* Set Network (default it will be localhost.localdomain)
	* Select Network again, and change Hostname (supernode.linux.com)
	* Register the Node into Engine
	- At this moment, Engine will show localhost.localdomain instead of supernode.linux.com

	The manual workaround is remove the new hostname from /etc/hosts in 127.0.0.1 entry.

	[1] http://docs.python.org/dev/library/socket.html

2012-09-12  Ryan Harper  <ryanh@us.ibm.com>

	Chown /var/log/vdsm during startup to prevent vdsmd crash
	Bug-Id: https://bugzilla.redhat.com/729348

	vdsmd startup routine will handle re-creating /var/log/vdsm
	but doesn't chown it with vdsm.kvm which prevents vdsmd from
	operating.

	Fix this by chowning the parent dir during startup.

2012-09-12  Shu Ming  <shuming@linux.vnet.ibm.com>

	Make connections path depend on path definitions
	The connections path should be relative to the path definition
	in constants.py

2012-09-12  Ryan Harper  <ryanh@us.ibm.com>

	Replace 'ovirt Engine' string with @ENGINENAME@
	Commit fd1c00c6fdbd8207a631001eab106e6f78c0cca2 introduced some new
	messages but didn't use the @ENGINENAME@ eyecatcher.

2012-09-12  Federico Simoncelli  <fsimonce@redhat.com>

	Fix the check to convert block domains V0 to tag metadata
	In this patch:
	* fix the check to decide if we should upgrade to tag metadata
	* make __convertDomainMetadataToTags safer
	* add logging messages to __convertDomainMetadataToTags

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=853910

2012-09-11  Federico Simoncelli  <fsimonce@redhat.com>

	Bump sanlock required version for EL6
	The new sanlock version (2.3-4) resolves: rhbz#849181 rhbz#849183
	rhbz#849184 rhbz#849186.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=854748

2012-09-11  jarod.w  <work.iec23801@gmail.com>

	vdsm: replace rpm commandline with rpm-python api in caps.py
	In rpm-python library, it provides the way to get rpm information by
	rpm name and specified files. I think it's better and more effective
	to use the library than our Popen.

2012-09-11  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	add simple VM creation functional test
	Create a VM using existing host kernel and initramfs, then destroy it.

	Patch set 6:
	rebase the test on Dan's http://gerrit.ovirt.org/#/c/5788/ and add
	some utility functions

	Patch set 9:
	check if user is root
	check if kvm is enabled

2012-09-11  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ829710 Get VMList with oop if necessary

2012-09-11  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Trigger reboot automatically after upgrade
	Depends on related change http://gerrit.ovirt.org/7777
	This patch will trigger an reboot after the upgrade steps are complete

	Original Author: Mike Burns <mburns@redhat.com>

2012-09-10  Bala.FA  <barumuga@redhat.com>

	glusterHostsList verb uses gluster cli xml output.
	This eliminates standard output text parsing.

2012-09-10  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	remove the broken support for delivering video to local display
	In vdsClient help message and sample VM configurations, it is said when
	display is set to local, the VM video will go to local host. In fact
	vdsm do not implement this. If the user use this feature, vdsm will
	raise an exception in function getConfVideo() in vdsm/vm.py.

	To implement this feature, we have to
	1. deal with 'local' properly in getConfVideo() in vdsm/vm.py, add a
	suitable video device when 'local' is set.
	2. generate graphic discription XML node properly in vdsm libvirtvm.py,
	like <graphics type="sdl" display=":0" xauth="blah">. Now we always
	generate some attributes not related to SDL, and libvirt will complain.
	We have to suppress generating those attributes when using local
	display.
	3. If we allocate a host display for the user qemu, then qemu can use sdl
	to show the display in its own host display.
	4. If we do not want to allocate a display for qemu, we have to use an
	existing one, then we have to deal with the $DISPLAY(:0 ?) and
	$XAUTHORITY. These two attributes can be set in the libvirt XML in the
	graphics section
	5. We often setup hosts without X support, it is not possible to
	deliver the guest video to host display. In this situation, detect the
	host X support and raises an exception properly to the user to describe
	what's wrong.

	If we are not going to do the work as written above, we'd better remove
	the broken support for local display.

2012-09-09  Antoni S. Puimedon  <asegurap@redhat.com>

	Add network logs for VDSM network commands and file operations.
	The aim is expanding the logging done in configNetwork. In order to do so, it
	uses vdsm.storage.misc.execCmd.

	Bug-Id: https://bugzilla.redhat.com/851839

2012-09-09  Dan Kenigsberg  <danken@redhat.com>

	vdsm-tool/load_needed_modules: fix creation of legacy bonds
	Fix commit 816238891be which has failed to open MASTER_FILE for writing
	before wrting to it.

2012-09-09  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: perform reboot asynchronously
	The use of /sbin/reboot may cause reboot to be performed at the middle
	of script execution.

	Reboot should be delayed in background so that script will have a fair
	chance to terminate properly.

2012-09-09  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#815359 - Improve log on qemu-convert error.

2012-09-09  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Make vdsm/configNetwork.py PEP8 clean

2012-09-09  Igor Lvovsky  <ilvovsky@redhat.com>

	Set right MTU when removing bridgeless networks
	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=854919

	Continue support nicless bridge.
	In general we can define bridge without connect it to any interface (nic/bond).
	This behaviour was broken mistakenly in previous commits, fixed now.

	Change getVlansForNic to more general getVlansForIface

	Update MTU when removing one of networks with custom MTU from NIC/bond.
	We need to restart the interface to set proper MTU on it.
	The whole point of this patch to get 'iface' defined for both VLANed and
	non-VLANed networks. In such case we will be able to restart the interface
	for both above cases

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=853968

2012-09-08  Bala.FA  <barumuga@redhat.com>

	Added _execGlusterXml()
	This function helps to run gluster command which outputs in xml.

2012-09-06  Adam Litke  <agl@us.ibm.com>

	build: Use correct equality operator for /bin/test
	According to the man page for 'test', the correct token to use for string
	equality is '=', not '=='.  '==' works for the bash builtin version but we
	should not depend on it (especially since the pkg-version shebang calls for
	/bin/sh).  This fixes the build on my Ubuntu system.

2012-09-06  Dan Kenigsberg  <danken@redhat.com>

	make pep8 happy with config.py.in

	vdsmd: set nwfilter on ovirt-node
	ovirt-node is shipped with .pyc only. Do not try running a missing
	executable.

2012-09-06  Adam Litke  <agl@us.ibm.com>

	schema: Fixup command return values
	Commands return a single unnamed typed item.  Fix the schema to reflect this.
	Some vdsm commands return multiple keys in the result dictionary and those keys
	need to be combined into a new type representing the complete return value.

	schema: Add StorageDomainStatsMap map type
	API.getStorageRepoStats refers to an undefined mapping type.  Add it.

	schema: Add class constructors to the schema
	All classes will accept parameters when they are instantiated.  Record the
	parameters in the schema.

	schema: Rename Global class to Host
	The Host class is the root of the API.  It will have functions to connect and
	disconnect from the server.  It will also have all of the commands that used to
	be defined as 'Global' since it doesn't make sense to sub-class them.

2012-09-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec: Adding hostname as Require
	vdsm-gencerts.sh requires hostname

2012-09-06  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Move load_needed_modules to vdsm-tool
	Move load_needed_modules to vdsm-tool from vdsmd.init

2012-09-05  Dan Kenigsberg  <danken@redhat.com>

	Drop stale import
	Issue introduced by my former patch. Life is harder without Robert's
	per-patch autobuilding... Sorry for the noise.

	fileSD.getDomUuidFromMetafilePath: return correct sdUUID
	Since commit 7ce1a3d53, getDomUuidFromMetafilePath() returns a constant
	string "dom_md", regardless of the storage domain metafile it receives.

	This has serious effects, since it leads to all NFS domains using a
	single process pool.

	It would probably be better to solve the problem by avoiding
	getDomUuidFromMetafilePath altogether. The callers high up the stack
	know the sdUUID they are working on. This solution is left as an
	excersice to the readers.

	A simpler, localized, solution is to take the correct element out of
	metafile path. In this patch I suggest to do it without worrying about
	trailing slashes in the [irs]repository configurable.

	Thanks to Shu Ming for reporting this bug and suggesting another fix for
	it.

2012-09-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	Correct pep8 error- too long line

2012-09-05  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	Remove imageID in diskstats collect
	imageID is only available for vdsm created images, direct lun and iso
	stats can't be collected because of lack of this imageID.
	so remove it when collecting.

2012-09-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	changed upstart_libvirt function name

2012-09-05  Zhu Bo  <bozhu@linux.vnet.ibm.com>

	Correct vdsClient's help for the verb getVmsInfo
	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=727791

	replace the help with the following:
	getVmsInfo <spUUID> [<sdUUID> [vmList](vmId1,vmId2,...)]

2012-09-04  Federico Simoncelli  <fsimonce@redhat.com>

	Update the lvm rules permissions with sanlock
	The MODE keyword in the lvm rules wasn't used by udev. However a newer
	version shipped with Fedora 17 is considering its value.
	The MODE and the GROUP values should be updated to allow sanlock to
	access the ids and the leases LVs.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=850440

2012-09-04  Shu Ming  <shuming@linux.vnet.ibm.com>

	Make svdsm files depend on path definitions
	The files created by super vdsm process should
	be put into a path relative to the path definition
	in constants.py

2012-09-04  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	Remove vdsm-restore-net-config from ignore list
	As commit 49999d16 remove vdsm-restore-net-config.in and add the python file,
	remove from ignore list to track it.

2012-09-04  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: eliminate extra new line at ~/.ssh/authorized_keys
	In the past engine created ssh public keys without the terminating
	newline. Now it was fixed.

	Make sure result file contains newline for all keys.

2012-09-03  Eduardo Warszawski  <ewarszaw@redhat.com>

	Produce the domain in the domain monitor thread
	This should reduce the number of vgs in connectStoragePool thread.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=846376

2012-09-03  Federico Simoncelli  <fsimonce@redhat.com>

	Asynchronous LVM bootstrap on vdsm start
	The lvm bootstrap might take a long time if one or more block device is
	unreachable. Moving the bootstrap in the storageRefresh thread speeds up
	the vdsm initialization and its responsiveness.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=752470

2012-09-03  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	tests: Honour PYTHONPATH if set on the host
	run_tests_local.sh doesn't honour PYTHONPATH if it was set.
	This causes issues with the tests (sometimes) if user was using
	a custom path for say libvirt ( running from a git src, rather
	than installed rpm path). This path add $PYTHONPATH to the
	script to fix the issue.

2012-09-03  Moti Asayag  <masayag@redhat.com>

	Define network filter on libvirt
	The patch defines custom network filter on libvirt in order to control
	the VM traffic. The custom filter is being set when VDSM service is
	being started.

2012-09-03  Federico Simoncelli  <fsimonce@redhat.com>

	Upgrade a data domain on attachSD when required
	It is now possible to attach a storage domain with a version that is
	older than the pool master domain. The upgrade will be started as soon
	as the domain will be activated.

	Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=851518
	Change-ID: I65dfd6dd339569fbaf276f3942a001c174423b1a

2012-09-03  lvroyce  <lvroyce@linux.vnet.ibm.com>

	using blockStatsFlags to collect disk latency instead of qemu cmd
	in libvirtvm.py using blockStatsFlags to collect disk latency
	instead of qemu cmd to avoid keyError and parse results our own

2012-09-03  Dan Kenigsberg  <danken@redhat.com>

	tests rpm: make non-local tests run
	We should ship vdsm-tests.rpm with all its required files.

	spec: declare mkimageTests' requirement of genisoimage

2012-09-02  Dan Kenigsberg  <danken@redhat.com>

	libvirtvm: (un)setPortMirroring when hot(un)plugging
	Bug-Id: https://bugzilla.redhat.com/848101

2012-09-02  Igor Lvovsky  <ilvovsky@redhat.com>

	Remove BRIDGE line from nic/bond cofig file when removing bridge
	Bug-Id: https://bugzilla.redhat.com/845193

2012-09-02  Dan Kenigsberg  <danken@redhat.com>

	tc: _delTarget: fix an evil type error
	In a former commit 9adf78d9 I thought that returning _delTarget()
	returning a set() would be a good idea. It was swiftly converted to
	list() in commit 61f1ff45, forgetting this line behind.

2012-09-02  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: sync utils.getHostUUID() with deployUtil.getHostID()
	Apparently, the host id is gotten in three different places:
	1. Engine VdsInstaller::ConfigValues.BootstrapNodeIDCommand
	2. deployUtil.getHostID()
	3. utils.getHostUUID()

	Change-Id Iae0713f95 did not handle (3).

2012-09-02  Dan Kenigsberg  <danken@redhat.com>

	tc: avoid adding non-existing devices to filter
	When a mirroring target dies, its tap device are removed. On `tc filter
	show`, the tap device name is replaced with a string like `if17`, which
	is not a name of an existing device.

	This patch is somewhat racy, as another qemu may die just before the new
	filter is set.

	tc: unsetPortMirroring: deleting a target twice is fine
	We should not explode if a mirroring target is already gone when
	unsetPortMirroring is called.

2012-08-31  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove redundant indirection for getting vm status

2012-08-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	vdsmd always restarts libvirtd upon start-up
	Bug-Id: https://bugzilla.redhat.com/734847

	When starting vdsm we need to verify that libvirt is running by
	upstart and not by SysV. When processing start() we stop libvirtd
	service only if upstart exists and not configured.

2012-08-31  Dan Kenigsberg  <danken@redhat.com>

	momTest: improve test's error reports
	The test is skipped if MOM is not installed on host.
	Also, the returned value of the setMOMPolicy call is checked.

	MOMTest.testKSM still fails on my host, but at least I can tell when in
	the test process it has happened.

	Add a basic xmlrpc functional test

2012-08-31  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	fix TypeError of _eqSplit in vdsClient.py
	if the arg is string 'xyz', the _eqSplit will into the 'else'
	branch. and then k = ['xyz']. but list type can not be a hash key.
	TypeError will come up.

	throw a Exception to report this case, it is more clear what has
	happended.

2012-08-30  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: survive missing ntpq
	Minimal fedora installation does not have ntpq.

	bootstrap: node id: consider bonding MAC addresses as well
	The node id is constructed using the lowest MAC address.

	If bonding is applied after initial node id was taken, it may shade the
	minimal address.

	This change adds to the MAC addresses of bonding interfaces to the MAC
	address addresses to consider.

	Sync with engine command used for same purpose.

2012-08-30  Federico Simoncelli  <fsimonce@redhat.com>

	Check if libvirtd.upstart is present before copying
	If the (libvirt) packaged upstart script is present in the rpm list
	of files but is absent from the filesystem the initscript was failing
	because the cp command couldn't copy it. This is mostly interesting
	in stripped down installations as the ovirt-node.

	RHBZ: 849984

2012-08-29  Dan Kenigsberg  <danken@redhat.com>

	configNet: grant proper selinux context to ifcfg-*
	Currently, Vdsm-created ifcfg files receive the context
	unconfined_u:object_r:net_conf_t:s0 instead of the one mandated by
	selinux policy.

	 # restorecon -vF /etc/sysconfig/network-scripts/ifcfg-eth3.160
	 restorecon reset /etc/sysconfig/network-scripts/ifcfg-eth3.160 context unconfined_u:object_r:net_conf_t:s0->system_u:object_r:net_conf_t:s0

	This may lead to unpleasant EPERMs down the road.

	Bug-Id: https://bugzilla.redhat.com/838347

	libvirtvm: allow acpi again
	Commit c3e2272f has mistakenly changed

	        <features>
	                <acpi/>
	        </features>

	into

	        <features>
	                acpi
	        </features>

	which caused VMs to start up silently with no acpi support. This patch
	reverts the offending part of the above commit.

	Bug initially reported by Itzik Brown.

2012-08-29  Federico Simoncelli  <fsimonce@redhat.com>

	Bump libvirt required version for EL6
	The version bump is required to avoid the libvirt error "Shareable
	leases are not supported" when starting a VM (rhbz838819).

2012-08-29  Dan Kenigsberg  <danken@redhat.com>

	tc: Give a clearer name to qdisc_get_devid
	While at it, extend the function to return all associated qdiscs per
	device.

	tcTests: test port-mirroring while another device is watching

	tc: add to PEP8_WHITELIST

	tc: refine unsetPortMirroring
	unsetPortMirroring should not remove all reference of the mirrored
	bridge device. Instead, remove only the relevant mirred actions on each
	call to unsetPortMirroring. Promiscuous mode should be unset only when
	the last action is removed.

2012-08-28  Moti Asayag  <masayag@redhat.com>

	Libvirt service engagement workaround
	The patch intended to bypass a false report of libvirt service as
	started (when started with initctl). Instead of relying on initctl,
	vdsm awaits few seconds till the service is reported with its allocated
	process id (by 'pgrep').

2012-08-28  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	Make vdsm/storage/fileSD.py pep8 clean

2012-08-28  Gal Hammer  <ghammer@redhat.com>

	Change waitForMigrationDestinationPrepare function waiting.
	The change is to avoid timeouts during migration of several
	VMs at once. The new implementation doesn't start the timer
	until the VM starts it creation (e.g. acquired the
	_ongoingCreations lock).

2012-08-27  Oved Ourfali  <oourfali@redhat.com>

	improve message when trying to attach import domain with wrong permissions
	When a storage domain is attached, and there is something wrong with the
	directory permissions, then the operation fails with "Cannot obtain
	lock" error. This patch improves the error in this case, by performing
	validations when doing the server connection. If the permission
	validation fails, we disconnect.

	The user will get an event specifying the permissions error.
	And, he will get a UI error saying:
	"There is no storage domain under the specified path. Please check
	path."

	This fix also applies to posix and local storage.

	Bug-Id: BZ#842146

2012-08-27  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	add server_once for CrabRPCServer
	server_once is convenient for integrating CrabRPCServer into
	the event loop of other program.

	example: I want to use CrabRPC in consoleServer, but console have
	loop in its code. It can join read side of pipe into select(). After
	select() return, we can call server_once() for processing rpc
	message.

2012-08-27  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#846312 - Keep max MTU when adding non-VLANed bridgeless network

2012-08-26  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#846312 - Keep MTU on ehtX after bond editing, when ethX part of this bond

2012-08-26  Dan Kenigsberg  <danken@redhat.com>

	configNet: introduce ConfigWriter.restorePersistentBackup()
	restorePersistentBackup is to be called before vdsm starts, via
	vdsm-restore-net-config, to load persistent backup into memory, make
	them effective again, and remove the backup.

	This patch makes a single function out of this in order to fix the
	currently-broken testPersistentBackup test case.

2012-08-24  Adam Litke  <agl@us.ibm.com>

	API: Provide a working getAllTasks API
	Changes since last iteration:
	- Dropped 'tags' filtering from the API.  Users can do client-side filtering as
	  they see fit.

	The current APIs for retrieving all task information do not actually return all
	task information.  I would like to introduce a new API that corrects this and
	other issues with the current API while preserving backwards compatibility with
	ovirt-engine for as long as is necessary.

	The current APIs:

	getAllTasksInfo(spUUID=None, options = None):
	 - Returns a dictionary that maps a task UUID to a task verb.
	 - Despite having 'all' in the name, this API only returns tasks that have an
	   'spm' tag.
	 - This call returns only one piece of information for each task.
	 - The spUUID parameter is deprecated and ignored.

	getAllTasksStatuses(spUUID=None, options = None):
	 - Returns a dictionary of task status information.
	 - Despite having 'all' in the name, this API only returns tasks that have an
	   'spm' tag.
	 - The spUUID parameter is deprecated and ignored.

	I propose the following new API:

	getAllTasks(options=None):
	 - Returns a dictionary of task information.  The info from both of the above
	   functions would be merged into a single result set.
	 - The spUUID parameter is dropped.  options is for future extension and is
	   currently not used.

	This new API includes all functionality that is available in the old calls.  In
	the future, ovirt-engine could switch to this API and preserve the current
	semantics by ignoring tasks where task['tag'] != 'spm'.  Meanwhile, API users
	that really want all tasks (gluster and the REST API) can get what they need.

2012-08-24  Federico Simoncelli  <fsimonce@redhat.com>

	Ship the version file with the tarballs
	Shipping the VERSION file allows running the autoreconf tool also from a
	tarball package (no need of the entire git repository).

	In this patch:
	* generate and ship the VERSION file
	* move, unify (and ship) version.sh and release.sh in pkg-version
	* use the VERSION file when the git repository is not available
	  (eg: tarball)

2012-08-24  Mark Wu  <wudxw@linux.vnet.ibm.com>

	make vdsm/libvirtvm.py PEP 8 clean

2012-08-23  Saggi Mizrahi  <smizrahi@redhat.com>

	Sort the pep8 whitelist list

2012-08-23  Dan Kenigsberg  <danken@redhat.com>

	tc: rename qdisc_replace_prio()
	This funciton replaces a PRIO qdisc. Let us call it accordingly

	tc: silently ignore ingress qdisc re-creation
	We should allow starting up two VMs monitoring a single bridge.

2012-08-23  Antoni S. Puimedon  <asegurap@redhat.com>

	tc: Fix make rpm for filter tests.

2012-08-23  Dan Kenigsberg  <danken@redhat.com>

	tc: make TCException more accessible programmatically

	tc: list some information about filters
	`tc filter show dev <dev> parent <parent>` lists all information about
	currently-defined tc filters for <dev> and <parent>.

	This patch extracts very little information about each filter that we
	recognize.

2012-08-23  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-upgrade: use python scripts from ovirtnode
	Replace /usr/libexec/ovirt-config-boot call from deployUtil._logExec
	to the newer python scripts from ovirtnode.

	Tested:

	* Installed ovirt-node 2.5.0-2.0 (upgrading to: 2.5.1-1.0)
	* mkdir /data/updates
	* Copied 2.5 image to /data/updates/ovirt-node-image.iso
	* mount -o loop /data/updates/ovirt-node-image.iso /live
	* Update in /etc/vdsm-reg/vdsm-reg.conf upgrade_mount_point=/live
	* service vdsm-reg restart
	* /usr/share/vdsm-reg/vdsm-upgrade
	* reboot

2012-08-23  Federico Simoncelli  <fsimonce@redhat.com>

	Use quiesce only if qgaEnable is enabled
	Do not attempt to use the quiesce live snapshot flag if the guest agent
	channel is not present.

2012-08-23  Igor Lvovsky  <ilvovsky@redhat.com>

	configNetwork: use MTU as int in setNewMtu

	Restore previous MTU on bond when VLAN with bigger MTU removed

	BZ#846004 - IP on nic/bond should be preserved when VLAN added

2012-08-23  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#833084 Set StoragePool.id to SPM_ID_FREE by default
	Setting the storage pool id to SPM_ID_FREE (-1) would prevent mistakes
	that could lead None to appear in the metadata.
	In this patch:
	* replace the storage pool id value None with SPM_ID_FREE
	* replace the storage pool lver value None with LVER_INVALID
	* validate the hostId in reconstructMaster

2012-08-22  Mark Wu  <wudxw@linux.vnet.ibm.com>

	test: Add tests for _validateInterNetworkCompatibility()

2012-08-22  Moti Asayag  <masayag@redhat.com>

	BZ#811807 Enable network filtering
	The VM network interface might receive a rule/filter to control the
	VM traffic by using libvirt network filtering.

	A vnic might get a single filter. In order to provide a filter which
	isn't delivered by libvirt, a custom filter should be defined. Once the
	filter is defined, its name could be used by the vnic to control its
	traffic.

2012-08-22  Dan Kenigsberg  <danken@redhat.com>

	netConfig: translate to "new" option names from cmdline, too
	At some point in prehistoric past a former Vdsm developer decided to change the names of
	various networking options. IPADDR had become ipaddr; BONDING_OPTS had
	become bondingOptions; etc. We continued to support older-style names -
	which are used up to this very day by ovirt-engine. Translation is done
	by API.Global._translateOptionsToNew for each network API call.

	However, we forgot to perform this translation when the network
	configuration functions are called via the /usr/share/vdsm/addNetwork
	script during bootstrap/registration.

	This lacuna leads to IPADDR being written to configuration file
	uncontrolably. This patch fixes the issue in the simplest quickest form
	I could think of.

	Bug-Id: BZ#847733 failure to create rhevm network over pre-configured VLAN

2012-08-21  Alon Bar-Lev  <alonbl@redhat.com>

	BZ#849542 bootstrap: set system time as soon as possible
	CURRENT BEHAVIOR

	Set system time after installation.

	NEW BEHAVIOR

	Set system time at first stage. This makes the time difference between
	engine and host set to minimum.

2012-08-21  shu ming  <shuming@linux.vnet.ibm.com>

	Use setattr instead of __dict__
	It is bad to access the __dict__ directly

2012-08-21  Ryan Harper  <ryanh@us.ibm.com>

	Fix vdsm-faqemu VM launch failure on hosts with newer libvirt
	Since January 2012, libvirt now checks[1] for the presence of /dev/kvm before
	starting a VM to generate better error messages when a VM doesn't start.
	This breaks faqemu running in a VM (non-nested) or a host which doesn't have KVM
	modules loaded.  Work around this by touching the device node.

	v1->v2
	    - replace exec of touch with open+write+close

	1. libvirt commit hash 32f63e912d3bef42a7fa70a0f2d5b04b98afe936

2012-08-21  Yaniv Bronhaim  <ybronhei@redhat.com>

	BZ#842115 - Generating uuid for libvirt configuration
	During migration we found that if both hosts as the same uuid
	libvirt fails the migration. Sometimes hosts are shipped with
	non-unique uuid burned into their bios.
	This fix generate uniqe uuid for libvirt only during vdsm reconfiguration.
	This uuid is saved in libvirtd.conf file and is used after
	libvirt service is restarted.

2012-08-21  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove 'skipLibvirt' from NetworkOptions
	The option 'skipLibvirt' was removed in commit ccb07ae. So it should
	be removed from schema too.

2012-08-20  Moti Asayag  <masayag@redhat.com>

	Add eclipse and PyDev project files to .gitignore
	PyDev as eclipse plugin is commonly used for developing python under
	eclipse IDE. It produces several files that could be ignored:
	.project - produced by eclipse to describe the project
	.pydevproject - produced vy PyDev plugin.

2012-08-20  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#848299 - Fix delete VLANed network with custom MTU

2012-08-19  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix a race existing in the singleton interface of clientIF
	There's a race in getInstance() between clientIF initialization and MOM thread.
	If for some reason the initialization of clientIF is slowed down and not finished
	before MOM calls vdsm API, an exception will happen in MOM thread due to that
	the parameter 'log' is missing. The fix is just moving the parameter check into
	the protection of the singleton lock. Then MOM thread will be blocked if it tries
	to access vdsm API when the initialization of clientIF is ongoing.

2012-08-19  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: return proper exit code from bootstrap scripts
	This is quick and dirty solution to return valid exit code from
	bootstrap scripts, until now exit code of vds_bootstrap* was wrong,
	however the vds_bootstrap.py did not check for exit code at all, and...
	engine did not as well.

	Now engine checks return code so proper code is requried.

	bootstrap: send complete bootstrap from engine
	CURRENT BEHAVIOR

	vds_installer.py is part of ovirt-engine, upon bootstrap, the script is
	sent to the node using ssh.

	Then vds_installer.py pulls vds-bootstrap* files using HTTP from
	engine.

	The vds_installer.py and vds_bootstrap pulls ssh public key from engine
	using HTTP.

	NEW BEHAVIOR

	vds_installer.py was moved into the vdsm-bootstrap and renamed to setup.

	vdsm-bootstrap repository was updated to create directory per bootstrap
	interface with 'setup' script.

	ovirt-engine copies public key to node in similar way of firewall rules.

	At bootstrap time, engine create tar archive from the bootstrap
	directory, cache it and pipe the archive into node in order to extract
	it and run the setup script.

	No HTTP communication is needed.

	No conflict with existing files.

	BACKWARD COMPATIBILITY

	Leave vds_bootstrap.py, vds_bootstrap_complete.py, deployUtil.py to be
	used by older engines. This should be removed in future.

	SCRIPTS MODIFICATIONS

	Set umask 0077 so only running user can access files.

	bootstrap: remove temporary files even if some missing
	Current code simply skip the whole process if one temporary file is
	missing.

	We need to remove as much temporary files as possible, so ignore single
	file exception.

	BZ#849315 vdsm-reg: return proper exit code from upgrade script
	main returns boolean, while exit code of "True" is actually program
	status of failure.

2012-08-19  Antoni S. Puimedon  <asegurap@redhat.com>

	BZ#840594 Fix netinfo when libvirt bridge does not exist.
	In the case where a bridge that is configured in libvirt is manually removed or
	renamed, netinfo throws an exception when trying to discover which ports are
	assigned to the bridge.

	This patch catches the OSError exception of trying to list the ports of a non-
	existing bridge interface, effectively filtering the non-existing interface
	from the network capabilities.

	Also adds a unittest for getting network information of non-existing bridges.

2012-08-19  Saggi Mizrahi  <smizrahi@redhat.com>

	Skip broken tests feature
	We can't have broken tests upstream, it confuses people who write
	patches and makes them think they broke the functionality.

	Add this to tests you know are broken to help others

2012-08-19  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#832765 - Rewrite vdsm-restore-net-config as python module

2012-08-18  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: introduce bootstrap interface version
	Bootstrap interface version is a method of supporting multiple engine
	versions within bootstrap code.

	The vdsm-bootstrap code is separate package which can be upgraded
	without engine upgrade. Engine is also upgrade protected, so force
	update upon vdsm-bootstrap upgrade is difficult.

	As the vdsm-bootstrap is separate package from engine, but depends
	heavily on engine interaction, and since it may be updated, it should
	support backward compatibility with different versions of engines.

	If changes are relatively small, a bootstrap interface version may come
	in handy so no script duplication is required.

2012-08-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#840294: Add sanlock packages to REQ_PACK list
	Adding sanlock and sanlock-python to vds_bootstrap required packages list.
	In case these packages are not available to install do not
	show long error message in Engine.

2012-08-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Add genisoimage to rpm dependencies
	vdsm/mkimage.py is using mkisofs, this command is provided by
	genisoimage.

2012-08-16  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: always use /tmp for output files
	Engine sends and collects files from /tmp. /tmp is *ALWAYS* used from
	node or from none-node installations.

	While bootstrap code uses the following directory:
	 tempfile.gettempdir()

	This is invalid as there is no sync between engine and bootstrap code,
	because if TMPDIR environment variable is defined at computer where
	bootstrap is running on, files will go to whatever value in TMPDIR
	and not /tmp, hence failing the bootstrap process.

	This is a BUG in current code, it is not a feature.

	This change remove this in favor of plain /tmp usage for files, it
	does not imply that the bootstrap scripts are executed at /tmp, only
	that the input and output files are stored where engine collects them.

	This change is NOT a regression as it work in more scenarios than
	current implementation using current engine implementation.

	/tmp is mandatory in FHS[1] and in POSIX,p2 systems, all Linux
	distributions comply with this.

	 ---
	 The /tmp directory must be made available for programs that require
	 temporary files.
	 Programs must not assume that any files or directories in /tmp are

	 preserved between invocations of the
	 program.
	 ---

	FUTURE

	If the need manifests, engine can ask destination where to place bootstrap
	script wither by using environment (TMPDIR, OVIRT_TMPDIR), or by looking
	at /etc/ file. Bootstrap script may produce certificate request or any
	other output at stdout to allow collection via the ssh session, it also
	may get input via stdin during execution, so no file transfer is required
	during bootstrap except of bootstrap scripts nor several iterations.

	[1] http://www.pathname.com/fhs/

2012-08-16  Dan Kenigsberg  <danken@redhat.com>

	Report host hyperthreads as real cores
	(Only if the customer really wants that)

	Vdsm used to report CPU hyperthreads as if they were real CPU cores.
	This was fixed in 6df2456b2a1. However, there are people out their who
	rely on Vdsm's former behaviour. Let us let them revert to it.

2012-08-15  Mark Wu  <wudxw@linux.vnet.ibm.com>

	schema: Add doc for setMOMPolicy
	The schema defintion for setMOMPolicy was missing from the patch
	which introduced that verb. So add it by this patch.

2012-08-15  Bala.FA  <barumuga@redhat.com>

	glusterHostsList returns host info as list of dictionaries
	Return value looks like
	{'status': {'code': CODE, 'message': MESSAGE},
	'hosts' : [{'hostname': HOSTNAME, 'uuid': UUID,
	            'status': STATE}, ...]}

	As this API is not consumed by engine/RHS-C yet, its OK to differ in
	compatibility issue now.

2012-08-15  Gal Hammer  <ghammer@redhat.com>

	BZ#845994 VM failed to start after file injection.
	The "before_vm_start" hook created a file inside the guest's
	image file using the GuestFS library. The image was not unmounted
	explicitly and this caused libvirt to fail when it tried to read
	the image file.

2012-08-15  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: cleanup file cleanup function
	Use for instead of repeating code.

	bootstrap: sync logging between two phases
	1. Create logs on environ["OVIRT_LOGDIR"] or python tempdir.

	2. Create logs by timestamp and not random.

	3. Sync file name and content format.

2012-08-15  Amador Pahim  <apahim@redhat.com>

	BZ#846604 bootstrap: skip clock sync if ntpd is synced
	During boostrap, host clock is synchronised with
	engine time. If on host ntpd is synced and on engine
	time is not synced, time in host will jump to engine
	time then jump back to ntp time few moments later.
	This patch checks if ntpd is synced in order to
	skip host clock sync with engine time when true.

2012-08-14  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: search own ssh key without base64 suffix
	The '==' is base64 suffix, it may or may not exist based on the key
	size, searching by ' ' and suffix should be sufficient.

	Line end should be part of suffix, as each key is placed within its own
	line.

	configNetworkTests: use context to manage monkey patches
	Easier to manage setup and cleanup at on place, then
	trying to cleanup after a block of code, and catching
	all exceptions.

	Example of use:
	 ---
	from monkeypatch import MonkeyPatch

	@MonkeyPatch(subprocess, 'Popen', lambda x: None)
	@MonkeyPatch(os, 'chown', lambda *x: 0)
	def test():
	    logic

	def test():
	    with MonkeyPatchScope([
	        (subprocess, 'Popen', lambda x: None),
	        (os, 'chown', lambda *x: 0)
	    ]):
	        logic
	 ---

2012-08-14  Igor Lvovsky  <ilvovsky@redhat.com>

	configNetwork: Ignore libvirt exception for network removing
	We need to ignore libvirt exception for removing non-exists network
	during restoreAtomicNetworkBackup

	Restart network service during restore backups

	clientIF:  avoid network backups during _syncLibvirtNetworks
	The target of _syncLibvirtNetworks is synchronize between host networks
	and libvirt's view of it.
	So, there is no reason for backups at this point.

2012-08-14  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	rename xml.dom.minidom.parseString to _domParseStr in libvirtvm
	The old name is too long and is copied everywhere. Using a shorter
	name helps shorten the line length.

2012-08-14  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Add a MOM functional test case for KSM

	Add a VDSM verb to change MOM policy

2012-08-14  Federico Simoncelli  <fsimonce@redhat.com>

	Check the metadata on domain validation
	When VDSM is validating a storage domain is not checking the presence of
	the metadata (eg: a domain could result valid even with a missing or
	empty metadata). This patch introduces an additional check to make sure
	that the metadata is not empty.

2012-08-13  Adam Litke  <agl@us.ibm.com>

	schema: Remove invalid names
	The identifier "type" causes conflicts with the GObject type system.  Type is
	not a great name anyway so choose better names where it occurs.

	The name "StorageDomainClass" conflicts with the GObject class structure for the
	StorageDomain class.  Rename it to StorageDomainImageClass since it identifies
	the class of images stored on the storage domain.

2012-08-13  Dan Kenigsberg  <danken@redhat.com>

	configNet: updateConfigValue: record to backup, do not restore
	restoreAtomicBackup is to be called only by a higher level. There is no
	point in calling it once per down-level failure.

2012-08-13  Royce Lv  <lvroyce@linux.vnet.ibm.com>

	check disk shared flag exist before use it
	The cdrom shared flag is just added by current engine(e548c72ee1d92)
	but not included in release 3.1, making test latest vdsm vm create
	always fail.This patch makes vdsm compatible with the earlier engine version.

2012-08-13  Adam Litke  <agl@us.ibm.com>

	Remove orphaned API: getStorageConnections
	Commit a1cdccdff54af7aea8de49c06d8535079cd78bff which introduced the Storage
	Connections Management API removed an unimplemented API from the HSM but did not
	remove references to that API from API.py and BindingXMLRPC.py.  Finish cleaning
	it up.

2012-08-13  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	Support for QEMU cmdline hook
	This patch adds support for injecting QEMU cmdline via
	VDSM hook. It exploits libvirt's qemu:commandline facility
	available in the qemu xml namespace.

	v2:
	    code refactoring as per dan's comments
	    moved from eval to json.loads
	v3:
	    moved from json dict to json list

2012-08-13  Alon Bar-Lev  <alonbl@redhat.com>

	bootstrap: remove dh key generation
	Before VDSM used libvirt, it configured qemu with spice TLS with
	DH key. Using DH key for TLS/SSL is encouraged, as it detach between
	the encryption and authentication layers.

	qemu supports x509-dh-key-file parameter, libvirt does not use this
	parameter.

	qemu supports x509-dir parameter, within it expects to find pre-defined
	structure of certificate and key material. libvirt does use this
	parameter. However, qemu only looks for ca, crl, cert, key, so even if
	we have DH key, it won't be used.

	Removing DH key generation.

2012-08-13  Federico Simoncelli  <fsimonce@redhat.com>

	Specify the ACPI flag when shutting down VMs
	In commit e460308 has been introduced the qemu guest agent support.
	When such agent channel is present the default shutdown method uses the
	guest agent (which might be missing).
	For consistency and to maintain the old behavior we should specify to
	use ACPI to shutdown the guest.

	Support the quiesce flag during a live snapshot

	BZ#844656 Respawn the domain monitor when needed
	In the domain monitor there are few lines that are not covered by a
	try/except clause but that might be enough for the thread to die without
	leaving any valuable information in the logs. This patch adds logging
	for the possible exceptions and respawn the domain monitor if it exits
	unexpectedly.

	Initialize the pthread RLock attribute

	Add missing log object to CrabRPCServer
	In this patch:
	* add missing log object to CrabRPCServer
	* rename _log to log for consistency with CrabRPCProxy and with the
	  majority of the VDSM classes

2012-08-13  Roy Golan  <rgolan@redhat.com>

	fenceNode API is missing the options argument

2012-08-13  Gal Hammer  <ghammer@redhat.com>

	BZ#842771 Fix for exception "TypeError: cannot marshal None"
	The VM's "mirror" and "mirrorPath" properties had a value of None
	rather than an empty string.

2012-08-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fix wrong warning when disabling ssl config is found
	This change add to vdsmd.service init script a comment how to configure
	also qemu.conf to work without ssl as in libvirtd.conf.

2012-08-12  Alon Bar-Lev  <alonbl@redhat.com>

	configNetworkTests: handle modinfo correctly
	1. Use /sbin/modinfo as /sbin is absent from non root users.

	2. If bonding module was not found, skip test.

2012-08-12  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	rhevh --> ovirt changes
	Changing the libvirt sasl username from vdsm@rhevh
	to vdsm@ovirt

2012-08-11  Alon Bar-Lev  <alonbl@redhat.com>

	legal: bootstrap: update copyright years

2012-08-10  Adam Litke  <agl@us.ibm.com>

	schema: ConnectionError should be an object not a tuple
	We don't want to try and support a tuple type in the API just to accomodate this
	use case which would be much more usable as a regular type with 'code' and
	'message' members.  Convert it.

	schema: Fix up VmDefinition types
	There is no such thing as a VmShort definition so we do not need the union type
	for VmDefinition.  Also, VmDefinition is the same as VmStatus so just define the
	definition as an alias of VmFullStatus.

	schema: Fix some typos
	Just fix a few outstanding typos in the schema.  This should be pretty
	uncontroversial.

2012-08-10  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	extract a method for appending a child node with a text node to self.dom in libvirtvm.py
	In vdsm/libvirtvm.py, there are some duplicated code. It creates an
	xml element node, then creates a text node and appends it to the element,
	at last appends the element to self.dom. This can be done in a function.

2012-08-09  Adam Litke  <agl@us.ibm.com>

	schema: Remove remaining instance of IntStr
	Oops, we missed one IntStr type.  Remove it.

2012-08-09  Alon Bar-Lev  <alonbl@redhat.com>

	cleanup: use iproute instead of vconfig for vlan management
	iproute utility is much better maintained and supported, it
	supersedes the vconfig in most setups.

	As VDSM uses vconfig only to delete vlans, it even simpler
	to replace it with iproute at this point.

2012-08-09  Igor Lvovsky  <ilvovsky@redhat.com>

	Add restoreBackups and clearBackups

	BZ#832765 - Load backups from backup files to memory

2012-08-09  Alon Bar-Lev  <alonbl@redhat.com>

	cleanup: add vdsm-tool/validate_ovirt_certs.py to .gitignore

2012-08-09  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Move option 'save_image_format' to qemu.conf
	'save_image_format' is an option for qemu.conf, not libvirtd.conf,
	so move it to qemu.conf.

2012-08-09  Laszlo Hornyak  <lhornyak@redhat.com>

	fix logging
	_log is an object, not a method

2012-08-08  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#843387 - prepareVolumePath() should set volPath or raise on any input.

	BZ#846014 - Fix virtio hotplug disk fail to a VM with IDE disks.

2012-08-08  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#832765 - configNetwork: add restoreAtomicNetworkBackup

	configNetwork: Don't swallow exception during removeLibvirtNetwork
	In this patch:
	  - No need to swallow libvirt exceptions during removeLibvirtNetwork
	  - No need to run forcibly removeLibvirtNetwork(network) before
	    createLibvirtNetwork(network)

	Add atomic/persist backup capabilities for logical networks

	Move createLibvirtNetwork and removeLibvirtNetwork to the ConfigWriter

2012-08-07  Laszlo Hornyak  <lhornyak@redhat.com>

	core: typo fix (Copys -> Copies)
	Copys is misspelled.

2012-08-07  Alon Bar-Lev  <alonbl@redhat.com>

	cleanup: do not use external program ipcalc for ip validation
	IPv4 addresses are simple to parse and validate. No need to execute
	external process for the task.

	Especially if process is not supported by all platforms, and it has no
	added value.

	$ ipcalc -c -4 0.0.0.0 && echo ok
	ok
	$ ipcalc -c -4 255.255.255.255 && echo ok
	ok
	$ ipcalc -c -m -4 1.1.1.1 && echo ok
	ok

2012-08-07  Saggi Mizrahi  <smizrahi@redhat.com>

	(Schema) 'init' is an internal state and is never exposed

	(Schema) Replace FloatStr with float

	(Schema) Replace IntStr with proper integer types

	(Schema) Remove HexStr alias
	Most languages have their own way of representing hexadecimal literals.
	This will make sure we don't have to define how we parse hex values and
	making users implement formatters.

	(Schema) Remove varius bool versions, final API will just use boolean values

2012-08-07  huntxu  <mhuntxu@gmail.com>

	fix typo "doesn't exists"
	replace "doesn't exists" with "doesn't exist".

2012-08-07  shu ming  <shuming@linux.vnet.ibm.com>

	Fix the parameter descriptions in create() method
	Fix the parameter descriptions in create() method of
	storage domain class.

2012-08-07  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#845830 confNet: Remove most of_validateNetworkSetup
	All the dropped validations already exist in _addNetworkValidation.
	Having them written twice is begging for bugs.

2012-08-07  Dan Kenigsberg  <danken@redhat.com>

	confNet: no need to validate deleted network name
	If the net is in our database, we should be able to delete it, no matter
	what was its name.

2012-08-07  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Move validate_libvirt_certs to vdsm-tool
	Move validate_libvirt_certs in vdsdm.init to vdsm-tool
	and rename validate_ovirt_certs since it is not related
	to libvirt.

2012-08-06  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	miscTests test failed, fix it
	Saggi changes the raise exception of cleanupdir in 70ceb370 commit.
	So fix the miscTests to assert the new exception.

2012-08-06  Federico Simoncelli  <fsimonce@redhat.com>

	Implement RLock in betterThreading
	To use a recursive lock in a betterThreading.Condition we must implement
	the RLock object with pthread.

2012-08-06  Mark Wu  <wudxw@linux.vnet.ibm.com>

	MOM Integration
	This patch integrates MOM into vdsm. For the descprition of
	how it works, please see Adam's mail:
	https://fedorahosted.org/pipermail/vdsm-devel/2012-February/000628.html

2012-08-05  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	Add a channel in vdsm for introducing qemu-ga
	As previously what we agreed, the agent-assisted shutdown and fsfreeze would be handled
	by the qemu guest agent while oVirt-specific functionality such as
	Single-Sign-On would continue to be managed by the ovirt guest agent.

	http://www.ovirt.org/wiki/Guest_agent_proposals

	This patch enables the qemu guest agent channel in the libvirt domain XML and
	changes the shutdown verb to pass the VIR_DOMAIN_SHUTDOWN_GUEST_AGENT flag to
	the libvirt shutdown API.

	There is no reliable method/API to tell if guest agent is available/running in libvirt.
	But libvirt will do some basic check(using 'guest-sync' command)
	to determine whether the qemu-ga is running before every useful command delivered to agent.

	http://wiki.libvirt.org/page/Qemu_guest_agent

2012-08-05  Mark Wu  <wudxw@linux.vnet.ibm.com>

	vdsmd: Don't keep the temporary file generated by configuring libvirt
	It turns out that this problem is caused by a sed bug. And it has been
	fixed in https://bugzilla.redhat.com/show_bug.cgi?id=832855. This patch
	bumps the required version of sed to 4.2.1-10 to include the fix. The
	sed bug doesn't exist on rhel6, so we don't need to change it.

2012-08-04  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#841863 Change exception thrown by the fileUtils module
	Serializing obejcts that aren't canonical might cause issue with
	pickling. In anycase, the gobal exceptions should not be used so low in
	the stack.

2012-08-02  Dan Kenigsberg  <danken@redhat.com>

	configNetworkTests: test new "iface" API
	commit 1cb43db326c8 has incurred a change in the reported attributes per
	network. This needs to be translated to a compatible change in the test.

	This issue has not been noticed due to a human race condition: the test
	was verified before the API change was made, but committed after it.

2012-08-02  jarod.w  <work.iec23801@gmail.com>

	deployUtil: avoid garbage character in auth key file
	If we fail to get file '/engine.ssh.key.txt', it will get the
	content of url 'http://your_engine_ip:your_port/' which is not
	what we want.

2012-08-02  Sandro Bonazzola  <sandro.bonazzola@gmail.com>

	tests: add testcases for mkimage
	Added testcases for functions _decodeFilesIntoDir, mkFloppyFs,
	mkIsoFs and removeFs in mkimage.

	Fixed a missing \ in tests/Makefile.am

	Modified after review:
	Fixed test failure creating _P_PAYLOAD_IMAGES directory, monkey-patching mkimage._P_PAYLOAD_IMAGES.
	Fixed restoring mkimage constants original values on teardown.
	Fixed pep8 style requests.
	Fixed sorting of tests.

2012-08-01  Josef Pacula  <josef.pacula@gmail.com>

	with exceptions some variables could be uninitialised - now initialised to None

2012-08-01  Antoni S. Puimedon  <asegurap@redhat.com>

	Added tests for _addNetworkValidation and helpers.
	Helpers are: validateVlanId, validateBondingName and validateBondingOptions.

	The test for validateBondingOptions monkey patches os.path.exists to allow to
	test just the logic of the method, which uses sysfs to determine if the option
	is valid.

	The test of _addNetworkValidation goes over the logic branches to test that
	the proper exceptions are thrown. It monkey patches the network detection
	method of the netinfo module to avoid real network detection at test time.

2012-08-01  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#844347 - Prepare conf files for all interfaces before ifup

	Don't set BRIDGE in nic's conf files if it part of the bond

	Related to BZ#844347 - Keep bond mode after change network on top of it
	Assume we have a bond with mode X and network on it. Now we want to remove this network
	and add another one.
	In this case setupNetwork will get a new network but not a bond info.
	We need to take bond info from the host and keep it during network addition

2012-08-01  Dan Kenigsberg  <danken@redhat.com>

	report network's underlying device as "iface"
	ovirt-engine-3.1 expects to see "interface" for bridgeless networks, and
	only for them. A recent patch http://gerrit.ovirt.org/6644 started
	reporting "interface" for bridged networks, too. Which broke Engine.

	I consider this an Engine bug (it should have relied on the "bridged"
	attribute to decide if a network is bridged or not), but this cannot be
	changed on the Engine side so near to the ovirt-3.1 release.

	This patch reports "iface" for all networks, keeping "interface" only
	for bridgeless networks, for ovirt-3.1 backward compatibility.

	With this new API nit, we report a new cluster level 3.2.

2012-08-01  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#844294 Add requiresMailbox to StorageDomain
	Since commit 942c2dc the storage domain objects are all DomainProxy
	instances, but the method StoragePool.__createMailboxMonitor was still
	relying on identifying the object type to activate the HSM mailbox.

2012-08-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	remove vds_qualifier - we don't use it

2012-08-01  Douglas Schilling Landgraf  <dougsland@redhat.com>

	engine.py: remove ping from write_vdsm_config
	def action() already uses http request to verify if oVirt Engine
	is available, we don't need a new 'ping' for write_vdsm_config().

2012-07-31  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#842948: deployUtil - safely remove bridge
	deployUtil calls /usr/share/vdsm/delNetwork to remove previously created bridge.
	This patch will add ovirtfunctions.ovirt_safe_delete_config() to safely remove
	bridge config files in oVirt Node.

2012-07-30  Dan Kenigsberg  <danken@redhat.com>

	BZ#843498 getCaps: differentiate between bridges and nets
	Since we have bridgeless networks, bridges are no longer equivalent to
	networks, and should be reported separately.

2012-07-30  Federico Simoncelli  <fsimonce@redhat.com>

	Fix assertVdsmUser group check
	The assertVdsmUser group check wasn't taking in account that VDSM_GROUP
	could be the primary group for VDSM_USER and therefore not appear in the
	gr_mem list.

	In this patch:
	* additional check for VDSM_GROUP being the primary group for VDSM_USER
	* use the constants for VDSM_USER and VDSM_GROUP

2012-07-30  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#834205 - Add BOOTPROTO/IPADDR/NETMASK options for bridgeless interface

2012-07-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Added user verification before running VDSM.
	If user isn't called 'VDSM' or isn't related to group KVM, the service won't startup.
	Normal run of VDSM should be only by user VDSM.
	Otherwise, another user creates vdsm internal files and it's wrong, espcially if its root.

2012-07-30  Eli Mesika  <emesika@redhat.com>

	BZ#840386: vms with shared disk will pause...
	https://bugzilla.redhat.com/show_bug.cgi?id=840386

	The problem was that vdsm does not add the libvirt 'sharable' flag when
	getting a Disk with the shared flag set from core.

	Solution is to set the shareable flag in libvirtvm.py and for backward
	compatibility set it to false in vm.py

2012-07-29  Igor Lvovsky  <ilvovsky@redhat.com>

	Rename getNetworksForNic as getNetworksForIface
	This function handles both bond and nic interfaces

	configNetwork: handle VLAN before bond and nic in addNetwork
	We want to create config files (ifcfg-*) in top-down order
	(bridge->vlan->bond->nic) to be able to handle IP/NETMASK
	correctly for bridgeless networks

2012-07-29  Antoni S. Puimedon  <asegurap@redhat.com>

	Refactored configWriter add methods for code reuse.
	Moved the backup and write part into a separate method and added tests
	for these add methods. The tests work by doing some monkey patching of the
	open and the writeConfing method.

2012-07-26  Bala.FA  <barumuga@redhat.com>

	gluster.cli: report failures as error dict to Engine
	Gluster cli functions throw error as exception, but python
	multiprocess has a bug http://bugs.python.org/issue15440 which fails
	to re-raise in supervdsm side.  This is workaround fix to set optional
	arguments to constructor of VdsmException and GlusterException

2012-07-26  Yeela Kaplan  <ykaplan@redhat.com>

	BZ#837836 Change tpgt variable to identically None
	Conversion of iscsi portal parameter, which is actually tpgt,
	to int is removed because this parameter is not used in vdsm
	and to avoid regressions.
	Engine sends identically 0 in new version and can send anything through REST API in older versions.

2012-07-26  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	fix 'qemuImg' import error in unit test
	restTest indirectly import qemuImg.py. qemuImg.py is installed to
	vdsm site-packages dir, so it is imported as "from vdsm import qemuImg"
	in other files.
	There is a hack in testrunner.py to import modules under vdsm
	site-packages dir for unit test, but qemuImg is not hacked, so causes the
	problem.

	This patch add qemuImg to the import hack list in testrunner.py and fix
	the problem.

2012-07-25  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#842631 Use domain proxies instead of actual domain references
	Because of issues where we had 2 instances of the same domain causing
	trouble we changed the invalidation scheme to only invalidate when no
	one is holding a reference to the domain object. This causes a lot of
	correctnes errors, espescially on not manager hosts. Having a proxy in
	the middle will allow us to invalidate the domain object and have all
	reference owners access the correct object.

2012-07-25  Federico Simoncelli  <fsimonce@redhat.com>

	Add the hostId parameter to reconstructMaster
	During reconstructMaster a new storage domain of the pool is elected
	to become the master to hold the cluster lock and the metadata.
	With the introduction of SANLock each host maintains its own host id
	on all the storage domains of the pool and therefore VDSM can't use a
	temporary id to reconstruct the master domain.

	Add missing import config in domainMonitor

2012-07-25  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Check if core is a directory before cleaning
	On some systems /var/log/core might not exist, so they will get an email
	every hour that /var/log/core could not be found. This is avoided by
	checking if the directory exists before cleaning it.

2012-07-25  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#838802 Config option to enable/disable volume leases
	At the moment we don't completely support the volume leases. As default
	they are disabled but they can be enabled (testing purpose) with a
	specific configuration option. In the future when the feature will be
	stable enough such option won't be considered anymore (always enabled).

	Add the formatConverter for Storage Domain V3

2012-07-25  Saggi Mizrahi  <smizrahi@redhat.com>

	Orthogonal storage repository conversion
	Currently domain format conversion is considered an "upgrade". This is
	not correct as in the future we may allow conversion from one domain
	type to another without a definite supercedence value.

	For instance, one domain format might be better suited for quick
	image manipulation while another will be better suited for space saving
	image manipulations.

	Also in the future we will introduce the new image repositories that
	will replace the current domain scheme. As these are completely
	different objects there needs to bee a 3rd party to convert to\from
	them.

	This also separates the conversion process from the domain logic
	allowing simpler more concise handling of the conversion process.

2012-07-24  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#839330 Bump sanlock required version
	The new sanlock version adds:

	* support for several NFS implementations
	* WAIT flag for sanlock_inq_lockspace
	* graceful pid handling

2012-07-24  Mark Wu  <wudxw@linux.vnet.ibm.com>

	configNetwork: fix bonding mode issue
	Currently, we configure nics before bonding when create/edit bonding
	device. That could cause the bonding mode can't be updated as specified.
	Because, when we use ifup to activate the bonding slaves, it implicitly
	creates the bonding device with the default mode 0, and adds the salve
	nics to it. So you will see the following kernel message in system log:

	bonding: unable to update mode of bondX because it has slaves

	The fix is just to make bonding configured before nics. Then it can
	update its mode because no slave attatches to it at that time.

2012-07-24  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	make vdsm_hooks/vhostmd/before_vm_start.py PEP 8 clean

	make vdsm_hooks/vhostmd/after_vm_destroy.py PEP 8 clean

	make vdsm_hooks/scratchpad/before_vm_start.py PEP 8 clean

	make vdsm_hooks/scratchpad/before_vm_migrate_source.py PEP 8 clean

	make vdsm_hooks/scratchpad/after_vm_destroy.py PEP 8 clean

2012-07-24  Federico Simoncelli  <fsimonce@redhat.com>

	Unify the volume creation code in volume.create
	This patch lays out the principles of the create volume flow (unified
	both for block and file storage domains).

	Uniform the block and file volume methods
	In this patch:
	* Consistent use of metaId to identify the volume metadata
	* Use the same arguments for halfbakedVolumeRollback in file and block
	  domains (backward compatible with the previous format)
	* Few changes and cleanup to comply to PEP8

	Remove the unused nocache option
	The nocache option to get and set the volume metadata is never used.

	Separate the Volume.share implementation
	The current Volume.share method is exposing the hardlink/symlink option
	which is an implementation detail of the domain type (hardlink for file
	domains and symlinks for block domains). This makes any external (or
	generic) use of such call domain-type dependant.
	This patch separates part of the Volume.share implementation to use the
	correct link type transparently.

	In this patch:
	* Separate the Volume.share implementation for block and file domains
	* Separate the shareVolumeRollback implementation
	* Link also the lease file on file domains (when required)

2012-07-24  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	skip testPersistentBackup test, if 'vdsm' account is not created
	In configNetwork moudle, _persistentBackup needs to get the uid of
	'vdsm' account. If the 'vdsm' account is not created and when the
	vdsm is builded, it will report test "ERROR".
	This is not resonable, the test should be skiped.

2012-07-24  Roman Fenkhuber  <roman@fenkhuber.at>

	Basic tests for the tc module

2012-07-23  Saggi Mizrahi  <smizrahi@redhat.com>

	Add stdin tests to betterPopen

2012-07-23  Dan Kenigsberg  <danken@redhat.com>

	bootstrap: avoid rpmUtils.miscutils.compareVerOnly
	el6's rpmUtils.miscutils does not have this function, so we shall mimick
	its sematics with rpmUtils.miscutils.compareEVR

	Originally reported by Andrey Gordeev <dreyou@gmail.com>.

2012-07-22  Igor Lvovsky  <ilvovsky@redhat.com>

	configNetwork: _addNetworkValidation: validate bridgeless net existence.

	BZ#831528, BZ#834008, BZ#829037 - Fix validation for inter-networks compatibility
	Only following networks combinations are allowed:
	 - single non-VLANed bridged network
	 - multiple VLANed networks (bridged/bridgeless) with only one
	   non-VLANed bridgeless network

2012-07-22  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#833099 - spmRole is a StoragePool attribute.
	Remove this misleading accessor.

	Related to BZ#833099 - Removing unused exceptions.

	BZ#833099 - Induce MSD reconstruct when getSpmStatus fail.
	Really engine should deduce the reconstruct necesity, but this
	would not happen.

2012-07-21  Alon Bar-Lev  <alonbl@redhat.com>

	test: remove redundant resourceManagerTests.py
	The resourceManagerTests.py test is executed twice, while
	should be executed once.

2012-07-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#832227: vdsm-reg.conf: change vdc_host_port
	The default ports to ovirt-engine 3.1 changed to 80/443.
	Replace vdc_host_port value from 8443 to 443. Also, added to engine.py
	schema of compatible port, if users try to connect using old ports and
	doesn't work it will try the new one.

	Thanks to Itamar/Mburns to handle the compatible port issue.

2012-07-21  lvroyce  <lvroyce@linux.vnet.ibm.com>

	adding handling EINTR to poll to make it more robust
	some system call and signal will interrupt poll,
	making event loop stops and fails to react events and keepalive message
	from libvirt.
	adding handling EINTR to poll to make it more robust

2012-07-20  Igor Lvovsky  <ilvovsky@redhat.com>

	Split getNetworksAndVlansForBonding to handle bridge and bridgeless networks

	Refactoring and optimization of _addNetworkValidation

2012-07-19  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#784931 - Fixing race condition in deactivateSD().

	BZ#784931 - Restore SD.validate() semantics.
	dom.validate() should check the domain without any aging
	mechanism.
	Decoupling validate from SD.selftest(), used in domainMonitor mod.

	Related to BZ#784931 - Removing the unused useCache parameter.
	Intentionally (A.B.) ignoring when the SD.validate(useCache=True)
	usages were removed.

2012-07-19  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	Fix the KeyError exception if no 'acpiEnable' key in vm.conf.
	When creating a VM,if the params do not contain the key 'acpiEnable',the self.conf has no key 'acpiEnable'.
	If use conf.[key] it will raise an exception.

	So change to use dict.get() method to avoid KeyError.

2012-07-19  Bing Bu Cao  <mars@linux.vnet.ibm.com>

	Fix typo (change socekt to socket) in libvirtvm.py and vm.py

2012-07-19  Federico Simoncelli  <fsimonce@redhat.com>

	Fix detachStorageDomain for the ISO domains
	When detaching an ISO domain we should acquire the host id before
	trying to acquire the cluster lock.
	Additionally since an ISO domain can be used by multiple pools we
	should avoid to acquire the host id in the domain monitor.

	In this patch:
	* acquire the host id in detachSD for the ISO domains
	* do not acquire the host id in the domain monitor for the ISO domains

2012-07-19  Douglas Schilling Landgraf  <dougsland@redhat.com>

	engine.py: Rename the remaning rhevm vars
	Rename rhevm vars to engine

	engine.py: rename callbacks
	Renamed the following callbacks:

	- valid_rhevm_server_callback to validEngineServerCallback
	- valid_rhevm_server_port_callback to validEngineServerPortCallback

	engine.py: rename write_vdsm_config params
	Renamed the following parameters and references:

	- rhevm_host to engineHost
	- rhevm_port to enginePort

	engine.py: rename get_rhevm_config() function
	Rename get_rhevm_config() to getEngineConfig()

2012-07-18  Adam Litke  <agl@us.ibm.com>

	vdsm_api: Add schema and html doc generator
	This patch adds a schema file to a new directory 'vdsm_api'.  The schema is
	intended to be a machine-readable specification of the current vdsm API.  From
	this schema we should be able generate API documentation and a client library
	(libvdsm) that other projects can use to write against the defined API.

	At this point, the schema file probably contains some errors and needs a solid
	review from this community.  Please send patches to gerrit that correct
	documentation and data errors in the schema.  Meanwhile, I will begin to write
	a gObject code generator.

2012-07-18  Laszlo Hornyak  <lhornyak@redhat.com>

	typo fix in help text
	replaces "givven" with "given"

2012-07-17  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	make vdsm/storage/task.py PEP 8 clean

2012-07-17  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix pep8 issue in configNetworkTests.py

2012-07-17  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	skip gluster test if gluster module is not find
	if vdsm-gluster rpm is not installed, will skip the test related to
	gluster

2012-07-16  Eli Mesika  <emesika@redhat.com>

	BZ#838591:vdsm is not looking for libvirt-daem
	https://bugzilla.redhat.com/838591

	vdsm is not looking for new libvirt-daemon package on vdsmd startup.
	libvirt has changed package name from libvirt to libvirt-daemon.
	As a result, vdsm fails in start_libvirtd while trying to find
	libvirt instead of libvirt-daemon
	Adding libvirt-daemon to the package list defined in
	vdsmd.init.in:start_libvirtd

2012-07-16  Alon Bar-Lev  <alonbl@redhat.com>

	build: use consistent python path
	Current behavior:

	1. aclocal.m4::AM_PATH_PYTHON detects python using PYTHON variable.
	2. configure.ac: detects python again using PYTHON_PATH.
	3. Makefile.am: uses python using hardcoded "python".

	Problem:

	Python cannot be overriden in consistent way.

	Change:

	1. Remove python redetection from configure.ac, use only PYTHON
	   variable.
	2. Use PYTHON in Makefile.am instead of hardcode.
	3. Use PYTHON in substituted files.

	Usage:

	./configure PYTHON=/usr/bin/python2

2012-07-15  Dan Kenigsberg  <danken@redhat.com>

	configNetTest: don't skip second test
	Formerly, after self._files have been read for the first time during one
	test, they would never have been read in a second test of the same nose
	run.

2012-07-15  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	fix the "netinfo" module import problem
	some files just do "import netinfo", but it should be
	"from vdsm import netinfo".

	This problem cause the latest vdsm services can not start completely.
	And related tests will fail in the installed vdsm tree.

	The problem can not be discovered by 'make check' because "netinfo.py"
	is under the sub-dir "vdsm", so just "import netinfo" is OK.
	However the problem will appear in the installed tree, because
	"netinfo.py" is installed to
	"/usr/lib64/python2.7/site-packages/vdsm/"

2012-07-14  Saggi Mizrahi  <smizrahi@redhat.com>

	Add copyright information to betterPopenTests.py

2012-07-14  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Update error code of migrateToURI2() on abortJob()
	Before migrateToURI2() just returned a generl error code(VIR_ERR_OPERATION_FAILED)
	if the mirgration job was cancelled by client. We have to search the error message
	to distinguish abort from other failures. It has been fixed in libvirt-0.9.9-1.el6
	by introducing a new error code VIR_ERR_OPERATION_ABORTED. Please see
	https://bugzilla.redhat.com/show_bug.cgi?id=760149 for more details.

	I also found the error message 'canceled by client' could be returned only on
	migrateToURI2(). It shouldn't happen on abortJob(), so remove it.

2012-07-12  Laszlo Hornyak  <lhornyak@redhat.com>

	send POSIXFS instead of SHAREDFS
	https://bugzilla.redhat.com/835920

	VDSM should send POSIXFS insterad of SHAREDFS.

2012-07-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Use only one NETPREFIX constant
	Currently, there are two definitions with the same value related to
	VDSM network prefix.

	NETPREFIX = 'vdsm-' (from configNetwork)
	LIBVIRT_NET_PREFIX = 'vdsm-' (from netinfo)

	This patch will remove NETPREFIX definition and update libvirtvm to
	use LIBVIRT_NET_PREFIX.

2012-07-12  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Suppress generating .py{c,o} files when 'make check'
	Set PYTHONDONTWRITEBYTECODE=1 to suppress generating bytecode. Sometimes
	a .py file is missing but the corresponding bytecode file exists, so
	unit test can still successfully run, giving false negatives.

2012-07-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#837443: remove bridge before add VDSM bridge
	Related to BZ#837443: ovirt-node fails to register with ovirt-engine

	oVirt Node when installed manually creates a bridge to be consumed.
	VDSM should remove any bridge (listed or not listed in libvirt)
	to create it's own bridge.

	BZ#837443: removeVlan() drop/remove interface
	Move ifdown() and vconfig rm to removeVlan(). We need a generic
	function to be called multiple times. For example, removing a vlan listed
	or not listed in libvirt database.

2012-07-11  Dan Kenigsberg  <danken@redhat.com>

	pthread.py: avoid stdout noise on process shutdown
	For some reason, on process shutdown, pthread.PthreadMutex.__del__() is
	sometimes called after the reference _libpthread to libpthread is reset
	to None. This resutls in annoying message like
	    AttributeError: 'NoneType' object has no attribute 'pthread_mutex_destory' (Ignored)

	Current code catches this error and replaces it with a `print`
	statement, which is just as annoying.

	This patch intentionally swallows the ignored error (and only it)

2012-07-11  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix bridgeless networks report

2012-07-11  Dan Kenigsberg  <danken@redhat.com>

	configNetTests: do not call a non-existing TestCaseBase.__del__
	This gives an ominous error when running the unit test.

	configNetTests: fix another netinfo-rebase issue
	configNetTests have been stubbing the variable
	configNetwork.NET_CONF_BACK_DIR which has been deleted by the
	beatification commit 9be0497ba773. Too bad that git's rebase did not
	catch what I have missed.

2012-07-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	configNetwork: fix NetInfo call
	Commit 9be0497ba77333577e3f5e8738c9efd8794e7a36 changed the import of
	netinfo. This patch fix a NetInfo call missed from the previous patch.

2012-07-10  Federico Simoncelli  <fsimonce@redhat.com>

	Monitor the host id in domainMonitor

	Add the async kwarg to acquireHostId

	Do not acquire leases on shared volumes
	At the moment (exclusive leases) if a VM acquires the leases on a shared
	volume (template) it will prevent all the other VMs based on such
	template to start.

2012-07-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#837443: replace the netinfo import
	We will use functions like netinfo.bridges() to
	verify if there is any bridge listed in the system
	but not in the libvirt database.

2012-07-10  Dan Kenigsberg  <danken@redhat.com>

	bootstrap: m2crypto is no longer used
	We use Python's native ssl support for quite some time. No need to
	install m2crypto on every node.

	configNetTests: add testPersistentBackup
	The tested configNetwork.ConfigWriter._pesrsistentBackup is restored by
	the vdsm-restore-net-config script. This patch changes the script to
	make it more easily testable: environment variables
	NET_CONF_DIR and NET_CONF_BACK_DIR are honored if passed to the script.
	--skip-net-restart avoids attempting to change the network configuration
	on the tested host.

2012-07-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#837443: removeBridge() drop/remove interface
	Move ifdown() and brctl delbr to removeBridge(). We need a generic
	function to be called multiple times. For example, removing a bridge listed
	or not listed in libvirt database.

2012-07-09  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fixing broken compilation.
	Compilation was broken by:
	Change oop to be a new process instead of a fork
	I65e58030e31fe54b0e79c2f2a415d081f890d41f

2012-07-09  Saggi Mizrahi  <smizrahi@redhat.com>

	Change oop to be a new process instead of a fork
	This has better memory overhead as forking copies redundant memory from
	the parent. This allows opening and closing of oop helpers without fear
	of memory bloat.

2012-07-09  Dan Kenigsberg  <danken@redhat.com>

	BZ#834205-related: report ipaddr of bridgeless networks
	No one in Vdsm sets the ipaddr of bridgeless networks (which is what the
	bug is all about), but we should at least report it if it was manually
	edited into ifcfg-eth*.

	BZ#834205-related: ethtool cannot handle unicode device names
	Device names such as u'eth0' make ethtool choke. Let us convert them to
	simple 'eth0' strings.

	restTests: skip until we find python-cherrypy for el6

	restTests: temporarily drop reference to vms
	Currently two unit tests are failing since we test a
	yet-to-be-implemented feature.

	We should test vms item only when http://gerrit.ovirt.org/3756 is
	accepted and VMs are modeled by the REST API.

	configNetTests: refactor testAtomicRestore

2012-07-08  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#837054 - Do not detach network from the bond during bond resize
	Let's say you have bond and bridged non-VLANed network on it.
	This patch will fix detaching such network from the bond during bond resizing.

2012-07-07  Douglas Schilling Landgraf  <dougsland@redhat.com>

	ovirt_functions: fix elif statement
	Identify correctly the ovirt Node and fix the error message from vdsm-reg logs:

	[: /etc/ovirt-node-image-release: binary operator expected

2012-07-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#832199: move selinux from init to spec
	To reduce the time during the init, transferring all the selinux
	set to spec instead use it during the vdsm init.

2012-07-06  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	remove INSTALL from git and add it to .gitignore
	After running autogen.sh, I found the file "INSTALL" was modified.
	'git diff' reports the following change:

	-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
	-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
	+Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
	+Inc.

	...

	+   HP-UX `make' updates targets which have the same time stamps as
	+their prerequisites, which makes it generally unusable when shipped
	+generated files such as `configure' are involved.  Use GNU `make'
	+instead.

	It's caused by the update in autoconf. Just adding it to gitigore
	does't help because it's already tracked. In my understanding, we
	needn't maintain 'INSTALL' in git repository, so remove it.

2012-07-06  Adam Litke  <agl@us.ibm.com>

	rest-api: Add unit tests
	Add a framework and unit tests for the REST API.  These tests override the vdsm
	API bridge so that the REST code can be tested in isolation.  A functional test
	suite that verifies the operation of both the xmlrpc and rest bindings against a
	running vdsmd is still needed.

	This test module uses some tricky magic to dynamically-generate a fake API.py
	that will return pre-programmed return values to the REST API.  Using this
	technique, a cherrypy server can be tested with an unmodified Controller.

	The following files are created/modified:
	 restData.py   - Contains expected data for:
	                 Faked API calls, REST requests, REST responses
	 restTests.py  - Contains the actual test cases
	 testrunner.py - Modified to import some additional needed modules

2012-07-06  Dan Kenigsberg  <danken@redhat.com>

	rest-api: srop clientIF refs from API c'tors
	just the bare minimum that is needed to return sanity to the code.

2012-07-05  Bala.FA  <barumuga@redhat.com>

	glusterVolumesList list all volumes or specified volume.
	glusterVolumesList accepts volume name optionally to list specified
	volume only else lists all volumes.

2012-07-05  Dan Kenigsberg  <danken@redhat.com>

	configNetTests: re-grow the stub
	I've created stubs to limit my unittest, but forgot to restore the
	changed function and variables. This patch fixes this regression.

	configNetTests: test atomicBackup
	The sematics of this function were far from clear to me before I've
	written this unit test. While writing this test, I've found the issues
	that are fixed in the preceding patches.

	I hope this test makes the function of _atomicBackup() clearer not only
	to me.

	configNet: atomicBackup: remove new files upon restore
	Files that are created by ConfigWriter._atomicBackup() should be removed
	by restoreAtomicBackup, not forgotten on disk.

	configNet: clear up atomicBackup arg
	Apparently, os.path.join('/a/b/', '/a/b/c') == '/a/b/c'.
	In my opinion, it is a Python bug.

	In any case, let us not trust this peculiarity, and have atomicBackup
	expect a full path to the config file.

2012-07-05  Mark Wu  <wudxw@linux.vnet.ibm.com>

	make vdsm/storage/lvm.py PEP8 clean

	make vdsm/constants.py.in PEP8 clean

2012-07-05  Igor Lvovsky  <ilvovsky@redhat.com>

	Split getNetworksForNic to  getBridgedNetworksForNic and getBridgelessNetworksForNic

	Related to BZ#836954 - Allow to detach interface from the bond and create a new network on it in single action.
	Assume we have a bond0 on (eth1, eth2, eth3) with defined network brNet on it.
	This patch will allow to detach ethX from bond0 and create a new network brNet2 on it
	with single setupNetworks operation

2012-07-05  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	remove vdsm python lib path from PYTHONPATH in run_tests.sh.in
	60b0de8ece24ef6644472aeecd2cf48946919b80 add arguments --local-modules,
	we won't execute hack code in run_tests.sh.in, so we can remove
	python lib path from PYTHONPATH.

2012-07-04  shu ming  <shuming@linux.vnet.ibm.com>

	no spUUID parameter in copyImage()

2012-07-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#788640 - Fix template image parameter.
	Look for the template volume in the template image since the
	dependant image was already removed.

2012-07-04  lvroyce  <lvroyce@linux.vnet.ibm.com>

	avoid searching .git directory when build
	search .git directory may lead to error when branch name is "xx.py"
	avoid search .git to fix this problem

2012-07-04  Dan Kenigsberg  <danken@redhat.com>

	Do not set max_cstate on host with constant_tsc

2012-07-04  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	fix logging method format

2012-07-03  Dan Kenigsberg  <danken@redhat.com>

	BZ#833119 _addNetworkValidation: do not explode if STP option passed
	http://gerrit.ovirt.org/5456 has started passing all optional parameters
	to _addNetworkValidation, but no one is expecting them there.

2012-07-02  Dan Kenigsberg  <danken@redhat.com>

	faqemu: add a bit of documentation

2012-07-02  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#836954 - Allow to break bond and create a new network on its interface in single action.
	Assume we have a bond0 on (eth1, eth2) with defined network brNet on it.
	This patch will allow to break the bond0 and create a new network brNet2 on one
	of its interfaces (e.g. eth2) with single setupNetworks operation

	Remove redundant 'explicitBonding' parameter from setupNetworks

2012-07-02  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Add a test case for _handleMessage()

2012-07-02  Eduardo Warszawski  <ewarszaw@redhat.com>

	Adding the status field to getDeviceList info.
	This status tries to predict the result of pvcreate on the lun.

	By now the reported statuses are:
	free: pvcreate --test on this lun succeeded.
	used: pvcreate --test on this lun failed.

	Caveat emptor: pvcreate on the device can fail even if "force"
	flag is passed to createVG in case for example there is a mounted
	file system on this lun.

2012-07-02  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Collect more guest memory stats
	More detailed guest memory stats has been to ovirt-guest-agent in
	http://gerrit.ovirt.org/#change,2272. So add the corresponding code to
	vdsm to collect the memory stats.

2012-07-02  Dan Kenigsberg  <danken@redhat.com>

	pep8: make gpl boiler plate narrower
	Better do it in one sed blow.

2012-07-02  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Replace configure_sysctl with /etc/sysctl.d/vdsm
	To be simple, replace configure_sysctl in vdsmd.init with
	/etc/sysctl.d/vdsm

2012-07-01  Adam Litke  <agl@us.ibm.com>

	rest-api: Model StoragePools
	API Implemented:
	----------------
	/api/storagepools
	 * Create/connect new storage pool and manipulate connected pools
	 Actions:
	   /api/storagepools/create
	    - Create a new storage pool
	   /api/storagepools/connect
	    - Connect a storage pool
	    * The vdsm API does not maintain information about disconnected storage
	      pools so our API must deviate from REST norms by placing the connect verb
	      at the collection level instead of the resource level.
	   /api/storagepools/<id>/destroy
	    - Destroy a connected storage pool
	   /api/storagepools/<id>/disconnect
	    - Disconnect a storage pool
	   /api/storagepools/<id>/spmstart
	    - Start the SPM role on this host
	   /api/storagepools/<id>/spmstop
	    - Stop the SPM role on this host

	rest-api: Model Tasks
	API Implemented:
	----------------
	/api/tasks : Asynchronous tasks
	 * View and manage information about ongoing and completed operations
	 Actions:
	   /api/tasks/<id>/clear
	    - Clear the information about a completed task
	   /api/tasks/<id>/stop
	    - Stop a running task
	   /api/tasks/<id>/revert
	    - Rollback a running operation

	rest-api: Model volumes
	API Implemented:
	----------------
	/api/storagedomains/<sdUUID>/volumes
	 * Manipulate all volumes associated with a storage domain
	/api/storagedomains/<sdUUID>/images/<imgUUID/volumes
	 * Manipulate all volumes associated with an image

	 Actions:
	   .../volumes/create
	    - Create a new volume
	   .../volumes/<id>/delete
	    - Delete a volume

	Not all available functionality is implemented yet (eg. creating child volumes.)
	Remaining functionality can be added in subsequent patches.

	rest-api: Model images
	API Implemented:
	----------------
	/api/storagedomains/<sdUUID>/images
	 * Provide information about images associated with a storage domain
	 Actions:
	   /api/storagedomains/<sdUUID>/images/<imgUUID>/delete
	    - Delete an image and all of its volumes
	   * Note: Images are implicitly created during volume creation process

	Not all available operations are currently supported in the API.  Work continues
	to complete the API and that can be submitted as follow-up patches.

	rest-api: Model StorageDomains
	API Implemented:
	----------------
	/api/storagedomains : Manipulate Storage Domains
	 * Provide comprehensive information about known domains
	 Actions:
	   /api/storagedomains/create
	    - Create a new storage domain
	   /api/storagedomains/<id>/format
	    - Remove and erase a storage domain
	   /api/storagedomains/<id>/attach
	    - Attach a storage domain to a storage pool
	   /api/storagedomains/<id>/detach
	    - Detach a storage domain from a storage pool
	   /api/storagedomains/<id>/activate
	    - Activate an inactive, attached storage domain
	   /api/storagedomains/<id>/deactivate
	    - Deactivate an active storage domain

	rest-api: Model storage connection references
	API Implemented:
	----------------
	/api/storageconnectionrefs
	 * list, acquire, and release storage connection references
	 Actions:
	   /api/storageconnectionrefs/acquire
	    - Add a new connection reference
	   /api/storageconnectionrefs/<id>/release
	    - Remove a connection reference

	rest-api: Allow optional data in DELETE request bodies
	By default, cherrypy does not allow data in DELETE HTTP requests.  In our
	API, we would like to pass parameters to some DELETE requests.  We
	accomplish this by configuring two things:

	1) Set request.methods_with_bodies to include DELETE.  This tells cherrypy
	that we should process the body of DELETE requests too.

	2) Create a hook to enable body processing only for DELETE requests with an
	appropriate decorator.  This makes a request body optional for the
	indicated functions.

	rest-api: Add basic create and delete support
	Update the Resource class so that it can dispatch both GET and DELETE methods
	from a resource uri.  Update the Collection class so that it can dispatch GET
	and POST (create resource) methods from a collection uri.

2012-07-01  Derrick Ornelas  <dornelas@redhat.com>

	dumpStorageTable: fix path to ovf files
	Use os.path.join() instead of string concatanation, as DC does not have
	a trailing slash.

2012-07-01  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	Fixing typo in the source files besides vdsm.git/vdsm.
	Applied this patch set,the typo in vdsm.git beside vdsm directory will be fixed.
	Rebased on 27 June

2012-06-29  Federico Simoncelli  <fsimonce@redhat.com>

	Support fake_kvm in vds_bootstrap
	The bootstrap should be able to identify if the host is configured to
	use the fake_kvm hook.

2012-06-29  Dan Kenigsberg  <danken@redhat.com>

	Avoid hacking around kernel lro bug
	We no longer need to disable lro in modules were it was enabled by
	default, as lro was replaced by gro, and the original kernel bug about
	bond/lro compatibility has been solved.

	check-local: check *.py,*.py.in files in all subdirs

2012-06-29  lvroyce  <lvroyce@linux.vnet.ibm.com>

	bump libvirt version to fix readonly lease unsupported issue

2012-06-28  Dan Kenigsberg  <danken@redhat.com>

	BZ#806555 having /etc/ovirt-node-* means it is a node
	Not vice versa.

	This patch fixes http://gerrit.ovirt.org/3055 .

2012-06-28  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	fix "make check" failing on "vdscli.py" missing
	"make all" will not generate "vdscli.py" from "vdscli.py.in".
	Only "make install" will generate it. By running "make check",
	firstly "make all" will be run, but not "make install".
	So "vdscli.py" is not generated and the check fails.

	Generating "vdscli.py" in "make all" can fix the problem.

2012-06-27  Igor Lvovsky  <ilvovsky@redhat.com>

	Handle bond properly if connectivity check fail.
	We need to be able remove  a new added network if connectivity check fail.
	If a new network needs to be created on top of existing bond,
	we will need to keep the bond on rollback flow,
	else we will break the new created bond

2012-06-27  Dan Kenigsberg  <danken@redhat.com>

	deployUtil: slightly saner kernel version comparison

2012-06-27  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#833803 - Avoid bond breaking after network detach
	The (relatively) new setupNetwork verb allows to remove a network
	defined on top of an bonding device without break the bond itself.

2012-06-27  Dan Kenigsberg  <danken@redhat.com>

	BZ#833119 - Allow to create VLANed network on top of existing bond
	The (relatively) new setupNetwork verb allows to specify a network on
	top of an existing bonding device. The nics of this bonds are taken
	implictly from current host configuration.

2012-06-27  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#835784 - Allow to create a network on top of existing bond in additional to create a new bond and network
	If we already have a bond0 with (eth1, eth2) and now we want to create
	network "bridge_woVlan" on top of it and in additional we want to create
	a new bond1 with (eth3, eth4) and create a network "bridge_woVlan_2" on
	top of bond 1.
	This patch will allow us to do it in the same setupNetwork command.

2012-06-27  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Properly parse configurations in function "do_create" in vdsClient
	Before the patch:
	1. The function "do_create" accepts a config file and a set of arguments.
	For nested values, it only parses them from arguments but not from config
	file. So all nested values in the config file will not be passed to vdsm,
	causing some components and configs missing in the created VM.
	2. When parsing nested values in arguments, it add the both the raw value
	and parsed value into the result dictionary.

	After the patch:
	1. Properly parse nested values from both config file and arguments.
	2. Do not add useless raw value into the result dictionary.

	Patch Set 4:
	Add unit test for function "do_create" to verify config file is parsed
	the same way as command line parameters.

	Patch Set 5:
	Add hacks for importing vdscli.py and vdsClient.py in unit test.

	Patch Set 6:
	More readable name for contexManager function.

2012-06-27  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	make vdsm/storage/multipath.py PEP8 clean

	make vdsm/storage/persistentDict.py PEP8 clean

	make vdsm/storage/resourceFactories.py PEP8 clean

2012-06-27  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	make vdsm/storage/outOfProcess.py PEP8 clean

	make vdsm_hooks/promisc/after_vm_start.py PEP8 clean

	make vdsm/storage/taskManager.py PEP8 clean

	make vdsm_reg/define.py PEP8 clean

2012-06-26  Dan Kenigsberg  <danken@redhat.com>

	Revert "add configure variable vdsmcoredumpdir for /var/log/core"
	This reverts commit 6106db0db4832fd0e9a9f08c288d524d99fb0799 as it broke rpm building on el6.

2012-06-26  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	make vdsm/storage/fileUtils.py PEP8 clean

2012-06-26  jarod.w  <work.iec23801@gmail.com>

	Fix broken pyflakes check

2012-06-26  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	add comment for hard coded version string in vdsmd.init
	The version string is for looking up and generating configuration
	sections. It's hard coded on purpose for compatibility. Add a comment
	for other programmers.

2012-06-26  wenchao xia  <xiawenc@linux.vnet.ibm.com>

	add arguments to testrunner
	    Make testrunner accept more parameters and have help output.
	Now it accept one more parameter than original testrunner,
	--local-modules, which tells if the vdsm modules should be
	hacked. For eg:
	python testrunner.py --local-modules main.py miscTests.py
	python testrunner.py --help

	v2: change case parameter to accept more than one input.
	v3: parameter format was changed due to comments.
	v4: config was stored in local variable, parameter name changed
	to indicate better.
	v5: hack tips removed, use dash instead of underscore in
	parameter.
	v6: do not use argparser, pop key args from argv directly.
	v7: --help will also print nose help info.
	v8: typo and print fix.

2012-06-26  Lei Li  <lilei@linux.vnet.ibm.com>

	tests: add netinfo test for intToAddress() function
	Add testcase for intToAddress() function.

	tests: add testcases for configNetwork
	Add testcases for functions nicSort() and
	isBridgeNameValid() in configNetwork.

2012-06-25  Dan Kenigsberg  <danken@redhat.com>

	deployUtil: use os.uname instead of /bin/uname
	simpler, quicker, and less error-prone.

2012-06-25  Juan Hernandez  <juan.hernandez@redhat.com>

	Change default key size to 2048 bits

2012-06-25  Shahar Havivi  <shaharh@redhat.com>

	hooking.py: expose execCmd
	vdsm.utils.execCmd is used by multiple hook scripts to execute external
	commands. However, hooks (or anybody else) should not depend on internal
	vdsm functions. Let us expose execCmd and use it in the scripts

	v2: avoid an unrequired function call, have a more detailed commit
	message.

2012-06-25  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	add configure variable vdsmcoredumpdir for /var/log/core

2012-06-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#833752 - Fix chlist as a volume object list in Image.merge().
	Merging a base raw volume fails due to a TypeError.
	Avoids producing the children volumes again and fixing types.

2012-06-25  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	make storage/fileVolume.py PEP8 clean

	make storage/iscsiadm.py PEP8 clean

2012-06-25  wenchao xia  <xiawenc@linux.vnet.ibm.com>

	make storage/securable.py PEP8 clean

2012-06-24  Dan Kenigsberg  <danken@redhat.com>

	tests: do not dd into /dev/null
	Few of our tests run /bin/dd with of=/dev/null. Occasionally, dd calls
	fsync(2) on its destination file, which is (for some reason) unsupported
	by /dev/null.

	We are left with false-negative test results such as
	http://jenkins.ovirt.org/job/vdsm_unit_tests/215/testReport/junit/miscTests/DdWatchCopy/testStop/
	which tarnishes our reputation.

	Let's dd into a temporary file instead.

2012-06-24  Ryan Harper  <ryanh@us.ibm.com>

	Add VolumeType storage exception to clarify createVolume error
	When attempting to use createVolume API call, supplying an incorrect
	Volume Type (known as preallocate parameter) the exception message
	references Volume Format misleading the user that she has selected
	an incorrect Format.

	Add a new exception class, VolumeType and raise the correct error
	when passed an invalid VolumeType in the preallocate parameter.

2012-06-24  Dan Kenigsberg  <danken@redhat.com>

	BZ#824298 fix typo in keyword argument exc_info

2012-06-24  Federico Simoncelli  <fsimonce@redhat.com>

	Add sanlock-python to the BuildRequires

2012-06-23  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	make vdsm_reg/createDaemon.py PEP8 clean

2012-06-23  Federico Simoncelli  <fsimonce@redhat.com>

	Use sparse images for alignmentScanTests
	It shouldn't be really needed to (slowly) allocate 4Gb of space for
	these tests.

2012-06-22  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Add vdsm_reg/config.py to .gitignore

2012-06-21  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Remove the parameter of clientIF instance from API
	Currently, the API clients(like the xmlrpc binding and rest binding)
	need hold the vdsm internal clientIF instance to call API. To make the
	code more modular, we create a single API instance intialized with
	clientIF instance. And then the API clients can interact with vdsm
	without having the vdsm internal clientIF instance.

	Move actual VM creation function to clientIF.py
	To avoid using API in clientIF.py, we move the VM creation function
	to clientIF.py. It should be safe to skip the VM parameters validation
	in the VM.create() API for recovering exsiting VMs.

	If this patch is accepted, we can add a singleton interface for
	clientIF which can be used for API.py. Otherwise, it will cause circular
	importing.

2012-06-21  Federico Simoncelli  <fsimonce@redhat.com>

	Fix attachSD and masterMigrate for domain version 3

	Remove the traceback from the getVSize warning
	The check used in getVSize to skip the log warnings (when the LV is not
	enabled), was using the wrong exception type.

	Add the hasHostId method to the cluster locks

	Move the SANLock SDM lease to a different offset

	Internal volumes must be RW in domain version 3

2012-06-20  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#832577: node can't be approved
	Because of ovirt-node's readonly filesystem, directory creation at runtime has to be handled carefully.
	/rhev/data-center used to be created by the vdsm rpm when it is installed.
	It's now listed in vdsm.spec as %ghost which means it is *not* laid down by default.
	At runtime, it fails to be created because of the read-only filesystem.

	Regression introduced by commit ee1e68d3416d8fd728df75c0a41dd3db48f9138d
	Patch provided by: Mike Burns <mburns@redhat.com>

2012-06-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	getAllVolumes() unit test.

2012-06-20  Dan Kenigsberg  <danken@redhat.com>

	deployUtil.yumSearchVersion: compare versions sanely

	drop deployUtil.yumSearch
	It was just a complex way of calculating bool(yumFind()).

	deployUtil.yumFind: rename and simplify semantics
	deployUtil.yumListPackages is a convenience wrapper around
	yum.YumBase.pkgSack.searchNevra()

2012-06-19  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#826873 - Allow to create bond without network

	BZ#826467 - Allow to remove bond and attach network to NIC

	BZ#830486 - Allow to change network according the diffs from previous state
	We may not receive any information about the bonding device if it is unchanged.
	In this case vdsm shouldn't check the bond information of this network.

	BZ#826873 - Allow to change bond without network attached to it

2012-06-19  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	make libvirtev.py PEP8 clean

2012-06-19  Federico Simoncelli  <fsimonce@redhat.com>

	Make domainMonitor compliant to PEP8

2012-06-19  lvroyce  <lvroyce@linux.vnet.ibm.com>

	Make storage/sd.py PEP8 clean

2012-06-18  lvroyce  <lvroyce@linux.vnet.ibm.com>

	make storage/fuser.py PEP8 clean

	Make pthread.py PEP8 clean

2012-06-18  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Make vdsm/clientIF.py PEP8 clean

	Make vdsm/caps.py PEP8 clean

2012-06-18  Adam Litke  <agl@us.ibm.com>

	rest-api: Handle resource links
	Change the method for resolving links in a REST Resource.  Instead of each class
	defining a _handle_links() function, they can now define a _links dictionary.
	The keys are the link names and the values are a function which returns the next
	Resource or Collection in the call sequence.

	VM.create: Normalize propagateErrors semantics
	Changes since V1:
	 - Use utils.tobool() as suggested by danken

	Regretably, someone chose to use the strings 'on' and 'off' instead of the
	more correct True and False boolean values.  ovirt-engine compatibility
	requires us to continue supporting this bad form, but we should also accept
	True and False.

	VM.create: Make readonly optional for disk devices
	When processing disk devices to create a libvirt xml file, the current code
	assumes that the 'readonly' attribute is always present.  If it's missing,
	VM.create will fail with an AttributeError.  When describing disks, 'readonly'
	is typically an optional parameter that defaults to False if not specified.  In
	fact, this is what getConfDrives already does for legacy drives.  Right now,
	there is only one place that assumes readonly is present.  Change it to check
	for the attribute first.

2012-06-18  Laszlo Hornyak  <lhornyak@redhat.com>

	Better documentation for cpuPinning
	Replaces the documentation text with something more helpful with a link
	to the full documentation to the expected libvirt format.

2012-06-18  shu ming  <shuming@linux.vnet.ibm.com>

	Avoid racing condition of vmContainer's lenth

2012-06-18  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Sort PEP 8 white list in Makefile.am

2012-06-18  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#808874 Skip master validation on repoStat
	The current master validation code is affected by two different race
	conditions triggered by both startSpm and stopSpm.

	The first and clearer race condition is triggered by the master status
	(fetched asynchronously by the domainMonitor thread) that could be
	several seconds old. Comparing such status with the current SPM role
	(SPM/HSM) during a transition (startSpm, stopSpm) is wrong.

	The second race condition (more difficult to expose) happens again
	during the startSpm/stopSpm methods since the mount/unmount of the
	master domain is not atomic with the switch of the SPM role.

	There are two correct ways to solve this issue:

	1. Maintain the SPM role in the domainMonitor thread so that it can be
	atomically paired with the mount status. To do so we would need to
	introduce two new methods to signal to the domainMonitor the beginning
	and the end of a transition (startSpm, stopSpm) and its final outcome
	(role = SPM/HSM).

	2. Keep track of the latest SPM/HSM transition (eg: sp.lastRoleChange)
	and verify that the statistics are recent enough before validating the
	master mount (eg: st.lastCheck > sp.lastRoleChange).

	The code involved in this issue was introduced in 8d400ac (BZ#518840)
	to add an automatic recovery system for those pools that were missing
	the master mount/directory (preventing the SPM to start).
	Eventually that error could be reported during startSpm but it's not
	related to repoStats (which is anychronous to startSpm and therefore
	race prone).

	At the moment the engine handles the StorageDomainMasterError error code
	issuing a reconstructMaster command.

	Implementing one of the two fixes proposed above just to maintain this
	validation is an overdesign given that the two problematic situations
	(SMP-master-not-valid and HSM-master-mounted) should be addressed in a
	different way by VDSM and not reported to the engine.

	Consequences for the engine:
	* The error code StorageDomainMasterError will never be received
	* The engine won't issue the automatic reconstructMaster command (in
	  this particular case)

2012-06-17  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	add functional test for vdsm sos plugin
	a functional test for checking vdsm plugin didn't raise any
	exception and sosreport executed successful.

2012-06-17  Douglas Schilling Landgraf  <dougsland@redhat.com>

	remove flag skipLibvirt
	Currently, VDSM manage networks by it's own and uses libvirt to store the net definitions, not requiring any additional
	flag as skipLibvirt. This patch will remove completely skipLibvirt flag.

2012-06-17  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	fix can't get ssl opt in vdsm sos plugin
	when execute sosreport will get exception as below:

	Traceback (most recent call last):
	  File "/usr/lib/python2.7/site-packages/sos/sosreport.py",
	line 693, in sosreport
	    plug.setup()
	  File "/usr/lib/python2.7/site-packages/sos/plugins/vdsm.py",
	line 82, in setup
	    sslopt = ['', '-s '][config.getboolean('vars', 'ssl')]
	NoOptionError: No option 'ssl' in section: 'vars'
	  Running plugins. Please wait ...

	* import vdsm.config to plugin for using default value.
	* because can not import vdsm module when the plugin's name same with it.
	so add hack function for import vdsm python lib.

2012-06-16  Lee Yarwood  <lyarwood@redhat.com>

	Correct spmprotect.sh to log the sdUUID to spm-lock.log.
	saferelease.acquire() actually calls spmprotect.sh with the
	sdUUID and not the spUUID.

2012-06-16  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Make vdsm/guestIF.py PEP8 clean

2012-06-16  Adam Litke  <agl@us.ibm.com>

	rest: Change error to warning when binding not installed
	When the REST bindings are enabled but the vdsm-rest package is not installed,
	we report a message in the log file.  Downgrade the severity of the message to
	WARNING since vdsm can continue to run.

	tests: Fix installed version of run_tests.sh
	Commit 4399aa56b38415d27b037efef9d86b93e9a29f42 broke the installed copy of
	run_tests.sh because the location of some python files changed without updating
	PYTHON_PATH for the tests.  Set PYTHON_PATH using the new autoconf variable.

2012-06-13  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	Make vdsm/define.py PEP8 clean

2012-06-13  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Make before_vm_start.py PEP8 clean

	Make BindingXMLRPC.py PEP8 clean

	Make devicemapper.py PEP8 clean

2012-06-13  wenchao xia  <xiawenc@linux.vnet.ibm.com>

	Make vdsm/storage/hba.py PEP8 clean

2012-06-13  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Make volume.py for PEP8 clean

2012-06-13  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	Make vdsm/hooks.py PEP8 clean

2012-06-13  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Make SecureXMLRPCServer.py PEP8 clean

	Make before_vm_start.py PEP8 clean

2012-06-13  Adam Litke  <agl@us.ibm.com>

	API: Add formal definition for disk types
	Expose the enum representing disk types in the public API.  Along the way,
	correct some docstrings that suggest the diskType parameter is a string when it
	is an integer.

2012-06-13  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#830485 - Add netConfigDirty bit to getVdsCaps report

	Add bridge on top of VLAN if exists
	In VLAN case we should attach bridge only to the VLAN
	rather than to underlying NICs or bond

	Use proper MTU on bonding when add network

	Use already known iface in addNetwork

2012-06-13  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Raise a proper error message in vdsClient.py if no permission to read key files
	Currently, there is no permission check to read key files when ssl is
	enabled, which maybe cause puzzling error. For example, when a
	non-privileged user runs "vdsClient -s 0 getVdsCaps", there will be
	as following error:

	$ vdsClient -s 0 getVdsCaps
	Traceback (most recent call last):
	  File "/usr/share/vdsm/vdsClient.py", line 2275, in <module>
	    code, message = commands[command][0](commandArgs)

	  ...

	  File "/usr/lib/python2.7/site-packages/vdsm/SecureXMLRPCServer.py", line 98, in connect
	    cert_reqs=self.cert_reqs)
	  File "/usr/lib64/python2.7/ssl.py", line 381, in wrap_socket
	    ciphers=ciphers)
	  File "/usr/lib64/python2.7/ssl.py", line 141, in __init__
	    ciphers)
	SSLError: [Errno 185090050] _ssl.c:340: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib

	When ssl is enabled, this patch will first check the permission to read
	key files, and then raise a proper error message if there is no read access
	to them.

2012-06-12  Dan Kenigsberg  <danken@redhat.com>

	fix a sloppy rebase
	note to self: avoid late-evening hasty rebases

	vdsm-tool: look for .pyc modules, too.
	Systems (such as ovirt-node) may keep only .pyc (or .pyo) files on disk,
	and their vdsm-tool should work unharmed.

	rename vdsm_tool_expose: prefix is obvious from context

2012-06-12  Lei Li  <lilei@linux.vnet.ibm.com>

	Add passwd command to vdsm-tool
	Change since v3
	    - Automate this process by calling vdsm-tool
	      accordingly.

	Change since v2
	    - Processes problem fixs and report the error
	      for missing file suggested by Saggi.

	Change since v1
	    - Small fix suggested by Mark.

	Move and encapsulate set-saslpasswd from post
	section into vdsm-tool function.

	Replace username and file location for SASL by constants
	Change since v1:
	    - Define another constant P_VDSM_LIBVIRT_PASSWD for
	      the password file location suggested by Dan.

	As Dan suggested, replace the uername and password file
	location for SASL authenticating with constant SASL_USERNAME
	and P_VDSM_LIBVIRT_PASSWD.

2012-06-12  Federico Simoncelli  <fsimonce@redhat.com>

	Move the vdsm package to sitearch
	In this patch:
	* move the vdsm package to the sitearch directory
	* improve the build process for the betterPopen module

2012-06-12  Gal Hammer  <ghammer@redhat.com>

	BZ#737104 Disallow cross-vendor virtualization.
	Find vendor for all cpu models, including those based on another
	cpu module.

2012-06-12  Igor Lvovsky  <ilvovsky@redhat.com>

	Minor optimization for addNetwork

	Don't ignore bridgeless networks in ifaceUsers

	Minor optimization for delNetwork

2012-06-11  Igor Lvovsky  <ilvovsky@redhat.com>

	'options' translation in setupNetworks is not relevant

	Iterates over delete candidates networks only once

2012-06-08  Amador Pahim  <apahim@redhat.com>

	Changing origin of memShared stats to /sys/kernel/mm/ksm/pages_sharing
	Currently, _memShared() is calculated adding the shared pages value
	(3rd field) from /proc/<VM_PID>/statm file from all running VMs and
	converting to bytes through PAGE_SIZE value. The KSM module shipped
	in RHEL5 is a different version from the KSM module found on the latest
	upstream kernel versions. Newer features, such as exporting statistics
	on the /sys filesystem, that are implemented upstream are not in the
	version shipped in this release. Starting from kernel 2.6.10, statm
	shared field was changed, making _memShared() imprecise about KSM
	shared pages.
	This patch take advantage of /sys statistics of KSM in current
	releases to correct _memShared() results.

2012-06-07  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	pep8 fixes for storage/blockVolume.py
	An attempt to clean blockVolume.py from pep8 errors.
	v2: Added blockVolume.py to the pep8 whitelist.

2012-06-07  Douglas Schilling Landgraf  <dougsland@redhat.com>

	deployUtil: Do not use static home for root user
	Fix for systems which do not use /root as home for root user.

2012-06-07  y kaplan  <ykaplan@redhat.com>

	additional capsTests

2012-06-07  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Close and remove the temporary file before raising a exception

2012-06-07  Yair Zaslavsky  <yzaslavs@redhat.com>

	Change storageServer to handle numeric connection values
	engine is sending the connection information as a map of
	string keys and string values. VDSM tries to parse version,retrans and
	timeout as numbers, but due to the nature of the passed map
	it receives a string containing numerical values for these arguments, and
	fails.
	This patch performs cast to int of the numercial values, and in case of
	failure, throws an exception indicating which value raised the exception

2012-06-05  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix "unknown device" issue for balloon device
	The balloon device's 'alias' property should be updated in function
	_getUnderlyingBalloonDeviceInfo(), otherwise it will be recognized as a
	unknown device in _getUnderlyingUnknownDeviceInfo().

	For the 'model' property, it must be included in the balloon device
	parameter and libvirt will not change it, so we needn't get back from
	libvirt.

2012-06-05  Ryan Harper  <ryanh@us.ibm.com>

	PEP8 fixes for localFsSD
	% pep8 vdsm/storage/localFsSD.py
	vdsm/storage/localFsSD.py:16:80: E501 line too long (80 characters)
	vdsm/storage/localFsSD.py:49:80: E501 line too long (84 characters)
	vdsm/storage/localFsSD.py:102:1: E302 expected 2 blank lines, found 1

2012-06-04  Adam Litke  <agl@us.ibm.com>

	rest-api: Delete unneeded directory
	Hmm, I thought this orphaned directory had ben cleaned from the REST
	infrastructure patch series.  Let's squash it for good this time.

2012-06-04  Dan Kenigsberg  <danken@redhat.com>

	configuNetworks: no need to create set repeatedly
	Yes, this is a very minor performance improvement, but I still like it.

	configNetworks: reject bridge names starting w/ dash
	Evil users may attempt to create bridges with silly names that confuse
	initscripts. We should try to block them.

2012-06-01  Douglas Schilling Landgraf  <dougsland@redhat.com>

	restTests: use short release/version
	oVirt Engine cannot handle release/version with more then 2 digits.
	To workaround, we add a sed command into vdsm.spec to make version/release
	a short string in dsaversion.py. However, restTests is failing now because
	the version provided by dsaversion are not releated to the
	version string provided by REST API. This patch will add a workaround
	also in restTests.py

	BZ#822158: fail to join host to cluster
	Currently dsavesion.py will expand the macros @PACKAGE_VERSION@ and
	@PACKAGE_RELEASE@ to the full version/release of vdsm
	However, oVirt Engine cannot handle version/release with more
	then 3 digits, example: 4.9.6, only 4.9.

2012-06-01  Laszlo Hornyak  <lhornyak@redhat.com>

	CpuPinning for vdsClient
	Adds support for CpuPinning arguments in vdsClient.
	example:
	 cpuPinning="{0:'1'}"

	CpuPinning
	Adds support code to the "Vm.create()" (in backendcreateDomain) functionality in the
	method _DomXML.appendCpu. This code will create a <cputune> tag and
	append fill with <vcpupin> tags.

	http://libvirt.org/formatdomain.html#elementsCPUTuning
	http://www.ovirt.org/wiki/Features/Design/cpu-pinning

2012-05-31  Igor Lvovsky  <ilvovsky@redhat.com>

	Move balloon's 'model' parameter to specParams for BC case

2012-05-31  Eli Mesika  <emesika@redhat.com>

	vdsm: set ballooon device model properly
	The model of the balloon device is in the sepcParams map of the device.
	Changing code to search this attribute inside the spec params map rather
	than a free attribute of the device.

2012-05-30  Nigel Jones  <nigjones@redhat.com>

	BZ#824729 - Use doubler param in  _loadCorrectedTimeout
	Vm._loadCorrectedTimeout does not use the doubler parameter as defined in the
	function documentation which causes issues when a large number of migrations
	are used and a doubler value of 5 is expected to be used, instead of the
	hard-coded value of 20.

2012-05-30  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Fix multiple commands with same name in different vdsm-tool modules

2012-05-29  Cao,Bing Bu  <mars@linux.vnet.ibm.com>

	Fixing typo in all the python files in vdsm.git/vdsm.

2012-05-29  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#788640 - Remove subChainSizeCalc() and getSubChain(). Remove getAllChildrenList().
	getAllChildrenList() should be removed since it is intrinsically
	race prone.
	*subChain* functions were called only once.

	BZ#788640 - Template relink refactored.
	getAllChildrenList() should be removed since it is intrinsically
	race prone.

2012-05-28  Federico Simoncelli  <fsimonce@redhat.com>

	Add the BuildRequires needed by the tests

2012-05-28  Ryan Harper  <ryanh@us.ibm.com>

	storage: Move nfsSD.getFileUtils() to FileStorageDomain class
	If I create an iso-domain out of a LOCALFS storage type, when I
	call getIsoList on the storage pool which includes the iso-domain
	vdsm complains that LocalFS does not have getFileList method.

	The nfsSD class has the exact method for finding files that is
	needed.  By moving the implementation to the base class for both
	nfs and localfs types, they can share the implementation.

2012-05-27  Ryan Harper  <ryanh@us.ibm.com>

	tests: fix gluster storage exception test
	make check fails after gluster merge:

	FAIL: test_collisions (main.TestGlusterExceptions)
	----------------------------------------------------------------------
	Traceback (most recent call last):
	 File "/root/rpmbuild/BUILD/vdsm-4.9.6/tests/main.py", line 71, in
	  test_collisions
	   self.assertTrue(obj.code >= 5000)
	AssertionError: False is not true

	Looking at vdsm/gluster/exception.py line 29 of 350 we can
	see that the gluster defined range for exceptions is
	4100-4800.  Update the test case to match reserved range.

2012-05-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#821867: Do not append comments to config values
	In Fedora 17, libvirt is reading the entire line from configuration
	file, ignoring comments.

	Starting libvirt as:

		root       907  0.0  0.3 459996 13556 ?        Ssl  09:05   0:00
		/usr/sbin/libvirtd --listen # by vdsm

	This patch will mark the configuration section created by vdsm, example:

		## beginning of configuration section by vdsm-4.9.6
		listen_addr="0.0.0.0"
	        ## end of configuration section by vdsm-4.9.6

2012-05-27  Federico Simoncelli  <fsimonce@redhat.com>

	Configure libvirt to use sanlock

2012-05-25  Ryan Harper  <ryanh@us.ibm.com>

	PEP8 fixes for nfsSD
	pep8 complaints:

	vdsm/storage/nfsSD.py:16:80: E501 line too long (80 characters)
	vdsm/storage/nfsSD.py:33:1: E302 expected 2 blank lines, found 1
	vdsm/storage/nfsSD.py:54:80: E501 line too long (84 characters)
	vdsm/storage/nfsSD.py:97:80: E501 line too long (82 characters)
	vdsm/storage/nfsSD.py:111:37: E225 missing whitespace around operator
	vdsm/storage/nfsSD.py:114:28: E231 missing whitespace after ':'
	vdsm/storage/nfsSD.py:115:80: E501 line too long (87 characters)
	vdsm/storage/nfsSD.py:137:5: E303 too many blank lines (2)
	vdsm/storage/nfsSD.py:153:1: W391 blank line at end of file

2012-05-25  Adam Litke  <agl@us.ibm.com>

	StorageConnection: Fix error message

2012-05-25  Bala.FA  <barumuga@redhat.com>

	Added Gluster file system management support.
	Verbs added into vdsm are
	  glusterVolumesList,
	  glusterVolumeCreate,
	  glusterVolumeStart,
	  glusterVolumeStop,
	  glusterVolumeDelete,
	  glusterVolumeSet,
	  glusterVolumeBrickAdd,
	  glusterVolumeRebalanceStart,
	  glusterVolumeRebalanceStop,
	  glusterVolumeRebalanceStatus,
	  glusterVolumeReplaceBrickStart,
	  glusterVolumeReplaceBrickAbort,
	  glusterVolumeReplaceBrickPause,
	  glusterVolumeReplaceBrickStatus,
	  glusterVolumeReplaceBrickCommit,
	  glusterVolumeRemoveBrickStart,
	  glusterVolumeRemoveBrickStop,
	  glusterVolumeRemoveBrickStatus,
	  glusterVolumeRemoveBrickCommit,
	  glusterVolumeRemoveBrickForce,
	  glusterHostAdd,
	  glusterHostRemove,
	  glusterHostsList

	Added gluster cli support in supervdsm.
	Now supervdsm has following functions which enable gluster supported
	operations.
	   glusterVolumeInfo
	   glusterVolumeCreate
	   glusterVolumeStart
	   glusterVolumeStop
	   glusterVolumeDelete
	   glusterVolumeSet
	   glusterVolumeSetHelpXml
	   glusterVolumeReset
	   glusterVolumeAddBrick
	   glusterVolumeRebalanceStart
	   glusterVolumeRebalanceStop
	   glusterVolumeRebalanceStatus
	   glusterVolumeReplaceBrickStart
	   glusterVolumeReplaceBrickAbort
	   glusterVolumeReplaceBrickPause
	   glusterVolumeReplaceBrickStatus
	   glusterVolumeReplaceBrickCommit
	   glusterVolumeRemoveBrickStart
	   glusterVolumeRemoveBrickStop
	   glusterVolumeRemoveBrickStatus
	   glusterVolumeRemoveBrickCommit
	   glusterVolumeRemoveBrickForce
	   glusterPeerProbe
	   glusterPeerDetach
	   glusterPeerStatus

	These functions are exposed conditionally based on vdsm-gluster plugin
	availablity

2012-05-25  wenchao xia  <xiawenc@linux.vnet.ibm.com>

	small fix for import in test cases
	  when the test case import modules lies in vdsm, it should
	specify "from vdsm". Otherwise the import will fail if
	"site-packages/vdsm" was not set as PYTHONPATH after installation.
	This should not happen because the system have already recognized
	that "site-packages/vdsm" exist.

	add run_test_local.sh to .gitignore

2012-05-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#783383: engine.py - space cleaned up
	Serial is alot more picky about the last line it will display which is
	one less than visual console.

	Patch provided by:
	Joey Boggs <jboggs@redhat.com>

2012-05-24  Adam Litke  <agl@us.ibm.com>

	tests: Verify REST version information
	Add a new test to verify the vdsm version information that is returned by
	the REST API against the info in dsaversion.py

2012-05-23  Lei Li  <lilei@linux.vnet.ibm.com>

	Get network address for showNetwork
	Change since v2
	- Variables fixing suggested by Igor.

	Change since v1
	- Add the support for bridgeless network too.

	The current function showNetwork lack the ability to display
	the information of giving network address like ipaddr, netmask
	and gateway. So get these info to make it complete.

2012-05-23  Federico Simoncelli  <fsimonce@redhat.com>

	Set the syslog level to WARNING
	Currenly all the log messages using the syslog handler are displayed on
	the console. This patch raises the level to display only warnings and
	higer level messages.

2012-05-23  Shahar Havivi  <shaharh@redhat.com>

	promisc: bug fixes, change name to port-mirroring
	1. change promisc name to port-mirroring
	2. check if device exists in qdisc before deleting it

2012-05-22  Douglas Schilling Landgraf  <dougsland@redhat.com>

	bootstrapping: avoid usage of tmp folder
	This patch changes hard-coded tmp path elements, so the scripts
	may be used from a different location. Once invoked by the engine-core
	from an ad-hoc folder, the bootstrapping scripts should support
	working on that folder. This is mainly referring to imports,
	certificate files and log files.

2012-05-22  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#788640 - Check move image conditions from SD data.
	getAllChildrenList() should be removed since it is intrinsically
	race prone.
	Removing uses of getAllChilfrenList and validating conditions
	near the input instead of waste process.

	BZ#788640 - Refactor Pool.deleteImage()
	getAllChildrenList() should be removed since it is intrinsically
	race prone.

	BZ#788640 - Add [block|file]SD.getAllVolumes
	This function can be used to retrieve all the relevant image
	information based only on SD properties, without reading
	volumes metadata.
	In this way we circumvent the races product of working with many
	images simultaneously.
	In addition the number of storage accesses is greatly reduced.

2012-05-22  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Modify scripts in vdsm_cli/ for PEP8 compliance
	Edit vdsClient.py and vdscli.py.in in vdsm_cli/ for PEP8 compliance.
	And add these two files to the pep8 whiltelist in Makefile.am.

	Rebase to the latest master and clean new style problems introduced
	by the latest modification to vdsClient.py.

2012-05-22  Saggi Mizrahi  <smizrahi@redhat.com>

	Handle EINTR on close in betterPopen

	Support unicode args in betterPopen

	Tunnel errors from child to parent in betterPopen

2012-05-21  Nigel Jones  <nigjones@redhat.com>

	BZ#822782 - use mkstemp() on older systems
	Registering RHEL5 systems with iptables selected will fail as
	NamedTemporaryFile() in python 2.4 does not include the delete argument.

	We have to switch back to the mkstemp() function to work around this.

2012-05-21  Adam Litke  <agl@us.ibm.com>

	tests: Add functional tests
	Currently we only have unit tests that isolate individual components for
	testing.  It is also useful to write tests that verify a running instance of
	vdsm on a target machine.  This patch adds the infrastructure for such a test
	suite and provides some initial tests of the REST API.

	tests: Package up tests
	This patch packages up the test suite so that it can be installed on a target
	machine to test the installed vdsm.  The check-local target still runs the tests
	against the files in the source directory.  When installed, the tests will use
	the system installed version.  This paves the way for adding some functional
	tests that will run against the running vdsm instance.

2012-05-21  Oved Ourfali  <oourfali@redhat.com>

	vdsm: require updated libvirt for USB support
	This patch adds a requirement in an updated version of libvirt, to
	enable native USB support in VDSM.
	There is an important fix regarding that in this build, regarding the
	address allocation done by libvirt.

2012-05-21  Dan Kenigsberg  <danken@redhat.com>

	BZ#820525 lvm: ignore future additions to attr bits
	lvm2-2.02.95 has added few more bits to LV_ATTR_BITS, and that broke
	vdsm. In this patch we try to be more future-compatible, and ignore bits
	that are added on top of the ones we know about.

	This patch assumes that lvm2 would never delete existing bits, reorder
	them, or add new ones at the beginning. It is sent per the request of
	Alasdair Kergon of lvm2 fame
	https://bugzilla.redhat.com/show_bug.cgi?id=820525#c4

2012-05-20  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Move prepare-vmchannel to supervdsm

2012-05-20  Federico Simoncelli  <fsimonce@redhat.com>

	Set the correct gid for libvirt-spice

2012-05-20  Dan Kenigsberg  <danken@redhat.com>

	Report that Engine 3.1 is supported by this Vdsm.

2012-05-20  Douglas Schilling Landgraf  <dougsland@redhat.com>

	delNetwork: improve removeLibvirtNetwork call
	If oVirt Node is installed with autoinstall flags, example:

	storage_init=/dev/sda BOOTIF=eth0 adminpw=RHhwCLrQXB8zE

	The installation will be automatically and when the setup is
	complete, the vdsm-bridge will be created in libvirt database.

	Can be verified by: virsh net-list --all

	However, registering oVirt Node into oVirt Engine deployUtils.py
	will be triggered to remove the current bridge (skipping libvirt
	database) to add ovirtmgnt:

	deployUtils:
	----------------
	SCRIPT_NAME_DEL = "delNetwork"
	<snip>
	_logExec([os.path.join(vdsmDir, SCRIPT_NAME_DEL), mgtBridge, vlan,
	bonding, nic] + ['skipLibvirt=True'])

	From delNetwork, the current logic is to remove the bridge from libvirt
	database *only* if skipLibvirt=True.
	In that scenario, removeBridge() will be called to remove all bridge
	references but
	the libvirt database will be kept and next the NetInfo module
	call will find the bridge into libvirt database but no reference into
	the system, leading to crash.

	netinfo.py:
	----------------
	def get():
	<snip>
	nets = networks()
	for netname in nets.iterkeys():
	        d['networks'][netname] = {}
	        if nets[netname]['bridged']:
	            d['networks'][netname] = { 'ports': ports(netname),
	                    'stp': bridge_stp_state(netname),
	                    'addr': ifaces[netname]['addr'],
	                    'netmask': ifaces[netname]['netmask'],
	                    'gateway': routes.get(netname, '0.0.0.0'),
	                    'mtu': getMtu(netname), 'cfg': getIfaceCfg(netname)
	}

	On the other hand, if user just install manually the node and setup the
	network vdsm-breth0 won't be created into libvirt database
	automatically and skipLibvirt flag will fly correctly.

	Also verified by: virsh net-list --all

	To fix this report, we can call removeLibvirtNetwork() independently of
	skipLibvirt and fix the order of checking if the network still exists.

2012-05-20  Dan Kenigsberg  <danken@redhat.com>

	BZ#755937 configNet: do not call ifup twice for same bridge

2012-05-18  Adam Litke  <agl@us.ibm.com>

	tests: Clean up sample text in fileUtilTests.py
	I understand the value of humor and I am certain no harm was intended but I
	must take issue with some of the sample text being used in the fileUtilTests
	module.  I know the quotes were intended as jokes on their original
	programs, but I find them offensive, subjugative to women, and totally
	inappropriate for source code.  I know our project wishes to be welcoming to
	all developers and therefore I request that this text be removed in favor of
	something neutral such as Lorem ipsum.  Thank you for your understanding.

2012-05-18  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Change to use WatchedFileHandler instead of FileHandler in logger.conf
	We find that no new log message appears in log file after manually changing
	the vdsm log when vdsm is running. We have to restart vdsm to get logging
	work again. It could happen when people try to add some markers to pinpoint
	the related messages during toubleshooting. It's caused by the log file gets
	associated with a new inode after the manual change. To make logging survive
	the change, use WatchedFileHandler instead of FileHandler.

	In addition, WatchedFileHandler was provided specially for the external
	log rotate tools. It can notice that the log file change performed by
	logrotate, so we don't need to have the option 'copytruncate' in
	vdsm-logrotate.conf any more.

	Reported-by: Changming Bai <baichm@linux.vnet.ibm.com>

2012-05-17  Oved Ourfali  <oourfali@redhat.com>

	vdsm: using model and index for controller address
	This patch uses the index and model of controllers when saving the alias
	and address fields. In some cases, like the USB controllers, there is
	more than one controller, and the address is important as different USB
	controllers should have different addresses. So, using the
	device+index+model is a unique ID for the USB controllers.

2012-05-17  Saggi Mizrahi  <smizrahi@redhat.com>

	Reraise errors from underlying c code in betterPopen

2012-05-17  Ryan Harper  <ryanh@us.ibm.com>

	tests: add netinfo test for speed() function
	Test that speed() returns either 0 or a valid value.
	Currently using ethtool headers to provide a list of
	valid speeds (10, 100, 1000, 2500, 10000).

	v2->v3
	    - moved constant to top and applied caps
	    - switched to python2.6 syntax for set()
	      initialization
	v1->v2
	    -switch from list to set

	tests: add netinfo test for invalid nic name
	Test that we return 0 for invalid nics

	v1->v2
	    - switch to assertEqual() instead of assertTrue()

	netinfo: Don't attempt to read a virtio nic speed
	When running VDSM within a guest, when netinfo attempts
	to read the speed of the nic it throws this exception:

	ERROR:root:cannot read eth0 speed
	Traceback (most recent call last):
	    File "/usr/lib/python2.7/site-packages/vdsm/netinfo.py", line 113, in speed
	    s = int(file('/sys/class/net/%s/speed' % dev).read())

	We can detect that the device is a virtio device by reading
	the sysfs device link target and skipping if it's virtio.

	netinfo: simplify speed() function
	Various network devices cannot report on speed, these include
	bonds, bridges, vlans, and down/disabled devices.

	Simplfy the code by only reading speed value from devices that support
	it and returning 0 otherwise.

	v1->v2
	    - Cover the case where we race with device being disabled/downed
	      by checking the speed reported

2012-05-17  Eduardo Warszawski  <ewarszaw@redhat.com>

	Revert "Make sure that internally we always use pvs from /dev/mapper/"
	This reverts commit aa282ef46394be52480597ab6f15291f6cc4b369.

	This patch breaks the direct lun feature and is not necesary
	because the lvm  bug was fixed.

2012-05-17  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	correct usage help string in vdsClient
	Program options must be placed before other parameters. If server
	address goes first, getopt function will treat all options as
	parameters and the program will miss those options.

2012-05-16  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	sort config.py.in alphabetically and cleanup

2012-05-16  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#797526 Lazy evaluation for Drive.blockDev

2012-05-16  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	remove /rhel/data-center after vdsm uninstalled

	move default value to config.py for vdsm-upgrade

2012-05-16  Adam Litke  <agl@us.ibm.com>

	rest-api: Fix software version parsing
	Fix the parsing of the software_version field of getVdsCapabilities.
	 - Properly handle the version whether it is x.y.z or just x.y
	 - Due to git tags, the data type for revision is a string, not short int

2012-05-16  Hans de Goede  <hdegoede@redhat.com>

	Add support for redir devices
	With this patch it is possible to create vms setup for usb redirection with
	vdsm, ie:

	vdsClient 0 create /dev/null \
	    vmId=00000001-0002-0003-0004-000000000006 vmName=F14-x86_64 memSize=512 \
	    macAddr=52:54:00:7a:b4:7e nicModel=virtio bridge=test display=qxl \
	    spiceDisableTicketing=1 \
	    devices='{type:disk,device:disk,path:/home/virt-images/f14-i386.qcow2.img,propagateErrors:off,iface:ide,index:0,readonly:False,format:cow}' \
	    devices='{type:video,device:qxl,specParams:{vram:65536},address:{type:pci,domain:0x0000,bus:0x00,slot:0x02,function:0x0}}' \
	    devices='{type:controller,device:virtio-serial,address:{type:pci,domain:0x0000,bus:0x00,slot:0x03,function:0x0}}' \
	    devices='{type:controller,device:usb,model:ich9-ehci1,address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x7}}' \
	    devices='{type:controller,device:usb,model:ich9-uhci1,master:{startport:0},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x0,multifunction:on}}' \
	    devices='{type:controller,device:usb,model:ich9-uhci2,master:{startport:2},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x1}}' \
	    devices='{type:controller,device:usb,model:ich9-uhci3,master:{startport:4},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x2}}' \
	    devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:1}}' \
	    devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:2}}' \
	    devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:3}}' \

	libvirtvm.py: Extend controller support to allow configuring USB controllers
	This allows creating a vm with a USB-2.0 (EHCI) controller with USB-1.1
	companion controllers (UHCI), ie:

	vdsClient 0 create /dev/null \
	    vmId=00000001-0002-0003-0004-000000000006 vmName=F14-x86_64 memSize=512 \
	    macAddr=52:54:00:7a:b4:7e nicModel=virtio bridge=test display=qxl \
	    spiceDisableTicketing=1 \
	    devices='{type:disk,device:disk,path:/home/virt-images/f14-i386.qcow2.img,propagateErrors:off,iface:ide,index:0,readonly:False,format:cow}' \
	    devices='{type:video,device:qxl,specParams:{vram:65536},address:{type:pci,domain:0x0000,bus:0x00,slot:0x02,function:0x0}}' \
	    devices='{type:controller,device:virtio-serial,address:{type:pci,domain:0x0000,bus:0x00,slot:0x03,function:0x0}}' \
	    devices='{type:controller,device:usb,model:ich9-ehci1,address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x7}}' \
	    devices='{type:controller,device:usb,model:ich9-uhci1,master:{startport:0},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x0,multifunction:on}}' \
	    devices='{type:controller,device:usb,model:ich9-uhci2,master:{startport:2},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x1}}' \
	    devices='{type:controller,device:usb,model:ich9-uhci3,master:{startport:4},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x2}}'

	libvirtvm.py: Refactor device xml generation
	To remove a lot of code duplication and making adding new device types
	easier.

2012-05-16  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#806625: validate vdsmcert against cacert
	There is a bug situation where the administrator of oVirt Node
	executes the Engine registration procedure, and the host doesn't
	get 'approved' (note: at this point cacert.pem from Engine already
	replaced the /etc/pki/vdsm/certs/cacert.pem) causing a failure in
	the next reboot on libvirt daemon startup. This happens because
	cacert.pem certificate file cannot be validated with vdsmcert.pem.

	Since commit 8aa19150e75af025ebd77392b39268d9ab4f98d3 we execute a
	backup of certs before replace the cacert.pem and using the backup
	file we will restore the correct cacert.pem in configure_libvirt() flow
	fixing the bug.

2012-05-16  Dan Kenigsberg  <danken@redhat.com>

	caps: if cpuCompare failes, return incompat host

2012-05-16  Timothy Asir  <tjeyasin@redhat.com>

	Added gluster support into vds bootstrap.

2012-05-16  Douglas Schilling Landgraf  <dougsland@redhat.com>

	.gitignore: dsaversion.py
	Add vdsm/dsaversion.py to .gitignore

2012-05-15  Lei Li  <lilei@linux.vnet.ibm.com>

	Pass iface without nic interface
	When add a network without nic, unexpected error showed
	as "IndexError: tuple index out of range".

	vdsm should pass iface with nic as None to meet the
	topology in-host only. Also to keep consistence to
	other interface that the default value of iface is
	None.

2012-05-15  Douglas Schilling Landgraf  <dougsland@redhat.com>

	configure.ac: add python-devel requirement
	vdsm/betterPopen: requires python-devel package.

	dsaversion: renamed to dsaversion.in
	Use @PACKAGE_VERSION@ to define software_version
	Use @PACKAGE_RELEASE@ to define software_revision

2012-05-14  Adam Litke  <agl@us.ibm.com>

	rest-api: Add the basic server infrastructure
	Add a new API binding for a REST API based on CherryPy and the Cheetah
	templating framework.  This patch introduces the basic infrastructure for the
	API as follows:

	vdsm/clientIF.py
	 * Initialize the REST API along with the XMLRPC binding.
	 * The rest server is started in its own thread.  It will create more threads as
	   needed.

	vdsm/rest/BindingREST.py
	 * REST API initialization

	vdsm/rest/Controller.py
	 * Main API logic controller
	 * In this patch we introduce utilities and structure
	 * Render the Root resource in the API

	vdsm/rest/Dispatcher.py
	 * A custom cherrypy URI dispatcher that handles URIs with nested identifiers:
	    http://<server>:<port>/api/storagedomains/<sdUUID>/images/<imgUUID>

	vdsm/rest/templates/api.xsd
	vdsm/rest/templates/rsdl.xml
	 * Define the rest API schema and valid URIs
	 * This API is compatible with ovirt-engine-sdk and ovirt-engine-cli

	vdsm/rest/templates/response.json.x
	vdsm/rest/templates/response.xml.x
	vdsm/rest/templates/root.json.x
	vdsm/rest/templates/root.xml.x
	 * Cheetah template files to render responses in json and xml format
	 * The API can accept requests in either json or xml

	API Implemented:
	----------------
	/api : The Root of the API
	 * Provides vdsm version information
	 * Lists the available sub-collections
	 Actions: None

2012-05-14  Dan Kenigsberg  <danken@redhat.com>

	remove stale libvirtNet before creating a new net with same name
	Vdsm is the owner of vdsm-bla networks. If for some reasons (such as
	vdsm being kill just after defining a libvirt network) we find a stale
	definition of the network, Vdsm should override it.

	v2: check if net is active/persistent before destroy/undefine to avoid
	    silly libvirt exceptions.

2012-05-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#788640 - Don't waste SD produces in validateSdUUID.

2012-05-13  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Configure vdsm to use syslog
	By default, rsyslogd doesn't listening on UDP port 514. So change to use
	the unix domain socket '/dev/log' instead of udp socket. Then we
	we needn't modify rsyslog.conf to make rsyslogd accpet message from udp
	socket.

	And rsyslogd puts a timestamp before the message automatically, so
	remove timestamp from the format 'sysform'

2012-05-13  Xu He Jie  <xuhj@linux.vnet.ibm.com>

	Move the creation of /data/updates out of init script
	Move the creation of /data/updates out of init script,
	make init script more simple.

	* move the creation of /data/updates to vdsm_reg/vdsm-reg-setup.in
	  vdsm-reg-setup can create '/data/updates' after host register to engine.

	* remove /data/updates after vdsm rpm uninstalled

2012-05-11  Douglas Schilling Landgraf  <dougsland@redhat.com>

	caps: fix osversion() report
	Replace 'if' statement with 'elif'. Otherwise, will report wrongly
	oVirt Node version/release.

2012-05-11  Adam Litke  <agl@us.ibm.com>

	Split xmlrpc server into its own rpm
	We would like to move towards a model where API bindings are optional.  This
	means that we can package each one separately any any combination of bindings
	can be enabled/disabled by editing the vdsm configuration file.  This patch
	splits the XMLRPC binding into a new package (vdsm-xmlrpc) and modifies the
	binding loading logic in clientIF to check the configuration file and handle
	import errors that can result if a user enables the binding but does not install
	the rpm.

	Make the xmlrpc binding run in a thread
	Currently, the xmlrpc binding runs in the vdsmd main thread.  To prepare for
	making xmlrpc optional, change the binding loading logic so that all bindings
	run in their own threads.  The vdsmd main thread will sleep until shutdown and
	then join() with any active binding threads before exiting.

2012-05-11  Wenyi Gao  <wenyi@linux.vnet.ibm.com>

	Fix usage message for vdsm-tool
	Fixed the following ussage message:
	print "Usage: %s [options] <action> <module>\n" % sys.argv[0]
	to:
	print "Usage: %s [options] <action> [arguments]\n" % sys.argv[0]

	Also fixed some pep8 problems

2012-05-11  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove GC lock hack, it's not needed when using betterPopen

	Implement Popen without forking back to python
	Python's implementation of Popen forks back to python before execing.
	Forking a python proc is a very complex and volatile process and we
	already have hacks to try and avoid some of the bugs involved with it.

	This is a simpler method of execing that doesn't go back to python after
	forking. This allows for faster safer exec.

	Should solve bugs involving with GIL\GC\Logging deadlocks related to the
	python implementation.

	This also makes means that python-devel and gcc are needed for testing
	as the extension needs to be compiled to be tested.

2012-05-10  Saggi Mizrahi  <smizrahi@redhat.com>

	Add netmaskconversions to dist
	the check phase fails when creating an RPM because this file is not
	distributed with the tar ball.

2012-05-10  Shahar Havivi  <shaharh@redhat.com>

	Create payload directory if not exists

2012-05-10  huntxu  <mhuntxu@gmail.com>

	replace ifconfig cmdline with ethtool and sysfs in netinfo
	Since ifconfig output format has been changed recently(see
	https://bugzilla.redhat.com/show_bug.cgi?id=784314), instead of parsing
	ifconfig's output, use ethtool module to get ip address and netmask
	of an interface, and get hardware address via
	/sys/class/net/INTERFACE/address.

	This makes vdsm could run normally on some bleeding edge distributions
	such as Archlinux or F17 on which new version ifconfig has already been
	deployed.

2012-05-10  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Clean the RHEVM parser help in deployUtil.py.in

2012-05-09  Zhou Zheng Sheng  <zhshzhou@linux.vnet.ibm.com>

	Let LC_ALL=C when running tests
	The function validateDDBytes() in vdsm/storage/misc.py needs C locale.
	When vdsm runs /bin/dd, the stderr output of /bin/dd is inspected by
	validateDDBytes(). Then the last line of the output is splitted by space
	and the 0th word is the total count of bytes transferred. In a locale
	like zh_CN.utf8(Chinese), the stderr output message is different from
	that in C locale. Although dd runs successfully, validateDDBytes() can
	not take out the count of the bytes transferred, and an exception
	will be raised.

	When vdsmd is started by vdsmd.init, LC_ALL is set to C to provide a
	compatible locale for vdsmd. However, when running tests, the locale is
	not set to C. So "make check" will fail in a zh_CN.utf8 locale in all
	tests related to dd, and this causes "autobuild.sh" and "make rpm" fail
	as well. So, set LC_ALL=C will provide a standard locale for running the
	tests.

2012-05-09  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Add unit tests to lsblk

2012-05-09  Federico Simoncelli  <fsimonce@redhat.com>

	Revert "Avoid to activate parent volume on cloning"
	This reverts commit 8f5edaea39141cc6174dffce33108596a4643d1e.

	Many volumes created with a previous VDSM version have a mismatch
	in the size advertised by the metadata and the virtual size defined
	in the the qcow2 header. At the moment the only solution is reverting
	to the hold behavior and propagate the mismatch (BZ#811880).

2012-05-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#815825: backup certs during registration
	During the registration of oVirt Engine in a oVirt Node, instead of
	remove cacert.pem and downloading the new cacert from Engine, is
	important to backup the current certs before going further.

	Besides, there is also a bug situation where the administrator of oVirt
	Node executes the Engine registration procedure, and the host doesn't
	get 'approved' (note: at this point cacert.pem from Engine already replaced
	the /etc/pki/vdsm/certs/cacert.pem) causing a failure in the next reboot
	on libvirt daemon startup. This happens because cacert.pem certificate
	file cannot be validated with vdsmcert.pem, so if we have a backup, we
	can easily revert it.

	For record, steps to reproduce the bug:

	- Install oVirt Node
	- Setup Network
	- Register the Node to oVirt Engine (do not approve)
	- Reboot. (libvirt will fail to start)

	Finally, there's also available a patch to libvirt.upstart
	(http://gerrit.ovirt.org/#change,3885) that adds a validation feature
	during the start of libvirt daemon, in order to check cacert.pem and
	vdsmcert.pem. In case of
	failure, upstart will look for the correct CA (backup file) in
	/etc/pki/vdsm/certs and replace the
	current cacert.pem. This approach can avoid the above bug description.

2012-05-08  Nigel Jones  <nigjones@redhat.com>

	BZ#809012 - Calculate metadata offset from logical block size
	Changes to ensure that V1 storage domain metadata area is not made dirty due to
	7e79153705891a91a06eb31cd642fb209d10ff86.

2012-05-07  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#752470 Related: Out of process getReadDelay
	To avoid being blocked by a thread in a D state we should determine the
	read delay using oop also for block devices.

2012-05-07  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Move get-vm-pid to superVdsm

2012-05-07  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	Clean the RHEVM log message in deployUtil.py.in

	add NOSE_EXCLUDE to avoid running the test twice
	when build vdsm by autobuild.sh, it runs the test twice for the same build.
	It takes a long time, add NOSE_EXCLUDE to avoid this.
	To skip test step, you can run "NOSE_EXCLUDE=.* ./autobuild.sh".

2012-05-07  Shahar Havivi  <shaharh@redhat.com>

	vm payload: add file injection to vm
	this patch adds new parameter to create verb vmPayload,
	user can send file content and have them in the vm in floppy (.vmf) or
	cdrom (.iso) format.

	vmPayload is in specParams
	'vmPayload': {'file': {'filename': 'content' }}
	for now we are only supporting file type in cdrom or floppy,
	we intend to add more formats such as network url which vdsm will
	download the file and place it in cdrom or floppy.

2012-05-07  Hans de Goede  <hdegoede@redhat.com>

	libvirtvm.py: Remove unnecessary constructor overriding

	vdsClient.py: Allow specifying nested dicts for devices when creating a vm
	With this patch one can do things like:
	vdsClient 0 create /dev/null \
	    vmId=00000001-0002-0003-0004-000000000006 vmName=F14-x86_64 memSize=512 \
	    macAddr=52:54:00:7a:b4:7e nicModel=virtio bridge=test display=qxl \
	    devices='{type:disk,device:disk,path:/home/virt-images/f14-i386.qcow2.img,propagateErrors:off,iface:ide,index:0,readonly:False,format:cow}' \
	    devices='{type:video,device:qxl,specParams:{vram:65536}}'

	Which allows testing vdsm with the new devices create params syntax from the
	cmdline with vdsClient.

	vm.py: Fix legacy disk support
	Creating vms with legacy disk parameters, ie hda=/path/disk.img would fail
	with a backtrace in clientIF:prepareVolumePath() with a missing attribute
	error for drive['device'], while at it also setup type properly (not strictly
	necessary, since getConfDrives will fill this in otherwise).

2012-05-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.init: rewritten listen_addr
	Default listen_addr should be the complete IPv4 address.

	Also resolves the following error:

	virNetSocketNewListenTCP:209: Unable to resolve address '0' service '16514': Address family for hostname not supported

	To reproduce the bug:

	1. Install oVirt Node.
	2. Register to first oVirt Node and do not approve it.
	3. Register to second oVirt Node and do not approve it.
	4. Reboot oVirt Node.

2012-05-06  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#807687 - Do not return new references to an invalid object.

2012-05-06  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix loop device handling for mount command
	loop devices sometimes appear as themselves and sometimes appear as the
	backing file. This canonicalizes the behaviour to always show the backing
	file.

2012-05-06  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#807687 - Adding log for debugging purposes.
	Note: We can't change the API returning an Error.

2012-05-06  Saggi Mizrahi  <smizrahi@redhat.com>

	Make ClusterLock stateless
	With it being stateless we no longer have issues with new domain objects
	not having to correct state

2012-05-06  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#812793 - Fix addNetwork to be able attach network to interface

2012-05-06  lvroyce  <lvroyce@linux.vnet.ibm.com>

	fix vdsm_reg makefile error
	register-to-engine was added to cleanup files,
	and will cause error when autobuild

2012-05-04  Bala.FA  <barumuga@redhat.com>

	Added register-to-engine command line tool.
	This tool accepts oVirt Engine name and register current node to the
	engine.

2012-05-03  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#812793 - Fix delNetwork to be able delete network interface

2012-05-03  y kaplan  <ykaplan@redhat.com>

	Add caps test

2012-05-02  Lei Li  <lilei@linux.vnet.ibm.com>

	Avoid skipping libvirt when add bridgeless network
	Change since V2
	    - Adjust subject and comment to make it more reasonable.

	Change since V1
	    - Move this validation into _addNetworkValidation based
	      on Dan's suggestion.

	The bridgeless network can not be added when the options contain
	skip libvirt. When I dig into the code, seems this type of network
	is supported by libvirt, but it will not do its real job if skip
	libvirt based on current logical in addNetwork. So set limitation
	to avoid such situation.

2012-05-02  y kaplan  <ykaplan@redhat.com>

	Change mathing to matching (typo)

2012-05-01  Shahar Havivi  <shaharh@redhat.com>

	mount: use sudo only of not root user

2012-05-01  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove support for string command
	Without the shell arg it's useless anyway as the command will fail
	anyway.

	Remove infile and outfile from execCmd, no one uses them
	All respectable tools that have a reason to write to disk have this
	option built in. This is why we never used or tested this feature.

2012-04-30  Adam Litke  <agl@us.ibm.com>

	doc: Add informational message for skipping tests

2012-04-30  wenchao xia  <xiawenc@linux.vnet.ibm.com>

	workaround pipe and thread issue in python
	  Calling subprocess.Popen and threading.Thread at the same
	time is not safe in Python v2.7.2. Running test case for
	several release, results are:
	  Fedora16: v3.2.2 and v2.7.3 pass, v2.7.2 fail.
	  Redhat6.2: v2.6.6 pass.
	  This patch modify the spec file to avoid the fails.
	  bugzilla:
	  https://bugzilla.redhat.com/show_bug.cgi?id=814492
	  cpython issue tracker solving the problem:
	  http://bugs.python.org/issue13156

2012-04-30  Federico Simoncelli  <fsimonce@redhat.com>

	Add vdsm_reg/engine.py to gitignore

2012-04-29  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix pep8 for alignmentScan.py

2012-04-29  Dan Kenigsberg  <danken@redhat.com>

	alignmentScanTests: use real-world sized image
	alignmentScanTests used a 1MiB image for its tests, which is not really
	similar to what happens in the real world. This revealed a bug in
	libguestfs-1.16.18-2.el6
	https://bugzilla.redhat.com/show_bug.cgi?id=815149

	Let us test the use case that we are interested in.

2012-04-29  Federico Simoncelli  <fsimonce@redhat.com>

	Use the correct size for createSparseFile in fileVolume

2012-04-26  Bala.FA  <barumuga@redhat.com>

	Added a forgotten @logDecorator

2012-04-25  y kaplan  <ykaplan@redhat.com>

	add for in hackVdsmModule  - taken from Adam Litke

2012-04-25  wenchao xia  <xiawenc@linux.vnet.ibm.com>

	Skip parted-utils test if pyparted is not installed.
	  At building time, if pyparted is not installed, test will
	fail breaking the procedure. This patch skip it in such
	condition.

2012-04-25  Joey Boggs  <jboggs@redhat.com>

	BZ#814413 - switch engine plugin to use system() instead of os.system to prevent screen alterations

2012-04-24  Federico Simoncelli  <fsimonce@redhat.com>

	The method readMultipathConf should return a list
	For backward compatibility with the previous implementation (using sudo
	and execCmd, see commit f869064) the readMultipathConf method should
	return a list of lines.

2012-04-24  Oved Ourfali  <oourfali@redhat.com>

	spec: remove the conflicts of ovirt-engine from vds_bootstrap section
	This commit removes the conflicts of ovirt-engine < 3.1 from the
	vds_bootstrap section in the spec file, as it is no longer needed.

	vds_bootstrap: changing the default to install virt to true
	Preivous patch added an option "-v" to enable virt installation.
	This made issues in backward compatability, as old engine couldn't
	install new client. Passing now -V to disable virt installation.

	vds_bootstrap: allowing the options n and u as paratemers
	Previous patch removed dead code, thus removing the options "n" and "u"
	from the vds_bootstrap, and it broke backward compatibility (old engine
	couldn't install new clients).

2012-04-24  Ryan Harper  <ryanh@us.ibm.com>

	vdsm/storage/misc.py: ensure uuid input is str or unicode for regex
	When abusing the createVolume() method by passing numeric values
	as UUIDs, the validation regex needs a string to process and
	throws an exception when it isn't:

	Traceback (most recent call last):
	  File "/usr/share/vdsm/storage/task.py", line 861, in _run
	    return fn(*args, **kargs)
	  File "/usr/share/vdsm/logUtils.py", line 38, in wrapper
	    res = f(*args, **kwargs)
	  File "/usr/share/vdsm/storage/hsm.py", line 1206, in createVolume
	    misc.validateUUID(imgUUID, 'imgUUID')
	  File "/usr/share/vdsm/storage/misc.py", line 525, in validateUUID
	    m = UUID_REGEX.match(uuid)
	TypeError: expected string or buffer

	And on the client side, I get a less than useful error:

	Traceback (most recent call last):
	  File "create_a_vm.py", line 98, in <module>
	    BLANK_UUID, BLANK_UUID))
	  File "create_a_vm.py", line 19, in vdsOK
	    raise Exception(str(d))
	Exception: {'status': {'message': "Error creating a new volume: ('sdUUID=99d43d50-5946-4451-8e12-9d85cb426e19, spUUID=150e55ab-e68c-411c-af30-587071905216, imgUUID=4194304, size=4, volFormat=2, preallocate=rootfs, diskType=7bdf7b4b-4909-41ce-a9c0-9bc06ba045fe, volUUID=00000000-0000-0000-0000-000000000000, desc=00000000-0000-0000-0000-000000000000, srcImgUUID=00000000-0000-0000-0000-000000000000, srcVolUUID=00000000-0000-0000-0000-000000000000',)", 'code': 205}}

	We can test that the input is str or unicode before attempting to regex
	if it's something else, raise an exception.

	Now, I get:

	Traceback (most recent call last):
	  File "create_a_vm.py", line 98, in <module>
	    BLANK_UUID, BLANK_UUID))
	  File "create_a_vm.py", line 19, in vdsOK
	    raise Exception(str(d))
	Exception: {'status': {'message': "Invalid parameter: 'imgUUID=4194304'", 'code': 1000}}

	Which explains to me my error quite well.

	V2 -> V3:
	    - change check to use isinstance(s, basestring) per Dan Kenigsberg
	V1 -> V2:
	    - Fix case where we pass in a string, but it's not a UUID as
	      Reported by Dan Kenigsberg <danken@redhat.com>

2012-04-24  Bala.FA  <barumuga@redhat.com>

	Added getMdDeviceUuidMap function in supervdsm.
	getMdDeviceUuidMap function returns all md/uuid map.  Sample return value
	is,

	{'/dev/md0': 'e35641fc:621a9fa8:123456e4:a1bc6b5f',
	 '/dev/md1': '95451662:3945780b:123456a7:f3ad55c5'}

2012-04-24  Ryan Harper  <ryanh@us.ibm.com>

	tests/misc: add utf-8 string test to validateUUID
	As requested, add a test case with a Chinese UTF-8 string.

	tests:miscTests add integer input test for validateUUID

2012-04-23  Dan Kenigsberg  <danken@redhat.com>

	API.py: fix pep8 noise
	commit a35c862341a4fa05e6 did not manage to completely make API.py
	conform to pep8, at least not with python-pep8-0.6.0-3.fc15.noarch

2012-04-23  Bala.FA  <barumuga@redhat.com>

	Added getDevicePartedInfo function in supervdsm.
	This function accepts device path and returns its information as
	dictionary.  Sample return value is,

	{'model': 'Virtio Block Device',
	 'sectorSize': 512L,
	 'type': 'gpt',
	 'freeSpaceRegions': [(34L, 2047L, 2014L, 1031168L),
	                      (16775168L, 16777182L, 2015L, 1031680L)],
	 'partitions': {'/dev/vda1': (['bios_grub'], 2048L, 4095L),
	                '/dev/vda2': (['boot'], 4096L, 16285695L),
	                '/dev/vda3': ([], 16285696L, 16775167L)}}

2012-04-23  Lei Li  <lilei@linux.vnet.ibm.com>

	Make API.py conform to pep8
	v1->v2
	    - Modify all the place to follow the rule that break around
	      a binary operator after the operator, and other small errors
	      suggested by Saggi.

2012-04-23  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#773210 - Avoid infinite loop when delete volume failed during the merge.
	This loop occurs at the end of the merge operation and if we failed
	to remove remnants at this point it's still OK.

2012-04-23  Lei Li  <lilei@linux.vnet.ibm.com>

	Improve usage for bridgeless network
	The usage of add/del network is still for bridge only network,
	It is useless and may cause confusion. So change it to keep
	consistence with current network.

2012-04-23  y kaplan  <ykaplan@redhat.com>

	add 2 info tests to hooks tests

2012-04-23  shu ming  <shuming@linux.vnet.ibm.com>

	Make blkid.py pep8 clean

2012-04-23  Federico Simoncelli  <fsimonce@redhat.com>

	Add volumeExists to the StorageDomain class

	Don't use qemu-img to create sparse file volumes
	It's not required to run volume.createVolume when we are creating a
	sparse file volume (see createSparseFile few lines above).

2012-04-23  shu ming  <shuming@linux.vnet.ibm.com>

	Clean the RHEVM log message in vdsm-reg-setup-in

2012-04-23  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#813423: Adding ENGINENAME macro
	To help backward compatibility, let's create ENGINENAME macro which
	will contain the engine name.

2012-04-23  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove (almost all) class Volume virtual (!) methods.

2012-04-23  ShaoHe Feng  <shaohef@linux.vnet.ibm.com>

	change the style of supervdsm.py code in order to comply with PEP 8

2012-04-21  Saša Tomić  <tomic80@gmail.com>

	VDSM interface for the virt-alignment-scan tool from libguestfs
	The libguestfs-tools rpm has an application called virt-alignment-scan.
	http://libguestfs.org/virt-alignment-scan.1.html
	Virt-alignment-scan scans the partition alignment in guest VMs and reports
	if a partition in guest VM is not aligned.

	This is a vdsm interface to virt-alignment-scan. It is now possible
	to scan the alignment of VM guest partitions directly from vdsm.
	In the future, it should be possible to expose this functionality
	through vdsClient.

2012-04-19  Saggi Mizrahi  <smizrahi@redhat.com>

	Skip test if sudo is not configured

2012-04-19  Yeela Kaplan  <ykaplan@redhat.com>

	Add hooksTests.

2012-04-19  Douglas Schilling Landgraf  <dougsland@redhat.com>

	getAuthkeysFile: try to download multiple ssh keys
	Try to download multiple ssh keys defined in
	REMOTE_SSH_KEY_FILE. Specially helping backward compatibility.

	delNetwork(): Add skipLibvirt validation
	Do not try to delete an interface from libvirt which was not added.
	Introduced by: 1a24550b968ca48bb808e263368743f4c91adde4

2012-04-19  Shahar Havivi  <shaharh@redhat.com>

	setVmTicket: add before and after hooks
	setVmTicket gets additional params dictionary,
	currently engine will send user-name and user-id, for
	the benefit of the setVmTicket hooks scripts.

2012-04-18  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove sudo parameter from watchCmd. No one uses it and no one ever will

	Make supervdsmServer.py conform to pep8

	Remove SUDO from readblockSUDO() no one uses it and no one should

	Read multipath.conf with supervdsm instead of SUDO

2012-04-18  Joey Boggs  <jboggs@redhat.com>

	fix console colors for engine plugin
	rhbz#813897

2012-04-18  Saggi Mizrahi  <smizrahi@redhat.com>

	Make logskip more pylint friendly

2012-04-18  lvroyce  <lvroyce@linux.vnet.ibm.com>

	fix check None sdUUID for getVmsList and getVmsInfo
	BZ#807719:getVmsList get broken when running without sdUUID
	when sdUUID given, validate domain uuid,
	when sdUUID is None, enumerate Vms from master domain of the pool
	v3>v2,
	change according to Ayal's comments,clear validate backup domain

2012-04-18  Federico Simoncelli  <fsimonce@redhat.com>

	Move libvirtconnection to the python sitelib

	Adding the qemuImg command line

2012-04-18  Douglas Schilling Landgraf  <dougsland@redhat.com>

	engine.py: improve password text
	Replace 'Set oVirt Engine Admin Password'. This text is confusing
	because in fact this option has nothing to do with the oVirt Engine
	admin password and in fact sets the root password for the node.

2012-04-17  Adam Litke  <agl@us.ibm.com>

	storageServer: Fix isConnected for LocalDirectoryConnections
	The current isConnected method for LocalDirectoryConnection objects checks if
	the source path exists.  It should instead check for the presence of the symlink
	in '/rhev/datacenter/mnt/.

	BindingXMLRPC: Check irs init status
	During vdsm initialization, it is possible that IRS will fail to initialize and
	will instead be None.  During API refactoring we added a TODO to the code to
	re-enable checking for this case.  In this patch, we check if cif.irs is None
	and if so, activate a default storage error message for all storage methods.

2012-04-17  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Add build time checks for required python modules
	With these checks configure will fail if required python modules can't
	be imported. The benefit is that it will fail faster, making it easier
	to notice dependency changes for packagers.

	The ax_python_module comes (unmodified) from the GNU autoconf archive.

2012-04-17  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove writefileSUDO() no one uses it

	Add persistentDictTests

2012-04-16  Saggi Mizrahi  <smizrahi@redhat.com>

	Add missing \ to Makefile.am

2012-04-16  Ryan Harper  <ryanh@us.ibm.com>

	pylint:vdsm/netinfo.py rename local vars to avoid overload with global func.
	************* Module netinfo
	E:377:NetInfo.getNicsVlanAndBondingForNetwork: Function 'nics' has no 'append' member

	The global function nics() is confusion pylint with the local 'nics' list;
	remedy this by renaming the local variables.

	V2->V3
	    - change the local vars instead of global func
	V1->V2
	    - change function name to use mixedCaps

2012-04-16  lvroyce  <lvroyce@linux.vnet.ibm.com>

	fix circular reference of storage pool
	master storage domain can not be freed because storage pool refers to it.
	storage pool can't be freed because upgradeCallback is a partial function
	which refers to itself, making this a circular reference,
	using proxy of storage pool instead of real ref in upgradeCallback
	makes them freeable.

2012-04-16  Saggi Mizrahi  <smizrahi@redhat.com>

	Make resource manager stress test use 75% of allowed nprocs instead of a fixed number

	Fix processPool.py to conform with pep8

	BZ#802759 - Make old FD shutdown a bit more robust

2012-04-16  Federico Simoncelli  <fsimonce@redhat.com>

	Add the the debug plugin client

	Fix typo in the IscsiInterface class

2012-04-16  Ryan Harper  <ryanh@us.ibm.com>

	pylint: vdsm/libvirtvm.py
	E:914,11:NetworkInterfaceDevice.__init__: Access to member 'nicModel' before its definition line 915

	Modify the kwarg dict before device init.

2012-04-16  Saggi Mizrahi  <smizrahi@redhat.com>

	Add betterThreadingTests

2012-04-16  Lee Yarwood  <lyarwood@redhat.com>

	BZ#809012 - Remove physical block size limitations
	Corrects limitations set against the logical and physical block size of
	a device.

2012-04-16  Igor Lvovsky  <ilvovsky@redhat.com>

	isBlockDevice should fail for empty cdrom/floppy. Don't need traceback in the log.

2012-04-12  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix build-aux version scripts so that internal tags don't confuse them

2012-04-11  Igor Lvovsky  <ilvovsky@redhat.com>

	Compare Drive according to its name during lvextend
	There are several disks can be attached to each VM, but not all of them
	define as 'vdsm image' ( define by quartette: Pool,Domain,Image,Volume).
	VDSM support volume extend only for the disks that defined as 'vdsm image'.

2012-04-10  Saggi Mizrahi  <smizrahi@redhat.com>

	Don't escape colors if not a tty

2012-04-10  y kaplan  <ykaplan@redhat.com>

	define two tests as slowtest

2012-04-09  Saggi Mizrahi  <smizrahi@redhat.com>

	Add slowtests plugin
	Plugin slowtests
	  Skips tests that might be too slow to be run for quick iteration
	  builds

	  Options:
	    --without-slow-tests
	          Some tests might take a long time to run, use this to skip slow
		  tests automatically.  [NOSE_SKIP_SLOW_TESTS]

	Ergo, you can set the aforementioned env variable to have make skip slow
	tests. As what a "slow test" is debatable I just marked one test as
	slow. The rest will have to be suggested in future patches and
	go through the regular review process before deemed slow.

	To mark a test a slow use the slowtest decorator from the
	testValidation module.

	Add forgotten files to all-local so they would exist even wihtout installing vdsm

	Fix import error when running vdsm tests

2012-04-09  y kaplan  <ykaplan@redhat.com>

	Added guestIFTests

2012-04-09  Saggi Mizrahi  <smizrahi@redhat.com>

	Add fileUtil unit tests

2012-04-08  Dan Kenigsberg  <danken@redhat.com>

	fix broken pyflakes check

2012-04-08  Douglas Schilling Landgraf  <dougsland@redhat.com>

	configure.ac: Add validation for python-nose
	Avoid make check and make rpm errors due a lack of python-nose.

2012-04-08  Mike Burns  <mburns@redhat.com>

	make ovirt-node detection more robust
	rhbz#806555

2012-04-05  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix inconsistencies with new connection management API

	Add pep8 checks to build process
	This adds pep8 verification check. pep8 is the recommended styling for
	python. The pep8 tester doesn't check all of the style recomendations
	but it does help. Currently most of our code doesn't conform, so in
	order to integrate it slowly there is a whitelist declared in
	/Makefile.am.
	When fixing a file to conform please add the file to the whitelist so
	that after the patch is submitted the file will be tracked for
	conformance.

	More about pep8
	http://www.python.org/dev/peps/pep-0008/

	Make misc.py conform with pep8 again

	Add processPool unit tests

	Add resource manager unit tests

	Add unit tests for misc.py

	Make main.py confrom to pep8

	Integrate nosetests to vdsm testing
	This patch integrates nosetests into the vdsm testing pipeline. This
	gives us a more advanced framework to write tests around.

	`make check` still works as expected. In order to run tests
	individually or with different options use /tests/run_tests.sh.
	To learn more about nose tests you could run
	`./run_tests.sh -h` or go to the nose documentation.

	http://readthedocs.org/docs/nose/en/latest/#

	This also introduces the VdsmTestCase base class. There is no need to
	inherit from it but it will set up a logger for you that in the future
	will be used to log out intermidate test information for long tests.

2012-04-05  Federico Simoncelli  <fsimonce@redhat.com>

	Integrate SANLock with VM's life cycle

2012-04-05  Adam Litke  <agl@us.ibm.com>

	Define some constants in API.py
	The API bindings should be implemented in terms of the API bridge (API.py) and
	not rely on vdsm internals.  Currently the xmlrpc binding imports some internal
	modules in order to provide some default values (ie. BLANK_UUID and volume
	constants).  Constants that are needed at the API level need to appear in
	API.py.

	This patch converts the obvious offenses.  If this approach is acceptible I will
	follow up with additional patches.  In the future, APIs that take 'magic'
	parameters must formally define the valid values in API.py.

2012-04-05  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#804640 Image.getChain must work with multiple leaves
	The method Image.getChain() should be able to work also when the image
	has multiple leaves (preview mode).

2012-04-04  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#773210 - Avoid infinite loop when delete volume failed during the merge

2012-04-03  Deepak C Shetty  <deepakcs@linux.vnet.ibm.com>

	nfs-check improvements
	Adds nfs trouble shooting wiki link and shows
	the same in case of an error and also fixes the
	wrong uid:gid issue when removing testfile.

2012-04-03  Igor Lvovsky  <ilvovsky@redhat.com>

	bootstrap: installation now requires libvirt when defining mgmt network

2012-04-03  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#804640 Modify Image.getChain to return a subchain
	The method Image.getChain was returning the entire image chain. Now
	it's possible to specify an (optional) volUUID to return a subchain
	from the base up to volUUID.

2012-04-03  Roi Dayan  <roi.dayan@gmail.com>

	Added iSER support enabled with a configuration option.
	When used VDSM will try to connect with iser and fallback
	to default on failure.

2012-04-02  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#807642 Add TestSecurable safety test
	The test makes sure that all the Securable classes have different
	_safety (Event) objects.
	The metaclasses are used to generate new types (at import time); the
	_safety Event therefore was created only once and inherited by all the
	objects created later on.

2012-04-02  Peter V. Saveliev  <peet@redhat.com>

	fix LV_ATTR_BITS for use with lvm 2.02.95(2)-RHEL6
	lvs in this version has two more attrs

2012-04-02  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#807642 Use Securable as base class
	Using Securable as base class allow us to take the best of metaclasses
	(being able to modifying methods at import time) and the best of
	subclassing (explicit inherited methods such as __init__, _setSafe and
	_setUnsafe).
	It's also now possible to instantiate attributes per object (__init__)
	instead of per class and therefore fix BZ#807642.

	Using supervdsmServer.py when present

2012-04-02  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#808116 - Fix post-zeroing process during deletion of preallocated volumes

2012-04-02  Saggi Mizrahi  <smizrahi@redhat.com>

	Added some documentation to the connection management verbs

2012-04-01  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm: fix make distcheck
	ERROR: files left in build directory after distclean:
	./vdsm/constants.py
	./vdsm/config.py
	./vdsm/dumpStorageTable.py
	./vdsm_cli/vdscli.py
	make[1]: *** [distcleancheck] Error 1

2012-04-01  Saggi Mizrahi  <smizrahi@redhat.com>

	Support unicode in domain and pool description

2012-04-01  Dan Kenigsberg  <danken@redhat.com>

	dispatcher: drop Unicode-less validation

2012-04-01  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#805273 Fix LVM preferred names

2012-03-29  Danny Rankevich  <danny.ran@redhat.com>

	vdsm: error when creating a bond/nic with more than one network attached
	When creating a Bond or Nic with more than one network attached, the
	code breaks since it is expecting a dictionary, but a list is used.
	This fix creates the dictionary in the correct way.

2012-03-29  Haim Ateya  <hateya@redhat.com>

	Fix bad import preventing SuperVdsm to start

2012-03-29  Federico Simoncelli  <fsimonce@redhat.com>

	Add partial live merge
	Let's activate the partial live merge (libvirt supports it).

	Use the _REUSE_EXT flag in snapshotCreateXML
	The _REUSE_EXT flag is needed to use an external snapshot file that is
	already present (in our case created by the SPM).
	We need to require libvirt-0.9.10-9 for RHBZ#807147 that makes the flag
	fail in some situations.

2012-03-29  Saggi Mizrahi  <smizrahi@redhat.com>

	Make misc.py conform pep8 and other minor cleanup

2012-03-29  Dan Kenigsberg  <danken@redhat.com>

	Revert "added a very very simple test for the function filterXmlChars in the guestIF module"
	This reverts commit 14e80f5e65cd2d11a00987ba3f8b8e1bc5021107 as it fails common `make`.

2012-03-29  Douglas Schilling Landgraf  <dougsland@redhat.com>

	nfs-check: Add except socket.gethostbyname()
	Avoid exception when cannot resolve localhost.

2012-03-29  Shahar Havivi  <shaharh@redhat.com>

	added support for mirror promisc mode
	let ability to VM to monitor (mirror) all other VMs in the same host by
	specific network (bridge)

	Currently there is no protection agains mirroring a network twice,
	unsetting mirror network will clear both mirroring (on the same network).

2012-03-28  y kaplan  <ykaplan@redhat.com>

	added a very very simple test for the function filterXmlChars in the guestIF module

2012-03-28  Dan Kenigsberg  <danken@redhat.com>

	spec: VIR_DOMAIN_DESTROY_GRACEFUL is only in libvirt-0.9.10

2012-03-28  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix required libvirt version for new VIR_DOMAIN_DESTROY_GRACEFUL support

	Assign proper PCI address to each video/sound device

2012-03-27  Federico Simoncelli  <fsimonce@redhat.com>

	Use certtool to generate the certificates
	Using certtool is easier (commands are easy to understand and maintain),
	requires less steps (at least 1 less: the crt request), and it's the
	tool suggested by libvirt in the documentation (this should limit the
	mismatches). Achieving the same thing with openssl would have required
	shipping a openssl.cnf and having a temporary certificate request to be
	self-signed.

2012-03-27  Bala.FA  <barumuga@redhat.com>

	Added getMountFromDevice function.

2012-03-27  Saggi Mizrahi  <smizrahi@redhat.com>

	Make sure that internally we always use pvs from /dev/mapper/
	This is of course wrong, but I don't want to start figureing out all the
	places where we assume PVs sit under /dev/mapper. A proper fix will be
	pushed we I have the time to do all this work.

2012-03-27  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#806757 - Update video and sound devices of running VM with full info from libvirt

2012-03-26  y kaplan  <ykaplan@redhat.com>

	No tearDownVolumePath function exists, changed to teardownVolumePath

2012-03-26  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix old 'klass' joke in setMaxOutgoingMigrations definition.
	It was harmless, but let's get rid from this now.

2012-03-25  Igor Lvovsky  <ilvovsky@redhat.com>

	Try to destroy VM gracefully

2012-03-23  Saggi Mizrahi  <smizrahi@redhat.com>

	Have sdc.py pass pep8

2012-03-22  Saggi Mizrahi  <smizrahi@redhat.com>

	Create mount base path on hsm initialization

2012-03-22  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#805444 - Do not link unrelated domains under pool

2012-03-22  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#804618 vdsmImport should load the vdsm package

2012-03-22  Haim Ateya  <hateya@redhat.com>

	BZ#804618 - Fix import ERROR on vds_bootstrap

2012-03-20  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#804618 Add legacy imports to bootstrap

2012-03-20  Dan Kenigsberg  <danken@redhat.com>

	cman is no longer conflicting with Vdsm
	In prehistoric RHEL5 era, cman carried a set of fence-agents that conflicted with
	RHEV's flavor of fence-agent. fence-agents were later repackaged and now cman
	can be installed on the same host as Vdsm.

2012-03-18  Igor Lvovsky  <ilvovsky@redhat.com>

	Remove unneeded 'getIpAddresses' import

2012-03-18  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#803754 - Fix file mangling for localfs connections

	fix forgotten properties in NfsConnection

	pass missing arg to devicemapper.getSlaves

	Remove unused methods from hsm

2012-03-18  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#787709 - Do not validate IP existence during setup network

2012-03-18  Dan Kenigsberg  <danken@redhat.com>

	BZ#787728 configNet: restore backup on connectivity failure
	v2:
	    - do not try to call restoreAtomicBackup twice
	    - maintain the content of configWriter when changing multiple
	      networks

2012-03-18  Saggi Mizrahi  <smizrahi@redhat.com>

	Cut the line in a different place so pylint doesn't complain

2012-03-16  Saggi Mizrahi  <smizrahi@redhat.com>

	Removed unused method

2012-03-16  Dan Kenigsberg  <danken@redhat.com>

	do not croak on mountpoint with space and digit
	A mountpoint with ' 09' gave me the following error

	    return _RE_ESCAPE.sub(lambda s: chr(int(s.group()[1:], 8)), path)
	ValueError: invalid literal for int() with base 8: '04009'

	since the code concatenates 09 to 040 (octal for space).

2012-03-15  Eduardo Warszawski  <ewarszaw@redhat.com>

	Backing VG's should be named as SD name. Renaming VG's is not supported.

2012-03-15  Bala.FA  <barumuga@redhat.com>

	Added lsblk tool support in supervdsm.
	lsblk tool is used to get block device information.
	Now supervdsm has a function getLsBlk which returns all block
	device information as dictionary.  Sample return value is,

	{'sda': {'FSTYPE': '', 'KNAME': 'sda', 'UUID': ''},
	 'sda1': {'FSTYPE': 'ext4',
	          'KNAME': 'sda1',
	          'UUID': '12345678-0c05-1111-2222-1234567890d6'},
	 'sda2': {'FSTYPE': 'swap',
	          'KNAME': 'sda2',
	          'UUID': '12345678-1111-2222-3333-12345678903c'}}

2012-03-15  Saggi Mizrahi  <smizrahi@redhat.com>

	Removed unused imports from clientif

2012-03-15  Oved Ourfali  <oourfali@redhat.com>

	vds_bootstrap: add flags for installVirtualizationService and installGlusterService
	This commit adds two more flags to the vds bootstrap
	that denote whether in install virt/gluster services on the host.
	Currently it will only have an effect on whether we run virt test on
	the host before installation or not

2012-03-15  Dan Kenigsberg  <danken@redhat.com>

	BZ#729251 vds_bootstrap: drop dead netconsole/vdcrepo code
	When http://gerrit.ovirt.org/1848 and http://gerrit.ovirt.org/1689 are taken
	into Engine, -u and -n options to vds_bootrap would never be passed.

	Remove this dead code.

2012-03-15  Bala.FA  <barumuga@redhat.com>

	Added blkid tool support to get device for uuid.
	getDeviceByUuid accepts uuid and returns block device of the uuid.

2012-03-15  Derrick Ornelas  <dornelas@redhat.com>

	dumpStorageTable: search deeper for vms list

2012-03-15  Eduardo Warszawski  <ewarszaw@redhat.com>

	Restore direct lun functionality.
	Using vdsClient:
	vdsClient 0 create /dev/null vmId=<uuid> vmName=<vm_name> memSize=256 macAddr=aa:bb:dd:aa:bb:cc bridge=rhevm nicModel=pv display=vnc devices='index':0,'iface':'ide','format':'raw','type':'disk','readonly':'False','device':'disk','propagateErrors':'off','GUID':<guid>

2012-03-14  Haim Ateya  <hateya@redhat.com>

	Fix TypeError when using se.iSCSIDiscoveryError without any params

	BZ#800915 - no need to support list in removeVM command
	Since engine-core use string in removeVM command and never sends vdsm a
	list of vms, there is no need to support it in the code.

	change-Id: I4a0e5848ece1aa147f4508d4d16842bcdb30af0d

2012-03-13  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#802229 - Fix missing tpgt argument handling

	BZ#802347 try and not access iscsid concurrently

2012-03-12  Federico Simoncelli  <fsimonce@redhat.com>

	Add the device type in the snapshot dictionary
	Since commit 3c1dad8 (Fix vdsm disks ops for the new API) it is required
	to pass the device type to prepareVolumePath.

2012-03-09  Federico Simoncelli  <fsimonce@redhat.com>

	VDSM-Reg should not import vdsm.config

2012-03-09  Roi Dayan  <roi.dayan@gmail.com>

	read iscsi session info properly
	read from /sys/class/iscsi_session and /sys/class/iscsi_connection directories
	instead of /sys/devices/platform/host*/

2012-03-09  Gal Hammer  <ghammer@redhat.com>

	Updated threading.Lock acquire to a more Python-like mean.

2012-03-07  Federico Simoncelli  <fsimonce@redhat.com>

	Fix minor issues in the iscsi module

2012-03-06  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Use urllib.urlencode to build URI parameters

	Clean up logging in vdsm-reg-setup.in

2012-03-06  Dan Kenigsberg  <danken@redhat.com>

	oops, fix a bad rebase

2012-03-06  Saggi Mizrahi  <ficoos@gmail.com>

	Minor text fixes

	New connection management API
	Connection are no longer managed directly. A client uses references to
	the actual connection and VDSM manages the actuall lifcycle of the
	objects.

	More information at http://www.ovirt.org/wiki/Features/ConnectionReferences

2012-03-06  Saggi Mizrahi  <smizrahi@redhat.com>

	Implement storage server connection monitoring
	This is the actual connection monitoring. Takes aliased connection
	Information and makes sure everything is connected. It will disconnect a
	connectino once there are no aliases referencing it.

	Implement storage server connection aliasing
	This is the actual perstiance mechanism for the connection info. It
	saves all the information needed to create a connection object in memory
	on disk.

	Refactor storage connection subsystem
	Currently connection management is an abysmal mess. This is a
	transitional patch
	retrofitting the old API to some of the concepts we intend to implement.

	Notice:
	Permissions are no longer checked on storage connect only on domain
	initialization. This is good as the storage connection is far from an
	appropriate place for that check.

	I've removed stale root folder handling for NFS. I will add it back I
	can't do everything at once.

	There are also no proper engine acceptable exceptions yet

	ISCSI Subsystem refactoring
	!!Do not apply without following patch!!

	Currently the iscsi subsystem is a mess of list concatenation.
	This refactoring tries to:
	    - Make variable and object naming consistent and in line with iscsi
	      terminology.
	      Note that:
	        * portal now refers to an ISCSI Portal and not a tpgt
	        * ISCSI interfaces are modeled so that initiator name is
	          actually property of the interface and not its identity
	    - Make a coherent object hierarchy of the ISCSI objects. Functions
	      now expect to get ISCSI objects (like portal, target) instead of
	      scattered arguments that have to be validated and parsed every
	      time.
	    - Make the ISCSI interface a 1st class member. Up until now support
	      for multiple interfaces was amateurish at best.
	    - Support for different credentials for discovery and target. Ground
	      work to support authentication methods other then CHAP.
	    - Thin wrap around iscsiadm to separate cmdline parsing from actual
	      VDSM iscsi logic

	Stuff known to be broken:
	    - implicit interface creation. As this was never officially
	      supported by VDSM I will not bring this back.
	    - tpgt is ignored. This is in line with old VDSM behaviour.

	Note that the confusing naming is still used by the old API calls for
	backward compatibility. New API calls should try and use correct naming
	and format!

2012-03-06  Federico Simoncelli  <fsimonce@redhat.com>

	Initial live block migration API

	Update the live merge implementation
	In this patch:
	* Add the support for partial merges (blockRebase)
	* Handle all the corner cases when vdsm is restarted

	Add the vdsm-tool command

	Move the VDSM common code to the python site lib
	Some VDSM code is shared between different components (eg: vdsm and
	vdsm-cli share vdscli.py) and some modules have a really common name
	(eg: utils, config) risking to collide with other packages.
	For these two reasons and for cleanliness some modules are moved to
	a new location (the standard python site lib) and they can be shipped
	in a different package.

2012-03-06  Saggi Mizrahi  <ficoos@gmail.com>

	Minor cleanup in processPool

	Release logging module lock after fork

2012-03-06  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Remove another instance of traceback.format_exc

2012-03-06  Dan Kenigsberg  <danken@redhat.com>

	drop three ancient rotting files
	No idea why Tabula Rasa did not do his trick on them.

2012-03-06  Gal Hammer  <ghammer@redhat.com>

	A new method to read from VMs' channels.
	Replaced having a thread-per-VM that monitors and reads from the
	VM's virtual channel with a 1-thread listener that handles all
	VMs' channels.

	This patch should reduce vdsm's memory usage consumed by memory
	overhread of each thread.

2012-03-06  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#798211 - Normalize hibernation images

2012-03-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix NETPREFIX AttributeError.
	Constant was removed in Change-Id: Id7a3efea92.

2012-03-01  Dan Kenigsberg  <danken@redhat.com>

	BZ#797354 drop enic from modprobe.d/vdsm.conf

2012-03-01  Federico Simoncelli  <fsimonce@redhat.com>

	Initial live merge implementation

2012-03-01  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Replace most traceback.format_exc() calls by exc_info

2012-02-29  Federico Simoncelli  <fsimonce@redhat.com>

	Initial unit tests implementation

	Fix make distcheck errors

2012-02-27  Dan Kenigsberg  <danken@redhat.com>

	BZ#737104 Disallow cross-vendor virtualization

2012-02-24  Federico Simoncelli  <fsimonce@redhat.com>

	Automatically detect qemu-kvm path in vdsm-faqemu

2012-02-24  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Fix typo

2012-02-24  Doron Fediuck  <dfediuck@redhat.com>

	boostrap completion: Restart vdsmd service.
	Recently we've fixed the functionality which avoids
	reboot once bootstrap is completed. However, the vdsmd
	service requiers restart in order to pick up the new
	configuration and the new certificates issues during
	the bootstrap.

	This patch uses the same logic as the ovirt-node reboot
	function, which reboots the machine or restarts the
	vdsmd servide when reboot is avoided.

2012-02-23  Eduardo Warszawski  <ewarszaw@redhat.com>

	Tuple is cheaper than list.

	Fix minor log issue.

2012-02-22  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix typo in log message

2012-02-21  Federico Simoncelli  <fsimonce@redhat.com>

	Release the host ID only when dom is defined

2012-02-21  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix vdsm disks ops for the new API.

2012-02-21  Igor Lvovsky  <ilvovsky@redhat.com>

	Revert "Fix remotePath comparison in getStorageDomainsList".
	This patch broke filtering in getStorageDomainsList query

	This reverts commit fe22ef5fe9893bbf7ba02c4fc2e83e4f6c2197dc.

2012-02-21  Doron Fediuck  <dfediuck@redhat.com>

	boostrap completion: fix no reboot function and report.
	This patch fixes the functionality of no reboot as a
	given argument to the script. So using 0 will avoid
	rebooting and anything else will continue rebooting
	as it did so far.

	Additionaly the vds_bootsrap_complete XML report was corrected;
	when the script is being asked not to reboot the machine,
	so the operation is still considered to be a success.

2012-02-20  Dan Kenigsberg  <danken@redhat.com>

	migrateCancel: properly fix another typo

2012-02-19  Dan Kenigsberg  <danken@redhat.com>

	libvirtvm.Drive: compute blockDev locally
	There is no need to expose the blockDev boolean in Vdsm API; but it
	should exist in any Drive.

	task.py: avoid overtly silly casting to str()
	For a reason unknown (to me), task.py does not use pickle to persist its
	data to file. We cannot fix that without breaking
	backward-compatibility. However, we can avoid pointless casts to str,
	and can encode data to utf8 before storing to disk.

	Note that this patch does not solve BZ#567077 as the storage subsystem
	prevents entry of Unicode arguments. This prevention must be kept
	for old storage domain formats.

	BindingXMLRPC: fix typo

2012-02-19  Saggi Mizrahi  <smizrahi@redhat.com>

	This us a useful method for converting namedtuples to dictionaries

2012-02-19  Haim Ateya  <hateya@redhat.com>

	Reduce log verbosity for unknown devices from error to warn

2012-02-19  Saggi Mizrahi  <smizrahi@redhat.com>

	Make validateStorageServerConnection API call a noop
	This call is useless and slow. It check different things in different
	levels for different storage types and does not guarantee a future
	connect will succeed. Until someone actually defines what is actually
	being validated (params? hostname? permissions? authentication tokens?)
	I suggest to just disable this verb so it doesn't make any NFS
	connection take twice as long and be exponentially more complex.

	Fix connectStorageServer doc string

	Fix remotePath comparison in getStorageDomainsList
	Note that filtering getStorageDomainsList according to remotePath is
	still broken for block domains (luckily it is never used).

2012-02-19  Shahar Havivi  <shaharh@redhat.com>

	add/del network - add bridgesless network

2012-02-19  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#790014 Fix multiple issues in detachSD
	In this patch:
	* Remove __unmountLastMaster, the manager cannot deactivate the master
	  storage domain (where the SPM resource is hold)
	* Move all the checks related to the master migration inside masterMigrate
	* detachSD cannot be used to migrate a master

	Note that this patch makes it possible to deactivate a master domain
	(thus breaking the pool) even if there are other active domains in the
	pool. A future patch should discuss if reverting to the old semantics is
	necessary, and if so - how it should be done.

2012-02-19  Eduardo Warszawski  <ewarszaw@redhat.com>

	Restore optional drive cap.

2012-02-17  Federico Simoncelli  <fsimonce@redhat.com>

	Improve the lvm.USER_DEV_LIST parsing
	In this patch:
	* Remove the ConfigParser.Error exception handling (impossible)
	* Filter out empty strings

2012-02-16  Shahar Havivi  <shaharh@redhat.com>

	Clean libvirt networks if bridge not exists

2012-02-16  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Flip execCmd default to sudo=False

2012-02-16  Adam Litke  <agl@us.ibm.com>

	storagePool: Reject unknown method in uploadVolume
	Address a previously identified TODO in the code and report an error if a method
	other than 'wget' or 'rsync' is specified.

2012-02-16  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Add myself to the authors list

2012-02-15  Igor Lvovsky  <ilvovsky@redhat.com>

	Allow drive devices without indices

2012-02-15  Dan Kenigsberg  <danken@redhat.com>

	configNet: drop local reimpl of utils.tobool

2012-02-14  Federico Simoncelli  <fsimonce@redhat.com>

	Move dumpStorageTable from vdsm_cli to vdsm
	The dumpStorageTable.py script is used by the sos plugin shipped with
	vdsm.

	VDSMBRIDGE doesn't need a special expansion

	Fix RHEL qemu-kvm requirements

2012-02-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	fix spmStop failure
	SPM_ID pool key is written after we are not SPM anymore.
	(By design.)

2012-02-14  Adam Litke  <agl@us.ibm.com>

	Log exceptions when calling irs functions from XMLRPC (V3)
	Changes since V2:
	 - Use style log.error("error message", exc_info=True)
	Changes since V1:
	 - Return errcode['unexpected'] instead of raising an exception

	An earlier change I made introduced a bug in API.py that triggered an exception
	when calling the 'getDeviceList' XMLRPC call.  Unfortunately the server-side
	exception was not logged anywhere (which made debugging more difficult).  This
	patch adds exception logging for irs methods (note: wrapApiMethod already does
	this for the other calls).

2012-02-13  Saggi Mizrahi  <smizrahi@redhat.com>

	Implement __hash__ for mount objects
	mount.Mount.__eq__ is already defined, so we should have __hash__ as
	well to make Mount properly hashable.

2012-02-13  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsClient: drop clearAsyncTask
	Removed clearAsyncTask

2012-02-13  Federico Simoncelli  <fsimonce@redhat.com>

	Fix CpuInfo.cores() for missing IDs in cpuinfo

2012-02-13  Dan Kenigsberg  <danken@redhat.com>

	fix broken migration

2012-02-13  Ewoud Kohl van Wijngaarden  <ewoud@kohlvanwijngaarden.nl>

	Clean up flowID logging
	This change should prevent empty IDs being logged.

2012-02-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Revert "Fix getMasterDomain masterVersion handling"
	This reverts commit ce280b09c776b33203847dc7e7ad77ee90a34bc0.

	masterVersion is an exclusive property of RHEV-m.
	There are no RHEV-M flows that not send the expected version.
	All VDSM flows should have an expected version.
	Towards a masterVersion (>0) meaning a master domain and
	removing redundant metadata fields as isMaster, etc.

2012-02-12  Shahar Havivi  <shaharh@redhat.com>

	added mtu support for network interface

2012-02-12  Gal Hammer  <ghammer@redhat.com>

	Added an option to create a memory balloon device.
	A support for a virtual memory balloon device was added
	to the "devices" configuration.

2012-02-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Adding flowID
	This patch will implement the flowID schema in vdsm side. The idea is
	provide a mechanism to identify the flow between ovirt engine and vdsm API calls
	in order to identify the entire scope of the backend action
	(which possibly consisted of several VSDM calls). At moment, we are
	going to use HTTP headers to implement this feature to keep the
	compability with current API, avoiding possible breakes.

2012-02-12  Shahar Havivi  <shaharh@redhat.com>

	addNetwork in BindingXMLRPC is not forwarding options

2012-02-12  Igor Lvovsky  <ilvovsky@redhat.com>

	NIC model should be converted from 'pv' to 'virtio'

2012-02-12  Dan Kenigsberg  <danken@redhat.com>

	BZ#785717 caps: cpuCores should report only physical cores
	CPU Hyper-Thread shows up as a processor in /proc/cpuinfo, but does not amount
	to a physical core.

2012-02-10  Rami Vaknin  <rvaknin@redhat.com>

	Mailbox: Use EXT_DD instead of dd

2012-02-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	_createXMLRPCServer: avoid some code duplication

2012-02-08  Saggi Mizrahi  <smizrahi@redhat.com>

	Happy new year hsm.py

2012-02-08  Eduardo Warszawski  <ewarszaw@redhat.com>

	Adding optional startupPolicy for (file) cdrom and floppy.

2012-02-08  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BindingXMLRPC: Initialize s.lastClient as IP
	Fix the error: illegal IP address string passed to inet_aton

2012-02-07  Dan Kenigsberg  <danken@redhat.com>

	Adam Litke is an AUTHOR

2012-02-07  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#787722 - Make the spm internal lock an RLock
	This will prevent the object from deadlocking itself when moving between
	protected areas in related methdos.

2012-02-07  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Fix another mac address comparison issue caused by letter case.

2012-02-07  Dan Kenigsberg  <danken@redhat.com>

	have an empty lastClient on xmlrpc startup

	BZ#787710 configNet: allow multiple nets

2012-02-06  Adam Litke  <agl@us.ibm.com>

	Fix typo in xmlrpc bindings registration
	Fix a typo in the xmlrpc binding that was causing the mergeSnapshots command to
	be misnamed.

2012-02-06  Haim Ateya  <hateya@redhat.com>

	BZ#787594 - Enable fenceSpmStorage on hsm nodes

2012-02-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	contrib: Adding contrib/nfs-check.py
	nfs-check is a python script to validate nfs targets.
	Currently, nfs-check mount the nfs target, create a file as vdsm:kvm
	and remove it. If any of these operations fails, the script will make
	suggestions to make the NFS server available for the tests.

	$ sudo python nfs-check.py
	Usage: nfs-check.py server:/target

2012-02-05  Dan Kenigsberg  <danken@redhat.com>

	BZ#785557 bootstrap: do not mark ifcfg as NM_CONTROLLED
	Network devices created by Vdsm should not ask to be controlled by
	NetworkManager. Particularly when NM does not support controlling them
	(bridge device).

	However, we require that the non-default network.service is started in
	order to control them.

	BZ#773371 call `vdsmd reconfigure` after bootstrap
	If installation change ssl from False to True and added valid
	certificates, we need to reconfigure vdsm to use it.

	This was done by the "reconfigure" verb for our SysV daemon, but
	unsupported by systemd.

	This patch is an ugly hack for an oVirt release, until we have a proper
	vdsm-tool for these purposes.

2012-02-05  Shahar Havivi  <shaharh@redhat.com>

	promisc hook: release monitor traffic on before_vm_destory
	after_vm_destroy is too late to release tc monitor traffic,
	moving the event to before_vm_destroy event.

2012-02-05  Igor Lvovsky  <ilvovsky@redhat.com>

	Add hotPlug/hotUnplug NIC feature

	Add hotplugNic/hotunplugNic feature to vdsClient.
	Usage: vdsClient 0 hotplugNic|hotunplugNic vmUUID <nicspec>

	'nicspec parameters list: r=required, o=optional',
	 'r   device: bridge|sriov|vnlink|bridgeless.',
	 'r   network: network name',
	 'r   macAddr: mac address',
	 'r   nicModel: pv|rtl8139|e1000',
	 'o   bootOrder: <int>  - global boot order across all bootable devices'

2012-02-05  Dan Kenigsberg  <danken@redhat.com>

	Fix two regressions introduced by the API.py refactoring
	The recovery code is left a serious need of refactoring. At least it is
	working now.

2012-02-04  Igor Lvovsky  <ilvovsky@redhat.com>

	Add cluster version 3.1

2012-02-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BindingXMLRPC: wrapper - fix __name__
	- list now is getVMList
	- getVdsStats now is getStats
	- desktopLogin now is vmDesktopLogin

2012-02-04  Federico Simoncelli  <fsimonce@redhat.com>

	Excluding some VM commands on migration
	Some operations are not permitted during a live migration:

	* take a live snapshot
	* hotplug/hotunplug a disk device

2012-02-02  Federico Simoncelli  <fsimonce@redhat.com>

	Fix the XMLRPC binding for vmSnapshot

2012-02-01  Igor Lvovsky  <ilvovsky@redhat.com>

	Minor code refactoring during domXml parsing

2012-02-01  Federico Simoncelli  <fsimonce@redhat.com>

	Fix small issues introduced by API.py

2012-02-01  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix exception string for mount commands

2012-02-01  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove BLANK_POOL_UUID constant.

2012-02-01  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix broken APIs: hotplugDisk, hotunplugDisk, migrateCancel

2012-01-31  Adam Litke  <agl@us.ibm.com>

	Move API out of clientIF
	Many API functions are implemented inside clientIF but this is no longer the
	proper place for them.  Move API-related functions into their proper objects
	inside API.py.  clientIF still owns the storage dispatcher and the vm list.  In
	the future, I would like to move these out of clientIF as well but I have
	decided to reserve that for a future patch series.

	Add an object model to clientIF
	Create an object-based API for vdsm.  The current objects are: Task,
	StoragePool, StorageDomain, Image, Volume, ISCSIConnection, LVMVolumeGroup, and
	VM.  Additionally, a Global object currently handles APIs which don't map nicely
	to one of the above objects.  Right now this interface is only an abstraction
	that maps directly to the flat function namespace.  This will change later in
	the patch series and more over time.  Since this API is internal (it only
	affects bindings), we can continue to change it over time without affecting
	ovirt-engine.

	Factor out xmlrpc server
	Move the xmlrpc server code out of clientIF and into its own file.

2012-01-30  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#769502 Do not use lvm to get lv size if lv is active
	Calling LVM is expensive so the less we use it the better.

2012-01-30  Adam Litke  <agl@us.ibm.com>

	API: Separate clientIF and the xmlrpc server
	Currently the xmlrpc server functionality is entwined with the clientIF class.
	In order to proceed with the API bridge plan (http://ovirt.org/wiki/Vdsm_API) I
	would like to separate the xmlrpc server into its own class.  This brings
	clientIF one step closer to becoming a generic API Bridge that is able to host
	additional bindings such as REST and QMF.

	Despite the size of this patch, this was a pretty simple refactoring.  I made
	the following choices as I split this out:

	- The xmlrpc server binding class has start() and prepareForShutdown() APIs
	- clientIF will still own the storage dispatcher but API wrapper mechanisms
	  have moved into the xmlrpc class.

2012-01-30  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#773666 - Avoid more rw changes in HSM flows.

2012-01-30  Federico Simoncelli  <fsimonce@redhat.com>

	Use SANLock for the SPM resource

	Change safelease APIs to match SANLock flow

	Add the live snapshot command to vdsClient
	Add the new vdsClient command to take live snapshots:

	  vdsClient [-s] <host> snapshot <vmId> \
	      <sdUUID> <spUUID> <imgUUID> <baseVolUUID> <volUUID>

	Implement VMs live snapshots
	Add a new command to take live snapshots of VMs:

	  clientIF.snapshot(vmId, snapDrives)

	The parameter snapDrives is in the format:

	  snapDrives = [
	    { "domainID": "<sdUUID>",
	      "imageID": "<imgUUID>",
	      "baseVolumeID": "<baseVolUUID>",
	      "volumeID": "<volUUID>" },
	    ...
	  ]

2012-01-29  Dan Kenigsberg  <danken@redhat.com>

	destroy may be called when the Vm is already Down
	This patch fixes an error introduced in c0766ddb0852fd391d15424ae24761.

	add a virtio console to each VM
	With this patch, vdsm-controlled VMs support `virsh console`. Note that
	guest kernel should have virtio drivers and stream its console i/o to
	the virtio-console device.

2012-01-29  Shahar Havivi  <shaharh@redhat.com>

	Add before_vm_destroy hook
	Run a hook directory when a Vm is asked to die. Note that a Vm may die
	without being asked to, were the hook would not run.

	This hook is currently missing from Vdsm since I was not sure what
	should be its exact semantic. However in hindsight, we'd better have
	something (even awkward) and improve after feedback from the real world.

2012-01-29  Igor Lvovsky  <ilvovsky@redhat.com>

	Add hotplugDisk/hotunplugDisk feature to vdsClient.
	Usage: vdsClient 0 hotplugDisk|hotunplugDisk vmUUID <drivespec>
	   'drivespec parameters list: r=required, o=optional',
	   'r   iface:<ide|virtio> - Unique identification of the existing VM.',
	   'r   index=<int> - disk index unique per interface virtio|ide',
	   'r   [pool:UUID,domain:UUID,image:UUID,volume:UUID]|[GUID:guid]|[UUID:uuid]',
	   'r   format: cow|raw',
	   'r   readonly: True|False   - default is False',
	   'r   propagateErrors: off|on   - default is off',
	   'o   bootOrder: <int>  - global boot order across all bootable devices',
	   'o   shared: True|False',
	   'o   optional: True|False'

	Add hotPlug/hotUnplug disk feature

2012-01-27  Federico Simoncelli  <fsimonce@redhat.com>

	Fix metadata file permissions for fileSD
	In this patch:
	* remove createmetafile (we already have other functions to create an
	  empty file)
	* create empty metadata files (createmetafile was using sizeStr2Int
	  which is wrong)
	* set the metadata files permission to 0660

2012-01-25  Matthias Heinz  <matthias.heinz@goobernetworks.com>

	This patch adds some basic debian support

2012-01-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#782348 - Fix getBridgeParams()
	Blank lines are valid in /etc/sysconfig/network-scripts/ifcfg-ethX

2012-01-25  Haim Ateya  <hateya@redhat.com>

	Set exc_info=True when self.message is used in log.error for vds_bootstrap

2012-01-25  Douglas Schilling Landgraf  <dougsland@redhat.com>

	BZ#619360 enable and start ntpd
	Vdsm needs to keep host time in sync, or else guest time would lap if
	guest is started on a different host. Make sure ntpd is running.

2012-01-24  Igor Lvovsky  <ilvovsky@redhat.com>

	Add validate minimal keys set in dictionaries

	Fix address parsing during build domXml

2012-01-24  huntxu  <mhuntxu@gmail.com>

	Make getRoutes() return the default gateway of each bridge interface
	Assuming `route -n` returns the followings:
	Kernel IP routing table
	Destination   Gateway     Genmask       Flags Metric Ref Use Iface
	192.168.1.0   0.0.0.0     255.255.255.0 U     0      0   0   engine
	0.0.0.0       192.168.1.1 0.0.0.0       UG    0      0   0   engine
	192.168.10.0  192.168.1.2 255.255.255.0 UG    0      0   0   engine

	Then the last shown gateway of engine '192.168.1.2' would be returned
	by this functions since it latest occurs in /proc/net/route.
	This commit makes this function always return the default gateway of
	each bridge interface as ovirt-engine expects.

2012-01-23  Dan Kenigsberg  <danken@redhat.com>

	setupNetwork: release deleted network first
	We may need their resources for newly requested networks.

	Do not distribute vdsm-gencert.sh
	... and particularly not one that has /usr/local as a prefix, and fails rpm
	creation.

2012-01-22  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix race during VM recovery flow
	In this patch:
	 * Save conf just after build devices

2012-01-22  Mark Wu  <wudxw@linux.vnet.ibm.com>

	Ignore differences in case when comparing mac addresses

2012-01-22  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm/Makefile.am: fix make install
	currently vdsm-logrotate.conf is not generated automatically, which break the 'make install'
	[vdsmdevel@medogz vdsm]$ sudo make install
	[sudo] password for vdsmdevel:

	<snip>
	/usr/bin/install -c -m 644 vdsm.rwtab \
		/etc/rwtab.d/vdsm
	/bin/mkdir -p /etc/logrotate.d
	/usr/bin/install -c -m 644 ./vdsm-logrotate.conf \
		/etc/logrotate.d/vdsm
	/usr/bin/install: cannot stat `./vdsm-logrotate.conf': No such file or directory
	make[3]: *** [install-data-logrotate] Error 1
	make[3]: Leaving directory `/home/vdsmdevel/sem-patch/vdsm/vdsm'
	make[2]: *** [install-am] Error 2
	make[2]: Leaving directory `/home/vdsmdevel/sem-patch/vdsm/vdsm'
	make[1]: *** [install-recursive] Error 1
	make[1]: Leaving directory `/home/vdsmdevel/sem-patch/vdsm/vdsm'
	make: *** [install-recursive] Error 1
	[vdsmdevel@medogz vdsm]$

2012-01-22  Eduardo Warszawski  <ewarszaw@redhat.com>

	Removing dead code.

2012-01-22  Federico Simoncelli  <fsimonce@redhat.com>

	Avoid to activate parent volume on cloning
	The benefit is that we can now create new snapshot volumes without
	looking at the parent. This is indispensable for live snapshots since
	the parent volume is in use by the VM.

	WARNING: if you run an SPM host with this change you need all the
	HSM hosts to have: I4b5cb55a868cb9bf5a720610273af139ee858a1a (Don't
	lock the image when preparing the VM path) and you won't be able use
	the domain from old SPMs/HSMs anymore.

	In this patch:
	* Do not activate the parent volume on cloning (it could be in use
	  by the VM), the only information needed is the size and it can be
	  provided as additional parameter in qemu-img
	* Do not change the volume permission to read-only when setting the
	  parent to "internal" (it could be in use by the VM)

	Refactor prepareVolumePath in clientIF
	In this patch:
	* refactoring
	* set drive['volumeChain'] (required for sanlock and bz760547)
	* set drive['blockDev']  (required for the hotplug feature)

	Remove the _preparedDrives dictionary from vm
	The _preparedDrives dictionary was a fix for bz670599 introduced with
	the commit 7aa57fe. Currently prepareVolumePath is not relying on the
	resource manager anymore and therefore the race fix is superfluous.

	In this patch:
	* make prepareVolumePath and teardownVolumePath public

2012-01-20  Federico Simoncelli  <fsimonce@redhat.com>

	Do not lock the image when preparing the VM path
	Since the resource manager scope is local there is no need for a VM
	to take an exclusive lock on the images: in fact the SPM running on
	an other machine could still manipulate such images.
	Using the resource manager in general on HSM is wrong because it is
	mapped on actions that are valid only on the SPM such as: modifing
	the lvm permissions and the modification time in the metadata.

	In this patch:
	* add an activate/deactivate image method to StorageDomain
	* implement the activate/deactivate image for BlockStorageDomain
	* add the prepareImage/teardownImage methods in HSM

2012-01-19  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#783098 - notFound should be and iterable and not an iterator.

2012-01-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#782099 - Add vdsm modprobe configuration.
	This is required as a hack around kernel bug 772317.

2012-01-18  Dan Kenigsberg  <danken@redhat.com>

	getDevInfo: report partitioned devices, too
	One cannot create a PV on a partitioned device, and therefor such
	devices where not reported to Engine. This proved surprising to users
	who wonder where their LUN disappeared.

	Vdsm should report all devices, and ovirt-engine should mark partitioned
	devices as unworthy of a PV. In the future, Vdsm may allow to forcefully
	remove a partition table from a device, to make it usable as a PV.

	hard-coding the value of se.StorageException.code is ugly

2012-01-17  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#773371 Generate the VDSM certificates
	VDSM is installed with ssl enabled by default, such configuration
	requires the certificates to be generated when they're missing.

	Group the cluster lock code into a new SP method
	Both the create and reconstructMaster methods were sharing a very
	similar code for temporarly acquiring the cluster lock.

2012-01-17  Eduardo Warszawski  <ewarszaw@redhat.com>

	Change device ownership for VM's drives.

2012-01-17  Igor Lvovsky  <ilvovsky@redhat.com>

	Support stable PCI address for uknown general devices

	Support stable PCI address for controller devices

2012-01-17  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#770834 Handle complex interface names in nicSort

2012-01-16  Federico Simoncelli  <fsimonce@redhat.com>

	Move all the substitution at make time
	Moving all the substitution at make time we can avoid the double pass
	on the .in.in files.

2012-01-16  Igor Lvovsky  <ilvovsky@redhat.com>

	Support stable PCI addresses for video/sound/disk/nic devices.
	- The 'getVmStats'/'getAllVmStats' verbs report the hash of the device part of domXml per VM.
	- Return full vm's conf including device's addreses
	- Handle new addresses parameter in vm's create flow

	Add 'readonly' attribute to disk's libvirt XML

2012-01-16  Dan Kenigsberg  <danken@redhat.com>

	Use drive[path] only after it is known
	... and make isBlockDevice actually work. Thanks, xTs_w!

	BZ#781970 kaxmlrpclib: fix plaintext transport in Python 2.7

2012-01-16  Shahar Havivi  <shaharh@redhat.com>

	BZ#773364 cancel-migration: abort migration on dest results an exception
	While starting migration, it appear in dest host vm list.
	When trying to cancel migration the _dom have not set, and when trying
	to call abortJob() we get AttributeError() exception.

2012-01-15  Federico Simoncelli  <fsimonce@redhat.com>

	Mark vds_bootstrap as executable in the Makefile
	The bootstrap files should be always installed as executables (not only
	in the rpm package).

2012-01-15  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#769502 Check if block device w/o invoking storage subsystem
	...and fix a bug about SHAREDFS being considered as block domain.

	BZ#769502 Move limit configuration to its proper place
	Currently limit configuration is managed part by vdsmd.init and part by
	vdsm configuration. This is confusing an non standard. Putting a Vdsm
	configuration file in limits.d will make admins life easier when looking
	to change Vdsm's limits.

	This may result in a surprise on upgrade - if someone has
	max_open_files=nondefault on his vdsm.conf.

	HOWEVER, these are very few and very technical users who could handle
	(and would prefer) this sitting in limits.d

	Throw key error in case on missing or already registered namespace

	BZ#769502 - Make namespace registering more efficient

2012-01-15  Haim Ateya  <hateya@redhat.com>

	BZ#781317 - adjust getos() to print real node type

2012-01-15  Dan Kenigsberg  <danken@redhat.com>

	allow running old-style Vm without 'drives'
	This has no effect on engine-initiated VMs which always have 'drives'
	(or in the future, 'devices'). Only manual tests are affected.

	drop ugly dead function execAndGetOutput

2012-01-15  Saggi Mizrahi  <smizrahi@redhat.com>

	Added copyright info to securable.py

2012-01-14  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#771329 Use a copy of the domainsToUpgrade
	The original code just uses another ref that is changed while iterated
	which has unexpected results. This was not apparent as the remove might
	happened after the iteration because it might run in another thread.

	To illustrate:

	In [1]: a = [1,2,3,4,5,6,7,8,9,10]

	In [2]: for i in a:
	...:     a.remove(i)
	...:

	In [3]: a
	Out[3]: [2, 4, 6, 8, 10]

	In [4]: for i in a:
	...:     a.remove(i)
	...:

	In [5]: a
	Out[5]: [4, 8]

	In [6]: for i in a[:]:
	...:     a.remove(i)
	...:

	In [7]: a
	Out[7]: []

	Fun!

	Raise ongoing creations count
	Multi-core hosts are generally more capable to start up multiple qemu
	processes efficiently. (And, the RHEL-5 kernel bug that limited
	_ongoingCreations to 1 is long irrelevant)

2012-01-13  ye kap  <yeela.kaplan@gmail.com>

	BZ#771686 fix MAX_VLAN_ID

2012-01-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#773666 - Fix HSM flows should not change rw permissions.
	Changing permissions on LV/File is a clustered operation and
	should never be done in HSM.
	Prepare is used by HSM therefore should not change permissions.
	Minimal fix needs further development.

2012-01-12  Dan Kenigsberg  <danken@redhat.com>

	BZ#772556 bootstrap: ignore restorecon errors
	This is particularly painful if SELinux is disabled.

2012-01-12  Shahar Havivi  <shaharh@redhat.com>

	BZ#772670 [rhevh] network is not set after using boot params
	When using vdsm-reg we are adding/deleting network before libvirt starts.
	Added a "hidden" parameter to add/delNetwork if we want to skip libvirt's
	add-network.
	When vdsm is up it is syncing the libvirt network with host bridge.

2012-01-11  Federico Simoncelli  <fsimonce@redhat.com>

	Set the drive sizes to '0' as default
	In some situations (eg: empty cdrom drive) the 'reqsize' and the
	'apparentsize' arguments are missing and they should be considered '0'.

2012-01-10  huntxu  <mhuntxu@gmail.com>

	BZ#772591 Specify which user/group should be used for core dumps rotation
	New 'su' directive is new to logrotate 3.8.0. This patch breaks systems
	with older logrotate.

2012-01-10  Igor Lvovsky  <ilvovsky@redhat.com>

	Support specParams parameter as dictionary per device

	All size parameters in vm's conf should be strings and not integers

2012-01-10  Federico Simoncelli  <fsimonce@redhat.com>

	Don't try to schedule SPM tasks on HSM
	When the manager tries to run an SPM task on an HSM host the returned
	(and logged) error is not clear:

	Traceback (most recent call last):
	[...]
	  File "/usr/share/vdsm/storage/hsm.py", line 571, in _spmSchedule
	    self.taskMng.scheduleJob("spm", pool.tasksDir, vars.task, name,
	                             func, *args)
	AttributeError: 'StoragePool' object has no attribute 'tasksDir'

	VDSM should verify to be an SPM before trying to schedule any spm
	job.

	Don't change the name of a secured class
	The variable 'name' used to name the secured classes was overridden
	by the 'name' variable used to cycle over the methods.
	The result was that the secured classes were renamed to their last
	method name, eg: storage.sp.StoragePool => storage.sp.setMaxHostId.

2012-01-09  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix warning: File listed twice

2012-01-08  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove unnecessary validates.
	All this instances race with the "recover" state of the VDSM,
	if disk info is required when the StoragePool is not reconnected
	yet.

	Remove unnecessary validation.
	This check prevents VDSM to query info about a disk on a running
	VM after VDSM restart.

	Fixing unnecessary preparePath() call on recover.
	On behalf of Dan Kenisberg.

2012-01-08  Igor Lvovsky  <ilvovsky@redhat.com>

	For BC we should to keep running VM run after vdsm upgrade.
	So, because this vm doesn't have normalize conf we need to build it
	in recovery flow

	Fix sendExtendMsg declaration, should be public

2012-01-07  Saggi Mizrahi  <smizrahi@redhat.com>

	Move domain monitor out of sp.py
	Domain monitoring logic should be seperated from the core pool logic to
	reduce StoragePool class complexity

	Make exporting more pythonic
	This seperated the dispatcher from hsm and allows us to add propertoes
	to all public function with ease

	Move reconnect file existence check
	Move the check to the inside of the _saveReconnectFunction show it's
	always recreated.

2012-01-06  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix getMasterDomain masterVersion handling
	If getMasterDomain() gets -1 as the expected masterVersion it should
	skip the masterVersion equality test and accept whatever version is in
	the MD.

	Fix logging formatting in resourceManager

2012-01-06  Haim Ateya  <hateya@redhat.com>

	BZ#674010 - Fix name error in vdsClient - 'commands' not found

2012-01-05  Igor Lvovsky  <ilvovsky@redhat.com>

	Support new type of vmParams parameter for VM create.
	- Normalize old vmParams to support new type that includes 'devices' key
	- Return normalized conf including 'devices'
	- Add new general Device class
	- Add subclasses for each device: Drive, NetworkInterface, Sound, Video

2012-01-05  Shahar Havivi  <shaharh@redhat.com>

	new verb: migration cancel
	the verb migrateCancel will take vmid and try to stop migration,
	if there is no migration in progress it will return error.

	when migrateCancel stop the migration progress, the migrate verb will
	return error "Migration canceled"

2012-01-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm_reg: rename rhevm.py to engine.py
	Renamed the file rhevm to engine.
	BZ#771414

	rhevm.py: replace RHEV-M string to oVirt-Engine
	Replace RHEV-M string to oVirt Engine
	BZ#771414

2012-01-04  Saggi Mizrahi  <smizrahi@redhat.com>

	Removed useless docs from lvm.py
	Man pages exist for a reason.

	Keeping copies of documentation in the code is necessary cry and will only
	grow stale in time.

	To see the list of fields run:
	$ lvm lvs -o help

2012-01-03  Igor Lvovsky  <ilvovsky@redhat.com>

	Fix floppy drives: bus should be 'fdc'.

2012-01-02  Federico Simoncelli  <fsimonce@redhat.com>

	Compile python files using automake
	In this patch:
	* Use the PYTHON macro to compile python files
	* Remove the redhat-rpm-config build dependency
	* Move the vdsm sos plugin into its own directory to avoid the custom
	  file renaming and to use the PYTHON macro
	* Update the gitignore file and the copyright in the touched files
	* Add the all-local target to force the substitutions in the python
	  files
	* Unify the macro substitution in build-aux/Makefile.subs

2012-01-02  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-reg.conf.in: remove vdc_authkeys_path
	The auth key is defined in deployUtil.py.in
	This conf value has never been used.

2012-01-01  Haim Ateya  <hateya@redhat.com>

	BZ#769179 - Omit getSessionList from vdsClient and its dependent files

2011-12-30  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsmd.8: update man page to reference oVirt
	Replace any remaining reference from RHEV to oVirt

2011-12-28  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-reg: change registration servlet name
	Note that this change prohibits registration of Vdsm to RHEV-M-3.0.
	It depends on ovirt-engine change I4f36a302adbafdc5f9d0bb219896c794cbad31dd
	BZ# 752464.

	replace default bridge name from brVDSM to ovirtmgmt

2011-12-27  Douglas Schilling Landgraf  <dougsland@redhat.com>

	deployUtil: replace rhevm cert to engine
	Note that this patch breaks bootstrap for RHEV-M-3.0

	rename rhevm bridge to brVDSM
	Remove rhevm as bridge and use brVDSM
	http://bugzilla.redhat.com/753879
	http://bugzilla.redhat.com/753571

	Add Fedora support to vdsm-bootstrap
	while (hopefully) maintaining RHEL-5 support, and leaving bridge name
	games to a following patch.

	make vds_bootstrap executable again
	while keeping rpmlint happy.

2011-12-26  Federico Simoncelli  <fsimonce@redhat.com>

	Handle EAGAIN and EINTR in ProcessPool.runExternally

	Add NoIntr utility class

2011-12-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	create /rhev repository
	Currently, the repository /rhev is not created automatically by
	vdsm.spec.in. Without this directory, vdsm doesn't work correctly
	and vdsm will throw errors messages like:
	[Errno 30] Read-only file system: '/rhev' or even 'permission denied'.

2011-12-26  Saggi Mizrahi  <smizrahi@redhat.com>

	Add protocol version selection support for the NFS protocoll

	Support changing retransmission number and timeout for nfs mounts
	Parameter validity is done by mount. Valid ranges should be tested for
	and implemented in the UI.

	Add SharedFS Support
	This adds a new connection type called sharedfs (6). This is a way for
	users to try and use unsupported NAS storage as domains. This is
	considered bad practice and completely unsupported.

	The connection dict should be:
	{"id": <ID>,
	 "connection": <MOUNT SPEC> eg. server:/export
	 "vfs_type": <MOUNT VFS TYPE> eg. nfs
	 "mnt_options": <MOuNT OPTIONS> eg. user=0,noatime

	Minor refactoring

	Rename *FileServer methods to *NFSServer to prevent confusion

	Rearange code in storage_connection to minimize code duplication

2011-12-26  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#736034 - Add metadataignore switch to pvcreate.
	We would like to pre-allocate metadata space in all PVs
	used for our VGs. However, we are using only the metadata
	of the first PV.
	This is important for an occasion where the first PV has
	to be removed and the metadata it carries has to be copied
	into somewhere else.

	Could not have been done without Haim's help.

2011-12-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	storage_connection: unexpected keyword 'timeout'
	remove from mount.Mount() timeout argument
	added to umount() and mount() the timeout argument

	vdsm log:
	==========
	Thread-1265:INFO::2011-12-23 17:47:54,285::storage_connection::128::Storage.ServerConnection:(validae(Request to
	validate NFS storage server)
	Thread-1265:ERROR:2011-12-23 18:47:54,285::storage_connection::291::StoragerServerConnection::(__validadeFileServer)
	Error during storage connection validation: __init__() got an unexpected keyword argument 'timeout'
	Traceback (most recent call last):
	File "/usr/share/vdsm/storage/storage_connection.py", line 264, in __validateFileServer
	TypeError: __init()__ got an unexpected keyword argument 'timeout'

2011-12-25  Federico Simoncelli  <fsimonce@redhat.com>

	Improve the cleanStorageRepository method

	BZ#747917 Don't get information about mountpoints
	The regular os.walk() function tries to identify the files present in
	the given path. Avoiding to descend into the mountpoint is not enough
	to prevent vdsm from getting stuck if a NFS mount is unreachable, we
	should also prevent any other operation, eg: os.path.isdir().

2011-12-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	Restore shared raw disks (after refactoring).

	Optional: Drive.__str__().

	Remove _addFloppy. floppy is now in _drives.
	Where is flipper?

	Remove appendCD. cdrom is now in _drives.

	Normalize support for legacy drives.

	Adding arbitrary disks to _drives.

	Simplified Drive class.

	drives config normalization.
	drives parameters are normalized when passed,
	instead of tweaking the cmd line xml creation.

2011-12-23  Douglas Schilling Landgraf  <dougsland@redhat.com>

	storage_connection: fix variable name
	Replace fileUtils.FSTYPE_NFS to mount.VFS_NFS

	Fix the following error when I tried to add a new NFS mountpoint:

	Traceback (most recent call last):
	File "/usr/share/vdsm/storage/task.py", line 863 in _run
	File "/usr/share/vdsm/logUtils.py" line 38, in wrapper
	File "/usr/share/vdsm/storage/hsm.py", line 1810, in public_disconnectStorageServer
	File "/usr/share/vdsm/storage/storage_connection.py", line 116, in disconnect AttirbuteError 'module' object has no
	attribute 'FSTYPE_NFS'

	Traceback (most recent call last):
	File "/usr/share/vdsm/storage/dispatcher.py" line 87, in run
	File "/usr/shaare/vdsm/storage/task.py" line 1166, in prepare
	AttributeError: 'module' object has no attribute 'FSTYPE_NFS'

	vdsm: Add ovirt_functions script
	Add isOvirt() to validate the current hypervisor.
	Thanks to Mike Burns <mburns AT redhat DOT com> - The original author of these patches.

2011-12-23  Saggi Mizrahi  <smizrahi@redhat.com>

	Refactor mount logic

	Remove uneeded str() calls in hsm.py

2011-12-22  Shahar Havivi  <shaharh@redhat.com>

	promisc hook: added in-line (redirect) mode

2011-12-22  Dan Kenigsberg  <danken@redhat.com>

	BZ#716573 make `ulimit -u` configurable, too
	We need to let Vdsm run hundreds of Vms over lvm

2011-12-22  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix error message composition in refreshLV()

2011-12-21  Federico Simoncelli  <fsimonce@redhat.com>

	Remove extra os.path.join call from getImageVolumes

2011-12-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	Introduce vm.isVdsmImage()

2011-12-18  Shahar Havivi  <shaharh@redhat.com>

	hooks, promisc: note added for inline mode

2011-12-14  Saggi Mizrahi  <smizrahi@redhat.com>

	Reduce the memsize of basic locking object

2011-12-14  Igor Lvovsky  <ilvovsky@redhat.com>

	Part of create pool operation should be done under SPM lock

2011-12-14  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#767111 Extend volume size must be in Megabytes
	In commit c24396af (Merged SPM to StoragePool and HSM) the
	spm.public_extendVolume call was replaced by pool.extendVolume.
	The problem is that they use different units for the size
	parameter, the first one uses bytes and the second one uses
	megabytes.

	In this patch:
	* do not convert megabytes to bytes when calling pool.extendVolume
	* improve logging to record also the size received from the mailbox

2011-12-13  Dan Kenigsberg  <danken@redhat.com>

	supervdsmServer: fix typo
	we must add `pylint -E` to our check-local.

	caps: fix typo
	typo introduced in commit 5ac3213e3ab087

2011-12-11  Eduardo Warszawski  <ewarszaw@redhat.com>

	Naming conventions in Image._baseRawVolumeMerge temp files changed.
	This change is required for succesful recovery of interrrupted
	merge flows.
	After a failed merger of volUUID, no future merges of it can take
	place until the _MERGE volume is removed.
	This is intentional in order to protect user data.

	Remove unnecessary produces from Image.merge() auxiliary functions.

	Image.getSubChain: avoid unnecessary productions of all kinds.

	Produce the SD in FileVolume.getAllChildrenList() once

	Split deletedVolumeName functionality

2011-12-10  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm.spec.in: Requires: tree
	vdsm-sosplugin.py requires the /usr/bin/tree command.

2011-12-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	storage/misc.py: Add validation to oVirt Node
	Check if /etc/ovirt-node-image-release exists too

2011-12-09  Igor Lvovsky  <ilvovsky@redhat.com>

	Set drive's name during Drive initialization

2011-12-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	caps.py: include oVirt Node to OSName
	Add oVirt Node as a supported

	deployUtil: isOvirt() check oVirt release
	Adding support to isOvirt() to validate oVirt Node

2011-12-07  Saggi Mizrahi  <smizrahi@redhat.com>

	InvalidParameterException() takes two args

	BZ#754445 - Separate granting from callback emitting
	Granting has to happen inside the request transaction to prevent races
	with cancel\timeouts. The callback is code that the subsystem does not
	know anything about. For that reason it is crucial to run the callback
	outside of the lock scope. To keep both demands I split up emit() from
	grant().

2011-12-07  Douglas Schilling Landgraf  <dougsland@redhat.com>

	deployUtil.py.in:  add support to restart vdsmd
	vdsm-complete script define reboot() which uses deployUtil.setService("vdsmd", "restart")
	However, deployUtil.setService() just execute the validation for initd
	script (/etc/init.d/vdsmd), if the distro doesn't contain this file it fails
	and do not execute the restart action.

	Since vdsm.spec specify that if it's not RHEL we should use systemd,
	this patch includes the validation for systemd vdsmd service.

2011-12-05  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#745510 Additional rpm fixes required by fedora
	In this patch:
	* Use a standard name for the polkit macro
	* The _unitdir macro requires the systemd-units package
	* Do not ship the vdsm configuration file on rhel
	* Update the project URL
	* Fix typo: bootstrap

2011-12-05  Dan Kenigsberg  <danken@redhat.com>

	Add Shahar to AUTHORS

2011-12-03  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove checkImage
	This API function is unused and is based on buggy functions with outdated semantics.

	Remove checkDomain().
	This API function is unused and is based on buggy functions with outdated semantics.

2011-12-01  Federico Simoncelli  <fsimonce@redhat.com>

	The configuration values must be strings
	The configuration values must be strings to avoid errors such as:

	  TypeError: argument of type 'int' is not iterable
	  (ConfigParser.py:586)

	Apparently the value for vm_sample_disk_latency_interval was the only
	one not respecting this rule.

2011-11-30  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#745510 Fedora rpmlint fixes
	In this patch:
	* Remove shebang from the non-script python files
	* Require iscsi-initiator-utils >= 6.2.0.872-14 (BZ#442980)
	* Move the lvm rules to the appropriate path
	* Use the %ghost keyword for the /var/run paths
	* vdsm-libvirt-logrotate doesn't need to be executable
	* Require only the saslpasswd2 binary instead of the sasl package

	Revise the release versioning
	In this patch:
	* revise the release versioning according to fedora guidelines

	Clean up the config.py format

	Substitute the vdsm paths directly in config.py

	Simplify the vdsm.conf.sample generation

	Add PolicyKit support to access libvirt
	The best approach upstream is installing vdsm limiting the changes of
	the system settings.
	The PolicyKit authentication (chosen by default by libvirt) is allowing
	us to manage the vm's without setting up a password.

	BZ#756693 Handle destroyed VMs in handleStatsException
	After issuing a shutdown/detroy command to a VM, VDSM should expect it
	to disappear and not report an error.

2011-11-30  Shahar Havivi  <shavivi@redhat.com>

	Adding hooks to VDSM
	New custom hooks:
	directlun, fileinject, hugepages qos, smartcard,
	floppy, isolatedprivatevlan, pincpu, smbios, hostusb, numa,
	promisc, scratchpad, sriov, vmdisk

2011-11-30  Federico Simoncelli  <fsimonce@redhat.com>

	Use the vdsm user and group macro consistently

2011-11-30  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#756686 - Avoid looking for suddenly disappeared VMs.

	Remove checkPool.

2011-11-28  Federico Simoncelli  <fsimonce@redhat.com>

	Add an initial systemd service file for vdsm-reg

	Add an initial systemd service file for vdsmd

2011-11-26  Federico Simoncelli  <fsimonce@redhat.com>

	Fix distcheck and gitignore for vdsm-faqemu

2011-11-25  Dan Kenigsberg  <danken@redhat.com>

	fix faqemu for fedora host
	Instead of hacking qemu-kvm under libvirt, use libvirt's domxml <emulator> tag.

2011-11-24  Federico Simoncelli  <fsimonce@redhat.com>

	Do not attempt to configure the iscsid service
	Using an old rhel6 iscsid.conf file to overwrite any upstream system
	configuration is not recommended.
	According to BZ#499222 we just needed to set the node.startup parameter
	to "manual". That can be accomplished using:

	 # iscsiadm -m node -p <ip:port> [-I <iqn>] \
	            -o update -n node.startup -v manual

2011-11-24  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#755596 - Minor Image.merge() cleanup.

	Related to BZ#755596 - Remove unused Task.removeRecovery()
	This function is unused and does not write to the disk.

	Related BZ#755596 - Remove illegal volume marking rollback.

	BZ#755596 - Persist clearRecoveries().

2011-11-23  Federico Simoncelli  <fsimonce@redhat.com>

	Use the defined constants in iscsi.py

	Use the nodiscard option at mkfs time
	Change the mkfs option according to the warning message:

	 $ mkfs -q -j -K <dev>
	 Warning: -K option is deprecated and should not be used anymore.
	          Use '-E nodiscard' extended option instead!

2011-11-23  Igor Lvovsky  <ilvovsky@redhat.com>

	Use exception from libvirt and not from libvirtvm

2011-11-23  Federico Simoncelli  <fsimonce@redhat.com>

	Fix error message in StoragePool.connect
	String formatting has precedence over concatenation:

	 File "/usr/share/vdsm/storage/sp.py", line 681, in connect
	   (hostID, self.spUUID, self._poolsTmpDir))
	 TypeError: not all arguments converted during string formatting

	Removing the addition and continuing the string on a new line fixes
	the problem.

2011-11-21  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Make /var/lib/vdsm read and write, otherwise it will break vdsm_reg.
	Error message during oVirt node installation:

	MainThread::DEBUG::2011-11-17
	11:00:57,778::deployUtil::853::root::makeBridge Failed to del existing
	bridge. out= err=INFO:root:Removing bridge breth0 with vlan=None,
	bonding=None, nics=['eth0']. options={'nics': ['eth0'], 'bonding': '',
	'vlan': ''}
	WARNING:root:
	Traceback (most recent call last):
	File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
	File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
	File "/usr/share/vdsm/configNetwork.py", line 900, in <module>
	File "/usr/share/vdsm/configNetwork.py", line 875, in main
	File "/usr/share/vdsm/configNetwork.py", line 555, in delNetwork
	File "/usr/share/vdsm/configNetwork.py", line 277, in removeNic
	File "/usr/share/vdsm/configNetwork.py", line 153, in _backup
	File "/usr/share/vdsm/configNetwork.py", line 200, in _persistentBackup
	OSError: [Errno 30] Read-only file system: '/var/lib/vdsm/netconfback/

2011-11-21  Dan Kenigsberg  <danken@redhat.com>

	vm.py: drop never-used Driver.bus

2011-11-20  Shahar Havivi  <shaharh@redhat.com>

	BZ#753625 honor displayNetwork again
	added libvirt-network support for add/del network,
	and on vdsm startup add libvirt-network to each local
	network

2011-11-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	Avoid unnecesary produce-invalidate-produce on SD conf changes.

	Fix: HSM should not write metadata (*BlkSize)

2011-11-17  Federico Simoncelli  <fsimonce@redhat.com>

	Fix StoragePool.extendSD definition

2011-11-16  Dan Kenigsberg  <danken@redhat.com>

	spec: require xz explicitly
	Our logrotate configurations explicitly state xz crompression. It would
	be more polite for the spec to state that, and not rely on libvirt's xz
	requirement.

2011-11-15  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#737340 Use the new migrateToURI2 API

2011-11-15  Dan Kenigsberg  <danken@redhat.com>

	BZ#754054 bootstrap: report success first, reboot later
	v2: flush stdout before reboot

2011-11-15  Federico Simoncelli  <fsimonce@redhat.com>

	Strip the trailing newline from libvirt password
	In this patch:
	* read only the first line of the file containing the libvirt password
	* strip the trailing newline

2011-11-15  Eduardo Warszawski  <ewarszaw@redhat.com>

	Adding shared raw disk feature.
	Arbitrary disks can be added as local VM drives.
	Use
	drive=GUID:<guid>,
	or
	drive=UUID:<uuid>,
	Note the mandatory ','

2011-11-14  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#745510 Fedora RPM revisions
	In this patch:
	* use %global instead of %define
	* use Requires instead of Conflicts for selinux-policy-targeted
	* do not modify the sudoers file (we should not try to override
	  a sysadmin custom configuration or misconfiguration)
	* fix a build warning for deployUtil.py
	* fix the libvirt_password path when uninstalling

2011-11-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	Generalize _parseDriveSpec dictionaries.
	parseDriveSpec() accepts now any keys.
	Capable of manage only one key:value, pair as drive= parameter.
	The comma is required for dicts, for one key:value too.

2011-11-14  Dan Kenigsberg  <danken@redhat.com>

	init.d/vdsmd: look for initctl where it is expected
	It may be better to have a vdsmd.in.in game, but let's fix the
	regression first.

2011-11-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#751977 - Raise if VG remove fails.

2011-11-14  Saggi Mizrahi  <smizrahi@redhat.com>

	Rename variables that look like their pointing to a domain

	Fix __cleanupStoragePool()

	Revert change of except to finally in StoragePool.create().
	We need the id set for the entire scope. In StoragePool.attachSD() we
	take another clustered lock and we need the field set.

	Fixed missing parameter when raising exception in resource owner

	dir is a builtin, overriding it is not nice

	Fixed device mapper failing on partition check for non dm devices

	Clean SPM leftovers on HSM init

2011-11-14  Eduardo Warszawski  <ewarszaw@redhat.com>

	Remove redundant StoragePool.spmStarted state.

2011-11-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Cleanup StoragePool.create()
	(Incomplete) cleanup without functional effects.

	MSD and version mandatory when calling StoragePool.refresh()

	Fix attachStorageDomain logic.

2011-11-10  Federico Simoncelli  <fsimonce@redhat.com>

	Add libvirt password as config file

2011-11-10  Dan Kenigsberg  <danken@redhat.com>

	betterThreading.Event is never used; drop it.
	betterThreading was initially conceived to be a drop-in replacement of
	threading.py. However, once we opted for mokey-patching threading.py
	instead, betterThreading.Event has become redundant.

2011-11-10  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#744704 - Do not stop SPM task if in 'racquiring' state

	BZ#744704 - Fix rollback support for complex tasks

2011-11-10  Dan Kenigsberg  <danken@redhat.com>

	BZ#746766 deployUtil: restorecon on created ~/.ssh/ dir

2011-11-10  Igor Lvovsky  <ilvovsky@redhat.com>

	Async tasks should be saved in 'tasks' directory on master domain but not in 'hsm-tasks'

2011-11-10  Dan Kenigsberg  <danken@redhat.com>

	Related to BZ#682513: spec: require mke2fs with -K

2011-11-08  Jarod. w  <work.iec23801@gmail.com>

	Correct the variable name from VDSM-BIN to VDSM-REG-BIN in vdsm-reg script

2011-11-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#751629 - Avoid migrate master if MSD is obsolete.
	In addition deactivate the (block) domain if it's unreloadable.

2011-11-03  Dan Kenigsberg  <danken@redhat.com>

	vds_bootstrap: fix usage string

	fix typo in trying to copy iscsid.conf template

2011-11-02  Saggi Mizrahi  <smizrahi@redhat.com>

	Fixed SPM_mailbox attribute errror

2011-11-02  Dan Kenigsberg  <danken@redhat.com>

	BZ#749151 revive Vm ticket just before migration
	We set a new expiry time on the spice password of the source qemu. That is
	copied to the destination qemu as migration begins. We thus give spice client
	two minutes to connect to destination to facilitate seamless migration.

	v2:
	- revive password only when spice client is connected
	- revive password, do not remove it completely

	v3:
	- do not disconnect current client while reviving password.

	Revert "BZ#727602 setVmTicket: never expire ticket"
	This reverts commit fd1f8a7a117067f1733898734b1c97bdf75d18bd.

	Conflicts:

		vdsm/libvirtvm.py

2011-11-02  Saggi Mizrahi  <smizrahi@redhat.com>

	Move iscsid.conf template outside of the source file

2011-11-01  Dan Kenigsberg  <danken@redhat.com>

	BZ#733000 vdsmd: upstart hates soflinks
	Copy libvirt's upstart job definition instead of linking it.

2011-10-30  Saggi Mizrahi  <smizrahi@redhat.com>

	isMounted() now handles / at end of export in certain distros

	Changed default bridge name to engine

	Fixed reconstruct master

2011-10-29  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix missing arg in sp.StoragePool() call.
	Fix reconstruct master flow.

	Fix unsecured on forceFreeSpm().

	Fix lock release and reversed SPM logic.

2011-10-27  Dan Kenigsberg  <danken@redhat.com>

	configure.ac: find scsi_id on Fedora 16, too.

2011-10-27  Federico Simoncelli  <fsimonce@redhat.com>

	Add the systemd support for bootstrap

	RPM changes for Fedora

	Recreate the run paths when needed
	On some systems the run directory might be mounted as tmpfs (eg: on
	Fedora). The daemon will refuse to start at next reboot if the paths
	aren't recreated.

	Convert the OrderedDict from namedtuple._asdict()
	Since python 2.7 the namedtuple._asdict() method returns an
	OrderedDict, therefore we need to convert it to a regular
	dictionary before marshalling it on xmlrpc.

2011-10-24  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to 726960 - Restore higher version check.
	This check was removed in commit 85b58b7d9 since the manager
	can't send a lower pool version number.
	In spite of this some tests stress this condition.
	Restoring it in order to fix tests results.

2011-10-24  Dan Kenigsberg  <danken@redhat.com>

	use correct path for fencing agent
	There's probably a nicer way to do it with autoconf, avoiding
	os.path.dirname. Comments appreciated.

2011-10-24  Saggi Mizrahi  <smizrahi@redhat.com>

	Fix call to getSpmRole()

2011-10-24  Dan Kenigsberg  <danken@redhat.com>

	BZ#748466 bootstrap: report vendor properly
	Do not compare a string to a function, you are bound to fail.

	BZ#746766 BZ#747337: bootstrap: download selinux module before usage

2011-10-24  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#744755 Don't wait for tasks on shutdown
	During shutdown we can't wait for all tasks to complete because some
	of them might be stuck in D state if the storage is unreachable (eg:
	createVolume preallocated on NFS).

2011-10-24  Dan Kenigsberg  <danken@redhat.com>

	BZ#748222 netinfo: report operstate, not adminstate
	Until commit 4153e08acb8ae23ef79 (fixing BZ#726359), when reporting if a
	network inteface is up or down, Vdsm was considering the operative status.
	That was the correct behavior, since users do not really care that they have
	configered the nic to be up while the line is cut off by evil mice (or quality
	engineers).

2011-10-23  Dan Kenigsberg  <danken@redhat.com>

	BZ#725540 vdsClient: check return code first
	client should not assume that its data exists in the response before verifying
	that the request was served without error.

	Fix bad rebase

2011-10-23  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#729933 - Redefine public_activateStorageDomain()

2011-10-23  Saggi Mizrahi  <smizrahi@redhat.com>

	Switched secure semantics to exclude rather then include

	recoveryMode param is never used

	Merged SPM to StoragePool and HSM
	SPM was an unholy union of two paradigms and was making everything hard.
	This is an attempt to put everything in order

	Made SPM_Mailmonitor independent from SPM

	Made spm securing logic more generic
	 - Security is no longer system wide but instance wide
	 - Security can be used on any class
	 - Security override is supported by the subsystem and doesn't require
	   trickery

	The start of exceptions being independent from the interface

	Refactor dispatcher unicode handling

	Made the logging mechanism more generic
	 - modified storage connection verification to have better errors
	 - pulled out logging logic from dispatcher to a generic decorator

2011-10-23  Dan Kenigsberg  <danken@redhat.com>

	BZ#745390 always report product=RHEV to guest bios
	Laziness is dangerous; patches should be checked.

2011-10-22  Eduardo Warszawski  <ewarszaw@redhat.com>

	Removing references to SDF.

	Remove sdf.py

	Simplify SDF.produce() for removing sdf.py.
	produce() will return a domain or raise StorageDomainDoesNotExist.
	No need for this check.

	Remove SDF.create() for removing sdf.py

	Simplify recycle function for removing the sdf.py

	Change format signature in order to simplify SD recycle.
	Needed for remove the sdf.py

2011-10-19  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#741203 Use cached node id if SPM is active
	Do not invalidate the metadata cache if the node is the SPM and it
	is active. This will prevent the getStoragePoolInfo call to be stuck
	when the domain is unreachable and at the same time won't break the
	fix for BZ#733909.

	In the patch:
	* add the attribute isSPM to the StoragePool class
	* the SPM never requires to invalidate the cache

	BZ#741203 Don't return a value in domain selftest
	The domain selftest doesn't need to return a boolean value, if the check
	fails an exception is raised.

2011-10-19  Dan Kenigsberg  <danken@redhat.com>

	BZ#746766 deployUtil: set proper selinux context to .ssh/authorized_hosts

	BZ#745390 always report product=RHEV to guest bios
	Two years after insisting the ueber-importance of differentiating RHEL
	hosts from RHEV ones, RHN/Satellite suddenly needs us to always report
	"RHEV-H" to the guest, or else the guest would not be recognized as
	virtual by them.

	Disagreing and committing.

2011-10-19  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#746975 - Allow deactivate storage domain if not reachable

2011-10-18  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#741658 Move VM to Down if libvirt reports VIR_ERR_NO_DOMAIN

	Correct the vdsmd init script path

2011-10-16  Federico Simoncelli  <fsimonce@redhat.com>

	Remove unused symlinks

	Minor fixes for distcheck
	In this patch:
	* don't distribute files generated by the substitutions
	* use srcdir as path for substitutions
	* add uninstall-local for the storage subdirectory

2011-10-12  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#743549 - Allow concurrency in task manager

2011-10-12  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#743887 Close lifeline pipe when oop is killed

2011-10-12  Dan Kenigsberg  <danken@redhat.com>

	BZ#744549 getVdsCaps: survive multiple redhat-release rpms
	caps._getKeyPackages() already handles this case. Too bad this was
	forgotten in osversion().

2011-10-12  Federico Simoncelli  <fsimonce@redhat.com>

	Include vdscli.py in the vdsm rpm
	Since we moved to kaxmlrpclib we require vdscli in vm.py which is part
	of vdsm.

2011-10-11  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#742764 - Don't change template's type during createVolume rollback

2011-10-11  Yotam Oron  <yoron@redhat.com>

	Need to also catch AuthenticationError in case connecting to the SuperVdsm fails.

2011-10-10  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#732980 Initialize the block sizes metadata

2011-10-10  Dan Kenigsberg  <danken@redhat.com>

	BZ#736114 bootstrap: override iptables if requested
	vds_bootstrap script gets a new optional argument -f <filename>.
	vds_installer will use the argument to pass the local location of an iptables
	rule file to override /etc/sysconfig/iptables.

2011-10-10  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#743272 - dirList IS and WAS dirList.

2011-10-09  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#738120 - Logging in OOP - drop identical messages.
	Somehow we get every log 3 times in the queue.
	In the future we will be need to find out the real reason
	for such behavior and fix it. For now just drop identical messages.

	Related to BZ#738120 - Logging in OOP.
	Now we can use logging in OOP operations.

	Add partial vms list support to the regular 'list' query.
	Usage: vdsClient 0 list [table/ids/long] [vms:vmId1,vmId2]

2011-10-09  Dan Kenigsberg  <danken@redhat.com>

	BZ#743828 allocate only 32MB vram for multiple qxl monitors

2011-10-07  Dan Kenigsberg  <danken@redhat.com>

	BZ#740158 netinfo.speed(): never report -1 speed
	Related to Bug 709674: sysfs may report -1 speed (in unsigned 16- and
	32-bit integers) for disabled nics. Vdsm should report their speed as 0.

2011-10-07  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#720385 - Report disk latency (read , write & flush ) for each storage device.

2011-10-07  Yotam Oron  <yoron@redhat.com>

	BZ#741856 delete rhevm cert before conf_update
	Delete CA certificate before updating vdsm-reg.conf, to avoid certificate
	collision in the case of later re-configuration with no fingerprint verification

2011-10-07  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#740887 Tune cache dirty ratio
	Tuning the dirty_ratio and dirty_background_ratio kernel parameters
	increases I/O throughput from the guests, improves fairness between
	the guests and reduces the ability of a buffered writer to starve
	guests.

2011-10-07  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#732765 - Drop disktotal/diskfree parameters for unreachable domains

2011-10-05  Yotam Oron  <yoron@redhat.com>

	BZ#737722 Do not pass cmdline args to grub in RHEV-H
	cmdline args are only needed in installation time,
	oVirt has a builtin functionallity to not pass the args
	to grub

2011-10-05  Dan Kenigsberg  <danken@redhat.com>

	BZ#743122 libvirtvm.create: honor tdf param
	Some guests (mostly Windows) need the time-drift-fix to keep up their
	clock.

	v2
	- Invert default, as KVM's Dor says it is safe enough for all guests.

2011-10-05  Federico Simoncelli  <fsimonce@redhat.com>

	Don't pollute the root directory during installation

2011-10-05  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#736301 - Don't fail lvm.getVGbyUUID() if unreadable VGs found.

2011-10-05  Federico Simoncelli  <fsimonce@redhat.com>

	Remove unused TaskResource class

	Correct typos for 'successfully'

2011-10-04  Dan Kenigsberg  <danken@redhat.com>

	BZ#742267 server_connection: checking access is enough
	There is no need to verify that a directory/mountpoint is owned by
	vdsm:kvm. All we need is vdsm accessibility. Ownership requirement was
	added in downstream commit 9fb05359 for local storage, and later
	(http://gerrit.usersys.redhat.com/776) extended to all storage types.

2011-10-03  Adam Litke  <agl@us.ibm.com>

	BZ#735621 fileSD: Fix remotePath in SD metadata (V3)
	Changes since V2:
	 - Rename mountToRemotePath() to getRealPath() and define it in each child
	   class.

	Changes since V1:
	 - Derive the remotePath from self.mountpoint instead of using the metadata

	The current method for gathering a LOCALFS Storage Domain's remotePath
	property does not work because these domains are connected with a symlink,
	not a mount.  Fix up the current code so that it handles links and
	mountpoints.

2011-10-03  Gal Hammer  <ghammer@redhat.com>

	Related to BZ#736422: Fixed a typo in command's name.
	The RHEV-Agent send a "session-lock" notification but vdsm
	expected to receive a "session-locked".

2011-10-03  Mark Huth  <mhuth@redhat.com>

	BZ#716573 make vdsm's `ulimit -n` configurable

2011-10-03  Dan Kenigsberg  <danken@redhat.com>

	BZ#741190 never add a second "vdsm" stanza to logrotate.d/libvirtd

2011-09-27  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#732980 Devices block size must be 512

	Don't use a list to calculate VG size

	BZ#732980 Check block size on VG commands

	BZ#732980 MD tag must be in blocks unit
	This patch fixes the unit used for the MD tag (blocks instead of
	bytes) and completes the support for the new MS tag which holds
	the size (in blocks) of the metadata.

2011-09-27  Yotam Oron  <yoron@redhat.com>

	BZ#735725 - Insert a configuration line if not exists
	- Simple configuration line insertion if missing

2011-09-27  Dan Kenigsberg  <danken@redhat.com>

	Replace m2crypto: re-add kaxmlrpclib

	SecureXMLRPC: work with python 2.7, too.

	Replace m2crypto: re-add timeout

	read thp state from its upstream location first

	make /etc/init.d/vdsmd workable under F15

	Replace m2crypto with python's standard ssl

2011-09-26  Dan Kenigsberg  <danken@redhat.com>

	BZ#735725 vdsm-reg: add a default (empty) ticket
	Code should not assume 'ticket' already exist in conf file, as this is a
	new addition.

2011-09-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#732416 fix deleteMultipleVolumes().

2011-09-23  Dan Kenigsberg  <danken@redhat.com>

	BZ#740158 netinfo: never report negative speed
	Even if, for some reason,

	    /sys/class/net/eth0/speed

	had a negative value, we should not report it as such. It justly
	confuses users.

2011-09-22  Douglas Schilling Landgraf  <dougsland@redhat.com>

	deployUtils.py.in: fix typo
	- Replace Faild to Failed

2011-09-21  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#688616 Fix kernel requirement in the spec file

2011-09-21  Dan Kenigsberg  <danken@redhat.com>

	BZ#688616 re-enable cgroups with kernel scaling issue fixed
	Once we are shipping with kernel >= kernel-2.6.32-150 with a fix to
	kernel BZ 623712, we can drop this hack an re-enable cgroups.

	This reverts commit b48a4d9b2ce2162 and adds explicit kernel rpm
	dependency.

	The specific kernel version is not strictly important - we just want to
	make sure it is a RHEL-6.2 kernel.

2011-09-20  Yotam Oron  <yoron@redhat.com>

	BZ#735725 - Don't remove ticket option from configuration file
	Rather than removing - set it to empty string

2011-09-20  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#735932 Use redhat-release file during bootstrap
	The system-release file is not present on RHEL5.

	BZ#733669 Avoid local hostname check on RHEL5

	BZ#731598 Fix syntax in _addNetwork for RHEL5

2011-09-20  Dan Kenigsberg  <danken@redhat.com>

	BZ#739645 getHostUUID: ignore dmidecode comments
	`dmidecode -s system-uuid` may produce the likes of

	 # SMBIOS implementations newer than version 2.6 are not
	 # fully supported by this version of dmidecode.
	 30353036-3837-4247-3831-303946353250

	lines beginning with hash (#) should not be included in the reported uuid

2011-09-19  Dan Kenigsberg  <danken@redhat.com>

	Synchronize libvirtconnection.get()
	I'd like to consider making _ongoingCreation bigger than 1, and to
	let all parts of the code a safe access to the libvirt connection.
	libvirtconnection should never have trusted its user to take care of
	the synchronization. Taking a lock would not slow down the seldom-used
	libvirtconnection.get() noticeably.

	StoragePool.__rebuild(): implement oldLinks as a set
	We don not care about order within oldLinks, but we do care about quick
	removal. Set it is.

	Related to BZ#726400 do not remove links to known domains
	Code introduced in commit 8ca7b3998f63d7555d253a66e02a23d577652233 was
	buggy as it kept oldLinks intact after identifying a domain dir within
	it. Later, all oldLinks were removed since
	(oldie not in domUUIDs) is always True.

	This patch reverts to former logic: as a domaindir is identified, it is
	pruned from oldLinks. Left oldLinks are removed from disk.

2011-09-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#737329 - Fix masterVersion error log in getMasterDomain().

	Related to BZ#726400 - Fix StoragePool.__rebuild() new lvm.getVGs() usage.

2011-09-15  Max Benenson  <mbenenso@redhat.com>

	fix formatting error on ImageDeleteError

2011-09-15  Federico Simoncelli  <fsimonce@redhat.com>

	Remove check for incoming migration in _highWrite

	Use the correct events to end migration

	BZ#733669 Improve error reporting for wrong local hostname
	This patch improves the error reporting when migration fails.
	It is mainly designed to return the new error 'wrongHost' to
	the manager when the migration destination has a wrong local
	hostname (which will cause the migration to fail without any
	informative message).
	Additionally it checks the local hostname during the bootstrap
	process and produces a warning if needed.

	In this patch:
	* add local hostname check during bootstrap (report a warning)
	* return the new error 'wrongHost' if migration destination has
	  a wrong local hostname
	* source node must return a specific error when migration fails

2011-09-15  David Naori  <dnaori@redhat.com>

	BZ#738355 BZ#736422 guestIF: log exception before initialization of 'line'

2011-09-15  Dan Kenigsberg  <danken@redhat.com>

	man page: document behavior on hook failure
	per Geert Jansen's request.

2011-09-15  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#737181  - mount NFS with a higher retransmit rate

2011-09-15  Yotam Oron  <yoron@redhat.com>

	BZ#735725 - Add installation flow for the RHEVH
	- Add a 'ticket' variable in the vdsm-reg.conf
	- Send the ticket with the regiatration request
	- Delete ticket if registration is successful or retries quota is over

	BZ#736154 - Add root password configuration option in the rhevm tab
	- Add root password configuration option
	- Enable remote access

2011-09-15  Dan Kenigsberg  <danken@redhat.com>

	createVolume: fix default values for two args
	When createVolume is called without specifying explicit values for
	srcImgUUID and srcVolUUID, None value was passed done the chain, running
	havoc in async task creation.

	This was not noticed since vdsClient and RHEV-M fill these args with
	volume.BLANK_UUID. This patch makes Vdsm itself follow suit and have
	sane defaults.

2011-09-15  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#726400 - Remove lvm operations from StoragePool.__rebuild().

2011-09-14  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#730778 - Add timeout when acquiring resources in prepareVolume
	Also added seperate timeout for prepare volume operations because they
	might take longer

	BZ#736103 - Raise error when volumes acquision fails in image resource factory
	I chose not to reraise but to do `if failed:` because `raise e` would
	have lost some of the exception information and I hate it when that
	happens

2011-09-13  Yotam Oron  <yoron@redhat.com>

	BZ#736154 - Add rhevm_admin_password kernel param
	- Add rhevm_admin_password to kernel params
	- Override root password with the rhevm admin password (to be changed in
	  the future to a rhevm admin user)

2011-09-13  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#737329 - Remove verifyMasterDomain().

	Related to BZ#737329 - Beautify StoragePool.masterDomain usages.

	Related to BZ#737329 - Simplify getMasterDomain().
	Unveil the behaviour of getMasterDomain() without parameters.
	verifyMasterDomain() can't return None.

2011-09-12  Saggi Mizrahi  <smizrahi@redhat.com>

	Related to BZ#723579 - OOP Handlers shouldn't print to stdout on failure

	BZ#725967 - Have global pool users use the limiter as well
	In the last patch in the quest for using only 1 storage pool I left out
	the global pool users. Because the global pool was initialized on import
	because after this patch all the handlers are created at once this
	caused all the handlers to be created on import. This made the pool act
	strange on certain occasions. The fact that the global users didn't pass
	through the limiter was a mistake in itself.

	This patch:
	* Moves ProcessPoolLimiter to the processPool module because it is
	  the correct place and I didn't want all the global pool users
	  importing sd.py.
	* Removes ProcessPoolDict and creates a new class called
	  ProcessPoolMultiplexer that does the same thing but does not inherit
	  from dict which means you don't get the __set__ methods and other
	  garbage. It also moves the logic to the processPool module.
	* Adds getProcessPool() to outOfProcess so there is convenient access
	  to the global multiplexer.
	* Adds getGlobalProcPool() to outOfProcess so global pool users can get
	  the global pool on demand and not on import
	* Changes all calls to the global process pool to go through the
	  aforementioned methods so that the pool is never created on import

2011-09-12  Dan Kenigsberg  <danken@redhat.com>

	BZ#736316 persist network config on rhevh, too.
	On RHEV-H we should not really worry about backing up old configuration
	files, since they are already stored under
	/config/etc/sysconfig/network-scripts. However, vdsm-store-net-config
	looks under the netconfbackup dir for the files it needs to store - when it
	sees nothing there, nothing is persisted for next boot.

	Quickest fix is to make configNetwork._persistentBackup() hold a copy of
	ifcfg-* in netconfbackup for rhevh, too.

	Makefile: define extra_release only for nonempty BUILDID
	Formerly, make rpm without BUILDID produced:
	error: Macro %extra_release has empty body

2011-09-11  Joey Boggs  <jboggs@redhat.com>

	BZ#734917 set tui page title to black text

2011-09-11  Dan Kenigsberg  <danken@redhat.com>

	getVdsStats: report a unique generationID whenever vdsm is restarted
	RHEV-M wants to notice when vdsm is restarted (rhevm bug 684583).
	I must say that I am not 100% sure why RHEV-M wants that.

2011-09-11  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#734712 - Set vdsm:kvm ownership to master dir.

	BZ#733373 - Remove the pool level vsm and tasks links.
	As verified by the previous version of this patch, the pool level
	links to the tasks and vms are superflous, dangerous and can
	prevent spm restart.
	Since they are unused, best if they are not created at all.
	cleanupSpmLinks() removed so it can't fail.
	_createSpmLinks() removed too.

	BZ#732416 Introduce deleteMultipleVolumes

	Related to BZ#732416 - Remove Irs throttling during copy.

	Related to BZ#732416 - Remove volume.qemuCommit()

	Related to BZ#732416 - Remove idle param in volume.qemuRebase()

	Related to BZ#732416 - Remove unused idle param in volume.qemuConvert()

	Related to BZ#732416 - Fixes to misc.ddWatchCopy()

	Related to BZ#732416 - Remove unused idle parameter from misc.watchCmd()

	BZ#732416 - Pluralise lvm remove LV(s) verb.

	Related to BZ#732416 - Unify criteria for active LV in lvm cache.

2011-09-08  Federico Simoncelli  <fsimonce@redhat.com>

	Don't override the rpm topdir macro settings

2011-09-08  Gal Hammer  <ghammer@redhat.com>

	Rewrote the _filterXmlChars after a code review.
	Using constant to generate restricted characters only once and a little speed improvment when returning the filtered string.

2011-09-08  Dan Kenigsberg  <danken@redhat.com>

	BZ#735932 vds_bootstrap: read version from /etc/system-release
	Former patch for this bug fails measerably on RHEL hosts.

	v2:
	- no need to look for /etc/rhev-hypervisor-release even on old RHEV-H.
	v3:
	- no need to loop at all: /etc/system-release points to the right file.

2011-09-08  Gal Hammer  <ghammer@redhat.com>

	BZ#736422: A new JSON-based protocol with the guest's agent.
	In order to recover from a malformed message send from the guest's
	agent, a new JSON-based protocol was implemented. This allow vdsm
	to drop bad messages (messages are terminated with a '\n' character)
	and handle the following good messages.

	This patch also include code related to BZ#729254 as the new
	protocol includes the disk usage information.

2011-09-07  David Naori  <dnaori@redhat.com>

	BZ#726970 iscsiadm: Return an appropriate error code to ISCSI_ERR_LOGIN_AUTH_FAILED

2011-09-07  Yotam Oron  <yoron@redhat.com>

	BZ#731698 - Fix syntax error

2011-09-07  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#732914 Establish libvirt connection on startup

	BZ#732914 Default signals handlers in processPool

2011-09-07  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#728958 Don't check read delay when domain was not produced

	BZ#733909 - double check spm id before claiming being it

2011-09-07  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#731598 Use the correct port in waitRouteRestore

	BZ#732652 Avoid logging in the processPool Helper
	Logging can cause a deadlock in a multi-threaded multi-process
	environment therefore closing the logging file descriptors is
	not enough we should also remove all the handlers.
	Reference: http://bugs.python.org/issue6721

2011-09-07  Dan Kenigsberg  <danken@redhat.com>

	Related BZ#735932: bootstrap: no need to install DEVEL_PACKAGES
	Bootstrap takes too long. Some of this time is wasted on installing
	pacakges we do not really need any more.

	BZ#735932 vds_bootstrap: do not require and do not use redhat-lsb
	redhat-lsb is no longer installed on RHEL by default, and comes with a
	heavy dependency list. Using it lengthen installation time needlessly.

	v2:
	- drop remnants of lsb from configure.ac
	- do not require redhat-lsb
	- search all files for release info
	- fix logging typo

2011-09-07  Yotam Oron  <yoron@redhat.com>

	BZ#602338 - Reset vdsm-reg conf file on certificate fingerprint verification failure
	When the certificate verification failed, need to reset the vdsm-reg
	conf file so that the ovirt node will not register

2011-09-06  Dan Kenigsberg  <danken@redhat.com>

	vdsm.spec.in: report upstream URL

2011-09-06  David Naori  <dnaori@redhat.com>

	BZ#735068 - remove not existing volume.spUUID from VolumeGeneralException.

2011-09-06  Saggi Mizrahi  <smizrahi@redhat.com>

	Remove log collector as it's no longer needed

	subprocess's shell parameter is evil

	BZ#725967 - one process pool to rule them all
	Instead of having a process pool per domain use one pool but limit the amount of
	workers a domain can hold at any given time.

2011-09-05  Yotam Oron  <yoron@redhat.com>

	BZ#733910 - Clean links in directories in __cleanStorageRepository
	os.walk() sees links to directories as directories, so the code
	tries to delete the links with rmdir(), fails, and then the consequent
	rmdir() of the parent dir also fails since the directory is not empty.
	Instead of rmdir(), unlink() a link.

2011-09-05  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#734136 - Stricter partition detection

2011-09-05  Federico Simoncelli  <fsimonce@redhat.com>

	Strip gerrit headers from changelog

2011-09-05  Yotam Oron  <yoron@redhat.com>

	BZ#719857 - Rhevh give user a warning before press the "reject"
	Instead of rebooting the host, fail the configuration and notify the user

2011-09-05  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#734768 - Handle 'guest' element being missing in libvrit caps

2011-09-05  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#732275 - Stop all repoStats threads that were started during reconstructMaster.

2011-09-04  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#732416 - Remove volume.Volume.delete()

	Related to BZ#726400 - ISO domain on block is not supported.

2011-09-04  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#723579 - Disown child procs so they wouldn't hold VDSM shutdown
	This patch touches a protected variable in the python multiprocessing
	framework. This is not ideal but necessary to keep VDSM from getting
	stuck waiting for a child.

	BZ#732245, BZ#732269 - Handle EAGAIN and EINTR in AsyncProc.communicate

2011-08-31  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#732765 - Don't return empty strings for 'disktotal'/'diskfree' on unreachable domains during getStoragePoolInfo

2011-08-31  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#734184 - Fix new killall

2011-08-31  Yotam Oron  <yoron@redhat.com>

	BZ#705058 - Don't create a new pool object on storage refresh
	Use the standard interface for pool connection and avoid double pool creation

2011-08-31  Federico Simoncelli  <fsimonce@redhat.com>

	Add a buildid name to the rpms when specified
	It's now possible to build the rpms appending an arbitrary name for the
	packages:

	  $ make BUILDID=.bzXXXXXX rpm
	  vdsm-4.9.0-0.63.g28186b7.el6.bzXXXXXX.x86_64.rpm

2011-08-30  Saggi Mizrahi  <smizrahi@redhat.com>

	Don't include vdsClient in tarball

2011-08-29  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#731750, BZ#733239 - handle missing libvirt lograte config
	* I also added restorecon in case there is a configuration where
	  logrotate conf file should have a special context.

	VDSM failed to start if it couldn't find the original libvirt logrotate
	configurations. Because we just replace the configuration there is no
	need to actually make sure the old one existed. If it didn't we can just
	create a new config with default permissions.

2011-08-25  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#732272 Activate nics in the correct order

2011-08-25  Saggi Mizrahi  <smizrahi@redhat.com>

	Add getDevUuid() to device mapper
	This method though unused is pretty useful and I wouldn't want people
	misimplementing it. This is a small part in making the device mapper
	volume complete and useful outside of vdsm.

	Don't subprocess for killall
	This is safer, quicker, removes one more subprocess call.
	This also has the added benefit of giving us proper error codes so we
	can differentiate between "no process found" and "failed to kill
	process".

	Get dmId from device number instead of looking for it

	BZ#730946 - detect ISCSI HBAs as ISCSI

2011-08-25  Federico Simoncelli  <fsimonce@redhat.com>

	Remove all the references to VDC from logging

2011-08-25  Yotam Oron  <yoron@redhat.com>

	BZ#725992 - Make sure vdsm-reg runs after every configuration changr
	Stop vdsm-reg before the configuration is written, wirte the configuration and start it again.

2011-08-25  Federico Simoncelli  <fsimonce@redhat.com>

	Remove symlinks for subsequent autobuild runs

2011-08-25  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#726400 - Remove BlockStorageDomain.refreshSpecialVolumes()

	Related to BZ#726400 - A dict is not a list.

	Related to BZ#726400 - Remove unnecesary import.

	Related to BZ#726400 - Rename links for cleaning

2011-08-25  Dan Kenigsberg  <danken@redhat.com>

	BZ#602338 vdsm-reg: take fingerprint param into consideration
	Without this spelling error fixed, management_server_fingerprint
	parameter is always ignored.

2011-08-25  Haim Ateya  <hateya@redhat.com>

	BZ#732772: vdsClient - fix attribute error using getIsoList when ISO domain doesn't exists in pool

	BZ#732933: vdsClient - getFloppyList returns with KeyError

2011-08-25  Yotam Oron  <yoron@redhat.com>

	BZ#732850 - Change defaults in RHEV-M registration dialog
	- Change default RHEVM port to 8443
	- Change verify checkbox wording

2011-08-23  Federico Simoncelli  <fsimonce@redhat.com>

	Check for pyflakes to be installed

2011-08-23  David Naori  <dnaori@redhat.com>

	Related to BZ#730297: Dont set connAct 'disconnect' on vnc.

2011-08-22  Daniel P. Berrange  <berrange@redhat.com>

	Automatically generate ChangeLog file during make dist
	This adds a script that will automatically generate the ChangeLog
	file content from the git changelog. This is performed only when
	running 'make dist', via an automake hook

	* .gitignore: Don't ignore the entire of build-aux/
	* Makefile.am: Add hook to generate ChangeLog
	* build-aux/gitlog-to-changelog: Script for generating ChangeLog
	  from GIT history

	Add some useful content to the AUTHORS file

	Add control script for automated builds
	The http://autobuild.org/ tool is a framework for doing automated
	builds from upstream source, including builds of RPMs. The file
	autobuild.sh is a simple script that integrates with this tool.
	It can also be run directly by developers

	  export AUTOBUILD_INSTALL_ROOT=$HOME/builder
	  ./autobuild.sh

	* vdsm.spec.in: Add a unique counter for automated builds
	* .gitignore: Ignore results.log file
	* autobuild.sh: Add script for doing automated builds of source
	  and RPM

	Make sure autogen.sh always runs configure
	Standard practice for an autogen.sh script is to always run the
	configure script. In addition 'libdir' cannot be assumed to be
	/usr/lib, rather than /usr/lib64.

	* autogen.sh: Fix --system for x86_64 and always run configure

	Add missing GPLv2+ headers & standardize existing headers
	Ensure all .py and .sh files contain a standardized GPLv2+
	header comment. This fixes the obsolete references to the
	now deleted LICENSE_GPL_v2 files

	All copyright dates are extended to cover 2011. Any files
	without existing headers had a 2011 date stamp added.
	Recommendation is for all dates to be extended on the 1st
	of Jan each year

	Make the README file more useful
	It is not important to have a full GPLv2+ boilerplate in the
	README file. It can just refer to the main COPYING file and
	note the OpenSSL exception.

	More important for the README is info about what VDSM is, how
	to install it, package it and how to report bugs / get help,
	etc

	* README: Update content to be more useful

	Ignore all autogenerated files

	Make tests work in a non-GIT checkout environment
	Replace the 'dist-hook' target, with the 'check-local' target,
	which is the automake standard for adding tests to 'make check'.
	Add 'pyflakes' as a build pre-requisite for the RPM, and run
	tests as part of the RPM build process

	* Makefile.am: Switch to use 'check-local' for tests and avoid
	  use of GIT commands
	* vdsm.spec.in: Add BR on pyflakes & add %check section

2011-08-18  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#726105 - Check that qemu can also access file mounts
	v3:
	- use both qemu and kvm groups when testing access to directory
	v4:
	- add OOP handling. I hate NFS.

2011-08-18  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#728381 -  Add additional 'alert' in getStoragePoolInfo if VG's metadata too small

	BZ#728381 - Return 'alerts' key for each domain in getStoragePoolInfo query

2011-08-18  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#726960 - Unify SD.validate signature.

2011-08-17  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to 726960 - Remove unused StorageDomain.deactivate()

	BZ#730912 - Optimize BlockVolume.findImagesByVolume()
	Fixes a reg introduced by lvm.lvsByTag() in:
	http://gerrit.usersys.redhat.com/#change,764

2011-08-17  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#728874 - vdsm-logrotate shouldn't prints invalid error message

2011-08-17  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#730536 Bootstrap should create VDSM_DIR
	The bootstrap needs to create the VDSM_DIR in order to successfully add
	it to sys.path.

2011-08-16  David Naori  <dnaori@redhat.com>

	BZ#717868: Use iscsiadm return code to indicate existing session
	Now that iscsiadm return ISCSI_ERR_SESS_EXISTS in case session
	is already logged in, we can use that and remove checkSession().

2011-08-16  Federico Simoncelli  <fsimonce@redhat.com>

	Run pyflakes and exception check before dist

	Fix the storage exception check

	Fix make distcheck
	It's now possible to run "make distcheck" to verify that we are
	properly shipping, installing and removing the relevant files.

	Change-ID: I0ea26d65baf633265e201094e1c2c40859276203

2011-08-16  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#726960 - Recognise faulty domains on deactivateSD.

2011-08-16  Dan Kenigsberg  <danken@redhat.com>

	BZ#730297 setVmTicket: pass "disconnect" to libvirt

2011-08-11  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#722649 - Invalidate domain MD in removeStorageDomain()
	Because the pool might have been destroyed on another host without this
	host's knowledge, don't trust the MD cache before formatting.

2011-08-11  Dan Kenigsberg  <danken@redhat.com>

	BZ#725802 spmprotect: kill vdsm process, do not restart service
	restarting vdsmd service succeeds to stop vdsm process, but later fails
	to start a new one because of various resons. This patch kills the
	service just as `vdsmd stop` does, and waits for 'respawn' to fire up a
	new process. Respawning would succeed once restarting vdsmd is possible.

	task.py: use LoggerAdapter
	Calling _debug() instread of having an adapter hides the line number of
	the caller function.

2011-08-10  Federico Simoncelli  <fsimonce@redhat.com>

	Fix qemu-img epoch in the package dependencies

2011-08-09  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#726952 - Set original volume as leaf in volume clone recovery

2011-08-09  Gal Hammer  <ghammer@redhat.com>

	BZ#727871: guestIF: rewrite the message reading code.
	The previous code handle only one message at a time. This mean that in case of
	multiple messages vdsm handled only the first message while the following
	messages was not handle until more data was send from the guest.

	This patch change this behavior to scan the entire buffer for messages and
	handle all of them.

2011-08-08  Eduardo Warszawski  <ewarszaw@redhat.com>

	formatStorageDomain removes the VG too.
	When removing a SD the VG should be removed too (atomicity).
	Actually this is what RHEV-M does. Therefore the functions
	split is redundant.
	The removeVG function is marked as DEPRECATED (to be removed).
	The VG is removed in this version in order to minimize the
	chance to remain with a VG thats not belongs to a SD.

	Related to BZ#701671 - Return ENODEV if device does not exist.

	BZ#704131 - Activate all image volumes at once.
	Required for performance reasons if the image is deep.
	Candidate to the Ugly Patch of the Month.

	Related to BZ#704131 - Reduce the number of lvm ops during image mgmt.
	lvm.getLV() is called once per LV, instead of once per LV tag in findImagesByVolume().

	Related to BZ#704131 - Simplify getDomains.

	Avoid to do lvm._bootstrap when importing lvm module.

2011-08-07  Dan Kenigsberg  <danken@redhat.com>

	BZ#727920 restart libvirt upstart job upon libvirt upgrade
	We configure libvirt to run as an Upstart job, instead of the default
	SysV service. When libvirt is upgraded it should stop the old libvirtd
	process and start the new one, but it does so only if it is run via
	SysV.

	BZ#726941 vds_bootstrap: fix broken forward-port

2011-08-04  Dan Kenigsberg  <danken@redhat.com>

	supportedRHEVMs: remove non-exsiting rhevm 2.3 version
	The fact that we still report 2.3 was mentioned in BZ#727945

2011-08-04  Federico Simoncelli  <fsimonce@redhat.com>

	Standardize fileUtils.DirectFile behavior
	According to python documentation:

	  The most commonly-used values of mode are 'r' for reading,
	  'w' for writing (truncating the file if it already exists),
	  and 'a' for appending. Modes 'r+', 'w+' and 'a+' open the
	  file for updating (note that 'w+' truncates the file).

	BZ#726630 Use os.access twice for NFS stale handle

2011-08-04  Yotam Oron  <yoron@redhat.com>

	BZ#716919 - Update guest cpu running state after underlying VM is continued
	The guest CPU state should be updated after the underlying machine is
	resumed, so that the right value is read from libvirt.

2011-08-04  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#723579 AdvancedStatsThread should expose stop()
	The VmStatsThread wasn't exposing the stop method and therefore
	it was never stopped during prepareForShutdown.
	Even if it was declared as 'daemon' thread it kept the rest of
	the application running satisfying its requests.

2011-08-03  Haim Ateya  <hateya@redhat.com>

	BZ#727649 - Raise log severity when vdsm fails to run vm

2011-08-03  Dan Kenigsberg  <danken@redhat.com>

	BZ#727602 setVmTicket: never expire ticket
	Revert when libvirt bug 727602 is resolved.

	v2:
	- expire all tickets sometime in 2035

2011-08-03  Federico Simoncelli  <fsimonce@redhat.com>

	Introduce new version system for VDSM

	Use automake to build and install vdsm
	Autoconf is a tool for producing shell scripts that automatically
	configure software source code packages to adapt to many kinds of
	Posix-like systems.
	Automake aims to allow the programmer to write a makefile in a
	higher-level language, rather than having to write the whole makefile
	manually.
	In VDSM autoconf is used to configure paths and check for tools
	required both at build and run time. Automake is used to generate
	makefiles which already include features like recursion and standard
	targets like: all, dist, clean, distclean.

	Path and user substitutions using autoconf

	Use autoconf for external programs

	Initial support for autoconf

	Add a recursive install target in Makefile

	Move vdsm/hooks to vdsm_hooks

	Replace 'cp' and 'mkdir' with $(INSTALL)

	Add SCRIPTFILES group to vdsm/Makefile

	Replace variable PREFIX with DESTDIR

2011-08-03  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#727537 - Actually invalidate lvmCache when asked

2011-08-02  Dan Kenigsberg  <danken@redhat.com>

	BZ#725240 logrotate libvirtd.log often
	Edit libvirt's /etc/logrotate.d/libvirtd and call it every 15 minutes so
	that /var/log/libvirtd.log is rotated and compressed more often

	v2:
	- use correct path to /etc/logrotate.d/libvirtd in cont.d rule
	- keep /etc/logrotate.d/libvirtd mode
	- use full path to coreutils

	v3:
	- use valid comments in /etc/logrotate.d/libvirtd

2011-08-01  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#726630 Use only os.access to check permissions
	The old implementation of fileUtils.pathExists was using a flawed
	re-implementation of os.access as backup check for files with a NFS
	stale handle, the consequence was that accessible files were
	reported as non-accessible.
	We now use os.stat to refresh the NFS handle and then os.access to
	determine weather we can read and write the file.

2011-08-01  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#726410 - Ignore patitioned device (again)

2011-08-01  Juan Hernandez  <juan.hernandez@redhat.com>

	BZ#725720 Add "devcapacity" to PV info
	Add a new "devcapacity" field to the PV info provided by VDSM.
	This is obtained from the "dev_size" from "pvs". This and change
	Ic0bd3c94a6e4999cb91f96c798a0108890321fbd in RHEV-M are
	required to fix bug #716964 in RHEV-M.

2011-08-01  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#726941 Force VDSM_DIR in sys.path

2011-07-31  Haim Ateya  <hateya@redhat.com>

	BZ#722865 - Increment multipath.conf revision (tag) so upgrade will take effect

2011-07-30  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#726359 Use ethtool to get interface state

2011-07-29  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#699976 Bypass host cache when using qemu-img

2011-07-28  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#722754 Limit lvm retries to broken devices

2011-07-28  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#726045 mask OSError in case domain sampling fails

2011-07-28  Dan Kenigsberg  <danken@redhat.com>

	BZ#698173 updateVM: encode ovf data as utf8 on disk
	v2:
	- decode ovf when it is read by getVmsInfo

2011-07-27  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#720981 - Sometimes devices have whitespace in their name file

	BZ#725963 - Fix error handling in isBlockDevice()

2011-07-27  Dan Kenigsberg  <danken@redhat.com>

	BZ#688616 keep cgroup off as kernel support is not ready yet
	We are not yet ready to ship kernel release -150 which solves the cgroup
	bug. Sorry for the noise.

	Related to BZ#688616: do not stop cgroup when vdsmd start
	Oopsy, forgot to revert that one...

2011-07-26  Dan Kenigsberg  <danken@redhat.com>

	Revert "BZ#688616 Turn cgroups off in the installation of a node."
	This reverts commit c622f6a45d9eb34e3203f24b2f53f4e70e37ded9.

	With kernel-2.6.32-150.el6 built, the return of cgroups is imminent.

2011-07-26  Federico Simoncelli  <fsimonce@redhat.com>

	Remove unused tool config-rhev-manager

	Remove unused img_verifier tool

	Remove unused targets and variables in Makefile

	Remove unused external programs

2011-07-26  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#720911 - Update lvm cache filter when an lvm command fails

	Related to BZ#720911 - Move filtering logic to LVMCache Class

	Related to BZ#720911 - Use context manager in updateLvmConf

	Related to BZ#720911 - Split LVMSetup()

	Related BZ#720911 - use iterator instead of generating a list

	Related BZ#720911 - change class name from LVMInfo LVMCache

	BZ#720257 - Resouce manage volume activation properly
	- Instead of using autorelese = False, hsm will save a record of all
	prepare operations so whenever you teardown a volume you know that the
	operation is accounted for.
	- Ignore errors in domain production after release.

	Related BZ#720911 - Read user defined device only once

2011-07-26  Erez Sh  <erez@redhat.com>

	BZ#723198 - Add timeout to migration: abort it if no progress has been made in a while

2011-07-25  Federico Simoncelli  <fsimonce@redhat.com>

	Use system-uuid parameter in dmidecode command

2011-07-25  Dan Kenigsberg  <danken@redhat.com>

	vdsm-logrotate: remove leftovers of coredump handling
	commit 626c4b4f6 moved compression of coredumps into
	vdsm-logrotate.conf, but left error-handling code in vdsm-logrotate.

	BZ#694026 use libvirt's upstart service
	Unlike the default System V init script, the upstart service would try
	to restart libvirtd daemon in case the latter crashes.

	v8
	- use initctl restart properly
	- shutdown conflicting services (libvirtd sysv included) before
	  configuration
	v9
	- do not fail `initctl restart` if libvirtd is not already running
	v10
	- make rpm removal quite

2011-07-23  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#721356 - Use delay to actually check the delay

2011-07-21  Dan Kenigsberg  <danken@redhat.com>

	BZ#720919 spmprotect.sh: remove more log noise
	former patch for this bug left one place where check_renew complains
	that its RENEWDIR was already removed.

2011-07-20  Haim Ateya  <hateya@redhat.com>

	BZ#722865 - Increase fds limit in multipath.conf

2011-07-20  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#720981 - Don't rely on files in /dev/mapper to be symlinks

2011-07-19  Yotam Oron  <yoron@redhat.com>

	BZ#705058 - StoragePool instanciations should be lock protected.
	Add a storage shared lock on the call to _restorePool, since creates a
	new pool object

2011-07-17  Erez Sh  <erez@redhat.com>

	BZ#720425 - No longer using the return value from wait, because there is None.

2011-07-17  Yotam Oron  <yoron@redhat.com>

	BZ#719857 - Add reboot message to certificate reject
	When the user rejects the certificate's fingerprint, the host will reboot -
	added a message about that.

	BZ#705058 - StoragePool instanciations should be lock protected.
	Add a storage shared lock on the call to _restorePool, since creates a
	new pool object

2011-07-17  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#713173 - Add killProc rollback to deleteImage
	When we run deleteImage with post-zeroing flag, we need to issue 'dd' for this.
	The rollback procedure for deleteImage it's actually roll forward.
	In this situation we need first to kill previous 'dd' operation that may hold
	file handler (or LV) open and prevent us to run the new deleteImage.
	Note that in case we need to run this roll forward action on different host (SPM switchover)
	the 'dd' killing will do nothing and still may fail.

	Related to BZ#719255 - Release lock if prepare volume failed
	We need release lock explicitly and not with autoRelease mechanism.
	This mechanism wouldn't work always. It depends on behaviour of
	different Python's components such like garbage collector and so on.

2011-07-14  Robert Munilla  <rmunilla@redhat.com>

	BZ#720670 vdsm-reg: rotate and compress correct log file

2011-07-13  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#717847 - Postpone VM's periodic tasks until all volumes are prepared

2011-07-13  Dan Kenigsberg  <danken@redhat.com>

	BZ#720919 spmprotect.sh: remove log noise
	check_renew may have been called after fence or release have removed
	RENEWDIR. We should not print nonsense to the log in that case.

2011-07-13  David Naori  <dnaori@redhat.com>

	libvirtconnection: Add "VIR_FROM_RPC" to trigger prepareForShutdown.
	libvirt-0.9.3-2 has change the behavior of libvirt disconnection,
	we now should trigger prepareForShutdown in this case too. (Reference: BZ#681911)

2011-07-12  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#712106 - Add lock for template during moveImage operation

	BZ#717952 - Fix race in moveImage with overwrite of VM with several disks on NFS domains

	Related to BZ#717952 - Use 'with' instead of old lock.acquire and avoid unneeded SDF.produce(sdUUID)

2011-07-12  David Naori  <dnaori@redhat.com>

	BZ#720359: Remove lockfile instead of stop libvirt-guests.
	`service libvirt-guests stop` tries to access libvirtd which
	requires sasl authentication. Instead, removing the lockfile
	signifies to libvirt-guests that it has stopped.

	Related to BZ#719516: Make list nicer and include listNames inside.

2011-07-11  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#699976 Related, use RHEVM leasetime and timeout
	Use the values provided by RHEV-M for LOCK_RENEWAL_INTERVAL, LEASE_TIME,
	LEASE_RETRIES and IO_OP_TIMEOUT.

2011-07-11  Eduardo Warszawski  <ewarszaw@redhat.com>

	Fix vgs reload for stale VGs.
	Stale VG: A VG that is in canche but not in lvm data.

2011-07-10  Dan Kenigsberg  <danken@redhat.com>

	Revert "BZ#701398 Set monitorResponse using controlInfo"
	This reverts commit e1a615c9ad91fe5f7fe147cded028954e80ccf08.

	Libvirt-0.9.3 is not yet ready for our consumption; Furthermore, the
	reverted commit does not solve the case of blocked libvirtd.

2011-07-10  Yotam Oron  <yoron@redhat.com>

	Related to BZ#705058 - Don't start monitoring domains when reconstructing master
	recontructMaster caused domain monitoring threads to be created (repostats)
	but were never released. During "reconstructMaster" the storage pool is
	not connected and hence there is no point in monitoring domain liveness at all.

2011-07-10  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#719255 - Release lock if prepare volume failed

2011-07-07  David Naori  <dnaori@redhat.com>

	BZ#719516 vdsClient: avoid possible race in list table.

2011-07-07  Dan Kenigsberg  <danken@redhat.com>

	BZ#719003 vdsbootstrap: fix English text

2011-07-07  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#718993 - Remove vgchange --refresh
	vgchange --refresh:
	    If any logical volume in the volume group is active, reload its metadata.
	vgchange --refresh may be too long when are many LVs in the VG.
	vgchange --refresh was NOT needed for refreshLV after migration in bug 651803,
	since the LV metadata is reloaded using lvchange --refresh.

2011-07-07  David Naori  <dnaori@redhat.com>

	BZ#719301 clientIF: fix log typo.

	BZ#719346 vdsClient: Remove unsupported "stopAllCopies"

2011-07-06  Federico Simoncelli  <fsimonce@redhat.com>

	Return 1 socket when "physical id" not present
	When "physical id" is not present in /proc/cpuinfo return 1 socket.

2011-07-05  David Naori  <dnaori@redhat.com>

	BZ#716675 Remove timezone from kernelDict

2011-07-05  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#707217 - Remove unneeded IO from __createMailboxMonitor.

	BZ#707217 - Refresh only the VG tree without unnecesary lvm gymnastics.
	StoragePool._refreshDomainLinks() needs only to call domain.refreshDirTree(),
	instead of the much more intrusive domain.refresh().
	For fileSD, refreshDirTree() (as well as refresh()) is completely empty.

	BZ#707217 - Remove unneeded refreshSpecialVolumes() call
	Special LVs are activated in the subsequent refreshDirTree() call.

	BZ#707217 - Do not re-produce the msd in __rebuild.

	BZ#707217 - Remove getMasterDomain call from _refreshDomainLinks.
	self.masterDomain already contains the needed data, which should not be checked again in this flow.

	BZ#707217 - Reduce the number of lvm ops in connectStoragepool().

2011-07-05  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#701398 Set monitorResponse using controlInfo

2011-07-05  Yotam Oron  <yoron@redhat.com>

	BZ#680034 - Delegate long blocking operations out of process
	When a NFS server is unreachable, any files related operation
	takes long time (about 6 minutes) before it fails.
	In the case of connectStorageServer, it eventually causes
	rhevm timeout. Instead of doing the file ops in process,
	delegate them to another process with a 1 minute timeout.

2011-07-05  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#717658 - Do lvm cache refresh in SDF.refreshStorage

	BZ#717658 - Remove StorageDomainCache.invalidate().

	BZ#717658 - Remove unnecessary SDF.refreshStorage().

2011-07-03  Dan Kenigsberg  <danken@redhat.com>

	BZ#718488 deployUtil: run on python2.4

	Related to BZ#716692: avoid pyflakes error

2011-07-01  Federico Simoncelli  <fsimonce@redhat.com>

	BZ#716692 Report the real gateway for the networks

	BZ#716962 logrotate: compress logs using the xz format

2011-06-30  Dan Kenigsberg  <danken@redhat.com>

	BZ#716705 refuse to start VMs with "unknown" host osname
	If, due to misconfiguration, the host os is not recognizable, refuse to
	start new VMs as the os name should be passed to the guest bios.

2011-06-30  Igor Lvovsky  <ilvovsky@redhat.com>

	Related to BZ#712106 - Get rid of redundant instance of rmanager

2011-06-29  Erez Shinan  <eshinan@redhat.com>

	BZ#709788 - Don't assume failure when migration times out + specialized exception
	Vdsm waits for an event from libvirt to tell it that migration succeeded.
	If the connection to libvirt is lost, vdsm might think that the migration failed, though it didn't.
	The solution in this patch is to "ping" libvirt before deciding that the migration failed.

2011-06-29  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#713823 - We should not fail if deactivateLV failed during block volume creation

2011-06-29  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#717225 - Check version consistency only for data SDs.
	Only data domains are restricted to be not mixed.
	ISO and export domains can be attach with no regard to their version.

2011-06-29  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#716833 - Fix race in metadata offset computation during simultaneously volume creation in block storage domain

2011-06-28  Dan Kenigsberg  <danken@redhat.com>

	Revert "BZ#716705 refuse to start VMs with "unknown" host osname"
	This reverts commit 3cfe2b9f15705eec9c749fd173bf5634e8919bde.

	Related to BZ#705297: have a single virEventLoopPure thread
	Allowing multiple virEventLoopPure threads causes events being lost.

	BZ#678039 vdsmd: use bash assignment properly
	Bash is not perl.

2011-06-27  Dan Kenigsberg  <danken@redhat.com>

	BZ#716705 refuse to start VMs with "unknown" host osname
	If, due to misconfiguration, the host os is an recognizable, refuse to
	start new VMs as the os name should be passed to the guest bios.

	BZ#715006 set qemu death reason only once
	There used to be a race condition between destroy() setting the exitCode
	to NORMAL, and the onQemuDeath event setting it to ERROR.

	BZ#715006 releaseVm only once
	releaseVm() is called both by destroy() and by onQemuDeath. Since we
	obtain onQemuDeath event following destroy, we used to run it twice.

2011-06-26  Dan Kenigsberg  <danken@redhat.com>

	BZ#715327 connectStorageServer: report original error
	When connectStorageServer: fails, we try to clean after ourselves.
	However, the error code we report should reflect the original cause of
	the error, not a consequential error during cleanup.

2011-06-26  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#713145 getMetaDataMapping: remove duplicate PV metadata if seen

2011-06-26  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#713725 - Remove unused parameters from StoragePool.disconnect.

	BZ#713725 - Remove pool validations from task mgmt.

	BZ#713725 - Removed validateConnectedPool.

	BZ#713725 - Use getPool in validatePoolSD.
	We want validatePoolSD() to raise a specific Storage exception if the pool does not exists, instead of a cryptic KeyError.

	BZ#713725 - Assert that pool is not in dict if connect failed.

	BZ#713325 - Remove StoragePool.state.
	pool.states should be protected by Storage SPUUID lock or are racy in they actual form.
	Therefore are removed.
	If the pool can't be connected it should no be added to the pools dict.
	If the pool failed to be disconnected it will not removed from the pools dict.

	BZ#713725 - Remove StoragePool.isConnected
	No thread (but the one running StoragePool.connect()) can find the pool in the
	state "connecting", since connect() is protected by Storage SPUUID resource.

	BZ#713725 - Avoid leaving disconnected pools in pools dict.

	BZ#713725 - Remove unused StoragePool.validatePoolMVerEqual function.

	BZ#713725 - Remove unused parameter in SPM.isActive.

	BZ#713725 - Remove setPool.

	BZ#713725 - One pools dict to rule them all

2011-06-26  Sanjay Mehrotra  <smehrotr@redhat.com>

	BZ#678039 - If vdsm start fails, 0 exit code is returned
	The current vdsmd returns for start, stop, status, reload and
	reconfigure does not comply with Fedora Initscripts standard.

	The changes allow vdsmd to adhere to Fedora standard of exit codes as
	mentioned in Exit Codes of non-Status Actions, Exit Codes for the Status
	Action sections of fedora project.

2011-06-26  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#712796 expose domain version as string instead of int

2011-06-26  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#676322 - Removed multipath.getDeviceCapacities.

2011-06-23  Yotam Oron  <yoron@redhat.com>

	BZ#707874 - Disable RHEVM configuration in RHEVH until network is up
	    RHEVM configuration will always fail if the network was not configured,
	    therefore don't allow RHEVM configuration until network has been
	    configured.

2011-06-20  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#713185 - getStorageDomainsList return the same domain twice.

2011-06-20  Yotam Oron  <yoron@redhat.com>

	BZ#602338 - Add RHEVM certificate finrgerprint verification
	Add RHEVM certificate finrgerprint verification option for both the
	menus installation and the kernel params installation

2011-06-20  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#708779 - Avoid pools with mixed domain versions
	RHEV-M should not be attempting to join domains of mixed versions into a
	single pool anyway, but let us protect rhevm from itself.

	Related to BZ#676322 - Added getDeviceSize.

2011-06-19  Dan Kenigsberg  <danken@redhat.com>

	BZ#705297 getVdsCaps: memoize libvirt responses

	factor getCaps out of clientIF

	libvirtconnection: cache several connections, one per context

	vm.py: drop more qemu-related dead code

2011-06-19  Erez Shinan  <eshinan@redhat.com>

	BZ#713211 - vdsClient now accepts empty nics argument for addNetwork (regression fix?)

2011-06-19  Yotam Oron  <yoron@redhat.com>

	BZ#709998 - Actually write the port value to the config file during RHEVH installation
	    It so happens that the port value was not written to the config file
	    during menus installation. Fized that.

2011-06-16  Eduardo Warszawski  <ewarszaw@redhat.com>

	Related to BZ#712829 - Simplify refreshSpecialVolumes.

	Related to BZ#712829 - Simplify refreshDirTree.

	Related to BZ#712829 - Remove unnecessary validations in activateLVs flows.

2011-06-15  Igor Lvovsky  <ilvovsky@redhat.com>

	BZ#702906 - Add process pool per domain

	BZ#713196 - Ignore SPM parameters validation during fenceSpmStorage

2011-06-15  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#713215 - Fix tuple startswith.
	devicemapper.getAllMappedDevices returns tuple.

2011-06-15  Yotam Oron  <yoron@redhat.com>

	BZ#602338 - Use standard ovirtfunctions python module instead of the bash version

2011-06-15  Eduardo Warszawski  <ewarszaw@redhat.com>

	BZ#704666 - Avoid unnecesary lvExtends on high write.

2011-06-15  Dan Kenigsberg  <danken@redhat.com>

	Makefile: run pyflake on all .py files
	former code was confused if current directory had *.py files.

2011-06-15  Yotam Oron  <yoron@redhat.com>

	BZ#602338 - Remove netconsole configuration from RHEVH menus
	    This commit removes netconsole configuration from rhevm menus
	    in rhevh installation. The actual support for netconsole is
	    long gone; the menus should match reality.

	BZ#602338 - Make pyflakes happy
	    After rhevm.py was moved to the vdsm repo, pyflakes found a few
	    errors and therefore was not checking this file.
	    Clean the errors and make pyflakes check the file

	BZ#602338 - Move rhevm.py from the ovirt repo to vdsm repo
	    rhevm.py is the file that will present the user with RHEVM
	    configuration menus when the RHEVH boots. It needs to be part
	    of the vdsm repo.

2011-06-15  Saggi Mizrahi  <smizrahi@redhat.com>

	BZ#705058 - Clear repostats on pool deletion

2011-06-15  Dan Kenigsberg  <danken@redhat.com>

	BZ#684764 bootstrap: reconfigure after installation
	And log exceptions if encountered.

	v2: use nicer name for log file, break long lines.

2011-06-15  Tabula Rasa  <cleanslate@redhat.com>

	Initial commit
