2016-05-17  Idan Shaby  <ishaby@redhat.com>

	storage: move hba.py to vdsm storage lib
	This patch moves the module vdsm/storage/hba.py to
	lib/vdsm/storage/hba.py.

	Continuous-Integration: Jenkins CI

2016-05-17  Nir Soffer  <nsoffer@redhat.com>

	storage: Organize imports in storage.iscsiadm
	Continuous-Integration: Jenkins CI

	storage: Organize imports in storage.sdc

	storage: Organize imports in storage.threadPool
	Continuous-Integration: Jenkins CI

	storage: Organize imports in storage.imagetickets
	3rd party libraries such as ovirt_image_daemon should appear before vdsm
	library modules.

	storage: Fix copyright years in storage.imagetickets
	This module does not cotain any code from 2009.

	storage: Organize imports in storage.outOfProcess
	Continuous-Integration: Jenkins CI

	storage:  Move threadLocal module to vdsm storage lib
	Move storage.threadLocal to vdsm.storage.threadlocal

	Continuous-Integration: Jenkins CI

2016-05-17  Yaniv Bronhaim  <ybronhei@redhat.com>

	Move hoststats code to host package
	Continuous-Integration: Jenkins CI

2016-05-17  Martin Polednik  <mpolednik@redhat.com>

	virt: add kernel cmdline reporting
	As we want to control kernel command line from ovirt, we need a way to
	let users (and us) see if the changes are successfully applied. We
	approach this by reporting kernel command line from /proc/cmdline
	without any modifications, allowing for relatively easy debugging.

	Name kernelArgs was chosen as we already refer in the same way to guest
	kernel arguments.

	Also, using this patch as an opportunity to boostrap osinfo tests.

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

2016-05-17  Ramesh Nachimuthu  <rnachimu@redhat.com>

	gluster: add gluster heal info verb
	  Add gluster heal info to get list of unsynced entries
	present in the given gluster volume.

	Continuous-Integration: Jenkins CI

2016-05-17  Martin Polednik  <mpolednik@redhat.com>

	vmtests: use assertXMLEqual in assertBuildCmdline
	Test method assertBuildCmdline worked around whitespace in it's own
	way. We have AssertXMLEqual for that, leading to a more consistent code.

	Continuous-Integration: Jenkins CI

2016-05-17  Yeela Kaplan  <ykaplan@redhat.com>

	Makefile: use tox to run make pep8 and pyflakes
	Restrict the version vdsm uses to validate the code by
	pep8 and pyflake, instead of using installed version.

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

2016-05-17  Tomas Jelinek  <tjelinek@redhat.com>

	migration: log the convergence schedule only if provided
	No need to flood the logs with logs which don't give any added value.

	Continuous-Integration: Jenkins CI

2016-05-17  Irit Goihman  <igoihman@redhat.com>

	tests: both Python2 and Python3 are default in Makefile
	Until now, all tests run in Python2 by default and only
	tests in whitelist also support Python3.
	From now on, all tests, except blacklist will run in
	Python2 and Python3.

	Continuous-Integration: Jenkins CI

2016-05-17  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix rmAppropriateSCSIDevice in reattach
	rmAppropriateSCSIDevice also requires name argument. This slipped as we
	removed reattaching host devices.

	Continuous-Integration: Jenkins CI

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

	net: fake OVS networks as bridgeless
	Bug-Url: https://bugzilla.redhat.com/1195208
	Continuous-Integration: Jenkins CI

	net: consume OVS netinfo by CachingNetInfo
	In order to use KernelConfig, we have to introduce special handling
	in CachingNetInfo for OVS networks. This handling should become
	standard when we report 'nics', 'bond' and 'vlanid' in legacy netinfo
	networks.

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

2016-05-17  Yaniv Bronhaim  <ybronhei@redhat.com>

	Using pkgutil instead of redundant private funcs in configurator
	Added dynamic module import module to be used wherever modules are
	loaded to avoid code duplication.

	Continuous-Integration: Jenkins CI

2016-05-17  Martin Polednik  <mpolednik@redhat.com>

	hostdev: teardown non-scsi devices
	We have previously removed tearing down host devices due to issues with
	some PCI devices. We should still teardown non-pci devices to avoid
	having wrong permissions on usb/scsi udev files - there are no known
	problems with SCSI or USB drivers.

	Continuous-Integration: Jenkins CI

2016-05-17  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: ad_actor_system can not be reset to its default value
	_restore_default_bond_options tried to reset this option to
	00:00:00:00:00:00, which (on Fedora 23) causes "IOError: [Errno 22]
	Invalid argument", during testSetupNetworksActiveSlave.

	Linux documentation (bonding.txt) says that "The value can not
	be either NULL or Multicast".

	Let's add ad_actor_system to EXCLUDED_BONDING_ENTRIES for now
	and assume that if a user set ad_actor_system explicitly, she
	knows the way to reset it, and that is by setting it to the bond's
	own MAC address:

	  In an AD system, this specifies the mac-address for the actor in
	  protocol packet exchanges (LACPDUs). The value cannot be NULL or
	  multicast. It is preferred to have the local-admin bit set for this
	  mac but driver does not enforce it. If the value is not given then
	  system defaults to using the masters' mac address as actors' system
	  address.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-05-17  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix scsi udev rule target
	Previously, the rule worked as expected but did not properly signal
	ownership of the device. That is now fixed with kernel and subsystem
	targets.

	The cause does not affect functionality of hostdev-scsi, but causes the
	rule to be triggered with all udev updates - leading to useless chown
	execution.

	Continuous-Integration: Jenkins CI

2016-05-17  pkliczewski  <piotr.kliczewski@gmail.com>

	json: removal of old schemas
	Continuous-Integration: Jenkins CI

2016-05-16  Idan Shaby  <ishaby@redhat.com>

	storage: move clusterlock.py to vdsm storage lib
	This patch moves the module vdsm/storage/clusterlock.py to
	lib/vdsm/storage/clusterlock.py.

	Continuous-Integration: Jenkins CI

	storage: move fuser module to vdsm storage lib
	This patch moves the module vdsm/storage/fuser.py to
	lib/vdsm/storage/fuser.py.

	Continuous-Integration: Jenkins CI

2016-05-16  Martin Polednik  <mpolednik@redhat.com>

	vmdevices: make disk's makeName public
	makeName is a function that can create udev path to storage device
	based on it's index and interface. Making it public exposes it to VM
	paths, where it is required for followup changeCD changes.

	Continuous-Integration: Jenkins CI

2016-05-16  Dominik Holler  <dominik.holler@gmx.net>

	    AUTHORS: adding Dominik Holler
	    Adding myself.

	Continuous-Integration: Jenkins CI

2016-05-16  Nir Soffer  <nsoffer@redhat.com>

	monitor: Use module logger
	Currently we have two classes using the same logger, and I want to
	extract new classes that will use the same logger. Replace class based
	logger with module logger.

2016-05-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding configure requirements for py3
	Continuous-Integration: Jenkins CI

2016-05-16  Dan Kenigsberg  <danken@redhat.com>

	m4/ax_python_module.m4: do not overwrite PYTHON
	the PYTHON environment variable is overly useful in the configure
	script. AX_PYTHON_MODULE should not overwrite it while testing a
	specific module existence.

2016-05-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Uploading new m4/ax_python_module.m4
	The code is updated for awhile. this patch copies last version of it:
	http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commit;h=b4b57ec0863e56960e9eb5dae726391134e21293

	Continuous-Integration: Jenkins CI

2016-05-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Rename storage.monitor test module
	We use storage_modulename_test.py now.

	Continuous-Integration: Jenkins CI

2016-05-16  Dominik Holler  <dominik.holler@gmx.net>

	netinfo: improve the list of vlan devices on top of an interface.
	The current code assumed that all links on top of an interface are vlan
	links. Since the links could also be of an other type, e.g. veth, the
	current implementation does not behave correctly for links of an other
	type but vlan.

	The improvement is that now we will check if link is of type vlan.

	Continuous-Integration: Jenkins CI

	netinfo: improve the detection if device has VLAN devices on top.
	The current code assumed that the VLAN device respects the naming
	convention of nameOfUnderlyingDevice.VlanId. Since this convention is
	not enforced, the detection fails if the device has VLAN devices on top,
	which do not respect this naming convention.

	The improvement is that now we will check if the device is the used
	device by any link of the netlink library.

	Continuous-Integration: Jenkins CI

2016-05-16  Edward Haas  <edwardh@redhat.com>

	net virt: virt calls should pass through netork.api
	Access from virt to network should pass through the network api
	and avoid accessing internal network modules.

	Continuous-Integration: Jenkins CI

	net: Relocate libvirt nets read to network.libvirt
	Libvirt networks have been read through the netinfo package.
	The service of reading the libvirt networks is used by other
	packages and modules, that do not need netinfo.

	In order to reduce coupling and dependency between modules,
	libvirt related network functionality is being centralized in
	network.libvirt module.
	Libvirt networks read is moved therefore to the libvirt module,
	making it also clear about what networks are reported.

	Continuous-Integration: Jenkins CI

2016-05-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Install nose-1.3.7 always using pip
	In epel7 yum provides only nose-1.3.0 officially. in automation script
	we use NOSE_COVER_PACKAGE flag which does not exist in this nose
	version. To align versions in CI we use pip to install specific version.

	For developers run using make the nose version is not relevant, unless
	they run coverage.

	Continuous-Integration: Jenkins CI

2016-05-16  pkliczewski  <piotr.kliczewski@gmail.com>

	bridge: data verification
	We provide incoming and outgoing data verification with the schema.
	There are two modes how we inform about discrepancies between schema and
	data. We either log a warning or raise an error. This behavior can be
	configured in config.py using api_strict_mode setting.

	Continuous-Integration: Jenkins CI

	bridge: usage of yaml schema
	With this patch we use newly provided yaml schema as base to analyze
	incoming requests and calling verbs.

	Continuous-Integration: Jenkins CI

2016-05-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Separate broken test from good tests
	In commit 29fa0abb687d (storagetests: add a test for
	normalize_local_path) we added a new failing test for path ending with
	slash. To keep the build successful, the test was marked as @brokentest.
	However, since this test uses permuations, all the tests were marked
	broken, instead of only the new test.

	Separate the failing tests from the other, so the good tests will fail
	the build when they fail.

	Continuous-Integration: Jenkins CI

2016-05-16  Martin Polednik  <mpolednik@redhat.com>

	storage: add LegacyCdromPath as DriveSpec
	Engine sends DriveSpec as a string at least one case: changeCD. Since
	we have to be api compliant with older engines, we have to add this
	case to the API. It is done by adding a str alias, LegacyCdromPath.

	Continuous-Integration: Jenkins CI

	storage: extend drives name to allow sata interface
	SATA is widely used physical interface for storage devices. The
	interface uses SCSI protocol, making it similar to SCSI itself in
	terms of naming, but libvirt distinguishes the physical interfaces.

	We therefore add SATA name generation to properly support SATA devices.

	Continuous-Integration: Jenkins CI

2016-05-16  Edward Haas  <edwardh@redhat.com>

	net: Move libvirt module under network
	The neworking libvirt module has been located under the network
	configurators, however it's not really a network configurator.
	There is also a need to use the module from other networking
	packages/modules, like the networking api and netswitch.

	Moving libvirt module from network.configurators to network.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: Expose existing ip address info through the api
	Access to network package should pass through network.api.

	Virt uses the ip address report (from netinfo.addresses.getIpInfo).
	This patch exposes it through network.api.ip_addrs_info.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-05-16  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: explain why we have to reset bonding options to default
	Related-To: Ibe720674e63119e954265735e9f5ccb994c3531a
	Continuous-Integration: Jenkins CI

2016-05-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Introduce vdsm.host package for all host related code
	Continuous-Integration: Jenkins CI

2016-05-16  emesika  <emesika@redhat.com>

	vdsm: return error when status cmd fail
	This patch fixes an issue in the case that status command fails.
	In that case, the code returned a 0 error code which masks the error
	message.
	To fix that, the real error code is returned in the case that the status
	is not 'on' or 'off'

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

2016-05-16  Piotr Kliczewski  <piotr.kliczewski@gmail.com>

	Revert "tests: Mark new bridge test as broken"
	There was a patch pending to be merged and it was merged. This
	test should work now.

	This reverts commit a868b3386bbd2332bca2f62b49560d4c609d2eef.

	Continuous-Integration: Jenkins CI

2016-05-16  Pavel Zhukov  <pzhukov@redhat.com>

	hooks: Add fcoe hook
	This hook is used to enable fcoe on one or several network interfaces

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

2016-05-15  Idan Shaby  <ishaby@redhat.com>

	storage: move misc module to vdsm storage lib
	This patch moves the module vdsm/storage/misc.py to
	lib/vdsm/storage/misc.py.

	Continuous-Integration: Jenkins CI

2016-05-15  Dan Kenigsberg  <danken@redhat.com>

	netinfo: unbreak master
	recently merged commit 5f3c2a7d0ca5 was not rebased on top of the module
	movement of commit ef9926827.

	Continuous-Integration: Jenkins CI

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

	net: canonicalize network before broken network removal
	If a network is removed via _del_broken_network, we do not canonicalize
	and therefore setup can fail in a following code which expects certain
	format.

	This patch adds canonicalization to _del_broken_networks().

	Continuous-Integration: Jenkins CI

	net: report expected devices in OVS netinfo
	Bug-Url: https://bugzilla.redhat.com/1195208
	Continuous-Integration: Jenkins CI

	net: OVS netinfo
	Map OvsInfo to netinfo format used by netinfo.cache:get()

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

2016-05-15  Liron Aravot  <laravot@redhat.com>

	sp: race in domains upgrade prevents further pool upgrades
	When executing _upgradePool() a callback a domain upgrade callback
	is registered to the domain monitor and an initial update thread is
	started for each of the domain in self._domainsToUpgrade (which contains
	the active pool domains).

	Whenever upgrade for domain is ended, the upgrade thread deletes the domain
	from self._domainsToUpgrade, which is racey because that might happen while
	we still iterate over the list. If that does happen, the results are unexpected
	and on some inspected cases we didn't start the upgrade threads for all the
	domains which causes to a bug - an update will be considered running and
	no further pool upgrades could be initiated.

	This patch copies the list to a temporary list before attempting to register
	the callback/start the upgrade threads and by that avoiding that race.

	this solution is simple as its targeted to the 3.6 branch, a more complete
	solution which will also allow concurrent updates is introduced in
	I8e14a3aa33bfab4751ab5d1e3becbeda892da4c3

	Bug-Url: http://bugzilla.redhat.com/1319523
	Continuous-Integration: Jenkins CI

2016-05-15  Francesco Romani  <fromani@redhat.com>

	virt: graphics: enforce spice default mode
	Libvirt grants one additional protection layer for spice channels,
	using the `defaultMode' attribute for the graphics device.
	As the name hints, this allows us to select the default mode (secure,
	insecure) for SPICE channels, if not explicitely specified.

	This patch makes Vdsm use this attribute for improved security,
	depending on the 'ssl' config value.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	schema: yml: fix virt glitches
	Fix minor issues that slipped in during the translation.

	Continuous-Integration: Jenkins CI

2016-05-15  Martin Polednik  <mpolednik@redhat.com>

	storage: add block device naming tests
	Continuous-Integration: Jenkins CI

2016-05-14  Martin Betak  <mbetak@redhat.com>

	migration: dynamic setting of {in,out}bound limits
	Allow updates of incoming/outoging migration bounds as a part of the migrate
	verb. The new values for these bounds are sent as part of the migrate because
	it is best time for the engine to update them (just before they will be
	actually applied - both on source and destination) and also enables us to
	easily differentiate between migrations from older sources (< 4.0) that don't
	send this bound to destination so we can preserve backwards compatibility with
	the new migration retry logic.

	Continuous-Integration: Jenkins CI

2016-05-13  Nir Soffer  <nsoffer@redhat.com>

	monitor: Convert valid to read-only property
	Status.valid was a duplicate of Status.error. This could lead to
	inconsistent state if one of the attributes is not synced with the
	other. Now valid is a property based on Status.error.

	Continuous-Integration: Jenkins CI

2016-05-13  Adam Litke  <alitke@redhat.com>

	storage: Do not reference image dir in backing volume path
	Until now, the backing volume path (to be written into qcow2 metadata)
	was computed as ../<imgUUID>/<volUUID>.  The ../<imgUUID> component
	causes the backing_chain field of volumes to grow every time a live
	merge is performed until it eventually overflows.  The blockSD function
	createImageLinks is now ensuring that all volumes of an image (including
	templates) are in a directory together so we can use just the volume ID
	to reference the backing volume.  File domains hard link templates into
	the directories of images that are dependent so this works for file
	domains as well.

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

2016-05-12  Nir Soffer  <nsoffer@redhat.com>

	tests: Mark new bridge test as broken
	In commit acc19386f66d (rpc: Add test for 'int' parameters in Bridge) we
	added a new test, which fails consistently on the CI and locally.

	The test adds a fake api with 3 arguments, while the schema specify only
	2 arguments, so the new api is called with a missing argument, raising
	InvalidCall.

	Marked as broken for now as it breaks the build.

	Continuous-Integration: Jenkins CI

2016-05-12  Tomáš Golembiovský  <tgolembi@redhat.com>

	v2v: Detect VM with snapshots
	virt-v2v cannot properly handle conversion of VMware machine with
	snapshots. Engine needs a way to know which machines have snapshots and
	which do not to filter them out and/or notify the user.

	Note: The snapshot related API is not yet implemented in libvirt Xen
	driver. It is missing in all libvirt version to date (v1.3.4).

	Continuous-Integration: Jenkins CI

2016-05-11  Idan Shaby  <ishaby@redhat.com>

	storagetests: add a test for normalize_local_path
	This patch adds a legitimate test permutation to
	MountConnectionTests.test_normalize_local_path.
	Since the new permutation breaks the test, it was marked as
	@brokentests.

	Related-To: https://bugzilla.redhat.com/1305529
	Continuous-Integration: Jenkins CI

2016-05-11  Adam Litke  <alitke@redhat.com>

	storage: Add basic BlockVolumeArtifacts
	This patch adds the block specific support for the VolumeArtifacts
	interface.  A BlockVolumeArtifact is first created by adding an LV with
	a special tag.  It is comitted to a BlockVolume by removing that tag.

	Continuous-Integration: Jenkins CI

2016-05-11  Edward Haas  <edwardh@redhat.com>

	virt net: Seperate sriov special domxml conf
	Minor changes in code have been apllied to clearly seperate sriov
	specific config.
	The VLAN tag section has been moved to sriov specific, as it is relevant
	only there.

	Continuous-Integration: Jenkins CI

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

	net: OVS Info
	Gather informations about OVS networks. Output of this object reflects
	current OVS configuration: bridges and their ports.

	This will be mapped to fake netinfo expected by Engine and the rest
	of Vdsm.

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

2016-05-10  Nir Soffer  <nsoffer@redhat.com>

	automation: Fix wiki url in README
	Continuous-Integration: Jenkins CI

2016-05-10  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding arch specific requirements
	After commit f684e752 vdsm package is arch depended and therefore can require
	different packages for each arch (some are not exist for all archs and
	need to be distinguished). The following are requirements that
	vdsm hided as an hack in safelease package.

	Continuous-Integration: Jenkins CI

2016-05-10  Martin Betak  <mbetak@redhat.com>

	rpc: Add test for 'int' parameters in Bridge
	Continuous-Integration: Jenkins CI

	rpc: Make Bridge#_type_fixup more robust
	_type_fixup method assumed that all top-level arguments of rpc calls are
	dictionaries thus failing with arguments of type e.g. 'int'.

	This patch fixes this issues and only recurses deeper if the 'item'
	itself is a dictionary.

	Continuous-Integration: Jenkins CI

2016-05-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: get_external_vms return format for KVM images
	the format is needed for importing from kvm.
	when importing xen/vmware we are using virt-v2v which use qemu-img to
	convert the image to specific format that the user chosen.
	in kvm mode we don't need the conversion we are just copying the image
	with its original format.

	Continuous-Integration: Jenkins CI

2016-05-10  Oved Ourfali  <oourfali@redhat.com>

	spec: change python-yaml to PyYAML
	Seems like python-yaml is provided by PyYAML, and yum complains.

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

2016-05-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: get_external_vms returns additional video info for kvm images
	When importing kvm images we don't have the generate ovf from
	virt-v2v since we use our kvm2ovirt tool.
	engine needs additional video and graphics information.

	Continuous-Integration: Jenkins CI

2016-05-10  pkliczewski  <piotr.kliczewski@gmail.com>

	client: do not protect requests on client side
	We need to keep message content without any changes before sending it to
	the server. If we won't json parser fails with:

	TypeError: '********' is not JSON serializable


	Continuous-Integration: Jenkins CI

2016-05-10  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add vdsClient hotunplug command
	Separated from hostdevHotunplug itself due to possible formatting issues.

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

	hostdev: add support for hotunplug
	Hotunplugging host device without implicit reattachment is very similar
	to different hotunplugs

	Part of an IOMMU group or the whole group can be hotunplugged as there
	is no additional consistency check on VDSM's side. As the verb operates
	on bulk of devices, the return value informs of which devices were
	hotunplugged to allow for keeping track of which were not.

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

	hostdev: expose parameters needed to support hotunplug
	This patch prepares HostDevice for hostdevHotunplug verb. We need an
	xpath to uniquely identify the device in libvirt XML to properly wait
	for device's unplug, and 'device' attribute (the libvirt name) to have
	unique identifier we can return.

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

	hostdev: expose hotplug via vdsClient
	Separated from hostdevHotplug itself due to possible formatting issues.
	Since device specification is required for each device, and the fact
	that it is rare occurrence that a single device would be hotplugged,
	new parser in vdsClient is added.

	Example usage:
	vdsClient 0 hostdevHotplug 9954ff1d-d008-4453-8615-b0b6761ef93f \
	'[{type:hostdev,device:pci_0000_04_00_1},\
	{type:hostdev,device:pci_0000_04_00_0}]'

	(for GPU & onboard HDMI audio)

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

	hostdev/sr-iov: use device setup instead of detach
	SR-IOV and host devices require action before VM is started. We rename this
	action from detach to now generic setup.

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

2016-05-09  mlipchuk  <mlipchuk@redhat.com>

	volume: Add volumePath setter to manifest.
	Fix broken merge volume flow which was introduced at 
	commit 038f073df6c40b418119e74826e9b967707588d8 (VolumeMetadata: Move 
	volumePath).

	Currently when trying to remove a single snapshot,
	an exception is being raised, indicating there was an error
	during source image manipulation: "can't set attribute".

	The propsed fix adds a new setter to volumePath in the volume's manifest.

	Continuous-Integration: Jenkins CI

2016-05-09  Shahar Havivi  <shaharh@redhat.com>

	v2v: add support for importing kvm based vms from libvirt
	Continuous-Integration: Jenkins CI

2016-05-09  pkliczewski  <piotr.kliczewski@gmail.com>

	schema: align schema with the latest merged patches
	Related-To: https://gerrit.ovirt.org/51782
	Continuous-Integration: Jenkins CI

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

	schema: yml: sync existingConnAction with json
	We forgot to update the yml schema after change
	5abd15b . This patch fixes that.

	Continuous-Integration: Jenkins CI

2016-05-09  pkliczewski  <piotr.kliczewski@gmail.com>

	contrib: schema converter
	As part of this change we want to reuse code which was used
	to generate api documentation by process-schema script. It is
	not possible to import it so I moved required functions to
	vdsmapi module from where we could share it for both scripts.


	Continuous-Integration: Jenkins CI

2016-05-09  Shahar Havivi  <shaharh@redhat.com>

	kvm2ovirt: tool for copying images from libvirt
	tool for downloading/copying images from libvirt to ovrit

	Continuous-Integration: Jenkins CI

2016-05-09  Edward Haas  <edwardh@redhat.com>

	net: Move ipwrapper under vdsm.network
	Continuous-Integration: Jenkins CI

2016-05-08  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add support for SCSI
	SCSI devices inside sysfs device tree are different. Normally, we
	require a single sysfs entry in listAllDevices to determine the
	udev path and address of the devices. SCSI requires two entries -
	generic one to determine udev path, and scsi entry to determine address
	and it's host adapter.

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

	hostdev: make _update_usb_device_info more generic
	This is change of naming rather than functionality. The same idea can
	be (and must be) used for scsi devices.

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

	hostdev: report additional information in 'scsi' device
	SCSI capability in sysfs does not include enough information to
	identify the device in human readable way. We therefore fetch vendor
	and product from 'storage' capability, where these correspond to a
	physical device (if there is no physical device upstream, we ignore it).

	Another addition is udev path, that we require to fully construct
	the device in future.

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

	hostdev: expose generic scsi driver char device in device params
	Preparation for upcoming scsi-passthrough patch series. This value can
	be displayed by engine for better UX as it corresponds to generic scsi
	driver device names (e.g. /dev/sg{num}). Main reason is that VDSM needs
	to know the udev path to properly set permissions.

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

	hostdev: report storage model as product
	ovirt-engine frontend only displays values given by vendor and
	product (because it is the most universal device description). Storage
	is a special snowflake in this regard, as it has very nice identifier
	hidden under 'model' key and no product identifier.

	Reporting model instead of (empty) product leads to more understandable UI
	data.

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

2016-05-08  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Add the migration/hibernation event handling (GuestAgent)
	This event allows the guest operating system to prepare for the migration
	and hibernation and do post operations after such events.

	Bug-Url: https://bugzilla.redhat.com/1298120
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	agent: Introduction of first_connect event
	In order to be able to at least attempt reliably that the first connection
	to the virtio channel has been made, we need to block anyone from sending
	a message until at least a connect has been attempted (if even failed)

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

	agent: Guest agent reply capability support
	This patch adds the ability to wait for a reply of the guest agent
	to certain messsages. This is required for instance required for the
	lifecycle events to allow the guest to complete some operation before
	vdsm continues.

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

	virt: Introduction of the GuestAgentEvents class
	This is a convenience class for the guest agent to have callable
	functions for the individual events sent to the guest agent on the
	guest side.

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

	virt: Add new guest agent API function for lifecycle-events
	This patch introduces a new API method to the guest agent which allows
	notifying the guest agent about selected lifecycle events.

	The main purpose of this is to allow the guests to perform actions before
	and after such events because a few selected events might have an impact
	on them.

	Guest-Agent-API-Version: 3
	Bug-Url: https://bugzilla.redhat.com/1298120
	Continuous-Integration: Jenkins CI

	virt: Pass effective guest agent API version during migration
	Currently we're not passing the effective guest agent API version
	during migrations, since VDSM and the guest agent can negotiate this
	version.

	For the feature of lifecycle events for the guest it is needed that
	VDSM already knows the negotiated API version right from the moment
	of the migration completion so we can notify the guest about the
	completion of the migration.

	This will save VDSM from having to re-negotiate the API version,
	and allow us to send the guest agent the required information right
	away.

	In case the passed version is higher than supported, the loweest
	common maximum version will be chosen which will require
	negotiation later on, however it will give VDSM the ability to
	send the event anyway since it implies this feature to be present
	on both VDSM sides of the migration.

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

2016-05-08  Edward Haas  <edwardh@redhat.com>

	net: Move kernelconfig under vdsm.network
	Continuous-Integration: Jenkins CI

	net: Move tc under vdsm.network
	Continuous-Integration: Jenkins CI

	net: Move netlink under vdsm.network
	Continuous-Integration: Jenkins CI

2016-05-08  Dan Kenigsberg  <danken@redhat.com>

	macspoof hook: README: help adding the custom property
	Engine is now shipped with preexisting custom device property. This
	patch makes it clearer how to add ifacemacspoof to the preexisting list
	instead of overweriting it.

	Continuous-Integration: Jenkins CI

	require NetworkManager-config-server
	Request NetworkManager not to approriate newly-created network devices.
	With this configuration on host, vdsm can create bonding and vlan
	devices without them taken down by NM.

	This patch implictly add NetworkManager as a vdsm requirement, but this
	is not a very big deal as NetworkManager is ubiquitous.

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

2016-05-08  Milan Zamazal  <mzamazal@redhat.com>

	virt: Don't fail when existingConnAction is unset for a SPICE device
	When a ticket for a SPICE device is set, existingConnAction parameter is
	sent by Engine as well.  This parameter is used to set `connected'
	attribute of <graphics> element.  But setting this parameter when
	updating the ticket is basically useless.  It may be actually even
	harmful, e.g. when a user sets `connected' attribute value to `keep' in
	a Vdsm hook and Engine overrides it to `disconnect' without any good
	reason.  See the referenced bug.

	This should be fixed on the Engine side.  One approach may be not to
	send the parameter at all when updating the SPICE ticket.  However, Vdsm
	crashes in such a case.  This patch fixes Vdsm problems when the
	parameter is not present, making future changes in Engine possible.

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

2016-05-07  pkliczewski  <piotr.kliczewski@gmail.com>

	m2c: get more information about ssl connection
	Sometimes during runtime we see in the logs: "M2Crypto.SSL.SSLError:
	unexpected eof". In order to understand the state of the connection we
	want temporarily print ssl session information.

	This patch provides a configuration flag to enable/disable logging.


	Continuous-Integration: Jenkins CI

	stomp: make sure to handle eagain
	Checking asyncore documentation I noticed that we do not process recv
	properly. I found that:

	Note that recv() may raise socket.error with EAGAIN or EWOULDBLOCK

	betterAsyncore code was based on asyncore.dispatcher so the issue was
	duplicated. We need to make sure to handle errors properly. We base our
	errnos on asynchat which include: EAGAIN, EALREADY, EINPROGRESS,
	EWOULDBLOCK.


	Bug-Url: https://bugzilla.redhat.com/1321325
	Related-To: https://bugs.python.org/issue16133
	Continuous-Integration: Jenkins CI

	stomp: dispatcher can return empty string
	Based on logs provided for BZ I see that dispatcher#recv can return an
	empty string which makes parser not to process message and as a result
	we get:

	exceptions.AttributeError: 'NoneType' object has no attribute 'command'

	We need to make sure that we do not attempt to parse the data.


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

2016-05-07  Nir Soffer  <nsoffer@redhat.com>

	spec: Make vdsm-api noarch
	vdsm-api package was not marked as noarch by mistake in commit
	f684e7527cf3f (spec: Make vdsm arch specific package).

	Continuous-Integration: Jenkins CI

2016-05-05  Nir Soffer  <nsoffer@redhat.com>

	spec: Make vdsm arch specific package
	Vdsm depends on packages available only on certain platforms, so it must
	be arch-specific.

	This patch remove noarch from vdsm package and make all sub packages
	noarch.

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

2016-05-05  Edward Haas  <edwardh@redhat.com>

	net: Move netinfo under vdsm.network
	Continuous-Integration: Jenkins CI

2016-05-05  Nir Soffer  <nsoffer@redhat.com>

	blkid: Remove leftovers
	We removed support for local disks using disk UUID in commit
	160de740e766 (drop unused blkid external binary), but left the
	DriveSpecUUID in the schema.

	Continuous-Integration: Jenkins CI

2016-05-05  Lukianov Artyom  <alukiano@redhat.com>

	jsonrpc: change instance type to strings
	Hosted engine deployment failed, because to narrow check
	for jsonrpc response.
	Change check of responce instance type from unicode
	to strings

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

2016-05-05  Tomas Jelinek  <tjelinek@redhat.com>

	migrations: change convergence schedule from time to iterations
	Currently the convergence schedule reacted to specific number of seconds of
	stalling. It turned out to be incorrect, because the algorithm which detected
	stalling was not detecting it properly and fundamentally can not.
	The reason is that the algorithm remembers the last progress time and then if the
	data_remaining is bigger it considers the migration to be stalling.

	This does not work properly, because the qemu works in iterations and each
	iteration takes significant amount of time.

	In the first iteration there can be no stalling, qemu only copies memory and
	does not look at how much of it changed.

	After this period of time it checks if it can move the rest of the VMs memory
	when it pauses for the downtime. If not, it starts a new iteration. This new
	iteration starts copying all the dirtied memory which can be a lot.

	During next iteration, the actual remaining data is compared to the minimal
	remaining data to determine if the migration is stalling. Until the next
	iteration reaches the level of remaining data from the previous one it will be
	considered stalling.

	But this does not actually mean we
	want to enlarge the downtime during the iteration since we don't know if qemu
	can or can not migrate the last part. This information can be found only
	between two iterations - e.g. if it is detected that the copying is in new
	iteration it means the current downtime was not enough so the enlargement of
	the downtime may make sense.

	So, the current patch changes the meaning of the "limit" from number of seconds
	the migration can be stalling to number of iterations the migration can be
	stalling (it may make sense to wait for more than one iteration to give qemu
	couple of tries before enlarging the downtime).

	The detection of new iteration is done this way:
	- in each monitoring cycle the current amount of remaining memory is remembered
	- in the next cycle the remembered remaining memory is compared to the current
	  one
	- the result can be:
	  - the current amount is smaller than the remembered => migration is either
	    progressing within the same iteration, or it is already in the next
	    iteration but the progress was fast enough to get below the remembered value.
	    In this case we can fail to recognize the next iteration but it does not
	    really matter since the migration progressed in between.
	  - the current amount is equal or higher than the remembered => it is a new
	    iteration because inside of one iteration the amount of memory has to
	    slowly go down and can not stay at one point even less grow

	The detection is not perfect but is the best we can have until libvirt 1.3 when
	we will get this info reported.

	Continuous-Integration: Jenkins CI

2016-05-05  Martin Polednik  <mpolednik@redhat.com>

	virt: add device setup and teardown
	More and more devices require some action to be taken before VM is
	started - even before the XML is generated. We add two methods, setup
	and teardown, that are called before VM's start and after VM's
	destruction respectively.

	These methods should be used as a replacement for device-specific
	methods.

	Continuous-Integration: Jenkins CI

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

	net: some values should be or should not be list
	If there is just one item in a list, it is reported as single item.
	If a single item entry is not defined, it is reported as empty list.

	We should convert such values so they have the same type every time.

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

2016-05-04  Idan Shaby  <ishaby@redhat.com>

	blockSD: fix log message in zeroImgVolumes
	When logging a debug message regarding a volume that has been zeroed, we
	always use the same volume id (the last one that was passed to
	_zeroVolume), instead of the correct one.
	This patch logs the correct volume.

	Continuous-Integration: Jenkins CI

2016-05-04  Adam Litke  <alitke@redhat.com>

	storage: Don't produce block volumes with TEMP_VOL_LVTAG
	LVs with the tag TEMP_VOL_LVTAG are not volumes yet.  Validation should
	prevent a VolumeManifest object from being produced against such an LV.

	Continuous-Integration: Jenkins CI

	tests: Share failure function
	Tests that want to check failures replace VolumeArtifacts functions with
	the failure() function.  Move this to the common test class so that
	block tests can use it too.  Also, add **kwargs to the signature so it
	will work with all functions.

	Continuous-Integration: Jenkins CI

2016-05-04  pkliczewski  <piotr.kliczewski@gmail.com>

	tests: marking temporarily as broken
	Continuous-Integration: Jenkins CI

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

	test: validate that OVS tests runs as root
	Move OVS service handling to class level, as they it is not needed
	for all classes (TestOvsVsctlCommand).

	This patch is needed to fix non-root RPM builds on docker.

	Continuous-Integration: Jenkins CI

	net: native ovs: ovsnettestlib.py
	Introduce OVS testing library. It handles OVS service setup,
	cleanup and keeps constants. It will be used by OVS switch tests.

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

2016-05-02  Edward Haas  <edwardh@redhat.com>

	net: Move netconfpersistence under vdsm.network
	Continuous-Integration: Jenkins CI

2016-05-02  Yaniv Bronhaim  <ybronhei@redhat.com>

	automation: Run make check over el7 in automation CI
	We tried to avoid running make check over el7 to save resources, but we
	missed bugs and failed test that way. The timing implications of adding it back
	are not so bad.

	Continuous-Integration: Jenkins CI

2016-05-01  Idan Shaby  <ishaby@redhat.com>

	storage: streamline getting domain mountpoint
	When checking if a domain's mountpoint is mounted, the code used to add
	"/.." to the domain's path, counting on mount.isMounted() to normalize
	the path.
	This patch replaces this approach by simply using os.path.dirname.

	Continuous-Integration: Jenkins CI

2016-05-01  Martin Polednik  <mpolednik@redhat.com>

	hostdev: use libvirt flags to select capability
	hostdevListByCaps (or list_by_caps in hostdev module) filtered devices
	manually by inspecting their capability. This can be done on libvirt
	level to avoid parsing unwanted devices.

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

2016-05-01  Edward Haas  <edwardh@redhat.com>

	net tests: Clean netinfo_test from uneeded mocks
	Removing mockey patches that are no longer needed.

	They have been probably left in the tests unintentionally after the
	production code has been modified.
	This presents a general maintanance issue with mocks that do not varify
	their usage.

	Continuous-Integration: Jenkins CI

2016-05-01  Tomáš Golembiovský  <tgolembi@redhat.com>

	v2v: small test improvement
	Continuous-Integration: Jenkins CI

2016-05-01  Dan Kenigsberg  <danken@redhat.com>

	net tests: take2: wait for a concurrent iptables call to finish
	commit 9f7685f added --wait to iptable executions during tests, but not
	to all of them.

	This patch amends that.

	Continuous-Integration: Jenkins CI

2016-05-01  Idan Shaby  <ishaby@redhat.com>

	storage: add tests for Mount.isMounted in mount.py
	Continuous-Integration: Jenkins CI

2016-05-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Removing generationID from clientIF
	Originally generationID was added as an element to getVdsStats to
	monitor vdsmd restarts in commit 537012b5c, Engine never actually used
	it.

	Continuous-Integration: Jenkins CI

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

	net: add Transaction() to netconfpersistence
	This patch introduces Transaction() class/context manager to
	netconfpersistence.py. It will be used as a rollback trigger
	for OVS switch and could also replace unified rollback mechanism
	in legacy switch.

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

2016-04-29  Sandro Bonazzola  <sbonazzo@redhat.com>

	automation: update glusterfs repos
	- dropped Gluster community repo for Fedora23 (reposync included):
	  the repo is empty and Gluster community is maintaining
	  Fedora packages within Fedora repositories.
	  For reference:
	  http://download.gluster.org/pub/gluster/glusterfs/LATEST/Fedora/What_About_Fedora_23.README
	- on EL7 moved from Gluster community repo to CentOS
	  Storage SIG repositories: we've been advised by Gluster community that
	  their packaging effort is focused on CentOS Storage SIG
	  and CentOS infrastructure is more reliable.

	Continuous-Integration: Jenkins CI

2016-04-29  Adam Litke  <alitke@redhat.com>

	tests: add validate_domain_has_garbage helper
	Many of the VolumeArtifacts failure case tests check that the domain has
	garbage after the failed operation.  Extract this logic into a helper
	and move it to the common class so it can be shared by the block tests.

	Continuous-Integration: Jenkins CI

2016-04-28  Adam Litke  <alitke@redhat.com>

	sdm: CreateVolumeInfo.initial_size default should be None
	Commit 9820797d defined the original SDM.create_volume API.  It set the
	default value for initial_size to 0 but it should be None since the
	underlying code does not use 0 as the default initial size.

	Continuous-Integration: Jenkins CI

	FakeLVM: LV size is rounded to VG extent size
	In real LVM, LV sizes must be a multiple of the VG extent size
	(default=128m).  Our FakeLVM code assumed that size should just be
	rounded to a multiple of 1M.  Fix this and add a test to check this
	behavior.

	Continuous-Integration: Jenkins CI

	lvm: Use a constant to define default vg extent size
	The default vg extent size has so far been defined as "128m" by means of
	a default argument value in lvm.createVG.  In order to test LVM we need
	to know this value progmatically.  Define VG_EXTENT_SIZE_MB in
	storage.constants and eliminate the parameter in lvm.createVG which is
	not being used.

	Continuous-Integration: Jenkins CI

	tests: Fix volume size handling in domain_manifest_test
	This test module is not testing the rounding of volume sizes up to the
	VG extent size (128M).  That is already tested in storagefakelibTests
	and storage_volume_artifacts_test.  For this test, just use a large
	enough size that will not need to be rounded.

	Also, fix test_metaslot_selection which was not converting the volume
	size to MB when calling the lvm createLV API.

	Continuous-Integration: Jenkins CI

	blockVolume: make _getVolumeTag public
	_getVolumeTag is a useful and safe utility function for getting the tags
	of a volume.  Rename it to getVolumeTag to make it public.  The upcoming
	BlockVolumeArtifacts class needs to make use of it.

	Continuous-Integration: Jenkins CI

2016-04-28  Francesco Romani  <fromani@redhat.com>

	vm: handle destroy request while starting up
	Since long time Vdsm allows Vm.destroy() requests
	against VMs which are not yet fully created.
	The most frequent use case is if the startup takes
	lots of time, often because slow storage, so the
	user decides to abort the startup.

	Vdsm does the bare minimum to handle this flow,
	and often misreports the Vm as down for error,
	while it is not - the flow is supported.

	To improve this situation, we add special explicit
	handling for this case, and we add a new exitreason
	to let Engine know that we had a destroy on startup.

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

2016-04-28  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: consume bond slaves owned by NetworkManager
	To let NetworkManager know VDSM wants to consume its devices we
	have to create ifcfg files with NM_CONTROLLED=no even for slaves
	that are already attached. It will automatically read the ifcfg
	files thanks to the previous patch.

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

	NetworkManager: configure to monitor ifcfg/connection files
	The new configuration file instructs NetworkManager to automatically
	reload network configuration from the directory it uses to persist
	its "connections" (one could say "profiles"):

	- /etc/sysconfig/network-scripts/ in the case of ifcfg systems
	  (Fedora, RHEL, CentOS and derivatives; "ifcfg-rh" plugin)
	- /etc/NetworkManager/system-connections/ ("keyfile" plugin)
	- or another, specific to e.g. Debian or Suse

	This functionality is required to properly let NetworkManager
	know when VDSM consumes any of its devices (on ifcfg systems,
	by writing NM_CONTROLLED=no to an ifcfg file).

	Please note that this approach is potentially raceful. Under
	high loads, it is theoretically possible that NM learns of
	a changed file too late. To be sure, we should probably call
	to 'nmcli connection load' synchronously, just before running
	'ifup' on a given device.

	NetworkManager is asked to reload its configuration during
	the %post stage of installation. If it is not running,
	systemctl simply exits with exit code 130 and doesn't try
	to start it.

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

2016-04-28  Idan Shaby  <ishaby@redhat.com>

	storage: remove unused method from mount.py
	This patch removes the unused method getMountFromDevice from mount.py.

	Continuous-Integration: Jenkins CI

2016-04-28  Edward Haas  <edwardh@redhat.com>

	net: OVS driver - bond_slave commands
	The *bond_slave commands are a bit special, they are composed of two
	sub-commands.

	Such commands return now a touple and the caller is responsible to
	handle them seperatly.
	This is a recommended way to use it:
	  with self.ovsdb.transaction() as t:
	    t.add(*ovsdb.attach_bond_slave(bond, slave))

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

2016-04-28  Petr Horáček  <phoracek@redhat.com>

	net: native ovs: check for bond existence
	Network creation is not dependent on bond creation in any way, created
	bond is available for all networks (should be divided), therefore we
	have to check for it's existence manually.

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

	net: native ovs: check for nic existence
	OVS allows us to add a port which does not exist, so it won't
	explode when attaching non-existing nic.

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

	net: OVS driver
	This patch introduces OVS driver, its API and ovs-vsctl implementation.

	The openvswitch is added as a build and runtime dependency.

	Basic integration tests are introduced. Future patches should cover
	all supported commands.

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

2016-04-27  Adam Litke  <alitke@redhat.com>

	lvm: Allow multiple initial tags when creating an LV
	When creating new block volumes via the SDM VolumeArtifacts
	infrastructure we want to create an LV with three tags to indicate: the
	image, the parent volume, and that this volume is not yet completed.
	Currently LVM only allows a single tag to be applied to new LVs.  Change
	the behavior to accept a tuple of tags instead.

	Continuous-Integration: Jenkins CI

2016-04-27  Milan Zamazal  <mzamazal@redhat.com>

	virt: Set timeout on boot menu
	The default timeout for boot menu (3 s) is too short for some scenarios,
	e.g. with network delays.  Although the best way to handle boot menu is
	to run a VM in paused mode, we can change the timeout to make boot menu
	more available even on regular runs.  So this patch sets the boot menu
	timeout to 10 s, which could be a reasonable value, not too low and not
	too high.

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

2016-04-27  Idan Shaby  <ishaby@redhat.com>

	storage: organize imports in clusterlock.py
	Continuous-Integration: Jenkins CI

2016-04-27  Sandro Bonazzola  <sbonazzo@redhat.com>

	jsonrpcvdscli: add storage verbs
	Add verbs used by ovirt-hosted-engine-setup for
	handling the storage setup.

	Related-To: https://bugzilla.redhat.com/1228641
	Continuous-Integration: Jenkins CI

2016-04-26  Adam Litke  <alitke@redhat.com>

	tests: volume_artifacts: validate FileVolumeArtifacts metadata
	We now have the VolumeMetadata class which makes it possible to import
	raw volume metadata for the purposes of verification.  Use this
	infrastructure to validate the metadata created as part of
	FileVolumeArtifacts create() in the same way we already do for
	BlockVolumeArtifacts.

	Continuous-Integration: Jenkins CI

	storage: sdm: consolidate create validation
	The validation of VolumeArtifacts.create parameters can be shared
	between the File and upcoming Block artifacts classes.  Move it to
	VolumeArtifacts in order to share it.

	Continuous-Integration: Jenkins CI

	tests: Add test_create_same_volume_in_image
	Add a new test (which will be broken until support for creating child
	volumes in an image is added) that verifies you are not allowed to
	create another volume with the same ID in an image.

	Continuous-Integration: Jenkins CI

2016-04-26  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: handle strings as correct response
	There is bunch of different response types. Currnetly we handle list and
	dictionary but some of the verbs return plain string like
	StoragePool.spmStart.


	Continuous-Integration: Jenkins CI

2016-04-26  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add is_assignable flag
	is_assignable is new flag that uses underlying PCI_HEADER_TYPE.
	We can only assign devices of header type 0 (type 1 is bridge, type 2
	cardbus). The header information is read directly from PCI
	configuration space of each device.

	We leave non-pci devices marked as 'is_assignable=True' as everything
	else displayed by engine should be assignable device.

	Continuous-Integration: Jenkins CI

2016-04-26  Adam Litke  <alitke@redhat.com>

	tests: Move artifacts tests to their approproate classes
	The tests:
	 - test_new_image_commit_without_create
	 - test_new_image_commit_twice

	are specific to FileVolumeArtifacts and should be in that class rather
	than the Mixin which holds tests that work on both file and block
	storage.

	The test:
	 - test_getallvolumes

	will work unchanged for block storage so it should appear in the common
	Mixin.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-04-26  Nir Soffer  <nsoffer@redhat.com>

	rwlock: Replace misc.RWLock
	This patch removes misc.RWLock and replace it with simpler
	rwlock.RWLock.

	Continuous-Integration: Jenkins CI

2016-04-26  Idan Shaby  <ishaby@redhat.com>

	storage: organize imports in misc.py
	Continuous-Integration: Jenkins CI

2016-04-26  Allon Mureinik  <amureini@redhat.com>

	spec: qemu-kvm-img to handle unaligned images
	Bug #1282239 describes a bug in qemu-img convert's ability to handle
	exporting/importing of memory volumes, that was worked around by using
	dd instead.

	This patch requires a qemu-img version that fixes the underlying issue
	in order to handle importing previously exported volumes and possibly
	remove this workaround in the future.

	Bug-Url: https://bugzilla.redhat.com/1283278
	Related-To: https://bugzilla.redhat.com/1282239
	Continuous-Integration: Jenkins CI

2016-04-25  Adam Litke  <alitke@redhat.com>

	storage: Filter incomplete volumes from volume queries
	LVs that are labeled with TEMP_VOL_LVTAG represent incomplete volumes
	and should not appear when querying storage for volume and image
	information.  Filter them in _getVolsTree().  Later when the garbage
	collector needs to find these volumes we can add a flag to invert the
	filter.

	Continuous-Integration: Jenkins CI

	VolumeMetadata: Add from_lines factory method
	Add support for creating a VolumeMetadata instance from a list of lines.
	This is the format that can be read from either block or file based
	volume metadata and enables us to consolidate the logic into one place.

	Note the following semantics changes:

	 - from_lines can raise ValueError if fields that represent int values
	   are not valid integers

	 - from_lines raises MetaDataKeyNotFoundError if expected fields are
	   missing from the input.  In old code, a missing field only impacted
	   reading that particular field.  Now, missing fields will prevent
	   reading any metadata.  This should be okay since we are always
	   writing out complete metadata to storage.

	Continuous-Integration: Jenkins CI

	Refactor metadata operations
	Volume metadata can be represented as a dictionary and as a string of
	delineated key value pairs.  Extract this logic out of the Volume
	classes into a new VolumeMetadata class which can be unit tested.  Once
	refactored, this code can be reused by new SDM code as well.

	Continuous-Integration: Jenkins CI

2016-04-25  Francesco Romani  <fromani@redhat.com>

	vm: rename event for clarity
	Vm._destroyed actually means that Vdsm received a request
	to destroy a Vm which is not yet fully created.
	Hence, we rename it as _destroy_requested to clarify a bit the flows.

	Continuous-Integration: Jenkins CI

2016-04-24  Dan Kenigsberg  <danken@redhat.com>

	drop unused blkid external binary
	commit ac0efac98 should have removed these definitions.

	Continuous-Integration: Jenkins CI

2016-04-24  Nir Soffer  <nsoffer@redhat.com>

	mount: Streamline backing file path building
	Use os.path.join to create the path instead of joining strings, making
	the code more clear.

	Continuous-Integration: Jenkins CI

2016-04-24  Edward Haas  <edwardh@redhat.com>

	net: Ignore noqueue queuing discipline
	tc qdisc show <dev> reports the qdisc noqueue discipline on virtual
	devices on updated Fedora 23.

	The patch gracefully ignores the 'noqueue' line.

	Continuous-Integration: Jenkins CI

2016-04-24  Nir Soffer  <nsoffer@redhat.com>

	build: Remove pep8 and pyflakes requirement
	We use to build-require both pep8 and pyflakes, which cause trouble when
	using older version. This leads to build failures, or to horrible code
	tyring to make old buggy pyflakes happy.

	Vdsm does not require pep8 or pyflakes for building packages; these are
	development tools that should be installed on a development machine or
	on CI environment, using the versions supported by current vdsm code.

	In the makefile, "make check" during make rpm was disabled on EL,
	because incompatible or missing pep8 and pyflakes versions; This hack
	was removed, so make rpm will do the same thing all platforms.

	In the makfile, we run pep8 or pyflakes checks only if these tools are
	installed.

	4 copies of incompatible pep8 and pyflakes version were removed from the
	packages list.

	Finally, we install the correct version of these tools in the CI
	environment using pip.

	Continuous-Integration: Jenkins CI

2016-04-22  Allon Mureinik  <amureini@redhat.com>

	qemuimg: Remove EL6 comment
	EL6 is no longer supported, no need to document where its qemu-img
	binary is installed.

	Continuous-Integration: Jenkins CI

2016-04-21  Nir Soffer  <nsoffer@redhat.com>

	vm: Add error logging in diskReplicateFinish
	On failures of diskReplicateFinish we had mostly no logs, making
	debugging much harder. Log error for each failure explaining the error,
	and include the source disk, drive name, and the libvirt job info.

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

2016-04-21  Adam Litke  <alitke@redhat.com>

	tests: Add test_missing_tags for block storage
	Add a simple test that verifies that volumes with missing tags are not
	returned by getAllVolumes.

	Continuous-Integration: Jenkins CI

	tests: FakeLVM: Always create lv file
	When creating Fake LVs always create a regular file at lvm.lvPath(...)
	of the size passed into lvm.createLV.  This makes sure that storage code
	will be able read from and write to the fake LV.

	Continuous-Integration: Jenkins CI

2016-04-21  Milan Zamazal  <mzamazal@redhat.com>

	tests/functional: Remove storage tests references from virtTests
	tests/functional/storageTests.py has been removed in commit df5ebfd0,
	causing breakage of virtTests.py functional tests due to the references
	to that file.  This patch removes those references, thus making
	tests/functional/virtTests.py working again.

	Continuous-Integration: Jenkins CI

2016-04-20  Nir Soffer  <nsoffer@redhat.com>

	qemuimg: Validate qcow2_compat configuration
	Validate new qcow2_compat option against a list of approved values, and
	raise (new) InvalidConfiguration error if the value is not supported:

	   InvalidConfiguration: Invalid configuration value: ("Unsupported value
	   for irs:qcow2_compat: '1.2'",)

	This document the ones we accept and help to diagnose configuration
	mistakes. We need to maintain this list over time, but it's good for us
	to check new compat versions to see if we're ready to allow them to be
	used in vdsm storage.

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

2016-04-20  Pavel Gashev  <pax@acronis.com>

	qemuimg: Make QCOW2_COMPAT configurable
	It's worth to make QCOW2 compatibility version configurable. It would
	allow to early adopt compat=1.1 in el7 environments.

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

2016-04-20  Adam Litke  <alitke@redhat.com>

	oop: add writeFile API
	We currently have a writeLines API but we should also have an API for
	writing a prepared string to the file.

	Continuous-Integration: Jenkins CI

	tests: storagetestlib: normalize make_file_volume
	The test utility make_block_volume was recently improved so that the
	created volume had correct metadata in the fake storage domain.  Do the
	same for make_file_volume and normalize the interface so that it works
	like make_block_volume (ie. requires image and volume ids).

	Continuous-Integration: Jenkins CI

2016-04-20  Francesco Romani  <fromani@redhat.com>

	vm: conf: proper locking in onConnect()
	We are still getting the error
	RuntimeError: dictionary changed size during iteration

	When calling Vm.status(), especially during migrations,
	so we must review our usage of Vm.conf and ensure the lock
	is always used.

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

	vm: conf: proper locking in status()
	We are still getting the error
	RuntimeError: dictionary changed size during iteration

	When calling Vm.status(), especially during migrations,
	so we must review our usage of Vm.conf and ensure the lock
	is always used.

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

2016-04-20  Dan Kenigsberg  <danken@redhat.com>

	spec: require test-only py3 packages
	commit 51594ca introduced a test-time dependency on python3-netaddr and
	libvirt-python3. This patch makes it explicit in vdsm.spec.

	Continuous-Integration: Jenkins CI

2016-04-19  Francesco Romani  <fromani@redhat.com>

	tests: add tests for sampling.VMBulkSampler
	The VMBulkSampler class is responsible of the bulk stats sampling,
	and includes all the logic to deal with blocked domains.
	This patch add the initial batch of tests to exercise this code.

	Continuous-Integration: Jenkins CI

	migration: fix logging
	We now log VIR_DOMAIN_JOB_MEMORY_CONSTANT while monitoring migration,
	but this value is in pages, not in bytes.

	Continuous-Integration: Jenkins CI

2016-04-19  Yaniv Bronhaim  <ybronhei@redhat.com>

	automation: build and install vdsm only after spec or makefile change
	Continuous-Integration: Jenkins CI

	Remove debian install files from vdsm
	Currently this folder is not maintained in parallel to the spec. We
	build vdsm for debian but we don't keep the updated install files in vdsm git
	tree.

	Continuous-Integration: Jenkins CI

2016-04-19  Tomas Jelinek  <tjelinek@redhat.com>

	migration: added logging of more detailed stats
	New fields VIR_DOMAIN_JOB_MEMORY_BPS, VIR_DOMAIN_JOB_MEMORY_CONSTANT and
	VIR_DOMAIN_JOB_COMPRESSION_BYTES will be logged to help understand the details
	of the migrations.

	From fields which has already been used the following are logged:
	VIR_DOMAIN_JOB_DATA_TOTAL, VIR_DOMAIN_JOB_DATA_PROCESSED,
	VIR_DOMAIN_JOB_DATA_REMAINING

	Added also the following ones available only on newer libvirt:
	VIR_DOMAIN_JOB_MEMORY_DIRTY_RATE, VIR_DOMAIN_JOB_MEMORY_ITERATION

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

2016-04-19  Martin Betak  <mbetak@redhat.com>

	migration: Add Dynamic Bounded Semaphores
	This patch adds new Bounded Semaphore class with the ability to modify the
	bound at runtime. It also migrates the existing `incoming` and `outgoing`
	migration semaphores to use this new dyanmic version.

	This is useful for subsequent migration enhancements that will allow the engine
	to dynamically adjust the maximum number of concurrent migrations.

	Continuous-Integration: Jenkins CI

2016-04-18  pkliczewski  <piotr.kliczewski@gmail.com>

	asyncore: make sure to handle sslerror on send
	When we receive data we handle ssl errors in cases like a client
	disconections. We want to make sure that we close connection and return
	to message processing code to handle the issue.

	In send we have similar behavior but the error propagates to asyncore
	loop where it is handled. For send we need to have similar behavior:
	- close channel
	- let the sender code handle case where no data was send


	Continuous-Integration: Jenkins CI

2016-04-18  Dan Kenigsberg  <danken@redhat.com>

	init: run post-vdsm stop hook
	this patch fixes a regression introduced by commit 18b01171.

	Continuous-Integration: Jenkins CI

2016-04-18  Idan Shaby  <ishaby@redhat.com>

	storage: move fileUtils module to vdsm storage lib
	This patch moves the module storage/fileUtils.py to
	vdsm/storage/fileUtils.py.

	Continuous-Integration: Jenkins CI

2016-04-18  Edward Haas  <edwardh@redhat.com>

	net: Clean running config on unified restoration failure
	When the unified restoration process fails, running config (file) may
	contain networks/bonds that are not in kernel.
	When an attempt is made to re-run the unified restoration (without a
	boot), the process will fail to remove the mentioned networks/bonds.

	In this patch, the running config will be cleared if the restoration
	fails, allowing the following attempts to try and setup the network
	again.

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

2016-04-17  Idan Shaby  <ishaby@redhat.com>

	storage: reorganize mount.py's position
	This patch reorganizes mount.py's position in the files
	vdsm-python.install and vdsm.spec.in so that they will remain
	alphabetically sorted.

	Continuous-Integration: Jenkins CI

2016-04-17  David Caro  <dcaroest@redhat.com>

	ci:Fixed execution on el* chroots
	Continuous-Integration: Jenkins CI

2016-04-17  Idan Shaby  <ishaby@redhat.com>

	storage: organize imports in fileUtils.py
	Continuous-Integration: Jenkins CI

	storage: organize imports in mount.py
	Continuous-Integration: Jenkins CI

2016-04-16  Petr Horáček  <phoracek@redhat.com>

	net: native ovs: split to-be-removed and to-be-added
	Split networks and bonds which should be added and removed. This
	functionality will be used in the following patch.

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

	net: native ovs: validate networks and bonds
	Verify requirements which will not be verified by OVS setup itself.

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

	net: native ovs: ovs switch skeleton
	Introduce legacy/ovs split and skeleton of OVS switch.

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

2016-04-16  Nir Soffer  <nsoffer@redhat.com>

	travis: Add missing packages to Dockerfile
	Add missing packages that cause make check to fail on travis CI:

	- psmisc
	- python-ioprocess

	Continuous-Integration: Jenkins CI

2016-04-15  Francesco Romani  <fromani@redhat.com>

	virt: storage: avoid empty serials to domain XML
	The VM drives in the libvirt domain XML may have
	one 'serial' attribute.
	Vdsm used to always sends this attribute.
	The value is either received as drive configuration
	parameter, or it is filled from the drive backing imageID.

	Should Vdsm not receive the serial attribute, or should
	the drive not have a backing image, the serial will be
	empty, and will be sent anyway to libvirt.

	Starting from libvirt 1.3.0, libvirt enforces the fact
	that the serial must not be empty (see
	https://bugzilla.redhat.com/1322842#c4).
	This exposed an old bug of Vdsm, and the effect is that
	libvirt rejects the domain XML and the VM could not start.

	To trigger this bug, just configure one VM with payload
	device (e.g. cloud init) this will send a new cdrom device
	alongside the default one, and both will have empty serial.

	Looking again at the libvirt domain XML specifications
	(http://libvirt.org/formatdomain.html#elementsDisks)
	we see that the 'serial' attribute is not mandatory.

	Thus, the simplest fix is just not to add the 'serial'
	attribute in the domain XML if it is empty.

	Bug-Url: https://bugzilla.redhat.com/1322842
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-04-14  Nir Soffer  <nsoffer@redhat.com>

	rwlock: Add simpler RWLock
	This is a rewrite of storage.misc.RWLock, simplifying it and making it
	easier to understand. The behavior of the lock should be the same,
	acquiring the lock in the order of the requests, and supporting
	recursive locking, required for old storage code locking the same
	resource from different layers.

	This implementation does not support lock demotion (replacing a write
	lock with a read lock). This feature was broken in the previous
	implementation.

	This implementation is using a list of waiters instead of a Queue, since
	we don't need any of the features provided by a Queue. Important
	property of a list is the possibility to remove a waiter from the middle
	of the list, in case of a timeout. This is used by future patch
	supporting timed acquire.

	This implementation has less overhead, as seen in the stress tests
	with many writers and readers. The test measure the number of times each
	thread could take a shared (readers) or exclusive (writers) lock during
	the test (1 second). Larger numbers mean more throughput. Tested on
	Lenovo T450s.

	storage_rwlock_test.RWLockStressTests

	    test_lock_contention(1, 2, <class 'storage.misc.RWLock'>)
	writers: 1 readers: 2
	writes  avg=5438.00 med=5438 min=5438 max=5438
	reads   avg=5449.50 med=5450 min=5449 max=5450

	    test_lock_contention(1, 2, <class 'vdsm.storage.rwlock.RWLock'>)
	writers: 1 readers: 2
	writes  avg=6574.00 med=6574 min=6574 max=6574
	reads   avg=6598.00 med=6625 min=6571 max=6625

	    test_lock_contention(2, 8, <class 'storage.misc.RWLock'>)
	writers: 2 readers: 8
	writes  avg=1334.50 med=1335 min=1334 max=1335
	reads   avg=1334.50 med=1335 min=1334 max=1335

	    test_lock_contention(2, 8, <class 'vdsm.storage.rwlock.RWLock'>)
	writers: 2 readers: 8
	writes  avg=1504.50 med=1505 min=1504 max=1505
	reads   avg=1504.00 med=1504 min=1503 max=1507

	    test_lock_contention(3, 32, <class 'storage.misc.RWLock'>)
	writers: 3 readers: 32
	writes  avg=386.00 med=386 min=386 max=386
	reads   avg=386.12 med=386 min=385 max=387

	    test_lock_contention(3, 32, <class 'vdsm.storage.rwlock.RWLock'>)
	writers: 3 readers: 32
	writes  avg=403.00 med=403 min=403 max=403
	reads   avg=403.50 med=403 min=403 max=408

	    test_lock_contention(4, 128, <class 'storage.misc.RWLock'>)
	writers: 4 readers: 128
	writes  avg=101.00 med=101 min=101 max=101
	reads   avg=101.15 med=101 min=101 max=103

	    test_lock_contention(4, 128, <class 'vdsm.storage.rwlock.RWLock'>)
	writers: 4 readers: 128
	writes  avg=101.00 med=101 min=101 max=101
	reads   avg=101.93 med=102 min=101 max=108

	    test_readers(1, <class 'storage.misc.RWLock'>)
	reads   avg=47546.00 med=47546 min=47546 max=47546

	    test_readers(1, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=170239.00 med=170239 min=170239 max=170239

	    test_readers(128, <class 'storage.misc.RWLock'>)
	reads   avg=136.00 med=135 min=134 max=167

	    test_readers(128, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=361.10 med=332 min=330 max=1321

	    test_readers(16, <class 'storage.misc.RWLock'>)
	reads   avg=1125.75 med=1100 min=1096 max=1391

	    test_readers(16, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=3070.19 med=2945 min=2803 max=3658

	    test_readers(2, <class 'storage.misc.RWLock'>)
	reads   avg=10040.50 med=10053 min=10028 max=10053

	    test_readers(2, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=30227.50 med=31197 min=29258 max=31197

	    test_readers(32, <class 'storage.misc.RWLock'>)
	reads   avg=551.56 med=541 min=540 max=832

	    test_readers(32, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=1480.53 med=1404 min=1401 max=2348

	    test_readers(4, <class 'storage.misc.RWLock'>)
	reads   avg=4708.25 med=4758 min=4583 max=4869

	    test_readers(4, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=12305.25 med=12789 min=11618 max=13065

	    test_readers(64, <class 'storage.misc.RWLock'>)
	reads   avg=279.27 med=276 min=275 max=403

	    test_readers(64, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=727.44 med=686 min=683 max=1747

	    test_readers(8, <class 'storage.misc.RWLock'>)
	reads   avg=2264.38 med=2230 min=2226 max=2471

	    test_readers(8, <class 'vdsm.storage.rwlock.RWLock'>)
	reads   avg=6466.88 med=6520 min=5674 max=7277

	To run this test, use:

	    ./run_tests_local.sh --enable-stress-tests -s storage_rwlock_test.py:RWLockStressTests

	Continuous-Integration: Jenkins CI

	tests: Add readers contention rwlock test
	Add timing test for taking a shared lock on a RWLock. This should be a
	common operation, and it is interesting to see how it differ from
	readers and writers connotation.

	Continuous-Integration: Jenkins CI

2016-04-14  Adam Litke  <alitke@redhat.com>

	blockVolume: Move _calculate_volume_alloc_size to Manifest
	_calculate_volume_alloc_size contains logic that is generally useful for
	creating new block volumes.  Move it to the BlockVolumeManifest class
	(and make it public) so that it can be used by the SDM VolumeArtifacts
	class in the future.

	Continuous-Integration: Jenkins CI

2016-04-14  Amit Aviram  <aaviram@redhat.com>

	hsm: add untrusted image verification.
	In some flows, where an image can be imported into oVirt's storage from
	external sources, e.g in the image upload flow- a VDSM's image is being
	generated and data is being sent into the created volume inside.

	As this flow is risky in cases where the data is a QCOW file with an
	invalid backing file, or wrong disk format is sent, VDSM should verify
	the image in the upload process.

	This patch adds a verb for untrusted image's volume verification, which
	verifies that there is no backing file for a QCOW image, and that the
	format of the uploaded image fits to what the user has specified.

	Continuous-Integration: Jenkins CI

2016-04-14  Dan Kenigsberg  <danken@redhat.com>

	automation: add python3-netaddr and libvirt-python3
	commit 51594c added these packages only to check-patch, but we need them
	in check-merged as well.

	Continuous-Integration: Jenkins CI

	Revert "hostdev: don't implicitly reattach devices"
	This reverts commit 2bdcf4f99e4723f08886 as SR-IOV feature
	depends on implicit reattchement of VFs. Commit 74ac384510b
	makes sure that the reversal would affect only SRIOV NICs
	and not generic host devices.

	Continuous-Integration: Jenkins CI

	Revert "hostdev/sr-iov: don't reattach devices"
	This reverts commit e80ab7fc74b7715. SR-IOV feature depends
	on automatic re-binding of VFs to their network driver.
	Without that, the VFs are no longer recognized as available
	host NICs after a VM using VFs is taken down, or after
	hotunplug of a VFs.

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

2016-04-14  Petr Horáček  <phoracek@redhat.com>

	hook: ovs: report ip info on expected top device
	If network is marked as bridgeless or untagged, report its IP
	info on Engine expected top device.

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

2016-04-14  Sandro Bonazzola  <sbonazzo@redhat.com>

	jsonrpcvdscli: disconnectStorageServer verb
	Add disconnectStorageServer used by ovirt-hoste-engine-setup.

	Continuous-Integration: Jenkins CI

2016-04-14  Yaniv Bronhaim  <ybronhei@redhat.com>

	fix pep8 violations
	Continuous-Integration: Jenkins CI

2016-04-14  Nir Soffer  <nsoffer@redhat.com>

	mount: Log info message when mounting or unmounting
	Mounting and unmounting are important modifications to the machine state
	and must be logged. Since actual mount command run now in supervdsm, we
	have no clue about mounting and unmounting operations in vdsm log.

	To help debugging issues with unresponsive mounts, we log also the time
	it took to mount or unmount.

	Continuous-Integration: Jenkins CI

2016-04-13  Nir Soffer  <nsoffer@redhat.com>

	misc: Replace assert with AssertionError
	The code was wrongly assumed that asserts are always available. When
	running in optimized mode, the check would be skipped, leading to
	disastrous results.

	The assert was correct in that this is something that should never
	happen, unless someone is using the barrier incorrectly, or there is
	a bug in the code.

	Continuous-Integration: Jenkins CI

	mount: Remove unneeded return
	Remove unneeded return in mount._mount() and mount._umount() since
	mount._runcmd() does not return any value.

	Continuous-Integration: Jenkins CI

	mount: Perform mount and umount in supervdsm
	We used to run the mount and umount commands using sudo, which requires
	error prone sudoers configuration, and allow any process running as
	vdsm (e.g. a vdsm hook) to perform commands, instead of only vdsmd
	daemon itself.

	This patch changes Mount class to perform mount and umount using
	supervdsm, and remove the now unneeded sudoers configuration for mount,
	umount, and systemd-run.

	Since mounting requires running supervdsm now, tests that used to check
	for that mount work using sudo require now root, and mount module is
	using supervdsm only if not running as root.

	Continuous-Integration: Jenkins CI

2016-04-13  Lihi Wishnitzer  <lihiwish@gmail.com>

	tests: port test models_test.py to python 3
	Ported required code to Python3 in order to for network/models_test.py
	to be Python3 compatible

	Continuous-Integration: Jenkins CI

2016-04-13  Yaniv Bronhaim  <ybronhei@redhat.com>

	Enable python3 over fedora as default and disable it over centos\rhel
	Until RHEL 8 which will include py3 packages as default, we prefer to
	disable python3 build and test run as default.

	Continuous-Integration: Jenkins CI

2016-04-13  Adam Litke  <alitke@redhat.com>

	tests: Test storagetestlib FakeEnv functions
	The storagetestlib module provides functionality to create fake file and
	block storage environments which help to unit test storage code.  As
	this code has gotten more complex we need to test that it is actually
	working correctly itself.

	The new storagetestlibTests module tests both file and block
	environments.  We check that the temporary directory housing the fake
	environment has the correct layout and that metadata for the domain and
	volumes 'persists' to the storage.

	Continuous-Integration: Jenkins CI

2016-04-13  pkliczewski  <piotr.kliczewski@gmail.com>

	utils: remove unused variable warning
	Continuous-Integration: Jenkins CI

2016-04-13  Adam Litke  <alitke@redhat.com>

	sdm: Move create_volume parent uuids into separate type
	The schema defines the parent volume reference used in SDM.create_volume
	as a distinct type (ParentVolumeInfo).  Implement this in the code.
	Parent volume parameters are not required but if provided, both must be
	defined.

	Continuous-Integration: Jenkins CI

	sdm: create_volume: remove duplicated args check
	We are already validating the create arguments inside
	VolumeArtifacts.create where we can also validate the preallocate
	parameter.  The call in create_volume is redundant and should be
	removed.

	Continuous-Integration: Jenkins CI

	schema: SDM.create_volume split parent params
	When creating a new volume, the parent_vol_id and parent_img_id are
	optional and should be used only if the new volume is derived from a
	parent (ie. snapshot volume or volume from template).  However, if one
	of the parent_*_id parameters is specified the other one must also be
	provided.  The best way to codify this and organize the create
	parameters is to place the two parent ids together in their own data
	structure.

	Continuous-Integration: Jenkins CI

2016-04-13  pkliczewski  <piotr.kliczewski@gmail.com>

	events: ignore events when jsonrpc binding not available
	When vdsm is booting and jsonrpc binding was not yet created or jsonrpc
	is disable we want to ignore any events that are sent.


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

2016-04-13  Petr Horáček  <phoracek@redhat.com>

	net: netinfo: report switch type as legacy
	This patch sets the API foundation for reporting the switch type,
	future patches will check and report actual switch type.

	Bug-Url: https://bugzilla.redhat.com/1195208
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: canonicalize switch type from custom options
	If network/bond is marked as OVS one via custom option, mark it with
	OVS switch type via 'switch' attribute too.

	This might be used for testing of native OVS until OVS UI changes take
	place in Engine.

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

	net: move parse_bond_options to netinfo.bonding
	Move get_bond_options from ovs hook utils to
	vdsm/lib/netinfo/bonding.py, so we can use it in other places.

	Importing Vdsm code to a hook is not a good practise. However,
	as long as we keep both Hook and Native OVS implementation, this
	would make our lifes easier.

	Bonding options handling is duplicated in many forms on many
	places across Vdsm. We should do a refactoring and canonicalize
	bond opts just once.

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

2016-04-13  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: set default timeout value
	Continuous-Integration: Jenkins CI

2016-04-13  Francesco Romani  <fromani@redhat.com>

	virt: ovs: fix migrations without the ovs hook
	Since commit 50de041 the libvirt migration hook
	that Vdsm always installs started to depend on the
	ovs_migrate.py helper, which is in turn provided
	by the optional ovs hook.

	So, without the hook installed a given host, any incoming
	migration with fail with

	libvirtd[1179]: internal error: Child process [...]
	  /etc/libvirt/hooks/qemu a_c7_0 migrate begin -)
	  unexpected exit status 127:
	    /etc/libvirt/hooks/qemu: line 20:
	      /usr/libexec/vdsm/ovs_migrate.py: No such file or directory

	(reformatted for clarity and to fit in 78 columns).

	This patch fixes this, making incoming migrations work again even
	without the ovs hook installed.

	Continuous-Integration: Jenkins CI

2016-04-13  Dan Kenigsberg  <danken@redhat.com>

	net event: disable until done properly
	commit de3a8614 introduced a vdsm event whenever a host interface
	changed state. However it issues the event also when Engine stops to
	connect to the host.

	The flood of events causes failure to add a host. This patch dirtily
	disables connectivity events until
	https://bugzilla.redhat.com/show_bug.cgi?id=1324556
	is solved

	Continuous-Integration: Jenkins CI

2016-04-12  Petr Horáček  <phoracek@redhat.com>

	hook: ovs: report network iface expeted by engine
	If a network is marked as bridgeless, we should report its
	vlan/bond/nic as its iface.

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

2016-04-12  Allon Mureinik  <amureini@redhat.com>

	hsm.py: Deprecate setStoragePoolDescription
	Since the removal of 3.4 cluster support
	(see commit 23650fb), the setStoragePoolDescription call has become
	pointless. With a memory backend (used in 3.5 clusters) that does not
	persist anything, it doesn't really do anything besides waste CPU
	cycles. Since this version of VDSM can no longer be part of a cluster
	that uses the disk backend, there's no flow where this call actually
	does something useful, this patch hollows out the function to a simple
	pass call and makes its deprecation explicit.

	Unfortunately, 3.5 engines still call this function, so it cannot be
	completely removed yet. Once the support for that engine's version will
	be removed, this method can be removed altogether.

	Continuous-Integration: Jenkins CI

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

	rfh: Remove legacy remoteFileHandler
	We are using ioprocess since ovirt-3.5, there is no reason to keep the
	legacy removeFileHandler infrastructure.

	Continuous-Integration: Jenkins CI

2016-04-12  Petr Horáček  <phoracek@redhat.com>

	net: test: fix custom bond option separator
	Changed custom bonding option separator introduced in
	https://gerrit.ovirt.org/#/c/55827/
	was not changed in functional tests. This problem is exposed only
	with patch https://gerrit.ovirt.org/#/c/55865.

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

	utils: move rget to utils
	Move rget from ovs utils to vdsm utils so we can use it with both
	hook and native ovs.

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

2016-04-12  Martin Betak  <mbetak@redhat.com>

	migration: Enable cancellation of migrations during retry
	Migrated _migrationCancelledEvent to proper threading.Event() and used wait
	instead of sleep in the retry loop to enable cancellation of migrations without
	any delays if a retry is in effect.

	Continuous-Integration: Jenkins CI

2016-04-12  Francesco Romani  <fromani@redhat.com>

	virt: reformat code
	Silly reformatting patch to make the code easier to change:
	now updates to dicts() require minimal change (+1/-1 line patch)

	Continuous-Integration: Jenkins CI

	migration: Add retry on full capacity
	Utilize the new error code 'migrateLimit' to differentiate between generic
	migration failure on the destination that should be reported to the engine, and
	a transient condition caused by mis-scheduling in higher level where a local
	retry should be performed from the VDSM side.

	Continuous-Integration: Jenkins CI

	vm: graphics: fill legacy display parameters
	To preserve backward compatibility with Engine 3.5,
	Vdsm must fill back the legacy display configuration parameters
	(displayIp, displayPort...) from the graphics device configuration.

	To do so, Vdsm must mutate the original Vm.conf, not a copy,
	otherwise the updates will be lost.

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

2016-04-12  Petr Horáček  <phoracek@redhat.com>

	net: canonicalize bondings in Config
	In https://gerrit.ovirt.org/#/c/55495/ we added bondings
	canonicalization to network/api.py, but we forgot about
	netconfpersistence.py.

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

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

	net tests: wait for a concurrent iptables call to finish
	test_local_auto_with_dynamic_address_from_ra may execute in parallel on
	the same machine. This patch waits until a concurrent iptables call
	finishes instead of failing immediately.

	The down side is that a waiting test may starve forever, but I do not
	believe it is a real problem, as iptables executions are rare and short.

	This patch also plays with indentation to keep el7's pep8 happy.

	Continuous-Integration: Jenkins CI

	net tests: give a more legible skip reason
	Current text

	    SKIP: ('Tested host is not clean (running vs kernel):\nnetworks: %r != %r\nbonds: %r != %r\n', {}, {}, {}, {u'bond0': {u'nics': [], u'options': u'mode=0'}})

	is not formatted.

2016-04-11  Adam Litke  <alitke@redhat.com>

	tests: storagetestlib: create fake MASTERLV
	We currently create all blockSD special LVs except for the 'master' LV.
	Just create it now in order to make our fake block domain look more like
	a real one.

	Continuous-Integration: Jenkins CI

	tests: Fix FakeLVM lv creation size
	This fixes two issues when creating fake LVs for testing.  First, the
	value of MB is corrected.  Second, when creating block volumes the size
	(specified in sectors) is rounded up to the nearest MB.

	Continuous-Integration: Jenkins CI

	tests: Create block metadata file with correct size
	The function BlockStorageDomainManifest.metaSize returns the metadata
	size in MB so it must be converted to bytes when calling make_file.

	Continuous-Integration: Jenkins CI

	tests: Use VG tags to store fake block domain md
	Block storage domain metadata can either be stored in VG tags or in slot
	0 of the metadata LV.  Emulate the tag-based method.  This allows
	testing of code that needs to create its own BlockStorageDomainManifest
	objects.

	Continuous-Integration: Jenkins CI

	tests: storagetestlib: Set fake block domain mountpoint
	BlockStorageDomainManifest depends on its mountpoint attribute being set
	to an existing path.  By default it is the storage_repository
	(/rhev/data-center/...) but we need to set it to be within our temporary
	directory structure.  Also create this path.

	Continuous-Integration: Jenkins CI

	tests: Create fake block volume metadata
	When creating fake block volumes, create the volume metadata in the fake
	block storage domain in the same way that real code does it.  This
	allows tests to produce previously created block volumes.

	Continuous-Integration: Jenkins CI

	lvm: Remove args hack for activateLVs and deactivateLVs
	In order to support calling these functions with either a single LV or a
	list of LVs a hack called _normalizeArgs is being used.  This is ugly
	and unnecessary.  Make activateLVs and deactivateLVs explicit by always
	accepting a list of LVs.

	Continuous-Integration: Jenkins CI

2016-04-11  Nir Soffer  <nsoffer@redhat.com>

	schedule: Port schedule module to Python 3
	In Python 3, you cannot use push a tuple into a heap if one of the
	objects in the tuple does not support ordering. Implement the minimal
	rich comparison to make it work on Python 3.

	Since ScheduledCall supports ordering now, we don't need to wrap it in a
	tuple, and we can push the object itself into the heap. We used a tuple
	before because in Python 2 it was faster than implementing a __cmp__
	method. Unfortunately, we don't have this option with Python 3.

2016-04-10  Roman Mohr  <rmohr@redhat.com>

	Bump mom dependency to version 0.5.3
	Use mom version 0.5.3 which supports QoS changes on running VMs.

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

2016-04-10  Petr Horáček  <phoracek@redhat.com>

	net: native ovs: move RollbackIncomplete to network errors
	Move RollbackIncomplete exception to network/error.py, so it can
	be used by other netswitches.

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

	net: Persist bonding legacy switch type
	Legacy configurators do not pass all bonding arguments to
	BaseConfig:setBonding() (but it pass everything to setNetwork()),
	so we need to persist 'switch' parameter explicitly.

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

2016-04-09  Martin Sivak  <msivak@redhat.com>

	Fix a bad value in KSM test
	The merge across nodes allows only 0,1,2,3 values.

	Continuous-Integration: Jenkins CI

2016-04-09  Adam Litke  <alitke@redhat.com>

	FakeLVM: Add changeVGTags support
	changeVGTags support is needed to properly emulate tag-based block
	storage domain metadata.  The functionality works identically to the
	changeLVTags function which is already implemented.

	Continuous-Integration: Jenkins CI

	FakeLVM: Add changeLVTags
	The BlockVolumeArtifacts code needs to use changeLVTags during volume
	creation.  Since we will want to test that code, add support for
	changeLVTags in FakeLVM.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-04-08  Milan Zamazal  <mzamazal@redhat.com>

	tests: Use integer division for array index in SchedulerTests
	In Python 3 the standard division operator may produce non-integer
	result even when both the operands are integers.  We should use //
	operator instead, which always produces integer result in both Python 2
	and Python 3.

	This fixes one of the Vdsm test breakages with Python 3, when running
	`make check-all'.

	Continuous-Integration: Jenkins CI

2016-04-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	move momIF to lib
	Continuous-Integration: Jenkins CI

2016-04-08  Petr Horáček  <phoracek@redhat.com>

	hook: ovs: assert custom bond opts with ':'
	On Engine side we forbid multiple '=' in one bond option. That means,
	that we cannot pass custom options as 'custom=foo=bar,x=y'.

	Now we use ':' as a delimiter, so custom options should look like
	'custom=foo:bar,x:y'.

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

2016-04-07  Andrej Krejcir  <akrejcir@redhat.com>

	Add MoM scripts to change storage QoS on running VM
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1201482
	Continuous-Integration: Jenkins CI

	Apply storage QoS on running VM
	Modified updateVmPolicy command to accept disk ids.
	Added a function to get current io tune from libvirt.

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

2016-04-07  Martin Polednik  <mpolednik@redhat.com>

	hostdev: use device setup instead of detach
	Host devices require action before VM is started. We rename this action
	from detach to now generic setup.

	Continuous-Integration: Jenkins CI

2016-04-07  Nir Soffer  <nsoffer@redhat.com>

	travis: Improve Dockerfile formating
	Sort packages to make it easier to work with, and separte the && line so
	it is easier to modify the list.

	Continuous-Integration: Jenkins CI

2016-04-07  Francesco Romani  <fromani@redhat.com>

	Vm: conf: proper locking in the creation path
	We are still getting the error
	RuntimeError: dictionary changed size during iteration

	When calling Vm.status(), especially during migrations,
	so we must review our usage of Vm.conf and ensure the lock
	is always used.

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

2016-04-07  Edward Haas  <edwardh@redhat.com>

	net: Libvirt hook that enables ovs-legacy migration
	This hook allows VM/s to be migrated between OVS based hosts and legacy
	based hosts, in both directions.

	The hook is added to the OVS hook package.

	Note: The OVS hook and this migration hook is limited to a single
	non-vlan network. An attempt to migrate a VM to a host with multi
	non-vlan networks will fail.

	Continuous-Integration: Jenkins CI

2016-04-07  Maor Lipchuk  <mlipchuk@redhat.com>

	storage: Move mount module to vdsm storage lib.
	Move storage.mount to vdsm.storage.mount

	Continuous-Integration: Jenkins CI

2016-04-07  Liron Aravot  <laravot@redhat.com>

	fileUtils: tarCopy - avoid extracting the file modified time
	We using fileUtils.tarCopy() when there are unsynced clocks between
	the source/destination tar might warn us that the source timestamp is
	in the future (when we copy from/to file).
	This error is logged to stderr, if the copy operation fails for some other
	reason the stderr might be flooeded with timestamp in the future warnings
	which is confusing when analyzing the cause to the failure.

	As we don't care about the timestamp this patch adds the --touch flag
	which doesn't extract the file modified date and by that eliminates the
	warnings.

	Continuous-Integration: Jenkins CI

2016-04-06  Amit Aviram  <aaviram@redhat.com>

	image: add a flag for preparing with illegal volumes.
	Currently preparing an image is impossible if one of its volumes is
	illegal.

	In the new image upload flow, the volume's legality is being used for
	preventing volume usages while doing I/O using ovirt-imageio-daemon.

	When the upload starts, a new image is created and prepared. Then, it is
	being set to ILLEGAL, and only after- a ticket for doing I/O is being
	sent to ovirt-imageio-daemon in order for the user to write data into
	it.

	If this process is stopped by any reason- resuming it means preparing
	the image while it is ILLEGAL.

	This patch adds a flag in the API for enabling the prepare process even
	if its volumes are ILLEGAL, for the upload image to use.

	The flow uses this flag because when a volume is illegal, it can't be
	attached to a running VM, nor a VM can't start with an illegal disk
	attached. Also, adding a new volume state, such as UPLOADING or
	UNSAFE has implications on storage version, and means adding
	validations in many storage flows.

	Continuous-Integration: Jenkins CI

2016-04-06  Allon Mureinik  <amureini@redhat.com>

	pool: Remove refreshStoragePool verb
	The refreshStoragePool verb is only used on DCs of compatibility version
	3.4 or below, which are no longer supported. This patch removes this
	verb.

	Continuous-Integration: Jenkins CI

2016-04-06  Petr Horáček  <phoracek@redhat.com>

	net: canonicalize 'switch' in nets and bonds
	If no switch type is passed, we use 'legacy' as a default.

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

2016-04-06  Tomas Jelinek  <tjelinek@redhat.com>

	migrations: change migration parameters
	Changed the migration params to:
	max_outgoing/incoming_migrations=2
	migration_max_bandwidth=52
	migration_progress_timeout=240
	migration_downtime_delay=20
	migration_downtime_steps=5

	The reason to change migration_max_bandwidth and
	max_outgoing/incoming_migrations is to have less migrations running in parallel
	faster which helps convergence.

	The reason to change the migration_progress_timeout is to leave more time for
	big VMs to converge.

	The reason to change migration_downtime_delay is to make the downtime thread
	start applying the changes faster which is important for VMs which would start
	stalling.

	The reason to change the migration_downtime_steps is to make the growing of the
	downtime more fast.

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

2016-04-06  Adam Litke  <alitke@redhat.com>

	sdm: Add create_volume job
	This is the first SDM verb to be wired up using all of the
	infrastructure (jobs and getHostJobs API, VolumeArtifacts, etc.).  HSM
	creates a create_volume.Job and schedules it using the existing
	TaskManager thread pool.  Eventually we can switch to using the executor
	framework but that can be for a later patch.

	Continuous-Integration: Jenkins CI

2016-04-06  Francesco Romani  <fromani@redhat.com>

	spec: bump libguestfs-tools-c requirement again
	I misread the virt-v2v changelog, and bumped the
	dependency not high enough. This patch fixes that

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1292096
	Continuous-Integration: Jenkins CI

	vm: conf: proper locking in migration path
	We are still getting the error
	RuntimeError: dictionary changed size during iteration

	When calling Vm.status(), especially during migrations,
	so we must review our usage of Vm.conf and ensure the lock
	is always used.

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

2016-04-06  mlipchuk  <mlipchuk@redhat.com>

	mkimage: import mount explicitly from storage.
	import mount explicitly from storage and change
	it accordingly in mkimage and mkimageTests.

	Continuous-Integration: Jenkins CI

2016-04-06  Edward Haas  <edwardh@redhat.com>

	tests: Run unit tests using travis-ci and docker
	Integrate with travis ci to run unit tests with the help of a vdsm
	docker image.

	Currently it is based on the docker image edwardhaas/ovirt-vdsm-dev that
	contains the required vdsm packages for running the unit tests.
	The docker image is run, mounting current branch/pull commit and executes
	the unit tests (make check-unit).

	The image can be also be run locally:
	- Install docker.
	- Get and run the image: docker run edwardhaas/ovirt-vdsm-dev

	Travis CI run example, with this patch, can be reviewed here:
	https://travis-ci.org/EdDev/vdsm

	Travis CI should be enabled on the ovirt/vdsm repo so it can run on each
	merge.

	Continuous-Integration: Jenkins CI

2016-04-05  Francesco Romani  <fromani@redhat.com>

	caps: drop dead code
	We don't support RHEL6 anymore, and we depend anyway
	on libvirt >= 1.2.1x so we don't need this code anymore.

	Continuous-Integration: Jenkins CI

2016-04-05  Lukianov Artyom  <alukiano@redhat.com>

	hooks:checkips: add checkips hook
	Give possibilty to check connectivity between host and given addresses.
	Update network stats with state of addresses.

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

2016-04-05  Francesco Romani  <fromani@redhat.com>

	vm: use proper threading.Event()s
	We use plain booleans in Vm class to synchronize with the asynchronous
	creation thread. This is (most likely) already safe given the CPython
	semantics, but using threading.Event() better conveys what we are trying
	to do here, making the code a little clearer.

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

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

	Move numaUtils content to numa module
	Continuous-Integration: Jenkins CI

2016-04-04  Nir Soffer  <nsoffer@redhat.com>

	storageServer: Remove unused instance variable
	IscsiConnection._lastSessionId is not used since commit 87a3fa62adb0
	(storageServer: remove dead code from getSessionInfo).

	Continuous-Integration: Jenkins CI

2016-04-04  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add support for hotplug
	Host device hotplug is more complicated hotplug mechanism due to IOMMU
	limitations. The operation needs to be bulk, so IOMMU placeholders
	and/or different devices in shared groups can be added.

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

2016-04-04  Vinzenz Feenstra  <vfeenstr@redhat.com>

	guestagent: Add support for containers message
	This patch introduces the support of reporting the list of containers,
	sent by the guest agent and exposing it to the VDSM API.

	Sent by the guest agent is a list of active containers running on the guest
	virtual machine.
	Each container includes the id, names/aliases, image name, ran command and
	currently reported status.
	This information will be forwarded as is to the API.

	Guest-Agent-API-Version: 3
	Bug-Url: https://bugzilla.redhat.com/1273399
	Continuous-Integration: Jenkins CI

2016-04-04  Edward Haas  <edwardh@redhat.com>

	fix 186c8574: When using SSL, use the original host
	When a connection to a remote is perform and encryption (SSL) is
	enabled, the original target host should be used for the connection and
	not a resolved one.

	This bug has been detected when trying to connect to a remote IPv4 host,
	with a hostname as the target host and SSL enabled.
	The host got resolved before calling connect, and therefore the
	certificate has not been matched correctly (expected a hostname but used
	a resolved IPv4 address).

	When M2C is dropped, we can easily use the server_hostname arg of
	https://docs.python.org/2/library/ssl.html#ssl.SSLContext.wrap_socket
	and avoid the duplicate name resolution.

	Continuous-Integration: Jenkins CI

2016-04-03  Yaniv Bronhaim  <ybronhei@redhat.com>

	Build without supporting python3 by using --disable-python3
	Over some environments we still don't have all required packages for python3.
	Therefore VDSM build should support build process without python3
	dependencies. Using --disable-python3 configure flag will build
	vdsm without using python3.

	Continuous-Integration: Jenkins CI

2016-04-03  Idan Shaby  <ishaby@redhat.com>

	storagetests: add test for mount.isMounted
	Given a local path, this test verifies that the expected fs_file is
	found in /proc/mounts by calling mount.isMounted.

	Related-To: https://bugzilla.redhat.com/1305529
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>
	Continuous-Integration: Jenkins CI

	network: add hosttail_join to address.py
	Related-To: https://bugzilla.redhat.com/1305529
	Continuous-Integration: Jenkins CI

2016-04-02  Dan Kenigsberg  <danken@redhat.com>

	unbreak schemaValidationTest
	I have merged commit 59f6b37 prematurely, as it depnded on a former
	patch in the series.

	Continuous-Integration: Jenkins CI

2016-04-02  pkliczewski  <piotr.kliczewski@gmail.com>

	bridge: fix naming style
	Continuous-Integration: Jenkins CI

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

	Introduce VolumeArtifacts
	In an SDM managed storage domain we will create and remove volumes using
	a garbage collection approach rather than persistent tasks and rollback
	operations.  Volumes consist of three separate artifacts: a data area, a
	metadata area, and a lease area.  Once created on storage these objects
	must be convertable into a Volume with a single atomic operation (ie.
	rename a single file).  Conversely, a Volume can be destroyed by
	reducing it to its artifacts with a single atomic operation.

	VolumeArtifacts is an object to manage the creation and removal of the
	three volume artifacts for both block and file based storage.  It also
	has methods to manage the conversion of these artifacts to a Volume and
	to deconstruct a Volume in order to remove the artifacts from storage.
	The three artifacts on storage will not be detected as a volume by other
	storage code until they are committed.

	Proposed operations for VolumeArtifacts:
	 - create: Create the artifacts on storage
	 - commit: Convert the artifacts to a volume
	 - dismantle: Convert a volume into artifacts
	 - clean: Remove the artifacts from storage

	Additional methods to identify and garbage collect artifacts will also
	be required but the exact interface hasn't settled out yet.

	This patch introduces the idea with minimal support.  We can create
	artifacts on file storage and we only support raw format with no parent
	volume.  Support for cow, parent volumes, block storage, and volume
	removal will be added by subsequent patches.

	Continuous-Integration: Jenkins CI

2016-04-01  Petr Horáček  <phoracek@redhat.com>

	API: net: introduce 'switch' attribute for nets and bonds
	'switch' attribute is needed for multiple Switches support.

	Bug-Url: https://bugzilla.redhat.com/1195208
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-04-01  Francesco Romani  <fromani@redhat.com>

	spec: bump libvirt requirement
	Consume fix to handle imports from vmware.

	Bug-Url: https://bugzilla.redhat.com/1292096
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-31  Idan Shaby  <ishaby@redhat.com>

	storage: remove duplicate code of transformPath
	There are two places that duplicate the code of fileUtils.transformPath
	inline. This patch replaces this code with a call to transformPath.

	Related-To: https://bugzilla.redhat.com/1305529
	Continuous-Integration: Jenkins CI

2016-03-31  pkliczewski  <piotr.kliczewski@gmail.com>

	api: remove unused methods
	There is no reference in the engine nor in vdsClient of the methods in
	ConnectionRefs category.


	Continuous-Integration: Jenkins CI

2016-03-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	configure: fix vhostmd configure value
	this patch puts some order into the enable-vhostmd section of
	configure.ac. The redundant variable enable_vhostmd_hook is dropped,
	and the enable_vhostmd is set to "no" by default.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-03-31  Shahar Havivi  <shaharh@redhat.com>

	Handle closed stream when virt-v2v fails
	When file object is closed by the other side, read return empty string,
	previously we assumed an exception is raised.

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

2016-03-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	softlink conf files for build-artifacts repos and packages
	this patch should avoid failure of vdsm_master_check-merged-fc23-x86_64
	due to

	  checking for nosetests-3.4... no
	  configure: error: python3-nose not found

	Continuous-Integration: Jenkins CI

	remove fc22 automation support
	Continuous-Integration: Jenkins CI

2016-03-31  Martin Betak  <mbetak@redhat.com>

	vm: Move saveState() out of constructor
	Moved saveState() call to the begining of async start of VM in order to:
	* Make the vm ctor side effect free
	* Prevent from saveState being called in case the async start fails (incoming
	  migration limit exceeded)

	Continuous-Integration: Jenkins CI

2016-03-31  Francesco Romani  <fromani@redhat.com>

	spec: don't depend on ovirt-vmconsole on fedora
	Should Vdsm be installed on a system on which the
	ovirt-vmconsole package is not installed, it must
	be ./configure'd with:

	./configure \
	  --with-ovirt-vmconsole-user=vdsm
	  --with-ovirt-vmconsole-group=kvm

	In particular the ovirt-vmconsole-group could be something
	else, but MUST be a group already present in the system.
	Without those two options, any VM will fail to run.

	This is especially relevant for fedora, where the ovirt-vmconsole
	package is not yet available.

	Continuous-Integration: Jenkins CI

2016-03-31  Yaniv Bronhaim  <ybronhei@redhat.com>

	sync debian folder with supervdsm_api dir
	Continuous-Integration: Jenkins CI

2016-03-31  Francesco Romani  <fromani@redhat.com>

	vm: destroy: retry to gracefully destroy
	Add support to retry gracefully to destroy a VM
	before to go forcefully.
	Clients (Engine) could use a new optional parameter
	to tell Vdsm how many times it should retry
	gracefully. This is meant to reduce the risk
	of data corruption in the case the first graceful
	destroy fails (e.g. EBUSY, or system-level timeout).

	The default number of graceful attempt is one for
	backward compatibility.

	Bug-Url: https://bugzilla.redhat.com/1309884
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	vm: destroy: try harder destroying a Vm
	The current Vm code to destroy a Vm starts
	nice, using graceful destroy, and hits harder
	if the nice way fails.

	However, the failure of the first graceful attempt
	is only detected when libvirt returns a specific error code.
	Indeed, the return code of libvirt changed between RHEL6 and RHEL7.
	This looks fragile and looks like unnecessary detail.

	Digging into history, I was not able to find the reason why we look
	for a specific error code.

	This patch just drops the specific error code check.
	Now Vdsm always uses the harsh way if the nice way fails.

	Bug-Url: https://bugzilla.redhat.com/1309884
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-31  Edward Haas  <edwardh@redhat.com>

	net: Adding the netswitch module
	netswitch is placed between the network api and the switches (legacy and
	future ovs), acting as an interface to the underlying switches and
	taking shared responsibilities.

	Continuous-Integration: Jenkins CI

2016-03-31  Petr Horáček  <phoracek@redhat.com>

	caps: allow root-requiring network caps
	Since some OVS parameters are available only to root, we have to
	introduce a mechanism to complement already gathered network
	info with root-only data.

	This will be done by introduced network/api.py:caps_networks().

	Continuous-Integration: Jenkins CI

2016-03-31  Nir Soffer  <nsoffer@redhat.com>

	testlib: Fix temporaryPath on Python 3.
	Writing data to files must use bytes objects, not unicode/strings.
	Replace os.fdopen() with io.open(path, "wb") creating a buffered file
	object for writing binary data.

	Continuous-Integration: Jenkins CI

2016-03-31  Petr Horáček  <phoracek@redhat.com>

	suppress for python2
	Since suppress() function is available only since Python 3.4, add our
	own implementation to vdsm/common/contextlib.py and use it if original
	not available.

	Continuous-Integration: Jenkins CI

2016-03-31  Dan Kenigsberg  <danken@redhat.com>

	commands: import StringIO when AsyncProc is started
	This patch makes it possible to import vdsm.commands on Python 3.
	However, it does not make the module py3-compatible - any usage of
	AsyncProc under Python 3 would fail in runtime.

	The motivation of this patch is to allow adding more modules to the
	test_modules_py3 list, while causing no runtime harm to Python 3.

	Continuous-Integration: Jenkins CI

2016-03-30  Dan Kenigsberg  <danken@redhat.com>

	compat: mock CPopen for Python 3 testing
	I would like to run Vdsm unit tests in Python 3, but many tests
	ultimately attempt to import CPopen. The right thing to do is to remove
	CPopen dependency from the code, but this task is lagging. Until then,
	this patch drops CPopen dependecy for Python 3 only.

	Continuous-Integration: Jenkins CI

2016-03-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Generate coverage report only over fedora which runs unittests
	No reports return 1 and mock thinks that the build failed and report an
	error

	Continuous-Integration: Jenkins CI

2016-03-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove blkid
	Engine has never used the UUID argument for storage specification.
	We drop _getUUIDSpecPath and blkid to avoid carrying dead code.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-03-29  Ondřej Svoboda  <osvoboda@redhat.com>

	shell_helper: ignore iproute2's @master notation to obtain device names
	Continuous-Integration: Jenkins CI

	bonding: move pre-generated data to /usr/share/vdsm
	Bug-Url: https://bugzilla.redhat.com/1261056
	Continuous-Integration: Jenkins CI

2016-03-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	add x86 to epel repo
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-03-29  Francesco Romani  <fromani@redhat.com>

	spec: bump safelease version
	We require a new safelease package to pull more
	arch-specific dependency, until Vdsm can do this
	on its own again.

	In this case, we want virt-v2v to be installed
	on x86_64.

	Related-To: https://bugzilla.redhat.com/1318014
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-29  Martin Polednik  <mpolednik@redhat.com>

	hostdev: expose hostdevReattach maintenance verb
	If device detachment fails at some point, VDSM does nothing. That is
	because detached device does not break anything - it just lacks the
	correct driver and is not usable by the host. Such device wouldn't
	normally be used by host at all, but we should provide option to
	reattach it back without using virsh.

	That way, users are able to reattach devices that they need to use
	after them being detached.

	Continuous-Integration: Jenkins CI

	hostdev: expose 'driver' attribute
	Device drivers are exposed via sysfs file, and those values are exposed
	in libvirt's virNodeDevice XML. Exposing driver further allows us to do
	some nice things such as displaying it to the user, who can then verify

	*) that GPU is correctly bound to pci-stub,
	*) used devices are bound to vfio-pci or
	*) kernel cmdline settings.

	Additionally, since host devices are not reattached (since
	2bdcf4f99e47) it is important to propagate the value further, allowing
	user to reattach devices that manually if one wishes.

	Continuous-Integration: Jenkins CI

2016-03-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	using six in xmlrpc for python3 comp
	Continuous-Integration: Jenkins CI

2016-03-28  Ondřej Svoboda  <osvoboda@redhat.com>

	network: inherit DUID from a bridge's port with no restriction
	A bridge must reuse the DHCP unique identifier of the underlying
	network device it is built atop so DHCP client obtains the same
	lease (in particular, the same address).

	Recently, the flow in setupNetworks changed in a way that the device
	being "replaced" by the bridge no longer reports 'dhcpv4' as True.
	There is simply no evidence of DHCPv4 being used on the device, and
	thus DUID would not be inherited, as the checking is too strict.

	Now, dhclient run on the bridge is always called with the '-df' option
	(used to refer to the bridge port's lease file) as long as it is
	supported. The option is harmless: dhclient simply ignores it if the
	lease file doesn't exist.

	As dhclient doesn't have a -h/--help option, we pass to it an
	intentionally invalid option, tricking it into listing the options it
	supports. To avoid printing the error output to logs, dhclient is now
	called directly, not through execCmd.

	Continuous-Integration: Jenkins CI

2016-03-28  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove parted_utils from vdsm
	it was used by supervdsm api getDevicePartedInfo which is not in used
	anymore.

	Continuous-Integration: Jenkins CI

2016-03-27  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: re-enable IPv6 before device configuration, or disable afterwards
	If a network has been restored with no IPv6 requested, all its devices
	have disable_ipv6 set to 1 and up to now there was no other way to
	re-enable IPv6 than doing so manually or rebooting.

	This patch enables IPv6 on the top-level device ("the network") prior
	to ifup, sets the underlying devices' disable_ipv6 to 1 as they are
	not directly involved in communication. If IPv6 is not requested, it
	is disabled on all devices after ifup.

	Continuous-Integration: Jenkins CI

2016-03-27  Dan Kenigsberg  <danken@redhat.com>

	configure.ac: hard-require python3
	commit f247a0c made python3 a hard build requirement. configure.ac
	must reflect that.

	Continuous-Integration: Jenkins CI

2016-03-27  Yaniv Bronhaim  <ybronhei@redhat.com>

	automation: Run unittests only over fedora mock to save jenkins resources
	Continuous-Integration: Jenkins CI

2016-03-26  Edward Haas  <edwardh@redhat.com>

	net: Introduce network.ip package
	vdsm.network.ip.address is added
	IPv4 and IPv6 classes are moved to it (from models).

	Basic unit test has been created, proper coverage should be added in
	future patches.

	Continuous-Integration: Jenkins CI

2016-03-25  Sandro Bonazzola  <sbonazzo@redhat.com>

	jsonrpcvdscli: getStorageDomainsList verb
	Add getStorageDomainsList used by ovirt-hoste-engine-setup.

	Related-To: https://bugzilla.redhat.com/1228641
	Continuous-Integration: Jenkins CI

	jsonrpcvdscli: connectStorageServer verb
	Add connectStorageServer used by ovirt-hoste-engine-setup.

	Related-To: https://bugzilla.redhat.com/1228641
	Continuous-Integration: Jenkins CI

2016-03-25  Dan Kenigsberg  <danken@redhat.com>

	el7: require newly available python34-nose
	Recently, (as of rhbz#1294865 and rhbz#1294862) six and nose are
	available to python3 users via EPEL7. This patch requires their
	availability on build hosts.

	Continuous-Integration: Jenkins CI

2016-03-25  Francesco Romani  <fromani@redhat.com>

	virt: common handling of exceptions
	Vm methods should not return responses directly.
	Rather, they should raise proper exception,
	and a common layer should translate them in responses.

	In case of succesfull completion, this code automatically
	produces a generic success response. Should the method
	require extra fields, it can return a dictionary
	with the keys to be added to the success response.

	Using this way the method could also override the default
	keys (e.g. the message). This is not clean but it could
	be needed for backward compatibility.

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

2016-03-25  Sandro Bonazzola  <sbonazzo@redhat.com>

	jsonrpcvdscli: getConnectedStoragePoolsList verb
	Add getConnectedStoragePoolsList used by ovirt-hoste-engine-setup.

	Related-To: https://bugzilla.redhat.com/1228641
	Continuous-Integration: Jenkins CI

	jsonrpcvdscli: add getVdsHardwareInfo verb
	Add getVdsHardwareInfo used by ovirt-hoste-engine-setup.

	Related-To: https://bugzilla.redhat.com/1228641
	Continuous-Integration: Jenkins CI

2016-03-24  Adam Litke  <alitke@redhat.com>

	storage: Clean up image links during teardownImage
	In commit 736ab9 we began cleaning up volume links that were created in
	/var/run/vdsm/images/... Unfortunately on block domains we are leaving
	around a broken symlink in /rhev/data-center/... in some cases and this
	will cause storage operations related to a disk of a VM that was
	previously running to fail on this host.  The solution is to also remove
	this broken symlink during teardownImage.

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

	blockVolume: Remove stale links to image directory
	Since we started to create the image directory under "/run/vdsm", the
	image directory under "/rhev/data-center/pool/sd/images/" may be a link
	to "/run/vdsm/storage/sd/image".

	The old code (from rhev-3.0) creating the image directory lazily was not
	designed to handle links and was happily using a stale link instead of
	creating the image directory.

	Now we detect and remove stale links, so proper image directory is
	created. Since stale links are not expected in normal usage, we log a
	warning in this case.

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

2016-03-24  Nir Soffer  <nsoffer@redhat.com>

	commit-template: Refine the example text
	Improve the long description, making the template closer to how a commit
	message should look like.

	Continuous-Integration: Jenkins CI

2016-03-24  Ilia Meerovich  <iliam@redhat.com>

	Skipping networkTests if alien bonds presents in the system
	Alien bonds causes to tests to report incorrect results.
	Testing with alien bonds doesnt test vdsm networking.
	It makes sense since ovirt host shouldn't be used for other
	purposes.

	Continuous-Integration: Jenkins CI

2016-03-24  Ondřej Svoboda  <osvoboda@redhat.com>

	network tests: remove bonds after use
	Continuous-Integration: Jenkins CI

2016-03-24  Francesco Romani  <fromani@redhat.com>

	configurator: libvirt: do not jump on virtlogd
	Libvirt 1.3.0 adds and uses by default a new service called virtlogd
	to prevent malicious QEMU guests to DoS the virtualization host.
	For more details, the initial announcement is here:
	https://www.redhat.com/archives/libvir-list/2015-November/msg00085.html

	The feature seems promising and helpful, but we are
	not eager to jump early on this bandwagon, do we disable
	this for the near future.

	Once the feature is stable and we run our integration test,
	we will re-enable it.

	Backport-To: 3.6
	Temporary-Patch: yes
	Related-To: https://bugzilla.redhat.com/1318902
	Continuous-Integration: Jenkins CI

2016-03-24  Idan Shaby  <ishaby@redhat.com>

	storagetests: add "server:" to spec part
	This patch adds the missing "server:" part to the spec parameter of
	MountConnectionTests.test_normalize_local_path.

	Related-To: https://bugzilla.redhat.com/1305529
	Continuous-Integration: Jenkins CI

2016-03-24  Petr Horáček  <phoracek@redhat.com>

	tests: ovs: mock setupNetworks in OVSNetworkTests class
	Until now we marked networks and bonds as OVS ones in OVSVdsProxy.
	It is easier to do so on OVSNetworkTests class.

	Continuous-Integration: Jenkins CI

2016-03-24  Francesco Romani  <fromani@redhat.com>

	spec: bump libguestfs-tools-c requirement
	Consume fix to handle imports from vmware.

	Bug-Url: https://bugzilla.redhat.com/1292096
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-23  Petr Horáček  <phoracek@redhat.com>

	ovs: hook: fake bridgeless networks
	Engine expects host-only networks (e.g. display or migration networks)
	to be bridgeless. We cannot create bridgeless networks in OVS, but we
	can create them bridged and then lie about them to engine.

	Continuous-Integration: Jenkins CI

2016-03-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	fix pep8 1.4.6 errors for el7 build
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-03-23  Martin Polednik  <mpolednik@redhat.com>

	cpuarch: Move PAGE_SIZE_BYTES to cpuarch
	This constant is mostly related to the CPU architecture.

	Continuous-Integration: Jenkins CI

2016-03-22  Nir Soffer  <nsoffer@redhat.com>

	fileUtils: Warn about callers of fileUtils.createdir()
	To ensure we will check the callers of fileUtils.createdir() it emits
	now a warning when a directory exists.  The warning is available only
	when python_warnings_enable option is enabled, so it does not effect
	users.

	Continuous-Integration: Jenkins CI

2016-03-22  Allon Mureinik  <amureini@redhat.com>

	storage: Remove legacy get[Iso|Floppy]List
	The legacy getIsoList and getFloppyList verbs are only used in DCs of
	compatibility version 3.3 (or older), while newer DCs use the
	getFileStats verb. Since these old DC levels are no longer supported
	by VDSM, these verbs can safely be removed.

	Continuous-Integration: Jenkins CI

2016-03-22  Nir Soffer  <nsoffer@redhat.com>

	fileUtils: Convert unhelpful warnings to debug messages
	When a directory exists, fileUtils.createdir() logs a warning, although
	it has no context to tell if the existing directory is expected in the
	normal flow, or an unexpected error condition.

	This warning causes users to worry about non-existing issues and feel
	less confident about the product. It also makes developer life harder,
	since searching for warnings results in many unrelated messages.

	This patch changes the warning to debug message, which may be helpful
	for debugging.  Code that wants to warn about existing directories
	should not call fileUtils.createdir() but the underlying os.makedirs()
	and handle the EEXIST error.

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

2016-03-22  Adam Litke  <alitke@redhat.com>

	storagetests: Add create_block_volume
	Add a utility function to create a fake block volume.  We must make sure
	the LV is present in our FakeLVM instance with the proper lvtags.
	Volume metadata is allocated from the fake domain's metadata area.  We
	must also create the directory for the image.

	Continuous-Integration: Jenkins CI

	storagetests: Rename make_blocksd
	Over time make_blocksd has evolved to work more like
	make_filesd_manifest.  Now that it performs the same functionality as
	its file counterpart we should make the names similar as well.

	Continuous-Integration: Jenkins CI

	storagetests: Create metadata storage area for block domains
	In order for our fake block storage domains to function with more real
	code we need to create the "backing storage" for the metadata LV.  As
	written today, the code does not care if this is a file instead of a
	block device.

	Continuous-Integration: Jenkins CI

	tests: Add test_overwrite_blocksize test
	The BlockStorageDomainManifest has special behavior with respect to its
	logBlkSize and phyBlkSize properties.  These are set at object
	construction time from the passed metadata but are not updated when
	replaceMetadata is called (even if the new metadata specifies new
	sizes).  This test verifies that values are not overridden by
	replaceMetadata but that non-default values can be provided during
	object construction.

	Continuous-Integration: Jenkins CI

2016-03-22  Fabian Deutsch  <fabiand@fedoraproject.org>

	spec: vdsm requires vdsm-cli
	vdsm is packaging the sos plugin, which in turn relies on vdsm-cli.
	Thus vdsm-cli should be a dependency of vdsm.

	Continuous-Integration: Jenkins CI

2016-03-22  Edward Haas  <edwardh@redhat.com>

	net: IP address hosttail split tool
	vdsm.common.network.address.hostail_split is provided to decode hostport
	and nfs mount path.
	Both use the following structure: host:tail, where 'tail' is either a
	port or a path.

	Continuous-Integration: Jenkins CI

2016-03-22  Nir Soffer  <nsoffer@redhat.com>

	tests: Skip test if veth_pair cannot be created
	The context manager used try-except-finally in the wrong way, always
	deleting the interface, even when we failed to create it.

	Continuous-Integration: Jenkins CI

2016-03-22  Martin Polednik  <mpolednik@redhat.com>

	hostdev/sr-iov: don't reattach devices
	Similar to [1]. As SR-IOV devices
	are still classical VFIO devices, we want to avoid implicitly rebinding
	them to the host drivers for reasons outlines in [1].

	[1] I1136292cb7e9d13a8202b1f5162299d2155e8036

	Continuous-Integration: Jenkins CI

2016-03-22  Nir Soffer  <nsoffer@redhat.com>

	exception: Add exceptions for vdsm.define errors
	Add an exception class for each error in vdsm.define.

	The long term goal is simplifying error handling, so code can raise
	error in whatever layer the error happened, and single error handler
	will generate the response using the error response() method.

	As a temporary step, define.errCode is using the new exceptions to build
	the response dict. When callers are updated to raise the new exceptions,
	we can drop the errCode dict and the define module.

	Continuous-Integration: Jenkins CI

2016-03-22  Adam Litke  <alitke@redhat.com>

	tests: refactor manifest_tests fake env setup
	The manifest_tests have a lot of boilerplate code to set up the fake
	environment for each test.  Use the new FakeEnv infrastructure provided
	by storagetestlib to clean up these tests.

	Continuous-Integration: Jenkins CI

2016-03-22  Martin Polednik  <mpolednik@redhat.com>

	hostdev: don't implicitly reattach devices
	We have previously dealt with device drivers as follows:

	1) detach (means unbinding from host driver),
	2) VM runs and
	3) reattach (binds the driver back to host).

	This patch removes step 3. Although it explicitly makes device unusable
	for the host after VM's runtime, the patch series also re-introduces
	the hostdevReattach verb to explicitly fix these devices.

	The importance of this change lies in the fact that device drivers are
	evil. Rebinding to a driver may lead to horrible issues, most notably
	host kernel crashes. We can also assume that, on properly maintained
	hosts, the devices are reserved for assignment and are not meant to be
	used by the host at all.

	Valid points for this kind of behavior are in this[1] thread.

	[1] https://www.redhat.com/archives/libvir-list/2016-March/msg00593.html

	Continuous-Integration: Jenkins CI

2016-03-22  Milan Zamazal  <mzamazal@redhat.com>

	virt: Move Vm._getUnderlyingVmDevicesInfo() content out of Vm
	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingDriveInfo() out of Vm
	This generally follows the Sound device example, but involves a bit more
	code.

	Continuous-Integration: Jenkins CI

2016-03-21  Fred Rolland  <frolland@redhat.com>

	storage: move persistent to lib
	Moving vdsm/storage/persistentDict.py to
	lib/vdsm/storage/persistent.py

	Continuous-Integration: Jenkins CI

2016-03-21  Dan Kenigsberg  <danken@redhat.com>

	tests: move sourcerouting_test to tests/net where it belongs
	Continuous-Integration: Jenkins CI

2016-03-20  Allon Mureinik  <amureini@redhat.com>

	dsaversion: Remove 3.4 support
	The current VDSM no longer supports 3.4 clusters (see, e.g., commit
	1f21f1c). This patch explicitly states that in the dsaversion, to avoid
	pointless failures of dnf upgrading vdsm and having the host move to
	non-operational.

	Continuous-Integration: Jenkins CI

2016-03-19  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: move udev-related functions to udev.py
	Continuous-Integration: Jenkins CI

	hostdev: decode XML string when parsing devices
	As there is no encoding of information and libvirt does not handle
	encoding, our best bet is ascii. This patch therefore converts device
	XMLs to ascii, ignoring the errors found.

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

2016-03-19  Edward Haas  <edwardh@redhat.com>

	net tests: TestIPv6Addresses should run as root
	In addition, it is marked as an integration test.

	Continuous-Integration: Jenkins CI

2016-03-18  Milan Zamazal  <mzamazal@redhat.com>

	virt: Move Vm._getUnderlyingUnknownDeviceInfo() out of Vm
	This is somewhat similar to other devices but has its specifics.  We put
	the resulting function into a newly created source file as it doesn't
	belong to supported devices.  The content of
	Vm._getUnderlyingVmDevicesInfo() will be put into the same file in a
	followup patch.

	Continuous-Integration: Jenkins CI

2016-03-18  Edward Haas  <edwardh@redhat.com>

	net tests: IPv6 autoconf with RA server
	Adding an integration test that checks IPv6 address allocation through
	slaac (autoconf).

	The test uses dnsmasq with enabled router advertisement.

	Continuous-Integration: Jenkins CI

2016-03-18  Milan Zamazal  <mzamazal@redhat.com>

	virt: Move Vm._getUnderlyingNetworkInterfaceInfo() out of Vm
	This generally follows the Sound device example, but involves a bit more code.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingHostDeviceInfo() out of Vm
	This generally follows the Sound device example, but is a bit more
	complicated and requires an additional unit test to get the moved code
	covered.

	Continuous-Integration: Jenkins CI

2016-03-18  Martin Polednik  <mpolednik@redhat.com>

	osinfo: avoid excepting *
	Using 'except:' can easily hide things such as syntax errors. This
	patch changes the code to except Exceptions, leading to possibly safer
	code.

	Continuous-Integration: Jenkins CI

2016-03-17  Vinzenz Feenstra  <vfeenstr@redhat.com>

	guest-agent: Fix API version negotiation
	The guest agent negotation is currently broken due to storing the wrong value
	as effectiveAPIVersion.
	Currently the reported value by the guest agent is stored, which actually
	should not be stored, but the commonVersion value.

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

2016-03-17  Milan Zamazal  <mzamazal@redhat.com>

	virt: Move Vm._getUnderlyingGraphicsDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example,
	with additional update of a test and one TODO comment.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingMemoryDeviceInfo() out of Vm
	This generally follows the Sound device example, except for additional
	memSize setting in conf, an additional place where memory devices are
	updated, and adding simplistic test coverage.

	Continuous-Integration: Jenkins CI

2016-03-17  Martin Polednik  <mpolednik@redhat.com>

	machinetype: document public functions
	Continuous-Integration: Jenkins CI

2016-03-17  Martin Betak  <mbetak@redhat.com>

	response: Add support for specific error checking in is_error
	response.is_error can now take an optional 'err' argument to check
	if given response is of that particular error type.

	E.g. to check if given response if an instance of 'migrateLimit' error:

	  response.is_error(result, 'migrateLimit')

	This will return false for successful response as well for all error codes
	other than that of 'migrateLimit'.

	Continuous-Integration: Jenkins CI

2016-03-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Remove unused code
	Remove class method from the DirectFile tests that nobody uses.

	Continuous-Integration: Jenkins CI

	tests: Use multiple context expressions
	Since Python 2.7, multiple context expressions are supported in with
	statement, eliminating the need for nesting or using the deprecated
	nested() helper.

	This patch simplify with usage the DirectFile tests.

	See https://docs.python.org/2/reference/compound_stmts.html#the-with-statement

	Continuous-Integration: Jenkins CI

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

	net: api: move rollback to network/api.py level
	In order to simplify rollback handling we moved rollback from
	API.py to network/api.py.

	Note, that we also have to fix netinfo.cache import in vdsm/caps.py,
	caps were added to scope as a side effect of RollbackIncomplete import
	in API.py. For more info check https://gerrit.ovirt.org/#/c/53529

	Continuous-Integration: Jenkins CI

2016-03-15  Edward Haas  <edwardh@redhat.com>

	net: Network caps now reports IPv6 autoconf state
	'ipv6autoconf' current status is reported through caps.

	Integration tests have been added to cover ipv6autoconf.

	Continuous-Integration: Jenkins CI

	tests: Do not skip test on dnsmasq_run failure
	Tests that used dnsmasq_run context manager could skip if the dnsmasq
	failed to start.

	There is no apparent reason for it to fail, but if it does we better fail.
	(so we could notice it and examine the problem)

	Continuous-Integration: Jenkins CI

	tests: Provide dnsmasq_run as a context manager
	The functional tests are using dnsmasqDhcp as the dnsmasq context
	manager. It is limited to a single configuration and located as part of
	the functional network test module.

	Same functionality has been added in the nettestlib module, with options
	to allow a test to specify its own configuration, per the needs.

	dnsmasqDhcp is replaced by dnsmasq_run.

	Continuous-Integration: Jenkins CI

2016-03-15  Martin Polednik  <mpolednik@redhat.com>

	osinfo: pep8tify kdump_status
	Continuous-Integration: Jenkins CI

2016-03-15  Nir Soffer  <nsoffer@redhat.com>

	fileUtils: Add atomic_symlink utility
	This helper function creates or updates a symlink atomically. If the
	symlink exists but links to a different target, it is replaced
	atomically with a link to the specified target.

	We use this logic now for linking storage domain, and we want to use the
	same logic for creating or updating the image rundir links
	(/run/vdsm/storage/sd_uuid/img_uuid)

	Continuous-Integration: Jenkins CI

2016-03-15  Martin Polednik  <mpolednik@redhat.com>

	osinfo: use pep8 function names
	Continuous-Integration: Jenkins CI

	caps: move os-related information to osinfo module
	As a part of ongoing effort to strip caps.py the 'trashbin of VDSM
	capabilities' title, this patch moves functionality related to OS
	(packages, kdump support, selinux) etc. to VDSM library, module osinfo.

	This is mostly raw move, cleanups within osinfo will be added further
	in the patch series.

	Continuous-Integration: Jenkins CI

2016-03-15  Francesco Romani  <fromani@redhat.com>

	lib: executor: port executor.py to python3
	This patch fixes executor.py to work with python3,
	and enable its test to run on python3.

	We achieve this goal using 'range' instead of 'xrange'
	(xrange was renamed range in py3).
	This could cause performance regression on py2 in theory,
	if the workers count grows too high.

	But we know already from testing that having too many workers
	dwarfs any other performance/memory consumption issue,
	so moving to range() should not bring practical issues.

	Continuous-Integration: Jenkins CI

2016-03-15  Milan Zamazal  <mzamazal@redhat.com>

	virt: Move Vm._getUnderlyingConsoleDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingRngDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingSmartcardDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingWatchdogDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingBalloonDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingControllerDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingVideoDeviceInfo() out of Vm
	This is just a simple move of code, following the Sound device example.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingSoundDeviceInfo() out of Vm
	This is the first sample movement of _getUnderlying*DeviceInfo() method
	movement out of Vm class.  This patch does nothing more than moving the
	corresponding code and updating the docstring accordingly.  There are
	other tempting changes we might want to do with the code, such as
	getting rid of the configuration updates, but that's better done later,
	after everything is moved to proper places.

	Other _getUnderlying*DeviceInfo() methods are going to be moved in the
	same way in the followup patches.

	Continuous-Integration: Jenkins CI

	virt: Use PEP8 identifiers in vmxml.device_address
	This is a trivial change just renaming two local variables.

	Continuous-Integration: Jenkins CI

	virt: Move Vm._getUnderlyingDeviceAddress() to vmxml.py
	This is a preparation step for the next round of moving device handling
	code out of Vm class.  We want to move Vm._getUnderlying* methods out of
	Vm, but not all at once.  Most of the methods use
	_getUnderlyingDeviceAddress() so we need to have this functionality
	available in both Vm and the moved code and this is the reason for
	having this preparation step.

	Continuous-Integration: Jenkins CI

2016-03-15  Edward Haas  <edwardh@redhat.com>

	tests: Classify network tests type
	Mark the tests as unit or integration.

	For running unit tests, issue 'make check-unit'.

	Continuous-Integration: Jenkins CI

	test: Unit Test target with NOSE attribute/marker
	Prepare the infrastructure for marking tests using
	nose.plugins.attrib.attr for their 'type' and create a
	check-unit (make) target to run only unit tests.

	Following patches will mark unit tests.

	The goal is to allow developers to run all unit tests frequently, fast and
	on any linux flavor.

	Continuous-Integration: Jenkins CI

2016-03-14  Adam Litke  <alitke@redhat.com>

	storagetests: initial FakeEnv support
	Many storage tests rely on a mocked storage environment in order to test
	the storage code.  We can achieve this environment through a combination
	of mocked objects, monkey-patching, and use of temporary files and
	directories.  To simplify the tests and increase reliability we
	introduce a standardized interface implemented with context managers
	that can be used by all tests.  While not all tests actually require the
	full scope of these mocked environments, the benefits of uniformity
	justify the extra setup.

	Continuous-Integration: Jenkins CI

	FakeLVM: Add invalidateVG stub
	Real code expects to call lvm.invalidateVG in cases where our cache
	needs to be invalidated and the data should refreshed from LVM.  FakeLVM
	has no such cache so this is a no-op.

	Continuous-Integration: Jenkins CI

	tests: incorporate pool id in file domain path
	In real environments, an image 'A' in a file domain would appear in the
	following directory path:

	    /<storage-repo>/<pool-id>/<domain-id>/images/A

	Prior to this patch the helper function make_filesd_manifest was
	creating the structure:

	    /<storage-repo>/<domain-id>/images/A

	This obviously doesn't agree and needs to be fixed.  The solution is to
	generate a spuuid in make_filesd_manifest and construct the metadata
	appropriately and then initialize the domain manifest with the path that
	includes the pool id.

	To make sure this works for all callers, prohibit callers from passing
	in their own domain metadata.  Only one test needed to be fixed to make
	this change.

	Continuous-Integration: Jenkins CI

	tests: Add sduuid to fake domain metadata
	When initializing fake storage domains we create the domain metadata.
	The domain ID should always be added to this metadata.

	Continuous-Integration: Jenkins CI

	storage: Cleanup usage of DMDK_POOLS
	Storage Domains have a metadata key called DMDK_POOLS.  Volumes also use
	this metadata key by importing it from sd.py.  This is ugly and will
	cause a circular module dependency in an upcoming patch.  Clean this up
	by creating a new MDK_POOLS constant in constants.py and using that
	definition from sd.py and volume.py.

	Continuous-Integration: Jenkins CI

	tests: rename manifest_tests.py
	We now have multiple kinds of manifests: StorageDomainManifest,
	ImageManifest, and VolumeManifest.  Move manifest_tests.py to
	domain_manifest_tests.py so that we can create new files to test the
	other kinds of manifests.

	Continuous-Integration: Jenkins CI

2016-03-14  pkliczewski  <piotr.kliczewski@gmail.com>

	vm: remove not used monitorCommand
	Continuous-Integration: Jenkins CI

2016-03-14  Edward Haas  <edwardh@redhat.com>

	net tests: Move dhcp and firewall service modules
	dhcp and firewall modules have served only network functional tests.
	New integration tests require these services, therefore, they are being
	moved to the tests/network package, allowing their usage by integration
	and functional tests.

	Continuous-Integration: Jenkins CI

	net tests: Introduce Router Advertisement with dnsmasq
	dnsmasq has been used as a dhcp server for the network funtional tests.
	With the introduction of IPv6 support and its autoconf option, RA is
	enabled in dnsmasq (if requested).

	RA is currently disabled by default, following patch should enable it by
	default.

	Continuous-Integration: Jenkins CI

2016-03-14  pkliczewski  <piotr.kliczewski@gmail.com>

	build: clean tests certificates
	There were recent changes how we represent host in tests certificates
	so we can support ipv6. Switching between branches requires cleaning
	certs otherwise tests would fail. Now when we run make clean tests certs
	are deleted.


	Continuous-Integration: Jenkins CI

2016-03-14  Dan Kenigsberg  <danken@redhat.com>

	contrib/shell_helper: allow installing from tag
	Prior to this patch, _latest_version failed to find a definitive marker
	on rpms that where built from a tag and thus lacked 'git<hash>' in their
	name. Now names such as vdsm-hook-4.17.24-0.el7.centos.noarch.rpm are
	tolerated.

	Continuous-Integration: Jenkins CI

2016-03-14  Francesco Romani  <fromani@redhat.com>

	virt: more moving under site-packages
	Move another round of virt modules under site-packages.
	The modules left out are the one still actively
	worked, as well as the dreaded vm.py, as part as the ongoing
	effort to cleanup VM devices handling and move from minidom
	to etree.
	Same applies for the migration code, which is being changed
	because of the 'migration enhancements' feature.

	We will have another mass move later in the cycle,
	when the aforementioned work is done.

	Continuous-Integration: Jenkins CI

	netinfo: dns: more robust parsing of resolv.conf
	The current code which parses /etc/resolv.conf is not
	very robust. This code should handle manual edit
	of such file (discouraged, but possible).

	In particular, it should skip silently empty lines;
	current code breaks in this case.

	I noticed this issue randomly while running Vdsm
	on some host of mine, where I routinely edit
	/etc/resolv.conf (et. al.)

	Continuous-Integration: Jenkins CI

2016-03-13  Nir Soffer  <nsoffer@redhat.com>

	storage: Sort modules
	When securable module was moved to vdsm.storage, some file lists were
	not sorted correctly. This was most likely the maintainer fault, taking
	patches in the wrong order.

	Continuous-Integration: Jenkins CI

2016-03-13  Ala Hino  <ahino@redhat.com>

	storage: Move sync module to lib
	Moving vdsm/storage/sync.py to lib/vdsm/storage/sync.py

	Continuous-Integration: Jenkins CI

2016-03-13  pkliczewski  <piotr.kliczewski@gmail.com>

	bridge: remove dead code
	Continuous-Integration: Jenkins CI

	bridge: obtain method
	We used to change ClassName.MethodName to ClassName_MethodName due
	restrictions of parameter when using getattr. Now we use custom method
	to do it so we do not need to change ClassName.MethodName.


	Continuous-Integration: Jenkins CI

	stomp: make sure that subscriptions use uniqe id
	There was a bug in the engine that there were two subscriptions with
	the same id. This issue as a result created fd leak because we were not
	able to clean the subscription id on connection closed or unsubscribe.

	Continuous-Integration: Jenkins CI

2016-03-11  Nir Soffer  <nsoffer@redhat.com>

	repoplot: Support dd copy commands used in 3.5
	In 3.5, we used to copy qcow volumes using dd, and raw volumes using
	qemu-img. Parse the these dd commands and display both dd and qemu based
	disk copies in the "disk commands" graph.

	This operation generates lot of io, possibly effecting domain
	monitoring.

	Continuous-Integration: Jenkins CI

	repopolot: Remove duplicate command end detection
	Extract is_command_end(log) function replacing duplicate code in command
	handlers.

	Continuous-Integration: Jenkins CI

	repoplot: More correct log parsing
	For correctness, parse also function name embedded into the last field.
	This filed is available now as log.func. Reformat Log namedtuple as it
	does not fit in one line now.

	Continuous-Integration: Jenkins CI

	repoplot: Avoid creation of empty command stats
	Previously we did:

	    cs = commands[log.thread]

	Which creates a new CommandStats for the current thread. However if the
	log did not match the start or end conditions, and no other command was
	issued for this thread, this would create a useless record.

	Now we access the command only if the start or end conditions match.

	Continuous-Integration: Jenkins CI

	repoplot: Remove duplication
	Move duplicate command start and end log handling into CommandStats
	class, simplifying log handling functions.

	Move similar handling code to DomainStats class for consistency.

	Rename "operations" to "commands", for consistency.

	Continuous-Integration: Jenkins CI

	repoplot: Add qemu-img operation for pre 4.0 logs
	Add matches to support qemu-img operations in 3.6 and 3.5.

	Continuous-Integration: Jenkins CI

	repoplot: Add qemu-img operation graph
	Parse and display qemu-img operations (4.0 only). These operations
	generate lots of io, which can effect storage domains monitoring.

	Continuous-Integration: Jenkins CI

	repoplot: Add storage domains monitors commands
	The time to read from storage is already reported in the repostat
	"delay" graph. This graphs show the time to run the dd command. We have
	seen cases where the delay was very fast, but running dd command took 15
	seconds. I suspect that this issue was caused by overloaded vdsm on
	machine with many cores, and should be fixed by using cpu_affinity.

	Relates-To: https://bugzilla.redhat.com/1081962
	Continuous-Integration: Jenkins CI

	reppolot: Add mailbox dd commands graph
	Storage mailbox check for mail dd commands are performed only on the
	master domain, but since they are run every 3 seconds, they are good
	indicator for storage issues in the master domain.

	Checking logs for copy disk flow show that SPM check for mail commands
	become very slow (up to 6 seconds per command). This may cause extend
	operations slow down leading to pausing of a vm.

	Relates-To: https://bugzilla.redhat.com/1295208
	Continuous-Integration: Jenkins CI

	repoplot: Make it easier to add new graphs
	Adding new subplot does not require modifyng other plots now.

	Continuous-Integration: Jenkins CI

	repoplot: Prepare for collecting other commands
	Change add_lvm_command to generic add_command, so we can use the same
	logic for detecting start and stop of a command for collecting other
	commands statistics.

	Continuous-Integration: Jenkins CI

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

	json: use forzenset for filtered methods
	Continuous-Integration: Jenkins CI

	jsonrpc: provide more info when method not found
	When there was no method to be invoked we returned generic exception
	without any information about missing method. Now we return this info.


	Continuous-Integration: Jenkins CI

2016-03-11  Nir Soffer  <nsoffer@redhat.com>

	tests: Remove unneeded assert
	RWLock stress tests are for timing operations. The assert about lock
	fairness is fragile and may break with different implementation.

	Continuous-Integration: Jenkins CI

2016-03-11  Francesco Romani  <fromani@redhat.com>

	schema: add Rng and Tpm device to the device list
	If Engine asks Vdsm to create a Vm with Rng or Tpm device,
	then Vdsm
	- consumes the data from the VM.create arguments
	- reports the devices in the VM.list (et. al.) return value

	The problem here is just the Rng and Tpm device were not listed
	as valid device types, so they *seem* unused.

	I actually run a VM with rng device enabled and seen that this
	data is indeed present, so this patch adds the missing bits
	to make the schema consistent.

	Continuous-Integration: Jenkins CI

	vm: rng: add TODO about schema cleanup
	The Rng device uses the data Engine sends,
	documented in schema, in a pretty obscure and
	confusing way.

	Once we streamline this, we can unlock further
	schema cleanup.

	Add a TODO comment in the code to make sure this
	is not forgotten.

	Continuous-Integration: Jenkins CI

	tests: enable more tests on py3
	Continuous-Integration: Jenkins CI

	lib: pthread: py3: enable pthread.py on python3
	This patch adds the fixes to pthread.py to make
	it python3-compliant, and enable its test to run
	on python3.

	Continuous-Integration: Jenkins CI

2016-03-10  Petr Horáček  <phoracek@redhat.com>

	net: api: keep names and quotes consistent
	Continuous-Integration: Jenkins CI

2016-03-10  Martin Polednik  <mpolednik@redhat.com>

	faqemu: refactor and update
	Faqemu hook wasn't really updated to allow for running of
	cross-platform VMs. This patch refactors the logic and adds workarounds
	to run VMs of 'opposite' architecture. The VM is still run on host's
	arch, but the constraints for selected architecture are still respected.

	Continuous-Integration: Jenkins CI

2016-03-10  Tomas Jelinek  <tjelinek@redhat.com>

	migration: added support for convergence schedule
	Part of the migration enhancements effort.
	Adds the logic which parses and evaluates the convergence schedule.
	The convergence schedule contains of 2 parts:
	- initialization: will be evaluated before the migration starts. It is a list
	  of tuples:
	  - action: one of
	    - setDowntime: sets the 'migrateSetMaxDowntime' of the migrating VM
	    - abort: aborts the migration
	  - params: parameters of the action (e.g. the setDowntime takes one parameter,
	    the actual downtime).
	- convergence: will be evaluated during migration as a part of the monitoring
	  thread on each monitoring cycle. It is a list of tuples:
	  - stalling limit: if the VM is stalling longer than this limit, execute the
	    action with its params.
	  - action with params: the actual action with params which has to be executed
	    if the VM is stalling longer than the stalling limit. The value is the same
	    as for the initialization, namely:
	    - action: one of
	      - setDowntime: sets the 'migrateSetMaxDowntime' of the migrating VM
	      - abort: aborts the migration
	    - params: parameters of the action (e.g. the setDowntime takes one parameter,
	    the actual downtime).

	The convergence schedule replaces the DowntimeThread (e.g. if the convergence
	schedule is set, the DowntimeThread is not started).
	If the convergence schedule is not set, the code falls back to use the
	DowntimeThread.

	Feature-Page: http://www.ovirt.org/Features/Migration_Enhancements
	Continuous-Integration: Jenkins CI

2016-03-10  Milan Zamazal  <mzamazal@redhat.com>

	virt: Make Vm.devMapFromDevSpecMap() private
	There is currently no reason to expose the method outside Vm.
	Actually we are going to move device processing out of Vm and thus
	isolating the use of this method is a preparation step for that.

	Continuous-Integration: Jenkins CI

2016-03-10  Petr Horáček  <phoracek@redhat.com>

	net: api: replace custom logger with logging
	We use one log file for all supervdsm logs, there is no need to
	use special logger. Also custom logger name is not necessary
	while we already log modules' names.

	Continuous-Integration: Jenkins CI

2016-03-10  Nir Soffer  <nsoffer@redhat.com>

	tests: Unbreak imagetickets_test
	imagetickets_test passed locally and on jenkins, but failed after
	rebasing on master, since storage_exception module moved in a previous
	patch. Fix the broken import.

	Continuous-Integration: Jenkins CI

2016-03-10  Milan Zamazal  <mzamazal@redhat.com>

	virt: Make Vm.devSpecMapFromConf() private
	There is currently no reason to expose the method outside Vm.
	Actually we are going to move device processing out of Vm and thus
	isolating the use of this method is a preparation step for that.

	Continuous-Integration: Jenkins CI

2016-03-10  Martin Polednik  <mpolednik@redhat.com>

	debian: add supervdsm_api
	Whole supervdsm_api package was missing in debian installation
	according to the debian vdsm.install. This patch fixes the creation of
	the package.

	Continuous-Integration: Jenkins CI

2016-03-10  Milan Zamazal  <mzamazal@redhat.com>

	virt: Don't use Vm device configuration in clientIF
	clientIF retrieves device configuration from Vm.devSpecMapFromConf() in
	order to pass it to Vm.preparePaths().  This is unnecessary exposition
	of device handling configuration to clientIF as Vm can get the
	information from itself.  Not only it's not clientIF business to care
	about those details, we'd also like to make them isolated in Vm and make
	Vm.devSpecMapFromConf() private in a followup patch.

	This is a preparation step for moving device configuration processing
	from Vm to device classes.

	For those reasons we retrieve configuration in Vm.preparePaths() from
	its instance directly.

	Continuous-Integration: Jenkins CI

2016-03-09  Amit Aviram  <aaviram@redhat.com>

	imagetickets: add tests
	Adding tests to the new imagetickets module.

	Continuous-Integration: Jenkins CI

2016-03-09  Nir Soffer  <nsoffer@redhat.com>

	repoplot: Add LVM commands graph
	Parse and display LVM commands runtime. Domain monitors are running LVM
	commands regularly for refreshing LVM cache and checking VGs health.

	Continuous-Integration: Jenkins CI

2016-03-09  Fred Rolland  <frolland@redhat.com>

	storage: Move storage_exception module to lib
	Moving vdsm/storage/storage_exception.py to
	lib/vdsm/storage/exception.py

	Continuous-Integration: Jenkins CI

2016-03-09  Martin Polednik  <mpolednik@redhat.com>

	machinetype: reorganize and rename private functions
	This patch renames the private function to better reflect what they
	actually do - _get_*_{object} is now called _*_caps_{object}. they are
	also moved to the bottom of the module for better comfort of people
	reading the module.

	Continuous-Integration: Jenkins CI

2016-03-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	moving protocoldetector under lib
	Continuous-Integration: Jenkins CI

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

	vm: remove unused sendKeys verb
	Continuous-Integration: Jenkins CI

2016-03-09  mirecki  <mmirecki@redhat.com>

	net: Removing 'link' scoped addresses from the ip address list
	This method should not report link scoped ip addresses.

	Continuous-Integration: Jenkins CI

2016-03-09  Martin Polednik  <mpolednik@redhat.com>

	machinetype: split and slightly refactor cpu_models function
	cpu_models has grown large as it has to

	a) having to find the correct architecture element,
	b) find the cpu models in that element.

	This patch splits the function and updates variables to have more
	descriptive names.

	Continuous-Integration: Jenkins CI

2016-03-09  Fred Rolland  <frolland@redhat.com>

	storage: add copyright info
	Add copyright info to missing files under storage.

	Continuous-Integration: Jenkins CI

2016-03-09  Martin Polednik  <mpolednik@redhat.com>

	machinetype: pep8tify the module
	Continuous-Integration: Jenkins CI

	machinetype: update naming
	The old names of machinetype public functions were outdated,
	non-pep8-compilant. New names work nice with module name and are pep8
	compilant!

	Continuous-Integration: Jenkins CI

2016-03-08  pkliczewski  <piotr.kliczewski@gmail.com>

	stomp: message tracking do not clean properly
	We track message id and to know where to send message response but we
	failed to clean tracking map when a response was sent.

	Continuous-Integration: Jenkins CI

2016-03-08  Martin Polednik  <mpolednik@redhat.com>

	hostdev/network: fix hostdevChangeNumvfs
	9888e5c3 hidden the change of name of supervdsm call ChangeNumvfs to
	change_numvfs. This patch corrects the mistake.

	Continuous-Integration: Jenkins CI

2016-03-08  Edward Haas  <edwardh@redhat.com>

	net: Rename canonize to canonicalize
	Continuous-Integration: Jenkins CI

2016-03-08  Ala Hino  <ahino@redhat.com>

	gluster: Don't fail connect server when getting volume info
	When connecting to gluster server, we check volume info in order
	to validate replica count. However, if gluster server is not
	available, we get an exception and fail the operation. This patch
	catches the thrown exception and logs a warning message indicating
	that we got error when tried to connect to gluster server.

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

2016-03-08  Fred Rolland  <frolland@redhat.com>

	storage: Move securable module to site-packages
	Moving vdsm/storage/securable.py to lib/vdsm/storage/securable.py.

	Continuous-Integration: Jenkins CI

	storage: Move constants module to site-packages
	Moving vsdm/storage/constants.py to lib/vdsm/storage/constants.py.

	Continuous-Integration: Jenkins CI

	hsm: group vdsm imports in hsm.py
	Group together vdsm import in vdsm/storage/hsm.py

	Continuous-Integration: Jenkins CI

	spec: add virt and netinfo dir in spec
	Add lib  virt and netinfo dir in vdsm.spec.in

	Continuous-Integration: Jenkins CI

2016-03-08  Francesco Romani  <fromani@redhat.com>

	vmstats: avoid NameError
	vmstats._nic_traffic may raise NameError if a couple
	of fields are missing. This, however, is definitely
	possible (and not-critical) when dealing with libvirt
	bulk stats.
	Previously, the code was only looking to be safe against
	KeyError.

	Now we make sure to not use variables which may not exist.

	Along the way, we improve docstrings and tests for
	the related functions in vmstats.py

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-08  Martin Polednik  <mpolednik@redhat.com>

	caps/machinetype: move machine-type related code to new module
	Machine types are what qemu considers the computer. Libvirt exposes
	them in capabilities XML - the machine types themself and inherently
	related information such as baseline CPUs for the machine type.

	This patch helps machine type related code to find a home in a new
	module called machinetype. The reason for this is that 'caps' module
	became code bin over time without single objective. Additional benefit
	is that, although currently not done so, the code is exposed and may be
	used in hooks.

	Continuous-Integration: Jenkins CI

2016-03-08  Ondřej Svoboda  <osvoboda@redhat.com>

	network: skip non-existent devices in _restore_disable_ipv6
	Broken networks are handled gracefully by other parts of the restoration flow
	(and covered by testRestoreNetworksOnlyRestoreUnchangedDevices). Let's follow
	suit and don't try to disable_ipv6 on missing devices.

	Bug-Url: https://bugzilla.redhat.com/1219363
	Backport-To: 3.6.3
	Continuous-Integration: Jenkins CI

2016-03-08  Nir Soffer  <nsoffer@redhat.com>

	virt: Add the missing tests for Drive.getLeasesXML
	Before moving this method, make sure the current code is fully tested.

	Continuous-Integration: Jenkins CI

2016-03-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Covering gluster api in supervdsm with logDecorator raises an exception
	listPublicFunctions returns <module 'gluster.cli' from
	'/usr/share/vdsm/gluster/cli.pyc'> which fail logDecorator with
	AttributeError. The function should return only callable functions.

	Continuous-Integration: Jenkins CI

2016-03-08  Martin Polednik  <mpolednik@redhat.com>

	numa: move cpu_topology to namedtuple
	CPU topology should be returned as immutable object that provides
	access to sockets, cores, online_cpus and threads attributes.
	Namedtuple seems to be the structure as it plays nicely even with
	cpu_topology usage in caps.

	Continuous-Integration: Jenkins CI

	numa: add docstrings for public methods
	Continuous-Integration: Jenkins CI

	numa: reorganize module
	As code is pushed into the module, it has became quite disorganized.
	This patch reorders it, keeping to-be-documented public methods on top
	while moving helper and protected methods below. Only cosmetic changes.

	Continuous-Integration: Jenkins CI

2016-03-08  Edward Haas  <edwardh@redhat.com>

	net schema: Add IPv6 networking caps attributes
	Although IPv6 attributes have been handled by VDSM for some time,
	they were missing from the schema.
	Adding IPv6 networking caps attributes to the schema.

	The following types have been affected:
	NetInfoBridgedNetwork
	NetInfoNic
	NetInfoBond
	NetInfoVlan

	Continuous-Integration: Jenkins CI

	net schema: Add IPv6 setupNetworks attributes
	Although IPv6 attributes have been handled by VDSM for some time, they
	were missing from the schema.
	Adding IPv6 setupNetworks attributes to the schema.
	(as type 'SetupNetworkNetAttributes')

	Continuous-Integration: Jenkins CI

2016-03-07  Fred Rolland  <frolland@redhat.com>

	storage: add storage folder to spec
	Add lib storage folder to vdsm.spec.in

	Continuous-Integration: Jenkins CI

2016-03-07  Nir Soffer  <nsoffer@redhat.com>

	repoplot: Consider sub-seconds in timestamps
	Previously timestamps were truncated, which is fine when we look at
	timeouts of many seconds, but there are cases where we like to see
	values which are less than 1 seconds.

	Continuous-Integration: Jenkins CI

	repoplot: Prepare for matching multiple patterns
	To understand delays in storage domains monitors, we need to plot also
	the lvm commands, and possibly other commands (e.g, dd, qemu-img). This
	patch changes parsing so we can handle multiple patterns.

	I tested multiple patterns using regular expressions, and they are
	significantly slower than multiple string.find() on the same line.

	Timestamps are needed in all pattern handler functions, so parsing
	timestamps moved to separate function.

	Continuous-Integration: Jenkins CI

2016-03-07  Edward Haas  <edwardh@redhat.com>

	net schema: Remove unused NetworkOptions type
	This patch has been split from https://gerrit.ovirt.org/#/c/53521

	Continuous-Integration: Jenkins CI

2016-03-07  Dan Kenigsberg  <danken@redhat.com>

	vdsm.host.uuid: eliminate obsoleted argument "legacy"
	"legacy" had no meaning since ovirt-3.6; as of commit e3409136 it cannot
	even be passed to the function. It's time to eliminate it.

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

2016-03-07  Fred Rolland  <frolland@redhat.com>

	storage: create lib storage directory
	In order to move storage code to site-packages,
	we create a new directory for storage and add/update
	needed files for compilation and packaging.

	Continuous-Integration: Jenkins CI

2016-03-05  pkliczewski  <piotr.kliczewski@gmail.com>

	caps: unable to marshal defaultdict by xmlrpc
	When using vdsClient to getCaps we saw:

	<type 'exceptions.TypeError'>:cannot marshal <type
	'collections.defaultdict'> objects

	in order to make it working again we need to use regular dictionary.


	Continuous-Integration: Jenkins CI

	gluster: fix schema
	There were bunch of inconsistencies in gluster schema which needs to be
	fixed.


	Continuous-Integration: Jenkins CI

2016-03-04  Ondřej Svoboda  <osvoboda@redhat.com>

	restore-nets: disable IPv6 based on ifcfg files
	Disabling IPv6 on networks in the kernel must be done even
	before actual restoration is performed because there is probably going to
	be a link-local address already (or "worse", initscripts may have acquired
	a global address through autoconfiguration) and thus the network's state
	would differ from the persisted config, causing needless restoration.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-04  Martin Polednik  <mpolednik@redhat.com>

	tests: import missing module in functional/utils
	Netinfo module does not expose it's modules in __init__. They must
	therefore be explicitly imported. Utils module lacked one of the
	modules (cache), which is what this patch corrects.

	Continuous-Integration: Jenkins CI

2016-03-03  Martin Polednik  <mpolednik@redhat.com>

	hostdev: import modules locally
	Continuous-Integration: Jenkins CI

	caps: move away hostdev support querying
	Querying of hostdev support belongs to hostdev module as it is now part
	of VDSM library. This patch only moves and renames it to 'is_supported'
	(hostdev.is_supported).

	Continuous-Integration: Jenkins CI

	vdsm: add cscope.out to gitignore
	Using pycscope, one can generate tags compatible with cscope. Default
	output file is named cscope.out. Such file shouldn't be tracked, and as
	people may use cscope it is annoying to display it in git status.

	Continuous-Integration: Jenkins CI

2016-03-02  Francesco Romani  <fromani@redhat.com>

	virt: periodic: disable on migration destination
	While a VM is migration destination, the periodic
	operations should not run - the VM is still on source side,
	and the source side should handle the housekeeping.

	We should start doing the operations on destination side
	when and if the VM succesfully migrated.

	Previously, we didn't made this explicit out of concern
	of hiding real bugs.
	This concern is more and more less grounded, while log
	spam (all false positives) is becoming a problem, so
	we have reached a tipping point. Hence this patch.

	Bug-Url: https://bugzilla.redhat.com/1299480
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	virt: start moving under site-packages
	Let's start moving virt code under site-packages.
	We start with the leaf node of the dependency tree,
	the virt-specific utility modules.

	As nice side effect, these modules are mostly
	stable and seldom changes, so once we get the
	import and build system right, we are done with the move.

	Continuous-Integration: Jenkins CI

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

	netconfpersistence: bondings are not removed if there are no nets
	/var/run/vdsm/netconf/nets directory is created when the first network
	is configured. The same for /var/run/vdsm/netconf/bonds.

	In case when there is only bonds directory, network restoration fails
	with ENOENT when it's trying to open nets dir.

	Now we do removal of nets and bonds in two separate try/except blocks.

	Continuous-Integration: Jenkins CI

	net: api: move legacy network handling to a separate module
	It makes sense to legacy network setup logic and native
	linux networking related code in two separate modules.

	Continuous-Integration: Jenkins CI

2016-03-02  Martin Polednik  <mpolednik@redhat.com>

	caps/numa: move autonuma status to sitelib
	Since autonuma is heavily related to numa and the code doesn't have any
	external dependencies, let's add it to our numa library. Constants
	indicating autonuma status are exposed publicly should future code depend
	on them.

	Continuous-Integration: Jenkins CI

2016-03-02  Francesco Romani  <fromani@redhat.com>

	vmstats: reformat function to make pep8 friendly
	Only cosmetic changes.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	virt: extract destroyVm helper
	It is generally not safe to force the destruction
	(really: shutdown) of a VM. There are few known cases
	on which we believe it is safe despite a previous
	failure of destroyVmGraceful().

	This patch adds an utility method to encapsulate
	force-shutdown-afeter-known-safe-error logic,
	previously found in destroyVmGraceful().

	No changes in external behaviour.

	Bug-Url: https://bugzilla.redhat.com/1309884
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-03-02  Martin Polednik  <mpolednik@redhat.com>

	numa: refactor to single pass caps parse
	All topology and distance parsing can be done by a single parse pass
	over libvirt caps XML. Although the performance benefit is negligible,
	it opens up opportunity to rework the format of numa data exchange to
	include all data required to support proper numa on all supported
	architectures.

	Continuous-Integration: Jenkins CI

2016-03-02  Edward Haas  <edwardh@redhat.com>

	net: Adjust the parsing of multiline tc error
	tc errors are parsed to determine the failure cause.
	Recently a new error output has been seen, whith a multiline message
	where the expected prefix ('RTNETLINK answers') was not in the first
	line. ('Message truncated\nMessage truncated\nRTNETLINK answers:')

	This patch fixes the parsing of the error message by checking each line
	for the prefix.

	Continuous-Integration: Jenkins CI

2016-03-01  Nir Soffer  <nsoffer@redhat.com>

	schema: Fix asserts that had side effect
	Asserts should never have side effects, so optimizing them out will not
	change the semantics of the code. Running with optimization would break
	parsing, eliminating line.pop(0) operations. Now the only difference is
	the warning if the line is not empty.

	Continuous-Integration: Jenkins CI

2016-03-01  Martin Polednik  <mpolednik@redhat.com>

	numa: move cpu topology (numa) related functionality to sitelib
	The functionality can be nicely isolated and moved to sitelib, where
	additional cleanup and optimization work can take place. This is part
	of bigger series that attempts to move all numa related code to
	sitelib where it makes sense.

	Continuous-Integration: Jenkins CI

	numa: move numa related functionality to sitelib
	The functionality can be nicely isolated and moved to sitelib, where
	additional cleanup and optimization work can take place. This is part
	of bigger series that attempts to move all numa related code to sitelib
	where it makes sense.

	Continuous-Integration: Jenkins CI

	numa: get distance information from libvirt
	It is not necessary to use numactl to access numa cell distances as
	libvirt already provides us with that exact information. Although this
	patch does separate pass over libvirt capabilities, it opens up
	possibility for single pass in future of the series.

	Continuous-Integration: Jenkins CI

2016-03-01  Martin Sivak  <msivak@redhat.com>

	Move ksmTune method from supervdsmServer to the new supervdsm_api module
	Continuous-Integration: Jenkins CI

2016-03-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	moving kaxmlrpclib.py to lib
	Continuous-Integration: Jenkins CI

2016-03-01  Francesco Romani  <fromani@redhat.com>

	tests: virt: modernize vm* tests
	Applied python-modernize over the vm* unit tests.

	Continuous-Integration: Jenkins CI

2016-03-01  pkliczewski  <piotr.kliczewski@gmail.com>

	asyncore: remove misleading log entry
	From time to time I can see misleading warning in the logs:

	betterAsyncore::144::vds.dispatcher::(log_info) unhandled close event

	In order to get rid of it we make sure that we handle close event for
	all the dispatchers that we have and we call close on dispatcher.


	Continuous-Integration: Jenkins CI

2016-03-01  Irit Goihman  <irit.goihman@gmail.com>

	vdsm: added decorator to host uuid function
	Continuous-Integration: Jenkins CI

2016-03-01  pkliczewski  <piotr.kliczewski@gmail.com>

	rpc: moving module to lib/vdsm
	Continuous-Integration: Jenkins CI

2016-03-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	Switching decorators order to allow right log prints in supervdsm.log
	To use logDecorator in supervdsm we shell use it on the called func
	directly. Otherwise the print might be misleading. The bind decorator is
	not related and should be on the fixed func.

	Continuous-Integration: Jenkins CI

2016-03-01  Dan Kenigsberg  <danken@redhat.com>

	ipwrapper: unbreak oper_up
	commit 65636d51 removed ipwrapper.Link.flags, but left behind a method
	using it.

	Fix the glitch and have the method tested.

	Continuous-Integration: Jenkins CI

2016-03-01  Francesco Romani  <fromani@redhat.com>

	virt: adding virt mkimage api module to supervdsm
	Continuous-Integration: Jenkins CI

	virt: adding virt basic api module to supervdsm
	Continuous-Integration: Jenkins CI

2016-03-01  Yaniv Bronhaim  <ybronhei@redhat.com>

	move logUtils to lib
	Continuous-Integration: Jenkins CI

2016-02-29  Petr Horáček  <phoracek@redhat.com>

	net: api: move networks removal to a separate function
	As a part of preparation of network/api.py module split, we should
	extract networks removal handling from setupNetworks().

	Continuous-Integration: Jenkins CI

	net: tests: cleanup net after test_rollback
	Without @cleanupNet decorator, failed test can leave
	network remains which make other tests fail.

	With this decorator, failed test triggers cleanup of
	networks. Note that non-failed tests has to do the
	cleanup on its own.

	Continuous-Integration: Jenkins CI

	net: rename destroyOnMasterRemoval
	destroyOnMasterRemoval parameter was needed to say whether bonding
	should be removed together with network (implicit bonding) or just
	detached. Now when we drop implicit bonding, we can change it's logic
	to something more understandable.

	With this patch, destroyOnMasterRemoval was renamed to
	on_removal_just_detach_from_network. It's extremely long, but verbosity
	is needed here.

	Default functionality of bond.remove() is evidently removal, so
	this new parameter is False by default.

	When a bonding is objectivized as a part of a network, we need it
	to be just detached from master, set it default MTU etc, so it
	will be a standalone bonding again. When we objectivize it as a
	part of bonding query, then by bond.remove() we really mean the
	removal.

	Continuous-Integration: Jenkins CI

	net: api: drop connectivity_check_networks
	It is not needed anymore to explicitly remove networks after failed
	connectivity check, it used to be required only by implicit bondings.

	Now the whole removal is handled by rollback.

	New test testSetupNetworksConnectivityCheckOverExistingBond() was
	introduced to test if the removed code is not needed anymore:
	  # If the new added network was created on top of
	  # existing bond, we need to keep the bond on rollback
	  # flow, else we will break the new created bond.

	With this patch testSetupNetworksConnectivityCheck() works as a
	test for previous patch 5780914a98f208e70d7050e78a330ab13425639d.

	Continuous-Integration: Jenkins CI

2016-02-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	move hostdev to lib
	Continuous-Integration: Jenkins CI

2016-02-28  Francesco Romani  <fromani@redhat.com>

	virt: rng: Rng device should not depend on caps.py
	Pack RNG_SOURCES inside Rng devices, where actually belongs.

	As nice side effect, we turn the previous dependency link
	upside down: caps should query Rng devices for availability.

	Continuous-Integration: Jenkins CI

2016-02-26  pkliczewski  <piotr.kliczewski@gmail.com>

	schema: inconsistency fixes
	There was number of inconsistencies in schema where we specify in
	description that a parameter is optional whereas in type definition is
	not the case. To ease conversion of the schema to yaml format
	we need to make sure that inconsistencies are fix.

	I made assumptions that description is correct and fixed type
	definition.

	Continuous-Integration: Jenkins CI

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

	repoplot: Optimize log parsing
	Profiling show that most time is spent matching regular expressions.
	Switch to string.find for matching the relevant lines, and extract the
	timestamp using split from relevant lines.

	Profiling
	=========

	Without this patch
	------------------

	Wed Feb 24 09:37:39 2016    repoplot-old.prof

	         1607042 function calls (1587959 primitive calls) in 8.397 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	    48515    6.375    0.000    6.375    0.000 {method 'search' of '_sre.SRE_Pattern' objects}
	      179    0.166    0.001    0.171    0.001 {eval}
	    85278    0.158    0.000    0.270    0.000 backend_pdf.py:141(pdfRepr)
	      424    0.122    0.000    0.286    0.001 backend_pdf.py:1372(pathOperations)
	      146    0.120    0.001    0.124    0.001 {built-in method draw_path}
	    26718    0.097    0.000    0.136    0.000 path.py:353(iter_segments)
	    93406    0.039    0.000    0.040    0.000 {hasattr}
	        1    0.039    0.039    6.640    6.640 repoplot:82(parse)
	    29985    0.034    0.000    0.035    0.000 {method 'extend' of 'list' objects}
	    56796    0.032    0.000    0.032    0.000 {method 'encode' of 'unicode' objects}

	With this patch
	---------------

	Wed Feb 24 09:47:15 2016    repoplot-new.prof

	         1606310 function calls (1587243 primitive calls) in 2.037 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	    85278    0.171    0.000    0.282    0.000 backend_pdf.py:141(pdfRepr)
	      179    0.160    0.001    0.165    0.001 {eval}
	      424    0.125    0.000    0.293    0.001 backend_pdf.py:1372(pathOperations)
	      146    0.125    0.001    0.130    0.001 {built-in method draw_path}
	    26718    0.099    0.000    0.139    0.000 path.py:353(iter_segments)
	    93406    0.040    0.000    0.040    0.000 {hasattr}
	    29985    0.033    0.000    0.034    0.000 {method 'extend' of 'list' objects}
	        1    0.032    0.032    0.262    0.262 repoplot:80(parse)
	    56796    0.031    0.000    0.031    0.000 {method 'encode' of 'unicode' objects}
	     3064    0.026    0.000    0.026    0.000 {built-in method compress}

	Before this patch, parsing 20 MiB log took 6.64 seconds, with this patch it
	takes only 0.26 seconds (25X faster).

	Timing
	======

	Processing 20 MiB log without this patch
	----------------------------------------

	$ time repoplot vdsm.log

	real    0m8.029s
	user    0m7.934s
	sys     0m0.100s

	Processing 20 MiB log with this patch
	-------------------------------------

	$ time repoplot vdsm.log

	real    0m1.725s
	user    0m1.650s
	sys     0m0.077s

	Processing multiple logs (289 MiB total)
	----------------------------------------

	$ time repoplot -n vdsm.log vdsm.log.9 vdsm.log.8 vdsm.log.7 \
	    vdsm.log.6 vdsm.log.5 vdsm.log.4 vdsm.log.3 vdsm.log.2 \
	    vdsm.log.1 vdsm.log

	real    0m6.682s
	user    0m6.542s
	sys     0m0.145s

	Continuous-Integration: Jenkins CI

2016-02-26  Francesco Romani  <fromani@redhat.com>

	virt: clean and modernize the destroy() path
	cleanup the destroy path with no changes in behaviour.

	Bug-Url: https://bugzilla.redhat.com/1309884
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-02-26  Petr Horáček  <phoracek@redhat.com>

	net: ifcfg: rollback nicless bridge
	Ifcfg rollback is not able to rollback simple nicless bridge. We do
	the removal of interfaces just with ifdown during the rollback. For
	some reason this is enough for vlaned networks, but not for
	a just-a-bridge network.

	We fixed that with explicit delbr of to-be-rolled-back bridges.

	Because of we don't guarantee handling order in networks setup, this
	cannot be simply tested - we cannot create a test where nicless
	network is set up and then another network setup fails.

	This patch was tested manually. In a following patch, explicit removal
	of networks will be removed from _check_connectivity() and therefore
	testSetupNetworksConnectivityCheck() will work as a test for this
	scenario.

	Continuous-Integration: Jenkins CI

2016-02-25  Petr Horáček  <phoracek@redhat.com>

	net: api: fix invalid refactoring
	else branch used to iterate 'nics' and if there was none, it just did
	nothing.

	During the refactoring [1] we get rid of 'nics' and replaced it with
	'nic'. In case when 'bonding' is None, we go to else branch and
	without any checking call _validateInterNetworkCompatibility()
	which fails for None nic.

	[1] https://gerrit.ovirt.org/#/c/53475/15/lib/vdsm/network/api.py

	Continuous-Integration: Jenkins CI

	net: api: refactoring of _handleBondings
	Refactor bonding removal and setup code to be more readable.
	This code tries to mimic OVS hook network setup style.

	Continuous-Integration: Jenkins CI

2016-02-24  Yaniv Bronhaim  <ybronhei@redhat.com>

	fix import error
	Continuous-Integration: Jenkins CI

2016-02-24  Petr Horáček  <phoracek@redhat.com>

	net: api: remove _delNonVdsmNetwork
	When _delNetwork() is called, network is always in running_config
	and therefore _delNonVdsmNetwork() is never triggered. This code
	used to be needed only with add/edit/delNetwork() API.

	Continuous-Integration: Jenkins CI

2016-02-24  Nir Soffer  <nsoffer@redhat.com>

	repoplot: Distribute repoplot tool
	For some reason we are distributing profile-stat and logdb, so now we
	distribute also the new repoplot tool.

	The reason for disributing is not clear; see commit 6b1945ba8b for
	details.

	Continuous-Integration: Jenkins CI

	repoplot: Allow using on headless server
	matplotlib uses gtk by default, failing on a headless server. Now we use
	the "Agg" backend instead.

	See http://matplotlib.org/faq/howto_faq.html#howto-webapp

	Continuous-Integration: Jenkins CI

2016-02-24  Petr Horáček  <phoracek@redhat.com>

	net: api: destroyOnMasterRemoval has stable value
	We don't have to check if 'remove' in attrs, it has been already
	done in upper condition.

	Continuous-Integration: Jenkins CI

2016-02-23  Ondřej Svoboda  <osvoboda@redhat.com>

	net: use the correct dict with all the networks for disable_ipv6 restoration
	In a backport it was shown that using only the networks that require
	restoration is not sufficient.

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

2016-02-23  Edward Haas  <edwardh@redhat.com>

	tests: Move network tests to its own folder
	Network tests (from tests/) have been moved to tests/network/ and their
	filename have been updated to the following naming format: *_test.py

	Continuous-Integration: Jenkins CI

2016-02-23  Nir Soffer  <nsoffer@redhat.com>

	repoplot: Visualize storage domain monitoring
	Add repoplot command line tool for visualizing storage domain monitoring
	issues. The tool extracts information from repoStat log messages for all
	storage domains, and plot a graph of storage domain monitor lastCheck and
	delay.

	usage: repoplot [-h] [--name NAME] [--format FORMAT] [--width WIDTH]
	                [--height HEIGHT]
	                files [files ...]

	Visualize storage monitoring

	positional arguments:
	  files                 vdsm log files to process

	optional arguments:
	  -h, --help            show this help message and exit
	  --name NAME, -n NAME  output file name (default first log file name)
	  --format FORMAT, -f FORMAT
	                        output file format (default pdf)
	  --width WIDTH, -x WIDTH
	                        output file width in inches (default 20)
	  --height HEIGHT, -y HEIGHT
	                        output file height in inches (default 10)

	Requires the python-pandas package.

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

2016-02-23  Francesco Romani  <fromani@redhat.com>

	vmstats: from EAFP to LBYL
	libvirt bulk stats' API allows to return partial result.
	Hence, seems better to Look Before You Leap in this flow,
	instead of thinking that is Easier (to) Ask Forgiveness (than)
	Permission.

	As nice side effect, this patch removes spam from the logs.

	Bug-Url: https://bugzilla.redhat.com/1299480
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	vmstats: remove _diff helper
	the _diff helper is pretty pointless: makes the code
	harder to follow, not easier.

	This patch drops it without changes in behaviour.

	Bug-Url: https://bugzilla.redhat.com/1299480
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-02-23  Martin Betak  <mbetak@redhat.com>

	migration: Add incoming migration semaphore
	Added throttling of incoming migrations.

	'migrationCreate' verb can now return new error status `migrationLimit` to
	report full occupation.

	Wiki: http://www.ovirt.org/Features/Migration_Enhancements
	Continuous-Integration: Jenkins CI

	vm: Make run() return status
	Continuous-Integration: Jenkins CI

2016-02-23  Francesco Romani  <fromani@redhat.com>

	virt: recovery: tests: exercise more recovery code
	Add more tests for the new recovery.py module.
	We exercise existing functions and methods.

	Continuous-Integration: Jenkins CI

2016-02-23  Ondřej Svoboda  <osvoboda@redhat.com>

	net: also disable IPv6 on bridges not using it, after unified restoration
	This is a follow-up work to disallow VM-host communication over IPv6
	(using e.g. link-local addresses) in the case when networking on the host
	was configured without IPv6.

	This covers the reboot scenario, in addition to the previously implemented
	disablement of IPv6 during network configuration through setupNetworks.

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

2016-02-23  Martin Betak  <mbetak@redhat.com>

	virt: Make VM domain descriptor accessible
	Continuous-Integration: Jenkins CI

2016-02-23  Francesco Romani  <fromani@redhat.com>

	tests: add tests for vmstats.cpu()
	Add tests for vmstats.cpu().
	The reference data was taken either by libvirt (virsh -r domstats)
	or from a log-enhanced running Vdsm.

	Along the way, we also add the docstring for the vmstats.cpu()
	function.

	Continuous-Integration: Jenkins CI

	virt: recovery: tests: reduce nested `with' blocks
	Add test helper to reduce the boilerplate.

	Continuous-Integration: Jenkins CI

2016-02-22  Milan Zamazal  <mzamazal@redhat.com>

	virt: Fix of uninitialized variable access in Vm.setLinkAndNetwork()
	Continuous-Integration: Jenkins CI

2016-02-22  Sagi Shnaidman  <sshnaidm@redhat.com>

	Advertise aggregator ID in bonding interfaces
	If interface or bond itself has an aggregator ID, then
	advertise it to engine in getCaps

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

2016-02-22  Martin Polednik  <mpolednik@redhat.com>

	tests: use new proxy method for virt functional tests
	Patch 04f610b6 changed the API to a vdsProxy. That resulted in a test
	breakage. This patch corrects virt functional tests to use the correct
	API.

	Continuous-Integration: Jenkins CI

2016-02-22  Dan Kenigsberg  <danken@redhat.com>

	sudoers: narrow dmidecode commandline
	Vdsm does needs only a very limitted information from dmidecode. sudoers
	should be as narrow as possible.

	Continuous-Integration: Jenkins CI

2016-02-21  Edward Haas  <edwardh@redhat.com>

	net tests: Clean net & bond after functional test.
	testSetupNetworksEmergencyDevicesCleanupBondOverwrite now removes
	the network & bond. Keeping them around causes the failure of
	the subsequent test.

	Continuous-Integration: Jenkins CI

2016-02-21  Dan Kenigsberg  <danken@redhat.com>

	net tests: make functional tests run again with persistence=ifcfg
	We have multiple users that use net_persistence=ifcfg. We must make sure
	that Vdsm does not inadvertently breaks them.

	This patch only makes the tests run again, after recent changes assuming
	unified persistence.

	Continuous-Integration: Jenkins CI

2016-02-20  Petr Horáček  <phoracek@redhat.com>

	net: api: drop isolatedCommand handling
	Since addNetwork and delNetwork API were dropped, we don't need
	isolatedCommand handling anymore.

	Continuous-Integration: Jenkins CI

2016-02-19  Petr Horáček  <phoracek@redhat.com>

	net: api: don't check for bond slaves twice
	It is not possible to setup bondings via addNetwork() and editNetwork()
	calls anymore. Bonds validity checking is now done on setupNetworks()
	level on all passed bondings via _validateNetworkSetup() and therefore
	extra checking in _handleBondings() (introduced in
	https://gerrit.ovirt.org/#/c/37751/8) is now redundant.

	Continuous-Integration: Jenkins CI

	net: api: use running config only with unified persistence
	configurator.runningConfig should be used only when unified persistence
	is used. If we call it with ifcfg persistence, vdsm explodes.

	This patch fixes testBrokenNetworkReplacement.

	Continuous-Integration: Jenkins CI

2016-02-18  Amit Aviram  <aaviram@redhat.com>

	localFsSD: Use the right manifest.
	Local storage domain should use its own manifest instead of the
	inherited one from FileStorageDomain.

	FileStorageDomain's manifest directs the domain creation to lock
	the storage using sanlock, which is used for shared storage locking.

	As local storage domain is used only by its containing host, there is 
	no point to use sanlock. instead we use a local lock.

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

2016-02-18  Petr Horáček  <phoracek@redhat.com>

	net: api: mark functions as private
	network/api.py functions clientSeen() and assertBridgeClean()
	are used only inside network/api.py. Now they are marked with
	_ as private.

	Continuous-Integration: Jenkins CI

	net: api: remove bonding handling from _addNetwork
	_addNetwork is not an API verb anymore. setupNetworks API verb
	never call _addNetwork to setup a bonding, its nics
	and options. Therefore related code should be dropped from
	_addNetwork().

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	hooks: ovs: support hot-plugged vnics
	To support hot-plugged vnics, we have to place our before_device_create
	hook to before_nic_hotplug hookpoing.

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

2016-02-18  Yaniv Bronhaim  <ybronhei@redhat.com>

	net: Adding network api module to supervdsm
	Continuous-Integration: Jenkins CI

2016-02-18  Petr Horáček  <phoracek@redhat.com>

	net: api: remove unused showNetwork() and listNetworks()
	After network/api.py removal, showNetwork() and listNetworks() are
	not used anymore.

	Continuous-Integration: Jenkins CI

2016-02-18  Francesco Romani  <fromani@redhat.com>

	virt: recovery: test: fix typo
	A typo sneaked in the vdsm.virt.recovery.File.save() method.
	It passed by because this code path is seldom exercised, because
	is meant to catch a programming error[1].

	This patch fixes the typo, and adds a test to prevent it to
	happen again.

	+++

	[1] in a sneaky way, mostly due to backward compatibility
	with surrounding code.
	The old 3.6.x code just swallowed any error.
	Now we have at least a log line.
	A better fix would be to explode with exception,
	but due to arcane intertwined flows, this may cause havoc.

	Continuous-Integration: Jenkins CI

	recovery: reimplement clean_vm_files
	clean_vm_files() could be reimplemented leveraging recovery.File()
	utilities, and avoiding code duplications.

	There are no intended changes in externally observed behaviour.

	Continuous-Integration: Jenkins CI

	virt: recovery: add constant for file extension
	Consolidate the ".recovery" extension string on
	one single place instead of scatter it all around
	the module.

	Continuous-Integration: Jenkins CI

	virt: recovery: reduce code duplication
	reimplement clean_vm_files() using
	_find_vdsm_vms_from_files() to reduce the code duplication.

	No changes in functionality are expected.

	Continuous-Integration: Jenkins CI

2016-02-18  Dan Kenigsberg  <danken@redhat.com>

	py3: modernize network tests
	Run python-modernize on tests/net*.py to remove blunt python 3 errors
	from them.

	We do not run the tests in python3 yet, so regeressions can easily sneak
	in. Still, is it a (tiny) step forward.

	Continuous-Integration: Jenkins CI

2016-02-17  Marek Libra  <mlibra@redhat.com>

	jsonrpcvdscli: Arrays can be returned from client call
	Only a dict response was expected from client method call
	in jsonrpcvdscli before this patch.
	With this patch, the non-dict (i.e. arrays) responses are wraped
	in a dict 'items', so calls like getAllVmStats will not fail.

	Continuous-Integration: Jenkins CI

2016-02-17  Edward Haas  <edwardh@redhat.com>

	net: Fix internal setupNetworks api usage
	setupNetworks api defines 2 args and an unlimited number of kwargs.
	The code used in the global api to proxy the request to supervdsm used
	3 args (the last being a dict).

	To be consistent and avoid multipe conversions, setupNetworks definition
	should specify 3 args.

	This patch is a preperation for removing the bridging that exist at
	supervdsm api and exporting setupNetworks api dynamically.

	Continuous-Integration: Jenkins CI

2016-02-17  Petr Horáček  <phoracek@redhat.com>

	net: api: _netinfo is always passed to _add_missing_networks
	_add_missing_networks is used only on one place and _netinfo
	parameter is always passed to it.

	Continuous-Integration: Jenkins CI

	network: tests do not check OVS devices operstate
	We have to fake not only waitForKnownState, but also waitForState,
	because of tests expects bond to turn UP, but that never happens.

	Continuous-Integration: Jenkins CI

2016-02-17  Dan Kenigsberg  <danken@redhat.com>

	vmfex hook: remove filter from directly-attached vnics
	It seems that libvirt has become more strict, and would not accept a
	filterref that it cannot enforce. This patch makes the hook drop the
	<filterref> element that is added by Vdsm.

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

2016-02-16  Francesco Romani  <fromani@redhat.com>

	tests: start proper recovery.py tests
	Continuous-Integration: Jenkins CI

2016-02-16  Nir Soffer  <nsoffer@redhat.com>

	vm: Simplify filter using list comprehension
	Replace unclear filter() with list comprehension and add the missing
	test.

	Continuous-Integration: Jenkins CI

2016-02-15  Nir Soffer  <nsoffer@redhat.com>

	hsm: Remove image run links in teardownImage
	We were creating the /run/vdsm/sd_uuid/img_uuid in prepareImage, but we
	never delete it. This directory (block storage) or link (file storage)
	are used by hosted engine VM so it can run without a connected pool.

	After vdsm maintenance, file storage domain mount path may change,
	invalidating the links. When we create the links, we skip existing
	links, assuming that the link target cannot change. Any operation with
	the stale link will fail.

	We need two fixes:
	1. Remove links created in prepareImage during teardownImage
	2. For the unlikely case when Vdsm was terminated before teardownImage
	   was completed, repair stale links during creation.

	This patch fixes the first issue. The second issue is handled in
	https://gerrit.ovirt.org/52937.

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

2016-02-15  Yaniv Bronhaim  <ybronhei@redhat.com>

	Dynamic load of supervdsm_api funcs
	The patch adds supervdsm_api folder (which will move later once all
	internal API calls will be able to use only site-packages/vdsm code).
	supervdsmServer loads all modules under that folder and expose functions
	that decorated with @expose

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

2016-02-12  Milan Zamazal  <mzamazal@redhat.com>

	virt: vm: Fix of _filterSnappableDiskDevices indentation
	The function body is indented too much and since it's the first indented
	code in vm.py it confuses some editors about proper indentation.

	Continuous-Integration: Jenkins CI

2016-02-12  Petr Horáček  <phoracek@redhat.com>

	net: api: drop network/api.py cli
	Drop network/api.py cli interface. If we get rid of it, we can
	drop isolatedCommand handling. _addNetwork and _delNetwork won't
	be available for OVS configurator. Cli is unused anyways.

	Also drop editNetwork() function which was used only by cli.

	Continuous-Integration: Jenkins CI

2016-02-12  Francesco Romani  <fromani@redhat.com>

	virt: add load() method to the recovery.File class
	The newly added recovery.File class should also handle
	the load of a recovery file, which up until now
	is handled using a function of recovery.py.

	This duplicates some logic; this patch moves the
	load code into the recovery.File class.

	Continuous-Integration: Jenkins CI

2016-02-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	Use exception.HookError instead of hooks.HookError
	Following https://gerrit.ovirt.org/#/c/52413

	Continuous-Integration: Jenkins CI

2016-02-11  Francesco Romani  <fromani@redhat.com>

	periodic: ignore known-benign libvirt errors
	periodic sampling threads and migration thread are
	(and need to be) asynchronous with each other.
	This leaves the door open for errors like

	libvirtError: Domain not found: no domain with matching uuid
	'7ebb5925-e76f-4d2f-a148-7671c313fe84' (v2)

	Which are harmless but spam the logs.
	We don't want to hide real errors, but we want to
	avoid this noise, so this patch makes periodic Operation
	ignore some of these errors, the ones which are easier
	to detect.

	Bug-Url: https://bugzilla.redhat.com/1299480
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2016-02-11  Sandro Bonazzola  <sbonazzo@redhat.com>

	automation: drop fc21 support
	Fedora 21 reached EOL long ago.
	Dropping support for it

	Continuous-Integration: Jenkins CI

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

	network: fix dhclient return code catching
	configurators/__init__.py:runDhclient() expects dhclient.start() to
	always return three values (rc, out, err). Problem occurs when
	we call dhclient.start() with blockingdhcp=False and only None is
	returned.

	Fix this with storing return values in one variable and accessing
	rc with [0].

	Continuous-Integration: Jenkins CI

2016-02-11  Adam Litke  <alitke@redhat.com>

	Live Merge: Skip initial extension when base is raw
	When starting a live merge we pre-extend the base volume in order to
	accomodate the data that will be merged into the base volume.  This is
	only necessary for thinly provisioned block volumes.  Check to make sure
	that the base volume is eligible for extension before extending it.

	Continuous-Integration: Jenkins CI

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

	network: don't log traceback of missing bridge interfaces
	We expect "bridge" to be a Linux bridge with interfaces. It is quite
	common that this is not the case, when the bridge is actually
	implemented by OVS (via our hook) or when the Linux bridge device is
	not yet up.

	Continuous-Integration: Jenkins CI

2016-02-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: move v2v module to site-packages
	Continuous-Integration: Jenkins CI

2016-02-09  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpcvdscli: make sure not to ignore response queue
	In jsonrpcvdscli we provide responseQueue but we ignore it and we
	generate new queue name by using uuid4(). This patch makes sure not to
	ignore provided responseQueue.


	Continuous-Integration: Jenkins CI

2016-02-09  Amit Aviram  <aaviram@redhat.com>

	imagetickets: fix typo in Daemon Error
	DeamonError -> DaemonError

	Continuous-Integration: Jenkins CI

2016-02-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	automation: Adding vdsm functional tests
	check-merged: build artifacts and runs functional tests using
	lago-control.sh

	lago-env.json: defines vms environment for lago

	reposync-config.repo.tpl: all repos that are required in lago vms

	deploy.sh: script that will run automatically on the vm
	after installation - the use of those script is in lago_control.sh

	check-*.repos.*: repo sync declaration for each test

	To test changes to check-merged.sh, you may use the likes of
	http://gerrit.ovirt.org/53171 which makes the check-merged run for
	each patchset.

	Continuous-Integration: Jenkins CI

2016-02-09  pkliczewski  <piotr.kliczewski@gmail.com>

	ssl: common name different than host info from socket during tests
	When we introduced 186c8574 changed common name in our tests
	certificates to ::1 we caused our tests to fail. When listening host matches
	common name there is no issue.


	Continuous-Integration: Jenkins CI

2016-02-08  Martin Betak  <mbetak@redhat.com>

	hooks: Remove dead code from before_vm_migrate_destination
	Continuous-Integration: Jenkins CI

2016-02-08  Shahar Havivi  <shaharh@redhat.com>

	v2v: drop old el6 test code
	Tests were failing on el6 machine, but we don't test on el6 any more;
	the code is for el7.2 and above.

	Continuous-Integration: Jenkins CI

2016-02-08  Martin Polednik  <mpolednik@redhat.com>

	numa: only use libvirt for memory info
	Current code queries memory usage via libvirt or /proc/meminfo,
	depending on the state of machine's numa support. For some time,
	(guaranteed 7.0+) even machines without direct numa support do
	expose a single node that we can query.

	This patch removes the 'UMA' (uniform memory architecture) code branch
	and uses libvirt for all numa memory queries.

	Continuous-Integration: Jenkins CI

2016-02-08  Dan Kenigsberg  <danken@redhat.com>

	vmfex hook: hold a ref for a virDomain object
	commit 93feb1c introduced a weakref to virDomain object to avoid
	reference cycles. This causes a surprising behaviour: if we do not hold
	a reference to virdomain.Notifying, the underlying virDomain is
	garbage-collected before being accessed for the first time.

	This patch quickly holds a named reference to the domain. I did not find
	other pieces of code with the same problem, however, the mechanism seems
	dangerously error-prone.

	This bug is easily reproduced with

	    from vdsm import libvirtconnection
	    c = libvirtconnection.get()
	    print(c.lookupByName('my-vm').XMLDesc(0))

	and "solved" by

	    from vdsm import libvirtconnection
	    c = libvirtconnection.get()
	    v = c.lookupByName('my-vm')
	    print(v.XMLDesc(0))

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

2016-02-08  Ido Barkan  <ibarkan@redhat.com>

	net: add documentation for setupNetworks rollback mechanism.
	Since Ifcfg is both the default implementation and the exception of
	this mechanism, a few comments might make this situation less confusing.

	Continuous-Integration: Jenkins CI

2016-02-07  Dan Kenigsberg  <danken@redhat.com>

	virt: migration: initialize SourceThread._destServer on __init__
	Introducing data members during runtime is a bad practice. In this case,
	it caused a noisy log distraction when the destination host name could
	not be resolved.

	This patch initializes _destServer to None, and makes sure it has a
	valid value before using it.

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

2016-02-07  Petr Horáček  <phoracek@redhat.com>

	hooks: ovs: enable auto-attach mapping
	Add Auto-Attach mapping support to OVS hook. I-SID could be defined
	in engine with custom network property 'ovs_aa_sid'. This is supported
	only for tagged networks.

	Continuous-Integration: Jenkins CI

2016-02-06  Yeela Kaplan  <ykaplan@redhat.com>

	service: change vdsm KillMode to mixed
	When SIGTERM is sent to vdsm, automatically systemd sends the same signal
	 to its childs processes, this can cause them to exit before vdsm closes
	 fds to them properly.

	Using mixed KillMode in .service will send SIGTERM only to main vdsm
	service at first, sigkill will be sent to its children after a timeout.

	http://www.freedesktop.org/software/systemd/man/systemd.kill.html

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

2016-02-05  Nir Soffer  <nsoffer@redhat.com>

	storageServer: Normalize local path before escaping
	Hosted engine setup does not normalize mount path, so hosted engine
	storage domain with trailing slash:

	    /foo/

	will be mounted at:

	    /rhev/data-center/mnt/_foo_

	This is harmless until hosted engine try to import the hosted engine
	storage domain, recreating the storage domain path from the storage
	domain information, returning a normalized remote path. After importing
	the domain, the host will have the same remote path mounted twice at
	two different local paths:

	    /rhev/data-center/mnt/_foo
	    /rhev/data-center/mnt/_foo_

	Mounting the same domain twice does not work, leading to failure.

	Storage domains created in engine do not have this issue since engine
	does not allow path with trailing slash.

	We are normalizing mount remote and local path, both before mount, and
	when reading mount information from /proc/mounts and /etc/mtab.
	However, we were escaping slashes in the normal path *before*
	normalizing it, so the normalization had no effect.

	This patch normalize the local path before escaping slashes, to match
	the intent of the original code, and avoid such issues in the future.

	This change does not fix hosted engine system with unnormalized local
	path. The only way to fix this is to disconnect the storage domain and
	connect it again with a normalized path.

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

2016-02-05  Edward Haas  <edwardh@redhat.com>

	net: IP DHCP detection
	Improve and fix DHCP status detection.

	There have been several points covered in this patch:
	- dhcpv6 is now correctly detected (directly from kernel).
	- dhcp detection simplified by checking ip interface flags (through
	  netlink). This method is also faster and reduces complexity.
	- Code cleanup.

	Continuous-Integration: Jenkins CI

	net: Canonize dhcpv6 on API input
	IPv6 dhcp is enabled by default, therefore, if the key is missing
	from the network setup request, dhcp on ipv6 is left ON.

	VDSM assumes a different default, which is ipv6 dhcp OFF.
	To keep VDSM logic, a missing dhcpv6 key is converted to dhcpv6=False

	Continuous-Integration: Jenkins CI

2016-02-05  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Require python-six >= 1.9.0
	Bug-Url: https://bugzilla.redhat.com/1300640
	Continuous-Integration: Jenkins CI

2016-02-04  Edward Haas  <edwardh@redhat.com>

	net: Clean netinfo.__init__ and migrate to cache
	When stand alone modules under the netinfo package are being used by other
	modules, __init__ is being processed and cause import loops.
	This patch migrates most __init__ content to cache.

	Continuous-Integration: Jenkins CI

2016-02-04  Petr Horáček  <phoracek@redhat.com>

	hooks: ovs: two networks cannot share one tag
	testSetupNetworksNetCompatibilityMultipleNetsSameNic
	assigns the same tag to two networks. This is not possible
	with OVS, two fake bridges under the same OVS bridge cannot
	share a tag.

	Continuous-Integration: Jenkins CI

2016-02-04  Marcin Mirecki  <mmirecki@redhat.com>

	setupNetworks: moving nics between bonds
	This patch fixes a problem where a slave removed from
	one bond could sometimes not be assigned to another
	bond in the same request.
	This happened because removing, editing and adding of
	slaves to a bond was done bond by bond, so if a nic
	was added to a bond which was handled before the bond
	from which the nic was removed the operation failed.
	Example:
	bond0: nic0, nic1   => nic2, nic3
	bond1: nic2, nic3   => nic0, nic1
	In this situation first bond0 is processed: nic0 and
	nic1 will be removed, but nic2 and nic3 can not yet
	be removed as they are part of bond1 (validation fails).
	Processing of bond1 will introduce errors, as nic2 and
	nic3 will be removed (already assigned to bond0),
	which will in effect reset their ifcfg files, and cause
	the previous attachement to bond0 to be undone.

	The patch changes the validation to check if a slave
	added to a bond is deleted from another bond.
	Also the removing of slaves from all bonds is done
	before any other bond operation.

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

2016-02-04  Edward Haas  <edwardh@redhat.com>

	net: Fixing old netinfo access
	netinfo has been split into individual modules some time ago, this patch
	fixes some leftovers that have been missed.

	Continuous-Integration: Jenkins CI

2016-02-04  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix detection for ppc64le
	x86_64 detects the state of hostdev support by looking at 2 places:

	* /sys/class/iommu to determine the status of DMA remapping,
	* /sys/kernel/iommu_groups to determine that at least some IOMMU groups
	  exist.

	The issue in ppc64le is related to the first place - /sys/class/iommu
	is newer interface and may not be supported on all kernels. 7.2 on
	x86_64 seems to be updated enough that we can keep the detection, but
	for ppc64le we cannot use it.

	Continuous-Integration: Jenkins CI

2016-02-04  Martin Betak  <mbetak@redhat.com>

	vdsm: Remove unreachable code
	Continuous-Integration: Jenkins CI

2016-02-04  Shahar Havivi  <shaharh@redhat.com>

	v2v: support for importing Xen VMs via libvirt on RHEL hosts
	Adding support for import Xen virtual machines that are running on RHEL
	via libvirt.

	Continuous-Integration: Jenkins CI

2016-02-03  Dan Kenigsberg  <danken@redhat.com>

	build: enforce abs_import check
	commit 2154bc8 defined a check for absolute imports in a limited
	whitelist, but failed to actually run it in every `make check`.

	This patch adds abs_import to check, and fixes a couple of files that
	collected lint while the check was off. It also remove vdsm/network
	directory, which is no longer with us.

	Continuous-Integration: Jenkins CI

2016-02-02  Dan Kenigsberg  <danken@redhat.com>

	untested: notify Engine when host connectivity changes
	Continuous-Integration: Jenkins CI

2016-02-02  pkliczewski  <piotr.kliczewski@gmail.com>

	hooks: make sure to handle vdsm exception in the bridge
	We need to make sure to handle hook errors properly and pass them to
	the client.


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

	hooks: moving hook error to exception module
	Continuous-Integration: Jenkins CI

2016-02-01  Tomas Jelinek  <tjelinek@redhat.com>

	migration added migrateChangeParams verb
	Currently it contains only the bandwidth but it will be used also
	for convergenceSchedule in future.

	Feature-Page: http://www.ovirt.org/Features/Migration_Enhancements
	Continuous-Integration: Jenkins CI

2016-02-01  Petr Horáček  <phoracek@redhat.com>

	hooks: ovs: don't log every stats change
	VDSM log is spammed with 'ovs_after_get_stats' and every hour the VDSM
	log is rotating.

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

2016-02-01  Edward Haas  <edwardh@redhat.com>

	CI automation: Trigger post merge tests
	Trigger tests execution after a merge.

	Continuous-Integration: Jenkins CI

	net: When IPv6 is not enabled, fallback to IPv4
	There are setups where IPv6 is disabled, causing a conflict with the
	default configuration (which is set to listen on address '::').
	In such a case, VDSM fails to listen on '::'.

	In order to support IPv4 only setups without requiring a change in the
	configuration, VDSM will fallback to listen on an IPv4 only address.

	Note that '::' is used to listen on both IPv4 & IPv6 stacks, a fallback to
	IPv4 seems reasonable.

	Continuous-Integration: Jenkins CI

2016-01-31  Edward Haas  <edwardh@redhat.com>

	net: Canonize persistent and running net config
	In order to support persistent configuration which has been saved in an
	older version, canonize & normalize the configuration upon reading it.

	Canonizing the persistent and running config also covers several kernelconfig
	normalization points, therefore they have been removed.

	Continuous-Integration: Jenkins CI

2016-01-31  Tomas Jelinek  <tjelinek@redhat.com>

	migration: Add support for max migration bandwidth setting
	Enriched the migrate verb by maxBandwidth.

	It is an optional argument and the fallback is to
	migration_max_bandwidth
	from config.

	Feature-Page: http://www.ovirt.org/Features/Migration_Enhancements
	Continuous-Integration: Jenkins CI

2016-01-29  Amit Aviram  <aaviram@redhat.com>

	imagetickets: Support image tickets
	The introduced module is part of the image transfers implementation,
	which lets the end user of oVirt to transfer images to and from
	oVirt's storage devices.

	Specifically, this VDSM module is responsible for granting permissions
	for image transfers, via a ticket mechanism for an image, sent from
	engine, through VDSM to imaged - a process for image IO which resides
	next to VDSM in the host.

	Continuous-Integration: Jenkins CI

2016-01-29  Idan Shaby  <ishaby@redhat.com>

	sp: update domain links on state change
	In some situations (e.g. after a reconstructMaster command) the domain
	links may be missing and it's impossible to recreate them on
	connectStoragePool or refreshStoragePool since the storage may be
	unreachable. The best we can do is recreate them as soon as the domains
	are visible again.

	This patch is based on a patch that was merged into ovirt-engine-3.4
	but was never merged into master: https://gerrit.ovirt.org/#/c/27466/ .
	It also deals with a few issues that patch had:

	- It adds the "@unsecured" decoration to _domainStateChange, since
	  without it we get a SecureError in case that the host that runs it is
	  not the SPM.

	- In the other patch, onDomainStateChange was registered in the
	  constructor of StoragePool.
	  This is a waste of resources since these events can be called only
	  after the connect method is called (specifically, after __rebuild is
	  called from within connect).
	  Also, onDomainStateChange is never unregistered, causing a leak of a
	  registration for every pool disconnection or unsuccessful connection.
	  This patch moves the registration to onDomainStateChange to be right
	  before it can actually be called (in connect), and calls unregister if
	  an error has occurred in __rebuild.
	  A call to unregister was also added to the disconnect method, so that
	  we won't be listening to events that cannot be called anymore.

	- This patch locks the pool and the domain id's in _domainStateChange:
	  On the pool, a shared lock is taken since we query the pool's state.
	  On the domain, we take a new <domain_uuid>_repo exclusive lock to
	  prevent concurrent calls to_refreshDomainLinks.

	Relates-To: https://bugzilla.redhat.com/show_bug.cgi?id=1091030
	Bug-Url: https://bugzilla.redhat.com/1271771
	Continuous-Integration: Jenkins CI

2016-01-28  Francesco Romani  <fromani@redhat.com>

	virt: move handling of recovery file in a class
	saveState() is little more than a fancy wrapper around
	pickle, tailored for the Vm special case.
	Extract all the saveState() related code in a small
	helper class, and move it in to recovery.py,
	to make the code easier to read and test.

	Continuous-Integration: Jenkins CI

	virt: move getVDSMDomains in recovery.py
	getVDSMDomains() is used (and should be used) only in the
	recovery flow, so this patch moves it into the recovery module.

	This patch just:
	- moves code
	- rename it to make pep8 compliant
	- fixes imports

	Continuous-Integration: Jenkins CI

	virt: move channels constants into vmchannels.py
	Move the channels-related constants into vmchannels.py,
	to simplify the dependency graph and to unlock future patches.
	This patche does only move + rename + fix imports.

	Continuous-Integration: Jenkins CI

2016-01-27  Edward Haas  <edwardh@redhat.com>

	net: Cleanup the blacklist from ifcfg
	Options passed to the ifcfg configurator should be processed explicitly.
	The blacklist is removed and bridge options added explicitly.

	Continuous-Integration: Jenkins CI

	net: Move canonize_networks to its own module
	Created netcanonize module to allow re-use of canonize_networks.

	Continuous-Integration: Jenkins CI

2016-01-27  Martin Polednik  <mpolednik@redhat.com>

	vdsm: move fake_kvm code into faqemu
	So far, the hook's functionality is equivalent to fake_kvm settings
	(and is backwards compatible with them). The reason for split is growing
	need for arch differentiation in caps.py, which is unnecessary.

	Continuous-Integration: Jenkins CI

2016-01-27  Adam Litke  <alitke@redhat.com>

	storage: Split newMetadata into makeMetadata and createMetadata
	To prepare for garbage-collectible volume metadata needed by the SDM
	flows, we need to break out the functionality of creating new volume
	metadata.  Introduce makeMetadata() which builds a metadata dict from a
	given set of args.

	Continuous-Integration: Jenkins CI

2016-01-27  Dan Kenigsberg  <danken@redhat.com>

	operstate: use python3-friendly io.open()
	netinfoTests is not yet passing under Python 3 due to its import of
	execCmd.

	Continuous-Integration: Jenkins CI

2016-01-27  Francesco Romani  <fromani@redhat.com>

	tests: lib: add tests for utils.weakmethod
	This patch adds tests for utils.weakmethod().
	The tests were previously bundled with
	the same patch which added utils.weakmethod(),
	but they were failing for unrelated failures,
	like other bug or noisy test environment.

	The tests were stripped off to not needlessly
	stall the utils.weakmethod() patch, needed to
	plug a memory leak.

	Related-To: https://bugzilla.redhat.com/1283999
	Continuous-Integration: Jenkins CI

2016-01-26  Vinzenz Feenstra  <vfeenstr@redhat.com>

	guest-agent: desktopLock exception on EBADF should be ignored
	There's no more logging of the EBADF exceptions on desktopLock thrown
	when the sockets are closed, since this is very likely to happen on a
	migration because we are receiving multiple display disconnect events
	which are delayed for 2 seconds before being processed to avoid the
	screen to be locked in migration cases - in allows the lock not to be
	executed when we're already connected again (e.g. on a fast reconnect
	of the display)
	Therefore the exception on its own does not provide much value and
	therefore is explicitely swallowed for the desktopLock case.

	All other exceptions are still logged, in case something unexpected
	happens.

	Additional note on the multiple disconnect events: We have
	implemented and merged a fix already to reduce this to one time.
	However this depends on a fixed libvirt - because they had a bug
	that they did not report the client remote ports and therefore
	we couldn't make a decision whether or not the disconnect event
	should be handled or not - so we handle it 4 times for now.

	Backport-To: 3.6
	Bug-URL: https://bugzilla.redhat.com/1151863
	Continuous-Integration: Jenkins CI

2016-01-25  Yaniv Bronhaim  <ybronhei@redhat.com>

	Introducing context manager to terminate async processes on internal fail
	Part of the effort to omit the use of deathSignal.

	The following code for example guaranties that process will be cleaned and exit
	 after timeout without handling the kill call. If process will stay alive
	after sigkill, "terminating" will register the process pid to zombiereaper.

	proc = execCmd([cmd], sync=False)
	with terminating(proc):
	    if proc.wait(30) is None:
	        raise Timeout()

	Continuous-Integration: Jenkins CI

2016-01-25  Shahar Havivi  <shaharh@redhat.com>

	v2v: externalVMList Xen+Kvm support
	Not all new methods are supported in older version of libvirt under RHEL
	5.x-7.x.
	We want to use one verb to probe VMs information from Xen, KVM and
	vCenter, as well as old libvirt versions.
	Tested with RHEL 5.x and above.

	Currently externalVMList only tested with vCenter uri:
	vpx://...

	Adding support for Kvm via libvirt:
	qemu+tcp://user@host/system

	As well as for Xen (On Rhel 5.x)
	xen+ssh://user@host

	Importing VMs from Xen and Kvm will be presented in the next patches

	Continuous-Integration: Jenkins CI

2016-01-24  Dan Kenigsberg  <danken@redhat.com>

	restore-net: _get_persisted_numvfs
	Former code attempted to match a pci device path (e.g. 0000:05:00.0)
	with libvirt pci device name (e.g. pci_0000_05_00_0), and failed.

	This patch adds the required conversion between the two.

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

2016-01-24  Martin Polednik  <mpolednik@redhat.com>

	host: use cpuarch
	This patch replaces the previous platform lookup that used string
	constants by more sophisticated approach from cpuarch.

	The patch also removes i686 and ppc from platforms where uuid()
	succeeded, causing the call to raise UnsupportedArchitecture
	exception on these platforms. This is because neither of them is
	supported in the current codebase.

	Continuous-Integration: Jenkins CI

2016-01-24  Shahar Havivi  <shaharh@redhat.com>

	v2v: tests: new testing class: MockVirConnectTests
	Tests for MockVirConnect

	Continuous-Integration: Jenkins CI

2016-01-24  Yaniv Bronhaim  <ybronhei@redhat.com>

	check for python3-nose only if python3 found
	For a crazy setup, where python3-nose is installed, but python3 is not
	executable.

	Continuous-Integration: Jenkins CI

2016-01-24  Roman Mohr  <rmohr@redhat.com>

	host stats: Collect stats from online cpu cores only
	When a cpu goes offline while libvirtd is running, the getVdsStats call
	still tries to collect sampling data for this CPU and fails with an
	exception.

	When vdsm is already running, it is enough to do something like

	  echo 0 > /sys/devices/system/cpu/cpu2/online

	to break getVdsStats.

	When libvirtd is running and both CPUs are online, vdsm reports
	stats for two cores:

	 $ vdsClient -s 0 getVdsStats
	        [...]
	        cpuStatistics = {
	                         '0': {'cpuIdle': '90.74',
	                               'cpuSys': '1.40',
	                               'cpuUser': '7.86',
	                               'nodeIndex': 0},
	                         '1': {'cpuIdle': '96.07',
	                               'cpuSys': '0.47',
	                               'cpuUser': '3.46',
	                               'nodeIndex': 0}
	                        }
	        [...]

	When only one CPU out of two has been online before libvirtd was
	started, vdsm reports stats for the one online core:

	 $ vdsClient -s 0 getVdsStats
	        [...]
	        cpuStatistics = {
	                         '0': {'cpuIdle': '90.74',
	                               'cpuSys': '1.40',
	                               'cpuUser': '7.86',
	                               'nodeIndex': 0}
	                        }
	        [...]

	When one CPU went offline after libvirtd has been started, vdsm threw
	an exception. With this patch getVdsStats reports only stats from the
	remaining online CPU:

	 $ vdsClient -s 0 getVdsStats
	        [...]
	        cpuStatistics = {
	                         '0': {'cpuIdle': '90.74',
	                               'cpuSys': '1.40',
	                               'cpuUser': '7.86',
	                               'nodeIndex': 0}
	                        }
	        [...]

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

2016-01-24  Edward Haas  <edwardh@redhat.com>

	net api: Canonize the network stp flag
	Canonize the network stp flag at the network api entry point.

	Continuous-Integration: Jenkins CI

	net api: Canonize the network bridged flag
	Canonize the network bridged flag at the network api entry point.

	Continuous-Integration: Jenkins CI

2016-01-24  Francesco Romani  <fromani@redhat.com>

	virt: stats: make _disk_iops_bytes more robust
	Make reporting of iops and bytes more robust and less noisy
	when some fields are missing from bulk stats.
	This can happen, so we must handle this case silently.

	Since this patch fixes the last possible source of
	KeyErrors, is now possible to unbreak existing related
	vmStatsTests.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1281337
	Continuous-Integration: Jenkins CI

	virt: stats: make compute_latency more robust
	Make compute_latency more robust and less noisy
	when some fields are missing from bulk stats.
	This can happen, so we must handle this case silently.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1281337
	Continuous-Integration: Jenkins CI

	virt: stats: make disk_rate more robust
	Bulk stats can return any subset of keys.
	Previously, we had too weak protection, leading
	to some KeyError peppering up the logs, for example
	when storage was slow to respond.

	Now we add more careful protection for disk_rate.
	Following patches will fix the other code accessing
	storage stats.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1281337
	Continuous-Integration: Jenkins CI

2016-01-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	add python3 run for lib/infra tests
	Continuous-Integration: Jenkins CI

2016-01-23  Milan Zamazal  <mzamazal@redhat.com>

	Return deep copy from GuestAgent.getGuestInfo()
	In 6b09add, we fixed bug caused by outer guestInfo modification.
	However, we're still not completely safe as we return only shallow copy
	of guestInfo from getGuestInfo().  This is for performance reasons,
	we had concerns especially about appsList.

	This followup patch introduces deep copying of guestInfo while changing
	appsList from list to tuple.  According to our not very scientific
	measurements, picklecopy() with tuple appsList is significantly faster
	than with list appsList and picklecopy() is in any case significantly
	faster than copy.deepcopy().

	Continuous-Integration: Jenkins CI

2016-01-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Run %systemd_post on all effected unit files
	To load vdsmd.preset file during installation we need to run
	%systemd_post script for each effected service

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

	Due to systemd we don't require to use deathSignal to kill fence scripts
	When vdsmd process will die, it will send sigterm to subprocesses it
	initiated.

	Continuous-Integration: Jenkins CI

2016-01-21  Edward Haas  <edwardh@redhat.com>

	net: Refactor _canonize_networks for readablity
	_canonize_networks is growing, refactoring it by extracting a method per
	processed attribute.

	Continuous-Integration: Jenkins CI

2016-01-21  pkliczewski  <piotr.kliczewski@gmail.com>

	tests: simplify bridge tests
	Continuous-Integration: Jenkins CI

2016-01-21  Martin Polednik  <mpolednik@redhat.com>

	vdsm: introduce cpuinfo module
	The objective of the new modules is encapsulating functionality related
	to CPU from bare-metal standpoint. That means parsing cpuinfo and
	exposing host architecture. This approach cleans up 'caps' module and,
	more importantly, moves the code to vdsm library - allowing hooks to
	work with cpu info and architecture. This allows us to move fake_kvm
	to a hook.

	Continuous-Integration: Jenkins CI

2016-01-21  Edward Haas  <edwardh@redhat.com>

	net: vdsClient fails to connect to an IPv6 addr
	When vdsClient is used on a non-ipv6  host, and no destination address
	is provided, it will fail to connect to the server.
	(it uses the vdsm.conf management_ip parameter which is by default '::')

	The vdsClient now prompts when it detects/suspects this is the problem.
	(instead of a traceback)

	Continuous-Integration: Jenkins CI

2016-01-20  Edward Haas  <edwardh@redhat.com>

	net: Enable VDSM to perform migration over IPv6
	As part of adding support for IPv6, this patch adds the ability
	to perform a VM migration process over IPv6 addresses.

	Continuous-Integration: Jenkins CI

	net: Cleanup _create_socket from dead code
	On failure, socket.getaddrinfo() raises an exception and does not return
	a None.

	Continuous-Integration: Jenkins CI

2016-01-20  Martin Polednik  <mpolednik@redhat.com>

	caps: refactor cpuinfo parsing
	The cpuinfo file parsing gathers information such as CPU model name,
	frequency and supported flags.

	Current code parses whole file, keeping all the CPU information. This
	is not effective as the values are duplicates - therefore allowing us
	to parse only the essential information and discard the rest.

	Continuous-Integration: Jenkins CI

2016-01-20  pkliczewski  <piotr.kliczewski@gmail.com>

	build: make lib/api directory writable
	During make distcheck generation of vdsm-api.html file fails due to
	missing write permission.


	Related-To: https://bugzilla.redhat.com/1297808
	Continuous-Integration: Jenkins CI

2016-01-20  Francesco Romani  <fromani@redhat.com>

	vmstats: docs: document why we cannot keep indexes
	Add documentation about why we need to find first_index
	and last_index each time in vmstats code, when dealing
	with bulk stats output.

	Continuous-Integration: Jenkins CI

	vm: delete recovery file only after destroy()
	We must not re-create a recovery file after it
	is cancelled, because this will create an orphan
	recovery file, and ghost VMs (see BZ below).

	But we should also do not delete the recovery
	file too early, because Engine is in charge
	of collecting down VMs, and Vdsm is not really
	done with VMs until that moment.

	So, we move the cleanup of the recovery file
	in deleteVm. We kill the recovery file only
	when we wipe out the VM from the system, not earlier.

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

2016-01-20  Antoni S. Puimedon  <asegurap@redhat.com>

	extra_ipv4_addrs_hook: Add a hook for configuring secondary addrs
	Sometimes it might be useful to set up extra addresses for the top
	network device. This patch creates an after_network_setup hook that
	allows just that, thanks to the custom network properties.

	Continuous-Integration: Jenkins CI

2016-01-20  pkliczewski  <piotr.kliczewski@gmail.com>

	migration: set timeout to 10 mins
	On heavily loaded environments createMigration call can take a lot of
	time so we want to make sure that we do not timeout prematurely.


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

2016-01-20  Francesco Romani  <fromani@redhat.com>

	vm: make _deleteVm() more robust
	Use else: clause in a try: block to make
	deleteVm() more robust and a bit nicer.

	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Jenkins CI

2016-01-20  Martin Polednik  <mpolednik@redhat.com>

	nettestlib: add ppc64le TUNSETIFF value
	ppc64le shares the same TUNSETIFF as ppc64 and shouldn't be treated as
	unsupported architecture.

	Continuous-Integration: Jenkins CI

	nettestlib: use cpuarch module
	This patch updates the architectural dependant code in nettestlib to
	use the new cpuarch module.

	Continuous-Integration: Jenkins CI

	supervdsm: use cpuarch
	This patch replaces the previous platform lookup that used string
	constants by more sophisticated approach from cpuarch.

	Continuous-Integration: Jenkins CI

	dsaversion: use cpuarch
	This patch replaces the previous platform lookup that used string
	constants by more sophisticated approach from cpuarch.

	Continuous-Integration: Jenkins CI

2016-01-19  Edward Haas  <edwardh@redhat.com>

	net: Use VLAN ID as integer across VDSM
	Canonize and normalize VLAN ID at API entry point and use it as an
	integer internally.

	Note: Engine expects the vlan id to be an integer.
	Continuous-Integration: Jenkins CI

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

	health: Report resource usage
	Report cpu usage in the last interval, memory size, memory delta, and
	number of threads:

	    user=7.67%, sys=3.07%, rss=68716 kB (+2188), threads=60

	Continuous-Integration: Jenkins CI

	health: Introduce Vdsm health monitoring
	Debugging Vdsm in the field is very hard, because we don't have enough
	information about Vdsm resource usage. This patch adds a new health
	monitoring thread, checking Vdsm health every 60 seconds.

	For now, we monitor only uncollectable objects that the garbage
	collector cannot collect. In the future we should report other
	information like used memory, number of active threads, etc.

	Health information is only logged; in the future we may post events to
	engine.

	Relates-To: https://bugzilla.redhat.com/1269424
	Continuous-Integration: Jenkins CI

	resourceManager: Fix ResourceRef leak
	Each time we create a disk, we leak 6 objects; one ResourceRef and
	several pthreading Locks and Conditions:

	    Thread-13::WARNING::2016-01-15 20:29:43,126::health::102::health::
	    (_check_garbage) Found 6 uncollectable objects: [
	    "< ResourceRef '869b6036-a9ca-43eb-9287-828803822783_imageNS.
	    489402de-1850-4dfd-b71a-193b92f402e1', isValid: 'False'
	    obj: 'None'>",
	    '<pthreading.Lock object at 0x7f6ecc04a5a8>',
	    '<pthreading.Lock object at 0x7f6ee4028368>',
	    '<pthread.Cond object at 0x7f6f040fcf10>',
	    '<pthread.Cond object at 0x7f6f040fcb50>',
	    '<pthread.Cond object at 0x7f6f040fce10>']

	ResourceRef is adding some of its wrapped object methods to itself,
	creating a reference cycle. Because it also implements __del__, this
	wrapping make it uncollectable.  Use weakref.proxy to avoid the
	reference cycle, fixing this leak.

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

2016-01-19  anosikovsky  <nosikovsky@gmail.com>

	py3 test improving
	adding "b" prefix to variable for assert_read function
	CPopen changed to Popen from subprocess module

	Continuous-Integration: Jenkins CI

2016-01-19  Francesco Romani  <fromani@redhat.com>

	vm: make deleteVm private
	The Vm.deleteVm() method is never used outside the Vm class,
	so it should be _private.

	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	vm: use response module in the destroy path
	use the facilities of the response module to
	make the code nicer, and easier to change in the future.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	lib: use weakmethod to break reference cycles
	The libvirtconnection module replaces the methods
	of libvirt.virDomain object (et. al.) to detect libvirt
	errors, and to take action in presence of certain errors,
	maybe dropping the connection, maybe killing Vdsm.

	While the whole idea of this wrapping and how to properly
	react to these events is debatable and should probably
	rewritten, the immediate issue is that this wrapping is not safe,
	and creates circular references in instance methods:

	   +-------------------------------------+
	   v                                     |
	object -> wrapper -> tuple of arguments(self, method)

	Since libvirt.virDomain defines the __del__ special method,
	objects become uncollectable, and the net final effect is
	a resource leak each time a VM is stopped.

	This was observed for virDomain, but the wrapping of
	virConnect has also the same problem.

	This patch uses utils.weakmethod to break the reference cycle in a
	backport-friandly manner, in order to make the objects collectable
	again, and to avoid the leak.

	The proper long-term fix is to rethink the wrapping done in
	libvirtconnection.py, but this deserves more planning and
	will be addressed in a future patch.

	Bug-Url: https://bugzilla.redhat.com/1283999
	Bug-Url: https://bugzilla.redhat.com/1269424
	Backport-To: 3.6
	Backport-To: 3.5
	Reported-By: Eldad Marciano <emarcian@redhat.com>
	Reported-By: Milan Zamazal <mzamazal@redhat.com>
	Continuous-Integration: Jenkins CI

	utils: add weakmethod helper
	The libvirtconnection module adds wrapping around virDomain
	objects, to detect and react libvirt issues, like timeouts and
	connection errors.

	This patch adds a helper function to wrap instance methods
	avoiding circular references which in turn may render some objects
	uncollectable, causing leaks.

	Note: this patch previously included tests, which were
	stripped to another patch, because of unrelated failures
	made them failed constantly.

	Bug-Url: https://bugzilla.redhat.com/1283999
	Backport-To: 3.6
	Backport-To: 3.5
	Reported-By: Eldad Marciano <emarcian@redhat.com>
	Reported-By: Milan Zamazal <mzamazal@redhat.com>
	Continuous-Integration: Jenkins CI

	vm: safer removal of the recovery file
	If a user shutdowns a VM from inside the guest, Vdsm leaves
	a stale recovery file.
	The cause is a race between onQemuDeath, being asynchronous, and
	Vm.destroy().
	The actual culprit is the ordering of events between onQemuDeath and
	destroy(), and the shutdown from within the guest is just the easiest
	way to trigger this issue.

	In the QEMU death path, Vdsm calls releaseVm, which wipes the recovery
	file, and after a succesful completion does saveState, which recreates
	the recovery file.
	Later, on destroy(), Vdsm tries to do releaseVm again, but releaseVm
	will not run, because of the flag that the previous succesful
	call set. releaseVm must run exactly once.

	Correct sequence:
	- destroy()
	-- vm._destroyed = True
	-- releaseVm() - done (vm._released == False)
	-- vm._released = True
	[later]
	- onQemuDeath
	-- releaseVm() - skipped (vm._released == True)
	-- saveState() - skipped (vm._destroyed == True)

	Faulty sequence:
	- onQemuDeath()
	-- releaseVm() - done (vm._released == False)
	-- vm._released = True
	-- saveState() - done <BUG!> (vm._destroyed == False)
	[later]
	- destroy()
	-- vm._destroyed = True
	-- releaseVm() - skipped (vm._released == True)

	The fix is to protect the recoveryFile handling with a lock.

	Backport-To: 3.6
	Backport-To: 3.5
	Bug-Url: https://bugzilla.redhat.com/1253043
	Continuous-Integration: Jenkins CI

2016-01-18  Yaniv Bronhaim  <ybronhei@redhat.com>

	split to commands_test.py - only execCmd tests
	Continuous-Integration: Jenkins CI

2016-01-18  Nir Soffer  <nsoffer@redhat.com>

	exception: Inherit from VdsmException
	All exceptions used by vdsm API inherit now from VdsmException, removing
	duplicate code for generating response.

	The info() method added recently to GeneralException was moved up to
	VdsmException. Use new info to simplify GlusterException base class.

	Continuous-Integration: Jenkins CI

	exception: Make VdsmException reusable
	VdsmException was initializing code and message to default values if
	called without arguments. This make is useless as as base class for
	more specific exceptions, defining real code and message.

	GlusterException, the only exception inheriting from VdsmException,
	avoided this issue by overriding __init__.

	Continuous-Integration: Jenkins CI

	gluster: Add gluster exception tests
	GlusterException inherits from VdsmException, which we are going to
	change in the next patch. Add the missing tests to make sure we don't
	break it.

	Continuous-Integration: Jenkins CI

	exception: Gather exceptions in vdsm.exception
	Move GeneralException and ActionStopped from vdsm.utils to
	vdsm.exception.

	The long term goal is to have one exception module similar to
	storage_exception, simplifying error handling and improving the
	information returned to clients on errors.

	Continuous-Integration: Jenkins CI

2016-01-18  Petr Horáček  <phoracek@redhat.com>

	hooks: ovs: fix bonded network change problem
	When we try to change a bonded network, setupNetworks explodes
	because we are trying to remove running_nic which is None.

	Now we first check if configuration is changed and then do optional
	removal and setup of a nic.

	Continuous-Integration: Jenkins CI

2016-01-18  pkliczewski  <piotr.kliczewski@gmail.com>

	supervdsm: failed validateAccess leaves pipes open
	Whenever we run validateAccess and it fails with "Permission denied" we
	leak file descriptors. We need to make sure to close child and parent
	pipes.


	Bug-url: https://bugzilla.redhat.com/1271575
	Continuous-Integration: Jenkins CI

2016-01-18  Francesco Romani  <fromani@redhat.com>

	vm: extract cleanupRecoveryFile() helper
	This patch improves the code a tiny bit,
	and makes it easier to implement the next patch, which wants
	to fix a bug.

	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Jenkins CI

2016-01-17  Milan Zamazal  <mzamazal@redhat.com>

	virt: Don't expose GuestAgent.guestInfo directly
	GuestAgent.getGuestInfo() returns its guestInfo dict attribute directly,
	so the callers may modify it.  guestInfo is a public attribute so it
	shouldn't be a problem in theory as it's possible to modify that
	attribute anyway without calling getGuestInfo().  But guestInfo isn't
	used anywhere outside GuestAgent and should be probably changed to a
	private attribute.

	The problem of modifiable internal structure is exposed in
	Vm._getGuestStats where modifications to guestInfo cause incorrect
	memUsage values reported in case of repeated invocations (see the
	referenced bug).

	The safest approach to the problem is to return a deep copy of guestInfo
	from getGuestInfo().  However, making a deep copy can have performance
	issues, e.g. when copying a list of thousands installed Windows
	packages.  For that reason we return just a shallow copy, which should
	suffice for typical uses.

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

2016-01-17  Dan Kenigsberg  <danken@redhat.com>

	Revert "tests: mark test_mkFloppyFs as broken"
	This reverts commit 5d06024fac7bebeab5df9db21d3fd2fe1bdd6f01.
	I hope that the test has been unbroken by commit 200cd405.

	Continuous-Integration: Jenkins CI

2016-01-17  Edward Haas  <edwardh@redhat.com>

	test: Configurable verbose test output
	Let the user control verbose level.

	To run without verbose output, use: 'NOSE_VERBOSE=1'
	Example: 'make check NOSE_VERBOSE=1'

	Continuous-Integration: Jenkins CI

2016-01-17  Benjamin Kemper  <kemperbenny@gmail.com>

	Added Python 3 support for sslTests.py
	Continuous-Integration: Jenkins CI

2016-01-15  Adam Litke  <alitke@redhat.com>

	storage: Fix removeMetadata
	In commit 2fd92bd3 we moved removeMetadata to the VolumeManifest.  We
	made a mistake by using a common redirection method in the Volume class.
	Unfortunately, the block version takes a metaId parameter and the file
	version takes no arguments.  To fix, each volume type must perform its
	own indirection with the correct number of arguments.

	Continuous-Integration: Jenkins CI

	storage: Fix _getLeaseVolumePath
	In commit a816cd3d (which was part of the SDM Volume refactoring work)
	we moved some functions related to volume leases into the VolumeMetadata
	(now VolumeManifest) class.  When doing so, I mistakenly made vol_path a
	required parameter to _getLeaseVolumePath.  The function's behavior was
	not meant to be changed by this refactoring and the _shareLease
	function does not expect to pass vol_path.

	The result is the following exception when creating a VM from a
	template:

	83df5309-8e78-4a8d-beed-447040815312::ERROR::2016-01-15
	17:00:35,969::task::867::Storage.TaskManager.Task::(_setError)
	Task=`83df5309-8e78-4a8d-beed-447040815312`::Unexpected error
	Traceback (most recent call last):
	  File "/usr/share/vdsm/storage/task.py", line 874, in _run
	    return fn(*args, **kargs)
	  File "/usr/share/vdsm/storage/task.py", line 333, in run
	    return self.cmd(*self.argslist, **self.argsdict)
	  File "/usr/share/vdsm/storage/securable.py", line 77, in wrapper
	    return method(self, *args, **kwargs)
	  File "/usr/share/vdsm/storage/sp.py", line 1890, in createVolume
	    initialSize=initialSize)
	  File "/usr/share/vdsm/storage/sd.py", line 633, in createVolume
	    initialSize=initialSize)
	  File "/usr/share/vdsm/storage/volume.py", line 902, in create
	    (srcVolUUID, volUUID, e))
	VolumeCannotGetParent: Cannot get parent volume: (u"Couldn't get parent
	78f22775-916c-4e72-8c5b-9917734b26da for volume
	e93b50ec-fbbe-43cd-811b-7bd383a63630: Cannot share volume: <snip>:
	 _getLeaseVolumePath() takes exactly 2 arguments (1 given)'",)

	Fix this by once again making vol_path an optional parameter.

	Continuous-Integration: Jenkins CI

2016-01-15  Francesco Romani  <fromani@redhat.com>

	tests: improve vmstats.disks coverage
	vmstats.disks() must be robust in presence of various missing
	diks attributes. This patch adds the missing tests to make sure
	all known misreportings are covered.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1281337
	Continuous-Integration: Jenkins CI

	tests: extend coverage for vmstats.disks()
	This patch extends the test coverage for vmstats.disks()

	- make existing test helpers clearer avoiding default arguments
	- make existing test clearer adding explicit data
	- add test for zero-interval, which sometimes happens during
	  migrations and it is already handled by the code.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1281337
	Continuous-Integration: Jenkins CI

2016-01-14  Maor Lipchuk  <mlipchuk@redhat.com>

	lun: Serial attr should not passed to libvirt for lun disks.
	Following the change which was introduced at
	libvirt-1.2.17-5 and qemu-kvm-rhev-2.3.0-18, libvirt now enforce
	that a scsi-block 'lun' device should not provide the 'serial' property.

	To comply with this change, this patch introduces a change
	that a VM should ignore 'serial' property for lun devices when
	passing the XML to libvirt.

	This patch was verified by running a VM with lun disk which
	had enabled SCSI Pass-Through and also plugging the same lun disk
	while the VM was running. The operation succeeded.

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

2016-01-14  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Remove staticmethod usage from guest agent
	This patch removes the usage and the need of the usage of the staticmethod
	decorator.
	Since there is no added value in using it and it is quite confusing, this
	will simplify the code and understanding of it.

	Continuous-Integration: Jenkins CI

	virt: Correct epoll unregistration usage in vmchannels
	Previously we have been unregistering fds from epoll but not in the correct
	way. Which has led to log messages which seemed to have no good explanation
	as of why they occur. That has been changed to 'fix' it by letting only epoll
	unregister those file descriptors themselves when they are closed.
	This however has been wrong - the correct procedure to use epoll is to
	unregister the file descriptor first and then close the socket.

	In the vmchannel case there are two scenarios where this applies:

	- On an error reported by epoll
	- When we want to unregister the channel from vmchannels

	This patch fixes those two scenarios.

	Backport-To: 3.5
	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1226911
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>
	Continuous-Integration: Jenkins CI

2016-01-14  Edward Haas  <edwardh@redhat.com>

	net: Cleanup translateNetOptionsToNew
	translateNetOptionsToNew is no longer needed.
	(and is located in the wrong place anyway)

	Continuous-Integration: Jenkins CI

2016-01-13  Nir Soffer  <nsoffer@redhat.com>

	virt: Fix arch check after cpuarch was merged
	commit d7a85d3c2cec (virt: Don't create <bios> on non-x86 architectures)
	was somehow applied cleanly on master after caps.Architecture was
	removed, breaking the build and probably the actual code when trying to
	use serial console.

	This patch updates the code to use cpuarch instead of caps.Architecture.

	Continuous-Integration: Jenkins CI

2016-01-13  Francesco Romani  <fromani@redhat.com>

	vm: safer handling of conf in restore
	In the restore state (aka dehibernation) path, there
	are a few places left on which the code mutates
	Vm.conf without the protection of the confLock.
	There is no obvious reason to have those mutations
	unguarded, so this patch adds the confLock protection.

	Backport-To: 3.6
	Backport-To: 3.5
	Related-To: https://bugzilla.redhat.com/1296936
	Continuous-Integration: Jenkins CI

	virt: safer handling of migration parameters
	The Migration Source code path needs to store additional
	transient migration parameters in the Vm configuration state,
	to be both saved on recovery file and transmitted on the
	destination VM.
	Those parameters will be dropped once the migration is done.

	Up until now, the migration code mangled the Vm state from the outside.
	This was ugly and unsafe, because the configuration was mutated without
	any locking.

	Under high migration load, this can lead to RuntimeErrors, because
	the clients of Vm.conf (e.g. status(), getVMList()...) expect the
	lock being held and the access serialized.

	To fix those issues, we add a helper method into Vm class, to
	let the migration code temporarily store the data it needs in a safe
	and simple way.

	Backport-To: 3.6
	Backport-To: 3.5
	Bug-Url: https://bugzilla.redhat.com/1296936
	Continuous-Integration: Jenkins CI

	migration: use context manager for semaphore
	The migration source code path needs to take the
	ongoingMigrations semaphore, to throttle the outgoing
	migrations.

	The code did so using the pre-2.6 way, explicitly
	using acquire() and release().

	This patch switches the code to the context manager
	semantics, to make the code a bit nicer and to unlock
	further refactoring.

	Backport-To: 3.6
	Backport-To: 3.5
	Bug-Url: https://bugzilla.redhat.com/1296936
	Continuous-Integration: Jenkins CI

2016-01-13  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix loop device leak in mount tests
	We used to unmount loop devices without using force=True and
	freeloop=True. This may lead to loop device leak, failing the later
	tests trying to mount loop devices. We also did not wait for udev events
	when unmounting a loop device, which is asynchronous operation.

	Both issues were fixed long time ago (commit dbfdc90) in the mkimageTests.
	Apply the same fix for mount tests.

	Continuous-Integration: Jenkins CI

2016-01-13  Shahar Havivi  <shaharh@redhat.com>

	v2v: tests: refactor  v2vTests
	1. move _VM_SPECS to the module scope and rename to VM_SPECS
	2. set _VMS in setup and not as class variable to protect it from
	   altering but each test

	Continuous-Integration: Jenkins CI

2016-01-13  Milan Zamazal  <mzamazal@redhat.com>

	virt: Don't create <bios> on non-x86 architectures
	We introduced ovirt-vmconsole access to BIOS some time ago.  But that
	unfortunately breaks on PowerPC as there is no <bios> domain XML element
	there.  So we need to check whether we are on a supported architecture
	before inserting <bios> element.

	Continuous-Integration: Jenkins CI

2016-01-13  Martin Polednik  <mpolednik@redhat.com>

	caps: use cpuarch module
	With the cpuarch module, some of the code in caps can be rewritten to
	use cpuarch directly.

	Continuous-Integration: Jenkins CI

	caps/lib: move CPU architecture details to lib/cpuarch
	CPU architecture details include things such as
	* current CPU architecture,
	* the CPU architecture of VMs and
	* supported architectures.

	Having this information and functionality inside caps.py means that it
	cannot be used in hooks or where circular imports may be a problem. To
	solve this, we create new cpuarch module inside sitelib where we move
	and slightly clean-up the logic. This way, arch information is
	accessible to any VDSM code.

	Continuous-Integration: Jenkins CI

2016-01-12  Shahar Havivi  <shaharh@redhat.com>

	v2v: tests: rename vmid to UUID to match Libvirts domain property
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-01-12  Nir Soffer  <nsoffer@redhat.com>

	tests: Improve object filtering tests
	The tests were not checking handling of all types and handling of nested
	structures. Add also timing test to understand the cost of this
	filtering.

	Continuous-Integration: Jenkins CI

2016-01-12  Edward Haas  <edwardh@redhat.com>

	net tests: Wait for bond dev state up
	Several functional tests that involved bond devices, checked that
	changes do not affect the bond state.

	Tests that waited for an 'known' state, failed randomly, mainly when
	the device state was down and during the test it came up.

	The initial state for the bond state should be UP.
	(this patch alligns all tests to use state UP as the pre-requirement)

	Continuous-Integration: Jenkins CI

2016-01-12  Martin Polednik  <mpolednik@redhat.com>

	cpuinfo: use is_ppc predicate when parsing cpu_map.xml
	The CPU_MAP.xml uses base platform names (x86 and ppc) when locating
	CPU models even for platform extensions (x86_64 and ppc64le). This
	patch replaces the specific platform lookup by base platform lookup,
	resulting in no behavior changes but improving the platform handling
	consistence.

	Continuous-Integration: Jenkins CI

2016-01-12  Allon Mureinik  <amureini@redhat.com>

	storage_exception.py: Remove RHEVM comment
	Replaced the proprietary term RHEVM with the proper upstream
	terminology - oVirt Engine.

	Continuous-Integration: Jenkins CI

2016-01-11  Allon Mureinik  <amureini@redhat.com>

	spec: require libvirt to fix hotplugging
	EL's libvirt 1.2.17-9 contains a fix for an inconsistency created when
	repeatedly hot plugging and unplugging disks.
	This patch updates VDSM's spec file to require this version both on RHEL
	and CentOS.

	Related-To: https://bugzilla.redhat.com/1262399
	Bug-Url: https://bugzilla.redhat.com/1265958
	Continuous-Integration: Jenkins CI

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

	Using six.iteritems in utils to support python3
	Continuous-Integration: Jenkins CI

	Introduce host.py and commands.py to separate execCmd and AsyncProc from utils
	execCmd and AsyncProc require cpopen and StringIO which are not available
	in python3. utils.py should split to sub packages anyway, and this work
	not only provides the ability to import utils.py with python3, but also
	start the work of splitting utils.py to meaningful packages - host.py for
	host's related tools, and commands for command execution tools.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-01-11  Tal Nisan  <tnisan@redhat.com>

	Alignment scans will now run in direct mode
	Currently on RHEL 7 and Fedora 22 or later alignment scan via libguestfs
	does not work by going through libvirt and only works directly.  As a
	workaround this patch runs the alignment scan with an environment
	variable that tells libguestfs to run the scan directly and not through
	libvirt.

	While this solution works it should be reverted after the libvirt bug will
	be solved as it is a workaround, since we allow only VMs in down status to
	be scanned it does not have an affect but once we would like to allow scans
	on running VMs the fact that we bypassing libvirt will mark the VMs as
	tainted.

	Bug-Url: https://bugzilla.redhat.com/1151838
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>
	Continuous-Integration: Jenkins CI

2016-01-11  Edward Haas  <edwardh@redhat.com>

	net: Remove the defaultGateway api canonization
	Previous versions (<3.6) have allowed the management network to be set
	without defaultGateway=True from the API.  For the management network,
	VDSM has canonized defaultGateway to True if the flag was missing.

	From 3.6, defaultGateway is set explicitly by Engine and there is no
	longer a need to canonize the value.

	Continuous-Integration: Jenkins CI

2016-01-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: tests: rename mock classes similar to libvirt original names
	Continuous-Integration: Jenkins CI

2016-01-10  Yeela Kaplan  <ykaplan@redhat.com>

	Remove __init__.py file from lib64 vdsm python directory
	During upgrade from vdsm-4.14 we restart supervdsmd service.
	sys.path is configured to load py modules from /usr/lib64 before
	 /usr/lib. Therefore super loads the vdsm lib module from
	old location (/usr/lib64/python2.7/site-packages) before it's removed.
	(instead of the new location /usr/lib/python2.7/site-packages -
	was introduced in https://gerrit.ovirt.org/#/c/33711)

	This patch removes the old vdsm/__init__.py* files in post scriptlet
	which prevents the wrong import.

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

2016-01-10  Edward Haas  <edwardh@redhat.com>

	net tests: Skip dump_bonding_name2numeric on EBUSY
	The test fails rarely when scanning the bond options, on EBUSY errno.
	It seems to be a bond module issue that is seen on CI.

	If an EBUSY error appears, the test is skipped and kernel version
	is reported.

	Continuous-Integration: Jenkins CI

	net: ifcfg uses chown to change the uid only
	chown() gid value should be set to -1 if there is no intention to change
	it. A value of 0 refers to the root group.

	Continuous-Integration: Jenkins CI

2016-01-10  Tal Nisan  <tnisan@redhat.com>

	Return correct scan alignment result through jsonrpc
	Since jsonrpc was introduced in oVirt 3.5 the scan alignment verb returned
	the default value in jsonrpc mode which is "true" regardless to the actual
	result, this was fixed in this patch

	Bug-Url: https://bugzilla.redhat.com/1294823
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-01-10  Edward Haas  <edwardh@redhat.com>

	net: Normalize management network defaultRoute
	The management network should always include defaultRoute=True.  With
	ovirt-node<=3.5, the management network is initally set from the tui and
	does not set defaultRoute.  defaultRoute is normalized internally to
	True without adding it to the persistent config.

	The fix introduces a normalization of the persistent config, such that
	the management network will be marked with defaultRoute=True even if
	defaultRoute is missing.

	This issue is relevant for upgrades from ovirt-node<=3.5.

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

	net: Enable VDSM to listen on IPv6 addresses
	VDSM should be able to listen on both IPv6 and IPv4
	addresses.
	Changes included in this patch:
	- Enable the ability to accept connections on IPv6 addresses.
	- Cover IPv6 connection handling on the unit tests.
	  Including SSL cerificates that cover IPv6.

	Note: When the configuration (management_ip) is set with'::',
	VDSM will listen on both IPv6 & IPv4 addresses.

	Continuous-Integration: Jenkins CI

2016-01-08  Adam Litke  <alitke@redhat.com>

	storage: Rename *VolumeMetadata to *VolumeManifest
	When refactoring the storage classes (StorageDomain, Image, Volume) we
	made the mistake of using 'Metadata' for the refactored volume classes
	whereas we used 'Manifest' for image and the storage domains.  This
	patch converts the *Volume classes to use Manifest as well.  The
	VolumeMetadata class was well tested by sdm_indirection_tests.py and
	after this patch the tests continue to pass.  Read on for more on the
	rational for this change.

	There are several reasons to make this change:

	1. All of the other classes use Manifest and *Volume classes were the
	   exception.  Code will be more readable with a common convention.

	2. Originally 'Manifest' was chosen for *StorageDomain and Image because
	   manifest means 'a list or invoice of goods' (such as you might
	   receive in a delivered package.  StorageDomains have a list of images
	   (also storage domain metadata and operations).  Images have a list of
	   volumes (also operations).  Volumes do not contain a list of other
	   objects (but they do have metadata, data, a lease, and operations).
	   This list of components still carries a valid association with the
	   concept of a manifest and therefore the name change is justified.

	3. Volumes have their own metadata.  We want to factor out volume
	   metadata manipulation into its own class.  What would the best name
	   for such a factored out class be?  Why... VolumeMetadata!

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-01-08  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Set cloexec flag on channel sockets
	To counter act potential leakage of open handles, this patch is setting the
	CLOEXEC flag on the sockets used for the guest agent channels.
	It is known that this is not totally race free however it will still improve
	the number of file handles leaked.

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

2016-01-08  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix typo elasped -> elapsed
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-01-07  Allon Mureinik  <amureini@redhat.com>

	build: Centos device-mapper-multipath requirement
	As the RHEL requirement for device-mapper-multipath, 0.4.9-84.el7, is
	available in Centos, there's no reason to continue maintaining the
	cumbersome distinction between it and Centos.

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

2016-01-07  Martin Polednik  <mpolednik@redhat.com>

	cpuinfo: add predicates for x86 and ppc platform detection
	Previously we used string (to check for x86_64) and tuple (for ppc64 and
	ppc64le). This patch adds two predicates to the Architecture class of
	caps module:

	* is_x86(arch)
	* is_ppc(arch)

	These classmethods can be used to determine in which class does given
	'arch' argument belong - allowing us to query architecture in
	consistent and unified way.

	Continuous-Integration: Jenkins CI

2016-01-07  Adam Litke  <alitke@redhat.com>

	storage constants: Move LEASE_FILEEXT
	Continuous-Integration: Jenkins CI

	sdm: add SDM.create_volume API stub
	Define the API for the SDM create_volume verb.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-01-06  Adam Litke  <alitke@redhat.com>

	fileVolumeManifest: Make lease and meta path getters public
	Continuous-Integration: Jenkins CI

2016-01-06  Dan Kenigsberg  <danken@redhat.com>

	testEnablePromisc: wait for promisc event
	We have seen cases where testEnablePromisc failed on CI. This could have
	been caused if the test is faster than the kernel, and tests the promisc
	flag before it was applied to the link.

	There might be many more similar races in our tests; this patch should
	serve only as a proof of concept.

	Continuous-Integration: Jenkins CI

2016-01-06  Nir Soffer  <nsoffer@redhat.com>

	guestagent: Simplify and modernize object filtering
	Simplify and modernize object filtering by using dict and list
	comprehensions.  This creates less garbage while building a filtered
	object, and give minor performance improvement (35%).

	Continuous-Integration: Jenkins CI

	guestagent: Speed up xml character filtering
	Use regular expression matching the invalid characters, simplifying the
	code and speeding up filtering (40X):

	    Before: 2.745 seconds
	    After:  0.067 seconds

	Also improve the documentation, explaining the logic, and mention the
	original bug from 2010, which is the reason we need this filtering.

	Continuous-Integration: Jenkins CI

	tests: Add filtering xml timing test
	Add @slowtest for timing xml char filtering.

	Continuous-Integration: Jenkins CI

	tests: Separate tests using permutations
	GuestAgent tests were using one test method for multiple tests, so
	failing of one test would fail other unrelated tests. Use permutations
	to have one test method per test.

	Also group filtering tests under TestFiltering test case class.

	Here is an example run of the new test class:

	guestagentTests.TestFiltering
	    test_filter_object_invalid                                  OK
	    test_filter_object_valid                                    OK
	    test_filter_xml_chars_replace_invalid(u'\ud800')            OK
	    test_filter_xml_chars_replace_invalid(u'\udc79')            OK
	    test_filter_xml_chars_replace_invalid(u'\ufffe')            OK
	    test_filter_xml_chars_replace_invalid(u'\uffff')            OK
	    test_filter_xml_chars_replace_invalid(u'\x00')              OK
	    test_filter_xml_chars_replace_restricted                    OK
	    test_filter_xml_chars_valid(u'')                            OK
	    test_filter_xml_chars_valid(u'\u2122')                      OK
	    test_filter_xml_chars_valid(u'ascii')                       OK

2016-01-06  Yaniv Bronhaim  <ybronhei@redhat.com>

	Move dsaversion under vdsm-python package
	Continuous-Integration: Jenkins CI

2016-01-06  Shahar Havivi  <shaharh@redhat.com>

	v2v: extract specific classes for libvirt and ova
	We are handling a lot of inputs for ImportVM (libvirt VM, ova) and
	adding Xen and Kvm which make ImportVM bloated with a lot of conditions.

	Introduction a V2VCommand that each implementation will create its own
	command and will have execution context.

	Continuous-Integration: Jenkins CI

2016-01-05  Adam Litke  <alitke@redhat.com>

	storagefakelib: Add FakeResourceManager
	A fake ResourceManager is needed for testing the sdm verbs.  The fake
	object just records the calls but otherwise does nothing.

	Continuous-Integration: Jenkins CI

	fileSD: Make _getDeletedImagePath public
	_getDeletedImagePath is useful to the upcoming FileVolumeArtifacts
	class.  Make it public so it can be used outside of
	FileStorageDomainManifest.

	Continuous-Integration: Jenkins CI

	storage: Move VOLUME_PERMISSIONS to storage constants
	VOLUME_PERMISSIONS will be needed by the volume_artifacts module.  To
	avoid circular dependencies move this constant to the constants module
	where both modules can use it.

	Continuous-Integration: Jenkins CI

2016-01-05  Nir Soffer  <nsoffer@redhat.com>

	jobs: Add Job.__repr__ for easier debugging
	Every object should have __repr__ to make it easy to have more detailed
	logs, or for debugging Interactively using the manhole debugging shell.

	Example output:

	    <ProgressingJob id=9cf0ae08-d0e3-45ba-886c-3a28c00e02b3
	    status=running progress=32% at 0x140170561474000>

	Continuous-Integration: Jenkins CI

	jobs: Replace validation method with a property
	Replace Job.validate_not_active() with an Job.active property. Change
	the single call site to check the property and raise.

	Continuous-Integration: Jenkins CI

	jobs: Take lock once when deleting a job
	Previous we use get() for checking if a job exists before deleting it,
	and then check again in _delete. Move all the logic to _delete, so we
	take the lock once and during this flow.

	With this change, test coverage for this module is 100%.

	Continuous-Integration: Jenkins CI

2016-01-05  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: Move getImageVolumes
	Continuous-Integration: Jenkins CI

	VolumeMetadata: volume share utilities
	Continuous-Integration: Jenkins CI

	VolumeMetadata: move refreshVolume
	Continuous-Integration: Jenkins CI

	VolumeMetadata: move newVolumeLease
	Continuous-Integration: Jenkins CI

2016-01-05  Dan Kenigsberg  <danken@redhat.com>

	netinfo: survive even when a expected iface is not connected to bridge
	Continuous-Integration: Jenkins CI

2016-01-05  Yaniv Bronhaim  <ybronhei@redhat.com>

	Require safelease 1.0-6 for fedora 23 due to wrong build
	The spec of safelease 1.0-5 for fedora 23 doesn't include require for
	packages that are mandatory for vdsm.
	The build was initiated wrongly, therefore we submitted safelease 1.0-6 which
	keep the same spec as in the rest of 1.0-5 builds.
	This is only relevant for fedora 23 build.

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

2016-01-05  Fred Rolland  <frolland@redhat.com>

	build: update libvirt dependency for fedora
	Require a libvirt version that fixes the problem of reporting
	physical=0 for COW2 volumes on block storage on Fedora. The given
	version 1.1.2.18.1 exists in Fedora 23 and fixes the issue.

	See Fedora BZ: https://bugzilla.redhat.com/1253754

	Though the fix is only in libvirt-daemon, the libvirt-python
	required version is also aligned to it to keep consistency.

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

2016-01-05  Marcin Mirecki  <mmirecki@redhat.com>

	vm: restoring correct vm nic device after HotunplugTimeout
	When a nic is hotunpluged, it is first removed from the vdsm
	devices, and then from libvirt. When the libvirt operation
	fails, we need to revert the state of the nic in the vdsm
	devices.

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

2016-01-04  Nir Soffer  <nsoffer@redhat.com>

	rwlock_test: Make pep8 happy again
	Fixing typo (shold -> should) increased the line length to 80
	characters, making pep8 grumpy. Rewrap to make it happy again.

	Continuous-Integration: Jenkins CI

	tests: Set status when creating a job
	Instead of setting job private instance variables, set the status when
	creating the job.

	Continuous-Integration: Jenkins CI

	tests: Test default Job.progress implementation
	Test jobs.Job.progress, and add ProgressingJob class for testing job
	that report a progress.

	Continuous-Integration: Jenkins CI

2016-01-04  Allon Mureinik  <amureini@redhat.com>

	verify.py: Fix typo "attribets" -> "attributes"
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	sslTests.py: Fix typos
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	rwlock_test.py: Fix typo "shold" -> "should"
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	momTests.py: Fix typo "paramters" -> "parameters"
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	utils.py: Fix typo "placeholer" -> "placeholder"
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	dump_volume_chains.py: Spelling in comment
	Continuous-Integration: Jenkins CI

	sigutils: Fix typo "the the" -> "the"
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2016-01-04  Amit Aviram  <aaviram@redhat.com>

	JSONRPC: make Image.prepare to return info.
	Currently the API which exposes Image.prepare is different between
	XMLRPC and JSONRPC; When calling this verb via XMLRPC, info is
	returned while nothing is returned when calling it via JSONRPC.

	After preparing an image, the caller expects to get some valuable
	information regarding it.

	This patch makes "Image.prepare" JSONRPC verb call to return
	relevant info for current usages, which are also exposed when using
	XMLRPC.

	Continuous-Integration: Jenkins CI

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

	constants: Define temporary volume indicators
	This patch defines the file extension that identifies temporary
	file-based volumes and the LV tag that identifies temporary block-based
	volumes.  See below for details about why this will be needed.

	Creating a volume requires multiple steps and many changes to storage
	and the operation can fail at any point.  To make recovery from failure
	at any point possible, we create volumes as temporary entities (called
	VolumeArtifacts).  Once created, the VolumeArtifacts can be committed as
	a new Volume with a single atomic operation.  For file-based volumes we
	rename a file.  For block-based volumes we remove an LV tag.  If volume
	creation fails at any point in the process, easily identifiable garbage
	is left on storage which can be cleaned up automatically.

	Continuous-Integration: Jenkins CI

2016-01-04  Allon Mureinik  <amureini@redhat.com>

	betterAsyncore.py: Fix typo "enought"->"enough"
	Continuous-Integration: Jenkins CI

	zombiereaper: Fix typo "happend" -> "happened"
	Continuous-Integration: Jenkins CI

	compat.py: Fixed typo "libary"->"library"
	Continuous-Integration: Jenkins CI

	schema: Fix Typos
	Continuous-Integration: Jenkins CI

	nfs-check.py: apostrophe
	Fixed conjunctions in the comments and logs to use an apostrophe (')
	instead of a forwards quote (`) as per proper spelling rules.

	Continuous-Integration: Jenkins CI

	vdsClient: Fix typo parmeter->parameter
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2016-01-04  Dan Kenigsberg  <danken@redhat.com>

	net: mtu should be reported as a string through caps
	Previous change (commit 59ede0b) migrated all mtu values to
	integers internally, including at the API entry point.
	One point has been missed though, the caps reoport to the
	engine: engine (3.6) expects a string mtu, however vdsm reports
	an integer.

	This change reports the mtu to engine as a string for
	compatibility with engine ver < 3.7.

	Note: Several functional tests had to be cleaned up to support
	this change:
	- mtu assertion.
	- running vs kernel config validation should use netinfo (and
	  not caps).

	Continuous-Integration: Jenkins CI

2016-01-04  Petr Horáček  <phoracek@redhat.com>

	hooks: ovs: keep README on wiki
	Keeping OVS README on wiki would give the hook more visibility and
	it will be easier to edit it.

	Continuous-Integration: Jenkins CI

2016-01-03  Nir Soffer  <nsoffer@redhat.com>

	jobs: Remove unused method
	Nobody is calling Job.validate_done(), and I don't want to add test for
	code that we don't need.

	Continuous-Integration: Jenkins CI

2016-01-02  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpcvdscli: improve functional network tests duration time
	The tests were creating new jsonrpcvdscli#_Server every time before test
	invocation. In __init__ method we perform schema parsing which is time
	consuming operation. We improved duration time of the test by creating
	the objects only once instead of before every test method.


	Continuous-Integration: Jenkins CI

2016-01-01  Daniel Erez  <derez@redhat.com>

	vm: snapshot - adding appropriate logs
	Following https://gerrit.ovirt.org/#/c/49535,
	adding some useful logs to snapshot flow.

	Continuous-Integration: Jenkins CI

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

	jobs: Return job id in Host.getJobs response
	The schema promises this value, but we did not return it.

	Continuous-Integration: Jenkins CI

	jobs: Fix job error format
	The schema claims that job's error (ErrorInfo) is a map with "code" and
	"message" keys, but we returned an error response dict used for xmlrpc
	response.  Add GeneralException.info() method, and use it to return the
	promised value.

	Continuous-Integration: Jenkins CI

2015-12-31  Douglas Schilling Landgraf  <dougsland@redhat.com>

	spec: replace deprecated define to global macro
	https://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

	Continuous-Integration: Jenkins CI

2015-12-29  Edward Haas  <edwardh@redhat.com>

	net: netconf owner change should ignore gid
	When changing ownership of the directories/files the group id
	does not need to change.
	It affects tests which run as non-root (they fail when attempting
	to change the gid to root (0).

	Continuous-Integration: Jenkins CI

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

	network: tests: mirror drop inital ip tests
	Rename test_remove_initial_network_nic_ip_config to
	test_drop_initial_network_nic_ip_config, to be uniform with
	test_drop_initial_network_bond_ip_config.

	Use self.assertNotIn(IPv6_ADDRESS_AND_CIDR, ipv6addrs)
	instead of self.assertEqual([], ipv6addrs), it will prevent
	possible errors caused by IPv6 link-local address assigned
	by default, also it is what we assign in
	test_drop_initial_network_nic_ip_config.

	Continuous-Integration: Jenkins CI

	net: init: wait for ipv4 with monitoring
	Now we are polling devices until all required IPv4 addresses
	are ready.

	With this patch we use monitoring in external Python script
	instead of polling.

	Continuous-Integration: Jenkins CI

2015-12-29  Shahar Havivi  <shaharh@redhat.com>

	v2v: refactor get_external_vms
	break to smaller methods

	Continuous-Integration: Jenkins CI

	v2v: add test testSuccessfulImportOVA
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	v2v: refactor testSuccessfulImport test
	- test convert_external_vm api instead of internal ImportVM class
	- rename to testSuccessfullVMWareImport
	- make vminfo as a test member for usage in future ova test

	Continuous-Integration: Jenkins CI

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

	netconf: own /var/run/vdsm/netconf as well
	commit 1fa3b3 made /var/run/vdsm/netconf/nets owned by vdsm, but
	sometimes we have /var/run/vdsm/netconf/ still owned by root.

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

2015-12-28  Liron Aravot  <laravot@redhat.com>

	storage: perform image deletion in task
	deleteImage() always schedules a task after it's synchronous part, the
	task is currently used to wipe the image (if requested) and in case of
	deletion without wipe it performs nothing.

	The synchronous part of deleteImage() renames the image to clarify that
	it's about to be deleted by adding a prefix and then deletes the image.
	On storage under heavy load any of those operations can be slow, as the
	engine has a default timeout of 180s for vdsm operation on some cases we
	might fail on timeout. In order to lower the chance to get that timeout
	this patch moves the image deletion to occur always on the task (same as
	happens today when wiping the image).

	The assumption that the engine relies on currently is that when a call to
	deleteImage() returns the image is no longer available and that it's id
	is "free" to use (whether it was deleted on the synchronous part or a
	wipe is ongoing), as we still rename the image in the synchronous part
	this assumption is still valid and the engine shouldn't be affected by
	it.

	This patch change deleteImage() to perform only the image rename, while
	purgeImage() will be used to free the space taken by the image.

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

2015-12-27  Edward Haas  <edwardh@redhat.com>

	net: Update mtu under the bridge only when needed
	Updating the mtu of an existing bridge and its ports,
	only when the mtu is different from the current value.

	Continuous-Integration: Jenkins CI

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

	build: Add dependencies for generated .py files
	In the past we checked .py.in files with pep8 and pyflakes. Recently we
	removed this wrong check, and we are checking only .py files.

	This change required running "make; make check", to have .py files
	generated before running make check.

	This patch adds dependencies so "make check" will generated the files it
	wants to check.

	Searching for .py.in file is not needed now and was removed.

	Continuous-Integration: Jenkins CI

2015-12-24  Edward Haas  <edwardh@redhat.com>

	net api: Normalize 'remove' for networks to boolean
	Normalize 'remove' value to a boolean at the api entry point.
	The incosistent value type caused validation failures of the
	api, especially when the canonization step has been introduced.

	Continuous-Integration: Jenkins CI

	net: set netconf/* owner to 'vdsm'
	On ovirt-node netconf/* has umask of 660 with root
	as owner. Accessing the folders and files by vdsm
	is denied.
	Resolved by changing the owner of the files and
	folders to 'vdsm'

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

2015-12-24  Idan Shaby  <ishaby@redhat.com>

	fileSD: use fileVolume constants for file extensions
	This patch replaces the use of file extension strings in deleteImage to
	their corresponding existing constants in fileVolume.

	Continuous-Integration: Jenkins CI

	fileSD: improve error handling in deleteImage
	In FileStorageDomainManifest.deleteImage, we used to log that the volume
	could not be removed even if it was removed but the meta/lease file
	could not be removed afterwards.

	This patch logs more informative errors about the specific file that
	could not be removed. If the removal fails because the file doesn't
	exist, we log a warning. Otherwise, we log an error message that the
	file can't be removed.

	Also, if one of the files couldn't be removed, we didn't try to remove
	the others.  Now we handle each removal separately, so that a failure in
	the removal of one file doesn't affect the removal of the others.

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

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

	hooks: ovs: show vlan in caps ports
	Until now, when we set up a tagged network we reported only
	directly attached nics and bonds. To be compatible with VDSM
	we have to report attached vlan (in its iface.id format) too.

	Continuous-Integration: Jenkins CI

	network: caps vlan vlanid property has to be int
	Engine expects caps vlan vlanid property to be integer.

	Assert this condition in networkTests and fix ovs hook.

	Continuous-Integration: Jenkins CI

	net: tests: test network's iface
	Test if we report proper network's iface in running config.

	Continuous-Integration: Jenkins CI

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

	python3: Port password module to python 3
	Python 3 removed the iteritems() method from dict object. Use
	six.iteritems() instead.

	Continuous-Integration: Jenkins CI

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

	hooks: ovs: set OVS devices UP
	Set all attached and created devices explicitly UP.

	We need to do a minor change in tests: when we set OVS bond up,
	it turns into UNKNOWN state, not UP state. Because of that we have
	to return fake True from networkTests._waitForKnownOperstate.

	Continuous-Integration: Jenkins CI

2015-12-22  Ido Barkan  <ibarkan@redhat.com>

	net: MTU should be an integer all over VDSM.
	It should be serialized as such and be converted to a string only
	when written to files, and immediately upon the start of setupNetworks
	API call.

	Continuous-Integration: Jenkins CI

2015-12-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove koji build flag and use specific one for vdsm-vhostmd-hook
	We build vhostmd package only for fedora builds in koji. This patch
	removed the current flag enable-koji which has no meaning and adds
	enable-vhostmd-hook instead - in addition adds koji_build.sh script to ease
	the build process.

	Continuous-Integration: Jenkins CI

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

	p3test: add few modules that currently pass on Python 3
	Continuous-Integration: Jenkins CI

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

	startup: Change system default encoding to utf8
	In Python 2, the system default encoding is 'ascii'. This causes mixing
	of unicode and non-ascii strings (e.g. utf8 encoded) to fail with
	UnicodeDecodeError or UnicodeEncodeError. The trigger for this failures
	is starting using the built-in json library, that returns all values as
	unicode strings, even if the value is ascii.

	For example:

	>>> u'ascii' + '\xd7\x90'
	Traceback (most recent call last):
	  File "<stdin>", line 1, in <module>
	UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 0:
	ordinal not in range(128)

	Python tries to decode the second value implicitly, and fails since this
	is a utf8 encoded string.

	To avoid such issues, the entire application must be changed to use only
	strings or only unicode internally, and never mix these types.  In the
	distant future, when we run on Python 3, this will be true. For now, the
	only way to prevent these issues systematically is to change the system
	default encoding to 'utf8'.

	Changing the default encoding is done with sys.setdefaultencoding(), but
	this function exists only during startup, and can be called only from
	sitecustomize module.

	We keep now sitecustomize.py module, and change PYTHONPATH so it will be
	loaded on startup.

	This change is not needed in Python 3 since the default encoding is
	already utf8, and Python does not do any implicit decoding or encoding
	when mixing 'str' and 'bytes' types.

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

2015-12-21  Ramesh Nachimuthu  <rnachimu@redhat.com>

	gluster: ensure LV size is multiple of VG's PE value
	 Alignment value for JBOD is changed to 256 KiB from 0
	in https://gerrit.ovirt.org/#/c/47959 and alignment value is
	used as PE value in VG creation. It resulted in following
	error for some JBOD disks.

	"DeviceError: ('Adding new lv is too large to fit in free space',
	 u'vg-brick2-pool-brick2'"

	Size of LV should be multiple of PE value. But this calculation
	was done only for RAID volume not for JBOD and that was the casue for
	above error.

	With this patch, lv size will be adjusted to the multiples of PE
	always regardless of whether its RAID or JBOD.

	Bug-Url: https://bugzilla.redhat.com/1270792
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

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

	hooks: ovs: use a class instead of NamedTuple for IPConfig
	NamedTuples are evil, making code less readable. If we use class
	instead we not only transform it into a more readable code, but also
	store IPConfig values and handler inside one object (until now it
	was splitted into a named tuple and private function
	_gather_ip_config).

	Continuous-Integration: Jenkins CI

	hooks: ovs: rename _set/drop/remove_ip_config functions
	Make difference between _drop_ip_config, _remove_ip_config and
	_set_ip_config more explicit by renaming and adding extra comments.

	Continuous-Integration: Jenkins CI

	hooks: ovs: use network lib instead of hardcoded path hack
	vdsm.network has been changed into a separate library, now we
	can drop hardcoded path hack.

	Continuous-Integration: Jenkins CI

2015-12-21  Ramesh Nachimuthu  <rnachimu@redhat.com>

	gluster: fix size conversion issues in brick create
	 There is change in blivet API device.size.convertTo(spec).
	spec was a string parameter in older versions of blivet but its changed
	to constants in newer versions. This patch address this issue
	in a generic way so that it can run on all releases.

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

2015-12-21  Edward Haas  <edwardh@redhat.com>

	net: Compare kernel vs running bond config opt vals
	Comparing between the bond running config and the
	bond kernel config should consider that some values
	may be inputted as name or numeric.
	A dictionary is kept to translate between the name
	and its numeric value.

	The running config bonding option values are normalized
	to their numeric values and compared to the kernel
	config which represents the values as numeric.

	Continuous-Integration: Jenkins CI

2015-12-21  Ramesh Nachimuthu  <rnachimu@redhat.com>

	gluster add mount options for gluster brick.
	 Mount options "inode64,noatime" should be used to
	mount the gluster brick to improve the performance.

	Bug-Url: https://bugzilla.redhat.com/1270792
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-21  Edward Haas  <edwardh@redhat.com>

	net: Mapping bonding option value names to numerics
	Several bonding options have values that may be inputted
	either by name or by their numeric equivalent.
	When read, for comparing the actual settings with the
	requested configuration, only one format should be used.

	This change creates a map, outputted to a JSON file.
	[bonding-name2numeric.json]

	Continuous-Integration: Jenkins CI

2015-12-21  Timothy Asir Jeyasingh  <asirtim@yahoo.com>

	gluster: fix alignment issue for brick creation on JBOD
	  Chunk size and alignment value should be 256KB for
	 JBOD use case. So assigining these values incase of
	JBOD.

	 Note: blivet doesn't support alignment values in PV,VG,
	Thinpool creation. So we were using blivet API only when i
	we don't have any alignment and LVM commands directly when
	we have alignment values. Now, with this patch we will
	use lvm commands always as we have alignment values in all
	the cases and Blivet API usage can be removed completely
	in PV, Thin pool, VG creation.

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

2015-12-21  Ramesh Nachimuthu  <rnachimu@redhat.com>

	gluster: create bricks without MBR partitions
	 During gluster brick creation, PVs should be
	created directly on the disks instead of MBR
	partitions to align the pvs correctly as per given
	RAID parameter. This patch will remove the
	_makePartition function and will not create
	parition as part of gluster brick creation.

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

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

	gluster: Handle missing glusterfs-cli package
	In 3.6 we introduced a soft dependency to glusterfs-cli. This was
	required in order to get gluster volume info needed for to purposes:
	1. get gluster backup servers in order to automatically mount gluster
	   back servers
	2. get replica related to verify that it is supported
	However, during upgrade, if glusterfs-cli is missing, mount failed. In
	this case, we'd like to add a warning message clearly indicating about
	the missing glustefs-cli package, and ask the admin to install it in
	order to enable automatica mount of gluster backup servers.

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

2015-12-20  Sagi Shnaidman  <sshnaidm@redhat.com>

	Always propagate bonding mode to engine
	Without this patch the bond mode is not propagated if it's
	not equal to 0 (default) although engine expect it to be
	always propagated

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

2015-12-20  Daniel Erez  <derez@redhat.com>

	spec: Require newer qemu version for el7
	Bumping qemu version to 2.3.0-31.el7_2.4 in order to avoid
	a potential assertion error after lvextend caused by a memory
	corruption in the block sub-system.

	For more details:
	* https://bugzilla.redhat.com/show_bug.cgi?id=1277922
	* http://marc.info/?l=qemu-devel&m=144740716414450&w=2

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

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

	executor: Streamline __repr__
	Now that we are using self._task, we can make__repr__ in a little
	bit nicer using conditional expression.

	Continuous-Integration: Jenkins CI

	executor: Fix the task-callable mismtach
	Executor is executing queue tasks, but the public api is dealing with
	callable and timeout. These leak into the executor internals, and cause
	confusion when we log the executor state.

	Now we pack the callable and the timeout in a Task namedtuple, fixing
	the mismatch, and providing more information when logging the task in
	Worker.__repr__.

	    Task(callable=<function func at 0x7fd84f3ec500>, timeout=7)

	Continuous-Integration: Jenkins CI

2015-12-18  Adam Litke  <alitke@redhat.com>

	storage: add getHostId to DomainMonitor
	Some SDM verbs need to acquire the domainLock during their job.  In
	order to do this they must be passed the domain's hostId property.  An
	easy way to expose this is to add a getHostId method to the
	DomainMonitor.

	Another method (not chosen) is for IRS to access the host id via the
	StorageDomainManifest.getPools method:

	    dom_manifest.getPools()[0].id

	The main reason for using the domainMonitor is to avoid adding any new
	users of the StoragePool class.  Since the domainMonitor acquires the
	hostID via SANLock, it seems qualified to communicate that hostID to its
	owner.

	Continuous-Integration: Jenkins CI

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

	tests: mark test_mkFloppyFs as broken
	test_mkFloppyFs fails quite often with

	    ERROR: Tests mkimage.mkFloppyFs creating an image and checking its content.
	    ----------------------------------------------------------------------
	    Traceback (most recent call last):
	      File "/home/jenkins/workspace/vdsm_master_check-patch-fc23-x86_64/vdsm/tests/testlib.py", line 73, in wrapper
	        return f(self, *args)
	      File "/home/jenkins/workspace/vdsm_master_check-patch-fc23-x86_64/vdsm/tests/testValidation.py", line 97, in wrapper
	        return f(*args, **kwargs)
	      File "/home/jenkins/workspace/vdsm_master_check-patch-fc23-x86_64/vdsm/tests/mkimageTests.py", line 172, in test_mkFloppyFs
	        m.mount(mntOpts='loop')
	      File "/home/jenkins/workspace/vdsm_master_check-patch-fc23-x86_64/vdsm/vdsm/storage/mount.py", line 225, in mount
	        return self._runcmd(cmd, timeout)
	      File "/home/jenkins/workspace/vdsm_master_check-patch-fc23-x86_64/vdsm/vdsm/storage/mount.py", line 241, in _runcmd
	        raise MountError(rc, ";".join((out, err)))
	    MountError: (32, ';mount: /tmp/vdsm-mkimage-testswqsKjg/images/vmId_floppy.0478bd99cc3b39a408d863d4babd70bd.img: failed to setup loop device: No such file or directory\n')

	I do not understand how the image disappear, but it does.

	Continuous-Integration: Jenkins CI

2015-12-17  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: move newMetadata
	Continuous-Integration: Jenkins CI

	VolumeMetadata: move validateDelete
	Continuous-Integration: Jenkins CI

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

	fileSD: Do not try to remove non-existent lease file
	The volume.lease file exists only if a domain has volume leases. Avoid
	removing the non-existent lease file and the bogus exception in the log
	when the operation "fails".

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

2015-12-17  Adam Litke  <alitke@redhat.com>

	storage: Rename storageConstants.py to constants.py
	The SDM work is beginning an effort to reorganize storage constants.
	Currently constants are peppered throughout the various storage modules.
	Getting access to these constants introduces complex module
	interdependencies which can lead to circular import dependencies.

	In this first step, rename storageConstants.py to constants.py and make
	necessary adjustments to the code which currently imports this module.
	The new name is shorter and does not have the redundant 'storage' as
	part of its name.  Future patches will move constants into this module.

	To prevent clashes with vdsm.constants, we always import storage
	constants like this:

	    from storage.constants import FOO_BAR

	Continuous-Integration: Jenkins CI

2015-12-17  Ido Barkan  <ibarkan@redhat.com>

	net: support hot(un)plugNic for SRIOV network devices.
	The missing behavior was to automatically attach/detach the
	moving devices to/from the host.
	For this feature to be supported, a corresponding engine side patch
	is needed: I9bdf0d4cf9713691246015cf0297364a0dc40e95

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-12-16  Adam Litke  <alitke@redhat.com>

	Bridge: Allow _ in function names
	Continuous-Integration: Jenkins CI

2015-12-16  Francesco Romani  <fromani@redhat.com>

	lib: executor: report worker status in __repr__
	To make the troubleshooting of stuck workers
	easier, we extend Worker.__repr__.
	The new method reports now the task being performed,
	or 'waiting' if the worker is idle; furthermore,
	stuck workers are clearly marked as such, reporting
	'discarded' next to the task.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2015-12-16  Edward Haas  <edwardh@redhat.com>

	net: Correctly apply MTU values on networks
	Two issues have been resolved by this change:

	- New networks with no MTU specification are being
	set by default with their connected device (bond,
	vlan, nic) mtu (which does not have to be 1500).
	Fixed by detecting when no MTU is specified in the
	configuration, and adding the default (1500)
	explicitly.
	The assumption of a single default mtu when one is
	not specified in the setup is wrong, causing in
	some cases an unnecessary restoration of networks
	during network restoration.
	- Test fix: The NIC/s mtu should be set to the
	maximum mtu of the remaining networks.

	Continuous-Integration: Jenkins CI

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

	hooks: ovs: drop initial bonds' slaves IP config
	Ifcfg configurator's behavior of keeping network nic's IP and dropping
	bonding nics' IP was considered as a bug and
	test_keep_initial_bond_slaves_ip_config was renamed to
	test_drop_initial_bond_slaves_ip_config.

	Because of that, we have to remove IP configuration of nics
	attached to Vdsm controlled OVS bonds.

	Continuous-Integration: Jenkins CI

2015-12-16  Milan Zamazal  <mzamazal@redhat.com>

	virt: tests: More testVideoXML tests
	As suggested in
	https://gerrit.ovirt.org/#/c/50091/3/tests/deviceTests.py@296, we should
	try various combinations of presence and non-presence of video device
	attributes in the related test.

	Continuous-Integration: Jenkins CI

2015-12-16  Meni Yakove  <myakove@redhat.com>

	netinfo:Report host DNSs in getVdsCaps
	Continuous-Integration: Jenkins CI

2015-12-15  Milan Zamazal  <mzamazal@redhat.com>

	virt: vm: Replace update time migration TODO
	As discussed in https://gerrit.ovirt.org/49212, we are not going to
	update time on the guest after live migration.  So we replace the
	corresponding TODO with an explanation comment.

	Continuous-Integration: Jenkins CI

2015-12-15  Adam Litke  <alitke@redhat.com>

	API: Add api for getting host jobs info
	Host.getJobs provides information about host jobs.  We support filtering
	by job_type, to get all jobs of certain type, or by job_ids, to get
	information for specific jobs.

	Continuous-Integration: Jenkins CI

	jobs: Only report progress if set
	Not all Jobs have deterministic progress and some jobs will complete so
	quickly that progress updates are not practical.  If progress is not
	available do not report it.  Consumers of the Job info could choose to
	render a non-deterministic progress indication (barber pole, or spinning
	indicator) instead of a regular progress bar.

	We expect all jobs to start without any progress to report since they
	may be pending (waiting for a worker thread) or initializing (taking
	locks).  Jobs that can provide progress information will start to report
	later.  Jobs that do not support progress need not implement anything as
	the default behavior of Job is to never report progress.

	Continuous-Integration: Jenkins CI

	jobs: Add error property
	When a Job encounters an error, there should be a standardized way for
	that error to be stored so that code working with Job objects has a
	standard way to propagate the error.

	Add an 'error' property to the job class which is None by default but
	can contain an instance of utils.GeneralException or one of its
	decendants.  If error is set, the dictionary returned by the call to
	info() will contain an 'error' key.  The value of this key is a status
	code (containing a standard vdsm code and message).

	Continuous-Integration: Jenkins CI

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

	jobs: Rename the FAILED constant to "failed"
	For consistency with other status values, as describe in the
	HostJobStatus schema.

	Continuous-Integration: Jenkins CI

	jobs: Add the PENDING state
	Storage jobs will be executed in a thread pool, so job starts now in
	"pending" status by default. Job should move to "running" state when it
	is actually running.

	Continuous-Integration: Jenkins CI

2015-12-15  Adam Litke  <alitke@redhat.com>

	schema: introduce HostJobInfo type
	Define the HostJobInfo type, representing a long-running operation on a
	host. We support multiple job types (v2v, storage, etc.) and all job
	types will be reported via the same Host.getJobs API call. There will
	also be a standard interface for aborting and/or deleting them.

	This patch contain only the schema changes, to make it easy to see the
	big picture. The next patches adapt the existing (undocumented) jobs
	module to match the new schema.

	Continuous-Integration: Jenkins CI

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

	jobs: Keep same order of constants for consistency
	Reorder the constants according to job normal lifecyle, and use the same
	order in the module.

	jobs: Remove duplication in STATUS constants
	We were duplicating the names and the values of the constants. Move the
	description of the constants to the same line.

	Continuous-Integration: Jenkins CI

2015-12-14  Shahar Havivi  <shaharh@redhat.com>

	v2v: Add tests for get_ova_info
	Continuous-Integration: Jenkins CI

2015-12-14  Adam Litke  <alitke@redhat.com>

	jobs: By default jobs do not support abort
	Continuous-Integration: Jenkins CI

	VolumeMetadata: Move getInfo and getVolumeParams
	Continuous-Integration: Jenkins CI

	VolumeMetadata: move getVolumeSize and getVolumeTrueSize
	Continuous-Integration: Jenkins CI

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

	image: Make progress report interval configurable
	Previously we logged a progress report every 60 seconds during qemu-img
	operations. This seems too long, in particular when watching the logs
	during testing. Decrease the interval to 30 seconds, and make it
	configurable (irs:progress_interval).

	Here is an example, using 10 seconds progress interval:

	    2015-12-14 00:15:39,042 waiting for qemu-img operation to complete
	    2015-12-14 00:15:49,045 qemu-img operation progress: 9.11%
	    2015-12-14 00:15:59,041 qemu-img operation progress: 20.25%
	    2015-12-14 00:16:09,042 qemu-img operation progress: 29.36%
	    2015-12-14 00:16:19,043 qemu-img operation progress: 39.48%
	    2015-12-14 00:16:29,043 qemu-img operation progress: 50.62%
	    2015-12-14 00:16:39,039 qemu-img operation progress: 60.74%
	    2015-12-14 00:16:49,038 qemu-img operation progress: 69.85%
	    2015-12-14 00:16:59,042 qemu-img operation progress: 79.97%
	    2015-12-14 00:17:09,044 qemu-img operation progress: 91.11%
	    2015-12-14 00:17:17,828 qemu-img operation progress: 100.0%
	    2015-12-14 00:17:17,829 qemu-img operation has completed

	Continuous-Integration: Jenkins CI

2015-12-14  Milan Zamazal  <mzamazal@redhat.com>

	virt: vm: Update time on VM after resume
	When a VM is resumed from suspension and/or migrated, its clock
	continues from the time of suspension, i.e. it's delayed.  Even when NTP
	is running on the VM, it may refuse to correct the time after a long
	pause.  This needs to be fixed.

	There was some discussion whether libvirt should be automatically
	responsible for correcting the time inside its VM operations such as
	virDomainResume, see the bug below.  The conclusion is that whatever the
	right approach is, we currently have to handle the time correction
	outside libvirt.

	This change asks libvirt to correct the time after a VM is resumed.
	It's not guaranteed that the call succeeds, e.g. it doesn't work without
	QEMU guest agent running on the VM.  So the time may still be incorrect
	after our effort but we shouldn't make the original VM operation fail
	just because of that.

	Note that the libvirt call currently waits for about 5 seconds before
	giving up when qemu-guest-agent is not running in the guest.  That
	should be harmless in theory as it doesn't make the VM non-operable, it
	just delays finishing the requested operation.  But we want to be safe
	so we update time just on resume after pausing, as requested in the bug
	referenced below, which is the more important (possibly very long time
	shifts) and more safe case.  We should handle migrations or situations
	such as recovery after temporary suspension due to I/O errors as well,
	but we are going to do that later, after discussing the delay issues
	with libvirt developers.

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

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

	pyflakes: drop a too-clever SKIP_PYFLAKES_ERR
	Commit 6177a169fc84576 attempted to ignore a false pyflakes error with a
	too-clever shell constract. Modern pyflake no longer complain, but the
	code causes the pyflakes target to ignore real failures.

	Continuous-Integration: Jenkins CI

2015-12-13  Shahar Havivi  <shaharh@redhat.com>

	v2v: add try/except to get_external_vms
	Single domain error causes get_external_vms to fail.

	Continuous-Integration: Jenkins CI

2015-12-11  Adam Litke  <alitke@redhat.com>

	storage: add a context manager for the domainLock
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-11  Milan Zamazal  <mzamazal@redhat.com>

	virt: Add support for vgamem attribute
	SPICE/QXL video RAM sizes are currently specified in <video> domain XML
	element using the following attributes: ram, vram, vgamem.  VDSM is
	missing support for vgamem, this patch adds it.

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

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

	Show debug message before action
	Print debug message before the action, in order to see it
	when action fails

	Continuous-Integration: Jenkins CI

2015-12-11  Shahar Havivi  <shaharh@redhat.com>

	v2v: Use tarfile instead of running tar process
	using build-in package instead of execCmd.

	Continuous-Integration: Jenkins CI

2015-12-10  Allon Mureinik  <amureini@redhat.com>

	build: Align Fedora and EL qemu requirements
	Bump the Fedora requirement to 2.3.0 to better align Fedora and EL
	requirements.
	This version is provided by Fedora >= 22.

	Continuous-Integration: Jenkins CI

	spec: Align RHEL and CentOS qemu* requiments
	Since qemu-kvm-ev-2.3 is now build by the oVirt project, there's no
	reason to keep the cumbersome separation between RHEL and CentOS
	requirements.

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

2015-12-10  Sagi Shnaidman  <sshnaidm@redhat.com>

	Add vmfex-dev hook to default RPMs for install
	Add vmfex-dev hook RPM to default ones in shell_helper for
	VDSM installation

	Continuous-Integration: Jenkins CI

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

	gluster: Warn instead of failing for unsupported gluster replica modes
	A previous patch enforced the use of only supported gluster replication
	modes.  If an unsupported mode was requested, the connection attempt
	would fail.  Unfortunately, this was a bit heavy-handed and has resulted
	in breaking working environments during upgrade. To lessen the impact on
	users, instead of failing, log a warning. A related patch to
	ovirt-engine will warn users about the unsupported replication mode in
	the UI.

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

2015-12-10  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: report whether the kernel supports IPv6
	Continuous-Integration: Jenkins CI

2015-12-10  Ido Barkan  <ibarkan@redhat.com>

	move hooks.py under lib/vdsm
	This module is used from within lib/vdsm/network/ files so must not be
	located under /usr/share/vdsm.

	Continuous-Integration: Jenkins CI

2015-12-10  Amit Aviram  <aaviram@redhat.com>

	fileSD,blockSD: typo fix in createImageLinks comment.
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-10  Ido Barkan  <ibarkan@redhat.com>

	net: clean CachingNetInfo API.
	The object should have a clean API regarding its cache changes.

	Continuous-Integration: Jenkins CI

	net: rename NetInfo to CachingNetInfo
	This explains more of what it should do- caching network information.
	Additional buisness logic should be extracted out of it in order to be
	available to everyone and leave CachingNetInfo to do exactly one thing.

	Continuous-Integration: Jenkins CI

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

	virt: sampling: reduce host averaging window
	Host samples are stored into a SampleWindow of
	size 5 for mostly historical reasons, with
	no clear rationale.

	However, a clear adverse effect of this setting
	is new network devices are reported with a larger
	delay, especially since commit 6547ea8b90fa191257
	which enlarged the sample interval to 15s from
	the previous, too frequent, interval of 2s.

	To be reported, a network device must be present in
	the first and the last sample.
	For one hotplugged device, the delay can be high as
	sample_interval * window_size.

	To counter this delay, we reduce the sample window
	size to two items, which is the minimum meaningful
	value.

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

2015-12-09  Yaniv Bronhaim  <ybronhei@redhat.com>

	avoid running pep8 and pyflakes on py.in files
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-09  Daniel Erez  <derez@redhat.com>

	vm: enabling memory snapshot without disks
	Taking a memory snapshot of a VM without disks should be
	supported (or merely with Cinder/LUN disks for that matter).

	Hence, removing the early return on 'VM -> snapshot'
	in case 'newDrives' is empty.

	Instead, proper logging will be added on consecutive patches.

	Possible configurations and settings that lead to this flow:
	* Unchecking all the disks in the create snapshot dialog.
	* VM with only cinder disks.
	* VM without disks.

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

2015-12-09  Ido Barkan  <ibarkan@redhat.com>

	shell-helper: stop using service command
	In master we can safely use systemctl since we do not support systemv
	anymore. Also, the 'stop' verb supports multiple arguments so this
	allows the use of less shell commands.

	Continuous-Integration: Jenkins CI

	net: canonify netinfo.vlans.py names
	Vlans.py names made relative, pep8'ed and parameter names are now
	consistent.

	Continuous-Integration: Jenkins CI

2015-12-09  Ollie Armstrong  <ollie@fubra.com>

	config: Resolve crash when IPv6 disabled in kernel
	The configuration for creating the management bridge attempts to do some
	things with IPv6 which causes an uncaught exception when IPv6 is
	disabled at the kernel level with `ipv6.disable=1`.

	This patch checks that IPv6 is actually available before attempting to
	do anything with it.

	Bug-Url: https://bugzilla.redhat.com/1277204
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2015-12-09  Edward Haas  <edwardh@redhat.com>

	tests: modprobe validation handle failure
	On validation failure, add a skip action with
	a proper message.

	This patch also removes duplicate code.

	Continuous-Integration: Jenkins CI

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

	build: Fix the build is python3 is not available
	Since commit 390c1ee7cfb (Adding python3 run for nosetests), it is not
	possible to build on EL 7, since python3 is not available yet. Use and
	require python3 only if it was detected during configure.

	Continuous-Integration: Jenkins CI

2015-12-08  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: Move simple metadata getters and setters
	Continuous-Integration: Jenkins CI

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

	network: tests: rename config to running_config
	Let's be more explicit and call 'config' (= self.vdsm_net.config)
	'running_config' because of we call it like that everywhere.

	Continuous-Integration: Jenkins CI

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

	stomp: Send all the pending messages in handle_write
	We used to send one pending message in handle_write, and poll again,
	which would wake up the reactor immediately since the socket is still
	writable.

	When socket is writable, we like to send all the pending data until
	there is no data to send, or the socket buffers are full.

	This change should send data quicker and consume less cpu time.

	Continuous-Integration: Jenkins CI

	tests: Safer fake objects for indirection tests
	When testing that old code is redirecting calls to new code, the fake
	recording classes should inherit from object instead of the real
	classes. Otherwise, the real methods may run, which may not be safe
	during the tests (unwanted side effects), or cause incorrect results.

	Fixing the inheritance revealed missing properties in the fake manifest
	and metadata classes, that worked using the real code properties.

	Continuous-Integration: Jenkins CI

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

	Adding python3 run for nosetests
	This patch adds list of nosetests modules that makecheck will try to run
	with python3. The initial work will allow to add more verified tests to
	that list until covering all of them.

	Continuous-Integration: Jenkins CI

2015-12-08  Ido Barkan  <ibarkan@redhat.com>

	vdsm.spec typo in package description
	Continuous-Integration: Jenkins CI

	net: consolidate bridges.py names
	Functions names became relative to the module

	Continuous-Integration: Jenkins CI

	net: publicise misc._visible_devs
	It is used in many netinfo submodules

	Continuous-Integration: Jenkins CI

	net: consolidate bondings.py naming
	This is only a partial change. More cleanup needs to be done soon after
	I1f4c16b1523822a2d53d4525841ff8741af6296c will be merged.
	Parameters are now called the same. In addition function names became
	relative to the module (e.g. bondinfo->info). Naming clashes were
	made explicit in vlans.py, virt.sampling.py and netinfo.__initi__.py

	Continuous-Integration: Jenkins CI

	net: remove network residues.
	Those files were forgotten in the branch after the network package
	was moved under lib/vdsm/ in 65537e5.

	Continuous-Integration: Jenkins CI

2015-12-08  Edward Haas  <edwardh@redhat.com>

	net func tests: ip config drop on bond slaves
	Moving an interface to a bond should flush/drop
	its ip configuration.

	Existing test changed to reflect this logic.
	[test_drop_initial_bond_slaves_ip_config]

	Continuous-Integration: Jenkins CI

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

	StorageDomain: Add get_manifest
	Provide structured access to the _manifest member of StorageDomain.
	This is needed specifically when you want to use the sdCache to fetch a
	StorageDomainManifest.  In that case you would use code like this:

	    manifest = sdCache.produce(sdUUID).get_manifest()

	Continuous-Integration: Jenkins CI

2015-12-07  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding compatibility for ovirt-engine 4.0 support
	Continuous-Integration: Jenkins CI

2015-12-07  Francesco Romani  <fromani@redhat.com>

	lib: executor: log pool status on discard
	Log the pool size and content when a worker is discarded,
	to make troubleshooting and debug easier.

	Bug-Url: https://bugzilla.redhat.com/1250839
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

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

	VolumeMetadata: Move recheckIfLeaf into *Metadata class
	Continuous-Integration: Jenkins CI

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

	testlib: Rename __recording__ to __calls__
	This is more correct and more readable. Instance method calls are
	recorded in obj.__calls__, and class method calls in
	obj.__class_calls__.

	Continuous-Integration: Jenkins CI

	tests: Use @recorded to record class method calls
	Remove the special boilerplate used to record and check class methods
	calls and use the new @recorded class method capabilities.

	Continuous-Integration: Jenkins CI

	testlib: Allow recording class methods
	The @recorded decorator could not be applied to class methods, and we
	are using lot of boilerplate code to record class methods.

	This patch modify the decorator so it can be used to decorate both
	instance and class methods.

	Since class attributes are visible via the instance, we use
	__recording__ for the instance, and __class_recording__ for the class.

	Continuous-Integration: Jenkins CI

	tests: Unify RedirectionChecker method names
	Rename:
	- check -> check_method
	- check_call -> check_method_call

	Continuous-Integration: Jenkins CI

	tests: Fix redirection checker and broken tests
	RedirectionChecker was returning bool instead of raising, hiding broken
	tests. Fix it to assert about the expected values, and fix 2 broken
	tests it was hiding.

	Continuous-Integration: Jenkins CI

2015-12-07  Ido Barkan  <ibarkan@redhat.com>

	net: fix broken pyflakes due to daccf04
	Continuous-Integration: Jenkins CI

2015-12-07  Sagi Shnaidman  <sshnaidm@redhat.com>

	Include vmfex-dev-hook in vdsm install
	Force installation of vmfex-dev hook
	together with VDSM main package

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

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

	hooks: ovs: use routes package, not variable
	In cc07896088da21e06875d5f5179984ae9be8cbab package was replaced
	by function parameter by mistake.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-12-07  Francesco Romani  <fromani@redhat.com>

	sampling: HostStatsThread as periodic operation
	This patch extracts the actual host sampling code
	from HostStatsThread into a new helper class,
	which is made conform to the Task/Periodic interface.

	The new HostSampler code is moved under the periodic
	infrastructure. Finally, HostStatsThread is removed.

	Continuous-Integration: Jenkins CI

2015-12-07  Ido Barkan  <ibarkan@redhat.com>

	net: consolidate nics.py naming
	This is only a partial change. More cleanup needs to be done soon
	after I1f4c16b1523822a2d53d4525841ff8741af6296c will be merged.
	Parameters are now called the same. In addition function names
	became relative to the module (e.g. bondinfo->info). Naming clashes were
	made explicit in vlans.py, virt.sampling.py and netinfo.__initi__.py

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: consolidate _BRIDGING_OPT_PATH and BRIDGING_OPT
	Those 2 constants were the same.  only netinfo.bridges.BRIDGING_OPT
	was left. bridge_stp_state also used an almost identical value for
	the briddge stp path.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: remove unused constant
	Continuous-Integration: Jenkins CI

	net: move qos reporting to netinfo
	Up until now, qos reporting was part of caps.py, which lies in an
	upper layer then netinfo, just because the tc code could not be used
	from within netinfo. Now it is possible to bury this reporting code
	inside netinfo new package, where it belongs.
	Note, that this change creates a circular import because the
	configurators/qos.py code is used from netinfo/qos.py but is trying to
	import netinfo itself. This was solved by moving _root_qdisc to
	netinfo/qos.py. This actually makes sense, because nobody should be
	dependant on network/configurators for the sake of reporting stuff-
	especially not the main reporting code (netinfo package). The only qos
	reporting code is now left in vdsm/tc.

	Continuous-Integration: Jenkins CI

2015-12-06  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: Move isLeaf, setLeaf and dependencies
	To make testing easier, FileVolume.file_setrw was converted from static
	method to class method.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-06  Ido Barkan  <ibarkan@redhat.com>

	net: privatize IFCFG_ZERO_SUFFIXED
	Only used inside netinfo.misc

	Continuous-Integration: Jenkins CI

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

	licenses: rename Hat and RedHat to Red Hat
	Tell me if Hat is another company.

	Continuous-Integration: Jenkins CI

2015-12-06  Ido Barkan  <ibarkan@redhat.com>

	net: move network library under lib/vdsm
	Continuous-Integration: Jenkins CI

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

	sdm: Create the storage/sdm directory
	New SDM code including the verbs and supporting utility functions need
	an organized place in the storage code.  Add the 'sdm' directory now to
	prepare for the future patches.

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: Manifest objects produce VolumeMetadata objects
	StorageDomainManifest objects must be safe to use when working in SDM
	and SPM modes.  Therefore, methods of these objects may not return
	class instances which are only safe to use in SPM mode.

	As we refactor vdsm storage to prepare for SDM we have two sets of
	storage objects: the original (SPM) classes and the new (SDM) classes.

	SPM classes:
	 - BlockStorageDomain
	 - FileStorageDomain
	 - Image
	 - BlockVolume
	 - FileVolume

	SDM classes:
	 - BlockStorageDomainManifest
	 - FileStorageDomainManifest
	 - ImageManifest
	 - BlockVolumeMetadata
	 - FileVolumeMetadata

	By changing getVolumeClass to return the proper type for each
	StorageDomain and StorageDomainManifest class we can ensure that the
	proper instance will be returned by produceVolume:

	BlockStorageDomain         --produces--> BlockVolume
	BlockStorageDomainManifest --produces--> BlockVolumeMetadata
	FileStorageDomain          --produces--> FileVolume
	FileStorageDomainManifest  --produces--> FileVolumeMetadata

	So this change will not change the behavior of old code using the SPM
	classes but it will correct the behavior for new SDM code which
	instantiates StorageDomainManifest objects directly.

	Updated the sdm_indirection_tests since getVolumeClass is no longer
	redirected to the Manifest classes.

	Continuous-Integration: Jenkins CI

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

	net: move tc library under lib/vdsm
	Since most of the changed code is import statements, a few lines were
	moved to keep alphabetical order, but no logic change was made.

	Continuous-Integration: Jenkins CI

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

	getAllImages: Use manifest attributes when constructing glob pattern
	getAllImages searches a domain's images directory for directories that
	look like a UUID.  To make this function testable with domains that are
	not located at the usual storage repo location '/rhev/data-center', find
	the images directory using the StorageDomainManifest's mountpoint
	attribute.  Note that this is how getAllVolumes already works.

	Continuous-Integration: Jenkins CI

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

	net: split netinfo module
	netinfo module is now split into several submodules and converted into a
	package. A few major APIs were left in netinfo.__init__ and users of
	netinfo now need to import only the submodule they need for their use.
	The new submodules are shorter and easier to read, and depend on less
	things, without any cross dependencies between themselves.

	Continuous-Integration: Jenkins CI

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

	hooks: ovs: remove removed tests from 'does_not_use_ovs' dictionary
	A few tests were remove from networkTest.py, we have to remove them
	from 'does_not_use_ovs' dictionary in networkTestsOVS.py.

	Continuous-Integration: Jenkins CI

	hooks: ovs: run ovs _configure only if there are changes to do
	Continuous-Integration: Jenkins CI

	hooks: ovs: skip non-vNic device's XML
	If other than a vNic device is passed to OVS hook's
	before_device_create, we end with an IndexError, because of XML
	does not contain all required tags.

	If such error occurs, return unchanged XML,

	Continuous-Integration: Jenkins CI

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

	tests: add FakeSanlock.init_resource
	init_resource is called by VolumeMetadata.newVolumeLease.  When unit
	testing we use a mocked sanlock which does not yet have this method.
	Add a stub function that does nothing to allow tests to work.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-03  Allon Mureinik  <amureini@redhat.com>

	modpobe: Remove EL6 path
	Removed the reference to /sbin/modprobe (which is used in EL6), as we no
	longer support this platform.

	Continuous-Integration: Jenkins CI

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

	VolumeMetadata: Move the getParent API
	Move getParent and related functions into VolumeMetadata.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	VolumeMetadata: metadata write utils
	Move the utility functions needed to change volume metadata into the
	*Metadata classes.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-12-03  Allon Mureinik  <amureini@redhat.com>

	schema: Removed comment about EL6
	Removed a comment about a verb not being supported in EL6, as VDSM
	no longer supports EL6 at all, making this comment redundant.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

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

	debuging: Use __repr__ instead of __str__
	Recently we are implementing __str__ for objects, for improved logging:

	    logging.debug("Discarding task %s", self.task)

	We are using the style used by Python:

	    >>> threading.RLock()
	    <_RLock owner=None count=0>

	Implementing __str__ is fine for logging, but when using the Python
	interactive shell (e.g, manhole), the output is not very useful:

	    >>> class Foo(object):
	    ...     def __str__(self):
	    ...             return "<Foo bar=2 at 0x%x>" % id(self)
	    ...
	    >>> f = Foo()
	    >>> f
	    <__main__.Foo object at 0x7f5f85441c90>

	For debugging, we should implement __repr__ instead of __str__.
	According to the language reference[1], when using str(), if object does
	not implement __str__, its __repr__ is used.

	This patch replaces most relevant __str__ methods with __repr__. Some
	methods needs more work and left for later.

	One instance implementing __repr__ that return the same output as
	object.__repr__ was removed.

	[1] https://docs.python.org/2/reference/datamodel.html#object.__repr__

	guestagent: Add note about unneeded encoding
	In Python 2, the output of json.dumps() is always a str object, and is
	using ascii charset by default. Encoding the output will first decode it
	to unicode using the system default encoding (ascii), and then encode it
	back to utf8, which will create the same string.

	    >>> json.dumps({u"\u05d0": u"\u05d1"})
	    '{"\\u05d0": "\\u05d1"}'

	    >>> json.dumps({u"\u05d0": u"\u05d1"}).encode('utf8')
	    '{"\\u05d0": "\\u05d1"}'

	However, on Python 3 this encoding is needed, since json.dumps returns
	str object, and sockets requires bytes object. Add note about using a
	wrapper to hide the difference.

	Continuous-Integration: Jenkins CI

	guestagent: Send complete messages
	When forwarding message to the guest agent, we used socket.send(), which
	may write only part of the message and return the number bytes written.

	This may lead to corrupted messages, confusing the receiver and failing
	both the current request and the next one, which will be appended to the
	partial request on the receiver side.

	Now we use socket.sendall(), returning when all bytes were sent.

	Note that this is not a complete solution, since we are working with
	non-blocking socket, and it may fail with EAGAIN if the socket buffers
	are full. In this case we should poll the socket until it is writable
	and send the rest of the data. This is not handled in the current patch.

	Continuous-Integration: Jenkins CI

2015-12-03  Marcin Mirecki  <mmirecki@redhat.com>

	vm: move device attached check to device itself
	Moving the check for being attached to the device in question.

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

	vm: add test for nic unplug wait
	Bug-Url: https://bugzilla.redhat.com/1134256
	Continuous-Integration: Jenkins CI

	vm: check operation result for vm nic hotunplug
	After detaching a device we need to verify that this device
	has actually been detached.

	This mechanism was already implemented for disks. This
	patch generalizes the disk waiting mechanism so that it
	can also be applied to nics.

	This patch is similar to:
	https://gerrit.ovirt.org/#/c/45138
	https://bugzilla.redhat.com/1044466

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

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

	daemon: keep running without affinity.
	The cpu affinity is one (important) performance setting,
	but Vdsm should keep running even if it fails to set it.

	To run without affinity doesn't harm the functionality.

	Bug-Url: https://bugzilla.redhat.com/1279431
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	daemon: reformat __set_cpu_affinity
	Reformat the code to use the 'early return' idiom.
	No intended changes in functionality.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	lib: daemon: autodetect online cpus for affinity
	In commit a1d4e23 we enabled by default the cpu affinity
	for VDSM, after we had confirmation this delivered important
	performance benefits.

	An hardcoded default setting for any cpu core is a too naive
	approach, as it could break automated setups if the said CPU
	is offline. And Vdsm cannot guess that.

	To solve this, we add a function to learn from the kernel which
	cpus are online, using a file from /sys pseudo-filesystem.
	This is a simplified version of the same approach libvirt uses.
	We don't leverage libvirt because it is too early in the
	VDSM startup.

	The layout of /sys, like /proc, is part of the kernel ABI,
	so there are only small breakage concerns [1][2].
	Furthermore, we already rely on /sys for other VDSM flows,
	so this patch doesn't add fragility

	We add a special value to the cpu_affinity tunable, to let
	Vdsm select automatically best cpu. We choose the second
	online core in the system, handling the case on which
	only one core is active.

	The admin can still select explicitely the cores on which
	Vdsm should pin to, or still can disable the pinning entirely.

	[1] https://www.kernel.org/doc/Documentation/ABI/README
	[2] https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-system-cpu

	Bug-Url: https://bugzilla.redhat.com/1286462
	Bug-Url: https://bugzilla.redhat.com/1279431
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2015-12-02  Marcin Mirecki  <mmirecki@redhat.com>

	vm: unit test for vm._waitForDriveRemoval
	Added unit tests for vm._waitForDriveRemoval, in
	preparation to make this generic for all devices.

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

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

	automation: Eliminate unneeded variables
	There is no point in variables which are used once and are not expected
	to change (e.g. tests). Add EXPORT_DIR for the exported-artifacts
	directory, and eliminate the other variables.

	Continuous-Integration: Jenkins CI

	hsm: Prevent stop monitoring of a pool domain
	When hosted engine agent is entering local maintenance, it must stop
	monitoring the hosted engine domain. This is racy because the domain may
	be in the middle of an import operation.

	To avoid this race, stopMonitoringDomain will fail now with new
	StorageDomainIsMemberOfPool exception, so hosted engine agent can stop
	monitoring safely.

	This failure is also important even without this race; if a domain is
	owned by the pool, nobody should be able to stop monitoring it. The only
	way to stop monitoring a pool domain is disconnecting from the pool.

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

	sp: Allow attaching of monitored domain
	When attaching a storage domain to the pool, the storage domain may be
	an external domain being monitored via startMonitoringDomain, such as the
	hosted engine storage domain.

	In this case, the monitor may have already acquired the host id, or will
	acquire it during the attach operation. We cannot tell since monitors
	are using asynchronous acquire.

	We must not release the host id when the domain is attached, since this
	will cause sanlock to kill any process holding a resource on this
	storage domain, such as the qemu process running the hosted engine vm.

	We had a magical, sneaky, and unclear code for attaching a monitored
	domain when starting a monitor twice. This code is now simplified and
	documented, and logging is improved. This will be replaced with explicit
	attach later.

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

	monitor: Do not release host id during shutdown
	When shutting down, all domain monitors are stopped and release acquired
	host ids. This will cause sanlock to terminate processes holding a
	resource on these domains, such as the qemu process for the hosted
	engine vm.

	This behavior was fine when the only resource held is the spm resource,
	but now we must support the hosted engine vm, that must not be killed
	when vdsm terminates. In the future we may like to use sanlock resources
	for other vms as well.

	Now we detect when a monitor is stopped during a vdsm shutdown, and do
	not release the host id.

	This change will effect users trying upgrade vdsm without putting a host
	to maintenance before the upgrade. This was never supported but users
	could get away with this by stopping vdsm. Now sanlock will refuse to
	stop after vdsm is stopped, and killing sanlock will cause the watchdog
	to reboot the machine.

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

	guestagent: Add missing log on disconnect
	Add debug log when detecting a disconnect after empty read. This should
	make the connection state of the agent more clear in the logs.

	Continuous-Integration: Jenkins CI

	guestagent: Rename connect() to start()
	GuestAgent was started by invoking connect() and stopped by invoking
	stop().  We can rename stop() to disconnect(), but it seems that it is
	more clear to rename connect() to start(). This conforms with other
	subsystems implementing this interface.

	Continuous-Integration: Jenkins CI

	guestagent: Use %r for logging message
	A message is a json object with a newline - logging it will create an
	unwanted empty line in the log. Use %r to log the message contents with
	escaped newline (\n).

	Continuous-Integration: Jenkins CI

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

	Moving panic function to separate module
	Taking panic out of utils allows to mock panic in testrunner without importing
	utils each nosetest run.

	Continuous-Integration: Jenkins CI

	Moving modprobe operations to separate module
	that way we won't need to import utils each testValidation import

	Continuous-Integration: Jenkins CI

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

	tests: proper cleanup in periodic tests
	Make sure to wait for all the threads in periodicTests.tearDown, to
	avoid concurrent operations and unreliable test results.

	Continuous-Integration: Jenkins CI

	mkimage: check image attributes after creation
	To ensure lack of regression, we check the image
	attributes after the creation, and we log warnings
	if something is different from the expectations

	Related-To: https://bugzilla.redhat.com/1278414
	Continuous-Integration: Jenkins CI

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

	spec: Require ioprocess containing important fixes
	- cpu affinity to run on any host by default
	- Add debug logging
	- Fix severe memory and cpu high usage
	- Fix string formatting for 32bit build
	and more..

	Continuous-Integration: Jenkins CI

	spec: require ioprocess>=0.15.0-4 only for rhel
	Continuous-Integration: Jenkins CI

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

	daemon: revert cpu-affinity enabling by default
	In commit a1d4e23 we enabled by default the cpu affinity
	for VDSM, after we had confirmation this delivered important
	performance benefits.

	Unfortunately, the default setting, was too naive
	for large, complex setup, like the ones we first seen on PPC64
	hosts. VDSM tries to pin itself to cpu #1, but if this cpu
	is offline, it fails to start.

	This was indeed expected behaviour, and the fix is trivial (just
	reconfigure /etc/vdsm/vdsm.conf), but it is very unpractical in large
	settings, where the admin has to manually fix many configuration
	files. This obviously breaks automated flow.

	Unfortunately, is too late in the release schedule to add smarter
	CPU selection logic (e.g. patch 49402), so to avoid VDSM start
	failures, we revert the default, to fall back to a safe state.

	Related-To: https://gerrit.ovirt.org/#/c/49402
	Related-To: https://bugzilla.redhat.com/1279431
	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1286462
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-11-30  Tal Nisan  <tnisan@redhat.com>

	spec: Require newer multipath version
	There is a race between udev and multiapth which is solved in newer
	multipath versions, this patch requires those versions on RHEL 7.2 and
	Fedora 22 and 23

	We don't require the package on CentOS, since it is not available yet.

	Bug-Url: https://bugzilla.redhat.com/1265204
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-11-30  Milan Zamazal  <mzamazal@redhat.com>

	virt: Make BIOS messages available on vmconsole
	ovirt-vmconsole allows access to VMs via serial console.  However, this
	currently works only for processes running on the VM operating system,
	such as getty.  It would be useful if vmconsole could interact with the
	user before the OS starts, i.e. if it displayed BIOS messages, boot
	menu, GRUB menu etc. and the user could select the menu items or type
	GRUB commands.

	This change is the first step towards the goal.  It enables BIOS serial
	console interaction in a VM's XML domain description when a serial
	console is available.

	Note that a console of type `serial' (not just `virtio') must be present
	in order to make this feature work.  When oVirt Engine is used to manage
	VMs' serial console access, recent version of oVirt Engine (currently at
	least 3.6 snapshot) is required to receive `serial' console type in
	calls from Engine.

	Continuous-Integration: Jenkins CI

2015-11-30  Petr Balogh  <pbalogh@redhat.com>

	code coverage: change approach how to enable it
	Continuous-Integration: Jenkins CI

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

	daemon: reduce severity of message
	When VDSM detects just one CPU in the system, it
	autodisables affinity and logs a message.
	This is expected condition, so it should not be
	a warning, rather a debug message.

	Continuous-Integration: Jenkins CI

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

	guestagent: Log guest agent life cycle events
	GuestAgent is was not logging anything when starting or stopping, making
	it harder to debug. To understand if a guest agent was stopped, one had
	to look for ChanelListener debug message. Important events such as
	starting and stopping a subsystem must be logged.

	Continuous-Integration: Jenkins CI

2015-11-30  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: Metadata read utils
	Transfer the underlying utility functions needed to read volume metadata
	into the *Metadata classes.

	Continuous-Integration: Jenkins CI

2015-11-30  Ido Barkan  <ibarkan@redhat.com>

	net: removing the bonding modes constant duplication.
	Now, after everybody can use netinfo, this duplicated constant can be
	merged.

	Continuous-Integration: Jenkins CI

	net: Flatten KernelConfig logic
	KernelConfig, which can now use the netinfo module directly can let
	go of most of its logic and make it as module level.
	This makes the bypass @staticmethods of NetInfo redundant.

	After the netinfo API is refactored, we should decide if we need the
	dependency of KernelConfig in a NetInfo object. The only real
	dependency is on NetInfo.getNicsVlanAndBondingForNetwork and on
	NetInfo.Bondings.

	Continuous-Integration: Jenkins CI

	net: break netinfo-netconfpersistence dependency
	netinfo module currently depends on netconfpersistence module
	because the use of RunningConfig during for the accurate reporting
	of dhcp from VDSM. This prevents code that lies in
	netconfpersistence to use netinfo because a circular dependency is
	created. Because of that, KernelConfig has to abuse netinfo.NetInfo
	object in order to avoid importing its parent module (netinfo).
	This patch separates KernelConfig from netconfpersistence, thus
	breakiing the circle and allows a simplification of both KernelConfig
	and netinfo.NetInfo in the following patches.

	Continuous-Integration: Jenkins CI

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

	shell helper: typo
	Continuous-Integration: Jenkins CI

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

	build: contrib script to build for rhev with the required flags
	Continuous-Integration: Jenkins CI

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

	build: Cleanup conditionals in the build system
	Previously builders had to edit the spec manually and set globals such
	as koji_build=1. Now configuring generate ready-to-build spec.

	Example - building for Fedora:

	    ./autogen.sh --system --enable-koji-build --enable-hooks
	    make srpm
	    fedpkg import <vdsm-x.y.src.rpm>
	    fedpkg build

	For RHEV build we introduce contrib script as part of
	https://gerrit.ovirt.org/49001

	Continuous-Integration: Jenkins CI

	build: Make with_hooks condition more clear
	Use simple if instead of cryptic parameter expansion syntax.

	Continuous-Integration: Jenkins CI

	build: Fix --disable-gluster-mgmt
	The automake condition was correct only when the feature is disabled by
	default. Change the condition so it pass value to the spec only if
	gluster is disabled.

	Continuous-Integration: Jenkins CI

2015-11-29  Dan Kenigsberg  <danken@redhat.com>

	ifcfg: remove files properly on the node
	Since change-id I02ae28c345 we are always persisting ifcfg files on the
	node. This means that we should unpersist them on removal.

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

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

	net: Remove reporting of bond custom options from RunningConfig
	This reporting is ignored in engine, is not symmetric to network
	custom properties as VDSM does not report such a field on a network
	and also deepens the reliance of netinfo on RunningConfig.
	Since we want to remove this dependency soon, this is one step in
	this direction.

	Continuous-Integration: Jenkins CI

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

	readme: Update mailing lists and git urls
	We are using now ovirt lists, and the code is on gerrit.ovirt.org.

	Continuous-Integration: Jenkins CI

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

	readme: Do not mention XML-RPC
	These details do not belong to the readme.

	Continuous-Integration: Jenkins CI

	readme: Use Vdsm instead of VDSM
	VDSM started as virtual desktop server manager, but it is a different
	beast now, and we like to call it Vdsm.

	Continuous-Integration: Jenkins CI

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

	daemon: avoid contradicting logs about affinity
	Vdsm can autodisable the affinity if it detects just one cpu.
	In this case the logs read like:

	MainThread::INFO::2015-11-26
	17:31:35,932::vdsm::229::vds::(__set_cpu_affinity) VDSM will run with
	cpu affinity: frozenset([1])
	MainThread::DEBUG::2015-11-26
	17:31:35,933::vdsm::233::vds::(__set_cpu_affinity) Only one cpu
	detected: affinity disabled

	which feels like VDSM is contradicting itslef.
	Better to log the affinity used only if we actually use it.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>
	Continuous-Integration: Jenkins CI

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

	hooks: ovs: fix getVdsCaps and getVdsStats
	Testing with Engine revealed a few stats and caps hooks problems.

	Continuous-Integration: Jenkins CI

	hooks: ovs: use six.iteritems and six.itervalues
	Continuous-Integration: Jenkins CI

	hooks: ovs: add script name to log
	Continuous-Integration: Jenkins CI

2015-11-27  Ido Barkan  <ibarkan@redhat.com>

	net: remove delNetwork old API
	This API is not supported anymore in 4.x clusters hence should be
	removed.

	Continuous-Integration: Jenkins CI

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

	automation: Generate coverage report in one step
	Instead of generating the report in the test directory and moving it to
	the exported-artifacts directory, generate it when it should be.

	Continuous-Integration: Jenkins CI

	automation: Improve whitespace
	Empty line between commands make the script easier to read.

	Continuous-Integration: Jenkins CI

	automation: Limit coverage report to vdsm code
	Current coverage report includes the tests, test helpers, 3rd party
	libraries and maybe more.

	This patch limit the coverage report to files under vdsm and lib
	directories.

	This change also fixes bogus results seen in vdsm library modules. I
	don't know why the results were wrong, but limiting the output seems to
	eliminate them.

	Continuous-Integration: Jenkins CI

2015-11-27  Ido Barkan  <ibarkan@redhat.com>

	net: remove editNetwork old API
	This API is not supported anymore in 4.x clusters hence should be
	removed. delNetwork will be removed in a following patch.

	Continuous-Integration: Jenkins CI

2015-11-26  Milan Zamazal  <mzamazal@redhat.com>

	config: Trivial typo fix in option description
	Continuous-Integration: Jenkins CI

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

	mkimage: setup right permissions before mkisofs
	We don't want to depend on the 'childUmask' argument of cpopen anymore,
	so that argument could be dropped in future release, to make the
	interface of cpopen identical to the one of the standard subprocess
	module.

	The 'childUmask' argument was added to make sure that the iso image we
	create has the right permissions right from the file creation, to avoid
	possible information leak.

	We can reach the same goal by preparing one hollow file with the right
	attributes on the same path mkisofs will use. mkisofs will truncate the
	(already empty) content of the file we prepared, and keep the
	other attributes.

	There are no planned change in functionality.

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

	vmstats: reformat to make the code nicer
	Silly reformat-only patch to make the code look nicer.

	Format-Only: yes
	Continuous-Integration: Jenkins CI

2015-11-26  Ido Barkan  <ibarkan@redhat.com>

	net: remove addNetwork old API
	This API is not supported anymore in 4.x clusters hence should be
	removed. delNetwork and editNetwork will bw removed in the following
	patches.

	Continuous-Integration: Jenkins CI

2015-11-26  Ala Hino  <ahino@redhat.com>

	gluster: Fix unit test docstring
	Fix unit test docstring to reflect what the test checks.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

2015-11-26  Edward Haas  <edwardh@redhat.com>

	tests: Adding coverage check for unit tests
	It is helpfull to examine the test coverage when modifying
	source code, assuring all scenarios have been checked.
	The coverage is currently performed with the unit tests run.
	Results are shown at the end of the run.

	Continuous-Integration: Jenkins CI

2015-11-26  Milan Zamazal  <mzamazal@redhat.com>

	gitignore: Missing autogenerated files added
	Continuous-Integration: Jenkins CI

2015-11-26  Ala Hino  <ahino@redhat.com>

	gluster: Remove duplicate servers
	Gluster volinfo could return duplicate servers. For example, if
	the volume is a distributed replica volume (2 X 3) with 6 bricks,
	the bricks could be spread over 4 volumes.
	This patch removes duplicate servers if appear in volinfo.

	Continuous-Integration: Jenkins CI

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

	net: ovs: remove initial nic ip, dont touch unchanged networks
	According to ifcfg configurator behavior, now we remove inital IP
	configuration of nics attached to VDSM network.

	Also there is an improvement in IP changes handling: If IP configuration
	was not changed, don't recreate it.

	Continuous-Integration: Jenkins CI

	hooks: ovs: pass ip configuration as a namedtuple
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-11-26  Fred Rolland  <frolland@redhat.com>

	spec: Require newer qemu version for el7
	Prior to QEMU 2.3.0-13, it cannot yield while dumping a dirty map, which
	may cause live merge to hang when merging large snapshots. QEMU 2.3.0-13
	adds yield points, which prevents the aforementioned hanging.

	We don't require the package on CentOS, since it is not available yet.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1271173
	Continuous-Integration: Jenkins CI

2015-11-26  Yeela Kaplan  <ykaplan@redhat.com>

	init: configure multipath on upgrade from ovirt-3.3 and 3.4
	multipath configurator was added to vdsm-tool in ovirt-3.6.
	In case we upgrade from ovirt-3.3 and ovirt-3.4 we now run configure
	of module multipath in init script (in addition to running it
	for upgrade from ovirt-3.5).

	Continuous-Integration: Jenkins CI

	hooks: hostusb: make sudoers rule more specific
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1234304
	Continuous-Integration: Jenkins CI

2015-11-25  Allon Mureinik  <amureini@redhat.com>

	hsm.py: Deprecate getVGList
	oVirt Engine commit 4312bfd removed all the usages of getVGList from the
	engine's code.

	Since this verb is useless to us (the same functionality is covered by
	getVGInfo and getDeviceList), and since it's no longer called, this
	patch flags it as @deprecated, with the intent to remove it completely
	in the future.

	Continuous-Integration: Jenkins CI

2015-11-25  Daniel Erez  <derez@redhat.com>

	image: copy - set VM metadata images format to RAW
	Since commit 0b61c4851a528fd6354d9ab77a68085c41f35dc9
	copy of internal raw volumes is done using 'qemu-img convert'
	instead of invoking 'dd'.

	Consequently, exporting VM metadata images (produce during
	live snapshot) fails on qemu-img convert - since the images
	'impersonate' to qcow2 (the format in .meta file is cow,
	whereas the real format is raw).

	Hence, we try to identify the VM metadata image on
	'_interImagesCopy' and set its format to RAW
	so qemuimg.convert won't fail (QImgError: "Image is
	 not in qcow2 format").

	This approach is a workaround since it's done merely to
	conceal the aforementioned miscorrelation, however,
	it seems to be simpler than fixing the root cause
	(see https://gerrit.ovirt.org/#/c/48768/).

	Note: this fix is merely for passing the correct argument
	to qemu-img on convert (raw format). I.e. the .meta file of
	the target files will still contain the wrong format (cow).

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

2015-11-24  Adam Litke  <alitke@redhat.com>

	Live Merge: Notice imageSyncVolumeChain errors
	Currently we ignore errors from imageSyncVolumeChain when resolving a
	completed live merge operation.  This could cause us to signal the
	completion of a live merge operation to ovirt-engine without first
	updating the storage metadata.  Instead, we should detect the error and
	raise an exception so that the LiveMergeCleanupThread working on this
	job will retry the operation later.

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

2015-11-24  Edward Haas  <edwardh@redhat.com>

	Network API: Remove "force" option
	The "force" option has an akward semantic that was never used
	by the Engine. It is therefore removed from the API.

	Continuous-Integration: Jenkins CI

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

	tests: v2v: add test for commit f8127d8
	This patch adds a test to exercise the fix introduced in f8127d8
	"Skip vm if XMLDesc() fails", making sure that external VMs continue
	to be extracted even after a specific VM fails.

	Continuous-Integration: Jenkins CI

	tests: v2v: let LibvirtMock use VMs, not specs
	Simplify the faking in v2vtests in two ways:
	- make the vm specs a class attribute, not
	  a local variable. This way it is way less clumsy
	  to check that a VM matches the spec (e.g. mac from UUID).
	  Furthermore, we should not recreate the same data on
	  each function call
	- make the fake LibvirtMock deal with VM, not create the VM
	  internally using the given specs. This is more flexible.

	The improvements on this patch are small, but this patch
	mostly paves the road for the next one, which want to add
	a new test.

	Continuous-Integration: Jenkins CI

	tests: v2v: extract _assertVmDisksMatchSpec helper
	Future tests in the patch series want to test
	independently that information about VM
	and specifically about VM disks is correct.

	So this patch splits the disk check from the
	VM check, to make this possible.

	Continuous-Integration: Jenkins CI

	tests: v2v: simplify setup of test
	Simplify the setup of fakes needed for one test.
	Makes the code a tiny bit nicer, and helps for future
	patches in the series.

	Refactor-Only: yes
	Continuous-Integration: Jenkins CI

	tests: v2v: use namedtuple and not plain tuples
	Make access using names (foo.bar) is nicer than
	using indexes (foo[0]).

	Tiny patch, tiny improvement but helps for future
	patches in the series.

	Continuous-Integration: Jenkins CI

2015-11-23  Yeela Kaplan  <ykaplan@redhat.com>

	spec: fix python-libvirt requirement
	Requiring python-libvirt-1.2.17.el7 which
	is not available breaks master and makes
	it impossible to install vdsm.
	Fixing: https://gerrit.ovirt.org/#/c/44834/

	Continuous-Integration: Jenkins CI

2015-11-23  Ido Barkan  <ibarkan@redhat.com>

	net: remove mac address from ifcfg
	In el7, the HWADDR field in ifcfg files is no longer needed by udev
	and is considered a bad practice. Hence, VDSM shouldn't handle it
	anymore.

	Continuous-Integration: Jenkins CI

2015-11-23  Fred Rolland  <frolland@redhat.com>

	spec: Require newer lvm2 version for el7
	lvm 117 introduced a regression, causing second pvcreate call to
	fail during create vg flow, because of stale /etc/lvm/cache/.cache
	file.

	lvm2 2.02.130 fixed this issue. We require now this version.

	We don't require the package on CentOS, since it is not available yet.

	The issue is probably effecting also Fedora 23. We will provide a
	separate patch for Fedora if needed.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1272035
	Continuous-Integration: Jenkins CI

2015-11-23  Shahar Havivi  <shaharh@redhat.com>

	v2v: add fake virt-v2v process for testing without virt-v2v
	Continuous-Integration: Jenkins CI

	v2v: allow waiting for import thread completion
	The wait is needed for v2v tests.

	Continuous-Integration: Jenkins CI

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

	spec: Require newer libvirt version for el7
	Libvirt 1.2.17 introduced a regression where physical volume size is
	always zero. This breaks our extension logic, using:

	    physical - alloc < drive.watermarkLimit

	As a result, we try to extend the drive on each check to next size after
	0 (1GiB), spamming the logs with lvm warnings. Finally the vm is paused,
	since we never extend the disk.

	Libvirt 1.2.17-5 fixed this issue. We require now this version.

	We don't require the package yet on CentOS, since it is not available
	yet.

	The issue is probably effecting also Fedora 23. We will provide a
	separate patch for Fedora if needed.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1251008
	Continuous-Integration: Jenkins CI

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

	tests: Disable flaky test
	testGetBondingOptions fails randomly in the CI for more than a week.
	Mark it as broken tests until the test owner find time to fix it.

	Continuous-Integration: Jenkins CI

2015-11-22  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: Move instance validation
	Continuous-Integration: Jenkins CI

	VolumeMetadata: Move volumePath and validation
	Continuous-Integration: Jenkins CI

	VolumeMetadata: Move imagePath and validation
	Continuous-Integration: Jenkins CI

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

	logUtils: Process SimpleLogAdapter's context once
	We used to format SimpleLogAdapter's contextual information on each
	logging call. This generates lot of garbage adding unneeded cost for
	logging calls. Format the context once when creating an instance.

	There is no change in the log output.

	Continuous-Integration: Jenkins CI

2015-11-22  Arik Hadas  <ahadas@redhat.com>

	virt: hibernation - use r+ to open vm conf file
	Complementary part of Ic6799e07898155fd4a630bfaf4151ea9ccdcee49
	for vm hibernation.

	Continuous-Integration: Jenkins CI

2015-11-22  Daniel Erez  <derez@redhat.com>

	vm: snapshot - use r+ to open vm conf file
	Since commit 0b61c4851a528fd6354d9ab77a68085c41f35dc9
	copy of internal raw volumes is done using 'qemu-img convert'
	instead of invoking 'dd'. Hence, we should avoid changing
	the file size by opening it in a non-truncate mode to avoid
	qemu-img from hanging during the convert operation.

	The issue reproduces for files size of multiplicity of 512.
	E.g.
	Doesn't work:
	$ dd if=/dev/zero of=/tmp/test.raw bs=5474 count=1
	$ ./qemu-img convert -p -t none -T none -O raw /tmp/test.raw
	/tmp/dest.raw

	Works:
	$ dd if=/dev/zero of=/tmp/test.raw bs=5120 count=1
	$ ./qemu-img convert -p -t none -T none -O raw /tmp/test.raw
	/tmp/dest.raw

	Bug-Url: https://bugzilla.redhat.com/1282239
	Relates-To: https://bugzilla.redhat.com/1229394
	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

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

	gluster: Unbreak gluster management
	In commit 61d7427fc1 (build: Introduce --enable-gluster-mgmt option) we
	renamed makePublic, but only for the cli module used by vdsm, breaking
	gluster management.

	Since there are no tests for this code, the breakage was hidden. The
	only clue was a skipped test in gluster_cli_tests:

	    test_parseStorageDevices SKIP: cannot import name makePublic

	This patch completes the partial rename.

	Continuous-Integration: Jenkins CI

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

	daemon: ignore cpu affinity on single processor
	If VDSM runs on single processor hosts (E.g. VMs)
	there is no point in enabling cpu affinity, since
	we already reached the goal of running on just one CPU.

	Bug-Url: https://bugzilla.redhat.com/1279431
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

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

	stomp: Drain pending bytes from ssl socket
	Since commit b2da4effe01f (asyncore: use default handing of read event),
	we are not handling pending bytes in ssl socket internal buffer.

	Stomp reactor was reading only 4096 bytes from the ssl socket buffer,
	and polling again the socket file descriptor.  Until the next packet
	arrived, we did not try to read the pending bytes from the ssl socket
	buffer.

	This broke migration when using jsonrpc. The destination host returned
	a big response, and the source host got stuck after the reading the
	first 4096 bytes, until the migration timed out.

	Now all available bytes in are read and processed in handle_read.

	Bug-Url: https://bugzilla.redhat.com/1274670
	Tested-By: pkliczewski <piotr.kliczewski@gmail.com>
	Tested-By: Milan Zamazal <mzamazal@redhat.com>
	Continuous-Integration: Jenkins CI

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

	periodic: add __str__ methods
	We want to make as easy as possible to debug
	thread leaks from executor, so we make the periodic
	framework support provide meaningful str() representation,
	to be used by Executor.

	Bug-Url: https://bugzilla.redhat.com/1250839
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2015-11-20  Yeela Kaplan  <ykaplan@redhat.com>

	misc: remove rotateFiles
	Since commit 8bc23a66b409 (Make misc.py conform pep8 and other minor
	cleanup) in March 2012, rotateFiles does *nothing*. The tests
	are also broken; they pass while the function does nothing.

	Continuous-Integration: Jenkins CI

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

	build: Introduce --enable-gluster-mgmt option
	Previously building gluster package and building for RHEV were coupled
	together in an ugly way. We disabled gluster package when building for
	RHEV, and enabled some gluster apis only when building for RHEV.

	We want to get rid of these downstream related options, but we also want
	to allow downstream maintainers easy way to configure the package as
	needed.

	This patch decouples rhev_build and with_gluster options; To build the
	vdsm-gluster package, use:

	    ./configure --enable-gluster-mgmt

	To build without vdsm-gluster package, use:

	    ./configure --disable-gluster-mgmt

	When gluster-mgmt is enabled, supervdsm exposes all gluster apis marked
	with @gluster_mgmt_api decorator. Most of these apis are used when vdsm
	is used to control gluster server.

	When gluster-mgmt is disabled, supervdsm exposes only the gluster vdsm
	apis marked as with @gluster_api. These apis are required for consuming
	gluster storage.

	Continuous-Integration: Jenkins CI

2015-11-19  Shmuel Melamud  <smelamud@redhat.com>

	Remove vdsm/vdsm-logrotate.conf from .gitignore
	vdsm/vdsm-logrotate.conf is no more generated, so removing it from
	.gitignore.

	Continuous-Integration: Jenkins CI

2015-11-19  Ala Hino  <ahino@redhat.com>

	gluster: Fixing connection when server is not one of the bricks
	When processing gluster connection info, volfileserver is set as provided by
	the admin and, using volume info, backup-volfile-servers option is set. However,
	there are use cases where gluster server and ovirt are configured differently
	regarding ip addresses and domain names. If volfileserver appears in volume
	info, it is removed in order to avoid mounting duplicate servers, otherwise,
	mounting duplicate servers is possible.

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

2015-11-19  Adam Litke  <alitke@redhat.com>

	storagetestlib: use a real metadata file for FileSD manifests
	When building a fake FileStorageDomainManifest place the metadata in
	the right place within the domain's file hierarchy (as opposed to
	keeping it in memory).  This is needed since code in VolumeMetadata
	sometimes instantiates its controlling manifest and the metadata must be
	present in the proper place when testing this code.

	Continuous-Integration: Jenkins CI

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

	hooks: ovs: better rollback
	Until now, OVS hook was not able to rollback after failed
	setup of non-OVS networks.

	Now it uses after_network_setup and after_network_setup_fail
	hook points to handle general rollback for all failures
	(both OVS and non-OVS).

	Before OVS setup we save initial OVS configuration to a temporary
	file via pickle. If an exception occurs during setupNetworks,
	API.py does the standard rollback. Then after_network_setup_fail
	is executed and runs setupNetworks with a special option _inOVSRollback
	which triggers OVS-only rollback. OVS-only rollback removes all
	OVS networks and recreates them according to configuration saved in
	the temprorary file. When everything is done, temporary file is
	removed.

	Continuous-Integration: Jenkins CI

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

	Using six.moves configparser to support ConfigParser in python3
	Continuous-Integration: Jenkins CI

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

	hooks: ovs: remove unused parameter
	Continuous-Integration: Jenkins CI

2015-11-18  Yeela Kaplan  <ykaplan@redhat.com>

	spec: remove leftover directories on host
	Remove vdsm data directory and vdsm python lib
	leftover directories on vdsm removeal.

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

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

	tests: bootstrap sparsify tests
	Bootstrap the virtsparsify tests. We start testing
	the newly-refactored usage of cmdutils.Error.

	Continuous-Integration: Jenkins CI

	lib: cmdutils: add command to cmdutils.Error
	We add the command we attempted to run
	in cmdutils.Error, to make the troubleshooting
	a lot easier.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

	lib: sparsify: use common Error class
	the virtsparsify module used a slightly variant
	of the now-common Error class.
	This patch makes it conform to the common API,
	and use the common implementation, reducing duplication.

	Continuous-Integration: Jenkins CI

	lib: utils: consolidate Error class in one place
	Few utilities code have a duplicate Error exception, that
	they raise when one command run through utils.execCmd fails.

	Since this Error is closely related to utils.execCmd, we
	remove the duplicate definition of Error and we move it
	in one place.

	Continuous-Integration: Jenkins CI

2015-11-18  Yeela Kaplan  <ykaplan@redhat.com>

	hooks: remove directlun hook
	directlun hook can be deprecated as the feature
	is supported natively since ovirt-3.1.
	http://www.ovirt.org/Features/Direct_Lun

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

2015-11-18  Adam Litke  <alitke@redhat.com>

	storagetestlib: create images directory in the right place
	When building the images path, we do not need to append the sdUUID to
	the domaindir as it's already included in the domaindir.

	Continuous-Integration: Jenkins CI

	tests: Set common StorageDomainManifest fields automatically
	When creating storage domains it is common to request the same set of
	fields to be included in the initial metadata.  Do this automatically
	for tests which do not supply their own starting metadata.

	Continuous-Integration: Nir Soffer <nsoffer@redhat.com>

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

	vm: more robust support of event strings
	Make vm.eventToString() more robust in presence
	of unexpected data, like libvirt events we don't support yet.

	Related-To: https://bugzilla.redhat.com/1273891
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

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

	hsm: Reformat device info dict
	Reformat device info dict in getDeviceList using one item per line and
	sorted. This make it easier to search and modify the code and creates
	nicer diffs.

	Continuous-Integration: Jenkins CI

	iscsi: Fix credentials initialization when not using CHAP
	There was a mismatch between the way we initialize ChapCredentials when
	receiving empty credentials from engine, and when reading empty
	credentials from active session.

	This was broken when we started to protect password with
	ProtectedPassword.  When getting a request from engine we used
	ProtectedPassword(""), while the iscsi code used None. This causes
	session disconnect to fail with "cred mismatch".

	Now we have a note explaining the dependency and we use the same way to
	initialize the credentials:

	- When receiving request from engine, empty username or password are
	  stored as None.
	- When reading requests from active session, empty username or password
	  are stored as None, including the special empty values "<NULL>" and
	  "(null)".

	Code was moved so username and password normalization is near
	ChapCredentials initialization in both flows.

	Bug-Url: https://bugzilla.redhat.com/1279485
	Reported-By: Elad Ben Aharon <ebenahar@redhat.com>
	Continuous-Integration: Jenkins CI

	issci: Fix equality and hash when username or password are None
	When fetching iscsi session info, username of password can be None, but
	iscsi.ChapCredentials was not handling these values correctly in __eq__
	and __hash__.  In particular, we used to compare password.value and
	include it in the hash. This would raise AttributeError when password is
	None.

	Now all combinations are handled properly; we compare password objects,
	using ProtectedPassword.__eq__, and include hash(password), using
	ProtectedPassword.__hash__.

	This issue was hidden because practically username is None when password
	is None, and the equality test fail before we try to compare None.value.
	The hash issue is hidden because we never use __hash__ for
	ChapCredentials. So this is mainly a correctness fix that should not
	effect current code, but it may be needed for fixing the related bug.

	Relates-To: https://bugzilla.redhat.com/1279485
	Continuous-Integration: Jenkins CI

2015-11-17  Fred Rolland  <frolland@redhat.com>

	hsm : Do not resize on disconnectStorageServer
	When a host is moved to maintenance state, it will
	disconnect from connected storage servers.

	Then, sdCache.refreshStorage() is called. It will rescan
	the devices, and attempt to resize devices if needed.

	However, in this flow, resizing devices is not needed and may
	cause exceptions when trying to access sysfs when the iscsi
	connections are being removed, and needlessly delay the
	maintenance operation.

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

2015-11-17  Adam Litke  <alitke@redhat.com>

	tests: FakeLVM test command failure
	Continuous-Integration: Jenkins CI

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

	hooks: after_network_setup_fail
	When an exception occurs during network setup, rollback is executed
	and after_network_setup is never triggered.

	This hook point triggers hooks right after setupNetworks fails and
	finishes its rollback.

	We need this for Open vSwitch hook. However, this hook point might
	be useful for other cases as well.

	Continuous-Integration: Jenkins CI

	net: fix systemd race in exec_ifup
	We set unique uuid for every systemd-run to not use the same unit
	twice and prevent systemd_run race (BZ#1259468). This uuid could be
	dropped when BZ#1272368 will be solved or when we use systemd >= v220.

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

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

	infra: Use new concurrent.thread() utility
	This patch updates various infra stuff to use the new utility.

	Behavior changes:

	- clientIF recover thread is daemonic.
	- clientIF reactor thread is protected from silent failures.
	- supervdsmServer server thread is protected from silent failures.

	This patch does not update:

	- lib/yajsonrpc - will be handled by later patch
	- debug plugin - being removed in https://gerrit.ovirt.org/44724

	Relates-To: https://bugzilla.redhat.com/1141422
	Continuous-Integration: Jenkins CI

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

	vm: add support for "Crashed" event
	Libvirt recently added this event.
	We seen this first on libvirt 1.2.17 on ppc64le.

	Related-To: https://bugzilla.redhat.com/1273891
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	daemon: enable cpu affinity by default
	To run VDSM with CPU affinity enabled provided only
	(huge) benefits in the tests performed so far, so let's
	enable it by default.

	Also, fix a few tests that don't expect taskset
	to be enabled by default.

	Bug-Url: https://bugzilla.redhat.com/1279431
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2015-11-17  Shmuel Melamud  <smelamud@redhat.com>

	vm: Remove empty RNG devices left after 3.5->3.6 upgrade
	Clean out unknown devices that are created for RNG devices by VDSM 3.5
	and are left in the configuration after upgrade to 3.6 until the VM is
	rebooted. These devices do not contain 'source' spec param so they
	cause exceptions on newer VDSM versions that expect 'source' to be
	present.

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

2015-11-17  Yeela Kaplan  <ykaplan@redhat.com>

	janitorial: drop python-2.6-specific code
	Drop from sslutils, m2cutils and kaxmlrpclib.

	Continuous-Integration: Jenkins CI

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

	storage: Use new concurrent.thread() utility
	This patch updates the storage subsystem to use the new utility.

	Behavior changes:

	- fcscan.Scan threads are protected from silent failures.
	- misc.Event notification threads are protected from silent failures,
	  and are daemonic.
	- misc.itmap threads are protected from silent failures and are
	  daemonic.
	- resourceManager.ResourceRef __del__ threads are protected from
	  silent failures and are daemonic.
	- sd.StorageDomain __del__ threads are protected from silent failures
	  and are daemonic.
	- sp.StoragePool upgrade threads are protected from silent failures
	  and are daemonic.
	- storageServer.ConnectionMonitor thread is protected now from silent
	  failures.
	- sync.AsyncCallStub call threads are protected from silent failures and
	  are daemonic (they were explicitily non-daemonic before).
	- task.Task __del__ threads are protected from silent failures and
	  are daemonic.
	- threadPool.WorkerThread threads are protected from silent failures

	Notes:

	- storage_mailbox.HSM_MailMonitor inherits now from object and keeps a
	  thread instance.
	- threadPool.WorkerThread inherits now from object and keeps an thread
	  instance.

	Relates-To: https://bugzilla.redhat.com/1141422
	Continuous-Integration: Jenkins CI

	virt: Use new concurrent.thread() utility
	This patch updates virt subsystem to use the new utility.

	Behavior changes:
	- vm.Vm creation threads is protected from silent failures

	This patch does not modify some threads inheriting from threading.Thread
	instead of having a threading.Thread instance (migration.py, vm.py).

	Relates-To: https://bugzilla.redhat.com/1141422
	Continuous-Integration: Jenkins CI

	lib: Use new concurrent.thread() utility
	This series eliminates some boilerplate code by using the new
	concurrent.thread() utility for creating threads.

	Mostly this does change the behavior of the existing code, except:

	- Thread that did not use @utils.traceback to prevent silent failures
	  are protected now automatically.

	- Non-daemon threads are now daemon threads that will never block the
	  application during shutdown. I believe this behavior is always what we
	  want, so I did not separated this change to another patch.

	The series includes various patches by subsystem: lib, storage,
	networking, virt, and infra.

	This patch updates the vdsm library to use the new utility.

	Behavior changes:

	- concurrent.tmap threads are protected from silent failures
	- netlink/monitor.Monitor threads are protected from silent failures
	- profiling/memory viewer thread is protected from silent failures

	Relates-To: https://bugzilla.redhat.com/1141422
	Continuous-Integration: Jenkins CI

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

	janitorial: bindingxmlrpc: remove Python-2.6 specific code
	Continuous-Integration: Jenkins CI

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

	vm: reformat _EVENT_STRINGS
	Reformat code to make it easy to extend the known event list.

	Format-Only: yes
	Continuous-Integration: Jenkins CI

2015-11-14  Dan Kenigsberg  <danken@redhat.com>

	janitorial: drop gcc dependency
	Since we moved all C code out of Vdsm, we no longer need gcc during
	build time.

	Continuous-Integration: Jenkins CI

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

	clusterlock: Remove unneeded workaround
	Sanlock 2.8 had a off-by-one bug when calling get_hosts with a host id,
	returning info for the next host. This bug is fixed in version 2.8-2.
	Now we can use the hostId parameter, making the call more efficient and
	simplifying clusterlock code.

	Bug-Url: https://bugzilla.redhat.com/1131192
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-11-13  Adam Litke  <alitke@redhat.com>

	FakeLVM: Simplify storage of lv metadata
	Nir pointed out that storing the LV metadata as a dictionary of
	dictionaries (first level is vg_name and second level is lv_name) can be
	error prone.  Instead, let's store in a single level dictionary using
	the tuple (vg_name, lv_name) as the key.

	Continuous-Integration: Jenkins CI

2015-11-13  Dan Kenigsberg  <danken@redhat.com>

	automation: support fc23
	Continuous-Integration: Jenkins CI

2015-11-13  Allon Mureinik  <amureini@redhat.com>

	secrets: Fix typo in clear()'s logging
	Continuous-Integration: Jenkins CI

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

	lib: executor: log task name when discarded
	To improve the debuggability of the executor, we
	add the name of the task which was stuck/slow
	when a worker is discarded.

	Doing so it is easier to understand of what's going on
	and why workers are being replaced, instead of doing
	backtracking in the logs.

	Bug-Url: https://bugzilla.redhat.com/1250839
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

2015-11-12  Sandro Bonazzola  <sbonazzo@redhat.com>

	automation: auto add required build dependencies
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1280219
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-11-12  Ido Barkan  <ibarkan@redhat.com>

	net: tests: test tc upper limit using iperf
	The test uses iperf to verify that the upper limit set by traffic
	control is imposed over the generated client.

	Continuous-Integration: Jenkins CI

	net: tests: support iperf3 for performance tests
	Support running iperf3 client server using context managers in an
	optional network namespace. This is handy for performance testing on
	a single machine. TC qos tests following patches use it.

	Continuous-Integration: Jenkins CI

2015-11-11  Shubhendu Tripathi  <shtripat@redhat.com>

	gluster: Added VDSM verb to stop gluster related processes
	Added a verb which stops the gluster related process like
	brick processes, gsyncd process.
	This needs to be done as part of a host moving to maintenance
	mode. as data should not be available if a host is moved to
	maintenence mode for some migration etc.

	Bug-URL: https://bugzilla.redhat.com/1205724
	Continuous-Integration: Jenkins CI

2015-11-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: ova should support zip and extracted directory formats
	Bug-Url: https://bugzilla.redhat.com/1277879
	Continuous-Integration: Jenkins CI

2015-11-10  Adam Litke  <alitke@redhat.com>

	tests: FakeLVM add lvPath test
	Test the lvPath function.  Allow FakeLVM to be created without a
	temporary directory when it's not needed.  In that case, lvPath will
	return values just like real LVM: /dev/<vg_name>/<lv_name> .

	Continuous-Integration: Jenkins CI

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

	networkTests: ensure that the 'primary' bonding option is recognized
	Continuous-Integration: Jenkins CI

2015-11-10  Yeela Kaplan  <ykaplan@redhat.com>

	spec: zombiereaper is not removed on vdsm upgrade
	Continuous-Integration: Jenkins CI

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

	build: Use make for generating the test certificates
	It is easier to use make for creating files during the build instead of
	reimplementing it in a shell script.

	Continuous-Integration: Jenkins CI

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

	spec: use {name} instead of explicit vdsm
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	remove redundant tabs from vdsmd init script
	Continuous-Integration: Jenkins CI

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

	sampling: fix semaphore misusing
	We should release the internal _sampling semaphore only
	if we acquired it succesfully.

	Otherwise, if a previous call was stuck, we violate the
	contract of the semaphore.

	Bug-Url: https://bugzilla.redhat.com/1250839
	Backport-To: 3.6
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	bonding defaults: for validation, we need to be aware of all options
	In the commit b01a096a, we started to use our bonding defaults database
	to validate bonding options (by name).  'primary' was not recognized as
	a bonding option because its default value is empty.  This patch adds
	the rest of valid, but initially empty, options, plus three new ones.

	ad_actor_sys_prio, ad_actor_system and ad_user_port_key have recently
	been added to the upstream kernel.  primary and arp_ip_target are
	empty by default.

	Bug-Url: https://bugzilla.redhat.com/1262496
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

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

	jsonrpc: executor based thread factory
	Creating new thread for every request is not efficient so we introduce
	usage of the executor for request processing.

	Continuous-Integration: Jenkins CI

2015-11-09  Ido Barkan  <ibarkan@redhat.com>

	net: fake sriov device hook
	This hook fakes both getVdsCaps and hostdevListByCaps to make VDSM
	report devices and capabilities of an SR-IOV capable host.

	Continuous-Integration: Jenkins CI

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

	Moving the in from vdsm-logrotate.conf.in
	https://gerrit.ovirt.org/#/c/47833/ there are no more configure variable in
	the conf file

	Continuous-Integration: Jenkins CI

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

	Adding call to configure passwd (libvirt sasl password)
	Between vdsm 4.16 vdsm used the user vdsm@rhevh as sasl user to 
	communicate with libvirt. Since Vdsm 4.17 we use vdsm@ovirt user
	and therefore need to reconfigure passwd. In 4.17 we moved the
	 place where we configure sasl password to vdsm-tool. 
	This patch call manually to passwd configurator during init
	 phase to avoid upgrade errors.

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

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

	sampling: hoststats: remove unneeded attribute
	The HostStatsThread's sampleInterval instance attribute can easily
	be made a local variable. This patch does that.

	Continuous-Integration: Jenkins CI

	sampling: hoststats: use custom logger
	Now HostStatsThread uses its own logger instead
	the client-provided one, which was too generic anyway.

	Continuous-Integration: Jenkins CI

	sampling: hoststats: don't inherit from thread
	Inheriting from Thread is bad practice.
	This patch makes sampling.HostStatsThread use a thread attribute,
	favoring composition over inheritance.

	No intended functional changes.

	Continuous-Integration: Jenkins CI

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

	tests: FakeLVM add support for activateLVs
	Continuous-Integration: Jenkins CI

	tests: Streamline fake blockSD creation
	The BlockManifestTests test various functions of the
	BlockStorageDomainManifest by creating a mock blockSD using FakeLVM.
	Some tests created the storage domain's VG and others did not.  None of
	these tests created the other internal LVs needed for a properly
	functioning SD (ie. metadata, ids, etc.).  In order to unify the testing
	environment and prepare for additional sophistication in FakeLVM,
	converge make_vg and make_blocksd_manifest into a new function
	make_blocksd which does everything needed.  While sometimes we will set
	up more than is strictly necessary for some tests, the advantage of
	unified setup is far more important.

	Continuous-Integration: Jenkins CI

	tests: FakeLVM support initialTag when creating LV
	Continuous-Integration: Jenkins CI

	tests: FakeLVM create inactive LV
	Test that the 'activate' argument of createLV results in the appropriate
	values in the LV properties.

	Continuous-Integration: Jenkins CI

	tests: Add FakeLVM LV properties tests
	Building on the example environment in FakeLVMSimpleVGTests we create a
	single logical volume.  We then verify that the properties and
	attributes of that LV match what is returned by the real lvm module.
	Some problems were found in FakeLVM and are resolved here.

	Since createLV accepts the size in MB, two of the manifest_tests needed
	to be fixed.

	Continuous-Integration: Jenkins CI

	tests: Add FakeLVM PV properties tests
	When using the lvm module to create a VG from one or more devices, those
	devices are converted into PVs implicitly.  The lvm module can return
	information about these PVs.  Add some basic tests to verify the PV
	properties against real lvm module output.

	Continuous-Integration: Jenkins CI

	tests: Add initial FakeLVM tests and fix errors
	The FakeLVM class inside storagefakelib.py is becoming increasingly
	complex.  In order to ensure that FakeLVM is providing correct LVM
	emulation we need to test its output against what a real LVM environment
	would present.

	This first patch introduces the new test module and adds some tests for
	createVG and getVG.  We test that the VG properties and attributes
	returned match a real LVM installation.  After writing these tests I
	found and fixed several errors in the existing FakeLVM implementation.

	Continuous-Integration: Jenkins CI

2015-11-06  Yeela Kaplan  <ykaplan@redhat.com>

	tests: functional - add ability to run over jsonrpc
	Will run functional tests by default over xmlrpc.

	The user is now able to configure the functional tests
	to run over jsonrpc.

	Added needed verbs to jsonrpc cli and make result of
	response compatible with older xmlrpc.
	Also, set higher timeout for slow network tests.

	Continuous-Integration: Jenkins CI

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

	sampling: remove HostStatsThread.get()
	Remove the get() operation of HostStatsThread,
	in order to decouple the code that stores sample and
	the code that produce the stats.

	Continuous-Integration: Jenkins CI

2015-11-04  Yeela Kaplan  <ykaplan@redhat.com>

	jsonrpc cli: allow client to return compatible results to xmlrpc
	Bridge transforms the return value for different verbs
	results returning from vdsm API.
	Some code expects the old return results of API
	compatible with xmlrpc.

	The compat parameter allows us to return a value
	that is compatible with the way xmlrpc is parsed
	and we'll be able to remove this once we stop
	supporting xmlrpc API.

	Until then using this intermediate step is the most
	straight-forward way and saves us the unnecessary
	hassle of re-translating the bridge work
	once its done parsing the result from API.

	Continuous-Integration: Jenkins CI

	jsonrpc cli: Allow setting timeout for long operations
	Current timeout for operations over jsonrpc is 15
	seconds.
	Some operations are slower and require
	more time.
	We want to allow those to set a timeout separately.
	If no new timeout is supplied we use the default
	jsonrpc timeout.

	Continuous-Integration: Jenkins CI

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

	Adding policycoreutils-python-utils dependency for fedora 23 and above
	semanage utility has moved to policycoreutils-python-utils in f23 and 
	needs to be required as part of vdsm installation.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1246626
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-11-04  Yeela Kaplan  <ykaplan@redhat.com>

	init: compatible comment on upgrade
	Make comments compatible on upgrade from 4.16
	and 4.10.

	Continuous-Integration: Jenkins CI

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

	tests: monkey patch architecture if unsupported
	Following the effort to make vdsm no-arch dependent,
	some tests fails while running on unsupported platforms.
	This patch monkey-patches the tests, reporting a fake arch
	(x86_64) if code is running on unsupported arch;
	otherwise, the real arch is used, as before.

	Continuous-Integration: Jenkins CI

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

	Raise python-cpopen requirement to 1.4
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1264667
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	sampling: remove overcautious cpu count check
	It is very unlikely SC_NPROCESSORS_ONLN will ever be
	less than 1. The existing defensive code is more likely
	to hide a bug somewhere else.

	Continuous-Integration: Jenkins CI

	sampling: HostSample always gets current cpus
	To have HostSample report more faithful information, and
	to decouple HostStatsThread and hoststats.produce(),
	we now compute each time the current number of online cpus.

	Previously, this was done anche at initialization time.

	Continuous-Integration: Jenkins CI

	periodic: document missing VmDispatcher argument
	We forgot to document the 'timeout' argument
	of VmDispatcher's __init__.

	Documentation-Only: yes
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	sampling: rename attributes for clarity
	VMBulkSampler has one ExpiringCache to track VMs/Domains believed
	to be stuck, in order to avoid further clogging.
	Due to an old mistake, the 'ttl' of this cache was set using a variable
	named 'timeout'. The choice of names is unfortunate and source of
	confusion.

	This patch fixes that.

	Rename-Only: yes
	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	virt: periodic: reduce NotConnectedError noise
	The periodic operations have known races on
	VM startup and on VM shutdown.

	These races are because periodic are asynchronous with
	respect to the VM startup/shutdown, and they are benign
	because operations will just be always retried again in
	the next periodic cycle.

	This is particularly visible on loaded servers and/or
	slowly-responsive libvirt.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	virt: periodic: factor out periodic operations
	Factor the periodic operation implementations
	using a common subclass.
	This patch has little benefit on its own, but
	helps to reduce the size of the followup patches.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	tests: v2v: refactor tests to make it extensible
	Refactor the current tests to make it easier to
	add new ones reusing existing code.

	Besides refactoring, the only change is that
	testGetExternalVMs tests for an handful of VMs,
	instead of just one.

	Continuous-Integration: Jenkins CI

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

	Having logrotate configuration to rotate coredump directory as root user
	As vdsm configures logrotate rule to rotate /var/log/core directory,
	which output coredump files for all processes - such as once that runs
	as root - it should perform the rotation as root user as well, otherwise
	rotating libvirt coredump will be ignored with permission denied error.

	This is an ancient regression introduced while fixing rhbz#772591 with
	commit 951b41d.

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

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

	json cli: use ssl when creating a socket
	We want to be compatible with xmlrpc cli using regular ssl,
	instead of default m2crypto.

	During handshake, m2crypto is trying to compare the hostname
	given to the certificate hostname which might not
	always be compatible.
	Default ssl is doing the handshake without it,
	helping us avoid this incompatibility with
	no harm to performance.

	Continuous-Integration: Jenkins CI

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

	vdscli: map invocation params to dictionary
	We need to be more flexible with parameters provided during execution of
	vdscli methods. Now we use api schema to name all the params so we can
	match them properly on the server side.

	With this change we can call vdscli methods as regular method and do
	mapping behind the scene.

	Code used for xmlrpc looked like:

	self.vdscli.addNetwork(bridge,
	                       *self._get_net_args(vlan, bond, nics, opts))

	In above case we are required to prepare named params as array.

	Now we can call it:

	self.vdscli.addNetwork(bridge,
	                       vlan=vlan, bond=bond, nics=nics, opts=opts)

	as well as we can provide only optional params as we want.

	This is first step which enable us to provide client side schema
	validation.

	It is required to extract schema files from jsonrpc rpm due to
	dependency needed for python rpm. Now we make schema rpm required for
	jsonrpc and python rpm.

	Continuous-Integration: Jenkins CI

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

	caps: remove no longer used _REQUIRED_BONDINGS
	Continuous-Integration: Jenkins CI

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

	tests: Introduce schema parsing tests
	We currently have some tests that test the schema tokenizer but we don't
	have any tests to verify that the tokens are parsed correctly into a
	schema.  Introduce a new set of tests to do some really basic
	verification of the API builder.

	Continuous-Integration: Jenkins CI

2015-11-02  Yeela Kaplan  <ykaplan@redhat.com>

	init: configure multipath on upgrade from ovirt-3.5
	multipath configurator was added to vdsm-tool
	in ovirt-3.6.
	In case we upgrade from ovirt-3.5 we now run configure of
	module multipath in init script.

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

2015-11-02  Douglas Schilling Landgraf  <dougsland@redhat.com>

	utils: replace import for persist/unpersist
	Use the new ovirt-node Config class for persist/unpersist commands.
	The previous persist/unpersist provider uses /tmp/ovirt.log
	and might affect the vdsm start as missing ownership of file.

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

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

	net: tests: test_rollback
	A simple rollback test.

	Continuous-Integration: Jenkins CI

2015-10-30  Erez Freiberger  <erezfrei@gmail.com>

	caps.py: import rpm only if available
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	tests: AsyncDispatcher tests suite
	Continuous-Integration: Jenkins CI

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

	fix shell_helper  to install vdsm-api rpm
	7553e6 added sa new rpm that needs to be explicitly installed by the
	script.

	Continuous-Integration: Jenkins CI

2015-10-29  Amit Aviram  <aaviram@redhat.com>

	hotunplug: Supporting lun and cinder disks fix.
	While hotunplugging, VDSM queries libvirt for the unplugged disk to
	verify it was removed. This check is in _isDriveAttached, which verifies
	that the disk's serial is no longer among the VM's disks. As LUN disks
	and Cinder disks currently do not have a serial specified in VDSM flows,
	after unplugging, _isDriveAttached queries for empty disk serial to
	detect whether the disk is still there, and returns true in case there
	are disks with empty serials- such as CD-ROM disks.

	This patch fixes _isDriveAttached to check the disk's presence by
	verifying that the disk's path no longer exists in the xml, rather
	than the serial- to make it return the right value when unplugging
	LUN and Cinder disks.

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

2015-10-29  Adam Litke  <alitke@redhat.com>

	DynamicBridge: Log TypeError exceptions raised during dispatch
	When dispatching via the DynamicBridge, the dispatched function may
	raise a TypeError (typically due to a coding error).  Currently we
	swallow the TypeError and raise InvalidCall instead.  This hides the
	underlying problem making it harder to fix.  Keep the current behavior
	but log the original exception too.

	Continuous-Integration: Jenkins CI

	bridge: Fix logging in dispatch
	The dispatch function in DynamicBridge tries to log using an
	uninitialized instance variable.  Also, logging was not imported by this
	module.  Fix both of these problems.

	Continuous-Integration: Jenkins CI

2015-10-29  Francesco Romani  <fromani@redhat.com>

	lib: taskset: commands should run on all cpus
	The current affinity reset logic has a bug in the
	case the sysadmin puts offline one or more cpu.
	This is because we use the range notation, with
	the upper limit given by sysconf('SC_NPROCESSORS_ONLN')-1

	Let's say we have 16 cpus, and sysadmin puts offline
	cpu #11. Now we will have 15 online cpus, so we'll
	build our range as 0-14, which excludes the perfectly
	fine cpu #15.
	Note that the range still includes the offline CPU, but
	it is safe to trust the kernel NOT to use it.
	However, this buggy logic make VDSM rule out TWO cpus,
	one implicitely (included in range, but offline), plus
	the one erroneously excluded by the range.

	To fix this, we simply always use SC_NPROCESSORS_CONF
	to express the maximum physical range, and we let the
	kernel handle the holes on this range.

	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Jenkins CI

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

	build: missing data file
	My local build fails with missing data file.


	Continuous-Integration: Jenkins CI

2015-10-29  Francesco Romani  <fromani@redhat.com>

	vm: remove _reportError
	Vm._reportError was an early attempt to build what
	we have now with response.error().

	With the new code in place there is no more reason
	to use it, so this patch removes it.

	Continuous-Integration: Jenkins CI

	API: use modern locking around VM.destroy
	cleanup a bit VM.destroy() without functional changes:

	- log outside the lock
	- use context managers for lock

	Continuous-Integration: Jenkins CI

	recovery: split long recovery function
	Split the long recovery function in clientif in subfunctions,
	one for each recovery stage.

	No planned change in functionality.

	Continuous-Integration: Jenkins CI

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

	ssl: change default protocol
	We used 'sslv23' but when Paddle (CVE-2014-3566) was found it
	is recommended to switch to 'tlsv1'. On some of the OSes we
	see issues that it is already sslv3 is disabled and users need
	to switch to tls.

	There is an issue when we switch to tls older engines (<= 3.0)
	are not able to talk to vdsm anymore.


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

2015-10-28  Fred Rolland  <frolland@redhat.com>

	lvm: Use udev cache for obtaining device list
	Due to udev issues, the udev cache was ignored when obtaining
	the device list.
	Since these issues are fixed in Fedora 21 and RHEL 7, the lvm
	configuration can be reverted to use the udev cache.

	Original bug : https://bugzilla.redhat.com/1014942

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

2015-10-27  Francesco Romani  <fromani@redhat.com>

	vmstats: take in account missing bulk stats fields
	One of the cornerstones of how libvirt's bulk stats work is
	accumulate as much as we can, raise errors only on the most
	critical paths.

	This was well understood for actual sampled data, e.g. disk
	traffic, network traffic, but was unexptected for static (meta)
	data, like interface/block name.

	We discovered in the SR-IOV case that this can indeed be true,
	so we add defensive code for this scenario, taking into account
	that also the static data may be absent.
	This also means that the '<group>.count' attribute
	(e.g. net.count, block.count) must be considered an upper bound,
	not an exact amount.

	It is worth checking if the observed behaviour it is actually OK
	inside libvirt; anyway, this added defense fits nicely in the
	bulk stats consuming code.

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

	recovery: move from clientIF to virt package
	The code with recover VMs belongs to the virt vertical,
	and was part of clientIF mostly for historical reasons.

	To unclutter a bit the codebase, and to move forward the long
	term goal to drop clientIF, this patch moves the vm recovery
	code into a new virt module (virt/recovery.py).

	Along the way, we also modernize the names and make them pep8
	friendly. Besides that, there are no changes in logic.

	Tests will follow up in a future patch.

	Continuous-Integration: Jenkins CI

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

	hooks: ovs: update testSetupNetworksAddDelDhcp
	Test testSetupNetworksAddDelDhcp was changed in networkTests.py,
	now its copy in networkTestsOVS.py is updated as well.

	Continuous-Integration: Jenkins CI

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

	schema: rpm for jsonrpc schema files
	We need to use schema files outside of vdsm for external clients and in
	the future for the engine. In order to do it we need to have separate
	rpm which provides required files.

	We introduced new package which is used for storing vdsmapi module. Spec
	files are stored in the same places as before.

	Continuous-Integration: Jenkins CI

2015-10-26  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: rework reporting of DHCPv4/6 on network devices
	This patch addresses the same problem [1] as commit b92edb but
	hopefully in a more readable, verbose way.

	[1] DHCP still being reported for hours after a network got static
	IP configuration, because reporting is based on dhclient's leases.

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

	netinfo: silence one more needless debug
	It is perfectly okay for network definition not to contain 'bootproto'
	and/or 'dhcpv6' parameter in case the network's addressing is to be
	configured statically.

	Continuous-Integration: Jenkins CI

2015-10-25  Ido Barkan  <ibarkan@redhat.com>

	net: Support VLAN hardware offloading in hostQOS
	Apparently, the tc filter that VDSM uses to classify 802.1q traffic
	is not working when the kernel offloads VLAN tagging to the underlying
	physical nic.
	This is because the VLAN field in the link layer header is only added
	by the hardware and is not present by the time the filter inspects it.
	Since the filter uses a straight forward matcher which only looks at
	the headers it fails to match and the packets aren't classified to the
	desired queuing discipline (qdisc).
	Using a kernel packet meta data matcher should work regardless of VLAN
	tagging offloading is enabled.

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

	net: Report correct (guest) pci address fot hostdev interfaces.
	For network interfaces, the address is a direct child of the
	interface node. For host device interfaces, the host address may
	appear before the guest address and be reported instead.

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

	net: SRIOV API change.
	Before this patch, Vdsm API for attaching an SRIOV network device to
	a VM was using type=hostdev. This caused SR-IOV network devices to be
	reported twice (by _getUnderlyingNetworkInterfaceInfo) back to the
	engine, and causing all sorts of UI bugs. Fixing the reporting API
	also changes the way VDSM serializes its data to the disk in order
	to recover from a restart, and so, during recovery, a 'new' device is
	deserialized, which VDSM cannot handle correctly.
	As an example, since it is not a host device, but a network device,
	it will not get detached from the host when the VM is powered off,
	and we get a lost, unusable VF.
	In order to fix this properly, the reporing API and the incoming API
	must match. To do so, the SRIOV XML creation logic was moved into the
	Interface device class, and the VM object was taught how to also
	attach/detach SRIOV devices, when needed.

	note:
	Since the API of attaching a simple network device already supports
	passing macAddr parameter, this should be taken out of specParams as it
	was when type=hostdev and passed directly. specParams are left to hose
	only an optional vlanid parameter.
	this requires a matching Engine-side patch
	I9d26df0f850d395c6ef359d9e4c404856e2f649d

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

2015-10-25  Adam Litke  <alitke@redhat.com>

	Don't prepare image with illegal volumes
	The irs verb 'prepareImage' is used only by clientIF when preparing the
	host to start a VM.  Currently, this operation succeeds even if one or
	more of the volumes in the image is illegal.  Since we should never
	permit a VM to start with an illegal disk, check for this and report an
	error if any illegal volumes are found.

	The pivot stage of a live merge operation depends on this behavior to
	ensure that a VM is not accidentally started using a stale leaf volume.

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

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

	debian: vdsm-jsonrpc package definition
	This definition is required to update debian dependency for new vdsm-api
	package. Definition copied from https://gerrit.ovirt.org/#/c/37737.


	Continuous-Integration: Jenkins CI

	ssl: runtime config to choose implementation
	During build process we provide which ssl implementation is set as
	default depending on distribution we are building for. We can change the
	configuration value used in runtime by updating config.py. Vdsm reboot
	is required after the update. There are two options supported
	- m2c - m2crypto is used
	- ssl - standard ssl module is used

	For debian we only support standard ssl module.

	Continuous-Integration: Jenkins CI

	log: failure in logging
	We need to reimplement log_info method since it has a bit different
	signature than log method and with previous approach it fails with:

	TypeError: not all arguments converted during string formatting

	Continuous-Integration: Jenkins CI

2015-10-22  Martin Betak  <mbetak@redhat.com>

	vm: extract migration completion check
	Extracted the check for recovery completion into separate method to simplify
	consequent migration enhancements.

	Wiki: http://www.ovirt.org/Features/Migration_Enhancements
	Continuous-Integration: Jenkins CI

2015-10-22  Francesco Romani  <fromani@redhat.com>

	tests: v2v: add test for commit fb4c72a
	In commit fb4c72a we made sure to continue to extract VM information
	if the call to get allocation and capacity failed.
	This patch adds one test to make it unlikely to break this again.

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

2015-10-22  Ido Barkan  <ibarkan@redhat.com>

	net: add simple network namespace functions to ipwrapper
	Adding simple wrappers for adding, deleting, and executing ip commands
	in other namespaces.

	Continuous-Integration: Jenkins CI

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

	spec: Unbreak build on rhel
	centos is not defined, breaking the build on a rhel machine.

	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Jenkins CI

	multiapth: Require newer multiapth version
	Multipath did not identify iscsi devices correctly, so their session
	recovery_tmo was not configured correctly. This caused slow failover
	when path is having trouble, and may lead to blocking of multiple vdsm
	threads for many minutes.

	This issue was fixed in device-mapper-multipath in some of the supported
	platforms:

	platform        version                 #bug            available
	------------------------------------------------------------------
	RHEL 7.2        0.4.9-82.el7            bz1254292       yes
	RHEL 7.1        0.4.9-77.el7_1.2        bz1267131       yes
	Fedora 22       0.4.9-73.fc22.1         bz1256074       yes
	Fedora 21       0.4.9-68.fc21.6         bz1261141       no
	CentOS          na                      na              no

	We require now new version where it is available. We will update the
	requirement when the fix is available on other platforms.

	Bug-Url: https://bugzilla.redhat.com/1255173
	Bug-Url: https://bugzilla.redhat.com/1256081
	Backport-To: 3.6
	Backport-To: 3.5
	Relates-To: https://bugzilla.redhat.com/880738
	Continuous-Integration: Jenkins CI

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

	stomp: reducing log footprint from stomp lib
	There was bunch of not needed information about being not able to
	process disconnect frame (part of the spec and expected). We made
	vdsm aware of disconnect frame and few headers which are required
	to validate the frame. 

	We removed log statement which generate the most information
	about message being sent but it do not bring any value when
	debugging issues.


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

2015-10-20  Francesco Romani  <fromani@redhat.com>

	sampling: move translation code into hoststats.py
	Move all the functions that produce host stats
	from HostSamples into hoststats.py, like
	we did for vmstats.py.

	Continuous-Integration: Jenkins CI

2015-10-20  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix too delicate timings
	Executor slow tests were using racy timings which caused random
	failures. Adjust the timing to give 0.1 threads 0.1 second to finish.

	We should replace the timeouts with events to make the tests
	faster and less fragile.

	Continuous-Integration: Jenkins CI

2015-10-19  Ido Barkan  <ibarkan@redhat.com>

	move _kill_and_rm_pid to utils
	Further patches will use it in nettestlib.py

	Continuous-Integration: Jenkins CI

	net: qos: change top qos api
	Qos top api calls, configure_outbound and remove_outbound now take a
	name of a physical device and a vlan_tag (that can be None). this
	removes network object related code out of qos specific code and
	simplifies unit testing.

	Continuous-Integration: Jenkins CI

	net: tests: additional tests for host QOS
	These tests test the public api of the qos module, which is the topmost
	api that is called by the networking code. The tests create devices,
	configure outbound QOS on them, and inspect the QOS entities created by
	the code.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	spec: Require newer kernel version for RHEL
	iSCSI default replacement_timeout is 120 seconds, resulting in too slow
	iSCSI failover in multipath setup. In vdsm, this may lead to blocking of
	multiple unrelated vdsm threads for many minutes, when lvm, multipath
	ore scsi scan operation blocks.

	This issue was resolved in multipath (BZ1099932), by configuring iscsi
	session recovery_tmo sysfs attribute to multipath fast_io_fail_tmo
	value, (5 seconds in vdsm configuration). However, this configuration
	was reverted to the default 120 seconds after a device went down an up
	again, or after restart of the iscsid daemon (BZ1139038).

	This issue was fixed in kernel 3.10.0-229.17.1.el7. In this version,
	setting session recovery_tmo using sysfs overrides the default value
	defined in iscsid configuration file.

	This fix is not available in CentOS, so we require the new kernel only
	when RHEV build.

	Bug-Url: https://bugzilla.redhat.com/980139
	Backport-To: 3.6
	Backport-To: 3.5
	Relates-To: https://bugzilla.redhat.com/1099932
	Relates-To: https://bugzilla.redhat.com/1139038
	Continuous-Integration: Jenkins CI

2015-10-19  Yaniv Bronhaim  <ybronhei@redhat.com>

	Modifying _cleanOldFiles to current _cleanRecoveryFile and avoid naked tryblock
	There are no extensions besides .recovery since ovirt-3.0 so this patch
	modifies the condition to look for [vmid].recovery files and clean them
	during vdsm initialization phase.

	Continuous-Integration: Jenkins CI

2015-10-18  Nir Soffer  <nsoffer@redhat.com>

	resourceManager: Avoid unneeded recursive locking
	In registerNamespace, when force registering an existing namespace, we
	first try to remove the existing one using unregisterNamespace. Since
	both public methods acquire an exclusive lock, we must use a recursive
	lock to avoid deadlock.

	This patch removes the need for recursive lock by extracting the
	unregisterNamespace logic into private _unregisterNamespaceLocked
	method, and using it from the public method.

	Continuous-Integration: Jenkins CI

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

	jsonrpc: more meaningful name of address param
	During previous changes we agreed to fix address param naming to give
	more information what kind of address is contained there.


	Continuous-Integration: Jenkins CI

2015-10-17  Nir Soffer  <nsoffer@redhat.com>

	multipath: Fix multipath.conf selinux labels
	When configuring multipath.conf, we were leaving multipath.conf with
	incorrect selinux label:

	    # ls -z /etc/multipath.conf
	    -rw-r--r--. root root unconfined_u:object_r:etc_t:s0 /etc/multipath.conf

	Now we restore the default selinux context on the temporary file before
	renaming, so the final selinux labels are:

	    # ls -z /etc/multipath.conf
	    -rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/multipath.conf

	Due to a bug in libselinux python bindings [1], we set the label only if
	selinux is enabled. This bug is fixed in upstream now.

	[1] https://bugzilla.redhat.com/1264701

	Backport-To: 3.6?
	Continuous-Integration: Jenkins CI

	muiltipath: Unbreak configure on ovirt node
	In commit commit 4d51f0df2d (multipath: Write multipath.conf atomically)
	we replaced file copy with rename. This make the operation atomic but it
	does not work on ovirt node, because multipath.conf is a bind mount.

	On ovirt node we cannot do atomic rename; we must unpersist the
	multipath.conf before the rename and persist it after the rename. If we
	crash after unpersisting and before persisting multipath.conf will be
	missing after a reboot. We can do nothing about this.

	Other platforms are not effected since utils.unpersist() and
	utils.persit() do nothing on other platforms.

	Continuous-Integration: Jenkins CI

2015-10-16  Nir Soffer  <nsoffer@redhat.com>

	Remove duplicate permissions checks
	The test is calling _check_content which call _check_permissions, so
	there is no point in testing the permissions again.

	Continuous-Integration: Jenkins CI

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

	asyncore: use default handing of read event
	It seems that we provided our own handle_read_event method due to
	assumption that we need to distinguish between fds which support
	pending and not. There are two fd types which do not provide pending
	method: plain socket and AsyncoreEvent which uses EventFD. Only our
	implementations of sslsocket provide pending.

	Default implementation do not care about it because it is not using
	pending and after several iteration of testing it seems to be OK.

	Continuous-Integration: Jenkins CI

2015-10-16  Fred Rolland  <frolland@redhat.com>

	hsm: Add initialSize argument to createVolume
	Add the possibility to specify the volume initial size,
	for block disk with thin provisioning.

	This argument is needed when importing a VM from an external
	provider along with its disks. If one of the VM existing disk
	is a block disk with thin provisioning, the new volume needs
	a starting size as the original disk size.

	If the initial size is not specified, the default initial
	volume size for thin provisioning is the configured
	volume_utilization_chunk_mb (1GiB by default)

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

2015-10-16  Nir Soffer  <nsoffer@redhat.com>

	hsm: Remove support for size in sectors as int
	We used to support volume size either as number of sectors using int, or
	as number of bytes using a string. Engine is using size in bytes since
	first git commit. Hosted engine setup is also using size in bytes.  We
	don't know about old code using number of sectors.

	This patch removes the support for size in sectors.  To prevent
	incorrect usage we raise InvalidParameterException if called with an
	integer.

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

	betterAsyncore: Override asyncore logging to use our logger
	asyncore.dispatcher is using its own logging subsystem writing to stderr
	or to stdout, which is useless in a daemon environment when both
	descriptors are redirected to /dev/null.

	This patch overrides the logging function so they write to our logger.

	Tested using the shell:

	    >>> import logging
	    >>> logging.basicConfig(level=logging.DEBUG)
	    >>> from yajsonrpc.betterAsyncore import Dispatcher
	    >>> d = Dispatcher()
	    >>> d.log("foo")
	    DEBUG:vds.dispatcher:foo
	    >>> d.log_info("foo")
	    INFO:vds.dispatcher:foo

	Continuous-Integration: Jenkins CI

	betterAsyncore: Fix AttributeError on disconnect
	Recently we added logging when SSLError is raised during recv(), which
	happens when a client disconnects in an unclean way. Unfortunately,
	logging the error raises an AttributeError and fail to close the
	connection as intended:

	    >>> from yajsonrpc.betterAsyncore import Dispatcher
	    >>> d = Dispatcher()
	    >>> d.log.error("message")
	    Traceback (most recent call last):
	      File "<stdin>", line 1, in <module>
	    AttributeError: 'function' object has no attribute 'error'

	Dispatcher.log is a method, not a logger instance.

	This patches adds a "vds.dispatcher" logger and use it to log the
	message.

	Since this is an expected event, and logging error and warnings is also
	duplicated to the system log, we use now info message.

	Bug-Url: https://bugzilla.redhat.com/1272496
	Backport: 3.6
	Continuous-Integration: Jenkins CI

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

	Fix vlan tagging missing XML node for sr-iov.
	This is an integration bug between the VDSM and RHEV-M. The vlanid
	parameter was passed in the API with the wrong case, hence was not
	passed down to libvirt api.

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

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

	ssl: ssl socket may throw sslerror during reading
	When client closes socket in not clean way sometimes we can get SSLError
	with unexpected eof. When this situation occurs we need to make sure to
	handle this situation properly.

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

2015-10-15  Nir Soffer  <nsoffer@redhat.com>

	tests: Skip test if mounting loop device failed
	Most of the mount loop device error are eliminated now, but
	mkimage.mkIsoFs still fail randomly in the CI.

	Since this is not a test failure but error in setting up the test, there
	is no point in failing the build randomly, annoying developers working
	on unrelated changes.

	We will have to dive into this error later to understand why it happens
	and what is the real fix to avoid it.

	Continuous-Integration: Jenkins CI

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

	stomp: allow to mock monotonic_time method
	Continuous-Integration: Jenkins CI

	tests: AsyncClient test suite
	Continuous-Integration: Jenkins CI

	stomp: send unsubscribed frame only if there was subscription
	Continuous-Integration: Jenkins CI

	tests: StompAdapter test suite
	Continuous-Integration: Jenkins CI

	jsonrpc: ignore unknown message id
	When we received jsonrpc request which is missing an id we need to make sure
	that we are able to ignore it without blowing up. Current client code base
	will make sure that requests have ids at all times but we need to cover edge
	cases like this since we have mini broker capabilities and any client could be
	used.


	Continuous-Integration: Jenkins CI

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

	tests: networkTests: use addrAdd instead of dummy.setIP
	dummy.setIP was removed in 270caa05edaa56e93e188d35c4db7770f0ef42d8.
	Use addrAdd directly instead.

	Continuous-Integration: Jenkins CI

2015-10-14  Ondřej Svoboda  <osvoboda@redhat.com>

	iproute2, pyroute2: restore split() on bonding options
	split() was lost in commit a3bb8de5 (remove_custom_bond_option
	returns a string!)

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-10-14  Adam Litke  <alitke@redhat.com>

	VolumeMetadata: Move voltype property
	Continuous-Integration: Jenkins CI

	VolumeMetadata: Move oop to FileVolumeManifest
	Continuous-Integration: Jenkins CI

	VolumeMetadata: Introduce class structure
	Most of the existing volume-related code deals with manipulating volume
	metadata.  This includes functions like: isLeaf, setLeaf, getInfo,
	getSize, etc.  The remaining code implements operations which are
	codependent on an SPM architecture with storage pools, master storage
	domains, and persistent asynchronous tasks with recovery and rollback.

	In order to operate without a storage pool and storage pool manager, we
	need a new set of APIs that will want to reuse the metadata volume
	operations but not the SPM-specific code.  Thus, we'll refactor the
	Volume class and its decendents by splitting metadata operations into
	their own class which can be shared between the current SPM code and the
	new SDM code.

	Today we have the following class hierarchy:

	Volume                  Fields and functions common to all volume types
	|-- BlockVolume         Block volume specific implementation
	|-- FileVolume          File volume specific implementation
	    |-- GlusterVolume   Gluster volume specific implementation

	Each of these classes will get a new *Metadata class to house the
	metadata-specific operations where the common fields and methods appear
	in VolumeMetadata and the specific implementations appear in the sub
	classes.

	In an effort to reduce churn during the refactoring, when moving a
	method into its new class, I will leave behind a stub in the original
	class which simply passes the call through to the method's new location.
	Once all code has been refactored, I'll remove stubs for any methods
	which are not currently accessed outside of the class.

	Continuous-Integration: Jenkins CI

	ImageManifest: introduce ImageManifest class
	In order to safely share storage code between the traditional SPM verbs
	and the new SDM verbs we must refactor the code from the Image class.
	We want to share the parts which deal with image "metadata" (ie. the
	repoPath and imageDir, volumeChain, etc).  These elements will be moved
	into a new ImageManifest class while the SPM operations will remain in
	the Image class.

	As a first step, create the new class and add repoPath and getImageDir.
	Many of the other candidate functions rely on the VolumeMetadata
	refactoring and will be added later.

	Continuous-Integration: Jenkins CI

2015-10-13  Francesco Romani  <fromani@redhat.com>

	tests: fixed mangled names in crossImportTests
	crossImportTests needs to extract the module name given
	a python file. To do this, it uses a naive approach stripping the
	extension of a filename, being the extension either ".py" or ".pyc".
	This approach seems good enough for the test purposes, but it was
	done incorrectly using the strip() method of string objects,
	like

	  filename.strip(".pyc")

	Unfortunately, as per strip() documentation:

	  strip(...)
	    S.strip([chars]) -> string or unicode

	    [...]
	    If chars is given and not None, remove characters in chars instead.
	    [...]

	This means that *any* occurrence of *any* char provided will be removed,
	not just the substring as a whole. This leads to incorrect output.
	For example

	  "cmdutils.pyc".strip(".pyc") -> "mdutils"

	This patch fixes that using the more suitable os.path.splitext()
	function. We take the chance to add an unit test for the get_mods()
	helper, to make sure this won't happen again (or at least, not so
	easily).

	Continuous-Integration: Jenkins CI

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

	net: tests: test if setupNetworks drops/keeps initial nics IP
	When we create a network over a nic, nics initial IP configuration
	is dropped. When we create a bond over a nic, nics initial IP
	configuration is kept.

	This patch introduces two new tests which make sure about that and
	could be used for test-driven developement of other configurators
	and OVS hook.

	Continuous-Integration: Jenkins CI

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

	stomp: make sure to send error message when no subscription
	When we get destination which is not know we need to send error response
	with proper message.

	Continuous-Integration: Jenkins CI

2015-10-12  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: rename variables in get()
	Continuous-Integration: Jenkins CI

2015-10-12  Allon Mureinik  <amureini@redhat.com>

	spec: Require qemu with "sleep periodically" fix
	Prior to QEMU 2.1.3-11, it cannot yield while dumping a dirty map,
	which may cause live merge to hang when merging large snapshots.

	QEMU 2.1.3-11 adds yield points, which prevents the aforementioned
	hanging.

	Bug-Url: https://bugzilla.redhat.com/1264673
	Related-To: https://bugzilla.redhat.com/1262901
	Related-To: https://bugzilla.redhat.com/1262251
	Continuous-Integration: Jenkins CI

2015-10-12  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix pep8 line length violation
	Continuous-Integration: Jenkins CI

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

	test: getInstance is not used so removing

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

	netinfo: do not mistake a veth device for a VLAN in ifaceUsed
	A heuristic in the function looks for a 'device' property of a network
	link to decide if a given device "backs" a VLAN and thus is "used".
	Not only VLANs have the property, however. At least veth devices have it
	as well. This patch improves detection by exploiting the 'type' property
	to match only 'vlan's.

	At least testSetupNetworksAddDelDhcp was affected by this misdetection
	on Fedora 22. The presence of 'device' property may be due to netlink
	library but this is just a guess. (Also, iproute2 package/ip binary
	recently started showing veth1@veth2 in its output but this need not
	be related either.)

	Continuous-Integration: Jenkins CI

	tests: fix AttributeError: 'module' object has no attribute 'ifcfg'
	... when running unit tests with other network configurators than ifcfg.

	In configNetworkTests, ifcfg configurator's functions that would have
	an effect on host networking (had network.api validation been broken)
	are disabled by monkey patching.

	This targets only ifcfg configurator (whose ifup and ifdown functions
	are very dangerous), and it also works only when net_configurator
	is set to 'ifcfg' (which is the default) in /etc/vdsm/vdsm.conf

	It ends up with AttributeError when other configurators are chosen.
	Why?

	Consider first how the following code could work, given that only 'api'
	module and 'configurators' package used to be imported from 'network'
	package in configNetworkTests:

	@MonkeyPatch(configurators.ifcfg, 'ifdown', lambda *x: _raiseInvalidOpException())

	The answer is, a side effect of importing 'api', which itself imports
	the chosen network configurator in a module-level call to its
	_getConfiguratorClass() function.

	It is probably more clear now, that network.configurators.ifcfg (or iproute2)
	can only be used after it is imported. We got ifcfg configurator imported
	"for free", but this doesn't work when it is now configured in vdsm.conf

	The example below makes the point.

	>>> import network.configurators
	>>> network.configurators.ifcfg
	Traceback (most recent call last):
	  File "<stdin>", line 1, in <module>
	AttributeError: 'module' object has no attribute 'ifcfg'

	>>> import network.configurators.ifcfg
	(This is what network.api does when ifcfg configurator is configured,
	and what importing of network.api indirectly causes.)

	>>> network.configurators.ifcfg
	<module 'network.configurators.ifcfg' from 'network/configurators/ifcfg.pyc'>

	Continuous-Integration: Jenkins CI

	dhcp: remove support for older --bind-interfaces dnsmasq parameter
	The parameter was required for compatibility with EL6 which is not
	supported anymore.

	Continuous-Integration: Jenkins CI

2015-10-11  Adam Litke  <alitke@redhat.com>

	utils: split out execCmd wrapping logic
	The execCmd utility contains fairly intricate logic which wraps a given
	command with various other utilities (eg. sudo, nice, taskset, etc)
	according to the callers preferences.  We should split this logic into
	its own function so that other direct consumers of CPopen (eg. qemuimg
	in an upcoming patch) can get the same semantics as execCmd.

	Continuous-Integration: Jenkins CI

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

	tests: net: use new veth_pair in networkTestsOVS.py
	We do not have Veth object anymore. Use nettestlib:veth_pair() and
	ipwrapper:addrAdd(), ipwrapper:linkSet() instead of it.

	Continuous-Integration: Jenkins CI

2015-10-11  Federico Simoncelli  <fsimonce@redhat.com>

	qemuimg: add support for convert progress
	This patch adds the support for QemuImgProcess, a class designed
	to oversee the execution of a long qemu-img convert operation in
	order to parse and maintain the progress of the process.

	 operation = qemuimg.convert(srcImage, dstImage)

	 while not operation.finished:
	     operation.wait(10)
	     log.debug('convert progress: %s%%', operation.progress)

	Continuous-Integration: Jenkins CI

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

	spec: Require newer kernel version on Fedora
	iSCSI default replacement_timeout is 120 seconds, resulting in too slow
	iSCSI failover in multipath setup. In vdsm, this may lead to blocking of
	multiple unrelated vdsm threads for many minutes, when lvm, multipath
	ore scsi scan operation blocks.

	This issue was resolved in multipath (BZ1099932), by configuring iscsi
	session recovery_tmo sysfs attribute to multipath fast_io_fail_tmo
	value, (5 seconds in vdsm configuration). However, this configuration
	was reverted to the default 120 seconds after a device went down an up
	again, or after restart of the iscsid daemon (BZ1139038).

	This issue was fixed in kernel 4.1.6. In this version, setting session
	recovery_tmo using sysfs overrides the default value defined in iscsid
	configuration file.

	We have the same issue on EL; this is handled in a separate patch since
	the package is not available yet on CentOS.

	Bug-Url: https://bugzilla.redhat.com/1253790
	Backport-To: 3.6
	Backport-To: 3.5
	Relates-To: https://bugzilla.redhat.com/1099932
	Relates-To: https://bugzilla.redhat.com/1139038
	Continuous-Integration: Jenkins CI

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

	networkTests: normalize strings (to unicode) through json magic
	To make it easier to read differences between "running config"
	and "kernel config" (the state of networking) the strings
	contained in dictionaries must not be stored randomly as str
	or unicode instances.

	This patch converts all strings to unicode. Thanks to Ido Barkan
	for a neat trick using the json library.

	Continuous-Integration: Jenkins CI

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

	hooks: ovs: move libvirt configuration into a separate module
	Libvirt configuration has nothing to do with OVS configuration.

	The main reason is to move creation of new libvirt networks to a place
	where almost all configuration is completed, so an eventual rollback
	doesn't have to do any extra work. This is necessary for the following
	'improve ovs rollback' patch.

	Continuous-Integration: Jenkins CI

2015-10-07  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: stop using getVlanID() in network.api
	The same information is already present in _netinfo.

	Continuous-Integration: Jenkins CI

2015-10-07  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Don't warn about unknown type for channel devices
	We're currently issuing warnings in the VDSM logs for channel devices:

	Thread-38551::WARNING::2014-08-07
	08:40:26,595::vm::2059::vm.Vm::(buildConfDevices)
	vmId=`97ca14a3-1502-4ac6-bb48-ba9dcd8179d2`::Unknown type found, device:
	'{'device': 'unix', 'alias': 'channel0', 'type': 'channel', 'address': {'bus':
	'0', 'controller': '0', 'type': 'virtio-serial', 'port': '1'}}' found

	These warnings are not supposed to be issues as we do just do not maintain
	them. This patch changes this to not warn in those cases.

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

2015-10-07  Nir Soffer  <nsoffer@redhat.com>

	automation: Disable tests requiring tun device
	In commit a9e9e7bcc7a1 (tests: temporarily exclude few tests to restore
	CI) we disabled too many networking tests, including unrelated test
	from utilsTests.py that happen to have the same name.

	This patch adds @require_tun decorator to disable tests needing the tun
	device.

	Other tests seems to run fine in the CI, giving them another chance.

	Continuous-Integration: Jenkins CI

	atomation: Remove commented code
	We don't keep commented code in vdsm.

	Continuous-Integration: Jenkins CI

	automation: No need to disbale stress tests
	Stress tests and slow tests are disabled by default.

	Also, NOSE_SKIP_STRESS_TESTS is incorrect; see tests/README for the
	correct way to control the tests.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-10-07  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: merge _getVlanDevsForIface into getVlansForIface
	Continuous-Integration: Jenkins CI

	netinfo: remove unused functions and make some private
	getVlanBondingNic (removed) and getVlanDevice (now private)
	were used by vdsm_reg (removed in commit 5fa583).

	isvirtio has been unused since http://gerrit.ovirt.org/21542
	getBridgelessNetworks since http://gerrit.ovirt.org/6416 and
	isbonding since https://gerrit.ovirt.org/4320

	Since an earlier version of this patch, gethwaddr has been
	picked up by https://gerrit.ovirt.org/45893 after having been
	unused since https://gerrit.ovirt.org/23291

	Continuous-Integration: Jenkins CI

2015-10-06  Germano Veit Michel  <germano@redhat.com>

	vdsm-tool: Do not panic with sanlock empty groups
	This fixes the following error:

	    File "/usr/lib/python2.6/site-packages/vdsm/tool/configurators/
	        sanlock.py", line 87, in isconfigured
	    .strip().split(" ")]
	    ValueError: invalid literal for int() with base 10: ''

	Which happens when sanlock "Groups:" line is empty:

	    $ grep "Groups:" /proc/<sanlock pid>/status
	    Groups:

	Sanlock must have its groups properly setup, but we should not
	blow up because of this.

	Fixed by using split() instead of split(' '), which cannot handle empty
	string and is the wrong way to split in most cases.

	Bug-Url:https://bugzilla.redhat.com/1267444
	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-10-05  Adam Litke  <alitke@redhat.com>

	Move jobs.py to lib/vdsm
	The host jobs infrastructure in jobs.py is general purpose and belongs
	in the vdsm-python package.  The qemuimg.py module (in vdsm-python)
	wants to make use of jobs.py and we don't want to add a dependency from
	qemuimg.py "library" to any python files in the vdsm package.

	Continuous-Integration: Jenkins CI

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

	tests: inherit from object
	We are still on python 2.x, so all classes should inherit from object,
	unless there is a crystal clear case NOT to do so.

	Continuous-Integration: Jenkins CI

2015-10-01  Martin Polednik  <mpolednik@redhat.com>

	caps: get host uuid on ppc64le
	On Power, the uuid is determined by parsing the device tree. The code
	for parsing lacks ppc64le architecture that needs to be added in order
	not to return None as UUID (breaking getVdsCaps).

	Continuous-Integration: Jenkins CI

2015-10-01  Milan Zamazal  <pdm@zamazal.org>

	virt: devices: let Sound.__slots__ be tuple, not string
	This is just a trivial cosmetic change, to be consistent within the
	code.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-09-30  Ido Barkan  <ibarkan@redhat.com>

	net: remove unneeded log
	This log message is very common and doesn't say a lot. Reducing
	verbosity here will do no harm and will clean the log a little.

	Continuous-Integration: Jenkins CI

2015-09-30  David Caro  <dcaroest@redhat.com>

	CI: On fc22 trying to install a src.rpm fails
	Continuous-Integration: Jenkins CI

2015-09-29  Ondřej Svoboda  <osvoboda@redhat.com>

	integration: remove an unused import
	Continuous-Integration: Jenkins CI

2015-09-29  Nir Soffer  <nsoffer@redhat.com>

	tests: Improve utils.retry tests
	We did not have tests for the timeout mechanism.

	This patch adds 4 tests, revealing issues in the current code:

	- Test that we bail out when the timeout precisely expires (broken).
	- Test that we do not wait needlessly if a sleep would make timeout
	  expire (broken).
	- Test that we do not wait needlessly if deadline has passed when the
	  operation was finished (ok).
	- Test that we ignore zero timeout (ok).

	Continuous-Integration: Jenkins CI

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

	integration: let client factory to construct xmlclient
	Continuous-Integration: Jenkins CI

2015-09-29  Francesco Romani  <fromani@redhat.com>

	virt: graphics: avoid None in specParams
	In commit bbe8a03 we added a check to make sure
	we use displayNetwork from global Vm configuration,
	in the case the more specific setting was not sent
	in the graphics device specParams.

	One unfortunate side effect of this change is that
	now None may end up in the graphics device specParams,
	breaking XML-RPC communications.

	We default (end recommend) JSON-RPC, but we still
	support XML-RPC, and we use it as default in vdsClient,
	so this must be avoided.

	This patch reorganize the check to avoid the unwanted
	injection of the None value.

	Backport-To: 3.6
	Related-To: https://bugzilla.redhat.com/1261007
	Continuous-Integration: Jenkins CI

2015-09-28  Nir Soffer  <nsoffer@redhat.com>

	tests: Wait for udev events after unmounting
	Even after fixing unmounting of loop mounts using the freeLoop
	parameter, we still have random mount failures like:

	       File "/home/.../vdsm/storage/mount.py", line 241, in _runcmd
	     raise MountError(rc, ";".join((out, err)))
	    MountError: (32, ';mount:
	    /tmp/vdsm-mkimage-tests.03sjxb/images/vmId_floppy...img:
	    failed to setup loop device: No such file or directory\n')

	It seems that loop device detach is asynchronous, thanks to good old
	udev. Waiting until things settle down can avoid this issue.

	Continuous-Integration: Jenkins CI

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

	spec: fix openvswitch dependency version
	In CentOS, where Epoch is not used, >= 2 is interpreted as >= 0:2,
	that is causing dependency problems This patch changes it to >= 2.0.0

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-09-25  Francesco Romani  <fromani@redhat.com>

	vm: always hold confLock when updating pauseCode
	An update of pauseCode can create a new field in Vm.conf.
	If a client calls the getVMList() API, or for any other API
	which needs to loop over all the VM conf, we can end up with

	RuntimeError: dictionary changed size during iteration

	This patch make sure that when we update Vm.conf with
	pauseCode-related data, we always have Vm.confLock held.

	Bug-Url: https://bugzilla.redhat.com/1261918
	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Jenkins CI

2015-09-25  Ido Barkan  <ibarkan@redhat.com>

	net: reuse running config instance in netinfo.
	running config is already read from the disk once during get() and
	this info can be later used in libvirtNets2vdsm instead of reading it
	again.

	Continuous-Integration: Jenkins CI

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

	tests: Generalize sdm_indirection_tests
	The infrastructure in sdm_indirection_tests is useful for testing the
	other classes where there is indirection:

	    Image -> ImageManifest
	    Volume -> VolumeMetadata

	In order to reuse this code we need to generalize two things:
	1. The class doing the redirection is not necessarily a StorageDomain.
	It can also be an Image or Volume.
	2. Each class that redirects calls for SDM contains an instance of the
	redirection target class.  For example, StorageDomains contain a field
	'_manifest' which is a StorageDomainManifest instance.

	The generalization can be done by extracting the general purpose bits
	from DomainTestMixin into SDMIndirectionMixin.  When Image and Volume
	support will be added to this module we can subclass
	SDMIndirectionMixin as we are now doing for DomainTestMixin.

	Continuous-Integration: Jenkins CI

2015-09-25  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix unsafe monkeypatching
	mkimage module could be left in bad state if setup failed after it was
	patched, or removing temporary files in tearDown failed.

	This patch ensures that the module is patched only if all other setUp
	code was successful, and is restored first in tearDown.

	The manual patching code was replaced with the monkeypatch.Patch.

	Continuous-Integration: Jenkins CI

	v2v: Fix getExternalVMs if getting disk size failed
	In getExternalVMs we try to report the disk size, but if this info is
	not available for certain disk, we continue to collect info about other
	disks. Due to incorrect error handling, the request was aborted after
	the first error:

	      File "/usr/share/vdsm/v2v.py", line 684, in _add_disk_info
	        disk['capacity'] = str(capacity)
	    UnboundLocalError: local variable 'capacity' referenced before assignment

	This patch fixes the error handling so failure to get disk size would
	not fail the entire request.

	Reported-by: Ian Fraser <ian.fraser@asm.org.uk>
	Bug-Url: https://bugzilla.redhat.com/1265556
	Backport-to: 3.6
	Continuous-Integration: Jenkins CI

	v2v: Skip vm if XMLDesc() fails
	The current code assumes that XMLDesc() always succeeds when dealing
	foreign vms, which seems to be too optimistic as seen here:

	      File "/usr/share/vdsm/v2v.py", line 152, in get_external_vms
	        root = ET.fromstring(vm.XMLDesc(0))
	      File "/usr/lib64/python2.7/site-packages/libvirt.py", line 478, in XMLDesc
	        if ret is None: raise libvirtError ('virDomainGetXMLDesc() failed', dom=self)
	    libvirtError: internal error: Invalid or not yet handled value
	    'emptyBackingString' for VMX entry 'ide1:0.fileName' for device type
	    'cdrom-image'

	If XMLDesc() failed, we aborted the entire request, making it impossible
	to import good vm if libvirt could not handle another bad vm on the same
	server.

	Now we log the libvirt error and continue, increasing the chance to
	return useful information to engine.

	Reported-by: Ian Fraser <ian.fraser@asm.org.uk>
	Bug-Url: https://bugzilla.redhat.com/1266088
	Backport-to: 3.6
	Continuous-Integration: Jenkins CI

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

	net: multicast snooping is not supported by ovs until 2.4.0
	Continuous-Integration: Jenkins CI

2015-09-24  Martin Polednik  <mpolednik@redhat.com>

	gitignore: add tags
	Ctags generate tag files for source code. Most of the approaches for
	storing tags use the root directory of a project. This patch adds the
	'tags' file to gitignore, causing git to ignore the tags file. This is
	helpful when calling e.g. git clean, because the tags would be deleted.

	Continuous-Integration: Jenkins CI

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

	net: tests: move veth.pair into nettestlib.py
	veth is also used by test hence belongs in nettestlib

	Continuous-Integration: Jenkins CI

	net: tests: move Dummy class into nettestlib.py
	One additional step in unifying code of test interfaces management code

	Continuous-Integration: Jenkins CI

	net: tests: convert dummy module into a class
	This class will be later moved into nettestlib and be unified with
	other test device code.

	Continuous-Integration: Jenkins CI

2015-09-24  Marcin Mirecki  <mmirecki@redhat.com>

	network: add ifcfg write hook correction
	Correction for patch: 46372
	- only full path of ifcfg file is passed to hook
	- config dict inlined
	- the hook can not modify the path of the ifcfg file anymore

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

2015-09-23  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix and simplify cleanup after failures
	If mount or umount failed, temporary images were not removed because of
	incorrect cleanup code. This was not an issue since the temporary files
	were created in a temporary directory, but we had two of them, so
	failures to remove the first would leave also the second.

	This patch simplify cleanup by removing the incorrect cleanup of the
	temporary images, as they are removed anyway when the temporary
	directory is removed.

	Instead of two temporary directories, we use now one directory, and
	create the two subdirectories inside it. Now we have to remove only one
	directory in tearDown. To make it easier to debug, the temporary
	directory is created with a prefix.

	Continuous-Integration: Jenkins CI

2015-09-22  Martin Polednik  <mpolednik@redhat.com>

	hostdev: change ownership for passthrough USB devices
	In order co correctly passthrough an USB device while qemu doesn't run
	under root user, permission must be set for
	/dev/bus/usb/${bus}/${device} node so qemu can access it. This patch
	dynamically changes the ownership of the node and later reverts it
	and triggers relevant udev rules.

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

2015-09-22  Francesco Romani  <fromani@redhat.com>

	vm: graphics: fix settings after restore
	When restoring a VM from a memory snapshot,
	if we don't reset the some details of the SPICE configuration
	will be lost, and the restored VM will behave erratically.

	This behaviour is easily reproduced by:
	a. boot a VM with SPICE graphic device
	b. do a snapshot, make sure to check 'snapshot memory'
	c. preview the snapshot
	d. run the VM
	e. check the VM parameters (e.g. qemu)

	The automatic restore using virDomainRestoreFlags() uses the wrong
	configuration settings.

	To fix this, we need to amend the VM Domain XML, tuning the configuration
	the same way we do for VM startup.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1260177
	Continuous-Integration: Jenkins CI

	scale: limit cpu usage using cpu-affinity
	To reduce the impact of the GIL, we want to pin
	VDSM threads to few cores, maybe just one.

	Initial results using taskset manually provided very
	interesting results (more details in
	https://bugzilla.redhat.com/1247075):

	VDSM was tested while running ~100 idle VMs, pinning
	vdsmd to less and less cores, down to just one.
	The load changed in an impressive way, started from
	fluctuating around 1000-2500% (no pinning) down to
	average around 30%, rarely peaks close to 100% (pinned
	to one core).

	The user can configure using vdsm.conf the cpu cores on
	which VDSM should run on.
	If nothing is specified, VDSM behaves as before and uses
	any CPU core.

	We need a patch which is simple to backport down to 3.5,
	so we use taskset just before the start of the main daemon
	to set VDSM cpu affinity, and we start any child process using
	taskset to remove VDSM's cpu affinity and allow the child
	process to use any cpu.

	taskset is part of util-linux, so no additional dependency
	is needed.

	Note: ioprocess needs to be patched to reset its cpu affinity.
	Tracked in https://bugzilla.redhat.com/1264187

	Bug-Url: https://bugzilla.redhat.com/1247075
	Backport-To: 3.6
	Backport-To: 3.5
	Continuous-Integration: Jenkins CI

2015-09-21  Nir Soffer  <nsoffer@redhat.com>

	debug: Remove debug plugin
	vdsmDebugPlugin was replaced by manhole, no need to keep and maintain
	this now.

	Continuous-Integration: Jenkins CI

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

	automation: add build_artifacts
	Change automation structure according to new CI standard. Add
	build-artifacts.sh which builds all required packages.

	check-patch.sh then runs PEP8, Pyflakes and unit tests. If specfile
	was changed, it tries to install created packages as well.

	This patch is related to jenkins project patch:
	https://gerrit.ovirt.org/#/c/46147/

	Continuous-Integration: Jenkins CI

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

	vdsClient: parse no value arguments
	There was regression introduced by
	00cae320514b096c11bfb7b48ebe944235b2e85a commit. In order to fix it we
	need to properly parse arguments when no value provided.


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

2015-09-21  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: only trigger 'vfio' subsystem for VFIO devices
	In order to avoid triggering of all events we need to use specialized
	variant of udevTrigger. This patch creates new private trigger function
	to add ability to trigger specific subsystems. This avoids refreshing
	everything, possibly eliminating way of triggering everything via
	host devices subsystem.

	Continuous-Integration: Jenkins CI

2015-09-21  Ido Barkan  <ibarkan@redhat.com>

	net: set physical functions up before using them.
	Before using virtual functions, it is not enough to create and
	configure them. If the underlying physical function is not up, the
	virtual functions are unusable. Furthermore, the engine needs the
	physical function to be up in order to let the user configure it.

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

	net: rename sriov related code params
	This is to reflect that the passed device name is actually a pci
	address path such as 0000:02:00.0. Next commit will introduce a
	device name in the same logic so the rename will prevent the confusion.

	Continuous-Integration: Jenkins CI

2015-09-21  Nir Soffer  <nsoffer@redhat.com>

	volume: Unify metadata formatting and validation
	We had duplicate code for formatting volume metadata, and the file
	volume version did not protect from metadata overflow. On file storage
	the metadata size is not limited, but when copying file based volume to
	block storage, the description field will be truncated.

	Metadata is formatted now using Volume.formatMetata(), which also
	validate the formatted metadata size.

	Since metadata size is relevant for both block and file volumes,
	blockVolume.VOLUME_METASIZE was moved up to volume.METADATA_SIZE.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>
	Continuous-Integration: Jenkins CI

2015-09-20  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix unmount in mkimage tests
	These tests seem to fail too much lately. Inspecting the code reveal
	that we use freeloop=True in mkimage, but do not use this flag in the
	tests. This lead to consuming of all available loop devices, causing
	later mount attempts to fail.

	Continuous-Integration: Jenkins CI

	blockSD: Use with instead of try finally
	Using with is more clear and safer; you cannot add failing code before
	the try.

	Continuous-Integration: Jenkins CI

2015-09-20  Ido Barkan  <ibarkan@redhat.com>

	net: better set/get_promisc
	The new implementation uses iproute2 to set this property and netlink
	to get it. The former implementation used ctypes clumsy code and only
	looked at the object state, which was set before the ioctl code.

	Continuous-Integration: Jenkins CI

	net: remove unused _parseLinkLine from ipwrapper
	The grouper utility was also removed as _parseLinkLine was the only
	one using it.

	Continuous-Integration: Jenkins CI

2015-09-20  Martin Polednik  <mpolednik@redhat.com>

	graphics: use global displayNetwork if no local specified
	Engine can either specify the displayNetwork on global or local basis.
	If specified locally everything works, but global configuration is
	ignored for explicitly sent graphics devices. This patch adds logic to
	decide if local or global displayNetwork is to be used.

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

	fakekvm: report correct POWER8 model
	The power8 model should be in uppercase ('POWER8') to reflect current
	libvirt and therefore be correctly recognized by engine.

	Continuous-Integration: Jenkins CI

	virt: add logic for POWER cpu xml element
	Current flow in appendCpu caused ppc to be skipped, generating empty
	element (<cpu/>). In order to specify cpu model on ppc, we have to use
	libvirt's cpu with POWER8 model.

	This is currently the only way of safely adding CPU to ppc64le host,
	and hopefully will be enhanced in future.

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

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

	vm: sercon: serial config must match console's
	When we add a serial console device, we also
	inject a matching serial device.

	Until now, the code assumed that the serial console has to be
	bind to a PTY, while we can also bind it to an UNIX domain socket
	(required by oVirt 3.6 "guest serial console" feature).

	This patch makes sure that the injected serial device is bound
	to the appropriate host endpoint, either pty or unix domain socket.
	Please note that if the mismatch the serial device and the console
	device configuration, the VM fails to start.

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

2015-09-19  Edward Haas  <edwardh.dev@gmail.com>

	utils.retry: Support system time changes while retry() is running
	In a scenario where retry() is called with timeout (>0) and
	during the retry run, the system time changes, the timeout calculation
	will get corrupted. This may cause an unwanted result.

	At the function entry point, the system time is saved (time.time())
	and used after each retry attempt to calculate the period passed.
	If the system time is changed between the first time call and the
	following time calls, the delta time will get corrupted.

	The calculated delta time, which gets compared to the timeout value,
	should not be affected by the system time change.
	To support that, a monotonic timer is used.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-09-19  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfoTests: do not overwrite /etc/resolv.conf
	os.path.join ignores any initial path components if it is passed
	an absolute path, so a relative path must be used. Now, 'etc'
	directory is never created and for test purposes it is not necessary
	to do so, therefore stick with temp_dir and 'resolv.conf'.

	Continuous-Integration: Jenkins CI

	spec: install bonding-defaults.json with 644 permissions, not 600
	This way make check succeeds under non-root account for
	testIterNetworkHierarchy, testTextualRepr and testValidateBondingOptions
	which previously failed to read the file.

	Continuous-Integration: Jenkins CI

2015-09-17  Nir Soffer  <nsoffer@redhat.com>

	blockVolume: Separate data formatting and writing
	There is no need to open a file before the data is ready for writing.
	Separating the data formatting and writing makes it easy to change the
	way we write the data, or moving the formatting code elsewhere.

	Continuous-Integration: Jenkins CI

	volume: Support older engine or disks with long description
	New engine will limit the description field size to avoid the
	MetaDataOverflowError, but we must support older engine versions and
	existing disks with long description. For example, copying old disk with
	long description from file to block storage.

	The description field has now maximum size; if the size exceeds the
	limit, it is transparently truncated when creating any volume type.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1258097
	Continuous-Integration: Jenkins CI

	blockVolume: Fail if metadata overflows
	We used to truncate silently volume metadata if it was too long, storing
	invalid metadata that would cause various failures later.

	The metadata can overflow if volume description, or since ovirt 3.5,
	volume alias is too long. Both alias and description are stored now in
	json format in the DESCRIPTION field.

	Now we raise MetadataOverflowError, the same error raised when storage
	domain metadata overflow. This will fail the volume creation.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1258097
	Continuous-Integration: Jenkins CI

	cleanup: Remove unused pidfile option and argument parsing code
	Since we move to systemd, we don't need the pidfile option, and since it
	is the only option, the argument parsing code and the usage messsage.

	Continuous-Integration: Jenkins CI

2015-09-17  Ido Barkan  <ibarkan@redhat.com>

	net: fix _emergencyNetworkCleanup
	The code assumed that 'bridged' was always a part of the network
	attributes. It should default to this parameter default if it is not
	there.

	Continuous-Integration: Jenkins CI

2015-09-17  Nir Soffer  <nsoffer@redhat.com>

	safelease: Remove unhelpful debug code
	Remove unhelpful debug function that logged an important message only to
	stdout (where nobody see it) and only when enabling debug mode.

	Now we log all message to smp-lock.log with a timestamp.

	Continuous-Integration: Jenkins CI

	safelease: Improve logging when releasing lock
	We used to log that "Cluster lock was released successfully" even if
	spmstop.sh failed. Now we log either an error or a success message, but
	never both.

	To make spmstop.sh stderr and stdout more readable, we invoke spmstop.sh
	with raw=True to avoid the unwanted line splitting.

	We also log the domain UUID in all messages during release to make it
	easier to follow the log.

	Continuous-Integration: Jenkins CI

	safelease: Fix wrong parameter name
	smpstop.sh expects a storage domain uuid, not a pool id. Updat the
	variables names, the online help and the logs.

	Continuous-Integration: Jenkins CI

	safelease: Increase spmprotect timeouts
	When spmprotect.sh fail to renew the lease, it start a fencing process:

	1. Send SIGUSR1 signal to vdsm
	2. Send SIGTERM signal to vdsm after 7 seconds
	3. Send SIGKILL signal to vdsm after 9 seconds
	4. Reboot the machine after 20 seconds

	When vdsm receives the SIGUSR1 signal, the signal handler invokes
	stopSpm, which releases the cluster lock. Releasing the cluster lock will
	terminate the waiting spmprotect.sh, preventing termination of vdsm and
	reboot.

	If vdsm fails to release the cluster lock within 7 seconds, spmprotect.sh
	will terminate it, and if did not terminate, spmprotect.sh will kill it.

	When systemd starts vdsm again, vdsm looks for spmprotect.sh processes and
	tries to release the lease. If the lease cannot be released after 10
	seconds, it kills the pending spmprotect.sh processes, preventing reboot.

	Testing with both block and file storage show that this flow is broken
	when access to master domain is blocked:

	1. In block storage, vdsm gets stuck trying to unmount the master mount,
	   and spmprotect.sh kills it before it try to release the cluster lock.

	2. In file storage, vdsm gets stuck trying to write spm status to the
	   master domain, and spmprotect.sh kills it before it try to release
	   the cluster lock.

	3. When vdsm starts up, sometimes it manage to kill the waiting
	   spmprotect.sh process, and sometimes spmprotect.sh reboot the
	   machine before vdsm kills it.

	We cannot fix 1 and 2 easily. 3 can be fixed by giving vdsm more time
	for stopSpm flow, and more time to startup and kill pending
	spmprotect.sh process.

	This patch increases spmprotect timeouts to increase the chance of clean
	shutdown and decrease the chance of unneeded reboot.

	New spmprotect.sh flow is:

	1. Send SIGUSR1 signal to vdsm
	2. Send SIGTERM signal to vdsm after 10 seconds
	3. Send SIGKILL signal to vdsm after 20 seconds
	4. Reboot the machine after 60 seconds

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

2015-09-16  PriyaAvhad  <avhad.priya24@gmail.com>

	Get list of nameservers for host
	Get a list of nameservers listed in /etc/resolv.conf

	Continuous-Integration: Jenkins CI

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

	net: mark test_getVdsStats as broken
	Related-To: https://bugzilla.redhat.com/1261457
	Continuous-Integration: Jenkins CI

2015-09-16  Vitor de Lima  <vdelima@redhat.com>

	virt: Remove QEMU passthrough hack in ppc64
	Ever since 3.5 a virtual USB keyboard and mouse is included
	in ppc64 guests with graphical consoles. This patch does not insert
	any information about input devices in the domain XML in order to
	libvirt handle the creation of these devices automatically.

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

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

	Revert "net/api: drop support for legacy mgmt networks"
	This reverts commit d1e8f872b913e4b0dc222c0d2cc2906e9807f3cb.
	We need the reverted code because current Engines does not pass
	defaultRoute=True on clusterLevels <= 3.3.

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

2015-09-16  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: only determine and write HWADDR in removeNic if enabled
	Writing of HWADDR has been deprecated for long now but for compatibility
	with pre-1.0 NetworkManager (that matches on HWADDR in order to accept
	NM_CONTROLLED=no) we shall still write it if requested with
	hwaddr_in_ifcfg=always in vdsm.conf. This patch makes removeNic follow
	suit -- addNic was alone in respecting the condition.

	For more information refer to http://gerrit.ovirt.org/22288 and
	https://bugzilla.redhat.com/1044060

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

	ifcfg: only deal gracefully with ENOENT in removeNic
	Any other IO errors are unexpected and so they should not go
	unnoticed.

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

2015-09-16  Francesco Romani  <fromani@redhat.com>

	spec: bump libvirt requirement
	On CentOS/RHEL 7.1, libvirt has a bug which makes XML being
	restored incorrectly in the dehibernation path.
	Libvirt >= 1.2.13 at least (probably earlier) is fixed already,
	so CentOS/RHEL 7.2 will be fine.
	We must make sure that CentOS/RHEL 7.1 depend on the fixed libvirt.

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

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

	network: api: raise error on removal of assigned bond
	When we try to remove assigned bond via setupNetworks, we get SUCCESS,
	but bond is not removed (we don't allow removal of assigned device).

	Now we raise an ERROR when someone tries to remove assigned bond.

	This does not apply for delNetwork, where we cannot remove separate
	bonding.

	Continuous-Integration: Jenkins CI

	hooks: Open vSwitch configurator
	This patch introduces new hook which allows us to configure OVS network
	instead of standard linux network.

	Configuration is done by one big ovs-vsctl command executed at once, it
	apply the whole configuration iff all commands are correct.

	Continuous-Integration: Jenkins CI

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

	StorageDomainManifest: Move validateCreateVolumeParams
	Continuous-Integration: Jenkins CI

	StorageDomainManifest: Move acquireVolumeMetadataSlot
	Moving acquireVolumeMetadataSlot into the manifest breaks volumeTests
	which depended on mocking StorageDomain objects.  Since we already have
	the manifest_tests infrastructure, it's better to move the test cases
	implemented in volumeTests into manifest_tests and use a real
	BlockStorageDomainManifest for testing.  In order to do this we need to
	add an addtag utility method to our FakeLVM class.

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: move refresh and refreshDirTree
	Continuous-Integration: Jenkins CI

	StorageDomainManifest: Move clusterLock into Manifest
	The clusterLock will be used by SDM verbs (as a per-domain lock) so it
	needs to be moved into the Manifest so that it can be shared.

	Moving the lock requires us to instantiate it in the
	StorageDomainManifest constructor which requires some reordering of the
	initialization steps.  This also affects the existing manifest_tests.
	The DMDK_VERSION key must always be present in the metadata passed into
	the StorageDomainManifest constructor since domainLock initialization
	needs to check the value.  BlockStorageDomainManifest objects must now
	always be created with a mocked LVM.

	When running with an SPM, the SPM role is protected by the Master
	Storage Domain's domain lock.  This lock is referred to as the
	cluster lock since it covers all domains.  In SPM-less (SDM) flows, we
	use each storage domain's lock as required.  For this reason, the
	acquireClusterLock, releaseClusterLock, and inquireClusterLock APIs are
	moved to acquireDomainLock, releaseDomainLock, and inquireDomainLock in
	the StorageDomainManifest but their original names are preserved in the
	StorageDomain.

	Continuous-Integration: Jenkins CI

2015-09-16  Liron Aravot  <laravot@redhat.com>

	hsm: lock pool when running upgradeStoragePool
	When running upgradeStoragePool we use the pool metadata to know which
	domains needs upgrade, having no pool lock means that races with flows
	that manipulate the pool metadata like activateSd and deactivateSd might
	occur.

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

	sp: deactivateSd - remove domain from pending for upgrade list
	When domain is deactivated its not cleared from the _domainsToUpgrade list,
	which causes it to hold wrong and unneeded information (the domain might be
	detached later from the storage pool). This patch makes sure the domain
	is cleared when deactivated.

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

2015-09-15  Nir Soffer  <nsoffer@redhat.com>

	safelease: Unbreak safelease on systemd
	spmprotect.sh depends on Vdsm pid file for fencing Vdsm when the SPM
	lease cannot be renewed. However, on systemd, we do not create Vdsm pid
	file.  When spmprotect tries to fence Vdsm it fails and reboots the
	host, killing all running vms.  This issue effects only v1 storage
	domains, typically old systems using dc compatibility version 3.0.

	Now we pass vdsm pid to spmprotect.sh helper script via command line
	argument, restoring safelease operation.

	Adding another argument to a script with 9 arguments is ugly, but I
	don't want to make risky changes to this delicate and critical code.

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

2015-09-15  Marcin Mirecki  <mmirecki@redhat.com>

	network: add ifcfg write hook
	Added a new hook point which is executed before and after
	an ifcfg file is writen on the host as a result of
	executing setupNetworks.
	An example can be a use case where the user would like
	to tweak the vdsm-produced ifcfg files by adding
	PEERDNS=no to it.
	The hook script receives a json file containing the
	following dict:
	name: the name of the interface being configured
	ifcfg_file: full path of the interface file being written
	config: the contents of the config file being written

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

2015-09-14  Yeela Kaplan  <ykaplan@redhat.com>

	sudoers: remove unused iscsid policies
	could've been removed on:
	https://gerrit.ovirt.org/#/c/305/

	Continuous-Integration: Jenkins CI

2015-09-14  Marcin Mirecki  <mmirecki@redhat.com>

	virt: vm with port mirroring  stuck in down state
	When powering off VM with port mirroring enabled the
	VM id down in the UI but stuck in down state in vdsm.

	The problem was that the 'tc' command was invoked
	twice when a vm was shutdown from the cli. The first
	time as a result of a libvirt life cycle event which
	deleted the qdisc entries for the vm, the second time
	it was invoked by the engine and failed as the qdisc
	entries were no longer there.
	The code invoking tc was moved to be after the if
	statement checking if the vm has already been released.

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

2015-09-14  Fred Rolland  <frolland@redhat.com>

	lvm: Check if device in VG before extend
	Before extending a VG, VDSM needs to check that none of
	the additional devices are not already part of the VG.

	Without this protection, LVM will create a new PV with the
	same device. After extending VG, its metadata will updated
	with new PV. As a result, the VG will be partial.

	pvs output after creating new PV with same device:
	    # pvs
	      WARNING: Device for PV 2fDjgH-TeKA-1Vy2-NMMv-GB9n-op0w-g2Nyrd not
	               found or rejected by a filter.
	      PV
	      /dev/mapper/360014054bf6dd7d14fd40c9ac3b5dbe8
	      unknown device

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1261531
	Continuous-Integration: Jenkins CI

2015-09-14  Tal Nisan  <tnisan@redhat.com>

	spec: Update lvm2 requirement
	lvm2-2.02.107 solved a race condition in LVM when concurrently
	activating the same LV multiple times (See
	https://bugzilla.redhat.com/878948).

	Although the current supported platforms (EL>=7.1 and Fedora>=21)
	already contain newer versions on LVM, explicitly requiring this is a
	good defensive measure, especially for old systems that have been
	gradually upgraded over several versions.

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

2015-09-12  Liron Aravot  <laravot@redhat.com>

	sp: startSpm - clusterlock inquire leads to failure
	Currently startSpm() is responsible for the pool upgrade, it attempts to
	upgrade the pool domains to the desired version. During the execution of
	startSpm() we attempt to retrieve the current spm status in order to compare
	it with the engine sent parameters - and in case of difference we log
	the info to the user.

	When a DC upgrade is performed when the DC is down from a version that uses
	V1 as the domains version to a version that uses the StoragePoolMemoryBackend
	we'll encounter a problem - because the StoragePoolMemoryBackend uses
	the information from the clusterlock only and the current clusterlock
	that is used on the domain might not support inquiring (safelease for
	example) which will cause it to throw InquireNotSupportError.
	As we use the inquired information just to display a warning, in case of
	a clusterlock that doesn't support inquiring we should just log it to
	the user and continue with starting the spm.

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

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

	virt: fix PEP8 in v2vTests.py
	Continuous-Integration: Jenkins CI

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

	configurator doesn't load pyc files under configurators folder
	configurator loads dynamically modules from configurators folder. It
	searches for py files only. In ovirt-node installation we install only pyc
	files and this caused us to miss all configurators modules in ovirt-node
	installation. The listmodules function now returns a set to avoid
	duplicate module names.

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

2015-09-10  Liron Aravot  <laravot@redhat.com>

	core: moving InquireNotSupportedError to storage_exception.py
	InquireNotSupportedError is currently defined in clusterlock.py, that
	prohibits from assigning a meaningful error code to that error and to
	use it outside of that class scope without using a different method then
	our wildly used one. In this patch its moved to storage_exception so
	we'll be able catch and inspect that error like any other clusterlock related
	error. The engine will use that error as well and will attempt to start
	the spm if getSpmStatus() will fail as we don't have the "current" spm
	information, on the worst case startSpm() will fail.

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

2015-09-10  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: make removeNic cope with a missing ifcfg file
	For 3.6 we need to determine HWADDR property. If an ifcfg file is
	not found, HWADDR is read from the system.

	l.append('NM_CONTROLLED=no\n') is now used instead of
	l += 'NM_CONTROLLED=no\n' with no functional change.

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

2015-09-09  Greg Padgett  <gpadgett@redhat.com>

	supervdsm: don't let _runAs return early due to EINTR
	When _runAs executes a command, it polls a pipe to determine status of
	that command.  The poll has a timeout, also allowing the child to be
	killed if execution takes too long.  If a stray signal is received by
	the parent process, it may cause the poll to return early, prematurely
	ending child command execution ending in unintentional failure.

	This is particularly prevalant when subsequent _runAs executions are
	performed.  Termination of the first will result in a SIGCHLD which
	interrupts polling for the second, as exposed by commit 777c36d6.

	Because poll will return early without an exception if the low-level
	call is interrupted, NoIntrCall() cannot be used and thus a new helper
	function is provided that retries based on the time elapsed since the
	call started.

	PEP-475 will handle this in Python 3.5, but in the meantime this
	workaround is needed.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1259310
	Continuous-Integration: Jenkins CI

2015-09-08  Francesco Romani  <fromani@redhat.com>

	caps: more precise emulated machines selection
	Current VDSM code fetches emulated machines from the section which matches
	first the required architecture.
	This works in the simplest (and the only recommended) case, but doesn't
	if, for any reason, there is more than one valid emulatore for a given
	architecture.

	The only known case is if the user managed to install qemu-kvm alongside
	plain qemu.

	This patch implements more robust capabilities fetching to deal with
	this corner case.

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

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

	scheduler: use single instance
	We used to have one instance of a scheduler used for periodic
	operations. With this patch we prepare code for using single scheduler
	in more places like jsonrpc server.

	Continuous-Integration: Jenkins CI

2015-09-08  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: report DHCP on devices only when configured (like for networks)
	As reporting of DHCP relies on reading of dhclient lease files, it is not
	reliable when a network is reconfigured to static addressing: unused leases
	indicate dhclient presence hours after it has been stopped (expiration time
	is usually in hours or days).

	The false indication has already been fixed for networks, now even their
	respective devices adhere to configuration to stop false positives.

	A year and half ago it was suggested first to rely on cmdlines on running
	dhclients (where network device is the last parameter for all network
	configurators). This fix is just a hacky, though little bandaid for the 3.6
	release. A proper fix will be considered for the 4.0 branch.

	testSetupNetworksAddDelDhcp now checks that DHCP stops being reported
	on a network device, in addition to its network.

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

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

	net: ifcfg: synchronous ifup
	Return device only after it's properly created and up. Without this
	check, device can be used before ready and it will end with failture.

	Disadvantage of this patch is slower network configuration
	(functional/networkTests.py was running 1000s instead of 700s).

	Continuous-Integration: Jenkins CI

	net: fix test_setupNetworks_on_external_bond
	In this test we manualy write slave names to bond's BONDING_SLAVES file.
	Unfortunately, when we try to enslave a nic in UNKNOWN state (left by
	a previous test), action explodes with
	'IOError: [Errno 1] Operation not permitted'.

	Now we set nics explicitly down before enslaving.

	Continuous-Integration: Jenkins CI

2015-09-07  Martin Sivak  <msivak@redhat.com>

	Add an empty metadata qos element to the created domain
	Libvirt reports an error every time VDSM queries for the metadata
	element when there is none. This patch adds an empty default
	element to get rid of those errors.

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

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

	automation: enable pep8
	We now have a single check-patch job.

	Continuous-Integration: Jenkins CI

2015-09-06  Candace Sheremeta  <cshereme@redhat.com>

	vdsm: Image.[download|upload] Description
	Changed the description for Image.download and Image.upload methods
	in vdsmapi-schema.json in order to more accurately reflect
	the nature of these methods' methodArgs parameters

	Continuous-Integration: Jenkins CI

2015-09-04  Javier Coscia  <ciudavitacos@gmail.com>

	Fix string in diskunmap hook README file
	diskunmap README file has a copy/paste mistake. This patch fixes it.

	Continuous-Integration: Jenkins CI

2015-09-04  Fred Rolland  <frolland@redhat.com>

	hsm: Support checkStatus param in getDeviceList
	In order to populate the 'status' field, the getDeviceList
	verb perform a create PV test. This operation is expensive, and in
	setups with large number of devices it will cause performance issue.

	However, the 'status' field is not always needed. This patch
	add an optional 'checkStatus' boolean parameter to getDeviceList.
	By default it will be True to keep same behavior as before.

	If specified as False, the PV create test will be skipped and the
	'status' field will be populated as 'unknown'.

	The flow before this patch was:
	    - Engine calls getDeviceList, VDSM perform status check for each
	      devices, possibly times out
	    - User select a few devices (typically one)
	    - Engine warn user about used devices

	The flow with this patch:
	    - Engine calls getDeviceList, skipping status check
	    - User select a few devices (typically one)
	    - Engine calls getDeviceList, checking status only for selected
	    - Engine warn user about used devices

	On a setup of 100 ISCSI devices, the command took 3s without
	the PV create test against 58s with the test.

	real    0m2.987s
	user    0m0.263s
	sys     0m0.028s

	real    0m57.769s
	user    0m0.265s
	sys     0m0.024s

	Examples:
	    getDeviceList
	        return all devices
	    getDeviceList FCP
	        return only FCP devices
	    getDeviceList FCP True
	        return only FCP devices and perform PV create test
	    getDeviceList ISCSI False guid1 guid2
	       return info for guid1 and guid2, assuming ISCSI type
	       without performing PV create test

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

2015-09-04  Ondřej Svoboda  <osvoboda@redhat.com>

	network.api: EL7's dhclient doesn't support -df so stop using it there
	This is a quick fix only. A proper solution for the affected bug will
	have to fall back to -lf (a copy of a lease file).

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

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

	jsonrpc: fd leak
	We need to make sure that there is no reference to objects which holds
	a socket because m2c closes socket only when its object is garbage
	collected.

	This patch fixes two places where we had direct or indirect references
	to socket object. In _StompConnection we kept a reference to it but now
	we use dispatcher.socket. We passed connection object to JsonRpcServer
	in order to get get local address which slowed down collection of socket
	object (different thread) which could lead to reaching fd limit allowed
	for the process. We removed this issue by passing local address to the
	server instead.


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

2015-09-02  Idan Shaby  <ishaby@redhat.com>

	volume: fix failing metadata parsing
	The call to "split" in file and block volumes expects only one "=" per
	line. This is not a good behavior since there might be fields that
	contain some more "=" (like Description).
	This patch limits the number of splits to 1, so that the fields values
	can contains some other "=".

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1258835
	Continuous-Integration: Jenkins CI

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

	multipath: Write multipath.conf atomically
	We used to create a temporary file, and then copy (using cp) the
	temporary file to final location.  Using external process to copy files
	on local storage is not needed, we can use the Python standard library
	for that. Also, this operation is not atomic, and can leave half written
	file if the write is interrupted in the middle.

	Now we use NamedTemporaryFile(delete=False), to create a temporary file
	safely, but do not delete it, so we can rename the file atomically.

	Continuous-Integration: Jenkins CI

2015-09-02  Amit Aviram  <aaviram@redhat.com>

	vm: Libvirt quering after disk detach operation addition.
	As stated in libvirt documentary, after detaching a device using
	virDomainDetachDeviceFlags, we need to verify that this device
	has actually been detached.

	Currently we use virDomainDetachDevice. However- That function behaves
	the same in that matter. (Currently it is not documented at libvirt's
	API docs- but after contacting libvirt's guys it turned out that this
	is true. Bug 1257280 opened for fixing the documentation.)

	Not verifying that the device was detached, as mentioned above, cause
	various problems, as hotunplugDisk could return a success result
	while it did not actually succeeds to detach the disk.

	This patch adds this functionallity to hotunplugDisk, and after some
	timeout fails the operation if the disk was not detached.

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

	vm.py: State saving in hotunplugDisk.
	VM's state was saved before detatching a disk in hotunplugDisk.

	Saving vm's state should be performed only AFTER vdsm is actually
	detaching the disk, otherwise the disk will remain in xmlDesc and
	be calculated in the vm's hash.

	This causes a bug in the engine's VM monitoring: the engine
	gets the same hash as before the disk was unplugged, thus does not
	update the disk's status.

	Due to a possible race while hotunplugging, where VM monitoring starts
	updating the VM devices while the disk is still plugged- then
	hotplugging is performed and succeeds, then monitoring is resumed and
	sets the disk to be still plugged, this patch is critical for the
	engine to be synced with the actual state of the VM's disks.

	Please note that this patch is partial, as detachDevice is async. That
	means that still the hash can be calculated wrong in case the disk was
	not detached yet. This fix will be included in a following patch.

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

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

	concurrent: Add support for target function kwargs
	Turns out we pass kwargs to some threads, so we must support this
	syntax.

	Relates-To: https://bugzilla.redhat.com/1141422
	Continuous-Integration: Jenkins CI

2015-09-01  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: rename appropriateDevice to appropriateMultipathDevice
	The appropriateDevice method inside supervdsm is inappropriately named
	as it is only used for multipath devices. This patch specializes the
	name so it is possible to write more of these specialized methods
	with correct specific names.

	Continuous-Integration: Jenkins CI

	supervdsm: move udevadm methods to udevadm module
	udevadm module already exists, so there is no reason to keep the
	method logic in supervdsm. udevadm also provides us with a means to
	execute a command, it is therefore used instead of EXT_UDEVADM. To
	keep the behavior same, Error raised by trigger is caught in
	supervdsm and re-raised as IOError (same as before the patch).

	Continuous-Integration: Jenkins CI

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

	storage_exception: Show data in MetadataOverflowError
	This should help to debug such issues. Previously we raised an error
	without any details, making it hard to debug such issue.

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1258097
	Continuous-Integration: Jenkins CI

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

	Refactor v2v jobs for reusability
	The jobs management infrastructure in v2v.py is general purpose and
	reusable.  For example, storage would like to use the exact same thing
	to manage long-running storage operations.  In order to make this
	possible, factor out the job management parts of v2v.py into a new
	module jobs.py and create a generic Job class which contains the
	complete interface needed by the job manager.  In addition, add some
	basic tests for Job objects and their management.

	Continuous-Integration: Jenkins CI

2015-09-01  Shahar Havivi  <shaharh@redhat.com>

	schema: add v2vJobs to HostStats
	v2vJobs reports via HostStats and needs to be declared in schema

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	v2v: add test for getOvaInfo verb
	Continuous-Integration: Jenkins CI

2015-08-31  Adam Litke  <alitke@redhat.com>

	make v2v errors reusable
	We plan to introduce a generic jobs module which will be used for
	monitoring and managing long running operations that are tied to a
	specific host.  Errors for a job already existing (JobExistsError), job
	not found (NoSuchJob), and job still running (JobNotDone) should be
	usable by the new infrastructure.  Let's drop the V2V prefixes from the
	names and update the error messages to remove v2v-specific language.

	This does not affect the engine<-->vdsm API since the error codes remain
	unchanged.

	Continuous-Integration: Jenkins CI

2015-08-31  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: generalize udevTrigger method
	udevTrigger in it's current state is tied to storage code as it does
	property match against DM_NAME. USB devices require attribute match for
	devnum and busnum, and we should be somewhat able to do both these
	matches in a more generic function.

	This patch refactors udevTrigger to include attr_matches and
	property_matches. When an iterable of attribute-value iterables is sent,
	they're expanded to the correct udevadm command.

	Continuous-Integration: Jenkins CI

2015-08-31  pkliczewski  <piotr.kliczewski@gmail.com>

	m2c: rename m2c modules
	In preparation for configurable usage ssl or m2crypto modules we need
	to distinguish modules which use m2c.

	Continuous-Integration: Jenkins CI

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

	fencing: Remove unneeded traceback decorator
	Commit e7ea52c7614c (vdsm: making PM 'on' and 'off' sync) stopped
	running fence() in a background thread, but left the @utils.traceback
	decorator. This decorator was needed when running in a background thread
	to avoid silent failures, but when running in a request thread, we have
	proper logging in place.

	Continuous-Integration: Jenkins CI

2015-08-30  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: improve which ipv4 addr is reported.
	The current code assumed that additional configured addresses for a
	device would have the 'secondary' flag. However, this is no longer
	true in recent kernels, as multiple primary addresses can be set for
	a device.

	The improvement is that now we will check if any of the addresses is
	in the subnet of the gateway and report the first that does. If we
	can not find one, we return the first set ip.

	Continuous-Integration: Jenkins CI

2015-08-30  Piotr Kliczewski  <piotr.kliczewski@gmail.com>

	Revert "tests: functional - convert to run over jsonrpc"
	Due to regression we need to revert this patch.

	This reverts commit 9d5a4671e6ee5b7d70e849dc54591d9e21fb1ef3.

	Continuous-Integration: Jenkins CI

2015-08-30  Tal Nisan  <tnisan@redhat.com>

	Cleanup of storage domain creation in hsm.py
	This patch changes the specific per domain type creation handling is done
	to remove duplicate code, allow uniform error handling when we call the
	actual creation and make the flow more clear

	Continuous-Integration: Jenkins CI

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

	multipath: Replace specific device sections with all_devs section
	We require "no_path_retry fail" setting to ensure that io requests are
	not queued, which may lead to blocking of multiple unrelated threads in
	vdsm when performing lvm, multipath or scsi rescan operations.

	We had several specific device sections, overriding "no_path_retry", but
	these settings had to copy the built-in device settings, and if the
	built-in settings are changed, our copied version would hide the changed
	settings.

	multipath supports now a new "all_devs yes" device attribute. A device
	section using this attribute overrides any setting defined in the
	built-in devices. Unlike regular device setting, we don't need to copy
	the setting from the built-in devices, so new settings in multipathd are
	respected.

	This patch removes the specific device settings and replace them with
	magic all_devs section.

	This change also fixes the device sections for "COMPELNT/Compellent Vol"
	(BZ1225162) and "HITACHI"/"DF.*" devices, which were missing the
	built-in device settings. Using all_devs device, we inherit the built-in
	settings we do not override.

	Since this change fixes a very important bug, we also bump the revision
	tag, forcing a configuration during upgrades.

	Note: all_devs is not supported yet in Fedora 21 (BZ1253799). Users on
	Fedora 21 may need to add specific device configuration manually for
	optimal configuration.

	Backport-To: 3.6
	Backport-To: 3.5
	Bug-Url: https://bugzilla.redhat.com/880738
	Bug-Url: https://bugzilla.redhat.com/1225162
	Continuous-Integration: Jenkins CI

2015-08-28  Francesco Romani  <fromani@redhat.com>

	tests: split vm operation tests
	vmTests.py is going down the same route as vm.py.
	Luckly, here it is easier to split the module, so let's
	start extracting so-called 'vm operation' tests.

	Only-Move: yes
	Continuous-Integration: Jenkins CI

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

	Limit sleep_millisecs to minimum 10
	According to the former KSM controller, ksmtuned, 10 should be the
	minimum value for sleep_millisecs:

	  48 sleep=$[KSM_SLEEP_MSEC * 16 * 1024 * 1024 / total]
	  49 [ $sleep -le 10 ] && sleep=10      <---- 10 is the minimum
	  50 debug sleep $sleep

	Systems with a low sleep_millisecs number will run ksmd daemon without
	interruption, causing a very high cpu time consumption.

	This patch limits sleep_millisecs to the minimum of 10.

	Bug-Url: http://bugzilla.redhat.com/1256949
	Continuous-Integration: Jenkins CI

2015-08-27  Ondřej Svoboda  <osvoboda@redhat.com>

	network: bridge inherits DHCP unique identifier from its DHCP-enabled port
	On Fedora 21 or newer, dhclient has started to use DHCP unique identifier
	with a link-layer address and time (DUID-LLT) to identify a host.

	When a host (e.g. oVirt node) is being added to engine's management network
	while its NIC used DHCP, running dhclient on the bridge on top of the NIC
	results in connectivity loss because the new dhclient is unaware of the DUID
	used previously (dhclient should store it somewhere; bug to be reported soon)
	and so the newly-generated DUID contains a different time value (albeit the
	bridge's MAC address is the same as the NIC's), thus the host is given
	a different IP address as well.

	This patch assures that the original DUID is read from the NIC's dhclient
	lease file by the dhclient running on the bridge for all network
	configurators. A new functional test (a specialized copy of
	testSetupNetworksAddDelDhcp) verifies the fix.

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

2015-08-27  Amit Aviram  <aaviram@redhat.com>

	tests: Typo in vmStorageTests.py
	Should be written "Return".

	Continuous-Integration: Jenkins CI

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

	config: Improve options documentation
	Fix bogus documentation for vm_watermark_interval, which seems to
	confuse both users and developers. This option has nothing to do with
	statistics, and is used for automatic extension of thin provisioned
	volumes on block storage.

	Add the missing documentation for the highly confusing
	volume_utilization_percent and volume_utilization_chunk_mb.

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

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

	v2v: Try to be nicer to other processes
	Under the hood, virt-v2v is running qemu-img convert. We use high nice
	and ionice values when running qemu-img convert, but we did not specify
	such options when running virt-v2v. This patch run virt-v2v with the
	same setting uses for qemu-img convert.

	Backport-To: 3.6
	Relates-To: https://bugzilla.redhat.com/1243935
	Continuous-Integration: Jenkins CI

2015-08-26  Adam Litke  <alitke@redhat.com>

	storage: simplify hasVolumeLeases
	Whether a storage domain has volume leases depends on the lock
	implementation used, not the storage domain version.  SafeLease never
	supports volume leases but LocalLock and SANLock both do.  Simplify
	hasVolumeLeases and the clusterLock tables by moving the support flag
	into the class implementing the lock.

	Continuous-Integration: Jenkins CI

2015-08-26  Francesco Romani  <fromani@redhat.com>

	virt: add and use vm.acpiReboot() method
	The VM powerdown flow, implemented into the vmpowerdown.py module,
	needs to call libvirt APIs to trigger the actual shutdown or reboot
	operations.

	To do so, it directly accesses the Vm._dom private attribute, which
	is impolite and evil.

	This patch adds acpiReboot public method, with built-in protection
	against asynchronous QEMU death.
	This of course adds more code to the already fat vm.py, but improves
	isolation among modules, which is a greater good.

	Related-To: https://bugzilla.redhat.com/1154389
	Continuous-Integration: Jenkins CI

	vm: make acpiShutdown handle NotConnectedError
	In the Vm shutdown flow it is possible that the domain is
	disconnected asynchronously as in any other Vm flow.

	This patch makes Vm.acpiShutdown() handle the
	sudden domain disconnections in a graceful manner.

	vmpowerdown needs to be aware if acpiShutdown failed
	for this reason, so it can go ahead with the callback
	chain without wasteful waits,

	Backport-To: 3.6
	Bug-Url: https://bugzilla.redhat.com/1154389
	Continuous-Integration: Jenkins CI

2015-08-26  Ala Hino  <ahino@redhat.com>

	gluster: Publish gluster get volume info
	In 3.6 we use glusterVolumeInfo API to get gluster volume info in order to
	mount gluster to backup volume servers.  glusterVolumeInfo API is defined in
	vdsm/gluster/cli.py and is imported to supervdsm. In vdsm/gluster/cli.py there
	are APIs that are used to manage gluster volumes; however, we don't want to
	expose all these APIs in supervdsm unless gluster is used, while we do want to
	expose getGlusterVolumeInfo.  To achieve this goal, we expose RHEV_ENABLED
	param. With this change, gluster API defined in vdsm/gluster/cli.py exposed on
	supervdsm either when building with gluster or when building on RHEV.

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

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

	Revert "supervdsm: Decorator for supervdsm proxied calls."
	I've merged commit 9fad76d2075f315ebe48212508fe9b677d74dfc8
	prematurely, before proper discussion about its merits and
	disadvantages.

	One disadvantage is the relative ease of decorating a
	function and then, implicitly, having it run as root in all
	contexts.

2015-08-26  Ala Hino  <ahino@redhat.com>

	gluster:cleanup: Remove unnecessary wrapper
	Existing wrapper is redundant as it does not provide any logic to the method.
	Hence, the decision to remove it.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-25  Dima Kuznetsov  <dkuznets@redhat.com>

	ppc64HardwareInfo: move into lib
	Continuous-Integration: Jenkins CI

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

	multipath: Remove unneeded "features" configuration
	We used to override "features 0" to disable "queue_if_no_path" feature.
	However, this configuration also disable other unrelated features, that
	may be needed for optimal configuration.

	We use "no_path_retry fail", which removes the feature
	"queue_if_no_path" if it exists in the "features" option.

	For example, if a built-in device is using:

	    features "3 queue_if_no_path pg_init_retries 50"

	When overriding "no_path_retry fail", the device features becomes:

	    features "2 pg_init_retries 50"

	Now we override only "no_path_retry fail" and leave "features" as is.

	Backport-To: 3.6
	Relates-To: https://bugzilla.redhat.com/880738
	Continuous-Integration: Jenkins CI

2015-08-25  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: remove guid from __udevReloadRules
	__udevReloadRules required 'guid' argument, but due to nature of the
	call it's not required and can be confusing (due to the fact that all
	rules are reloaded).

	Continuous-Integration: Jenkins CI

2015-08-25  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: fix xfs filesystem is created with wrong inode size
	Currently brick create function creates an xfs filesystem with
	inode size of 256 for brick which uses raid0 or JBOD devices.

	This patch uses the striping parameters "-d su=stripe_unit_size,
	sw=stripe_width_in_number_of_disks" during xfs file system
	create for RAID6. For RAID 10, JBOD and other devices it omits
	the "-d su=<>,sw=<>" option and set only the inode size to 512
	and the directory block size to 8192.

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

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

	tool: Cleanup configurators imports
	Make the import nicer:

	- Replace unneeded multi-line imports with single line imports
	  multi-line import should be done with (), not with fragile \
	  but there was not real need for any of these imports.
	- Unify absolute import syntax
	  from .import foo -> from . import foo
	- Unify whitespace around imports
	- Import names in the same order (e.g. YES, NO, MAYBE)

	Continuous-Integration: Jenkins CI

2015-08-25  Francesco Romani  <fromani@redhat.com>

	sampling: make _getInterfaceStats a function
	The HostStatsThread._getInterfaceStats() method could
	be easily made a free function, to reduce the coupling
	and to improve the testability.

	Continuous-Integration: Jenkins CI

2015-08-25  Dima Kuznetsov  <dkuznets@redhat.com>

	dmidecodeUtil: move into lib
	Continuous-Integration: Jenkins CI

2015-08-25  Francesco Romani  <fromani@redhat.com>

	sampling: make _getCpuCoresStats a function
	HostStatsThread._getCpuCoreStats() method can be
	easily made a free function, to reduce the coupling
	and to make it more testable.

	Continuous-Integration: Jenkins CI

	virt: introduce virdomain module
	Add virdomain module to hold the
	libvirt Domain wrapper that virt code needs,
	to avoid ugly circular dependencies between
	periodic.py, sampling.py and vm.py, and last
	but not least, to shed some load from vm.py

	This patch does the code move, but it is peppered
	with trivial rename and trivial fix (inherit from object).

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	periodic: make VmDispatcher ignore TooManyTasks
	VmDispatcher is meant to make N independent operations
	from one (VM bulk sampling), being N the number of active VMs.

	To fulfil this claim, if one of the N independent calls fails with
	TooManyTasks, we go on attempting running the rest of the calls, even
	though it is highly likely that once one TooManyTasks error is
	encountered, many subsequent dispatch() attempts would fail.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

	vmstats: handle known-missing stats
	In some well-known and benign causes, libvirt will not
	return the complete set of bulk stats.

	It is dangerous to blindly ignore KeyErrors when some
	fields are missing, because this can hide other bugs.
	But it is safe to ignore them in the aforementioned cases.

	This patch lays down the basic pieces to safely ignore
	the errors, starting with the first loud and known case:
	migration destination VM.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

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

	make: unbreak pyflakes test
	Much like pep8 which was fixed in https://gerrit.ovirt.org/44416
	pyflakes test, too, was inadvertantly broken by
	https://gerrit.ovirt.org/43845.

	This patch reverts another bit of that message, while fixing some
	pyflakes damange accoumulated since its introduction.

	Backport-To: 3.6
	Continuous-Integration: Jenkins CI

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

	ceph: Report librbd1 version also on Debian
	In commit c447c3964e (ceph: Report librbd1 package details) Debian
	support was missing. This patch add the missing configuration.

	Continuous-Integration: Jenkins CI

	caps: More readable and maintainable packages list
	Long lists that do not fit in one line are easier to work with when they
	are formatted one item per line, and sorted. For example, diffs becomes
	single line change, as can be seen in the next commit.

	Continuous-Integration: Jenkins CI

2015-08-24  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: remove unneeded version check
	We now require higher version of systemd than 181, therefore checking
	that version > 181 is not required anymore. This also removes the need
	for branch in __udevReloadRules because the argument will always be
	--version.

	Continuous-Integration: Jenkins CI

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

	multiapth: Tell the user about backups
	After backing multipath.conf, tell the user about the backup file, in
	case she would like to remove the backups later.

	Example output:

	    # vdsm-tool configure --module multipath

	    Checking configuration status...

	    multipath requires configuration

	    Running configure...
	    Backup previous multipath.conf to '/etc/multipath.conf.201508192113'
	    Reconfiguration of multipath is done.

	    Done configuring modules to VDSM.

	Continuous-Integration: Jenkins CI

2015-08-24  Dima Kuznetsov  <dkuznets@redhat.com>

	supervdsm: Decorator for supervdsm proxied calls.
	These decorators allow automatic dispatch to supervdsm process, in this
	way:

	@supervdsm.proxied_call
	def some_func():
		this_requires_root()

	Calling the above function from root context (such as supervdsm) will
	execute it as regular code, but when calling from non-root context,
	it will try and dispatch it to supervdsm process.

	Inside the supervdsm process, it will attempt to import the requested
	module and retrieve the relevant function, then call it and return the
	result.

	Continuous-Integration: Jenkins CI

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

	debug: Make it easy to debug start failures
	If Vdsm fail to start before logging was configured, it used to log a
	message to syslog and exit silently. This make it hard to debug from the
	shell.

	This patch raises FatalError in the places that used to log to syslog
	and exit.  In the exception handler we log to syslog and re-raise the
	exception, so the traceback is available in the shell, or in systemd
	journal.

	For example, instead of:

	    # /usr/share/vdsm/vdsm
	    (no output)

	We get now:

	    # /usr/share/vdsm/vdsm
	    Traceback (most recent call last):
	      File "/usr/share/vdsm/vdsm", line 271, in <module>
	        main()
	      File "/usr/share/vdsm/vdsm", line 253, in main
	        __assertVdsmUser()
	      File "/usr/share/vdsm/vdsm", line 230, in __assertVdsmUser
	        % (constants.VDSM_USER, username))
	    __main__.FatalError: Not running as 'vdsm', trying to run as 'root'

	In the system log we will see this message:

	    Aug 11 20:58:34 hostname vdsm: VDSM failed to start: Not running as
	    'vdsm', trying to run as 'root'

	Continuous-Integration: Jenkins CI

2015-08-24  Adam Litke  <alitke@redhat.com>

	StorageDomainManifest: move image and volume enumeration
	Move the code responsible for enumerating volumes and images to the
	StorageDomainManifest.

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: deleteImage and deps
	Next on the list of functions to move into the StorageDomainManifest is
	deleteImage and its dependencies.

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: Move getRepoPath and other metadata getters
	Move a bunch of basic metadata reader functions into the manifest.

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: move extend and extendVolume
	The functions 'extend' (extend storage domain) and 'extendVolume' can be
	safely moved into BlockStorageDomainManifest.  This patch pulls in quite
	a few utility functions that these two operations depend upon.

	Continuous-Integration: Jenkins CI

2015-08-24  Ondřej Svoboda  <osvoboda@redhat.com>

	iproute2, pyroute2: models.Bond checks for .unifiedPersistence, so add it
	Commit 30a3fc25 fixed a condition in Bond.configure for ifcfg configurator
	that has a .runningConfig member only when using unified persistence, but
	broke the other two configurators that use unified persistence implicitly.

	The simplest fix (and even self-documentation) is to add .unifiedPersistence
	to them.

	Continuous-Integration: Jenkins CI

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

	concurrent: Introduce concurrent.thread() utility
	We are repeating this boilerplate code everywhere:

	    def __init__(self):
	        self._thread = threading.Thread(target=self._run, name="foobar")
	        self._thread.daemon = True

	    @utils.traceback(on=log.name)
	    def _run(self):
	        # stuff to run in thread

	This boilerplate is going to become worse since we want to set thread
	system name in the thread target method.

	This patch introduces concurrent.thread() utility function, eliminating
	the boilerplate:

	    def __init__(self):
	        self._thread = concurrent.thread(self._run, name="foobar",
	                                         logger=self.log.name)

	    def _run(self):
	        # stuff to run in thread

	This utility will be extended later to set system thread name based on
	Python thread name.

	Continuous-Integration: Jenkins CI

2015-08-24  Francesco Romani  <fromani@redhat.com>

	tests: temporarily exclude few tests to restore CI
	A few network tests require the TUN device, which is not available
	under mock environments.

	Furthermore, when run under the new CI infrastructure which leverages mock,
	we can see this error:

	======================================================================
	ERROR: testGetBondingOptions (netinfoTests.TestNetinfo)
	----------------------------------------------------------------------
	Traceback (most recent call last):
	  File "/tmp/run/tests/monkeypatch.py", line 133, in wrapper
	    return f(*args, **kw)
	  File "/tmp/run/tests/testValidation.py", line 105, in wrapper
	    return f(*args, **kwargs)
	  File "/tmp/run/tests/testValidation.py", line 145, in wrapper
	    return f(*args, **kwargs)
	  File "/tmp/run/tests/netinfoTests.py", line 290, in
	testGetBondingOptions
	    with open(netinfo.BONDING_MASTERS, 'w') as bonds:
	IOError: [Errno 13] Permission denied: '/sys/class/net/bonding_masters'
	-------------------- >> begin captured logging << --------------------
	root: DEBUG: /sbin/modprobe bonding (cwd None)
	root: DEBUG: FAILED: <err> = ''; <rc> = 1
	--------------------- >> end captured logging << ---------------------

	----------------------------------------------------------------------

	This happens if the system cannot load modules inside the chrooted
	mock environments.

	We temporarily NOSE_EXCLUDE away the problematic jobs in order to
	restore CI automated tests. We will restore those tests ASAP once
	fixed to run properly in mocked environments.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-24  David Caro  <dcaroest@redhat.com>

	Adding check-patch ci script
	For now only runs the vdsm unit tests

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-23  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: fix TypeError in exception.py
	Currently gluster cli functions throws error in exception due to a bug
	in python multiprocess 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

	Traceback (most recent call last):
	  File "/usr/share/vdsm/rpc/BindingXMLRPC.py", line 1136, in wrapper
	    res = f(*args, **kwargs)
	  File "/usr/share/vdsm/gluster/api.py", line 80, in wrapper
	    rv = func(*args, **kwargs)
	  File "/usr/share/vdsm/gluster/api.py", line 686, in createBrick
	    raidParams)
	  File "/usr/share/vdsm/supervdsm.py", line 50, in __call__
	    return callMethod()
	  File "/usr/share/vdsm/supervdsm.py", line 48, in <lambda>
	    **kwargs)
	  File "<string>", line 2, in glusterCreateBrick
	  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 726, in _callmethod
	    kind, result = conn.recv()
	TypeError: ('__init__() takes exactly 2 arguments (1 given)',
	    <class 'gluster.exception.GlusterHostStorageDeviceInUseException'>, ())

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1231722
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	gluster: fix AttributeError in exception.py
	Currently whenever an exception raised with extra arguments
	apart from rc, out, err; the exception failed with
	AttributeError due to base class member variables are not
	initialized properly.

	This patch fixes this AttributeError issue by calling the
	ancestor's __init__ method explicitly to invoke base class
	constructor which will initialize the base class member
	variables like rc, out and err.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1231722
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-23  Ala Hino  <ahino@redhat.com>

	gluster: Report glusterfs-cli package details
	Report glusterfs-cli package details in getVdsCaps output.
	Engine will use this information to validate adding a host
	or storage domain to a data center.

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

2015-08-23  Ido Barkan  <ibarkan@redhat.com>

	net: tests: use ipwrapper functions in nettestlib
	No reason to repeat the code there.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-23  Greg Padgett  <gpadgett@redhat.com>

	storage: validate vdsm rwx permissions for file storage
	VDSM needs permission to write to file-based storage.  Presumably the
	existing check for qemu permissions or a subsequent failure would throw
	an error; however, these errors were not always clear nor did they help
	the user (e.g. a general Error 100, such as in the referenced bug).

	With an explicit check, we can ensure the failure happens up-front and
	gives a meaningful error message to the user.

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

2015-08-23  Francesco Romani  <fromani@redhat.com>

	vm: remove unused 'output' value in response
	The 'output' value is not documented in schema, and apparently
	Engine doesn't care about it. This patch removes it.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-22  Yeela Kaplan  <ykaplan@redhat.com>

	tests: functional - convert to run over jsonrpc
	will run functional tests by default over jsonrpc

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1138381
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-19  Ido Barkan  <ibarkan@redhat.com>

	net: tests: rename Interface methods.
	Now they correspond better to the iproute2 commands that they call

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	vm: fix misleading XML log
	When VDSM is asked to create a new VM, among the other things,
	it builds the domain XML according to the configuration sent
	by client (aka Engine) and run the before_vm_start hook.

	This is done also on the dehibernating (aka migration from file)
	path, for no apparent good reason.

	This is wasteful and useless at best, and most likely misleading,
	because VDSM logs the XML it produced, which is *not* what is
	gonna be used in the dehibernation path.

	This patch fixes this issue loggging the XML which is actually
	about to be fed to libvirt, not the useless one regenerated
	by VDSM.

	Backport-To: 3.6
	Related-To: https://bugzilla.redhat.com/1190210
	Related-To: https://bugzilla.redhat.com/1234197
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-19  Ido Barkan  <ibarkan@redhat.com>

	net: tests: new style classes in nettestlib
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	multipath: Use tuple for constant data
	The old tag list is not going to change during runtime, so better keep
	it in a tuple to make our intent more clear.

	Continuous-Integration: Jenkins CI

	multipath: Keep tags sorted from newer to older
	When reading the code or adding a new tag, it is little nicer that the
	recent tags are on the top of the list. When searching for tags, it
	makes more sense to search the most recent tags first.

	Continuous-Integration: Jenkins CI

	multiapth: Reorganize constants and improve documentation
	It is nicer to work with code when related items are grouped together
	and when groups have documentation.

	Now the module start with a description of the VDSM REVISION tag, which
	must be in the first line of the file, followed by the current and old
	tag values.

	Then we discuss the VDSM PRIVATE tag, which may be in the second line,
	followed by the current and old tag values.

	Previously you had to read the code to understand this logic.

	Continuous-Integration: Jenkins CI

	multipath: Reformat old tags list
	It is easier to work with long lists when we have one item per line, and
	all lines are terminated by ",". This is not possible in some languages,
	but Python wisely allow this syntax. Adding a new tag is now one line
	change and the diffs are nicer.

	Continuous-Integration: Jenkins CI

2015-08-19  Ido Barkan  <ibarkan@redhat.com>

	net: fix start_devices.
	a device named bond9.99 is a vlan device, not a bond.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	net: monitor: string formatting enhancement
	suggested by osvoboda.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: sysctl: enable ipv6
	Enable sysctl.py:disable_ipv6(dev) to set /pro/sys/.../disable_ipv6
	also to '0'. This is needed in following Open vSwitch hook patch.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: tests: make monitor test_events_keys more readable
	When this tests fails, print lists of expected and caught events.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	tests: Add RWLock tests
	Current RWLock looks too complex and has no tests. This patch fixes the
	later issue, so we can safely simplify the implementation later.

	Only one statement is not covered by the tests, handling of Queue.Full -
	this can never happen since we use unbounded queue. This code should
	be removed.

	The new tests reveal that lock demotion is broken; when replacing an
	exclusive lock with shared lock, we actually continue to hold an
	exclusive lock until we release the lock. This test is marked as broken
	so to avoid breaking the build.  I think we don't use lock demotion in
	the current code and this should be fixed by not supporting demotion.

	Continuous-Integration: Jenkins CI

	multipath: Use more meaningful names
	Since we are in the context of the multipath module, the MPATH or
	MPATH_CONF prefix is not helping. This patch hopefully make the code
	nicer to work with.

	Continuous-Integration: Jenkins CI

2015-08-18  Francesco Romani  <fromani@redhat.com>

	vm: periodic: NumaInfoMonitor doesn't need jobs
	The Vm.isDomainReadyForCommands() is a borderline hack
	that relies on virDomainGetControlInfo, which, in turn,
	tells the caller about the hypervisor monitor traffic.

	In the case of NumaInfoMonitor, this protection has zero
	positive value (only adds libvirt traffic) because
	the libvirt API used internally by NumaInfoMonitor do not
	need to access the QEMU monitor, but only data from /proc.

	Hence, remove the call to reduce libvirt traffic and
	to reduce false negative reported:

	periodic/3::WARNING::2015-08-12
	15:02:57,855::periodic::253::virt.periodic.VmDispatcher::(__call__)
	could not run <class 'virt.periodic.NumaInfoMonitor'> on
	[u'5b44bc17-99ba-4c9d-a3c5-fcd913c87361']

	X-Backport-To: 3.6
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-18  Ido Barkan  <ibarkan@redhat.com>

	net: create bond properly during start_devices
	This method, that is used during networks rollback, calls ifup on
	all ifcfg files it knows of. However, to ifup a bond, one needs to
	manually create it first, by writing '+bondingName' into
	/sys/class/net/bonding_masters . Ifcfg configurators already does
	so when creating bonds. Skipping this step causes ifup to fail and
	complain: 'Device bond11 does not seem to be present, delaying
	initialization.'
	This also fixes
	testSetupNetworksEmergencyDevicesCleanupBondOverwrite which is
	almost never run because it is a slow test.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	net: tests: add requiresUnifiedPersistence decorator
	So we can stop repeating
	if vdsm.config.config.get('vars', 'net_persistence') == 'ifcfg':
	    ...
	boiler plate.

	Continuous-Integration: Jenkins CI

2015-08-18  Francesco Romani  <fromani@redhat.com>

	vmstats: network: avoid ZeroDivisionError
	For still under investigation case, after migration
	sometimes vmstats code is fed with zero-intervalled samples.
	While we investigate the root cause, handle gracefully ZeroDivisionError
	adding guards in the public functions that have an 'interval' argument.

	The only left one was 'networks', so this patch fixes that.

	It is not good enough to generalize the check in vmstats.produce()
	because the relevant functions (cpu, disks, networks) are part of
	the public API of the module, so they should handle bad input properly.

	To improve testability, we fix the return value of the aforementioned
	functions. The return value is meant to be used only in testing.

	X-Backport-To: 3.6
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	vmstats: make nic_traffic private
	The nic_traffic() was never meant to be public, so
	this patch makes it private.
	Only renaming.

	X-Backport-To: 3.6
	X-Rename-Only: yes
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	clientIF: add logs during the recovery
	The recovery flow is supposed to be sporadic, but it
	is nevertheless very important.
	The current flow is pretty opaque, and on big setups
	it may take some time, leaving the admin to guess
	what's going on.

	This patch adds logs during the process, to make it
	obvious what is happened, what is going on and what
	is left to do.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	vm: do not log known missing alias
	Libvirt will not give back aliases for some devices, e.g.
	graphic devices.
	Avoid to worry the user and mislead troubleshooting with
	error logs in those, well known and usually harmless cases.

	X-Backport-To: 3.6
	Related-To: https://bugzilla.redhat.com/1248788
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-17  Ido Barkan  <ibarkan@redhat.com>

	net: always persist ifcfg files.
	Currently the persistence of ifcfg files is only done during
	setSafeNetworkConfig. But, if the user somehow opts out of this (by
	unticking this option in engine, or if setupNetwork is called out of
	this flow (e.g. vdsm-restore-net-config) then vdsm unpersists the
	ifcfg files. If then the host reboots without persisting the
	unpersisted ifcfg files, those files are gone during boot since they
	are not part of the original file system.

	Continuous-Integration: Jenkins CI

2015-08-17  Shahar Havivi  <shaharh@redhat.com>

	v2v: Import VM from OVA file
	OVA is a tar file which contain a VM with its Ovf file and its disks as
	well.

	Continuous-Integration: Jenkins CI

	v2v: get VM information from OVA file
	In order to import a VM that exists in an OVA file the oVirt engine
	needs to get information regarding the VM, such as disks sizes,
	interfaces memory etc.
	Adding a new verb: getExternalVmFromOva

	Continuous-Integration: Jenkins CI

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

	multipath: Fix multipath.conf permissions
	/etc/multipath.conf permissions are 0644 before vdsm configures it.
	After configuration, the permissions become 0600. This is unintended
	change caused by using temporary file, which is created using 0600.
	Now we set the permissions before copying the temporary file.

	Continuous-Integration: Jenkins CI

2015-08-16  Dima Kuznetsov  <dkuznets@redhat.com>

	supervdsm: Move supervdsm module into lib
	This patch moves the code for supervdsm proxy into the lib of vdsm, that
	way lib code will be able to utilize supervdsm when it is running.

	Continuous-Integration: Jenkins CI

2015-08-15  Douglas Schilling Landgraf  <dougsland@redhat.com>

	register: Add --vdsm-uuid
	This patch adds --vdsm-uuid option to user provide
	host UUID to be used instead vdsm.utils. Useful for
	hosts with blank or buggy DMI.

	Continuous-Integration: Jenkins CI

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

	multipath: Remove unused constant
	We don't rotate files for couple of month now, so there is no need to
	keep this constant.

	Continuous-Integration: Jenkins CI

2015-08-14  Adam Litke  <alitke@redhat.com>

	tests: Introduce indirection tests for storage refactoring
	The refactoring of the storage classes to prepare for SPM removal is
	moving around a lot of code but not changing the implementation.  The
	SDM Indirection Tests check that calls made to the original objects
	properly redirect to the implementation in the newly introduced classes.
	To keep this refactoring simple, we are not testing the code itself,
	just that it was moved correctly.

	Continuous-Integration: Jenkins CI

	storage: Cleanup sd.getVAllocSize redirection
	For file-based storage, getVSize and getVAllocSize have different
	implementations.  For block storage, getVAllocSize just calls getVSize.
	The logic stating that the implementation of these functions is the same
	on block storage should be part of the BlockStorageDomainManifest not
	the BlockStorageDomain.  Therefore, we create getVAllocSize in the
	BlockStorageDomainManifest and have it call its own getVSize.  Now block
	and file StorageDomains can share the same indirection method for
	getVAllocSize (just as they do for getVSize).

	Continuous-Integration: Jenkins CI

	FileStorageDomainManifest: move getVAllocSize
	An earlier patch moved getVAllocSize only for BlockStorageDomainManifest
	objects.  In order to keep the Manifest interface consistent between
	different types of storage we must also make this change for
	FileStorageDomainManifest objects.

	Continuous-Integration: Jenkins CI

2015-08-12  Adam Litke  <alitke@redhat.com>

	Live Merge: Fix pre-extension calculation for chunked drives
	Live merge causes data to be written from the volume that will be
	removed (top volume) into its parent (base volume).  If the base volume
	is on a thinly-provisioned block device (ie. COW_FORMAT) then we need to
	make sure the parent's LV is large enough to accomodate growth of the
	qcow2 volume as a result of the writes.  The amount of growth can be
	anywhere between 0 (if all writes are replacing old data) and the
	allocated size of the top volume (if all writes target unallocated
	blocks in the base volume).  If the top volume is the active layer the
	amount of growth required could be more due to writes from the VM that
	come after this calculation is performed.

	To prevent live merge failures when the base volume's LV is too small we
	request an extension to accomodate the worst case scenario and increase
	the base volume's LV by the size of the top volume's LV plus one
	additional chunk.  The LV will never be increased beyond the actual
	capacity of the VM disk.

	The old code extended the base volume's LV to the size of the top
	volume's LV which does not cover all the possible scenarios.

	After live merge completes, the base volume's LV may be larger than is
	necessary.  This will not impact the VM but a manual cleanup step could
	be used to reclaim some storage space.

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

2015-08-12  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix addressing
	HOSTDEV:
	Libvirt (domain_conf.c) does not expect the type for the host address,
	and drops it if we send it. This causes USB address matching to fail
	when parsing the domain XML.

	SR-IOV
	Interface device of type="hostdev" DO expect the address type as
	it cannot be infered by hostdev's type.

	Both versions expect 'type' in guest address.

	Continuous-Integration: Jenkins CI

2015-08-11  Shahar Havivi  <shaharh@redhat.com>

	v2v: import abort/done status fix
	when importing is done need to check if the user aborted, if so no
	need to change the job status to done.

	Continuous-Integration: Jenkins CI

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

	net: tests: fix testSelectiveRestoreDuringUpgrade
	There were mixed bonds' slaves on assertion. Now it's fixed.

	Continuous-Integration: Jenkins CI

2015-08-11  Greg Padgett  <gpadgett@redhat.com>

	storage: don't chmod local storage symlink
	Proper permissions for the local storage target directory are already
	verified before the local storage is connected, so there is no need to
	change the permissions once the symlink has been created.

	Additionally, there is no need to change the permissions of the symlink
	itself.  From 'man 1 chmod':

	  chmod never changes the permissions of symbolic links; the chmod
	  system call cannot change their permissions.  This is not a problem
	  since the permissions of symbolic links are never used.

	The chmod call was added in 93390aab8381bff869bd029bf121f6a1f3761e8e in
	a large patch with both refactoring changes and updates to the way
	permissions were checked for storage.  However, the chmod is not needed
	and is effectively redundant with the validation that runs when storage
	is connected.

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

2015-08-11  Shahar Havivi  <shaharh@redhat.com>

	v2v: Abort job need not to clean the job
	When aborting a v2v job there is no need to delete it from the job
	collection.  (The job deletion will be handled by the engine)

	Continuous-Integration: Jenkins CI

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

	vm: Improve error handling when Vm._dom is None
	Vm._dom is initialized to None on when creating a vm, and set to None if
	the underlying libvirt domain has died. Since Vm._dom is modified by
	multiple threads, it is impossible to check for None before using it.
	Even if it was possible, we don't want to litter the code with None
	checks everywhere.

	Some code was using this pattern:

	    try:
	        self._dom.doSomething()
	    except AttributeError:
	        # Oh, it was None

	This code is not communicating well our intent. Worse, it hides
	AttributeError in doSomthing()!

	Most code never check self._dom before using it. In the rare cases it is
	None, we fail with this Traceback:

	    Thread-460::ERROR::2015-07-04 19:53:21,977::__init__::520::jsonrpc.JsonRpcServer::(_serveRequest)
	        Internal server error
	    Traceback (most recent call last):
	      File "/usr/lib/python2.7/site-packages/yajsonrpc/__init__.py", line 515, in _serveRequest
	        res = method(**params)
	      File "/usr/share/vdsm/rpc/Bridge.py", line 277, in _dynamicMethod
	        result = fn(*methodArgs)
	      File "/usr/share/vdsm/API.py", line 727, in freeze
	        return v.freeze()
	      File "/usr/share/vdsm/virt/vm.py", line 2882, in freeze
	        frozen = self._dom.fsFreeze()
	    AttributeError: 'NoneType' object has no attribute 'fsFreeze'

	This traceback is a poor way to say "the vm is not running".

	This patch introduces the DisconnectedVirDomain class. This object will
	raise NotConnectedError for any attribute access. Vm._dom is initialzied
	to DisconnectedVirDomain(vmid) on startup and after underlying libvirt
	domain has died.

	Code trying to talk with a dead vm will fail now with:

	    NotConnectedError: Vm '681f6b09-a9c3-4422-a7e2-2f607368718b' is not
	    running yet or was shut down.

	Code handling disconnected state is using now:

	    try:
	        self._dom.doSomething()
	    except NotConnctedError:
	        ...

	This communicates our intent, and does not hide any error from the
	underlying code.

	Code checking for None is using now:

	    if self._dom.connected:
	        ...

	Continuous-Integration: Jenkins CI

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

	net: monitor: validate passed groups argument
	If we pass an invalid groups argument, Monitor raises exception into
	another thread and therefore it's hard to find and debug such a problem.

	Now we validate passed groups in __init__ method in main thread.

	Continuous-Integration: Jenkins CI

2015-08-07  Roman Mohr  <rmohr@redhat.com>

	sampling: Handle numa nodes with zero memory assigned
	Fix zero division when a numa node has zero memory assigned and report
	a memory usage of 100% instead. One case where this can happen is when
	the server is not set up correcly.

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

2015-08-06  Yeela Kaplan  <ykaplan@redhat.com>

	sudoers: remove unused multipath policies
	These policies could have been removed once moving
	multipath configuration code as part of vdsm-tool.

	Continuous-Integration: Jenkins CI

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

	storageServer: Move unrelated method
	It makes sense to have the special methods such as __eq__, __ne__, and
	__hash__ together.

	Continuous-Integration: Jenkins CI

	storageServer: Fix MountConnection.__hash__
	The previous implementation was:

	- Not using all object state, generating same hash for non-equal
	  objects, where using all object state would generate different hash.
	- Mixing the hash in a poor way, instead of reusing built-in hashing
	  capabilities of a tuple.

	This change fixes last broken test.

	Continuous-Integration: Jenkins CI

	storageServer: Add MountConnection.__ne__
	Classes implementing __eq__ should also implement __ne__ so != work as
	expected. Add the missing implementation to MountConnection and to the
	ExampleConnection.

	This change fixes one broken test.

	Continuous-Integration: Jenkins CI

	storageServer: Fix MountConnection.__eq__
	The previous implementation was:

	- Using isinstance() instead of using self.__class__
	- Was not using all object state, so objects with different state were
	  considered as equal.

	This change fixes two broken tests.

	Continuous-Integration: Jenkins CI

2015-08-06  pkliczewski  <piotr.kliczewski@gmail.com>

	logging: remove log messages which give little or no value
	Some of the messages logged during jsonrpc request processing give no or
	little value when diagnosing the issues but are logged quite often.

	This patch removes those messages.


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

2015-08-06  Andrew Dahms  <andrewjdahms@gmail.com>

	Revised the format of output from the vdsm-tool vdsm-id command.
	Added a newline character to the end of output from the vdsm-id option
	for the vdsm-tool. Without this character, the prompt is displayed on
	the same line as the output from the command.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-08-06  Shahar Havivi  <shaharh@redhat.com>

	v2v: refactor create command
	When other inputs will be introduced (such as files and ova) there
	is need to create a different input for virt-v2v command.

	This patch make _create_command as function variable and each new
	factory method will introduce its own _create_command.

	Continuous-Integration: Jenkins CI

2015-08-06  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Handle disconnects only if endpoints match
	Until now we used to handle every disconnect event with no respect
	of which remote endpoint caused it.
	There are currently 3 different types of graphic events:
	1. Connected event someone connected to the port
	2. Initialized event - Someone had the right credentials to establish
	   the connection and the session has started
	3. Disconnected event - Someone disconnected from the port

	Now any connected event can be triggered even with no credentials and
	would eventually trigger the disconnected event due to being rejected.
	This means that a host on the public internet which gets scanned for
	opened ports and tried to intrude them would trigger the disconnect
	handling for the affected VM.
	This can cause that somone connected via Spice, VNC or even RDP with
	the guest agent installed on the VM gets randomly a locked screen (default
	behaviour).

	This patch addresses the above mentioned issue by performing a comparison
	of the remote endpoint that disconnected and remembering only initiated
	endpoints. In case that multiple connections are established, like in case
	of spice, the last initiated channel would be remembered and when that one
	disconnects, it will cause the disconnect handling to proceed.

	Due to some bug in the handling of graphic events in libvirt, SPICE
	connections currently do not include the port. A fix for this has been
	posted upstream and should eventually become available. Therefore, the
	handling has been implemented to not ignore the disconnect event when
	the clientPort value is an empty string.

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

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

	Removing prefix definition for qemu-kvm-ev
	qemu-kvm-ev (Centos) "provides" qemu-kvm-rhev, Since it's also the same
	version this patch simplies the requirements on both
	CentOS and RHEL platforms and keep plain qemu on Fedora only.

	Continuous-Integration: Jenkins CI

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

	iscsi: Improve ChapCredentials.__hash__
	The hash was mixed in a poor way, use instead built-in tuple hash which
	does a better work with less code.

	Continuous-Integration: Jenkins CI

	iscsi: Add missing ChapCredentials.__ne__
	Implement __ne__ so != operator works correctly for equal objects.

	This change fixes last broken test.

	Continuous-Integration: Jenkins CI

	iscsi: Fix ChapCredentials.__eq__
	Was implemented using __hash__, so objects with different credentials
	could be considered equal, or even totally unrelated objects could be
	considered equal, for example:

	   >>> ChapCredentials("user", "pass") == FooBar("blah")
	   True

	Continuous-Integration: Jenkins CI

2015-08-06  Francesco Romani  <fromani@redhat.com>

	build: restore pep8 automated check
	'pep8' was removed from the checks.

	I can't find the reason in the patch commit message [1],
	so it doesn't look intentional.
	This patch restores the check.

	[1] https://gerrit.ovirt.org/43845

	Continuous-Integration: Jenkins CI

2015-08-06  Douglas Schilling Landgraf  <dougsland@redhat.com>

	utils: remove legacy code for uuid
	In 3.6 version we won't support old registration
	schema. This patch removes the legacy code for collecting
	UUID from host.

	Continuous-Integration: Jenkins CI

2015-08-06  Martin Polednik  <mpolednik@redhat.com>

	fakevmstats: add config entry to enable/disable the hook
	Installing fake vmstats hook cases it to be automatically enabled,
	causing fake stats to be reported. This patch adds configuration
	directive to control the behavior, and disables the plugin by default.

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

2015-08-06  Allon Mureinik  <amureini@redhat.com>

	gluster: Allow "Replica" 1 domains
	Patch 322ce98d17e585b156891ed711063d5e2c0ce5de introduced the ability to
	verify the replica count when connecting to gluster storage, and set the
	default allowed replica count to 3.

	Contrary to the statement in that patch, "replica" 1 seems to be common
	in the field, and we do not want to break (too many) existing
	deployments.

	This patch includes:
	 - Changing the default configuration to support replica counts of 1 or
	   3.
	 - Update the description of this configuration value accordingly.
	 - Update the test to match the default configuration and validate that
	   having a value of '1,3' will indeed support replica counts of both 1
	   and 3.

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

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

	nettestlib: Replace brctl with ip
	According to Antoni, we should get better error messages from ip.
	Testing show that the random failures in check_tc are gone now.

	Continuous-Integration: Jenkins CI

	netestlib: Remove code for 2.x kernels
	We support now 3.x or 4.x kernels only.

	Continuous-Integration: Jenkins CI

	nettestlib: Add requires_brctl and requries_tc decorators
	Lot of tests used nettestlib.checkDependencies() in setUp() to skip all
	tests if dependencies are not met. However, this function was checking
	for two features, but most tests only need one of them, so tests could
	be skipped for no reason.

	Now we new specific requires decorators:

	- @requires_brctl   raise SkipTest if running brctl fails
	- @requires_tc      raise SkipTest if creating a bridge and adding a
	                    qdisc fails.

	nettestlib.checkDependencies() was creating a bridge and deleting it for
	testing if we can run brctl. This could leave a stale bridge if deleting
	the device failed. Now we use safer "brctl show".

	Each test class is using now the specific requires decorator needed.

	Continuous-Integration: Jenkins CI

	nettestlib: Remove unneeded hack for improving randomness
	Python seed the random number generator from os.urandom() on startup, so
	different processes do not use the same seed, and produce different
	sequences of pseudo random numbers by default.

	Continuous-Integration: Jenkins CI

2015-08-06  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: fix bridged case of testDelNetworkWithMTU by increasing MTU
	Setting disable_ipv6 failed on test-network bridge because the bridge was
	never listed under /proc/sys/net/ipv6/conf/ although it was successfully
	created.

	It turns out that MTU of at least 1280 bytes (which is a minimum value
	mandated by IPv6 standard) is required for network devices to be listed
	under said directory.

	Continuous-Integration: Jenkins CI

	network: fix parameters to ConfigNetworkError
	Continuous-Integration: Jenkins CI

	network: wait for a bridge to appear before disabling IPv6 on it
	A traceback such as

	  File "/usr/share/vdsm/network/configurators/ifcfg.py", line 101, in configureBridge
	    sysctl.disable_ipv6(bridge.name)
	  File "/usr/lib/python2.7/site-packages/vdsm/sysctl.py", line 42, in disable_ipv6
	    with open('/proc/sys/net/ipv6/conf/%s/disable_ipv6' % dev, 'w') as f:
	IOError: [Errno 2] No such file or directory: u'/proc/sys/net/ipv6/conf/test-network/disable_ipv6'

	shows that a bridge was not yet created when _ifup in ifcfg's configureBridge
	already finished.

	This patch makes configureBridge wait for the bridge for up to 1s. If it is
	not created by then, a standard exception is triggered.

	Continuous-Integration: Jenkins CI

2015-08-06  Martin Sivak  <msivak@redhat.com>

	Skip hosted engine stats processing when it is not configured
	This changes the data collecting to ignore hosted engine when
	the host id is reported as None or 0.

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

2015-08-05  Adam Litke  <alitke@redhat.com>

	Live Merge: Allow extension of non-leaf raw volumes
	volume.extendSize() is currently prohibited for any non-leaf volume.
	For a very specific live merge scenario we must permit extension of an
	internal raw base volume.  Allow this usage and add a comment explaining
	the reasoning.

	The scenario:
	 - User begins with a raw block disk.
	 - User creates a snapshot.
	 - User enlarges the disk (diskSizeExtend)
	 - User performs live merge to remove the snapshot

	In this case the base volume is too small to accommodate the data
	from the child volume and an error is raised since libvirt cannot
	enlarge a block device.  The solution is to require engine to call
	extendVolumeSize on the base volume before requesting the live merge
	operation.

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

	Live merge: Update base size after live merge
	When performing a live merge, data is copied from a top volume into a
	base volume.  If the top volume is larger than the base volume (which
	can happen if the drive size was extended), libvirt will change the size
	of the base volume to match that of the top volume.  When synchronizing
	metadata after the merge, we need to update the 'capacity' field of the
	base volume to reflect the new size.  We do this inside the
	LiveMergeCleanupThread to ensure that it gets retried in the event of
	storage connection problems or vdsm restarts.

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

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

	fc-connect-server: Support FCP on connect server
	Add FCP support in in hsm._connectionDict2ConnectionInfo.

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

	fc-connect-server: Add FcpConnection class
	Add FcpConnection class in storageServer.py.
	All methods except eq, neq and hash are not implemented.

	This class permit the engine to call connectStorageServer on
	FC storage domain so that sdCache.refreshStorage and prefetchDomains
	will be performed on FC SD also.

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

	fc-connect-server: Move call to refreshStorage
	For clearer readability, move call to sdCache.refreshStorage from
	__prefetchDomains to connectStorageServer.

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

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

	nettestlib: Fix string formatting
	Format string was using one-based indexing, causing IndexError when
	formating an object, hiding the real error from tc binary.

	Continuous-Integration: Jenkins CI

2015-08-05  Adam Litke  <alitke@redhat.com>

	Live Merge: Prevent merge when base volume is too small
	When a disk with snapshots is resized you can end up with an image chain
	containing volumes of different sizes.  For example: a VM may start with
	volume A, a snapshot operation causes volume B to be added to the chain,
	and a resize operation enlarges volume B.  This mixed-size chain
	presents a special case for live merge.

	Libvirt's virDomainBlockCommit behaves differently depending on whether
	the base volume is on block storage or file storage and whether
	the base volume is raw or qcow2:

	File volume, cow format:
	 - Update qcow header
	File volume, raw format:
	 - Truncate volume file to the new size
	Block volume, cow format:
	 - Update qcow header
	Block volume, raw format:
	 - Fail because qemu cannot extend a raw block device

	Since we know the raw block case is not possible we can detect this and
	return a special error message to engine.  To avoid this error, engine
	should use the SPM host to extend the raw volume to the correct size
	before starting the merge.

	We don't _have_ to change vdsm since the current code fails gracefully
	(albeit with a traceback in the logs).  If engine always performs the
	resize operation before calling merge we'll never see this error.

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

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

	tests: Enhance permutations tests
	- Move nested class to module to avoid clumsy self.Class syntax. We don't
	  really need to have a nested class since it is not a TestCase class.
	- Test instance methods instead of class functions
	- Separate tests for unrelated features. We don't want tests for
	  expanded method to fail because we did not remove the original method.
	- Use hasattr() for attribute testing
	- Test also mulitple arguments
	- Add test for sub-classing permuted class.

	Continuous-Integration: Jenkins CI

2015-08-04  Douglas Schilling Landgraf  <dougsland@redhat.com>

	register: general improvements
	- replace --node-fqdn to --node-address for a better naming fit
	- remove unused socket library
	- improvement in docstring

	Continuous-Integration: Jenkins CI

	register: use node name and fqdn when needed
	Currently, we collect host fqdn before registering but
	it's not required. This patch make registration be
	triggered without setting host fqdn, it will use node IP
	address.

	Continuous-Integration: Jenkins CI

2015-08-04  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: fix slow tests broken by fb3a4bd4
	Continuous-Integration: Jenkins CI

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

	nettestlib: Extract nettestlib module
	ipwrapperTests and iproute2Tests were using tcTests as a library. Move
	the shared code to new module and use it from the test modules.

	Continuous-Integration: Jenkins CI

	tests: Remove hack for devices with same names
	After the test isolation issues in tcTests.py and ipwrapperTests.py were
	resolved, we are not expecting setup to fail because a device with same
	name exists, so we can remove the hack that used to skip tests.

	It is possible that slaves contains stale devices from previous run of
	the broken tests, but this should be solved by cleaning the slaves, not
	by hiding the error and skipping tests.

	Continuous-Integration: Jenkins CI

	tests: Fix ipwrapper tests isolation
	Similar to tcTests, tests were sharing same devices, so failure to
	delete a device would cause unrelated test to fail.

	Even worse, the Unicode tests used *same* device name on all tests. So
	running concurrent tests is not possible, and once we fail to delete a
	device, all builds will fail on this slave when tyring to create the
	same device again. This issue was hidden previously because we used to
	skip silently such failures.

	Now we use Unicode prefix with random suffix, so stale devices are
	unlikely to cause failures in other builds.

	To simplify cleanup, the Unicode tests was moved to its own test case
	class. To make it easier to work with the Unicode bridge name, we use
	plain ASCII ("\xd7\x90\xd7\x91\xd7\x92") instead of raw utf-8 ("אבג").

	Continuous-Integration: Jenkins CI

	tests: Isolate tcTests test properly
	Tests were sharing same devices - this is huge anti-pattern, as failure
	to delete a device in one test will cause the next test setup to fail.

	Devices are created now in setUp() so each test has its own devices.
	Since tearDown() is not called if setUp() failed, setUp() is cleaning up
	on failures.

	tearDown() was aborting early on the first error, possibly leaving stale
	devices around (breaking the next tests). Now all errors are logged and
	tearDown will fail if some devices could not be removed, revealing the
	errors in captured log.

	Continuous-Integration: Jenkins CI

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

	call stop_event_loop upon exit
	For cleanliness, whomever starts a thread should stop it when it is no
	longer needed.

	We add a "wait" argument to stop_event_loop, so that the calling
	serve_clients() does not wait forever for a libvirt event to be handled.

2015-08-04  Martin Polednik  <mpolednik@redhat.com>

	vdsm: drop cluster version < 3.6 for ppc64le
	Due to moving from powerKVM to ppc64le, we should not support older
	cluster levels in newest VDSM for POWER8 platform.

	Continuous-Integration: Jenkins CI

2015-07-31  Francesco Romani  <fromani@redhat.com>

	vm: event: simplify send_status_event
	Now that VDSM is fully in charge of sending
	events to Engine, there is no longer need
	to protect the send_status_event call.

	This patch removes the safety checks and
	greatly simplifies the method.

	Continuous-Integration: Jenkins CI

2015-07-31  Douglas Schilling Landgraf  <dougsland@redhat.com>

	register: remove legacy code
	The legacy code should be dropped. The new registration
	schema should only support Engine >= 3.4.

	Continuous-Integration: Jenkins CI

2015-07-31  Dan Kenigsberg  <danken@redhat.com>

	make pep8-1.4.6 (el7) happy
	Continuous-Integration: Jenkins CI

2015-07-31  Francesco Romani  <fromani@redhat.com>

	vm: switch to response.error()
	response.error() offers a nicer and cleaner
	way to report error responses instead of the bare
	errCode['something'], even when we are fine with
	the default generic message.

	This patch makes use of response.error() all across
	vm.py.

	Continuous-Integration: Jenkins CI

2015-07-31  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-reg: remove the sub-project
	As vdsm-reg is deprecated. At moment vdsm-tool has
	register verb which executes the registration
	and there is ovirt-register project.
	oVirt Node doesn't pull vdsm-reg anymore.
	Based on that, this patch removes vdsm-reg subproject
	to avoid dead code inside vdsm tree.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1231379
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-07-31  Dan Kenigsberg  <danken@redhat.com>

	virt: let Engine start a VM on an UNKOWN OS
	This superflouse validation was introduced as a "bandage" to avoid
	https://bugzilla.redhat.com/716705, where Vdsm failed to recognize
	VMs with "UNKOWN" os injected to their bios.

	Now that we recognize our VMs based on guest channels existence, we can
	let Engine start a VM on whatever host it deems valid.

	Backward compatibility caveat: if a VM is started on an UNKOWN os, and
	then migrated to an old Vdsm (pre ovirt-3.4.2), it would be killed when
	that old Vdsm is to be restarted. This would only affect users using
	Fedora-based hosts with ovirt-3.3 and ovirt-3.6 on the same cluster.
	Users of el-based hypervisors cannot migrate a VM started on a 3.6 host
	to a 3.3 one since el7->el6 migration is blocked by Engine.

	ovirt-3.3 has reached its end of supported life, so we should not care
	about these purely-theoretical users.

	Continuous-Integration: Jenkins CI

2015-07-31  Francesco Romani  <fromani@redhat.com>

	caps: report capabilities on UNKNOWN OS
	The capabilities reporting (getCapabilities API) does
	logic on libvirt version to report, or not, the RNG source
	availability.

	The libvirt version is found using the package version,
	but VDSM knows only how to interact with RPM and APT based
	system, so it is clueless when it runs on UNKNOWN OS.

	While it is still OK (from a VDSM PoV) to pass incomplete
	information about available packages to Engine, this
	makes the aforementioned RNG check logic fail.
	Effects of this failure:
	- Engine cannot connect to the VDS
	- stacktrace in the VDSM logs (excerpt follows):

	  File "/usr/share/vdsm/API.py", line 1314, in getCapabilities
	    c = caps.get()
	  File "/usr/share/vdsm/caps.py", line 665, in get
	    '-'.join((caps['packages2']['libvirt']['version'],
	KeyError: 'libvirt'
	Thread-14::DEBUG::2015-07-31
	11:16:52,699::stompreactor::305::yajsonrpc.StompServer::(send) Sending
	response

	This patch makes the getCapabilities API work again on
	UNKNOWN OS. To be conservative, if we don't know about libvirt,
	we report no RNG sources.

	Please note that this prevents UNKONWN OS host to join cluster
	with RNG sources configured.

	Continuous-Integration: Jenkins CI

2015-07-30  Ido Barkan  <ibarkan@redhat.com>

	net: ignore pass through ifcfg parameters for selective restoration
	Ignore keys in persisted networks that might originate from vdsm-reg.
	these might be a result of calling setupNetworks with ifcfg values
	that come from the original interface that is serving the management
	network. for 3.5, VDSM still supports passing arbitrary values
	directly to the ifcfg files, e.g. 'IPV6_AUTOCONF=no'. we filter them
	out here since kernelConfig will never report them.

	Continuous-Integration: Jenkins CI

2015-07-30  Nir Soffer  <nsoffer@redhat.com>

	storageServer: Add tests for equality and hash
	Current __eq__ and __hash__ are wrong and have no tests. Add tests
	showing what works and what not.

	To make the tests results more clear, implement __str__. This can also
	be useful when logging the objects.

	Continuous-Integration: Jenkins CI

2015-07-30  Francesco Romani  <fromani@redhat.com>

	vmstats: avoid explicit string conversion
	Now that we streamlined the reporting of disk stats,
	we can get rid of explicit conversion loop and simplify
	the code.

	Continuous-Integration: Jenkins CI

	vmstats: report disks stats only if present
	avoid to report empty values for disks stats,
	as this may confuse Engine and let it to believe
	there is no disks at all.

	Continuous-Integration: Jenkins CI

	vmstats: do not report empty ioTune
	Do not report empty value for 'ioTune'
	stats, much like we do for balloonInfo, disks and networks

	In general, we should avoid to report empty values
	if the emptiness carries no meaning (noteworthy counterexample:
	vmJobs for live merge).

	Continuous-Integration: Jenkins CI

2015-07-30  Nir Soffer  <nsoffer@redhat.com>

	iscsi: Add ChapCredentials equality and hash tests
	Add tests before cleaning up the implementation. Mark __ne__ test as
	@brokentest for now, as it is not implemented.

	Continuous-Integration: Jenkins CI

2015-07-30  Francesco Romani  <fromani@redhat.com>

	vmstats: do not report empty balloonInfo
	Do not report empty value for 'balloonInfo'
	stats, much like we do for disks and networks

	In general, we should avoid to report empty values
	if the emptiness carries no meaning (noteworthy counterexample:
	vmJobs for live merge).

	Continuous-Integration: Jenkins CI

	vm: event: send status event on pause and resume
	Make sure to send to Engine the events when
	VM is paused and resumed.

	Continuous-Integration: Jenkins CI

	vm: event: send status event on IO Error
	Explicitely send back to Engine a status
	Event after an IO Error reported by libvirt.

	Continuous-Integration: Jenkins CI

	vm: make up pauseCode if libvirt is omitting it
	When VDSM receives one IOError notification from libvirt,
	it can override the VM pauseCode. The same pauseCode will
	be reported to Engine through Events or through the
	VM.getStats() API.

	For historical reasons, libvirt reliably reports only the
	'enospc' reason. In the other cases, the reason is an
	empty string, and this resets the pauseCode to empty string.

	Engine is not (anymore) expecting that.
	To make Engine happy(er), and to improve the quality of data
	VDSM reports in general, it is safe to report EOTHER
	if the pauseCode is not given onIOError.

	This patch does that.

	Continuous-Integration: Jenkins CI

2015-07-30  Nir Soffer  <nsoffer@redhat.com>

	periodic: Use thread names that can be used as system thread names
	Using new executor naming scheme, creating executor named "periodic"
	will create workers named "periodic/0", "periodic/1", ...

	Change also periodic scheduler thread to match this style.

	This is partial fix for bug 1141422.

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

	executor: Set worker system name
	Previously we used to rename the workers using long name such as
	"periodic-executor-worker-3". These names are too long for setting
	thread system name (using pthread.setname()), and little too long in
	general.

	Since we managed worker ids in the Worker class, when creating multiple
	executors, workers ids did not much the number of workers in the
	executor.

	This patch changes the naming scheme to "executor-name/<worker-id>",
	similar to the way kernel threads are named.

	For example, when creating executor named "periodic" with 4 workers, the
	workers will use these names:

	    periodic/0
	    periodic/1
	    periodic/2
	    periodic/3

	If we create another executor such as "jsonrpc", it will create these
	worker names:

	    jsonrpc/0
	    jsonrpc/1
	    jsonrpc/2
	    jsonrpc/3
	    jsonrpc/4
	    jsonrpc/5
	    jsonrpc/6
	    jsonrpc/7

	If the executor name is too long, the system thread name will be
	truncated, as system thread names are limited to 15 characters.

	Continuous-Integration: Jenkins CI

	concurrent: Add Barrier class
	Barrier synchronizes multiple threads. The barrier is created in closed
	state, blocking all threads invoking wait(). When count threads have
	entered the barrier, it is opened and all threads return from wait().

	Barrier is useful for waiting until multiple threads are ready.
	Currently we are synchronizing multiple threads in the tests using
	time.sleep(), which make the tests slower and break randomly on
	overloaded CI slaves.

	Continuous-Integration: Jenkins CI

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

	virt: Add _getVolumeInfo helper
	The next patch needs to call into to storage to get detailed volume size
	information.  Add a helper to encapsulate this operation which makes
	error checking and exception raising consistent for all call sites.

	Continuous-Integration: Jenkins CI

	tests: Fix expandPermutations use with Mixins
	When using the expandPermutations decorator on Mixin classes or in
	classes which will be inherited from it is important to remove the
	PERMUTATION_ATTR from functions that have been processed.  Otherwise we
	will attempt to expand already expanded permutations when subclassing or
	mixing this class.

	Continuous-Integration: Jenkins CI

2015-07-29  Nir Soffer  <nsoffer@redhat.com>

	tests: Use more random interface names
	Shorten the default prefix, allowing longer random suffix, and generate
	the name using utils.random_iface_name(), using the all 15 characters.

	One test was depending on shorter interface name, appending "A" to the
	existing device name. Using now "__nosuchiface__" which communicate the
	intent of the test better.

	Continuous-Integration: Jenkins CI

2015-07-29  Francesco Romani  <fromani@redhat.com>

	hyperv: enforce hypervclock presence
	It is not enough for libvirt to have the

	 <clock ...>
	  <timer name='hypervclock'>
	 </clock>

	element in the domain XML to actually enable the timer.
	Libvirt also wants to make sure that the timer is present.
	Hence, this patch adds the 'present=yes' attribute to enforce
	the timer activation.

	http://libvirt.org/formatdomain.html#elementsTime

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

2015-07-29  Dan Kenigsberg  <danken@redhat.com>

	net/api: drop support for legacy mgmt networks
	Continuous-Integration: Jenkins CI

2015-07-29  Nir Soffer  <nsoffer@redhat.com>

	mount: Better and simpler __hash__
	The hash values were mixed in a poor way. There is no need to implement
	this when we can use the hash function of the tuple object, which does a
	better job.

	For consistency, use self.__class__ for both equality test and computing
	the hash. This is also more portable pattern, since type(self) returns
	the same object for old style classes.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	tests: Silence momPolicyTests
	Each momPolicyTests test case was logging the same message 6 times when
	loading a policy file:

	2015-07-25 00:52:00,598 - mom.Policy - INFO - Loaded policy '00-defines'
	2015-07-25 00:52:00,598 - mom.Policy - INFO - Loaded policy '00-defines'
	2015-07-25 00:52:00,598 - mom.Policy - INFO - Loaded policy '00-defines'
	2015-07-25 00:52:00,598 - mom.Policy - INFO - Loaded policy '00-defines'
	2015-07-25 00:52:00,598 - mom.Policy - INFO - Loaded policy '00-defines'
	2015-07-25 00:52:00,598 - mom.Policy - INFO - Loaded policy '00-defines'
	2015-07-25 00:52:00,609 - mom.Policy - INFO - Loaded policy '04-cputune'
	2015-07-25 00:52:00,609 - mom.Policy - INFO - Loaded policy '04-cputune'
	2015-07-25 00:52:00,609 - mom.Policy - INFO - Loaded policy '04-cputune'
	2015-07-25 00:52:00,609 - mom.Policy - INFO - Loaded policy '04-cputune'
	2015-07-25 00:52:00,609 - mom.Policy - INFO - Loaded policy '04-cputune'
	2015-07-25 00:52:00,609 - mom.Policy - INFO - Loaded policy '04-cputune'

	To make debugging more interesting, these messages were not displayed
	when running only momPolicyTests.py. They are displayed only when
	running both momTests.py and momPolicyTests.py.

	Turns out that momTests.py has 6 test cases creating a mom server or
	client. Each time a server or client are created, a new
	logging.StreamHandler() was added to the "mom" logger. Since no cleanup
	was performed, when momTests.py finished, "mom" logger with 6 unwanted
	handlers writing to sys.stderr was left in the logging module.

	When loading mom policy, Policy logs a messages to "mom.Policy" logger,
	which propagates to mom logger and get written by all 6 handlers.

	This patch monkey-patches the root logger manager.loggerDict in
	momTests.py, so loggers added during the tests are dropped when the test
	ends.  Without the "mom" logger, "mom.Policy" logs go the root logger,
	which is captured by nose, so these logs are available when a test
	fails.

	Continuous-Integration: Jenkins CI

2015-07-29  Yeela Kaplan  <ykaplan@redhat.com>

	migration: fix parameters
	Continuous-Integration: Jenkins CI

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

	net: always persist owned ifcfg files on ovirt node
	Continuous-Integration: Jenkins CI

	net: fix testSetupNetworksDeletesTheBridgeOnlyWhenItIsReconfigured
	since the tap object itself went out of scope, the kernel removed
	the device during the test since the file descriptor held by the
	Tap object was closed. The test was also fixed to remove the device
	before calling setupNetworks that would attempt to delete the bridge.

	Continuous-Integration: Jenkins CI

2015-07-29  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix error handling when checking dependencies
	We used to hide *all* exceptions and skip the tests with possible bogus
	message.

	When trying brctl, we skip the test only if we cannot run it, since this
	is the only error that can cause by missing bridge-utils. Any other
	error should fail the tests.

	When trying tc, we show the failure in the error message.

	Also removed pointless code opening and closing /dev/null, which should
	have been dropped in commit 61fff86c.

	Continuous-Integration: Jenkins CI

2015-07-28  Nir Soffer  <nsoffer@redhat.com>

	mount: Implement __ne__
	"""
	There are no implied relationships among the comparison operators. The
	truth of x==y does not imply that x!=y is false. Accordingly, when
	defining __eq__(), one should also define __ne__() so that the operators
	will behave as expected.
	"""
	See https://docs.python.org/2/reference/datamodel.html#object.__eq__

	This fixes the test_ne broken test.

	Continuous-Integration: Jenkins CI

	mount: More correct and simpler __eq__
	Instance of different classes should not be considered equal, as
	subclass may add new state not in the superclass.

	If an instance is missing an attribute it should have, we don't want to
	hide this error, and we certainly do not want to swallow *any* Exception
	during the check.

	This fixes the broken test_eq_subclass test.

	Continuous-Integration: Jenkins CI

	tests: Add Mount equality and hash tests
	The relevant code had no tests and I want to clean it up, so lets have
	some tests to make sure the cleanup does not break anything.

	Some of the tests fail since the implementation is wrong, mark them as
	@brokentest for now.

	Fix __repr__, which was giving bogus output when subclassing Mount.
	This makes the failing subclass test more clear.

	Continuous-Integration: Jenkins CI

2015-07-28  Francesco Romani  <fromani@redhat.com>

	vm: event: document event on reboot
	The guest agent onStatusChange callback
	automatically delivers RebootInProgess event
	when VM reboots: we don't need anything extra here,
	but it is worth to explicitely document this
	behaviour.

	Continuous-Integration: Jenkins CI

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

	tests: Create storagetestlib module
	The tests for VolumeMetadata want to reuse many of the functions that
	were implemented in manifest_tests.py.  Move these into a helper module
	that can be shared by all storage tests.

	Continuous-Integration: Jenkins CI

2015-07-28  Francesco Romani  <fromani@redhat.com>

	vmstats: make sure values are all strings
	Until we drop support of XML-RPC, we need
	to make sure that possibly large integers are
	reported as strings.

	This patch converts directly the values to strings,
	avoiding the need for a later conversion step.

	Continuous-Integration: Jenkins CI

2015-07-28  Martin Polednik  <mpolednik@redhat.com>

	vdsm: fix missing \ in specfile
	The next option shouldn't be treated as a command itself.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	net: configurators: persist custom bond option
	Until now, custom bond property was exposed only to
	before_network_setup hook and then dropped (so it was not
	passed to configurators and persisted). But this is not how
	custom *network* property behaves. We want these two custom
	properties to be symmetric - they have to be persisted
	(if unified persistence is used). Unlike custom network
	properties (which are known as 'special' by Engine), custom bond
	properties have to be reported in netinfo. Last but not least,
	we need this custom property to be able to tag bonding as
	'OVS Bond' so it will be handled by OVS hook, not by default
	configurator.

	This patch moves removal of custom property down to
	configurators. Thanks to it, custom property is persisted,
	but not set as a bond option.

	Custom property is not dropped only in configurators, but in
	models.py:Bond:areOptionsApplied as well - we don't want
	configurator to reconfigure bond when there is a custom
	property defined while its value is not used by configurator.

	Continuous-Integration: Jenkins CI

2015-07-27  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove redundant rhev_build_config_opt global
	By mistake this part of code was left after
	https://gerrit.ovirt.org/#/c/43845/

	Continuous-Integration: Jenkins CI

2015-07-27  Dan Kenigsberg  <danken@redhat.com>

	remove double whitespace after commas
	Continuous-Integration: Jenkins CI

2015-07-27  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Change state of the agent only after heartbeat processing
	Until now we have been setting the guest agent state to up,
	for every message we are receiving from the guest agent.

	With the new events implementation this has the side effect,
	that the data from the event has not been consumed yet but the
	change will trigger the event being fired that the VM is UP.

	This patch changes this old behaviour to only change the internal
	state on heartbeat messages, and only after the data has been
	consumed.

	Continuous-Integration: Jenkins CI

2015-07-25  Nir Soffer  <nsoffer@redhat.com>

	v2v: Use signal name instead of number
	Signal numbers are architecture specific. We should use only signal
	names available in the signal module.

	Continuous-Integration: Jenkins CI

2015-07-24  Yeela Kaplan  <ykaplan@redhat.com>

	vdscli: jsonrpc: add a creation method for client
	Allow connecting to vdscli either with an existing
	stomp client or create a new stomp client by using a
	given host and port.

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

2015-07-24  Shmuel Melamud  <smelamud@redhat.com>

	api: 'device' property for RNG device
	Added 'device' property for RNG devices as VDSM relies on presence of
	this property.

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

2015-07-24  Nir Soffer  <nsoffer@redhat.com>

	multipath: Replace timing code with utils.stopwatch
	The old timing code was longer then the code it measured, and it was
	issuing 2 syscalls even if debug log was not enabled. Using the
	stopwatch contextmanager, we need only one line of code, and we measure
	the time only if we need to log it.

	Continuous-Integration: Jenkins CI

2015-07-24  pkliczewski  <piotr.kliczewski@gmail.com>

	stomp: standalone client
	Convenience method to create stomp client by providing information
	needed to connect like hostname, port, queue names that we want to use
	and optional ssl context.

	The client can send and receive messages and notifications.
	JsonRpcClient can work in both synchronous and asynchronous way and it
	uses an instance of Reactor to process I/O. Reactor is run in a thread
	so it is important to close the client once it is not needed.

	Standalone client is designed to exchange data with vdsm for external
	services and jsonrpc based vdscli.

	Usage example:
	# auto starts and requires calling close
	client = StandAloneRpcClient(host, port, 'jms.topic.vdsm_requests',
	                             str(uuid4()), sslctx, False)

	# or which manages client life cycle by using context manager 'running'

	from vdsm.utils import running

	with running(StandAloneRpcClient(acceptor._host, acceptor._port,
	                                 'jms.topic.vdsm_requests',
	                                 str(uuid4()), sslctx)) as client:

	# To invoke vdsm methods we can use one of many call methods
	client.callMethod('my_method_name', data, uuid)

	# To receive events we need to register a callback
	def callback(client, event, params):
	    pass

	client.registerEventCallback(callback)

	# It is important to close the client which stops the I/0 thread if not
	# managed by context manager
	client.close()

	Continuous-Integration: Jenkins CI

2015-07-24  Nir Soffer  <nsoffer@redhat.com>

	supervdsmServer: Fix typo (selfself)
	Continuous-Integration: Jenkins CI

	sudoers: Restrict usage of systemd-run
	In commit 608e92e1bdd70 (utils: Add systemd_run command modifier) we
	added systemd-run to the allowed commands in the sudoers configuration.
	This change introduced a security breach, allowing vdsm to run any binary
	using systemd-run.

	This patch restricts usage of systemd-run to the mount command when
	using glusterfs storage domain. Due to sudoers syntax, it is not
	possible to allow any option in the systedmd-run command, and we must
	specify the exact commend.

	We also use systemd-run also for ifup and dhclinet, but these run from
	supervdsm, so sudoers configuration is not needed.

	This is an ugly fix for this security issue. A nicer fix requires more
	work, calling the mount command in suprvdsm.

	Continuous-Integration: Jenkins CI

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

	net: dhcp defroute support for iproute2 and pyroute2
	Ifcfg configurator accepts default_route option in both static
	and dynamic addressing.  Until now, that was not case of pyroute2
	and iproute2 configurators.

	This patch passes default_route parameter down to iproute2
	and pyroute and allows us to overwrite default gateway.

	Continuous-Integration: Jenkins CI

2015-07-23  Nir Soffer  <nsoffer@redhat.com>

	xmlrpc: Fix the inheritance mess
	Now that the xmlrpc server is not listening for connections, there is no
	need to inherit from SimpleXMLRPCServer and its many super classes. The
	xmlprc server is a very simple object that takes connected sockets from
	a queue and starts a request handler for each socket in a new thread.
	Most of the logic in the server is in the request handler class.

	This patch implements this simple object, based on code from
	SocketServer, BaseHTTPServer, and SimpleXMLRPCServer. This makes it easy
	to understand and maintain, and remove dependencies on the fragile
	Python server class hierarchy.

	Continuous-Integration: Jenkins CI

2015-07-23  pkliczewski  <piotr.kliczewski@gmail.com>

	test: customize destination for an event
	During test run we need to customize destinations where events are sent.

	Continuous-Integration: Jenkins CI

	jsonrpc: handle timeout in callMethod
	When we do not receive any response from the server JsonRpcClient fails
	when calling callMethod.

	Continuous-Integration: Jenkins CI

2015-07-23  Dan Kenigsberg  <danken@redhat.com>

	net: rollback: fix log message
	commit f3cd10cfc introduced a helpful traceback to the log, but kept a
	redundant %s behind.

	Continuous-Integration: Jenkins CI

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

	network: add 'default_route' parameter to DhcpClient
	Non-ifcfg configurators handle 'default_route' option only with
	static IPs, but this should be allowed with dynamic as well (as it
	is done in ifcfg). Ifcfg configurator uses default_route=False
	by default and adds line 'DEFROUTE=no' to ifcfg script, to prevent
	default gateway overwriting.

	This patch enhances DhcpClient so it is able (and it does it by
	default) to disable standard default gateway overwriting.

	This new feature fixed AddDelDhcp test with Iproute2 configurator
	which used to destroy internet connectivity. It will be also used
	in following OVS hook and Iproute2 default_route option patches.

	Continuous-Integration: Jenkins CI

2015-07-23  Ido Barkan  <ibarkan@redhat.com>

	net_func_tests: Make use of TEST-NET range instead of future reserved range
	IPv4 has, according to RFC 5737, three network ranges that are
	specifically designed to be used for tests and code samples. Up
	until now we were using 240.0.0.0/24 that is part of 240.0.0.0/4
	which according to RFC 6890 is reserved for future use. Thus, it
	is more appropriate to use one of the test networks and this patch
	does just that.

	Continuous-Integration: Jenkins CI

2015-07-22  Francesco Romani  <fromani@redhat.com>

	vm: stats: do not send empty disks/networks
	VDSM used to inconditionally add keys for disks and networks
	in the stats value to be returned on Vm.getStats() API.

	If stats from libvirt are available, those keys will be
	overwritten with real data; otherwise, empty values are reported.

	If we use the same code path to piggyback data on vm_status
	events, this will confuse Engine and will make it believe
	there are no disks nor networks.

	Moreovero, in general, we should avoid to report empty values
	if the emptiness carries no meaning (noteworthy counterexample:
	vmJobs for live merge).

	So this patch makes sure that we report either full data
	for disks and networks, or nothing at all, avoiding empty values.

	Continuous-Integration: Jenkins CI

2015-07-22  Nir Soffer  <nsoffer@redhat.com>

	testlib: Fix permutations of decorated tests
	Our expandPermutations infrastructure assume that generated tests use the
	original test method, and break when using test decorators such as
	@slowtestest or @stresstest.

	The generated tests are registered incorrectly, overriding tests with the
	same first permutation argument. Assuming we have the following test:

	    @slowtest
	    @permutations([[1, 2], [1, 4]])
	    def test_permutations(self, a, b):
	        ...

	Instead of generating these tests:

	    test_permutations(a=1, b=2)
	    test_permutations(a=1, b=4)

	We generate only one test, dropping the first permutation:

	    test_permutations(kwargs=1)

	This happens because decorated method signature is converted from:

	    test_permutations(self, a, b)

	To the generic form:

	    test_permutations(*args, **kwargs)

	When expanding permutations, we drop the first argument (args), assuming
	it is self, and zipping the argument list with the rest of the argument
	names (kwargs), dropping the second argument, and generating the wrong
	argument string "kwargs=1".

	The issue seems unfixable, since we need the original wrapped function
	to get the original variables names, and we can have any number of
	wrappers around it.

	This patch fixes the issue in the same way nose and pytest handle this
	issue, by generating positional argument string: "1, 2". This is not
	nice as "a=1, b=2", but it works with decorated tests correctly.

	So in the example above, we are generated these tests correctly:

	    test_permutations(1, 2)
	    test_permutations(1, 4)

	Continuous-Integration: Jenkins CI

2015-07-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Cleaning libvirt requirements which are not required anymore
	Those requirements were needed by ci. commit 87cf34 introduced
	this complexity since libvirt-daemon >= 1.2.8-16.el7_1.2 was
	not yet available in Centos repositories.

	Continuous-Integration: Jenkins CI

	Remove supportedProtocols parameter which is not in use
	Requires to update MarshallingTestCase.java in engine side which
	validates getVdsCaps output.

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

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

	Revert "api: compat: fix api breakage of 'config' and 'netinfo' used by bootstrap"
	This reverts commit 410464a6561ddd99362e51e8280b590f0610ed42.

	Support rhevm-3.0 is not required anymore since ovirt-3.6 release.

	Continuous-Integration: Jenkins CI

2015-07-21  Nir Soffer  <nsoffer@redhat.com>

	hsm: Explain why we call validateNotSPM() twice
	The old comment was not clear, and this is important pattern.

	Continuous-Integration: Jenkins CI

	sp: Move spm validation methods to StoragePool
	These helpers were defined in hsm, but they check the pool internal
	state and constants, which hsm should not be involved with. This will
	allow using a new StoragePool that does not have an spmRole, needed for
	the new SDM mode.

	Continuous-Integration: Jenkins CI

	spbackends: Move backend functions to spbackends
	Move domainListEncoder() and domainListDecoder() to spbackends, since
	they are used only by the backends. This avoids circular dependency
	between the pool and the backends.

	Since the new functions are used only by the spbackends module, they are
	now private.

	Continuous-Integration: Jenkins CI

2015-07-21  Ido Barkan  <ibarkan@redhat.com>

	net: also support replacing VLAN device under a bridge
	Although editing networks without replacing the bridge was already
	supported, somehow supporting the adding/removal of a vlan device
	was forgotten. This was added in this patch, along with improving
	the test to simulate an added vlan and a connected vm to the bridge.

	Continuous-Integration: Jenkins CI

2015-07-21  Shahar Havivi  <shaharh@redhat.com>

	v2v: enable to use external virtio drivers for virtio
	virt-v2v new feature enable user to set drivers iso path for enabling
	virtio drivers.
	Previously virt-v2v support only virtio drivers from virtio-win package
	for RHEL users only.

	Continuous-Integration: Jenkins CI

2015-07-21  Martin Polednik  <mpolednik@redhat.com>

	hostdev tests: refactor common PCI addresses
	Due to repetative nature of addresses in tests, this patch factors them
	to a class attributes.

	Continuous-Integration: Jenkins CI

	hostdev: add test for SR-IOV guest addressing
	Like generic host devices, SR-IOV VFs can be configured for specific
	guest address. Same issue as with generic devices is keeping the
	addresses separated. This test is for verification that the guest
	address and host address are correctly created.

	Continuous-Integration: Jenkins CI

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

	validate listen_tls config value in libvirtd.conf
	Currently we don't validate this value which leads to broken
	behaviour in migration over ssl.

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

2015-07-21  Francesco Romani  <fromani@redhat.com>

	vmstats: fix bulk stats misinterpretation (disk)
	The current vmstats code is assuming that the bulk stats samples
	are in a different format than they really are.
	This mistake dates back to the lastest iterations of bulk stats
	development, when various approaches to fecth and store bulk stats
	samples were experimented, while looking for good performances.

	In the end, we settled for the simplest approach, for the sake of
	performance. Somehow, the translation patch was lost, most likely in
	one bad rebase.

	The effect of this mistake is that some disk stats
	were lost, while others are still correctly reported.

	This could explaain why it took so long to notice this failure: some
	data was still present and correctly reported.
	This patch recovers and reimplements the translation strategy,
	and makes sure that we access the bulk stats samples using
	the right keys.

	Continuous-Integration: Jenkins CI

	vmstats: fix bulk stats misinterpretation (net)
	The current vmstats code is assuming that the bulk stats samples
	are in a different format than they really are.
	This mistake dates back to the lastest iterations of bulk stats
	development, when various approaches to fetch and store bulk stats
	samples were experimented, while looking for good performances.

	In the end, we settled for the simplest approach, for the sake of
	performance. Somehow, the translation patch was lost, most likely in
	one bad rebase.

	The stats which are lost are the one which deals with multiple devices.
	The bug is that we try to access the samples using wrong keys,
	mistakenly assuming a nested namespace, while the samples are flat.

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

2015-07-20  Ido Barkan  <ibarkan@redhat.com>

	net: tests: skip testRestoreToBlockingDHCP if ifcfg persistence
	This test tests a part of vdsm-restore-net-config which runs only
	if there is unified persistence.

	Continuous-Integration: Jenkins CI

2015-07-20  Martin Polednik  <mpolednik@redhat.com>

	caps: add hw info reporting for ppc64le arch
	Currently, getVdsHardwareInfo only works for x86_64, i686 and ppc64.
	This patch adds support for ppc64le, where same logic as ppc64 (device
	tree parsing) applies.

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

	hostdev tests: fake totalvfs
	Deep down in call stack, _sriov_totalvfs is called. We should avoid
	touching the host at all due to possible side effects, and therefore
	_fake_totalvfs can be used.

	Continuous-Integration: Jenkins CI

	hostdev: add test for SR-IOV VF
	Hostdev uses interface element for SR-IOV VFs, and therefore needs to
	be also covered with additional test.

	Continuous-Integration: Jenkins CI

2015-07-20  Antoni S. Puimedon  <asegurap@redhat.com>

	net_tc: add support for mirroring all (not just IPv4) traffic
	Up until now the filter was only acting on packets with IPv4 headers
	because of the 'protocol ip' part of the tc filter. This makes the
	mirroring protocol agnostic.
	Caveat: this patch takes place only on networks defined after its
	application. It does not attempt to upgrade existing filters.

	Continuous-Integration: Jenkins CI

	arbitrary_vlan_name: Fix network deletion
	Up until now, when the network deletion operations were not being
	forced, the assertion that the bridge was clean, i.e., that it did
	not have other ports (vnics most likely) would fail because it
	expected

	    bondname.vlanid
	or
	    nic.vlanid

	when the name could be any string. This patch addresses the issue
	by making netinfo give us the exact vlan name.

	Bug-Url: http://bugzilla.redhat.com/1119182
	Continuous-Integration: Jenkins CI

2015-07-20  Ido Barkan  <ibarkan@redhat.com>

	netinfo: Drop ifcfg reading from _getNetInfo
	For backwards compatibility we need to report the bridge 'cfg' field
	in the network attributes dictionary. Up until now, this was done by
	re-reading the 'ifcfg' files of the bridge. After this change, we
	will just be adding the 'cfg' field that we already generated for the
	bridge device.

	Note that 'BOOTPROTO' reporting is already part of _devinfo, so we
	don't need that part.

	Continuous-Integration: Jenkins CI

2015-07-20  mmirecki  <mmirecki@redhat.com>

	vdsm hooks: report hook stderr to Engine if it fails an action
	When the hook script fails with an exit code 2, and the hook
	is defined to raise an exception, the execution of the command
	should stop and an appropriate error message should be propageted
	to the user. This change takes the std error of the failed hook
	script and passes it to the engine so that it can be presented
	to the user.

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

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

	executor: Fix thread-unsafe call
	Deques support thread-safe, appends and pops from either side of the
	deque, but deque.clear() is not documented as thread-safe, so we should
	not assume it is.

	Now we take the condition before invoking clear, and the comment about
	thread-safety was fixed to match Python documentation.

	Continuous-Integration: Jenkins CI

	executor: Fix race when putting tasks
	When putting tasks into a TaskQueue, we used check the current number of
	tasks in a thread-unsafe way.  We assume that the thread-unsafe check
	can result in the worst case in few extra tasks in the task queue, which
	is not very interesting.

	However, if all workers are busy, and the task queue is almost full, it
	is possible that two threads will pass the size check, and the queue
	will contain more tasks then the maximum value. Once the queue size
	exceeded the limit, we allow any number of additional tasks.

	While this condition is unlikely, there is not reason to allow this
	behavior. Now we check the queue size in a thread safe way and we don't
	have to maintain the comment about the possible race.

	Since we take the condition anyway on every put, I don't expect a
	noticeable performance differences by taking the condition before the
	size check.

	Continuous-Integration: Jenkins CI

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

	hooks: Removed comment about EL6 kernel
	EL6 is no longer supported for VDSM, so the comment about not installing
	the nestedvt hook on EL6 is superfluous.

	Continuous-Integration: Jenkins CI

2015-07-18  Nir Soffer  <nsoffer@redhat.com>

	xmlrpc: Remove Python 2.6 only code
	We backported xmlrpc request handler from Python 2.7 to support
	HTTP/1.1. Since we do not support Python 2.6 now, this code is not
	needed.

	Continuous-Integration: Jenkins CI

2015-07-17  Francesco Romani  <fromani@redhat.com>

	vm: events: do not override Down status
	We want to reuse Vm._getVmStatus() in the events notification
	flows.
	However, in that method there is a race with the migration.SourceThread.
	If the thread is still alive() (Vm.isMigrating() == True) while the
	Vm._getVmStatus() runs, the Down status will not be reported;
	MigrationSource will be reported instead.

	Please note that this affects just and only the return value of
	Vm._getVmStatus(). Vm.lastStatus is not affected at all.

	To fix this misreport, we simply add "Down" status to the list
	of statuses which should be reported directly without further checks.

	The "Down" status is final, so there are no shortcomings
	in sight and this change seems easy and safe.

	Continuous-Integration: Jenkins CI

	virt: clientif: remove generic vm status event
	We added explicit event notifications in the
	relevant VM callbacks, so there is no longer need to have
	a generic handling in the libvirt eventloop.

	Continuous-Integration: Jenkins CI

	vm: events: do not send hashes in status messages
	Engine doesn't really benefit of hashes in each VM_status
	message. We should send it only whenever matters,
	like when VM goes PoweringUp/Up.

	Future patches may want to reintroduce it in other flows.

	Continuous-Integration: Jenkins CI

	virt: event: send status event on migrations
	Make sure to send to Engine the events when
	migration starts, ends or aborts.

	Continuous-Integration: Jenkins CI

	vm: event: emit event on guest status change
	Send back to Engine an Event each time the Guest Agent
	reports a status change.
	We report the VM status and the minimal amount about
	the VM running stats that is fast and cheap to gather.

	Continuous-Integration: Jenkins CI

	vm: event: emit event on setDownStatus
	Send explicitely an Event to Engine when
	we call setDownStatus, instead of when we
	receive notification from libvirt.

	This way, it is easier and cheaper to piggyback
	more useful data back to Engine.

	Continuous-Integration: Jenkins CI

	vm: event: emit event on domDependentInit
	When Vm.domDependentInit() terminates, the VM
	is lamost ready to go. If Engine queries the VM
	on this state, on the happy path, we report either
	POWERING_UP or UP depending also on the Guest Agent
	state.

	We should send an event to Engine ASAP, and toward
	the end is indeed a good place. But we cannot lie,
	ad assert the Vm is UP.

	So, to be on the safe side, we send POWERING_UP
	to Engine. The VM will be accessible through Console
	and migrateable, so nothing is lost after this decision.

	Continuous-Integration: Jenkins CI

	vmstats: factor disk iops stats into an helper
	Move the code with fetches the per-disk ops
	and data transferred in a little, separate helper.

	Only code move.

	Continuous-Integration: Jenkins CI

	vmstats: rename 'nic' function
	The vmstats module exports a 'nic' function, which
	produces the stats per-nic, in the format Engine expects.

	The problem here is that 'nic' is a too nice name, so there
	are other legitimate uses for it in other flows.

	To reduce the possibility of name clash, we just rename
	the function to the little less nice but little more revealing
	'nic_traffic'.

	This is also a little lie because 'nic_traffic' adds fields
	which aren't strictly related to traffic proper. Future patch
	will clean this further and remove the little lie.

	Rename only.

	Continuous-Integration: Jenkins CI

2015-07-16  Francesco Romani  <fromani@redhat.com>

	vm: event: add arguments to send_status_event
	Future patches want to control the vmstatus we
	send to Engine, putting VDSM in control -
	instead of blindly relaying data from libvirt event loop.

	This patch enhances Vm.send_status_event() to support
	future usages, without breaking compatibility.

	Continuous-Integration: Jenkins CI

	vm: stats: move vmstats translation code away
	In vm class we have code to reformat and translate
	the output of vmstats.produce() into the format that
	Engine expects.

	This is pure algorhytmic code which doesn't depend
	at all on Vm class state, so it is wasy and safe to
	extract it as pure function.

	Additionally, this code is moved into vmstats module,
	because of the (admittedly vague, but still stronger
	than on Vm class) bonds it has with vmstats.produce()
	function.

	Continuous-Integration: Jenkins CI

	vm: event: status is an enumeration, not as tuple
	The current send status event code sends the vm status
	as tuple (translated to array) not as single value enumeration.

	I can't see why this is needed, so this patch simplifies the code.

	Continuous-Integration: Jenkins CI

2015-07-16  Nir Soffer  <nsoffer@redhat.com>

	freeze: Avoid unneeded freeze during snapshot
	When taking a snapshot of a vm with Ceph disk, Vm.snapshot() is called
	after engine froze the vm. In this case we don't need freeze the guest
	during the snapshot.

	New engine versions will indicate the guest state using the new frozen
	flag. When working with older engines or when not using Ceph disks,
	behavior is unchanged.

	Continuous-Integration: Jenkins CI

	freeze: Cleanup snapshot using freeze() and thaw()
	Snapshot code was written before libvirt.virDomain.fsFreeze() and
	libvirt.virDomain.fsThaw() were available. We used the quiesce flag
	(VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) to request freezing of guest
	filesystems during the snapshot.

	Because libvirt error reporting was not good enough, the code assumed
	that *any* exception raised from snapshotCreateXML() means failure to
	freeze the guest filesystems, and tried to take a snapshot again without
	the quiesce flag. This error handling is evil and wrong, and requesting
	snapshot twice after a failure sounds like a bad idea.

	This patches cleans up the code using the new freeze() and thaw()
	methods. We freeze() the guest before the snapshot, and thaw()
	afterwards, invoking snapshot exactly once.

	We handle only libvirtError around snapshotCreateXML(). Any other error
	is not expected and will fail loudly.

	When taking a memory snapshot, we are not freezing the guest, because
	qemu is pausing the vm in this case. We keep this behavior for now.

	Continuous-Integration: Jenkins CI

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

	net: only backup ifcfg files if they are not already persisted.
	d6454e introduced backing up of ifcfg files that were not owned by
	vdsm before the current call. Now, after selective restoration was
	introduced, when a network is restored because it is different
	from it's persistence, it is edited. This is done by removing it
	(and it's ifcfg files) an re-add it. The result is that ifcfgs get
	backed up also because they were just deleted by the current call,
	and are now re-added. We end up with file placeholders that make vdsm
	ifdown them during restoration. This defeats the whole selective
	restoration feature.
	In order to preserve the original meaning of _backup, we now
	compute all the possible ifcfg files that are part of unified
	persistence and backup only the ones that are not.

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

2015-07-16  Darshan N  <dnarayan@redhat.com>

	gluster: handle an unhandled exception in gfapi.py
	This patch handles an un handled exception in gfapi.py
	which is related to gluster libgfapi. This exception was
	seen when glusterVolumsStatsInfo and glusterVolumeStatus
	verbs were invoked. Now this has been handled properly.

	Continuous-Integration: Jenkins CI

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

	API: make irs usage compatible with all others
	Continuous-Integration: Jenkins CI

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

	tests: Add new manifest_tests and storagefakelib to Makefile
	As an oversight in earlier patches, manifest_tests.py and
	storagefakelib.py were not properly added to Makefile.am.  This meant
	that these files were not included in the vdsm-tests package.  Fix this.

	Continuous-Integration: Jenkins CI

2015-07-15  Francesco Romani  <fromani@redhat.com>

	virt: make vm events callback public
	The Vm class has a few methods which are meant to
	be called when libvirt reports events.
	Examples:

	Vm._onLibvirtLifecycleEvent
	Vm._onWatchdogEvent
	Vm._rtcUpdate

	So they should be public, and they should be named such that
	it is obvious they are meant to be callbacks.

	This patch only renames without code changes.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-07-15  Fred Rolland  <frolland@redhat.com>

	resize-lun: Rescan fiber channel devices
	The fc-scan utility currently scans in order to find new LUNs.
	In order to detect a resize of fiber channel LUNs, rescan of existing
	devices is needed.

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

2015-07-15  Fabian Deutsch  <fabiand@fedoraproject.org>

	network: Recognize macvlans as fake devices
	macvlans are yet another type of virtual NICs.
	This patch allows vdsm to accept macvlan devices as fake NICs.
	It can be useful if vdsm is run inside a container, and the
	host's NICs are exposed to the container via macvlans.

	Continuous-Integration: Jenkins CI

2015-07-14  Francesco Romani  <fromani@redhat.com>

	virt: graphdev: support headless VM
	This patch adds support for headless VMs, aka VMs without
	a graphic device.

	Noteworthy side effects of this patch:
	* It is now possible to create a VM without any display
	  (aka headless VM), and they are supported.
	* The input 'display' parameter of the Vm.create API is
	  no longer mandatory
	* In the API schema, the display* parameters are now
	  marked as optional, even though Engine is expected to still
	  send them in the near/medium term.
	* setTicket can now fail if they are invoked against a VM
	  without graphic devices.

	Continuous-Integration: Jenkins CI

2015-07-14  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add tests for guest addressing
	PCI host devices have two addresses: first one of them being the address
	as seen on the host, the second one is how the device is seen in the
	guest. We have to make sure that these aren't mixed - these tests are
	here to catch possible address inconsistence.

	Continuous-Integration: Jenkins CI

	hostdev: add basic unit tests for XML
	Now VDSM has the needed tools to unit test the creation of host
	devices. This patch adds first batch of tests, that verify PCI and USB
	devices without supplied address. Future patches will expand the
	possibilities of test cases.

	Continuous-Integration: Jenkins CI

	hostdev: inline source address function
	Due to addressing changes, there is no additional value in
	_add_source_address function. Therefore, inlining it saves us some
	loc without obfuscating functionality.

	Continuous-Integration: Jenkins CI

	hostdev: fix hostdev addressing
	Host devices are special in a sense that in case of PCI, there are two
	addresses present - one for the host address (in source element), and
	one in the device body itself (how is the device seen on the host).

	We have to make sure to separate and make sure which address do we put
	where - the patch fixes an issue where the "guest" address was reported
	as a "host" address.

	Continuous-Integration: Jenkins CI

2015-07-13  Nir Soffer  <nsoffer@redhat.com>

	testlib: Document --enable-xxx-tests options
	We documented how to enable slow and stress test using environment
	variables. Now the nicer --enable-slow-tests and --enable-stress-tests
	options are also documented.

	Continuous-Integration: Jenkins CI

	testlib: Show fully qualified class name
	We typically have multiple test case classes in the same module, and
	looking in the tests results it is not clear where the tests are
	located.

	    RoundTests
	        test_round(n=0, size=1024, result=0)                        OK
	        test_round(n=1, size=1024, result=1024)                     OK
	        test_round(n=1024, size=1024, result=1024)                  OK
	        test_round(n=1025, size=1024, result=2048)                  OK
	        test_round(n=3.14, size=1024, result=1024)                  OK
	    StopwatchTests
	        test_debug                                                  OK
	        test_info                                                   OK
	        test_notset                                                 OK

	Now we show also the module name:

	    utilsTests.RoundTests
	        test_round(n=0, size=1024, result=0)                        OK
	        test_round(n=1, size=1024, result=1024)                     OK
	        test_round(n=1024, size=1024, result=1024)                  OK
	        test_round(n=1025, size=1024, result=2048)                  OK
	        test_round(n=3.14, size=1024, result=1024)                  OK
	    utilsTests.StopwatchTests
	        test_debug                                                  OK
	        test_info                                                   OK
	        test_notset                                                 OK

	Continuous-Integration: Jenkins CI

	testlib: Use nose.case.Test.getDescription()
	The version we have may be ok for Python 2.6, but nose version has
	additional code to support Python 2.7 changes, so we should use it.

	Continuous-Integration: Jenkins CI

	testlib: Remove unneeded methods
	VdsmTestRunner was implementing __init__() and run() for no reason.
	Maybe we used to do something in these methods in the past, but now they
	do nothing by invoke the superclass methods, so should remove them.

	Continuous-Integration: Jenkins CI

2015-07-13  Ido Barkan  <ibarkan@redhat.com>

	net: tests: only test kernel config if unified persistence
	Testing KernelConfig does not support ifcfg persistence.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1203422
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>
	Continuous-Integration: Jenkins CI

	net: if all devices are up, skip ifup during restoratrion.
	The usual case since 3.5.4 is that all devices ahve ONBOOT=yes and
	are expected  to be up during restoration. But if only some of them
	are down, it is better to be tedious and bring everything up with
	the right order.

	Continuous-Integration: Jenkins CI

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

	resize-lun: Fix resizing when vg has multiple pvs
	When resizing a PV, LVM needs the other PVs that are part of the VG
	in the filters parameters. After resizing the PV, LVM has to update the
	metadata of the VG. This operation will fail if not all the PVs that are
	part of the VG are included in the filter parameters.

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

2015-07-12  Ido Barkan  <ibarkan@redhat.com>

	net: support strings for 'bridged' in kernelConfig
	Because kernelConfig did not know how to normalize this parameter in
	running config, _should_keep_bridged got wrong parameters if
	setupNetworks edited a network with 'bridged': 'false'. This
	resulted in a bridge being left behind after the network was removed.

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

	net: restore-nets should support ONBOOT=no
	on 3.5.x devices were persisted with ONBOOT=no. Hence, the selective
	restoration would call setupNetworks with only a subset of the
	networks and create a partial running config.
	To fix this, we fix all ifcfg files to have ONBOOT=yes and verify
	all devices are up before computing what has changed since last
	call to setSafeNetworkConfig. This will make the following call to
	setupNetwork to merely update running config with the 'fixed'
	networks, if at all.

	Continuous-Integration: Jenkins CI

	net: flatten ifcfg.ConfigWriter
	Make startDevices and stopDevices public for further use.
	Also, promotoe them to be module level functions because they do not
	need to know about the ConfigWriter state.
	Also, sortDeviceIfcfgs is only used with them so make them call it
	always. While at it, make them pep8 compatible.

	Continuous-Integration: Jenkins CI

2015-07-10  Marcin Mirecki  <mmirecki@redhat.com>

	vdsm: variable name change to avoid naming conflict
	Changes:
	'response' conflicts with respons.py for handling errors
	replaced by 'result'

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-07-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: Add factory method for ImportVm class
	Introducing factory methods for different import initialization
	sources:
	This patch set the from_libvirt() factory method, next patch will
	include from_files() and from_ova() factory methods

	Continuous-Integration: Jenkins CI

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

	tests: moving heavy jsonrpc tests to integration dir
	Continuous-Integration: Jenkins CI

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

	utils: NoIntr* references moved from misc to utils
	Continuous-Integration: Jenkins CI

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

	tcTest: skip tests if somehow same bridge name is reused
	My commit 61fff86c did not solve the problem of tests magically
	re-drawing the same bridge name as a formerly-started test. There is no
	need to mark these jobs as failure, as the problem is not in our code
	but in our broken test.

	Continuous-Integration: Jenkins CI

2015-07-09  Ido Barkan  <ibarkan@redhat.com>

	net: remove dead code from vdsm-restore-net-config
	Continuous-Integration: Jenkins CI

	net: wait for restored devices to be up
	If restore-net-config does not wait for all devices to be up, it
	might observe a transient kernel state where, for example, bonding
	devices might report no slaves. This makes restoration re-restore a
	bond because it is reported by the kernel as different from the
	persisted device.

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

2015-07-08  Francesco Romani  <fromani@redhat.com>

	lib: migration: add response.is_error helper
	Add helper function to make the code more explicit
	and self-documenting.
	The is_error function will raise the new MalformedResponse
	exception if the response value is missing one of
	the mandatory keys.

	This is new behaviour, but please note that previously
	the code either (rarely) checked for the presence of
	the keys, so no breakage, or just exploded with less
	clear KeyError.

	Continuous-Integration: Jenkins CI

	vm: simplify Vm._getVmStatus method
	Vm._getVmStatus returns a dict with just one key/value pair,
	being the computed vm status (unsurprisingly).

	This was done without a good reason, just to make the caller
	look uniform. But more and more we need just the status value,
	so the temporary dictionary is wasteful and redundant.

	So, this patch simplifies the code to return indeed just the value.

	Continuous-Integration: Jenkins CI

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

	StorageDomainManifest: move logBlkSize
	logBlkSize is also needed by the VolumeMetadata newVolumeLease function.
	Move it into the manifest class which is safe for VolumeMetadata to
	instantiate.

	Tests:
	 - file/block: getMetaParam
	 - block: get block sizes

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: move path getters
	getLeasesFilePath is needed by VolumeMetadata to implement the
	newVolumeLease function on block storage.  Move it into the Manifest
	class which can be safely instantiated.  Also move topically similar
	getIdsFilePath and getIsoDomainImagesDir.

	Tests:
	 - file: get the metadata path
	 - file: get the iso domain images path

	Continuous-Integration: Jenkins CI

2015-07-08  Francesco Romani  <fromani@redhat.com>

	virt: logging: introduce the 'virt' logger
	Add the 'virt' top level logger, to
	make it easier to separate the logging messages.

	Continuous-Integration: Jenkins CI

2015-07-08  Martin Polednik  <mpolednik@redhat.com>

	virt: fix VM creation logic condition
	We want to look up the CPU in tuple of CPUs, but we currently supply
	string instead of tuple.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	StorageDomainManifest: move BlockSD.getVSize
	getVSize is one of the first functions needed by the VolumeMetadata
	refactoring later on in the series.  BlockVolume.getVolumeSize currently
	calls into the StorageDomain to get the volume size.  Since
	VolumeMetadata cannot create StorageDomain objects we move getVSize into
	the manifest which can be safely instantiated.

	Tests added:
	 - file: getVSize using fake volume
	 - block: getVSize via lvm
	 - block: getVSize by examining "device" file

	Continuous-Integration: Jenkins CI

	StorageDomainManifest: introduce class heirarchy
	Many of the functions in the StorageDomain class family serve to provide
	information about the storage domain and its contents (ie. images and
	volumes).  Other functions manipulate image or volume metadata in a
	fine-grained, reusable way (ie. extendVolume).  As we refactor the
	storage code to operate without an SPM the new code will benefit from
	reusing these Storage Domain "manifest" functions.

	In order to make reuse clean and safe, we want to refactor the
	StorageDomain class by splitting the reusable elements into a
	StorageDomainManifest class.  The StorageDomain object will initialize
	and use a StorageDomainManifest object for much of its normal
	operations.  Meanwhile, the new SDM code may use a StorageDomainManifest
	object directly without having access to the non-sharable parts of
	StorageDomain.

	In an effort to reduce churn during the refactoring, when moving a
	method into its new class, I will leave behind a stub in the original
	class which simply passes the call through to the method's new location.
	Once all code has been refactored, I'll remove stubs for any methods
	which are not currently accessed outside of the class.

	This patch removes volumeTests.FileVolumeGetVSizeTest since it is not
	really a Volume test and it would be broken by this patch anyway.  It
	will be restored as a storageDomainManifestTest in a followup patch.

	Continuous-Integration: Jenkins CI

2015-07-07  Nir Soffer  <nsoffer@redhat.com>

	password: Allow pickling of protected password
	In commit 862d6440176c (password: Prevent password logging and
	persisting), we bloked pickling of protected passwords, to prevent
	accidental persisting of sensitive information.

	Turns out that when using iSCSI CHAP authentication, supervdsm is
	running iscsi.readSessionInfo(), returning a protected password. Under
	the hood, it tries to pickle the results and fails.

	We raise a very clear error when trying to pickle a ProtectePassword:

	    TypeError: ProtectedPassword object cannot be pickled

	However, this error is swallowed in supervdsm or in the underlying
	multiprocessing magic, and we get this unhelpful error in vdsm:

	    RuntimeError: Broken communication with supervdsm. Failed call to
	    readSessionInfo

	Since we run lot of code via supervdsm, and returning objects
	transparently is extremely convenient, it seems that blocking pickling
	was not a good idea.

	This patch enables pickling of ProtectedPassword, fixing iSCSI storage
	when using CHAP authentication.

	Continuous-Integration: Jenkins CI

2015-07-07  Candace Sheremeta  <cshereme@redhat.com>

	vdsm: removed optional markers for volUUID
	after examining the code, it's clear that the volUUID parameter
	for vdsClient's prepareImage command is NOT optional. therefore,
	I have removed any comments marking it as optional in the
	vdsClient documentation and in vdsmapi-schema.json

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

2015-07-07  Ido Barkan  <ibarkan@redhat.com>

	net: ignore bondingOptions in persistent networks.
	Up until https://gerrit.ovirt.org/#/c/42146/ bondingOptions were
	mistakenly part of persistent network attributes. So, if we are
	upgrading from an older enough version, we should drop this entry
	from the copied persistent networks. If we don't, the comparison
	between persisted and kernel config would needlessly fail.

	Continuous-Integration: Jenkins CI

2015-07-07  pkliczewski  <piotr.kliczewski@gmail.com>

	xmlrpc: use deque for incoming requests
	This patch changes how we manage queued requests.

	We suspect that there could be more queued requests so before stopping the
	server we want to drop all other requests and add sentinel to stop it.

	Continuous-Integration: Jenkins CI

2015-07-07  Nir Soffer  <nsoffer@redhat.com>

	snapshot: Add vdsClient freeze() and thaw() APIs
	These verbs are needed if you want to create a snapshot manually via the
	shell on a vm containing a ceph disk. Note that this requires access to
	cinder cli for creating the ceph snapshot, so this may not be very
	useful. However, having these verbs in vdsClient make it easy to test
	and debug these features.

	Continuous-Integration: Jenkins CI

	snapshot: Add VM.freeze() and VM.thaw() verbs
	This patch adds new verbs exposing Vm.freeze() and Vm.thaw(), required
	for taking a snapshot of network disks (such as Ceph).

	Continuous-Integration: Jenkins CI

	snapshot: Add Vm.freeze() and Vm.thaw() methods
	When using vdsm images, we implement a snapshot using qcow format; we
	add a new qcow image to the volume chain, with the current leaf as the
	parent image, and then we ask libvirt to switch to the new image.
	Libvirt is freezing the filesystems on the guest, switching the vm
	drives to use the new volumes, and thawing the guest filesystems.

	This flow cannot work for Ceph disks, which are using raw format. In
	Ceph, snapshots are created on the server side, and we do not use volume
	chains. After a snapshot it taken, the vm continue to write the same
	image, and is not aware that the server took a snapshot of the disk.

	To create consistent snapshot, we must freeze filesystems on the guest
	before we take a Ceph snapshot, and we must thaw guest filesystems after
	the snapshot was finished.

	To support live snapshot when a vm is using Ceph disks, we will use this
	flow:

	- Engine tell vdsm to freeze guest's filesystems
	- Engine create Ceph disk snapshot via Cinder
	- Engine tell vdsm to take a snapshot (for other disks and memory
	  snapshot)
	- Engine tall vdsm to thaw guest's filesystems

	This patch adds the new Vm methods invoking libvirt virDomainFSFreeze
	and virDomainFSThaw.

	Freezing or thawing filesystems can fail because of many reasons;
	libvirt driver does not support freezing, guest agent is not installed
	or not running or guest agent failure. We detect the first two cases, and
	treat any other libvirt error as guest agent failure.

	The errors are reported back to engine so it can handled them correctly.
	The current policy implemented in vdsm is to log freezing failures
	during snapshot, and retry the snapshot without freezing.  Future engine
	versions can change this policy based on the error code returned from
	new freezing APIs.

	Continuous-Integration: Jenkins CI

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

	network: avoid guest-host communication over IPv6 on bridges, unless requested
	On CentOS/RHEL 7, disable_ipv6=0 is the default so bridges allowed IPv6
	traffic even though it was not enabled (by setting a static address or
	using SLAAC or DHCPv6).

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

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

	api: use recommended logging
	Update the logging in setLogLevel to use
	less convoluted and more modern idiom.

	Continuous-Integration: Jenkins CI

	vm: clock: always use rtc timer
	We should always use the <timer name='rtc' tickpolicy='catchup'/> attribute.
	It was removed only because of a misunderstandment of the libvirt docs.

	<timer name='rtc' tickpolicy='catchup'/> is actually needed for Windows
	guests as well. It provides the guest with time drift fix that is particularly
	required on loaded servers.

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

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

	gluster: use socket.getfqdn instead of 'hostname' binary
	VDSM still requires the binary though, it is called in e.g.
	  vdsm/vdsm-gencerts.sh.in

	Continuous-Integration: Jenkins CI

2015-07-06  pkliczewski  <piotr.kliczewski@gmail.com>

	tests: marking slow tests with decorator
	Continuous-Integration: Jenkins CI

2015-07-06  Dan Kenigsberg  <danken@redhat.com>

	net: maintain legacy addNetwork/delNetwork APIs
	commits 43a6b9 and 167b02 changed the signature of addNetwork and
	delNetwork respectively. The name change, from "bridge" to "network" is
	highly reasonable, as we support non-bridged networks. However, it must
	not happen, as Engine 3.5 uses argument names in its json-rpc API.

	commits 3abcad and 1d015d modified the schema to the new signature, so
	they are reverted as well.

	With http://www.ovirt.org/Features/HostNetworkingApi implemented in
	engine-3.6, no one is going to call Vdsm's addNetwork/delNetwork any
	more. However, we must keep backward compatibility as long as engine-3.5
	is supported.

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

2015-07-06  Ido Barkan  <ibarkan@redhat.com>

	net: contrib: add veth cleanup to emergency_net_cleanup
	Continuous-Integration: Jenkins CI

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

	Removing support in sysv and upstart
	sysvinit upstart scripts used to support el6,
	which has been dropped from the master branch.
	Both not required since el7. systemd scripts
	become the standard in fedora, el and debian.

	Continuous-Integration: Jenkins CI

2015-07-05  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 that were not waited upon to zombiereaper.

	This patch can be merged once Python bug
	https://bugzilla.redhat.com/1210347 is closed.

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

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

	xmlrpc: Improve logging during shutdown
	We did not have proper logging when stopping the server, making it hard
	to debug. Starting and stopping subsystems should have info level log
	messages in the caller thread and in the server thread.

	Continuous-Integration: Jenkins CI

	fc-scan: Replace timing code with utils.stopwatch
	Replace explicit timing code and monotonic_time re-implementation with
	new stopwatch contextmanager.

	Continuous-Integration: Jenkins CI

	utils: Add stopwatch for timing operations
	stopwatch is a context manager that make it easy to time block of code
	that may take significant amount of time.

	Example:

	    with stopwatch("Resized multipath map %r" % name):
	        _resize_map(name)

	Will log a debug message:

	    Resized multipath map 'dm-42': 0.12 seconds

	If debug log level is not enabled, this contents manager does nothing.
	The log can be disabled by disabling the vds.stopwatch logger.

	Continuous-Integration: Jenkins CI

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

	migration: avoid stacktrace on known errors
	In migration code, if VM.migrationCreate() fails on destination host,
	we raise RuntimeError to abort the normal flow.
	However, in the recovery flow, we inconditionally log the stacktrace
	of the exception we catched.

	This is good for troubleshooiting, but it is a little pointless in
	this specific use case: we know already and precisely what failed.

	This patch adds a special-purpose exception for this specific, yet
	important, failure scenario, and avoids the stacktrace only when
	catching this exception.

	Continuous-Integration: Jenkins CI

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

	tests: Allow setting custom libvirt error message
	Fake Domain object was repeating the code in Error factory, and was
	using a default empty error message. Now we use Error and allow faking
	also the error message.

	Continuous-Integration: Jenkins CI

	tests: Add @recorded method decorator
	Manually recording function arguments and keywords again and again is
	not fun and error prone. This patch introduces a new decorator to make
	this task easier.

	To make a method recordable, mark the method you want to record:

	    class Foo:
	        @recorded
	        def foo(self, a, b, c=3):
	            pass
	        def bar(self):
	            return 42

	Methods decorated with @recorded will record all calls to the
	instance's __recording__ list:

	    f = Foo()
	    f.foo(1, 2, 4)
	    f.bar()
	    f.foo(2, 3)

	    print(f.__recording__)
	    [("foo", (1, 2), {"c": 4}), ("foo", (2, 3), {"c": 3})]

	The new decorator is used now by vmfakelib.Domain. It may be useful for
	other fake objects as well.

	Continuous-Integration: Jenkins CI

	tests: Record fake domain calls in a list
	Keeping calls in a list allows testing of multiple calls. We can check
	how many time a methods was called, what args and kwargs were used on
	each call, and we can verify the correct order of the calls.

	Continuous-Integration: Jenkins CI

2015-07-02  Ala Hino  <ahino@redhat.com>

	build: Change dependency on glusterfs-cli and glusterfs-fuse
	This is a revert of 766a54776555e6303b4ceae593c41bbfb0c764ae.

	Originally, glusterfs-cli and glusterfs-fuse were required only
	when not building vdsm on RHEV.
	We changed the spec file to always require
	gluster-cli and glusterfs-fuse in order to use gluster get volume
	info api to implement mounting gluster backup servers
	(https://gerrit.ovirt.org/41858).
	However, requiring these dependencies fails vdsm build on ppc64le.
	This patch revert requiring glusterfs-cli and glusterfs-fuse
	dependencies as were originally defined.

	Continuous-Integration: Jenkins CI

2015-07-02  Francesco Romani  <fromani@redhat.com>

	migration: use the response module
	Switch to response module for the sake of code
	clarity.

	Continuous-Integration: Jenkins CI

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

	tests: network: when using bonding, attach at least 2 slaves
	In some tests we attach just one slave to a bonding, it works
	with native linux bonding, but does not allow us to use existing
	for OVS bonding.

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

	network: allow custom bondOption
	Allow 'custom' in bond options. This value will be accepted by
	Bond.validateOptions method but it will not be passed to configurator.

	Thanks to this patch, users will be allowed to pass custom properties
	to setupNetworks hooks.

	This path was reverted in past because of malfunction, now it should
	work, there is a new test for sure.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1234867
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-07-02  Francesco Romani  <fromani@redhat.com>

	virt: don't log password in update graphic device
	updateDevice invoked against a graphics device
	allows Engine (or any other caller) to change the
	SPICE ticket.

	This patch make sure the ticket is not logged.

	Continuous-Integration: Jenkins CI

2015-07-02  Ido Barkan  <ibarkan@redhat.com>

	net: run dhclient in its own process group.
	This is done to prevent systemd from killing supervdsm dhclient child
	processes during supervdsm stop (or restart). Forking dhclient in
	its own process group prevents systemd from doing this.
	Since dhclient is deliberately killed either directly by supervdsm or
	indirectly by executing ifdown on a device and since executing a
	process in a different process group is harmless, the separate
	cgroup is now the default behaviour.
	This patch also fixes https://bugzilla.redhat.com/1187244 in a less
	clumsy way than KillMode=process.

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

2015-07-02  Yaniv Bronhaim  <ybronhei@redhat.com>

	load_needed_modules verb is not required
	Since ovirt-3.6 systemd takes care of loading required kernel modules during
	installation by using vdsm-modules-load.d.conf

	Continuous-Integration: Jenkins CI

2015-07-02  Francesco Romani  <fromani@redhat.com>

	jsonrpc: vdscli: migration: fix migrationCreate
	In virt migration code, we do logic on the return
	value of VM.migrationCreate API, and we expect it
	to be a proper response, so with ['status']['code']
	field, plus all the extra fields that APIs can add
	(see schema for examples).

	Current jsonrpc code strips all but the extra fields,
	so jsonrpcvdscli has to force fit a success code.

	This patch simplify the code by just passing around
	a copy of the raw data, leveraging the response module.
	This way the code is both simpler and more conformant
	to the old XML-RPC vdscli API.

	Continuous-Integration: Jenkins CI

2015-07-01  Ala Hino  <ahino@redhat.com>

	gluster:refactor: User specified backup servers option
	Move handling user specified backup servers option from
	_get_backup_servers_option method to options property.

	Continuous-Integration: Jenkins CI

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

	tests: add HostStatsThread._getCpuCoreStats test
	Next patch wants to refactor
	HostStatsThread._getCpuCoreStats into a free function,
	so this patch adds very basic test coverage.

	This test needs to be refactored as well, and will
	be done alongside the method refactoring.

	Continuous-Integration: Jenkins CI

	sampling: rename variables for clarity
	Rename:
	hs0 -> first_sample
	hs1 -> last_sample

	for clarity, and to conform to naming used elsewhere in the
	module/package. No changes in logic.

	Continuous-Integration: Jenkins CI

2015-07-01  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: create pv with custom dataalignment value
	Blivet creates pv with 1mb dataalignment forcefully for
	whatever given value. This patch uses lvm pvcreate command till
	this bug fixed in blivet.

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

2015-06-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Vdsm does not require tun device any more
	For many many years 6a915816, vdsm no longer creates tap devices directly,
	but uses libvirt instead. 

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-30  Ido Barkan  <ibarkan@redhat.com>

	tests: disable truncating diff in assert error messages
	Set the maximum length of a diff in failure messages by assert
	methods using difflib. When diffing long dictionaries this can make
	debugging easier. Also remove other specific uses of this setting.
	Without this setting a failing test messege might look like this:

	==============================================
	FAIL: testLongDiff (netinfoTests.TestNetinfo)
	-----------------------------------------------
	Traceback (most recent call last):
	  ...
	  self.assertEqual(first, seconds)
	AssertionError: {10: 63, 11: 72, 13: 65, 16: 72[truncated]...
	 != {2: 39, 3: 15, 20: 84, 37: 84, 50: 76, 53: [truncated]...
	Diff is 746 characters long. Set self.maxDiff to None to see it.
	----------------------------------------------------------------------

	Continuous-Integration: Jenkins CI

2015-06-30  Francesco Romani  <fromani@redhat.com>

	sampling: hoststats: switch to SampleWindow
	HostStatsThread has its own sampling storage code,
	like VmStatsThread had before the introduction of
	the SampleWindow class.

	The API of SampleWindow covers the HostStatsThread needs,
	so this patch ports HostStatsThread to SampleWindow,
	to reduce duplication.

	Continuous-Integration: Jenkins CI

2015-06-30  Ido Barkan  <ibarkan@redhat.com>

	net: tests: fix testSetupNetworksAddBondWithManyVlans
	testSetupNetworksAddBondWithManyVlans was calling getVdsStats. This
	call has nothing to do with testing multiple vlans per bond.
	Moreover, it failed the test. Since we specifically test
	getVdsStats in test_getVdsStats, it should only fail there.

	Continuous-Integration: Jenkins CI

2015-06-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Introducing vdsm preset systemd file
	http://www.freedesktop.org/software/systemd/man/systemd.preset.html

	systemd preset files are located under /usr/lib/systemd/system-preset/ -

	The prefix number tells the order priority. 90-default.preset enables
	ksmtuned.service which conflicts with vdsmd -
	therefore vdsmd priority is 85 - before the default preset and low enough
	 to not override other preset configurations if exists.

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

2015-06-30  Anton Marchukov  <amarchuk@redhat.com>

	Fixed scratchpad hook's image permissions and virtio device name
	Continuous-Integration: Jenkins CI

2015-06-30  Francesco Romani  <fromani@redhat.com>

	tests: HostStatsThread: sampling window tests
	Add test to ensure that the circular buffer
	for Host samples works as intended.

	Continuous-Integration: Jenkins CI

2015-06-30  Martin Polednik  <mpolednik@redhat.com>

	virt: use new mocking in hostdevTests
	With unified mocking mechanism for host devices, hostdevTests can now
	be converted to use the mechanism. This does not really change any
	functionality, but creates a pool of device XMLs that can be used in
	future tests.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-30  pkliczewski  <piotr.kliczewski@gmail.com>

	events: make sure to send only one event per status
	Initially we made an assumption that engine can handle more than one
	event containing the same status. The assumption is not true and there
	are flows where engine logic assumes only one status change.

	One of the problematic flows is vm destroy for which having duplicate
	means that the operation failed and recovery flow is triggered.

	Continuous-Integration: Jenkins CI

2015-06-30  Ido Barkan  <ibarkan@redhat.com>

	net: tests: test selective restore only if unified persistence
	testRestoreNetworksOnlyRestoreUnchangedDevices should be skipped if
	the persistence mode is ifcfg.

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

2015-06-29  Francesco Romani  <fromani@redhat.com>

	jsonrpc: vdscli: return raw error description
	The old XML-RPC based vdscli returns error responses if a method call
	fails, and never raises for those cases.
	If we want jsonrpcvdscli to be a drop-in replacement, then we must
	avoid to raise JsonRpcError on failures, and return error response
	directly.

	This patch does that.

	Continuous-Integration: Jenkins CI

2015-06-29  Amador Pahim  <apahim@redhat.com>

	Fix "print" syntax to work in python3
	Continuous-Integration: Jenkins CI

2015-06-29  Adam Litke  <alitke@redhat.com>

	Fix logging in LiveMergeCleanupThread
	The log object is located in the vm object, not in the
	LiveMergeCleanupThread.  Correct this logging statement which may have
	never been reached before.

	Continuous-Integration: Jenkins CI

2015-06-29  Ala Hino  <ahino@redhat.com>

	gluster: Verify volume is Replica 3
	Verify that only Replica 3 volumes are used in gluster storage domains.
	We enforce replica 3 because this is the recommended deployment for virt
	and gluster.
	We added a configuration to enable developers test gluster without
	the need to create replica 3 volumes.

	Bug-Url: https://bugzilla.redhat.com/1123052
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	gluster:refactor: Refactor GlusterFSConnection class
	Gluster volume info is required when validating that gluster volume
	is replica 3 and when calculating gluster backup servers option.
	volinfo property introduced to save multiple calls to get gluster
	volume info.
	self._volname and self._volfileserver introduced because they are
	used in multiple places in the code.

	Continuous-Integration: Jenkins CI

2015-06-29  Amador Pahim  <apahim@redhat.com>

	hook: diskunmap: To include UNMAP support for disk and lun devices
	This hook goes through VM definitions xml file and manipulate its
	disk device if it "disk" or "lun" and if the bus is "scsi" or "ide",
	adding "discard=unmap" option to "-drive" qemu command line patameter.

	UNMAP support was introduced by qemu 1.5 and it's intended to return
	the unused/freed blocks back to the storage, specially useful for
	thin provisioned LUNs.

	Result example:

	<disk device="disk" snapshot="no" type="block">
	        ...
	        <target bus="ide" dev="hda"/>
	        ...
	        <driver cache="none" discard="unmap" ... />
	</disk>
	<disk device="lun" sgio="filtered" snapshot="no" type="block">
	        ...
	        <target bus="scsi" dev="sda"/>
	        ...
	        <driver cache="none" discard="unmap" ... />
	</disk>

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-29  Martin Polednik  <mpolednik@redhat.com>

	virt: fix functional test graphics device for ppc64le
	The functional tests use qxl graphics device currently. Qxl isn't
	supported on ppc64le now, so using vnc for functional tests allow them
	to run without manual intervention.

	Continuous-Integration: Jenkins CI

2015-06-27  Nir Soffer  <nsoffer@redhat.com>

	ceph: Clear only ovirt secrets
	When clearing other secrets, unregister only ovirt secrets. This allow
	the administrator to add other secrets to libvirt. This is not strictly
	needed since we kind of own libvirt, but is more polite.

	Continuous-Integration: Jenkins CI

	ceph: Clear all secrets during startup and shutdown
	Libvirt secrets are needed only when vdsm is connected to engine. To
	ensure that we don't leave stale secrets or secrets which are not needed
	by the active storage domains, we clear all secrets when the service
	starting or stopping. Engine will register the required secrets when
	connecting to the host or when activating or deactivating storage
	domains.

	Continuous-Integration: Jenkins CI

2015-06-26  Francesco Romani  <fromani@redhat.com>

	tests: make permutations work
	A test was mistakenly rebinding a parameter,
	making the permutations irrelevant.
	This patch fixes that.

	Continuous-Integration: Jenkins CI

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

	ceph: Add option to clear other secrets
	Typically engine will add new secrets when activating a Cinder/Ceph
	storage domain or when a user add new secret to an active domain. Engine
	will remove secrets when deactivating a domain, moving the host to
	maintenance, or when a user delete a secret form an active domain.

	When host is unreachable when engine try to unregister secrets, the host
	will contain stale or unneeded secrets. When the host becomes UP again,
	engine would like to register all the secrets required for the current
	active storage domains, and clear any other secret.

	Continuous-Integration: Jenkins CI

	ceph: Undefine existing secret if usage changed
	When re-defining a secret, libvirt does not allow to change the usage
	id.  We know that we will have to change the usage id in the next
	version, when moving secrets from Cinder provider to the storage domain
	using the Cinder provider.

	So now lookup existing secrets and undefine secrets with different
	usage id before defining new secret.

	Continuous-Integration: Jenkins CI

	ceph: Add vdsClient secrets verbs
	New verbs:

	  registerSecrects <secrets_file>       Register secrets from file in
	                                        json format

	  unregisterSecrets <uuid> ...          Unregister secrets registered
	                                        for specified uuids

	Secret file format:

	[
	    {
	        "uuid": "3a27b133-abb2-4302-8891-bd0a4032866f",
	        "usageType": "ceph",
	        "usageID": "ovirt/f7234e97-1e49-47a3-aaa4-5962fc99c1e4/3a27b133-abb2-4302-8891-bd0a4032866f",
	        "password": "bm8gcGFzc3dvcmQgZm9yIHlvdSEK"
	    },
	    {
	        "uuid": "2638b449-e076-474e-8e72-0a3130cd8f7b",
	        "usageType": "ceph",
	        "usageID": "ovirt/f7234e97-1e49-47a3-aaa4-5962fc99c1e4/2638b449-e076-474e-8e72-0a3130cd8f7b",
	        "password": "bXkgc2VjcmV0IHBhc3N3b3JkCg=="
	    }
	]

	Continuous-Integration: Jenkins CI

	ceph: Support ephemeral Libvirt secrets
	To support network disk using Libvirt secrets, we will configure Libvirt
	using ephemeral and private secrets. Libvirt keep such secrets only in
	memory, and never store them persistently. The secret are not revealed
	to any caller of libvirt, nor to any other node.

	The actual authentication key will be stored in the engine in a secured
	manner. We will pass the key over secured transport to Vdsm when
	activating a storage domain supporting network disks, and unregister the
	secrets when deactivating the storage domain or the host.

	New secret APIs:

	  registerSecrets(secrets)   Define Libvirt secrets specified in the
	                             secrets list and set their authentication
	                             key.

	  unregisterSecrets(uuids)   Undefine the Libvirt secrets identified by
	                             the provided uuids list.

	For more info see Libvirt documentation:
	https://libvirt.org/html/libvirt-libvirt-secret.html

	Continuous-Integration: Jenkins CI

2015-06-26  Douglas Schilling Landgraf  <dougsland@redhat.com>

	register tool: Add lower() to compare fingerprints
	Make sure the fingerprints will match in cases user
	typed one letter with in upper and other in lower.

	Continuous-Integration: Jenkins CI

2015-06-26  Francesco Romani  <fromani@redhat.com>

	spec: serial console: require ovirt-vmconsole
	The ovirt-vmconsole package owns the ovirt-vmconsole
	user/group, and ships shared utility code.
	It doesn't add any service, so it is safe to depend
	on it to make sure the ovirt-vmconsole group is
	present on the system.

	Related-To: https://bugzilla.redhat.com/1229827
	Bug-Url: https://bugzilla.redhat.com/1223671
	Continuous-Integration: Jenkins CI

2015-06-26  Darshan N  <dnarayan@redhat.com>

	gluster: run restorecon for files created during geo-rep create.
	This patch runs restorecon on ssh directory and authorized_keys
	file if they are created as part of geoRepKeysUpdate verb.
	This is used by geo replication feature. When selinux is
	enabled, without this fix ssh between master and slave nodes
	fail.

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

2015-06-26  Ido Barkan  <ibarkan@redhat.com>

	net: use KernelConfig instead of RunningConfig in setupNetworks
	Using RunningConfig is not enough because it is not necessarily
	equal to what is really configured in the kernel. Also, it might
	not be present at all (during boot). since this code runs only if
	the network is in _netinfo.networks, it is also safer to use
	KernelConfig.
	Note that just as in vdsm-restore-net-config, a KernelConfig instance
	and a {Persistent,Running}Config instance cannot be directly compared
	without normalizing the latter. This is because a few language
	differences and a few default values used in the latter.

	Continuous-Integration: Jenkins CI

2015-06-25  Ido Barkan  <ibarkan@redhat.com>

	net: fix possible 'stp' key duplication in persistent config
	Before the fix, In case the persistent config had {'STP': 'no'} the
	normalized config would be {'stp': False, 'STP': 'no'}.

	Continuous-Integration: Jenkins CI

	net: typo in KernelConfig
	Continuous-Integration: Jenkins CI

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

	tests: netmodels: quick unbreak
	This patch moves the monkey-patching of bonding defaults file
	to the class level, so it affects all tests.

	Continuous-Integration: Jenkins CI

2015-06-25  Yaniv Bronhaim  <ybronhei@redhat.com>

	Remove el6 specific code from spec
	Continuous-Integration: Jenkins CI

	Removing libvirt configure fallback from spec
	we don't require using systemd-vdsmd and vdsmd scripts anymore for
	libvirt configure as we stop supporting vdsm versions that does not
	include vdsm-tool configure verb - this patch makes it impossible to
	upgrade from ovirt-3.3 directly to ovirt-3.6

	Continuous-Integration: Jenkins CI

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

	net: tests: do not use KernelConfig.__eq__ in tests
	Until now, functional tests used the __eq__ to assert that a
	KernelConfig instance is equal to a RunningConfig instance. This
	hides the normalization process inside __eq__ and makes the life of
	the tester very hard if something really breaks. We trade some magic
	here for a better error message.

	Continuous-Integration: Jenkins CI

2015-06-24  Ala Hino  <ahino@redhat.com>

	build: Add dependency on gluster-cli
	Dependency on gluster-cli is needed in order to get gluster volume info.
	This volume info is needed in the patch that targets mounting gluster
	backup volume servers (gluster: Allow gluster mount with additional
	servers, commit: 87ae69ed7f60).

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	tests: netlink: update expected events
	If IPv6 is disabled in kernel, we don't get all expected events on
	dummy creation. I removed such events from our test, so it pass anyways.

	Continuous-Integration: Jenkins CI

2015-06-24  Pavel Zhukov  <pzhukov@redhat.com>

	Improve readability of _ownedIfcfg procedure
	Before this patch, _ownedIfcfg returned three possible values (True, False or
	None). It is clearer to return False or True explicitly.

	Furthermore, we don't need special treatment for ENOENT (no such file or
	directory) since we call this helper function only on existing files (yielded
	by iglobe).

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	net: ifcfg: ONBOOT=yes on all persisted network files.
	This will cause network service to configure those networks long
	before vdsm starts. after https://gerrit.ovirt.org/#/c/42355/
	vdsm will only restore changed networks.

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

	net: during boot, restore only networks that were actually changed.
	This is an optimization that will shorten boot time when there are many
	networks. If also, all persisted networks will be persisted with onboot=true,
	then in most case, all the hard of restorattion will be done by network
	service and vdsm will only interfere to fix the changed networks and bonds.

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

	net: introducing KernelConfig
	KernelConfig can be created from a NetInfo object. It reflects the
	network kernel state and exposes an API similar to RunningConfig. At
	this stage, It can compare itself to a RunninConfig instance in order to
	be tested properly and prove it is 'correct'. Later, it should be able to
	tell which networks/bonds it obtained from the kernel are different
	from a given PersistentConfig's networks/bodns.
	This is useful at boot time in order to allow skipping restoring already
	configured networks.
	Since VDSM network api has language differences from netinfo module and
	also has many default parameters, KernelConfig tries to do 2 things:
	1. It tries to be expilict as possible (no defaults)
	2. It knows how to 'normalize' a running/persistent config so it would
	   also be explicit.

	Note the custom properties are never included in KernelConfig, as they only
	serve as hints to Vdsm and its hooks. Therefore, tests which set custom
	properties would certainly get into RunningConfig!=KernelConfig.
	These tests pass test_kernel_config=False so as not to fail.

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

	net: tests: wait for a specific state of a device
	5d6c571d added _waitForKnownOperstate. This improved tests
	reliability but it is not enough. It may happen that a test will
	fail because the initial device state is down and inside a
	nonChangingOperstate context manager, it changes to up. It is safer
	to ensure that the initial operation state is not only other than
	'unknown' but a specific one (most probably 'up').
	Also, the state names where replaced with constants in
	lib/vdsm/netinfo.py for future use.

	Continuous-Integration: Jenkins CI

	net: Drop default bonding options
	On old engines, no bonding options were provided to VDSM and it
	used to configure it's own default options. Nowadays, those options
	are always provided by engine. If a user will setup a network on an
	existing bond, VDSM takes ownership of the bond and configures the
	options on it.
	The code for the default options was very local and options were
	set 'too late' to be persisted. Hence this code was incorrect and
	is not needed anyway.
	The change in behavior is that from now on, if a bond with no options
	is explicitly requested, the kernel will be asked to create a bond
	without any options making the default kernel options effective.

	Continuous-Integration: Jenkins CI

2015-06-23  Nir Soffer  <nsoffer@redhat.com>

	vm: Gather disk replication private methods
	Move disk replication private methods together, bellow the public
	methods without any code change.

	Continuous-Integration: Jenkins CI

	vm: Delete Drive.diskReplicate before saving config
	When drive replication is finished, either by pivoting to the
	destination volume or keeping the source volume, Drive.diskReplicate
	must be deleted, to ensure that high watermark monitoring is correct.

	The current code could fail to delete diskReplicate if the disk was not
	found in Vm.conf, or saving state failed. This could lead to incorrect
	extend requests for non-existent volume.

	Continuous-Integration: Jenkins CI

2015-06-23  Ala Hino  <ahino@redhat.com>

	gluster: Allow gluster mount with additional servers
	Currently, engine supports mounting single gluster server. With this
	change, mount will include the other two gluster servers defined in the
	replica.  To do so, vdsm uses gluster get info api in order to get the
	IPs of the other two servers and then, builds mount command using
	gluster 'backup-volfile-servers' option.

	This patch does not change existing api, it only saves the user the
	work needed to mount other gluster severs. Before this patch, if user
	explicitly provided 'volfile-backup-servers' option, with this patch,
	it is not required anymore.

	Note that today vdsm has soft-dependency glusterfs-fuse and with this
	change, vdsm will have dependency on glusterfs-cli. If this dependency
	doesn't exist, there is an error when creating gluster storage domain.

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

2015-06-23  Darshan N  <dnarayan@redhat.com>

	gluster: Remove Vdsm's dependency on glusterfs-server pkg
	This patch removes dependency of vdsm package on
	glusterfs-server package. This removal of dependency
	is needed for ovirt-gluster HC use case.

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

2015-06-23  Francesco Romani  <fromani@redhat.com>

	vm: fixed broken usage of super()
	Fixes broken usage of super() in MissingLibvirtDomainError.

	Continuous-Integration: Jenkins CI

2015-06-23  pkliczewski  <piotr.kliczewski@gmail.com>

	test: make sure that jsonrpc test timeout
	We want to reuse recently created call method with timeout. By using it
	we would make sure to timeout when the response won't arrive. Whenever
	this situation happens we raise JsonRpcNoResponseError.

	When we added timeout method which takes more time to process than the
	client wait on it the code close server which is problematic. After slow
	method processing finishes and the server side is already closed the is
	nice stack trace on the console so we added a check so we won't pollute
	the console during test execution.


	Continuous-Integration: Jenkins CI

2015-06-23  Nir Soffer  <nsoffer@redhat.com>

	ceph: Report librbd1 package details
	Report librbd1 package details in getVdsCaps output.  Engine will use
	this information to validate adding a host or storage domain to a data
	center.

	Continuous-Integration: Jenkins CI

2015-06-23  pkliczewski  <piotr.kliczewski@gmail.com>

	events: send event explicitly after vm was started
	We need to make sure that we send 'PoweringUp' status. After we moved
	event send logic from _set_lastStatus to ClientIf we no longer send it.


	Continuous-Integration: Jenkins CI

2015-06-23  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Moving conf init things together
	Continuous-Integration: Jenkins CI

2015-06-23  Nir Soffer  <nsoffer@redhat.com>

	multipath: Minor style cleanups
	Unify CommandPath constants and align the comments.

	Continuous-Integration: Jenkins CI

2015-06-22  Nir Soffer  <nsoffer@redhat.com>

	Revert "ceph: Require ceph-common package"
	We cannot include Ceph packages with current vdsm spec, since ceph is
	not available on PPC.

	For accessing Ceph network disks, we need librbd1, which is recently
	required by qemu-kvm, so we do not need to require ceph-common with
	current code.

	We will have to fix vdsm spec to allow architecture based dependencies
	before we can require Ceph packages.

	This reverts commit a55ee250ff1809a7865e92aedbc698f4cea1db21.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-22  Ido Barkan  <ibarkan@redhat.com>

	net: tests: testAddVlanedBridgeless should use a standard name
	Names that do not start with NETWORK_NAME are not cleared by
	shell_helper emergency_net_cleanup command.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-22  Genadi Chereshnya  <gcheresh@redhat.com>

	libvirt: Replacing xml.dom.minidom with cElementTree module
	The change is done as etree is much faster than minidom.

	Continuous-Integration: Jenkins CI

2015-06-22  Francesco Romani  <fromani@redhat.com>

	migration: wait after the downtime is updated
	Currently VDSM updates the migration max downtime in
	a loop, waiting a given amount of time before to update
	the downtime.

	Until VDSM changes the downtime, we use the default QEMU value,
	which has little benefit for our needs.

	We want to use our algorithm quickly, so this patch makes
	the code wait just after each update.
	As further benefit, the downtime is now updated immediatly when
	migration starts.

	Continuous-Integration: Jenkins CI

	migration: allow one-step downtime settings
	In specific environments, it may be useful
	to have one-step downtime setting.

	This actually translates to just set the specified
	downtime and go ahead.

	Continuous-Integration: Jenkins CI

	migration: make downtime steps instance attributes
	Move the DowntimeThread steps from class constant
	to instance attribute, to make the code more testable.

	Continuous-Integration: Jenkins CI

	sampling: return correct vcpu positioning info
	In commit 262917767771ef590fad2a4266dad1c2a915e5ba
	We incorrectly started to report the full vcpu()
	output from libvirt. numaUtils code expects
	a subset of this data, so when NUMA is enabled
	(e.g. always for the hotplugMem feature), we
	start to spam the logs with

	File "/usr/share/vdsm/numaUtils.py", line 106, in
	getVmNumaNodeRuntimeInfo
	    _get_vcpu_positioning(vm))
	  File "/usr/share/vdsm/numaUtils.py", line 141, in
	_get_mapping_vcpu_to_pcpu
	    for (vcpu_id, _, _, pcpu_id) in infos:
	ValueError: need more than 1 value to unpack

	Every 15s, and we broke the numa sampling.

	This patch restores the correct behaviour.

	Continuous-Integration: Jenkins CI

2015-06-22  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Do not perform disconnect actions when destroyed
	Up until now, we did blindly try to perform actions like desktopLock
	on the guest agent, even if the VM was already destroyed.
	This can cause tracebacks to be present in the logs since we won't
	be connected to the guest agent channel anymore.

	Example of traceback:

	Traceback (most recent call last):
	  File "/usr/share/vdsm/virt/guestagent.py", line 357, in desktopLock
	    self._forward("lock-screen")
	  File "/usr/share/vdsm/virt/guestagent.py", line 227, in _forward
	    self._sock.send(message)
	  File "/usr/lib64/python2.7/socket.py", line 170, in _dummy
	    raise error(EBADF, 'Bad file descriptor')
	error: [Errno 9] Bad file descriptor

	This patch now at least checks that '_destroyed' is not 'True'.
	This will not solve this for all the cases, since there is still
	room for a race condition however should improve the times of this
	happening significantly.

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

2015-06-21  Nir Soffer  <nsoffer@redhat.com>

	vm: Save state only if disk was updated
	When updating disk parameters, there is no point in saving state if we
	did not find the disk and modify it.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	vm: Take _confLock when updating Vm.conf disk parameters
	This method updates multiple parameters, so we must lock the dict to
	prevent other threads from seeing inconsistent state.

	Continuous-Integration: Jenkins CI

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

	vmstats: TypeError is unlikely with modern libvirt
	Modern libvirts, which we already require, make
	use of virTypedParameter, which the Python
	bindings make safe to transform in the proper
	native types.

	Thus, a TypeError is highly unlikely those days.

	Continuous-Integration: Jenkins CI

	vmstats: do not catch unlikely ZeroDivisionError
	Nowadays, the only foreseeable reason to have ZeroDivisionError
	in the vmstats functions, is when interval is zero.

	This case is in turn very very unlikely, as it should
	happen only in the extravagant case of two polling cycles racing
	together, saving bad bugs in the sampling code.

	So, drop the ZeroDivisionError from the handled
	exception, and we add an explicit guard to be sure
	we record these end-of-the-world-like cases.

	Continuous-Integration: Jenkins CI

	sampling: more detailed stale sampling reporting
	To improve troubleshooting, report timestamps
	of current and stale samples when discarding
	data for timestamp too old.

	We are already logging this event, so adding new
	information is quite cheap and can make
	troubleshooting easier.

	Continuous-Integration: Jenkins CI

2015-06-19  Dan Kenigsberg  <danken@redhat.com>

	sampling: use constants for counter bounds
	When we report cpu and network usage, we take two samples of Linux
	counters, and divide their difference by the elapsed time. If a sampled
	counter wraps around its upper bound, we might report an invalid
	negative value. To avoid that, we take the modulu of the difference.
	For example, assume that the first sample was (2**64 - 10) jiffies and
	30 jiffies have passed until the second sample, the difference would be
	the hugely negative value (30 - 2**64). Taking modulu 2**64 returns the
	correct value of 30 jiffies.

	JIFFIES_BOUND is taken from the size of clock_t and NETSTATS_BOUND -
	from the size of the fields of struct net_device_stats. I am not aware
	of any programmatic way to acquire this value, but they are both of 64
	bit size on x86_64 and ppc64.

	Taking modulu 2**32 works perfectly well, since two subsequent samples
	are unlikly to be that far apart, and it has the benefit of working well
	on a 32 bit host, too.

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

	migration: fix spacing
	Continuous-Integration: Jenkins CI

2015-06-19  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: log number of request during period of time
	We want to understand how many requests were received by vdsm during
	specified time. Every interval we log known number of requests and we
	reset the value.


	Continuous-Integration: Jenkins CI

2015-06-18  Ido Barkan  <ibarkan@redhat.com>

	net: reset bonding options to defaults.
	When an existing bond is edited, replacing bonding options in the
	ifcfg file and ifdown+ifup is not enough. This is because ifcfg
	script will only set the options that are indicated. This is a
	bug since what is persisted is not what is eventually configured on
	the edited bond.
	This is solved by resetting the non default options back before ifup.
	testSetupNetworksResizeBond was changed to point at the bug and prove
	it is solved.

	Continuous-Integration: Jenkins CI

2015-06-18  Fred Rolland  <frolland@redhat.com>

	resize-lun: Cleanup getDeviceList
	Change parameter name to more appropriate.

	Continuous-Integration: Jenkins CI

	resize-lun: Resize devices in connectStorageServer
	While a host was not connected to a storage server, the underlying
	devices backing up a multipath devices may have been resized.

	To ensure host is synced with the devices state, we refresh storage,
	rescanning devices and resizing them if needed when the host connects to
	a storage server.

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

	resize-lun: Support guids parameter in getDeviceList
	Add optional "guids" parameter to getDeviceList. If specified,
	getDevicesList will get info and test only these devices.

	In the resize LUN flow, we need to rescan and resize the devices before
	resizing the PV. Engine will invoke getDeviceList verb with specific
	LUNs ids.

	In getDeviceList we test PV creation and this is a heavyweight
	operation, using the guids parameter we limit the operation to the
	specified devices.

	Examples:

	    getDeviceList
	        return all devices

	    getDeviceList FCP
	        return only FCP devices

	    getDeviceList ISCSI guid1 guid2
	        return info for guid1 and guid2, assuming ISCSI type

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

	resize-lun: Resize multipath maps in refreshStorage
	In StorageDomainCache, after calling multipath.rescan() we call
	multipath.resize_devices(). This is needed in case that the SCSI devices
	were resized on the storage server.

	It is called from getDeviceList during LUN resize flow, and
	connectStorageServer for the case when the host was not up when the LUN
	was resized.

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

	resize-lun: Add resize map support in multipath
	In a scenario where a LUN has been increased on the storage server, and
	after rescan, the underlying devices are larger then the multipath map.
	We need to resize the multiapth map.

	This patch adds multipath.resize_devices() function that iterates over
	all multipath devices, check the if slave size is bigger then the
	multipath map, and resize the map if needed.

	Since resizing multipath maps requires root privileges, new
	superVdsm.resizeMap() function was added to perform the resize.

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

	resize-lun: Add resizePV verb
	This series of patches add support resizing of a storage domain after
	a LUN was resized on the storage server.

	Main flow - the user initiates LUNs resize

	- Engine will invoke getDeviceList verb on all the hosts, with the
	  specific LUNs guid. getDeviceList will rescan and resize the multipath
	  map if needed.
	- If all the hosts are seeing the same LUN size, resizePV verb will be
	  invoked on the SPM, resizing the PV to the underlying device size.

	Secondary flow - a host recovers from maintenance/down state

	- When a host connects to the storage server, a rescan and resize of
	  multipath devices will be performed. This operation will make sure
	  that the host is synced with the storage server.

	This patch adds the resizePV verb. This verb calls pvresize on a device
	and returns the new PV size. This verb will extend the PV after a LUN
	was resized on the storage server. This is a SPM operation.

	Example outputs:

	    $ vdsClient -s 0 resizePV \
	            d24ebee6-ec30-4270-88a2-a8f38a5a804a \
	            5966cee6-ee28-454c-96bc-e318bed1291a \
	            360014057fac79f7f7dc4c15b29405f4e
	        size = '36104568832'

	    $ vdsClient -s 0 resizePV
	      Error using command: Wrong number of arguments provided, expecting 3
	      (3 required) got 0

	      resizePV
	          <sdUUID> <spUUID> <GUID>
	          Resize PV in Storage Domain - After a block device has been
	          resized in storage server, this method will cause the PV to use
	          the entire size of the block device

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

2015-06-17  Allon Mureinik  <amureini@redhat.com>

	hooks: Fix RHEVM references in README file
	Replaced outdated references of rhevm-config to oVirt's engine-config.

	Continuous-Integration: Jenkins CI

2015-06-17  Nir Soffer  <nsoffer@redhat.com>

	spec: Remove duplicate mom requirement
	Commit 851b302be77a (Separate MOM to an external process) updated mom
	requirement so we require the same version when building for rhev or for
	other platforms. This patch removes the now unneeded condition.

	Continuous-Integration: Jenkins CI

2015-06-17  Martin Polednik  <mpolednik@redhat.com>

	virt: log skipped devices
	Since hostdev passthrough doesn't require all of the devices in the
	same iommu group to be assigned to VM but they still have to be
	detached, it might help future debugging to actually log skipped
	devices.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	virt: make SkipIOMMUPlaceholderDevice generic SkipDevice
	If we encounter the need to skip any device in future, the SkipDevice
	exception (in vmdevices.core) can be raised and caught to accomplish
	this in very consistent way.

	Continuous-Integration: Jenkins CI

2015-06-16  Yeela Kaplan  <ykaplan@redhat.com>

	jsonrpc: missing parameters on instantiation of Error
	Continuous-Integration: Jenkins CI

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

	net: tests: testLowerMtuDoesNotOverride leaves a bond behind
	This might fail tests that come after with in hard to understand
	failures.

	Continuous-Integration: Jenkins CI

2015-06-16  Yaniv Bronhaim  <ybronhei@redhat.com>

	Vdsm version 4.16 and above does not support cluster level 3.3 and below
	Since Vdsm 4.16 we didn't keep cluster 3.3 and below support. This patch
	makes corrects the report of supported clusters and engine versions.
	oVirt-Engine 3.4 is still supported as tech-preview. For more
	information reach the attached bug.

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

2015-06-16  Yeela Kaplan  <ykaplan@redhat.com>

	daemonAdapter: remove traceback when using help option
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120787
	Continuous-Integration: Jenkins CI

	spec: require kernel version to avoid sudo hanging
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1082638
	Continuous-Integration: Jenkins CI

	migration: raise and except only specific exceptions
	Right now on migration over JsonRpc we swallow
	any RuntimeError, when actually we might need to fail
	the migration.
	To avoid this we will do except clause only for
	very specific JsonRpcErrors.

	Continuous-Integration: Jenkins CI

2015-06-16  Francesco Romani  <fromani@redhat.com>

	virt: sampling: replace flag with Semaphore
	In order to detect stuck sampling calls, the SampleVM
	operation used a simple boolean flag to track if
	the code was running or not.

	However, this may lead to races if an operation unblocks
	just after the flag was set.
	This race is expected to do little harm, but could and should
	be improved anyway.

	To avoid race, we convert the boolean flag to a Semaphore.
	The Semaphore is used as glorified counter, so it should
	always be called with blocking=False.

	Continuous-Integration: Jenkins CI

2015-06-16  Martin Polednik  <mpolednik@redhat.com>

	hostdev: only allow pci devices to be iommu placeholders
	Only PCI uses VFIO driver, and therefore "granular" functionality
	doesn't really relate to USB or other kinds of devices.

	Continuous-Integration: Jenkins CI

2015-06-16  pkliczewski  <piotr.kliczewski@gmail.com>

	config: remove not needed option
	json_port is not used anymore. We do not open second port for jsonrpc
	specific communication. We use protocol detection instead.

	Continuous-Integration: Jenkins CI

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

	shell_helper: print nets removed from libvirt
	Continuous-Integration: Jenkins CI

	net: tests: wrap setupNetworks calls
	This is done to allow the following patch to insert some logic into
	setupNetwork calls and remove self.vdsm_net bolerplate. '_caller' trick
	logic was also altered to support it.

	Continuous-Integration: Jenkins CI

2015-06-16  Yeela Kaplan  <ykaplan@redhat.com>

	jsonrpcvdscli: use subscription when creating a client
	This patch is required to enable the client to work
	with the new subscription and
	broker model that will be used in oVirt 3.6

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

2015-06-15  Ala Hino  <ahino@redhat.com>

	storageServer: Simplify subclass mountpoint overriding
	Define DIR constant that can be overriden by subclasses to provide custom
	storage domain directory. For example, GlusterFSConnection defines DIR as
	"glusterSD".

	Continuous-Integration: Jenkins CI

	tests: Add test for mount connection classes
	Add unit tests for MountConnection and GlusterFSConnection classes.

	Continuous-Integration: Jenkins CI

2015-06-15  Nir Soffer  <nsoffer@redhat.com>

	multipath-conf: Add (disabled) overrides section
	Upstream multipath is supporting new "overrides" section, allowing
	overriding certain options in all built-in devices options. Using this
	new section, we can remove the devices entries, and replace them with
	2 entries in the overrides section.

	The new section is currently disabled until this feature is available on
	all supported platforms.

	Comments in the generated multipath configuration will help users to use
	this option if it is already available on their platform.

	For more info see multipath-tools commit 3b40d0d9f39fe (libmultipath:
	add overrides section to multipath.conf).

	Relates-To: https://bugzilla.redhat.com/880738
	Continuous-Integration: Jenkins CI

2015-06-15  pkliczewski  <piotr.kliczewski@gmail.com>

	status: logging status values before sending event
	Continuous-Integration: Jenkins CI

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

	virt: Trigger event on guest agent status changes
	Continuous-Integration: Jenkins CI

2015-06-15  Martin Sivak  <msivak@redhat.com>

	Balloon should not work when guest agent is not present
	StatAvg returns 0 when there is no data available. We need to use Stat
	here so we get None and properly fail the condition.

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

	Increase MOM intervals between stats and policy evaluation cycles
	This lowers the load on multi-processor machines tremendously as seen
	during tests done by multiple customers and users.

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

	Separate MOM to an external process
	MOM won't be started as an internal thread anymore. Its preconfigured
	instance will be started as systemd service instead.

	VDSM will keep communicating with MOM as usual over MOM's RPC interface.
	This also updates setKsmTune to be logged only in TRACE mode to avoid
	log pollution.

	New mom-vdsm service requires VDSM to be Up and uses the config file
	/etc/vdsm/mom.conf. It also exposes its own RPC using unix domain
	socket /var/run/vdsm/mom-vdsm.sock.

	mom-vdsm will be restarted when vdsmd restarts and started when
	vdsmd starts (but errors in mom-vdsm do not propagate to vdsmd).

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

	Add support for KSM and CpuTune calls to XMLRPC for MOM to use
	MOM is moving to a separate process, but it still needs to be able
	to perform the same actions regarding KSM and QoS.

	This patch adds the missing pieces to be used before the jsonrpc
	client is ready.

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

2015-06-15  Ondřej Svoboda  <osvoboda@redhat.com>

	constants: remove unused EXT_* paths to binaries
	git grep (in the root of the repository) cannot find their use.

	Continuous-Integration: Jenkins CI

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

	migration: Use jsonrpc during migration of vms
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1112594
	Continuous-Integration: Jenkins CI

2015-06-15  pkliczewski  <piotr.kliczewski@gmail.com>

	virt: adding statusTime in milliseconds
	When sending vm status changes to the engine we can not guarantee the
	ordering. We use monotonic time to determine the order for single host
	and migration flow is solved on the engine side to sort out differences
	between monotomic time on different hosts.

	Continuous-Integration: Jenkins CI

	stomp: outgoing connection to a broker
	In this patch we introduce new config values:
	- broker_enable - it tells vdsm whether to connect to a broker on not.
	                  default value is false.
	- request_queues - contain list of queue names that vdsm should
	                   subscribe to.
	- event_queue - contains a queue name to which events are sent

	When we loose incoming connection we cleanup stomp subscriptions and we
	need to do the same for outgoing connection. It is important to know
	only about valid subscriptions.


	Continuous-Integration: Jenkins CI

2015-06-15  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: refresh lvm devices after brick create
	Issue:
	Brick create function in vdsm gluster module which creates lvm
	devices like pv, vg, thinlv and format the lv and mount it
	using python-blivet. In the brick creation process, the created
	vgs are not visible to lvm vgs command and the lvm devices and
	its details are not available or not listed by devices list
	function.

	Cause:
	On every successful brick creation the thin lv mount details
	will be updated into fstab entry to get the devices mounted
	automatically on reboot.

	Because of this visibility issue with lvm devices, the thin lvs
	which are mounted during brick create process are not getting
	mounted automatically on any number of reboot. The Blocking bug
	filed in https://bugzilla.redhat.com/show_bug.cgi?id=1227788

	Observations:
	This issue is observed in any plain RHEL6.6 or RHEL6.7 node
	with the latest kernel (2.6.32-567.el6.x86_64) and python-
	blivet installed with or without vdsm installed in the node.
	This issue identified in the rhel system where it has the
	default lvm configuration.

	Findings:
	According to LVM2 man page documentation, vgscan should
	take place automatically and the manuel vgscan required only
	when there is any hardware change. The created vg details should
	be updated automatically. But it fails here some how. This shows
	that, this is absolutely an lvm issue. We have to run pvscan
	or vgscan to make lvm see vgs or lvs. Bug for lvm filed in
	https://bugzilla.redhat.com/show_bug.cgi?id=1230495
	However there may be a little chances for blivet could cause
	this issue by passing some causing arguments to lvm. Blivet team
	is working on this to verify this.

	This issue never observed on any reboots or brick creates;
	when we execute a lvm pvs command or vgscan command at-least
	once afer any first brick create.

	Fix:
	This patch refresh lvm devices after brick create
	by running vgscan. This is a workaround patch and this
	will be removed once the lvm bz#1230495 is fixed.

	Kindly refer the bugs for any further details or logs.

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

2015-06-15  Bala.FA  <barumuga@redhat.com>

	gluster: add xfsprogs as dependency to gluster sub-package
	As glusterBrickCreate verb uses xfs filesystem as default, this patch
	add xfsprogs package as dependency.

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

2015-06-14  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: fix vg create failed first time during brick create
	Currently brick create uses vdsm lvm module for pv create and
	blivet to create a vg. This issue not occured if both pv and vg
	are created using blivet itself.
	But unfortunately blivet has few issues while creating a vg.
	Its able to create a vg with a pesize of minimum 1mb only.
	Also the vdsm lvm module has some issue while creating a vg.
	So this path uses lvm vgcreate command to create the vg
	as a workaround.

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

2015-06-14  Yeela Kaplan  <ykaplan@redhat.com>

	jsonrpcvdscli: create a client for vdsm with jsonrpc
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1112594
	Continuous-Integration: Jenkins CI

	stomp: add an option to create a stomp client
	Continuous-Integration: Jenkins CI

	sslutils: move createSSLContext from clientIF
	This can no longer be a private method, since we
	need it for creating an ssl context on vm migration.
	and it should be a part of vdsm's interface.

	Continuous-Integration: Jenkins CI

2015-06-13  Yeela Kaplan  <ykaplan@redhat.com>

	jsonrpc: add a default timeout for client call
	Continuous-Integration: Jenkins CI

	utils: add a utility to create a connected socket
	Needed for use both in jsonrpc unit tests
	and jsonrpc migration

	Continuous-Integration: Jenkins CI

2015-06-13  Darshan N  <dnarayan@redhat.com>

	gluster: verbs to override/reset cli snapshot scheduling.
	This patch adds two verbs to override/reset gluster cli
	based snapshot scheduling. The verbs are as follows:

	*snapshotScheduleOverride: This verb sets the snapshot
	scheduling flag in meta-volume to ovirt, this means
	the snapshot scheduling job will be taken care by
	engine and the gluster won't be able to schedule
	snapshots. This has optional argument force. With
	force option, any existing gluster schedules will
	be disabled.

	*snapshotScheduleReset: This verb sets the snapshot
	scheduling flag in meta-volume to none, this means
	the snapshot scheduling job will no longer be taken
	care by engine.

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

2015-06-13  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: handle partition table corruption error
	Currently vdsm throws an exception if there is any corruption
	in the partitition entry of any device and returns an error
	for devices list and create brick. This path fixes this issue
	by just loggin the issue and continue with remaining devices.

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

2015-06-12  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add support for usb devices
	In order to support USB passthrough, we only have to pass usb hostdev
	compilant XML. Detaching and reattaching is not needed, and was
	implemented before due to documentation bug in libvirt.

	Continuous-Integration: Jenkins CI

2015-06-12  Adam Litke  <alitke@redhat.com>

	tests: Fix writing of logBlkSize property
	This recent patch[1] changed FakeBlockStorageDomain so that we would not
	attempt to write to readonly properties in the StorageDomain class.
	This patch extends that logic to also cover the logBlkSize property

	[1] https://gerrit.ovirt.org/#/c/42006/

	Continuous-Integration: Jenkins CI

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

	hooks: noipspoof: allow multiple interfaces
	In this patch, the specified IPs are set on all interfaces. Note that
	this simplistic approach lets one interface spoof the IP of another.

	Continuous-Integration: Jenkins CI

2015-06-12  Darshan N  <dnarayan@redhat.com>

	gluster: Added an optional argument to mountBrokerSetup verb
	Added an optional argument called "partial" to mountBrokerSetup
	verb. This argument takes boolean value. If true only mount broker
	root creation is done as part of mountBrokerSetup, else along with
	root creation user addition and few mount broker options are also
	set.
	This is introduced because in only one of the slave node's all the
	operations mentioned above has to be done, this is synced to all
	the remaining nodes automatically. Only mount broker root creation
	has to be performed on all the slave nodes. Engine can call this
	verb with partial as false on one of the nodes and on all the other
	nodes verb can be called with partial set to true.

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

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

	hooks: noipspoof: improve docstring
	The property's regexp must include the comma characters.

	Users should be reminded not to override their existing
	UserDefinedVMProperties.

	Continuous-Integration: Jenkins CI

2015-06-12  pkliczewski  <piotr.kliczewski@gmail.com>

	events: vm status notifications
	Whenever vm changes status we send notification to an engine with vmid
	and new status.

	Continuous-Integration: Jenkins CI

2015-06-12  Ondřej Svoboda  <osvoboda@redhat.com>

	configurators: remove duplicated 'from __future__ import absolute_import'
	Continuous-Integration: Jenkins CI

2015-06-12  Omer Frenkel  <ofrenkel@redhat.com>

	virt: memory hotplug for vm
	Introduces a new verb to hotplug memory to a running vm.
	the memory is plugged to a guest NUMA node.
	exposes it in the XML-RPC and JSON-RPC.

	http://www.ovirt.org/Features/Memory_Hotplug

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

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

	ceph: Add libvirt secret testing infrastructure
	New vmfakelib.Error function create a libvirt.libvirtError with specific
	error code, for testing code that must handle certain libvirt errors.

	vmfakelib.Connection supports now secret related methods:

	- secretDefineXML
	- secretLookupByUUIDString

	New vmfakelibTests module added to verify that the fakes are behaving
	like the real libvirt objects.

	Continuous-Integration: Jenkins CI

	ceph: Support authentication using libvirt secrets
	When using network disk and Libvirt secrets, for example cephx
	authentication, engine will send a new "auth" property, with the
	authentication information:

	    "auth": {"type": "ceph",
	             "uuid": "abcdef",
	             "username": "cinder"}

	Drive xml will have a "auth" element specifying the underlying Libvirt
	secret for authenticating with the remote server:

	    <auth username="cinder">
	        <secret type="ceph" uuid="abcdef"/>
	    </auth>

	A Libvirt secret using the provided uuid must be registered with Libvirt
	before starting the vm. This will be handled in the next patches.

	Continuous-Integration: Jenkins CI

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

	Fix file list exception
	Continuous-Integration: Jenkins CI

2015-06-11  Dan Kenigsberg  <danken@redhat.com>

	force absolute imports where we can
	Implicit relative imports are confusing, as explained in
	https://www.python.org/dev/peps/pep-0328/. They have been dropped from
	Python 3, too.

	Unfortunately, we still use them extensively, but our lib and
	vdsm/network directories are almost free of them. This patch drops a
	single occurrence and makes sure that we do not happen to add new
	implicit relative imports by mistake under thess directories. Future
	patches would extend the white list until Vdsm is free of them.

	Continuous-Integration: Jenkins CI

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

	ceph: Support hotunplug of network disks
	Vm._findDriveByUUIDs() was not considering network drives, failing with
	LookupError. Now we use drive diskType if available to find network
	drives.

	Continuous-Integration: Jenkins CI

	ceph: Validate network disk parameters
	If hosts or protocol are missing, raise ValueError during getXML
	validation. This is little nicer to debug then KeyError when value was
	not set, and avoid creation of invalid xml when specified value is
	empty.

	Continuous-Integration: Jenkins CI

	ceph: Initial support for network disk
	The previous code supported network disk by abusing Drive.volumeInfo
	dict to send network drive parameters. Instead, we are using the new
	diskType attribute, and adding network disk related attributes. This is
	more consistent with other types of disks.

	Example conf for network disk:

	    {
	        'diskType': 'network',
	        'hosts': [
	             {'name': '1.2.1.1', 'port': '6789', 'transport': 'tcp'},
	             {'name': '1.2.2.1', 'port': '6789', 'transport': 'tcp'},
	         ],
	         'path': 'poolname/volumename',
	         'protocol': 'rbd',
	         ...
	    }

	Continuous-Integration: Jenkins CI

	ceph: Require ceph-common package
	For running vms using ceph disks, we need librbd1 library, dynamically
	loaded by qemu when using network disk using the rbd protocol.

	In the next version, when we will implement ceph storage domain
	monitoring and operations on ceph disks, we will need also python-rados
	and python-rbd packages and rbd and rados command line tools.

	For debugging and support, we probably need the ceph command line tool.

	All these goodies are provided by the ceph-common package, so we prefer
	to have them installed.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-11  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix device verification with optional specParams
	specParams in hostdev are optional, and therefore we have to make sure
	not to access it when it's not set.

	Continuous-Integration: Jenkins CI

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

	stomp: subscription cleanup when connection lost
	When we loose network connection we need to cleanup all the subscription
	that are assosiated with it.

	Continuous-Integration: Jenkins CI

2015-06-11  Martin Polednik  <mpolednik@redhat.com>

	hostdev: improve iommu check
	For passthrough, we need to make sure that the system supports
	DMA remapping and has correctly grouped devices to IOMMU groups.
	Although more restrictive, it is safer to check both dmar and iommu
	groups.

	IOMMU group(s) existence can be determined by reading
	/sys/kernel/iommu_groups. This patch only extends the original
	remapping check to also consider iommu_groups.

	Continuous-Integration: Jenkins CI

2015-06-11  Ido Barkan  <ibarkan@redhat.com>

	Move _stpBooleanize to netinfo.
	And rename it. It will be used in the following patched from
	netconfpersistence.py

	Continuous-Integration: Jenkins CI

	net: missing Exception formatting value
	Continuous-Integration: Jenkins CI

	net: tests: also add line number in test that called setupNetworks
	This is useful when there is a need to analyze logs from tests with
	multiple setupNetworks calls.

	Continuous-Integration: Jenkins CI

2015-06-10  Martin Polednik  <mpolednik@redhat.com>

	tests: add way to easily mock host devices
	Currently, trying to use host device in unit test will result in an
	explotion (for good reason - we want to avoid touching the real
	hardware).

	This patch replaces host device's access to libvirt with access to
	file that specified the XML of the device.

	Continuous-Integration: Jenkins CI

	virt: allow a single dev from IOMMU group to be passed through
	This patch introduces new spec param for hostdev, indicating that the
	device should not be passed to host, but only detached and reattached.

	When assigning host device, engine still needs to send the whole group
	in vmCreate command, but devices that should not be present need to
	have this tag set.

	Continuous-Integration: Jenkins CI

2015-06-10  Saggi Mizrahi  <smizrahi@redhat.com>

	jsonrpc: events
	Infrastructure which allows to send events.

	Stomp server is no longer responsible for managing connections and all
	the connection life cycle are done in _StompConnection.

	Continuous-Integration: Jenkins CI

2015-06-10  Federico Simoncelli  <fsimonce@redhat.com>

	gluster: fix volume name parsing in getVmVolumeInfo
	It is permitted to use slashes '/' in gluster mount strings even
	though they're prohibited in the volume name.
	In order to recognize and strip them out we should use getRealPath
	instead of getRemotePath that translates slashes into permitted
	underscores.

	It is now allowed to mount gluster volumes with slashes (serv:/volume)
	and correctly identifying the volume name and its information.

	Continuous-Integration: Jenkins CI

2015-06-10  Dudi  <dudi@redhat.com>

	vdsm: implement NUMA aware KSM policy
	Add monitored parameter ksm_merge_across_nodes to:
	1. momIf.py class - append to status report
	2. superVdsmServer file - enable writing to the kernel flag

	Update policy logic (a simple state machine) to 03-ksm.policy
	merge_across_nodes flag allowed to be changed only after unmerging
	all pages. This unmerge completion is tested on pages_shared flag == 0.

	Update policy parameter ksmMergeAcrossNodes to 00-defines.policy

	Related-to: https://bugzilla.redhat.com/show_bug.cgi?id=840114
	Continuous-Integration: Jenkins CI

2015-06-09  Martin Polednik  <mpolednik@redhat.com>

	caps: workaround for libvirt's canonical name in machine types
	Libvirt is supposed to return the machine type as 'text' attribute of the
	XML. For the default machine type there is an alias in the "canonical"
	attribute. Still each machine type is a separate <machine> tag.
	In EL7 there is a regression in libvirt that the proper machine type's
	name is not reported, only the "canonical" alias is - as part of the
	default machine type entry.

	This patch is workaround so we don't miss the latest machine type
	and can be dropped once libvirt is fixed (bug 1229666).

	Bug-Url: https://bugzilla.redhat.com/1229396
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-09  Francesco Romani  <fromani@redhat.com>

	tests: console: tests for cleanup() and prepare()
	Add unit tests for the newly added cleanup()
	and prepare() methods of VM Console Device.

	Continuous-Integration: Jenkins CI

2015-06-09  Shahar Havivi  <shaharh@redhat.com>

	Report downtime for each live migration
	Libvirt reports how much time the VM was off-line via jobStats.
	We fetch the "downtime" key which returns the correct time,
	but the source and dest hosts need to be in sync.

	"downtime_net" key returns the similar results, but the hosts
	do not need to be in sync.

	See http://libvirt.org/html/libvirt-libvirt-domain.html#VIR_DOMAIN_JOB_DOWNTIME_NET
	and http://libvirt.org/html/libvirt-libvirt-domain.html#VIR_DOMAIN_JOB_DOWNTIME
	for the difference between the two.

	This patch change the call from downtime to downtime_net.

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

2015-06-09  Ido Barkan  <ibarkan@redhat.com>

	network: wait for udev after configuring SRIOV
	After changing the number of virtual functions on an SRIOV device
	udev asynchronously adds them and then renames them from 'eth0'
	according to it's naming policy. Since that process is asynchronous
	and might take time, we have to wait for it to finish since
	subsequent reporting of hardware by vdsm must return a stable state.

	Continuous-Integration: Jenkins CI

	network: persist sriov devices number of vfs
	vdsm-restore-net-config will attempt to restore the number of vfs
	from the last successful change. This is done before network
	restoration so that networks can be configured based on the
	restored vfs.

	Continuous-Integration: Jenkins CI

2015-06-08  Ido Barkan  <ibarkan@redhat.com>

	net: bondingOptions should not be a part of runningConfig networks
	Since all attributes of _addNetwork are copied as a flat dictionary
	to running Config during _alterRunningConfig decorator,
	bondingOptions mistakenly found their way into runningConfig, and
	then into PersisstentConfig, as if they were part of the network
	attributes dictionary during the call.

	Continuous-Integration: Jenkins CI

2015-06-08  Francesco Romani  <fromani@redhat.com>

	vm: remove dup initialization of Vm._guestSockFile
	In Vm class' __init__, guestSockFile is initialized,
	and the re-initialized a few lines below with no use
	of this field in between.

	To reduce the confusion, this patch removes the first
	useless initialization.

	Continuous-Integration: Jenkins CI

	tests: bootstrap socket-related tests
	Add very first bits of socket handling tests.

	Continuous-Integration: Jenkins CI

	virt: move Vm._guestSockCleanup() into utils
	The Vm._guestSockCleanup() is a static method,
	but could be trivally made a function to remove
	code duplication and noise from vm.py

	Continuous-Integration: Jenkins CI

	virt: bind console to unix domain socket
	To support the serial console feature,

	http://www.ovirt.org/Features/Serial_Console

	VDSM needs to bind the guest console to
	an unix domain socket, to make possible
	for the ovirt-vmconsole package to reach it.

	Caveat Emptor:
	The unix domain socket directory must have the following
	permissions, ownership and SELinux attributes:

	/var/run/ovirt-vmconsole-console/
	drwxrwxr-x. vdsm qemu system_u:object_r:qemu_var_run_t:s0

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

	serial console: add code to prepare the path
	Add support for vmconsole path preparation.
	Ensures that the unix domain socket directory
	needed by ovirt-vmconsole integration exists and has
	the following permissions, ownership and SELinux attributes:

	/var/run/ovirt-vmconsole-console/ drwxrwxr-x. vdsm qemu system_u:object_r:qemu_var_run_t:s0

	Since /var/run is supposed to be on tmpfs, this is enforced at every startup.

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

	tests: rename HostStatsThread tests
	HostStatsThread -> HostStatsThreadTests
	for consistency.

	Continuous-Integration: Jenkins CI

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

	tests: Do not assume that storage domain properties are writable
	We plan to make storage domain properties readonly as part of sdm
	refactoring. In fileSDTests and volumeTests we assumed that subclassing
	StorageDomain and setting self.sdUUID and self.mountpoint is possible,
	but this assumption is wrong, since the super class can change the
	implementation.

	Now we use properties on the testing subclass, so it works even if the
	super class made the properties readonly.

	Continuous-Integration: Jenkins CI

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

	netlink: make relative imports PY3 compatible
	Continuous-Integration: Jenkins CI

2015-06-08  Martin Polednik  <mpolednik@redhat.com>

	ppc64le: Fix CPU map parsing
	There is inconsistency in the platform naming: ppc64 in cpumap is used
	for both ppc64 and ppc64le platform. This patch fixes the caps logic, returning
	correct model in cpuFlags.

	This is similar to the existing x86/x86_64 workaround.

	Continuous-Integration: Jenkins CI

2015-06-08  Yeela Kaplan  <ykaplan@redhat.com>

	vdscliTests: add a test for connect with a timeout
	Continuous-Integration: Jenkins CI

	vdscli: add a timeout option for plaintext connections
	Continuous-Integration: Jenkins CI

2015-06-08  mmirecki  <mmirecki@redhat.com>

	caps: replacing minidom with ElementTree in caps.py
	minidom is replaced by ElementTree.py in caps.py. This is because ET is
	faster, has a nicer and better documented API, and we want
	to elinate using two similar libs in the code

	Continuous-Integration: Jenkins CI

2015-06-07  Dan Kenigsberg  <danken@redhat.com>

	net tests: add netUnifiedPersistenceTests.py to Makefiles
	commit 43e92359 added a new test, but did not include proper
	installation thereof.

	Continuous-Integration: Jenkins CI

2015-06-06  Yaniv Bronhaim  <ybronhei@redhat.com>

	All modules configure should run on upgrade
	Currently we run only libvirt and multipath configure. The bugs raises
	when we add those calls to newer vdsm  version, and on upgrade the %postun
	script of the updated version is ran.

	For example, adding the new multipath configure in 3.6 won't persist on upgrade
	from 3.5 because the configure call does not exist in 3.5.

	With this patch from 3.6 and above we won't need
	to worry about other modules - all configurators will run on upgrade.

	Continuous-Integration: Jenkins CI

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

	spec: Remove --enable-chwon-hack option
	This option was used to enable the chown hack on EL7 and Fedora, and
	disable it on EL6. Since we do not support EL6, we can git rid of this
	configuration option.

	The lvm rules are always using the chwon hack now.

	Continuous-Integration: Jenkins CI

2015-06-05  Nir Soffer  <nsoffer@redhat.com>

	lvm: Always use chown hack
	Since we do not support EL6, we must always use the chown hack. This
	patch allow removing of the configure --enable-chown-hack option.

	Continuous-Integration: Jenkins CI

	lvm: Remove duplication in udev rules
	The horrible uuid pattern was repeated 5 times, making the source
	unreadable.  Now we build the udev patterns once, and use the built
	patterns to format the final output.

	Continuous-Integration: Jenkins CI

	lvm: Cleanup lvm udev rules
	Make the vdsm lvm rules suck less:

	- Check the vg name once, instead repeating the uuid pattern
	- Group rules with same settings (e.g, sanlock rules)
	- Document each group of rules
	- Remove irrelevant documentation, copied from dm-lvm.rules

	Releates-To: https://bugzilla.redhat.com/1149883
	Continuous-Integration: Jenkins CI

2015-06-05  Omer Frenkel  <ofrenkel@redhat.com>

	virt: add support for specifying vm maximum memory
	Added new parameter 'maxMemSize' to VM
	this parameter is sent from engine backend and passed to libvirt xml
	with the mandatory 'slots' attribute.

	this parameter is mandatory for memory hotplug.
	if this parameter is not passed, then it is not set in the libvirt xml,
	and hotplug for this vm will not work.

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

2015-06-04  pkliczewski  <piotr.kliczewski@gmail.com>

	stomp: calling super explicitly
	We call super explicitly and call __init__ which is godd practice. We
	keep a frame which can be inspected when handling this error.

	Continuous-Integration: Jenkins CI

	stomp: allow single stomp reactor
	We could use several instances of stompReactor to create stomp client or
	listener. Thanks to client and server side subscription implementation
	we can use single instance.

	Continuous-Integration: Jenkins CI

2015-06-04  pkliczew  <piotr.kliczewski@gmail.com>

	stompreactor: fix naming of default destination
	Continuous-Integration: Jenkins CI

2015-06-04  pkliczewski  <piotr.kliczewski@gmail.com>

	stomp: server side subscriptions
	Vdsm gains abitlity to manage subsctiptions and act as mini broker.
	We change model from connection centric to subscription centric.
	Following use cases are covered by this change:
	- clients can subscribe and exchange messages without executing vdsm API
	- legacy (3.5) client can interact with vdsm and messages will be
	  delivered to legacy response queue
	- a client can define to which queue/topic will reply by using REPLY-TO
	  header

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-04  Martin Polednik  <mpolednik@redhat.com>

	hostdev: destroy VM with hostdev even without IOMMU support
	Such VM can occur if it is started via vdsClient. Any attempt to
	destroy that VM would fail with exception without destroying the VM,
	therefore leaving it hanging in vdsm. This patch logs if reattach of
	hostdev without valid IOMMU configuration occurs and allows destroy to
	finish.

	Continuous-Integration: Jenkins CI

	hostdev: raise more meaningful exception without iommu support
	No VM with hostdev should ever be started without IOMMU. If it is
	started however, we want to inform the user with a bit more meaninful
	message that just the KeyError.

	Continuous-Integration: Jenkins CI

2015-06-04  Francesco Romani  <fromani@redhat.com>

	packaging: ship v2v.py in debian packages
	Fixes the lack of inclusion of vdsm/v2v.py
	in debian packages.

	Continuous-Integration: Jenkins CI

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

	multipath: Simplify configuration data
	The configuration was using tuple of strings, instead of triple-quoted
	string. This made the configuration hard to read and painful to modify.

	Continuous-Integration: Jenkins CI

2015-06-03  pkliczew  <piotr.kliczewski@gmail.com>

	jsonrpc: remove not needed param
	Continuous-Integration: Jenkins CI

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

	reactor: move creation to clientIF
	It is final step performed in several patches to have single class
	responsible for processing i/o loop. Overall goal in number of changes
	was to simplify the code and have single responsibility per class. It
	was not the case with Protocoldetector and StompReactor before.

	Continuous-Integration: Jenkins CI

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

	stomp: client side subscription
	In this patch we introduce concept of subscription for client
	perspective. We move queuing functionality out of AsyncDispatcher to
	frame_handler. New StompRpcClient class is responsible for sending
	subscriptions and ClientRpcTransportAdapter class adds 'reply-to' header
	using subscriptions id.

	Continuous-Integration: Jenkins CI

2015-06-03  Yaniv Bronhaim  <ybronhei@redhat.com>

	chmod for spmprotect.sh script is not needed and expose an error
	Without running make in storage/protect folder the spmprotect.sh won't
	appear while running configure and this raise an error.
	This chmod is not required - installing the file under
	/usr/libexec/vdsm/spmprotect.sh make it executable automatically.

	Continuous-Integration: Jenkins CI

2015-06-03  Douglas Schilling Landgraf  <dougsland@redhat.com>

	register: Add spec requirement for python-requests
	Register verb requires requests library. This patch
	also adjust the import order for non standard library in the verb.

	Continuous-Integration: Jenkins CI

2015-06-03  Federico Simoncelli  <fsimonce@redhat.com>

	utils: add command execution logging helpers
	Now that we're moving to a more wide use of CPopen in the code we
	still need consistent logging of command line executions.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-02  Ondřej Svoboda  <osvoboda@redhat.com>

	sourceroute: don't fail to remove a dynamic source route
	There is a known race when removing source routing on ifdown where the device
	going down was configured using ifcfg configurator (initscripts) and DHCP.

	Routes are removed on ifdown by dhclient (as stated in dhclient-script(8),
	HOOKS section) or the kernel, as ifdown-routes, a part of initscripts, claims:

	  The routes are actually dropped just by setting the link down, so nothing
	  needs to be done

	At the same time, VDSM's dhclient-script hook (sourceRoute.sh) is called by
	ifdown-eth with reason=STOP and triggers removal of source routing in VDSM's
	sourceRoute thread. The thread then tries to remove routes and routing rules,
	but is prone to failure if the routes are already removed as described above.

	Even though it was tested that in this particular use case (removing source
	routing on ifdown) it was not necessary for VDSM to try to remove routes
	itself, the behaviour of other parts of the stack is not guaranteed forever.

	iproute2 configurator, called by sourceRoute thread, now ignores the error
	message saying the route was already gone:

	  RTNETLINK answers: No such process

	Previously this error would prevent the removal of routing rules, which would
	persist on the system after ifdown. testSetupNetworksAddDelDhcp now passes
	in all cases.

	Continuous-Integration: Jenkins CI

	veth: replace veth.create with a context manager (from networkTests)
	The context manager creates and later destroys a veth pair, since both
	actions are tied together (as can be seen in netinfoTests, where
	veth.pair is now employed).

	There is hope (an existing patch) to teach the context manager to
	prevent NetworkManager from taking control of network devices used
	in tests.

	Continuous-Integration: Jenkins CI

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

	vm: Add _findDriveConfigByName() helper
	The new helper eliminates duplicate code looking up drive configuration
	dict in Vm.conf in 4 methods.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-06-01  Ondřej Svoboda  <osvoboda@redhat.com>

	dummy: move dummy_if from samplingTests as dummy.device, use in netinfoTests
	Continuous-Integration: Jenkins CI

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

	net: bonding: validate options based on pre-dumped ones
	The removed code created a bond device only to check if the provided
	options are recongnized by the kernel. This was buggy, as the options
	depends on the bonding mode. It was also redundant, as we already depend
	on pre-dumped maps of bond options per bond mode, so we can (and should)
	use it here, too.

	Continuous-Integration: Jenkins CI

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

	virt: Remove unused dom property from DomainDescriptor
	The 'dom' property of the DomainDescriptor class is no longer used.
	This patch removes this to ensure proper encapsulation.

	Continuous-Integration: Jenkins CI

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

	clean 'BuildArch: noarch' which is not required after fa8397a
	Continuous-Integration: Jenkins CI

	Remove requirements from spec which depends on specific platform
	Those requirements are now hidden in safelease package which vdsm requires.
	This removal allows to remove arch dependency which introduced in
	https://gerrit.ovirt.org/40738

	Continuous-Integration: Jenkins CI

2015-05-31  Ján Tomko  <jtomko@redhat.com>

	virt: cleanup: fix link to libvirt docs
	The API reference on the libvirt website was split into multiple
	pages in October:
	http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=67c08fcc

	Continuous-Integration: Jenkins CI

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

	vmfex_dev: unbreak migration
	On migration destination, the hook should not attempt to modify the
	domxml, as the latter has been modified on the source already.
	The migration script should only prepare the "direct-pool" network, if
	it has not been prepared yet.

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

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

	firewall: move the context manager from networkTests to the module
	Continuous-Integration: Jenkins CI

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

	detector: close acceptor when stopping detection
	When closing MultiProtocolAcceptor we need to close dispatcher responsible
	for managing vdsm listening socket.


	Continuous-Integration: Jenkins CI

2015-05-30  Shahar Havivi  <shaharh@redhat.com>

	v2v: Add allocation type for disk conversion
	virt-v2v enable to choose disk allocation for the target disk (sparse,
	preallocate)

	Continuous-Integration: Jenkins CI

	v2v: add format for disk conversion
	Continuous-Integration: Jenkins CI

2015-05-30  Francesco Romani  <fromani@redhat.com>

	lib: pthread: allow to set system thread names
	Python allow to set user-friendly names for threads,
	but the given thread name will be visible only at python level,
	not at system level.
	The lack of thread names make hard to follow the resource
	consumption using system tools (htop, top, ps).

	This feature was requested for python library, but rejected:
	http://bugs.python.org/issue15500

	VDSM makes large use of threads until upcoming 4.17, and even
	in 4.17 there is still a fair amount of threads.

	This patch adds additional facilities to set the thread name at
	system level, to improve troubleshooting and performance analysis.

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

2015-05-29  Francesco Romani  <fromani@redhat.com>

	tests: sampling: more careful elapsedTime check
	When checking HostMonitor.get() with empty samples
	on a slow host, it is possible that elapsedTime will be
	very low but not zero, thus breaking the test with
	a false negative.

	To fix that, we fake time.time.

	Continuous-Integration: Jenkins CI

2015-05-29  Simone Tiraboschi  <stirabos@redhat.com>

	vdsm: hook for booting from an ISO image gathered via https
	Let the VM boot from an ISO image made available via an https URL without
	the need to import the ISO into an ISO storage domain.
	Plain http is not supported.
	syntax: httpsisoboot=http://server/path/to/disk.iso

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

2015-05-29  Yeela Kaplan  <ykaplan@redhat.com>

	migration: Support SPICE seamless migration over NAT
	Continuous-Integration: Jenkins CI

2015-05-29  Shmuel Melamud  <smelamud@redhat.com>

	vm: Detect smartcard device by type
	Use 'type' instead of 'device' to detect smartcard devices. For
	consistency, devices that don't really use 'device' attribute must be
	detected by 'type'.

	Continuous-Integration: Jenkins CI

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

	tests: make assertSourceRoutingConfiguration more readable
	Continuous-Integration: Jenkins CI

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

	drop vds_bootstrap
	ovirt-engine-3.0 needed vds_bootstrap.rpm in order to install new hosts.
	Now that we no longer support engine < 3.3, we can drop this old code.

	Continuous-Integration: Jenkins CI

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

	dhclient: use the same modern names for leases as initscripts do
	This affects iproute2 and pyroute2 configurators which run their own
	dhclients directly.

	Functional tests failed with both configurators because DHCPv4 lease files
	were never deleted as they contained a superfluous '4' in the name, which
	initscripts never had.

	(I added the 4s long before we realized we need to delete leases created
	by tests – so there would be no misdetection of DHCPv4/6 based on leases
	left behind by previous runs of the same test).

	Continuous-Integration: Jenkins CI

	models, configurators: replace the internal 'async' flag with blockingdhcp
	DHCP is queried asynchronously in usual situations so it is better to use
	'blockingdhcp' which is a flag that signals some exceptional flow
	(network restoration, for example).

	blockingdhcp is also a part of the API so now there is direct correspondence
	between network configurators' code and the API.

	Continuous-Integration: Jenkins CI

	ifcfg: extract a helper function (_exec_ifup) from _ifup
	Originally, ifup contained the helper function and was able to run it
	directly or in a thread (asynchronously, to avoid waiting on DHCP).

	In order to be able to remove NetDevice's "async" (asynchronous_dhcp)
	property, which (mostly) duplicates the blockingdhcp flag (which is
	exposed as a part of VDSM's API) the descendant functions are now used
	as follows:

	  _exec_ifup is called when "async" was not used and

	  _ifup now requires the "async" flag as a transitional step
	  (it will be able to extract both a network device name and
	   the flag from a NetDevice instance, as other configurators do)

	Continuous-Integration: Jenkins CI

2015-05-28  Allon Mureinik  <amureini@redhat.com>

	vm.py: Fix spelling mistake
	"Accomodate", while a common mistake, is still a mistake [1].

	[1] https://en.wiktionary.org/wiki/accomodate

	Continuous-Integration: Jenkins CI

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

	tests: also delete a legacy lease file if it exists
	At least on Fedora 21 and EL7 initscripts support two locations for dhclient
	lease files:

	/var/lib/dhclient/dhclient$ver-${DEVICE}.leases
	  if it is found to exist (maybe created accidentally by NetworkManager?)
	/var/lib/dhclient/dhclient$ver-${UUID}-${DEVICE}.lease
	  if the former did not exist (UUID is usually blank)

	If we do not account for the legacy location testSetupNetworksAddDelDhcp
	(bridged, DHCPv4 only) is going to fail because there is a leftover
	DHCPv6 lease from the previous run of itself (bridged, both DHCPs).

	Continuous-Integration: Jenkins CI

2015-05-27  Ido Barkan  <ibarkan@redhat.com>

	network: support PCI passthrough of SR-IOV network interfaces.
	This implementation uses the SR-IOV supporting libvirt API only
	when engine is passing a MAC address for the interface. Otherwise,
	vdsm defaults to the standard host device API.
	Only SR-IOV (Single Root I/O Virtualization) virtual function (VF)
	network devices can be assigned in this manner.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-26  Federico Simoncelli  <fsimonce@redhat.com>

	task: add the support for abort_callback
	This patch adds the support for defining a callback used to
	abort a long running task, e.g.:

	    long_operation = MyLongOperation()

	    def abort_long_operation():
	        long_operation.terminate()

	    # abort_callback registers the callback for the time
	    # of execution of the code block
	    with vars.task.abort_callback(abort_long_operation):
		long_operation.execute()

	When another thread (e.g. an external xml-rpc request) tries
	to abort the task (calling "stop"), the registered callbacks
	will be called.

	This patch defines the basic infrastructure to register abort
	functions for long running operations, the technology used to
	actually implement the interruption is left to the user.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-26  mmirecki  <mmirecki@redhat.com>

	caps: tests: add (more) unittests for caps.py
	minidom will be replaced by ElementTree in caps.py
	capsTests.py does not cover all the code which will need to be changed,
	so unit tests are added before the changes are made

	Continuous-Integration: Jenkins CI

2015-05-26  Amador Pahim  <apahim@redhat.com>

	Configure libvirt to generate VM's core dumps
	On RHEL 7, with default libvirt configuration, no VM core dump is generated
	after kill the qemu process.

	This patch is adding the required configuration to libvirt's systemd.

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

2015-05-26  Shahar Havivi  <shaharh@redhat.com>

	v2v: Job related actions
	Added few job related actions:
	Delete job
	Abort Job
	Get ovf (jobs output)

	Continuous-Integration: Jenkins CI

	schema: fix getMigrationStatus return value
	getMigrationStatus didn't return its return value via the API/schema

	Continuous-Integration: Jenkins CI

2015-05-26  Francesco Romani  <fromani@redhat.com>

	tests: negative tests for updateDevice - graphics
	Failures are more cumbersome to tests, due to need
	to inject errors or to cause them.
	Add tests for Vm.updateDevice for Graphics devices,
	to do basic sanity tests, and to help verification of
	the upcoming response.error() transition patches.

	Continuous-Integration: Jenkins CI

2015-05-25  Nir Soffer  <nsoffer@redhat.com>

	tests: Hide errors when testing noisy code
	configurator.remove_config try to remove all configurations even if some
	configurators fail, so it writes errors to stderr and continue. This
	behavior makes sense, but breaks tests progress display:

	    test_remove_config                                          can't remove configuration of module a
	Traceback (most recent call last):
	  File "/home/nsoffer/src/vdsm/lib/vdsm/tool/configurator.py", line 236, in remove_config
	    _removeConf(c)
	  File "/home/nsoffer/src/vdsm/lib/vdsm/tool/configurator.py", line 120, in _removeConf
	    getattr(module, 'removeConf', lambda: None)()
	  File "/home/nsoffer/src/vdsm/tests/toolTests.py", line 75, in removeConf
	    raise Exception('mock invalid remove conf')
	Exception: mock invalid remove conf
	OK

	Now we redirect stderr to stdout during this test, so the output is more
	pleasing:

	    test_remove_config                                          OK

	Continuous-Integration: Jenkins CI

2015-05-25  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster:fix NoneType error for some devices does not contain sysfsPath
	Currently devices list returns the list of available disks and
	its fs type properly. However it fails for some devices which does
	not contain sysfsPath and the dev details become None.

	This patch fixes this error by assigning empty dictonary if
	the dev is empty or None.

	Continuous-Integration: Jenkins CI

2015-05-25  Francesco Romani  <fromani@redhat.com>

	sampling: hoststats: rationalize getInterfaceStats
	The main job of the HostStatsThread._getInterfaceStats()
	method is to gather network stats.

	But this method also initializes the empty `stats' return
	dict with the default values.

	The initialization doesn't belong here, rather on the calling,
	orchestrating function, so this patch moves the initialization
	code outside.

	Continuous-Integration: Jenkins CI

2015-05-25  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	tests: fix redefinition pyflakes error
	The build fails with the following error in pyflakes
	version  "0.7.3-4" installed.
	./tests/functional/networkTests.py:93:
	      redefinition of unused 'vdsm' from line 28
	./tests/functional/networkTests.py:101:
	      redefinition of unused 'vdsm' from line 28
	make[1]: *** [pyflakes] Error 1

	Continuous-Integration: Jenkins CI

2015-05-25  Shmuel Melamud  <smelamud@redhat.com>

	vm: Detect RNG device by type
	In Vm._getUnderlyingRngDeviceInfo() method the RNG device must be
	detected in self.conf['devices'] list by 'type' attribute, not 'device'.
	See VmInfoBuilder.buildVmRngDevice() in the Engine for reference.

	Continuous-Integration: Jenkins CI

2015-05-25  Yeela Kaplan  <ykaplan@redhat.com>

	migration: Start using migrate3 instead of migrate2
	We would like to enable using the new libvirt
	migration parameters, this is the first step necessary.
	As new parameters can only be used with migrate3.

	Continuous-Integration: Jenkins CI

2015-05-25  Francesco Romani  <fromani@redhat.com>

	sampling: less verbose debug in _getInterfaceStats
	HostStatsThread._getInterfaceStats() needs
	to compute network tx/rx rate from the sampled data.

	To help troubleshoot rate miscalculations, a debug log
	was added, to show on error (rate > 100%) all the samples
	used for computation.

	The problem here is that the log iterates over the
	gathered samples. We want to use SampleWindow
	in HostStatsThread to reduce code duplication,
	but SampleWindow doesn't give access to raw samples yet.

	To move further, we drop this detailed log for the time
	being. Future patches may want to reintroduce it
	on top of SampleWindow.

	Continuous-Integration: Jenkins CI

	tests: hoststats: add test for empty stats
	If HostStats hasn't gathered enough samples,
	it should return a placeholder result with
	a few fields with predictable values.

	Add a test to ensure that.

	Continuous-Integration: Jenkins CI

2015-05-25  Nir Soffer  <nsoffer@redhat.com>

	mailbox: Rename mailbox monitor threads
	Name the HSM and SPM mail monitor threads "mailbox.HSMMonitor" and
	"mailbox.SPMMonitor" instead of the default Thread-1234.

	Continuous-Integration: Jenkins CI

	tests: Separate tests with similar fixtures
	The tests for exposed functions were testing multiple functions in one
	test. This cause unrelated failure to fail the whole test. The correct
	way to test this is having separate test for each function.

	Now we have separate test case class for the positive and negative
	tests, sharing the same configurators setup.

	Continuous-Integration: Jenkins CI

2015-05-24  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-24  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-24  Nir Soffer  <nsoffer@redhat.com>

	fileUtils: Fix bug when mode is not specified
	We used to modify the directory bit on the mode parameter, which is
	ignored by os.makedirs(), so the mode directory bit is set. This ensure
	that when comparing existing path mode, we detect the error where a file
	exists in this path, instead of a directory.

	However, if the mode parameter was not specified, we did not check the
	file type when we get EEXIST error, so the function succeeded instead of
	failing loudly:

	    with open("file", "w"):
	        createdir("file")

	Replacing the smart code with explicit check for directory bit and
	permissions bits eliminate this bug and is more clear. Now we raise
	OSError with ENOTDIR errno in this case.

	Continuous-Integration: Jenkins CI

	tests: Wait until bridge is down before deleting it
	Previous code was using evil time.sleep(0.5), which tends to break on our
	overloaded slaves with this error:

	    RuntimeError: ("Command ['/usr/sbin/brctl', 'delbr', 'vdsmtest-QdYgr']
	    returned non-zero exit status 1.", '', "bridge vdsmtest-QdYgr is still up;
	    can't delete it\n")

	Now we wait up to 2 seconds for a proper 'down' netlink event. Before this
	change running tcTests.py took about 8.7 seconds. With this change, it takes
	only about 0.7 seconds. Hopefully this will also fix the random failures we see
	on the CI.

	Continuous-Integration: Jenkins CI

2015-05-22  Nir Soffer  <nsoffer@redhat.com>

	multiapth: Remove unsupported getuid_callout option
	This option is not supported since EL 7, and cause a warning when
	running multipath command line tool.

	This option was required on EL 6, so we kept it in our configuration to
	simplify the code. Now that we do not support EL 6, we can remove this
	and simplify the code.

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

	mailbox: Use threading instead of thread
	SPM MailMonitor thread was created using the thread.start_new_thread.
	This creates a thread with the unhelpful name "Dummy-1234". Also the
	locks used by this thread were created using thread.allocate_lock().

	I'm not aware of any advantages of using the lower level thread module,
	and searching vdsm history back to 2009 does not show any clue why this
	code was used.

	Now we use the threading module used for all other threads and locks in
	vdsm. This allows more helpful thread names in the next patches.

	Continuous-Integration: Jenkins CI

	vm: Support replication to different storage type
	When monitoring replicated drive, we must use hybrid approach; For
	block-based drive, we get the required extend info from libvirt. For
	file-based drives, libvirt cannot report the physical size of the drive,
	so we get it from the replica using irs.getVolumeSize().

	When extending replicated drive, we extend the drive or the replica
	only if they are chunked.

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

	virt: Add Drive.replicaChunked property
	When monitoring drive high watermark, it is not enough to check if the
	drive is chunked, since we may replicate a non-chunked drive to chunked
	replica, and the replica needs to be extended.

	Drive high watermark code will check now the watermark also on
	non-chunked drives, if they are being replicated to chunked storage.

	Continuous-Integration: Jenkins CI

	vm: Use blockRebase if blockCopy is not supported
	blockCopy is available in libvirt 1.2.8, but supported by the qemu
	driver only in 1.2.9. The recommended way to check for blockCopy
	availability is to try it and handle VIR_ERR_NO_SUPPORT error.

	This patch should be reverted when we require libvirt >= 1.2.9.

	Continuous-Integration: Jenkins CI

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

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

	tcTests: base pseudo-random bridge names on PID, too.
	It seems that the Jenkins-driven mock test provides a too-reproducible
	environment, where two concurrent tests produce identical pseudo-random
	bridge names.

	This patch attempts to hack arround this by including the different
	process id of the concurrently-running test into the random hash.

	Continuous-Integration: Jenkins CI

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

	stomp: preparation of subscribtion class for subscription management
	So far subscription class was not used but it was designed to handle
	unsubscribe in __del__ method which is not the safest idea. We have
	decided to prepare it for proper unsubscription logic implement in:
	https://gerrit.ovirt.org/#/c/39969


	Continuous-Integration: Jenkins CI

	xmlrpc: renaming for pep8 compliance
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	shell_helper: fix _latest_version as all packages are now noarch
	Also, only look for vdsm* packages (~/rpmbuild may be used to
	compile other packages too).

	Continuous-Integration: Jenkins CI

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

	modify safelease executable path
	commit e6639515 dropped safelease code from Vdsm and
	added dependency on the external deployment of safelease.
	However, spmprotect.sh still looks for the safelease in the
	old location.

	Continuous-Integration: Jenkins CI

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

	spbackends.py: setSpmStatus - expect tuple as param
	As part of change I049adecda40deb6f715e3aea2e3ada4030b518a3 setSpmStatus
	tuple param was removed, but filter() expects a function with a
	single argument which causes to a failure.

	Continuous-Integration: Jenkins CI

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

	stomp: introduction of header constants
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	jsonrpc: renaming for pep8 compliance
	Following renaming is done in this patch:
	 - stompReactor module
	 - BindingJsonRpc module

	Continuous-Integration: Jenkins CI

2015-05-20  Douglas Schilling Landgraf  <dougsland@redhat.com>

	vdsm-tool: Add register verb
	The new verb register will make the registration from
	a node into the Engine. This verb supports old Engine
	registration schema and the new one as service.
	It's an alternative for bz#1135921 and bz#994451.

	This commit doesn't include the ovirt-node-plugin-vdsm
	changes to implement the new vdsm-tool register verb.

	See also:
	engine_page: vdsm-tool register verb integration
	https://gerrit.ovirt.org/#/c/41081/

	autoreg: vdsm-tool register verb
	https://gerrit.ovirt.org/#/c/41082/

	Feature page:
	http://www.ovirt.org/Features/VDSM/GenericRegistration

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-20  Nir Soffer  <nsoffer@redhat.com>

	vm: Use blockCopy for live storage migration
	We use now blockCopy for live-storage migration, allowing migration
	between mixed storage types.

	This command is a superset of the older blockRebase() when used
	with the VIR_DOMAIN_BLOCK_REBASE_COPY flag, and offers better control
	over the destination format, the ability to copy to a destination that
	is not a local file, and the possibility of additional tuning
	parameters. For more info see:
	https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainBlockCopy

	blockCopy was introduced in libvirt 1.2.8, but the Python binding was
	broken before 1.2.9. The fix was backported to Fedora in libvirt-python
	1.2.9-2 and to EL in libvirt-python 1.2.8-5.

	On Fedora 21, blockCopy from file to block was broken (bug 1214846).
	This was fixed in libvirt-daemon 1.2.9.3-1. This version is not
	available on Fedora 20 virt-preview repo, so practically this patch ends
	support for Fedora 20.

	Bug-Url: https://bugzilla.redhat.com/1200718
	Relates-To: https://bugzilla.redhat.com/1214846
	Continuous-Integration: Jenkins CI

	virt: Add getReplicaXML method
	This method returns destination disk xml required for blockCopy. We need
	basically the same logic for Drive and replic dict, so _getSourceXML()
	and _getDriverXML() are now module functions, accepting a dict like
	object.

	Continuous-Integration: Jenkins CI

	vm: Add required information to replica dict
	During LSM between mixed domain types, we need more information in the
	replica dict for creating destination disk xml and extending block-based
	replica.

	We keep the replica dict instead of dstDisk, and we also log it in error
	messages, since it contains more useful info.

	Since we must set the replica before preparing the volume, and we need
	the prepared path for getting the disk type, we persist the replica
	again after adding the replication info.

	Continuous-Integration: Jenkins CI

	vm: Unify replication terms
	There is no source and destination drives when replication a volume, so
	the term "drive" is more correct than "srcDrive". This not only more
	correct, but help to streamline the code.

	The replica volume info was kept in "dstDiskCopy" which does not reveal
	the intention of the code. Now this dict is named "replica".

	When setting Drive.diskReplicate, we refer to the dict as "replica"
	instead of "dstDisk", which is a leftover from older code.

	Continuous-Integration: Jenkins CI

2015-05-20  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: fix no attribute error
	This was introduced with the patch: https://gerrit.ovirt.org/#/c/40206/.
	In rhel6 and rhel7 this patch was passing the build.
	In fedora this was introducing AttributeError.
	This patch fixes that issue by selectively checking if attribute exists or not.

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

2015-05-20  Nir Soffer  <nsoffer@redhat.com>

	storageServer: Run glusterfs in its own cgroup
	When mounting glusterfs volume, glusterfs command is started in the
	vdsmd.service cgroup. When vdsmd exits, glusterfs dies and vms using
	gluserfs volumes pause. Now we run glusterfs mount command using
	systemd-run, so it run it its own cgroup, and last after vdsmd.service
	exit.

	In this example we have 2 glusterfs mounts:

	 - vdsm.slice
	   - vdsm-glusterfs.slice
	     - run-22137.scope
	       - 22180 /usr/bin/glusterfs ...
	     - run-21649.scope
	       - 21692 /usr/bin/glusterfs ...

	The glusterfs processes may run few minutes after a volume is unmounted;
	this happen also in the current code, running under vdsm cgroup.

	Mounting should not leave child processes in the caller process tree.
	This patch is a workaround until glusterfs fix this in the correct way.

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

2015-05-20  Darshan N  <dnarayan@redhat.com>

	gluster: Added volumeReplaceBrickCommitForce verb.
	This patch adds volumeReplaceBrickCommitForce verb,
	This verb replaces a gluster brick without any data
	migration.
	* volumeReplaceBrickCommitForce: It takes volumeName,
	currentBrick and newBrick as arguments. It returns
	success/failure.

	Continuous-Integration: Jenkins CI

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

	stomp: make sure to iherit from an object
	Continuous-Integration: Jenkins CI

	jsonrpc: rename setMessageHandler method
	Continuous-Integration: Jenkins CI

2015-05-19  Shahar Havivi  <shaharh@redhat.com>

	Migration: Prevent KeyError in migrateStatus
	MigrateStats only return progress when monitor thread is alive,
	When calling MigrateStats after the thread is dead we get KeyError.
	(when calling getMigrationStatus verb)

	Continuous-Integration: Jenkins CI

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

	tcTests: add verbosity to addBridge failure
	All too often recently, testUtf8BridgeEthtoolDrvinfo (and others) fail
	with

	    CalledProcessError: Command '['/usr/sbin/brctl', 'addbr', 'vdsmtest-ME5LU']' returned non-zero exit status 1

	when run by Jenkins.

	This patch includes the stdout and stderr of the failing command so we
	can understand the issue better, and fix it or skip it.

	Continuous-Integration: Jenkins CI

2015-05-18  Francesco Romani  <fromani@redhat.com>

	virt: periodic: avoid pedantic log each step
	In the early debug days of the periodic Operation,
	I added a naive log each time the Operation fires.
	Nowadays this log helps a little, and we must have
	more refined way to troubleshood periodic (mis)firing,
	hence remove it.

	Continuous-Integration: Jenkins CI

2015-05-18  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: fix format type test-case error
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1209493
	Continuous-Integration: Jenkins CI

	gluster: fix pyflakes error in mount point verification
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1209475
	Continuous-Integration: Jenkins CI

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

	vm: Allow to use 'serial' or 'virtio' type consoles
	This introduces the optional capability of using 'serial' type
	consoles for VMs.
	Using a serial console is supported by systems like FreeBSD which
	do not yet have virtio character device drivers. Also it is easier
	for most administrators to configure, since they quite often know
	the required configurations for linux systems to configure the serial
	device parameters on the kernel commandline and in the systems settings.

	This patch introduces a way too keep backwards compatibility and only
	uses 'serial' type consoles when explicitly told so.

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

2015-05-18  Darshan N  <dnarayan@redhat.com>

	gluster:Remove support for Replace gluster brick with data migration.
	This patch removes verbs related to replace gluster brick
	with data migration. Now only replace brick with commit
	is retained. As this feature is deprecated in
	glusterfs-3.7 on wards. These verbs were not consumed
	by engine, so it should not cause any backward-compatibility
	issues when removed. The list of verbs removed are as
	follows:
	  *volumeReplaceBrickStart
	  *volumeReplaceBrickAbort
	  *volumeReplaceBrickPause
	  *volumeReplaceBrickStatus
	  *volumeReplaceBrickCommit

	Continuous-Integration: Jenkins CI

	gluster: Adds a new element 'additionalFeatures' to getVdsCaps.
	This patch adds a new element 'additionalFeatures' to
	getVdsCaps, which gives the list of additional fetures supported
	by the host. This patch also adds additional gluster features
	supported in vdsm to the above list, if the host has vdsm support
	for features like snapshot, geo-replication and disk-provisoning
	they will be added to the list.

	Continuous-Integration: Jenkins CI

2015-05-18  Francesco Romani  <fromani@redhat.com>

	sampling: allow to get the nth-last sample
	HostStats thread need to access the second-last stored samples,
	to produce connlog.
	To cope with this requirement, we enhance SampleWindow class
	to allow to retrieve the nth-last sample.

	Continuous-Integration: Jenkins CI

2015-05-17  Ido Barkan  <ibarkan@redhat.com>

	net: Remove 3.0.0 network upgrade
	since ovirt-3.0, VDSM uses libvirt networks (with names prefixed
	vdsm-*) to store its own networks. Such networks were not defined in
	older versions of VDSM, and only Linux bridges were used. ovirt-3.5
	was the last version that supported the network upgrade to the new
	naming scheme.

	Continuous-Integration: Jenkins CI

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

	Adding noarch for vdsm.spec
	Continuous-Integration: Jenkins CI

	remove safelease code and require the package instead
	This allows to have vdsm with noarch architecture in
	a follow-up patch.

	Continuous-Integration: Jenkins CI

2015-05-16  Darshan N  <dnarayan@redhat.com>

	gluster: New verb to mount & update fstab for meta-volume
	This patch adds a new verb 'MetaVolumeMount' to
	update fstab entry for meta-volume and mount it. This
	meta-volume is needed by various glusterfs features
	like snapshot-schedule, geo-replication etc. It is
	expected to be mounted on all gluster nodes. It takes
	an optional argument metaVolumeName.

	Continuous-Integration: Jenkins CI

2015-05-15  Shahar Havivi  <shaharh@redhat.com>

	v2v: Add convertExternalVm to vdsClient
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-15  Nir Soffer  <nsoffer@redhat.com>

	spec: Simplfy Fedora libvirt requirement
	We require now any Fedora version with libvirt 1.2.9 or later. This
	version is available in Fedora 21 and on Fedora 20 when using the
	virt-preview repo.

	Note that Fedora 20 virt-preview repo is not maintained any more, and
	Fedora 20 will be EOL in a month.

	Relates-To: https://bugzilla.redhat.com/show_bug.cgi?id=1214846#c11
	Continuous-Integration: Jenkins CI

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

	testlib: drop python-2.6-specific code
	Noe that we no longer support el6 and its python-2.6, we can drop these
	backports.

	Continuous-Integration: Jenkins CI

2015-05-15  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: fix fstype unavailable for a formatted device
	Finds the fstype and add it to the device dictonary

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

2015-05-15  mmirecki  <mmirecki@redhat.com>

	replace minidom with ElelementTree
	netconfTest.py uses xml.dom.minidom, which is a slow module, for parsing
	and handling xml. The patch replaces this with xml.dom.ElementTree.

	Continuous-Integration: Jenkins CI

2015-05-15  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: raise proper execption if the given mount point is in use.
	Currently if an already used mount point is given for the brick
	create function, it does all the lvm tasks and returns Unexpected
	Exception when it tries to mout the device at the end of brick
	create scenario. This patch will check the availablity of the given
	mount point and returns an appropriate error message.

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

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

	migration: remove getVmStats before migration
	Calling getVmStats before migration to check if the
	same vm exists on the destination host is redundant.
	If it does, then our system is in much bigger trouble
	and migration will fail anyway.
	and if the connection was not established we will fail
	in the next step of the migration anyway.

	Continuous-Integration: Jenkins CI

2015-05-14  Ido Barkan  <ibarkan@redhat.com>

	net: clearer log for unavailable bonds
	Continuous-Integration: Jenkins CI

	net: simplify _find_nets_with_available_devices algorithm.
	Continue statements make this algorithm a bit tricky to understand.

	Continuous-Integration: Jenkins CI

2015-05-14  Nir Soffer  <nsoffer@redhat.com>

	password: Prevent password logging and persisting
	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 passwords in request parameters, and
	unprotect passwords in response result.  This is safest and simplest
	way, as we cannot forget to protect a method.

	The xmlrpc server handle protecting and unprotecting in the method
	level, since this is the only place where we can detect a password
	parameter.

	Passwords read from iscsi session and libvirt password file are also
	protected when they enter the application.

	Code that needs to access protected password value must access the
	password.value attribute.

	Note that xmlrpc server has incomplete and fragile password protection
	for non-irs methods (see wrapApiMethod). Fixing this needs more work.

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

2015-05-14  Shahar Havivi  <shaharh@redhat.com>

	v2v: Log obfuscate passwd provided by convertExternalVm
	Continuous-Integration: Jenkins CI

2015-05-14  Francesco Romani  <fromani@redhat.com>

	sampling: hoststats: kill sample() method
	HostStatsThread.sample() is a two-line method used only once.

	Remove it to reduce the code size, but also to make the code a
	little bit clearer.

	Continuous-Integration: Jenkins CI

2015-05-14  Nir Soffer  <nsoffer@redhat.com>

	vmstats: Fix cpu usage key names
	Since commit 9ba66c903083e (virt: Additional reporting of CPU usage in
	ns) we are accessing the wrong keys, filling the logs with:

	    Traceback (most recent call last):
	      File "/usr/share/vdsm/virt/vm.py", line 1338, in _getRunningVmStats
	        vm_sample.interval)
	      File "/usr/share/vdsm/virt/vmstats.py", line 37, in produce
	        cpu(stats, first_sample, last_sample, interval)
	      File "/usr/share/vdsm/virt/vmstats.py", line 78, in cpu
	        stats['cpuUsage'] = str(last_sample['system_time']
	    KeyError: 'system_time'

	Now we check the correct keys, and do this inside the try block handling
	missing keys, so errors are reported in a consistent way.

	Continuous-Integration: Jenkins CI

2015-05-14  Ido Barkan  <ibarkan@redhat.com>

	net: factor out _find_nets_with_available_devices.
	Aiming to simplify _filter_nets_bonds.

	Continuous-Integration: Jenkins CI

	net: remove support for sriov hook
	Now that vdsm supports sriov natively, it does not need a special
	hook for this. Moreover, allowing this hook to be installed might
	introduce bugs originating from the use of the two methods at the
	same time. vdsm now cannot be installed if hook-sriov package is
	already installed on the system.

	Continuous-Integration: Jenkins CI

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

	Revert "network: allow custom bondOption"
	This patch was based on misunderstanding of bond's 'areOptionsApplied'.
	Because of that, custom options were passed to configurator.

	This will be fixed in following patch.

	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/1199014
	Bug-Url: https://bugzilla.redhat.com/1209034
	Continuous-Integration: Jenkins CI

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'.

	Continuous-Integration: Jenkins CI

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

	netlink: rtnl_put_link after rtnl_link_get_kernel
	According to netlink documentation [1] we have to decrement reference
	counter when we don't need link (obtained from rtnl_link_get_kernel)
	anymore, otherwise we cause a leak.

	This bug was found by John Taylor <jtt77777@gmail.com> [2].

	Note that even before [3] was merged, _get_link() failed to call
	rtnl_put after yielding the result of rtnl_link_kernel().

	[1] http://www.infradead.org/~tgr/libnl/doc/route.html#link_direct_lookup
	[2] https://bugzilla.redhat.com/show_bug.cgi?id=1158108#c18
	[3] https://gerrit.ovirt.org/#/c/40571/4/lib/vdsm/netlink/link.py

	Bug-Url: https://bugzilla.redhat.com/1158108
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	Revert "getRoute verb added"
	getRoute verb was introduced due to our mistake. It is not useful
	for its task, was never used by Engine, and was never part of a released
	version of vdsm. Instead of using it, Engine is to perform DNS resolution
	of the host name and compare it to the addresses found on the interfaces
	reported by getVdsCapabilities.

	This reverts commit 41a839fc1d7d2e30262b961e33bf25f733a8de02.

	Continuous-Integration: Jenkins CI

	network: allow custom bondOption
	Allow 'custom' in bond options. This value will be accepted by
	Bond.validateOptions method but it will not be passed to configurator.

	Continuous-Integration: Jenkins CI

2015-05-13  Shmuel Melamud  <smelamud@redhat.com>

	tests: Typo in TestVmDevicesXmlParsing
	'device': 'wawtchdog' -> 'device': 'watchdog'

	Continuous-Integration: Jenkins CI

2015-05-12  Douglas Schilling Landgraf  <dougsland@redhat.com>

	spec: use %license macro
	Spec should be based on Fedora RPM GuideLines.
	https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/LicensingGuidelines

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-12  Darshan N  <dnarayan@redhat.com>

	gluster: revamp in geo-replication status and list verbs.
	This patch modifies geo-replication status and geo-replication
	list verbs to accomodate the corresponding changes in gluster
	geo-replication.

	Continuous-Integration: Jenkins CI

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

	lib: add the response.success() helper
	This patch augments the response module with the success()
	helper, so VDSM code has now a nicer and cleaner alternative
	to the bare doneCode which was used before.

	response.success() also allows caller code to augment the
	response code with custom fields, as it is done many times
	in Vm class.

	Continuous-Integration: Jenkins CI

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

	virt: Additional reporting of CPU usage in ns
	As per request, we're now additionally reporting the VM CPU usage
	in nanoseconds

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

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

	Cache the result of numaUtils.getVcpuPids
	The method that get the current NUMA cpu assignments
	burns quite a lot of CPU cycles to parse the libvirt
	XML all the time.

	This is not necessary as the XML only needs to be
	parsed again after it changes.

	This patch adds a NUMA vCpuPids cache to improve
	the overall NUMA stats performance.

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

2015-05-11  Shubhendu Tripathi  <shtripat@redhat.com>

	gluster: List activate-on-create volume snapshot option
	Modified the verb glusterSnapshotConfigList to list
	option activate-on-create as well.

	Bug-URL: https://bugzilla.redhat.com/1216056
	Continuous-Integration: Jenkins CI

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

	Remove configure sanlock from %post installation
	There is no need to run this verb during post as the user should run the
	full configure flow after installation.

	This is redundant call that might cause conflicts during upgrades.

	Continuous-Integration: Jenkins CI

2015-05-09  Ido Barkan  <ibarkan@redhat.com>

	net: factor out _find_bonds_with_available_nics
	Aiming to break _filter_nets_bonds apart so it will be simpler and
	easier to read.

	Continuous-Integration: Jenkins CI

2015-05-09  pkliczew  <piotr.kliczewski@gmail.com>

	jsonrpc: allow processing of notifications
	The difference between regular request and notification in jsonrpc is
	lack of id for the latter. We prepare message processing code to be able
	to process both.


	Continuous-Integration: Jenkins CI

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

	Move passwd (set saslpassword for libvirt) to vdsm-tool
	In this patch we stop calling saslpassword command directly,
	instead we move passwd logic to vdsm-tool configure.
	with that patch after rpm installation user will need to call configure
	to set the sasl libvirt password - therefore we remove those parts from spec,
	and update the manual accordingly.

	In additional this patch moves all related constants to passwd and replace
	usages.

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

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

	python3: avoid python3-inconsistent syntax
	There is a long long way before vdsm becomes compatible with Python 3.
	This patch only makes sure that the way does not become even longer by
	inroducing new incompatible code.

	Continuous-Integration: Jenkins CI

	python3: fix forgotten python2-ish syntax
	A print statement and a few old-style octal literal hid in py.in files.
	Now `make python3` passes when run after `make`.

	Continuous-Integration: Jenkins CI

2015-05-08  Ido Barkan  <ibarkan@redhat.com>

	network: move NET_LOGICALNET_CONF_BACK_DIR to ifcfg
	It is not used elsewhere.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	network: do not try to clean running configuration
	This small optimization was also the behavior before this change,
	only now it is easier to read and is also logged.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

	network: factor out method from unified restoration logic.
	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

2015-05-07  Ido Barkan  <ibarkan@redhat.com>

	net: remove el6 support for libnl binding
	Since 3.6 does not support el6 this commit reverts 2 other commits:
	02ab984 vdsm: Fix memory leak in netlink/link.py
	66aa7d8 libnl: workaround for _rtnl_link_get_kernel on el6

	The workaround is no longer needed hence also the fix for the memory
	leak it created.

	Continuous-Integration: Dan Kenigsberg <danken@redhat.com>

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

	clusterLock: fix returned retval
	Change Id4b9227773e44d48b21aa4eaba7c7fe1ab599931 added accidently
	a third element to the returned tuple which breaks the expected
	behavior.

	This patch restores the previous returned value and adds parantheses
	to clarify what is returned.

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

2015-05-07  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=1218581

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

	ifcfg: always print IPV6INIT=yes/no
	EL6's /etc/sysconfig/network-scripts/ifup-ipv6 had a condition:
	  [ "$IPV6INIT" = "yes" ] || exit 0

	which changed to an inverted one in EL7:
	  [[ "$IPV6INIT" = [nN0]* ]] && exit 0

	This makes IPV6INIT mandatory in ifcfg files.

2015-05-06  Nir Soffer  <nsoffer@redhat.com>

	spec: Libvirt 1.2.14 is not released yet
	In commit 87cf341acede (spec: Update libvirt-daemon and libvirt-python
	requirements) we required libvirt >= 1.2.14 on Fedora 22, but this
	version is not available yet. We will have to wait until this version is
	available.

2015-05-05  Federico Simoncelli  <fsimonce@redhat.com>

	utils: add CommandStream class
	This patch adds CommandStream a generic class to process the output of
	external commands (both stdout and stderr) as soon as available.
	For this purpose CommandStream provides the ability to define callbacks
	that will be executed when data is available from the external command.

	This class is the foundation for long-running commands that are able to
	provide their progress during execution: their output must be processed
	as soon as possible to maintain and report status updates.

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

	sampling: statscache: more robust remove()
	It is possible that StatsCache.remove() is called for a VM
	not yet added to the cache. This would move VDSM into
	an inconsistent state, possibly preventing to re-run the same
	VM. This is obviously very bad and must be avoided.

	A prominent example of this is if a vmMigrationCreate succeeds,
	but the asynchronous libvirt domain startup fails.
	The source VDSM would correctly issue destroy(),
	but the stats cache removal on the destination would fail.

	It must be noted that in some still-unclear circumstances,
	VDSM receives multiple destroy requests. VDSM reacts correctly
	to those requests, except for the fact that this causes
	multiple removals from stats_cache, and everyone but
	the first would fail (as expected).

	This patch
	- makes StatsCache.remove() capable of supportting removal
	  of net-yet-added VMs
	- adds log warnings to make sure these events will not
	  hide more bugs, like the multiple removal due to the failure
	  to create underlying libvirt domain.

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

	hooks: introduce before/after_get_stats hook points
	This patches adds a hook point that allows to modify the host statistics
	which Vdsm reports on its getVdsStats API. This hook can become useful
	if a hook writer would like to provide fake usage statistics to a fake
	network that is reported by an after_get_caps hook script.

2015-05-05  Federico Simoncelli  <fsimonce@redhat.com>

	block: convert getVolumeMetadataSlot into a contexmanager
	Using a contextmanager on getVolumeMetadataSlot allows us to hide the
	metadata slot lock inside the StorageDomain object instead of having to
	use it from other modules (e.g. formatConverter).

2015-05-05  Nir Soffer  <nsoffer@redhat.com>

	vm: Simplify error handling in diskReplicateStart
	Log only detailed exception in the outer try-except block, instead of
	detailed exception in the inner try-except block, and unhelpful
	exception in the outer block.

	virt: Improve spacing
	Separating logical blocks make it easier to to understand the flow.

	virt: Extract helpers for major XML elements
	Now drive xml is built using small helper methods creating each of the
	elements. This is more maintainable and will allow creating drive replica
	xml without code duplication.

	virt: Separate validation from getXML
	Extract _validate() method and move the validation code into it, and add
	missing tests for sgio and cow format.

	virt: Set source attributes consistently
	For "block" and "network" we were using source.setAttrs(key=value), but
	for file we were using less clear source.setAttrs(**dict).

	virt: Set default device in __init__
	Set Drive.device in __init__ instead of getXML().

	virt: Extract Drive.diskType property
	This is the first step in breaking getXML() to separate methods for
	rendering individual elements, required to create replica disk xml
	without code duplication.

	The diskType property is also required for Ceph support, where it will
	be sent from the engine. This property helps the rest of the code to work
	in the same way if diskType was sent from the engine (new engine) or
	deduced from blockDev and networkDev properties (old engine).

2015-05-05  Ido Barkan  <ibarkan@redhat.com>

	network: no need to log when network persistence path doesn't exist.
	When RunningConfig is instantiated, its underlying directory structure
	may not exist. This is perfectly OK on the start-up of a process.
	We prefer dropping the messages over having __init__ with side effects
	on the file system.

	The dropped messages were contaminating supervdsm.log and are a source of
	confusion and red herrings.

2015-05-05  Nir Soffer  <nsoffer@redhat.com>

	utils: Add systemd_run command modifier
	Using new cmdutils.systemd_run, you can modify a command so it will run
	as a service, using its own cgroup. This is handy when starting a long
	running command that should continue to run after the service starting
	it is terminated.

	The command will run as systemd service, and can be controlled using
	systemctl. For more info see systemd-run(1).

	Relates-To: https://bugzilla.redhat.com/1201355

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

	virt: rename SampleVMs for clarity
	SampleVMs is a bad name. Change it
	to VMBulkSampler, which is a bit more explicative.

	No changes in logic, only renaming.

	vm: disappeared domain are not ready for commands
	It is possible that isDomainReadyForCommands races
	agains the shutdown path.
	The two operations are intrinsically asynchronous with
	each other (shutdown, if started from the outside, will
	always be asynchronous with everything).

	To make code more robust, we add one protection layer
	inside isDomainReadyForCommands, catching libvirtErrors
	for inexistent domains (no longer existent domains).

	It is fair to report that those domains aren't ready
	for commands.

	Along the way, we add tests to cover all the paths
	in Vm.isDomainReadyForCommands().

	periodic: improve isolation in VM dispatching
	Make VmDispatcher more robust:

	1. add try/except block inside the vm dispatching loop, to make sure
	that one exception doesn't prevent further dispatching.
	This may happen if for any reason runnable() or required() raise.

	2. catch exceptions to make sure to log vm id, to make troubleshooting
	easier.

	3. add tests to check the that dispatching continues in presence
	of exceptions inside the VmDispatcher loops (#1 above)

	periodic: simplify per_vm_operation
	per_vm_operation was added, as helper, together with
	_dispatched_operation, for the sake of code readability.

	However, the usage of a separate function and functools.partial
	produced the opposite effect.

	This patch redoes per_vm_operation as private inner function,
	making it closer to its users and coalescing two separate
	helpers in one.

	This also makes the code shorter, so better in at least one
	objective metric.

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

	python3: use python3-compatible raising
	http://legacy.python.org/dev/peps/pep-3109/ has eliminated the raise
	statement with 2 or 3 expressions. However, in Python 2 they are the
	only way to tweak traceback of the raised exception.

	This patch introduces a new dependency on the "six" library, since its
	six.reraise() handles both cases. The code was auto-generated with
	the libmodernize.fixes.fix_raise_six fixer of python-modernize.

2015-05-04  Francesco Romani  <fromani@redhat.com>

	migration: typo: destServer attribute is private
	A typo in migration.py cause all migrations to fail.

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

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

	vm: hyperv: hypervclock dosn't have 'tickpolicy'
	'hypervclock' (and kvmclock as well) does not
	support the tickpolicy attribute.

	This patch removes the setting, while preserving
	it for 'rtc' clocksources.

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

	multiapth conf: Replace TM to VDSM

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

	debug: Integrate manhole debugging service
	Manhole is in-process service that will accept unix domain socket
	connections and present the stacktraces for all threads and an
	interactive prompt.

	Usage:

	0. Install it

	   pip install manhole

	1. Enable it in vdsm.conf:

	   [devel]
	   manhole_enable = true

	2. Dive into vdsm:

	   $ nc -U /var/run/vdsm/vdsmd.manhole
	   Python 2.7.5 (default, Jun 26 2014, 11:55:39)
	   [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux2
	   Type "help", "copyright", "credits" or "license" for more information.
	   >>> dir()
	   ['__builtins__', 'cif', 'dump_stacktraces', 'irs', 'os', 'socket',
	    'sys', 'traceback']
	   >>> irs.ready
	   True
	   >>>

	For more info see http://python-manhole.readthedocs.org/

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

	Move udevadm to lib/vdsm
	udevadm is a handy tool that other parts of vdsm could use beside
	storage.

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

	unbreak pyflakes
	Patch https://gerrit.ovirt.org/40346 did not maintain pyflakes
	cleanliness.

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

	vm: Improve error handling in diskReplicateStart
	Move the call to Vm._setDiskReplica() just before the try block ensuring
	that this is operation is reverted on errors. Previously there were some
	lines before the try block, and an exception raised in these lines would
	leave the disk in replication state.

	vm: Extract _startDriveReplication method
	Vm.diskReplicateStart() is too long and contains complex error handling
	code which I like to simplify. Having block of libvirt specific details
	in the middle of this monster make it harder to understand and modify.

	vm: Remove unused live-merge extend code
	_getExtendCandidates contained unused code that may be needed for future
	version of libvirt, providing drive size info for internal volumes.
	Keeping unused code makes our life harder.

	vm: Rename temporary for clarity
	When extending drive size, we used both "currentSize" and
	"sizeRoundedBytes" for qemu image virtual size.

	Both names are not specific enough, as we are dealing with many sizes in
	this module (physical, capacity, allocated, apparentsize, truesize). It
	also confusing to use different name for the same value, as both values
	may be rounded up by qemu.

	Now we use curVirtualSize for the size before extending, and
	newVirtualSize for the size after extending.

	A comment added to explain why we use and return newVirtualSize and
	not the requested size.

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

	network: clientSeen should have its default timeout

	unbreak InterfaceSampleTests.
	testHostSampleReportsNewInterface and
	testHostSampleHandlesDisappearingVlanInterfaces made simpler. The
	compromise here is not testing the HostSample() public interface, which
	is more correct, but harder to fake.

2015-04-29  Martin Polednik  <mpolednik@redhat.com>

	virt: add unit test for getUnderlying* family of methods
	Our tests did not cover the process of retrieving device information
	from libvirt XML. This patch is a first step to add such coverage on
	the side of unit tests.

2015-04-29  Francesco Romani  <fromani@redhat.com>

	profiling: add support for memory profiling
	There are many python memory profilers, but most of them are
	tailored for interactive usage, so additional integration work
	is needed to use them in a daemon, like VDSM.

	This patch adds support for dowser:
	<http://www.aminus.net/wiki/Dowser>
	<https://pypi.python.org/pypi/dowser/0.2>

	which has the following benefits which makes it in a better position
	to be used with VDSM:
	+ self contained, includes WEB UI
	+ allows live monitoring
	+ tailored for cherrypy usage, so friendly towards server applications.
	+ easily portable (pure package)

	It must be noted that dowser has some drawbacks as well
	- significat dependencies, both in number and in size (with respect
	  to VDSM standards): cherrypy, PIL
	- based on gc module

	As per the cpu profile already added, this code is meant to be
	used only as debug aid or in development environments.
	The feature is controlled by a config tunable and disabled by default;
	the feature disable itself if any dependency is missed.

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

	Better logging for network restoration.
	Logging is done on the same log file of vdsm itself and it is now clearer
	when restoration is done, if the restoration succeeded or not, and if not,
	where it failed.

2015-04-28  Martin Polednik  <mpolednik@redhat.com>

	vmdevices: factor out default disk interfaces to storage
	One step in an ongoing effort to isolate device functionality.

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

	shell_helper: show all VDSM processes status when restarting

2015-04-28  Francesco Romani  <fromani@redhat.com>

	profiling: move exceptions in a module
	In order to make them (so far, 'it') reusable
	across all the package, not only in the cpu module.

	No code changes, just reorganization.

	profiling: disambiguate profile identifiers
	Upcoming patches want to add memory profiling,
	so the CPU profiling will not be the only one.

	This patch changes all the profile related identifers
	by prepending the 'cpu_' string to reflect that.

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

	network: moving changeNumvfs to network/api.py
	Later patches will add functionality which justifies keeping
	superdvdsmServer small

2015-04-28  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/1205058

2015-04-28  Martin Polednik  <mpolednik@redhat.com>

	vmdevices: rename buildConfDevices to devSpecMapFromConf
	To keep a consistent naming across devices subsystem, this patch
	changes name of this method to conform naming defined in
	http://www.ovirt.org/Feature/VmDevices_rework#Current_state_of_devices

	vm.py: factor out device object creation from _run method
	This is an attempt to start more isolation of device related
	functionality in vm.py. This will allow us to move it to it's own
	module in future, and in the meantime give us more granularity for
	testing.

2015-04-27  pkliczew  <piotr.kliczewski@gmail.com>

	stomp: remove not used client

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

	vm.py: avoid needless temporary list

	python3: eliminate tuple_params
	I liked tuple arguments, but they are gone from Python 3 due to
	pep-3113, and their current use in Vdsm was unwarranted.

2015-04-27  Francesco Romani  <fromani@redhat.com>

	vm: make sure {true,apparent}size is str in conf
	In commit 7a2ddbac86a0ed21050dd741d9f1f2b826adbccc
	we introduced the Vm._getVolumeSize helper, which
	makes the code nicer and cleaner.

	Unfortunately, it also adds an hidden side effect
	when it is called in _normalizeVdsmImg, because
	it returns a tuple of int()s.

	However, _normalizeVdsmImg is updating Drive config,
	which is expected to contain strings.

	Strictly speaking, the content has *not* to be strings
	- this is not documented not enforced anywhere -,
	but such data is copied verbatim in the result of
	getVMList(fullStatus=True, ...), so this breaks XMLRPC
	for any disk {true,apparent}size is bigger than 2G.

	To unbreak XMLRPC, then, we cast back the return
	value of _getVolumeSize() as strings.
	This is not the most correct solution, but restores
	the hidden assumption about data being string inside
	Vm.conf.

	vm: do not clean StatsCache on setDownStatus
	We should clean StatsCache, but only when a VM
	is released, not when it is set to Down.

	Otherwise, destroy will fail, leaving VDSM
	into an inconsistent state.

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

	tool: Remove leftover libvirtd.log rotating logic.
	Vdsm libvirt logging definitions were recently dropped in
	favor of libvirt defaults[1].  It is now up to libvirt to
	manage logging, rotating included.

	libvirt.logrotate is a file installed by libvirt's rpm and then
	modified by vdsm-tool. we need to stop modifying it, and drop
	modifications when libvirtd.conf updates to include [1] -
	When we have a version bump.

	[1]
	http://gerrit.ovirt.org/#/q/I251c2534d3284aa95bffa56143c449d5de887008,n,z

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

	Remove redundant print which interfere yum output
	The print "removed configuration of module [module-name] successfully"
	is not necessary and better to avoid it.

	Remove libvirt configure code from debian prerm script
	The code which configure related services conf files is currently part
	of vdsm-tool configure verb. This verb is being called by ovirt deploy
	or manually by the user. This patch calls "vdsm-tool remove-config"
	which does that cleanup.

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

	disconnecting a port from a bridge should not consider el6 anymore
	Also, require el7 version of iproute2 so users cannot install vdsm
	now on el6.

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

	python3: use newer-style octal literals

2015-04-25  Martin Polednik  <mpolednik@redhat.com>

	vmdevices: rename makeDeviceDict to makeDevMap
	To keep a consistent naming across devices subsystem, this patch
	changes name of this method to conform naming defined in
	http://www.ovirt.org/Feature/VmDevices_rework#Current_state_of_devices

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

	python3: booleans exist.

2015-04-24  Francesco Romani  <fromani@redhat.com>

	vm: remove unused constant
	The statistics handling code which uses the _MBPS_TO_BPS constant
	was moved into vmstats.py, hence this constant is now useless here.

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

	vm: Simplify dict assignment
	Replace unneeded update with one value with simpler assign.

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

	python3: lib2to3.fixes.fix_except
	Fix all occurances of old-style

	  except Except, e:

	unbreak pyflakes
	this should have been included in commit ec697835c.

2015-04-24  Francesco Romani  <fromani@redhat.com>

	virt: drop AdvancedStatsFunction
	AdvancedStatsFunction is not used anymore, replaced
	by SampleWindow or just by different code.

	virt: stats: drop {Advanced,Vm}StatsThread
	VmStatsThread and AdvancedStatsThread are
	not used anymore, so this patch drops them.

	vm: restore guestEventTime update
	When VM starts, it needs to update the guestEventTime field.
	This was mistakenly removed as side effect as commit
	8ba3a3f599ef9d3910ff69ce8d61d5e2c3d9176a

	Now this patch restores it to keep the VM state consistent.
	For the record, the known side effect of the above mistake
	is to not show up the 'Powering_Up' state.

	Along the way, drop a stale comment that should be removed
	earlier, when we dropped invocation of startVmStats.

	virt: periodic: port highWrite monitoring
	port the high water mark monitoring (aka disk threshold monitoring)
	to the new periodic operations infrastructure.

	At steady state, we will use QEMU events for performance reasons;
	moreover some storage flows, however, may still require polling.
	So this code may still be useful as fallback or as extra protection
	layer even when we get disk usage events.

	virt: stats: periodic sampling using bulk stats
	With a framework to run periodic, possibily blocking, monitoring
	operations deployed, we now can move the VM sampling task in this
	context quite nicely.

	This patch overhauls the sampling and makes it
	another task in the periodic.py framework.
	This is also made possible by the move to the
	bulk stats libvirt API.

	Benefits of this patch are
	- drop of the dreaded "one thread per VM" model
	- cleaner and more extensible code

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

2015-04-24  Saggi Mizrahi  <smizrahi@redhat.com>

	stomp: Always pop the frame for frame handler
	We do not need to check whether _frame_handler has attribute handle_frame
	because we have only two frame handlers. One is used when connecting and the
	other used when serving the content.

	Following classes are used use frame handlers:
	- AsyncClient (client)
	- StompAdapterImpl (server)

	Both of them provide handle_frame. We could keep this check if we plan to
	provide more implementations but currently there is no need to have more.

2015-04-23  Fred Rolland  <frolland@redhat.com>

	hsm: Report info needed for refreshing devices
	One of the way to increase the size of a Storage Domain
	is to increase the LUN size on the storage server.

	Devices that were resized on the storage server need to be
	resized also on the host.

	When GetDeviceList is called, a multipath rescan occurs.
	Therefore the underlying paths are refreshed.
	However, the PV still have the previous size.
	The devices needed to be refreshed can be discovered
	by comparing the path capacity and the PV size.

	The following fields are added to GetDevicelist:
	Capacity of path in the path status section, and size of PV.

	See output with the additional fields:

	{'GUID': '36001405bab880a35fc349e183390eb8e',
	  'capacity': '24696061952',
	  'devtype': 'iSCSI',
	  'fwrev': '4.0',
	  'logicalblocksize': '512',
	  'pathlist': [{'connection': '10.35.0.174',
	                'initiatorname': 'default',
	                'iqn': 'iqn.2015-01.com.rhevuser:444',
	                'port': '3260',
	                'portal': '1'}],
	  'pathstatus': [{'capacity': '24696061952',
	                  'lun': '0',
	                  'physdev': 'sda',
	                  'state': 'active',
	                  'type': 'iSCSI'}],
	  'physicalblocksize': '512',
	  'productID': 'block_backend_l',
	  'pvUUID': '07QE9o-UoSl-v8NP-JTkV-nE3F-nI7x-RgsoQM',
	  'pvsize': '24293408768',
	  'serial': 'SLIO-ORG__bab880a3-5fc3-49e1-8339-0eb8e882dc16',
	  'status': 'used',
	  'vendorID': 'LIO-ORG',
	  'vgUUID': 'hRpSR4-NTBV-z3Ki-K1N6-llGQ-en24-GGVf8Y'}

	Relates-To: https://bugzilla.redhat.com/609689

2015-04-23  Tomas Jelinek  <tjelinek@redhat.com>

	Added support for iothreads
	Added a new parameter 'numOfIoThreads' to VM and
	a new parameter 'pinToIoThread' to Drive's spec params.

	If not set, nothing happens.
	If set, the libvirt xml is enriched on two places:
	- The 'domain' will have a direct child <iothreads>N</iothreads>
	- The disk will have the 'driver' enriched by 'iothread="i"'

	The meaning is that the qemu will allocate N threads and pin the disk to the
	thread provided in it's spec params.

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

	testBrokenNetworkReplacement does not need to consider el6 anymore

2015-04-23  Shahar Havivi  <shaharh@redhat.com>

	v2v: Convert VM from external source to Data Domain
	new verb: convert VM from external source (non-kvm) to Data Domain.
	The convertExternalVm() is implemented in v2v module and use
	the virt-v2v external tool to do actual VM conversion.

	More information can be view at the feature page:
	http://www.ovirt.org/Features/virt-v2v_Integration

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

	storage: Remove validateStorageServerConnection
	validateStorageServerConnection is inherently a racy (read: useless)
	call, as a storage server may become unreachable an instant after
	calling this method returns that it's OK.

	This call has been progressively cut away over the past several
	years:
	 - Commit 1f608f9f73680c021fde4a14f432e6e91ac3f3f9 turned it into a
	   noop call that returns 0 for any connection
	 - Commit a1cdccdff54af7aea8de49c06d8535079cd78bff marked it as
	   @deprecated

	Since oVirt Engine stopped calling it in 3.3.0, now, in 3.6.0, we
	can finally remove the call altogether. Note that this patch will make
	new VDSM versions incompatible with oVirt Engine older than 3.3.0.

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

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

	prepare for python 3's range
	This patch replaces xrange with range, but only where performence does
	not really matter. run-time usages of xrange would be replaced with
	six.moved.xrange in a future patch

2015-04-23  Ondřej Svoboda  <osvoboda@redhat.com>

	models: move IpConfig's members to NetDevice

	ifcfg: make _getIfaceConfValues pass ipv4, ipv6 to _createConfFile

	ifcfg: use _to_ifcfg_bool to shorten yes/no assignments

	models: move dynamic IP configuration parameters to IPv4 and IPv6

2015-04-22  Francesco Romani  <fromani@redhat.com>

	virt: support per-vm stats age
	It is possible that a VM goes rougue right at the startup,
	even before that any commmand is sent to it.
	To cover this case, VDSM marks a VM as unresponsive if stats
	are unavailable for too long, including the startup.

	This patch provides support in StatsCache to provide the
	same behaviour when switching to the new bulk stats sampling.

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

	python3: use modern function and method attributes
	created with python-modernize -f lib2to3.fixes.fix_funcattrs -f lib2to3.fixes.fix_methodattrs

2015-04-22  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
	_rtnl_link_get_kernel_workaround(sock, name) function where it is used
	and causes a memory leak.

	Transformed _get_link() to a context manager, add a C function prototype
	for the libnl rtnl_link_put function and if _rtnl_link_get_by_name() was
	used, call it in the finally block. 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-22  Dan Kenigsberg  <danken@redhat.com>

	python3: eliminate long
	long and int are one. http://legacy.python.org/dev/peps/pep-0237/

2015-04-22  Francesco Romani  <fromani@redhat.com>

	tests: temporarily mark broken tests
	on CI, some vm *unit* tests try to reahc libvirt
	despite faking. This should not happen, and breaks
	the tests.

	Mark these tests as broken until we figure out
	the real issue, to unbreak CI.

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

	Stop supporting engine < 3.3
	Moving forwards to oVirt 3.6, we'd like to deprecate the support for
	older oVirt Engine versions.

	This patch removes the support for engines older than 3.3 and sets the
	foundation for removing old, deprecated, API calls that are no longer
	used in modern engines.

	Note: This patch only deals with supported ENGINES, not cluster or DC
	compatibility levels.
	I.e., this change allows VDSM to communicate with modern engines and be
	part of clusters/DCs with lower compatibility versions.
	If we wish to break the assumptions about SPM or HSM flows when working
	with modern engines, an additional patch(s) will be required to remove
	those cluster/DC versions.

	Relates-To: https://bugzilla.redhat.com/730736

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-21  Francesco Romani  <fromani@redhat.com>

	spec: fix EPOCH of qemu rpm requirements
	In commit 1cd41107adb3dfd4816037ae84e0d12254511bc6
	I mistakenly left out the "epoch" field from the
	rpm requirements. This patch restores it to the
	appropriate values for supported platforms.

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

2015-04-21  Martin Polednik  <mpolednik@redhat.com>

	hostdev: only detect IOMMU group for PCI devices
	When assigning USB and/or SCSI devices, the detach function is called
	to fetch attributes of the device. Assigning IOMMU group caused
	KeyError in this case as there are no IOMMU groups on usb/scsi buses.

2015-04-21  Francesco Romani  <fromani@redhat.com>

	virt: periodic: port queryBlockJobs
	Vm/Block Jobs monitoring is a fundamental
	part of live merge support. Most often, VMs
	do not have block jobs to monitor, so we should
	avoid unnecessary work for performance reasons.
	However, block jobs need to enter the QEMU monitor,
	so we also need to take countermeasures for possibly
	blocking operations.

	The periodic.py aka 'periodic operations' framework
	can accomodate both needs, so this patch moves the
	monitoring of the VM block jobs under the periodic.py
	umbrella, with no intended changes in behaviour nor
	in the output.

	The only code changes are limited to the glue code
	needed to adapt from former VmStatsThread framework.

	authors: add myself as contributor

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

	protocoldetector: Make socket blocking after detection
	Commit b25dbdcce4 (Have the protocol detector use the Reactor)
	introduced a regression, passing non-blocking sockets to the xmlrpc
	server and the tests.

	Before this commit, a socket was set to non-blocking mode when entering
	to the protocol detector, and was set to blocking mode when exiting the
	protocol detector.

	The xmlrpc server used to work by accident, because we use a timeout in
	the request handler, which set timeout on a socket, switching it to
	non-blocking mode. The jsonrpc server needs non-blocking socket, but it
	makes the socket non-blocking when accepting a socket.

	This patch restores the previous behavior, setting the socket to
	blocking mode when protocol detector pass the socket to the detector.

	protocoldetector: Do not expose internals
	Commit b25dbdcce4 (Have the protocol detector use the Reactor) exposed
	the internals of the protocol acceptor to the detectors.

	Previously detectors had a handleSocket() method, called to pass
	ownership of the client socket to the detector.  The new code replaced
	this with handle_dispatcher(), accepting a Dispatcher object.  The
	detectors are now responsible for calling dispatcher.del_channel(),
	removing the dispatcher from the event loop.

	This patch changes the detector interface so detectors get the client
	socket, and the protocol acceptor is maintaining the dispatcher.

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

	convert print statements to functions
	Patch created with

	  python-modernize -f libmodernize.fixes.fix_print

	and manual fixes to pep8 damage. This is another tiny step towards
	python3 compatibility.

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

	protocoldetector: Fix has_expired check [3/3]
	Detector uses utils.monotonic_time(), which has a typical rsolution of 10
	milliseconds. This cause next_check_internal() to return 0 while has_expired()
	returns False. This cause a busy poll loop until utils.monotonic_time() returns
	a larger value, which takes typically 10 milliseconds.

	Now has_expired() returns True when reaching the deadline, eliminating the
	busy loop.  Comparing test_reject_very_slow_client profiles before and
	after this change show that the busy loop was eliminated.

	This change is a rather small improvement, eliminating 100-500 functions
	calls per connection on my laptop, probably more on fast servers.

	Sat Apr 18 16:54:48 2015    test-use-ssl-before.prof

	    743 function calls (750 primitive calls) in 0.006 seconds

	    Ordered by: call count
	    List reduced from 186 to 10 due to restriction <10>

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       34    0.000    0.000    0.005    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	       22    0.000    0.000    0.000    0.000 socket.py:223(meth)
	       18    0.000    0.000    0.000    0.000 __init__.py:598(Logger.filter)
	       16    0.000    0.000    0.000    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	       16    0.000    0.000    0.001    0.000 betterAsyncore.py:51(Dispatcher.readable)
	       16    0.000    0.000    0.000    0.000 betterAsyncore.py:54(Dispatcher.writable)
	       16    0.000    0.000    0.000    0.000 utils.py:1220(monotonic_time)
	       13    0.000    0.000    0.000    0.000 pthreading.py:66(RLock.acquire)
	       13    0.000    0.000    0.000    0.000 pthread.py:95(RLock.lock)
	       11    0.000    0.000    0.000    0.000 posixpath.py:51(normcase)

	Sat Apr 18 16:55:09 2015    test-no-ssl-before.prof

	    1002 function calls (1009 primitive calls) in 0.007 seconds

	    Ordered by: call count
	    List reduced from 139 to 10 due to restriction <10>

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       93    0.001    0.000    0.002    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	       46    0.000    0.000    0.001    0.000 betterAsyncore.py:51(Dispatcher.readable)
	       46    0.000    0.000    0.001    0.000 betterAsyncore.py:54(Dispatcher.writable)
	       46    0.000    0.000    0.001    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	       45    0.000    0.000    0.000    0.000 utils.py:1220(monotonic_time)
	       24    0.000    0.000    0.000    0.000 betterAsyncore.py:159(AsyncoreEvent.writable)
	       24    0.000    0.000    0.000    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	       24    0.000    0.000    0.000    0.000 protocoldetector.py:60(_AcceptorImpl.readable)
	       24    0.000    0.000    0.000    0.000 betterAsyncore.py:79(<lambda>)
	       24    0.000    0.000    0.000    0.000 asyncore.py:324(AsyncoreEvent.readable)

	Sat Apr 18 17:16:19 2015    test-use-ssl-after.prof

	    649 function calls (656 primitive calls) in 0.007 seconds

	    Ordered by: call count
	    List reduced from 187 to 10 due to restriction <10>

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       22    0.000    0.000    0.001    0.000 socket.py:223(meth)
	       18    0.000    0.000    0.000    0.000 __init__.py:598(Logger.filter)
	       18    0.000    0.000    0.004    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	       13    0.000    0.000    0.000    0.000 pthreading.py:66(RLock.acquire)
	       13    0.000    0.000    0.000    0.000 pthread.py:95(RLock.lock)
	       11    0.000    0.000    0.000    0.000 posixpath.py:51(normcase)
	       10    0.000    0.000    0.000    0.000 threading.py:1153(currentThread)
	        9    0.000    0.000    0.000    0.000 __init__.py:713(MyMemoryHandler.format)
	        9    0.000    0.000    0.000    0.000 process.py:59(current_process)
	        9    0.000    0.000    0.000    0.000 __init__.py:693(MyMemoryHandler.acquire)

	Sat Apr 18 17:16:31 2015    test-no-ssl-after.prof

	    524 function calls (531 primitive calls) in 0.006 seconds

	    Ordered by: call count
	    List reduced from 140 to 10 due to restriction <10>

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       17    0.000    0.000    0.001    0.000 socket.py:223(meth)
	       16    0.000    0.000    0.000    0.000 __init__.py:598(Logger.filter)
	       13    0.000    0.000    0.001    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	       11    0.000    0.000    0.000    0.000 pthreading.py:66(RLock.acquire)
	       11    0.000    0.000    0.000    0.000 pthread.py:95(RLock.lock)
	        9    0.000    0.000    0.000    0.000 posixpath.py:51(normcase)
	        9    0.000    0.000    0.000    0.000 threading.py:1153(currentThread)
	        8    0.000    0.000    0.000    0.000 __init__.py:713(MyMemoryHandler.format)
	        8    0.000    0.000    0.000    0.000 process.py:59(current_process)
	        8    0.000    0.000    0.001    0.000 __init__.py:736(MyMemoryHandler.handle)

	protocoldetector: Fix busy read loop [2/3]
	Profiling test_reject_very_slow_client reveal another issue in
	protocoldetector._ProtocolDetector dispatcher. The detector checks if it
	has expired in handle_read, but it is done too late, causing the reactor
	to busy loop calling handle_read:

	Sat Apr 18 16:44:11 2015    test-use-ssl-before.prof

	    480783 function calls (480797 primitive calls) in 1.050 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	    20880    0.275    0.000    0.825    0.000 asyncore.py:170(poll2)
	    83521    0.198    0.000    0.333    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	    20880    0.126    0.000    0.574    0.000 betterAsyncore.py:209(Reactor._get_timeout)
	    41759    0.082    0.000    0.233    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	    20880    0.079    0.000    0.095    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	    20880    0.055    0.000    0.891    0.000 asyncore.py:205(loop)
	    41759    0.047    0.000    0.214    0.000 betterAsyncore.py:51(Dispatcher.readable)
	    41759    0.044    0.000    0.205    0.000 betterAsyncore.py:54(Dispatcher.writable)
	    20878    0.041    0.000    0.105    0.000 protocoldetector.py:93(_ProtocolDetector.next_check_interval)
	    20883    0.027    0.000    0.047    0.000 utils.py:1220(monotonic_time)

	Sat Apr 18 16:44:53 2015    test-no-ssl-before.prof

	    538369 function calls (538376 primitive calls) in 1.049 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	    23388    0.282    0.000    0.814    0.000 asyncore.py:170(poll2)
	    93551    0.187    0.000    0.318    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	    23388    0.129    0.000    0.579    0.000 betterAsyncore.py:209(Reactor._get_timeout)
	    46774    0.082    0.000    0.234    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	    23388    0.079    0.000    0.096    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	    23388    0.056    0.000    0.881    0.000 asyncore.py:205(loop)
	    46774    0.045    0.000    0.205    0.000 betterAsyncore.py:51(Dispatcher.readable)
	    46774    0.043    0.000    0.200    0.000 betterAsyncore.py:54(Dispatcher.writable)
	    23386    0.040    0.000    0.106    0.000 protocoldetector.py:93(_ProtocolDetector.next_check_interval)
	    23388    0.029    0.000    0.049    0.000 utils.py:1220(monotonic_time)

	Now we check if a dispatcher has expired in readable(), closing the
	dispatcher. This remove the dispatcher from the reactor event loop
	immediately. Profiling the same test after this change show expected
	behavior:

	Sat Apr 18 16:54:48 2015    test-use-ssl-after.prof

	    743 function calls (750 primitive calls) in 0.006 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	        1    0.001    0.001    0.001    0.001 sslutils.py:291(SSLHandshakeDispatcher._set_up_socket)
	      8/9    0.000    0.000    0.006    0.001 asyncore.py:170(poll2)
	        9    0.000    0.000    0.001    0.000 __init__.py:242(LogRecord.__init__)
	       34    0.000    0.000    0.005    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	        1    0.000    0.000    0.000    0.000 pthread.py:129(Cond.wait)
	        9    0.000    0.000    0.001    0.000 betterAsyncore.py:209(Reactor._get_timeout)
	        9    0.000    0.000    0.000    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	        1    0.000    0.000    0.000    0.000 ssl.py:294(SSLSocket.close)
	        1    0.000    0.000    0.004    0.004 protocoldetectorTests.py:191(AcceptorTests.check_very_slow_client)
	        4    0.000    0.000    0.000    0.000 socket.py:185(_socketobject.__init__)

	Sat Apr 18 16:55:09 2015    test-no-ssl-after.prof

	    1002 function calls (1009 primitive calls) in 0.007 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	    23/24    0.001    0.000    0.004    0.000 asyncore.py:170(poll2)
	       93    0.001    0.000    0.002    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	       24    0.000    0.000    0.002    0.000 betterAsyncore.py:209(Reactor._get_timeout)
	       24    0.000    0.000    0.000    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	        8    0.000    0.000    0.001    0.000 __init__.py:242(LogRecord.__init__)
	       46    0.000    0.000    0.001    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	        1    0.000    0.000    0.000    0.000 pthread.py:129(Cond.wait)
	    23/24    0.000    0.000    0.004    0.000 asyncore.py:205(loop)
	       45    0.000    0.000    0.000    0.000 utils.py:1220(monotonic_time)
	       46    0.000    0.000    0.001    0.000 betterAsyncore.py:51(Dispatcher.readable)

	protocoldetector: Fix busy poll loop [1/3]
	Watching top during protocoldetector tests show very high (100%) cpu
	usage during the slow client test. Profiling test_detect_slow_client
	test show that the reactor is running a busy poll loop:

	Sat Apr 18 15:43:05 2015    test-use-ssl.prof

	    191917 function calls (191928 primitive calls) in 0.367 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	     6598    0.091    0.000    0.325    0.000 asyncore.py:170(poll2)
	    32987    0.074    0.000    0.143    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	     6598    0.036    0.000    0.160    0.000 betterAsyncore.py:209(Reactor._get_timeout)
	     6598    0.024    0.000    0.029    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	    13194    0.022    0.000    0.064    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	     6598    0.015    0.000    0.343    0.000 asyncore.py:205(loop)
	     6597    0.012    0.000    0.068    0.000 asyncore.py:105(readwrite)
	    13194    0.012    0.000    0.057    0.000 betterAsyncore.py:51(Dispatcher.readable)
	    13194    0.012    0.000    0.069    0.000 betterAsyncore.py:54(Dispatcher.writable)
	     6595    0.011    0.000    0.029    0.000 protocoldetector.py:87(_ProtocolDetector.next_check_interval)

	Sat Apr 18 15:46:09 2015    test-no-ssl.prof

	    184319 function calls (184329 primitive calls) in 0.359 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	     6340    0.090    0.000    0.320    0.000 asyncore.py:170(poll2)
	    31696    0.073    0.000    0.139    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	     6340    0.035    0.000    0.155    0.000 betterAsyncore.py:209(Reactor._get_timeout)
	     6340    0.022    0.000    0.026    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	    12678    0.022    0.000    0.062    0.000 betterAsyncore.py:69(Dispatcher.next_check_interval)
	     6340    0.015    0.000    0.338    0.000 asyncore.py:205(loop)
	    12678    0.012    0.000    0.057    0.000 betterAsyncore.py:51(Dispatcher.readable)
	     6339    0.012    0.000    0.064    0.000 asyncore.py:105(readwrite)
	    12678    0.012    0.000    0.068    0.000 betterAsyncore.py:54(Dispatcher.writable)
	     6338    0.011    0.000    0.028    0.000 protocoldetector.py:87(_ProtocolDetector.next_check_interval)

	The root cause is not implementing writable() method, inheriting the
	writable() method from asyncore.dispatcher, returning True. The reactor
	poll the sockets for POLLOUT, and since a socket is always writable if
	you never write to it, the reactor is waking up immediately. This
	creates a busy loop, invoking poll 6340 times for handling one
	connection, sending one line.

	Now we implement writable(), so the reactor wakes up only when data can
	be read from a socket, or when a dispatcher has expired. Profiling same
	test after this show expected behavior:

	Sat Apr 18 15:53:40 2015    test-use-ssl-after.prof

	    686 function calls (697 primitive calls) in 0.005 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	        4    0.001    0.000    0.001    0.000 asyncore.py:416(AsyncoreEvent.__getattr__)
	        2    0.000    0.000    0.000    0.000 pthread.py:129(Cond.wait)
	        9    0.000    0.000    0.000    0.000 __init__.py:242(LogRecord.__init__)
	        4    0.000    0.000    0.000    0.000 socket.py:185(_socketobject.__init__)
	        4    0.000    0.000    0.004    0.001 asyncore.py:170(poll2)
	       24    0.000    0.000    0.000    0.000 socket.py:223(meth)
	       16    0.000    0.000    0.004    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)
	        1    0.000    0.000    0.004    0.004 protocoldetectorTests.py:184(AcceptorTests.check_slow_client)
	       15    0.000    0.000    0.000    0.000 pthread.py:95(RLock.lock)
	        1    0.000    0.000    0.000    0.000 ssl.py:294(SSLSocket.close)

	Sat Apr 18 16:23:43 2015    test-no-ssl-after.prof

	    541 function calls (551 primitive calls) in 0.006 seconds

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

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	        2    0.002    0.001    0.002    0.001 threading.py:561(_Event.__init__)
	        8    0.000    0.000    0.001    0.000 __init__.py:242(LogRecord.__init__)
	        2    0.000    0.000    0.000    0.000 pthread.py:129(Cond.wait)
	        1    0.000    0.000    0.001    0.001 protocoldetectorTests.py:184(AcceptorTests.check_slow_client)
	    20/21    0.000    0.000    0.001    0.000 socket.py:223(meth)
	        8    0.000    0.000    0.001    0.000 __init__.py:736(MyMemoryHandler.handle)
	        3    0.000    0.000    0.000    0.000 socket.py:185(_socketobject.__init__)
	       13    0.000    0.000    0.000    0.000 pthread.py:95(RLock.lock)
	        8    0.000    0.000    0.001    0.000 __init__.py:1302(Logger.callHandlers)
	       10    0.000    0.000    0.004    0.000 betterAsyncore.py:139(Dispatcher._delegate_call)

	protocoldetector: Fix next_check_interval
	Commit b25dbdcce4 (Have the protocol detector use the Reactor) added the
	check_next_interval() interface, returning the timeout until the next
	check. However the implementation in some of the dispatchers was wrong,
	always returning 0. This cause the event loop to run a busy polling loop
	instead of waiting until the next dispatcher check time.

2015-04-20  Francesco Romani  <fromani@redhat.com>

	virt: vmxml: remove writexml hack
	VDSM >= 3.6 will run on python >= 2.7,
	hence it is time to drop this ancient writexml
	hack.

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

	DhclientLeases does not need to be skipped if el6 (el6 is not supported anymore)

	remove support for legacy bonds.
	Legacy bonds only apply in el6 which is not supported in master anymore

	dnsmasqDhcp does not need to consider el6 anymore

	delete_dhclient_leases does not need to consider el6 anymore

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

	gluster: adds a verb to check if a gluster volume is empty
	This patch adds a verb volumeEmptyCheck which checks if a
	gluster volume is empty or not. This verb takes gluster
	volume name as an argument and returns a flag
	volumeEmptyCheck. This check is needed during geo-replication
	create, as it is recomemded to have the remote volume
	to be empty. So while creating a geo-rep session engine
	has to check if slave volume is empty.

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

2015-04-19  Martin Polednik  <mpolednik@redhat.com>

	hostdev: remove usb detach/reattach calls
	These calls were introduced to allow behaviour as stated by libvirt
	documentation, which was wrong in regard to USB. There is no need for
	any kind of detach/reattach calls to be made.

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

	tests: Fix detector read loop
	Detector read loop was ignoring empty string returned from recv(),
	signaling disconnected socket, and was calling recv() again, blocking
	until process shutdown. During shutdown, the call would return into a
	partly shutdown interpreter, failing with impossible AttribueError.

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

	unbreak pyflex test
	due to commit 5c3ab8c

2015-04-18  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=1207610

2015-04-18  Shahar Havivi  <shaharh@redhat.com>

	Build fix: missing v2v directory
	Creation of v2v directory is missing from Makefile

2015-04-18  Saggi Mizrahi  <smizrahi@redhat.com>

	stomp: Remove redundant code

	stomp: Make sure the \0 is a last char in the buffer
	We need to provide sanity check to be sure that buffer contains \0 as
	last character.

	Bug-Url: http://bugzilla.redhat.com/1169100

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

	stomp: make subscription class local

	jsonrpc: extending buffer size
	For performance reasons we want to process bigger chunks of data when
	processing incoming messages from the engine.

	Most of the engine messages are less then 4k so this means that single
	recv call returns at least one complete message.

	stomp: parsing buffer refactoring
	Refactored how we manage buffer and parser state in Parser class.
	We have decided to drop dependency on cStringIO due to need of
	searching which is not possible without converting.

	Due to need for searching and required conversion this change makes
	processing faster.

	stomp: resetting outgoing buffer
	When we loose connectivity there can be still heartbeat frame in
	outgoing buffer and we need to be sure that we clear the buffer before
	responding with CONNECTED frame.

	stomp: Stomp encoder\decoder improvements
	We need to make sure to escape special characters during encoding and
	decoding. During encoding, use more efficient string join instead of
	string concatenation due to its speed.

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

	dump-volume-chains: Nicer output when no volumes found
	When no volumes found, print clear message instead of title and no
	output:

	    $ vdsm-tool dump-volume-chains ce362d37-ba2f-47c4-b46c-d71ee24019a8

	             (no images found)

2015-04-18  Francesco Romani  <fromani@redhat.com>

	vm: hyperv: switch to 'hypervclock' clock source
	Move to 'hypervclock' clock source, as it is recommended by
	the 'HyperV enlightenment' enhancement patchset.

	A noteworthy side effect of this change is the disappareance of the
	'track=guest' attribute for clock source for windows guests, which
	we introduced in commit f59abc1c321fa0f.

	The reason we added 'track=guest' back in time are outlined here:
	  http://libvirt.org/formatdomain.html#elementsTime

	However, that was done only for hyperv guests, under the assumption that
	1. only windowses benefit from this setting
	   https://support.microsoft.com/en-us/kb/2687252
	2. other OSes either didn't care or didn't gain anything.

	Now we want to switch from name=rtc to name=hypervclock, but we run this
	issue (quoting libvirt docs):

	  track
	    The track attribute specifies what the timer tracks, and
	    can be "boot", "guest", or "wall". Only valid for
	    name="rtc" or name="platform".

	Hence, if we move from "rtc" to "hypervclock", the "track=guest"
	attribute must go away, only because hypervclock doesn't support it.

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

2015-04-17  pkliczewski  <piotr.kliczewski@gmail.com>

	protocoldetecor: fd leak fix
	When running networkTests (xmlrpc) we noticed that each connection to
	vdsm leaks a fd. After the investigation we noticed that even that
	SSLSocket is closed the fd was not released. M2C releases fd by calling
	raw socket.close() in __del__ method. This means that there is somewhere
	referece kept to a socket object. After further investigation it was
	clear that socket reference is hold by Dispatcher object.

	There was an issue when we create new dispatcher and not pass map param
	socket_map is used instead. socket_map is never updated after initial
	creating which creates ref leak.

	betterAsyncore: remove method binding
	We want to restore mechanism that was used in 3.5 and not use method
	binding. Here are the reasons why we want to revert functionality:
	- The code is easier to understand and maintain
	- We need to implement method unbinding so this code is more concise
	- We had no issues with this code being used in 3.5

2015-04-17  Francesco Romani  <fromani@redhat.com>

	virt: sampling: add StatsCache docs and tests
	Improve commit 3bc0043822 adding tests and
	docstrings for StatsCache.

2015-04-17  Martin Polednik  <mpolednik@redhat.com>

	functional tests: add basic device verification
	With upcoming refactoring in getUnderlying* family of methods, we need
	to add atleast some test coverage. This test aims to be very wide,
	veryfing that the device parsing logic works at the highest level.

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

	tests: Mark time sensitive tests as @stresstest
	Piotr reported that the xxx_many tests were failing on slow machines.

	The xxx_many tests are sentivie to timing may fail on slower machines.
	They are not meant for runing on overloaded CI slaves.

	These tests are marked now as @stresstest. To run them you should use:

	    ./run_tests_local.sh --enable-stress-test

	Or:

	    make check-all

	virt: Continue to collect extend candidates after errors
	Previously, if we had one bad drive that libvirt fail to get watermarks,
	we would stop collecting extend candidates and log a traceback. This
	would cause a vm to pause, since we may never extend any of its disks,
	and the log would be littered with unhelpful tracebacks.

	Now we log an error in such case and continue to collect extend
	candidates, so error with one disk cannot effect other disks.

	virt: Fix handling of improbable allocation size
	If qemu reports improbable allocation value, we pause the vm to prevent
	corruption. Unfortunately, just before pausing the vm, we attempt to log
	an error with list of arguments instead of a string, and crash before
	pausing the vm:

	    TypeError: not all arguments converted during string formatting

	Now we log the error message and pause the vm.

	virt: Use Drive.getNextVolumeSize() for validation
	When validating drive watermarks in Vm._shouldExtendVolume(), we were
	not using Drive.getNextVolumeSize() since it used to rely on cached
	values of drive size, which may lead to vm being paused if cached values
	are stale.

	The code used special calculation bypassing Drive.volExtensionChunk
	property, which was considering drive replication status.  Now that
	Drive.getNextVolumeSize() is not using cached values, there is no
	reason for special calculation.

	virt: Remove redundant bool()
	Comparisons yield boolean values, there is no need for creating a new
	bool() from the result.

	See https://docs.python.org/2/reference/expressions.html#not-in

	virt: Improve volume extension info readability
	Format dict using one line per item and sort by the key. This makes the
	code easier to read and modify.

	virt: Extract Vm.__extendDriveReplica method
	Vm.extendDriveVolume() was either calling Vm.__extendDriveVolume, or
	implementing extending of drive replica. This is mixing different level of
	abstraction in one method which makes the code harder to understand and
	lead to code duplication.

	Now replica extension is handled in new Vm.__extendDriveReplica()
	method, simplifying Vm.extendDriveVolume().

	Before we use getattr(drive, "DiskReplicate", None) to check if drive
	has an attribute. Now using hasattr to make the intent of the code more
	clear.

	virt: Introduce Vm._setVolumeSize helper
	We have two place invoking self.cif.irs.setVolumeSize(), ignoring errors
	without documenting the reason. This patch adds Vm._setVolumeSize()
	helper that raises on errors, eliminating such code.

	We use setVolumeSize() when extending a disk. First we set volume size to
	0, marking it as in transaction. Then we update the guest about the new
	size via libvirt, and finally we store the new size in the volume.

	In the first setVolumeSize() call setting volume size to 0, it is clear
	that we want to fail the operation, so using _setVolumeSize() the
	request fails without additional error handling code.

	The second setVolumeSize() call updating the volume to the actual new
	size is done after the vm was updated and can use the new device, so it
	is not clear if we should fail the request or just warn about the
	incorrect meta data in the volume (size=0). This patches changes the
	behavior to fail the request in this case.

	vm: Introduce Vm._getVolumeSize() method
	There are too many places calling self.cif.irs.getVolumeSize(), then
	checking for nonzero res["status"]["code"], raising random exception,
	or converting returned strings to integer.

	This patch introduce a new method that:

	- Raise StorageUnavailableError on nonzero status code, so we don't have
	  to check for errors when we cannot handle them, and we cannot forget.

	- Return VolumeSize namedtuple with integer values, making the calling
	  code less error prone and nicer to work with.

	This change reveal one call site that was not checking for
	getVolumeSize() errors, and could fail with KeyError. Now it will fail
	with StorageUnavailableError which is more helpful for debugging.

	virt: Unify Drive size units
	Previously we used to keep some Drive size values in bytes and some in
	megabytes, and return next and max volume size in megabytes. We had lot
	of code converting sizes from megabytes to bytes. This mess makes
	the code harder to understand and error prone.

	Now we keep all size values in bytes and return next volume size in
	bytes, simplifying lot of code.

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

	migration: change destServer attribute to private

2015-04-15  Francesco Romani  <fromani@redhat.com>

	vm: hyperv: support more libvirt optimizations
	This patch adds support for more of the libvirt optimizations for HyperV,
	the 'vapic' and 'spinlock' settings.

	The optimizations are both for stability and for performance, and they
	are added on top of the existing basic HyperV support.

	The parameters are hardcoded and not externally configurable because
	they are not supposed to be changed very often, if changed at all;
	moreover, this patch already implements the optimal recommended settings.

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

2015-04-15  Shahar Havivi  <shaharh@redhat.com>

	Fix MigrationStatus schema
	MigrationStatus json schema is broken

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

	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  Allon Mureinik  <amureini@redhat.com>

	spec: clean up selinux requirement
	While spec files support the syntax of
	package_name >= package_name-version, it's ugly and doesn't follow
	the standards of vdsm's spec file.

	This patch cleans up the bad form used for selinux's requirement.

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

	shell_helper: remove unneeded build statements

2015-04-14  Ondřej Svoboda  <osvoboda@redhat.com>

	vdsm_hooks: always build vmfex_dev (regardless of --enable-hooks)
	This makes the hook shipped by default with VDSM rpm.

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

	storage: introducing vdsm-tool dump-volume-chains
	This command queries VDSM about the existing structure of image
	volumes and prints them in an ordered fashion with additional
	info per volume.

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

	stomp: make sure we use the minimum space for Frame instance variables
	We are expecting to process large number of frames so we want to make
	sure we use minimum space for instance variables.

2015-04-10  Shahar Havivi  <shaharh@redhat.com>

	v2v: Introduce OutputParser
	OutputParser is a parser for virt-v2v process output.
	It analyze the phases of copying disk and each copy disk progress
	and generate stream of parsing events.

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

	vdscli: make _ADDRESS and _PORT public

2015-04-10  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Configurable actions on console disconnect
	We're now introducing configurable actions to be executed on spice disconnect.
	The action is defined on ticket creation. The actions can be any of:
	- None (No action taken)
	- Screen Lock (Lock screen executed by the guest agent)
	- Logout (Logout of the current session - Executed by the guest agent)
	- Reboot (Reboot the virtual machine)
	- Shutdown (Shutdown the virtual machine)

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

2015-04-10  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
	Bug-Url: https://bugzilla.redhat.com/1184380
	Bug-Url: https://bugzilla.redhat.com/1184376

2015-04-10  Ondřej Svoboda  <osvoboda@redhat.com>

	vmfex_dev hook: also uninstall from before_device_migrate_destination

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

	build: Update required device-mapper-multipath version
	Changed vdsm spec file to require device-mapper-multipath version that solves
	segfault in multipath.

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

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

	vdsm-tool: Sort imports

2015-04-08  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.

	Relates-To: https://bugzilla.redhat.com/1205877

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/1158563
	Bug-Url: https://bugzilla.redhat.com/1176673

	vdsm-tool: Remove unneeded imp import
	In commit 07beba9e139 (Hack vdsm >=4.16.x for vdsm-tool import issues
	during upgrade) an unneeded imp import was added. This patch removes the
	additional imp import as imp is already used in this module.

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

	network: Force blocking DHCP when restoring networks
	This is done right before restoring the network configuration, and
	before calling setupNetworks. It forces the configurator to wait for
	an IP address to be configured on the devices before restoration is
	completed. This prevents VDSM from possibly report missing IP
	addresses on interfaces that had been restored right before it was
	started.

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

	betterAsyncore: Fix event loop data stealing [2/2]
	In this patch we override asyncore.dispatcher.del_channel() and set
	dispatcher.connected to False after a dispather was removed from the
	event loop. This breaks out of the pending data read loop in
	Dispatcher.handle_read_event().

	betterAsyncore: Fix event loop data stealing [1/2]
	When a dispatcher is removed from the event loop from a handle_read()
	handler, and the underlying socket has pending data, the event loop
	could steal data from the socket, invoking handle_read() multiple times,
	detecting multiple connections for one connection.

	In this patch we add little sleep before handling the request in the
	protocol detectors, revealing this issue in the protocolDetector tests.

	Following is protocol detector log from failing
	test_detect_uppercase(use_ssl=True), sending one request:

	-------------------- >> begin captured logging << --------------------
	vds.MultiProtocolAcceptor: INFO: Listening at 127.0.0.1:39304
	vds.MultiProtocolAcceptor: DEBUG: Adding detector <protocoldetectorTests.Echo object at 0x29878d0>
	vds.MultiProtocolAcceptor: DEBUG: Adding detector <protocoldetectorTests.Uppercase object at 0x2987690>
	vds.MultiProtocolAcceptor: DEBUG: Running
	ProtocolDetector.AcceptorImpl: INFO: Accepting connection from 127.0.0.1:32855
	ProtocolDetector.Detector: DEBUG: Using required_size=9
	ProtocolDetector.Detector: INFO: Detected protocol uppercase from 127.0.0.1:32855
	ProtocolDetector.Detector: INFO: Detected protocol uppercase from 127.0.0.1:32855
	ProtocolDetector.Detector: INFO: Detected protocol uppercase from 127.0.0.1:32855
	ProtocolDetector.Detector: INFO: Detected protocol uppercase from 127.0.0.1:32855
	ProtocolDetector.Detector: WARNING: Unrecognized protocol: ' testing '
	--------------------- >> end captured logging << ---------------------

	Note that same connection from 127.0.0.1:32855 was detected 5 times! In the
	application, this would cause one connection to be handled by multiple threads
	in xmlrpc or jsonrpc servers.

	The last event show data stealing - "uppercase: " was stolen from the
	socket buffer by the event loop.

2015-04-07  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/1197292

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

	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 becuase we require also libvirt-daemon-xxx
	packages. Now we require libvirt-daemon like in rhel >= 7.

	Relates-To: https://bugzilla.redhat.com/1158563
	Relates-To: https://bugzilla.redhat.com/1176673
	Relates-To: https://bugzilla.redhat.com/1200718

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

	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=1200467

	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=1200467

2015-04-01  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

2015-03-31  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=1206722

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

	virt: sampling: add StatsCache
	StatsCache is a small helper class which will be used
	by the bulk stats sampling code to properly deal with
	blocked calls, to avoid overwriting fresh samples
	with stale one and to easiliy retrieve the per-vm
	stats from the bulk stats.

	virt: stats: split up stats production
	VDSM needs to translate the stats it gathered -mostly
	from libvirt- in the format established in the
	VDSM schema, which is the format the consumers
	of its API (read: Engine) expect.

	To do so, we used to have a bunch of methods in
	the VmStatsThread class. But such methods actually
	used few if any at all of the class state, so
	it is better to make them simple functions.

	This is what this patch does.

2015-03-31  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.

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

	numa: unbreak tests after move to periodic
	Due to a rebase mistake, this hunk which
	fixes the tests after the move to periodic operations,
	was included into the wrong change.

	This patch extracts to unbreak current master.

	virt: periodic: port updateNumaInfo
	Move the NUMA info gathering from sampling thread
	to periodic operations.

	No intended changes in output.

	virt: numa: move activation check in the caller
	The existing NUMA position reporting code is activated
	only if a VM is configured with 'virtual NUMA', referred
	in the code as 'guest Numa Node'.
	If this configuration is absent, the NUMA sampling just
	does nothing.

	Besides naming, this makes the code a bit harder to read
	and to reason about, since often readers assume NUMA positioning
	reporting always executed.

	To make this easier to read, and to make room for future patches
	which want to move NUMA sampling in periodic operations,
	we move this check into the calling site(s), with no other intended
	changes in the flow of code.

	virt: periodic: port updateVolume
	During the lifetime of a VM, its volumes need
	to be updated. This is a task carried by the
	'updateVolumes' operation, which was formerly
	piggybacked in the sampling threads.

	But actually 'updateVolumes' is a perfect candidate
	to motivy the need of a 'periodic operations' infrastructure
	to run bookkeeping tasks of the VMs.

	So, this patch bootstraps the usage of the newly
	added 'periodic' infrastructure by moving 'updateVolumes'
	away from sampling threads, and making it a periodic operation.

	virt: periodic: dispatch work to VMs
	This patch adds a class to demultiplex an Operation on per-VM
	operation. This is useful to minimize interference
	among VMs in case of one operation gets stuck.

	Alternative approaches have veen considered, but them
	did not provided clear advantages to this approach:

	- use per-VM operations, like it was done in the earliest
	scalable_sampling concepts. This guarantees the highest
	VM safety, as no more than one sampling operation can
	be done to a given VM in a given time instant, but fits
	poorly with libvirt bulk stats API, and add pressure to
	Scheduler and Executor (OTOH, we have object living longer).

	- move demultiplexing in Operation class this way Operation
	becomes less generic, and more tied to VM.

	virt: introduce support for periodic operations
	In order to keep track of the state of a VM,
	the virt code needs to perform periodic operations,
	most notably statistics sampling and bookkeeping.
	Currently, these operation are piggybacked
	in the sampling threads, just because this is a simple
	and cheap way to run some code asynchronously
	and periodically.

	Besides overloading 'sampling' with bookkeeping,
	these operation can't fit nicely in the bulk stats
	approach that we want to adopt to improve scalability.

	What we really need is a reliable method to run async,
	periodically operations on VM instances.
	Later, we can fit sampling in this framework
	in a nicer and cleaner way.

	As part of the sampling improvement effort, we added
	two generic utilities which provide great buliding
	blocks to create a periodic operations infrastructure,
	'executor' and 'scheduler'.

	So, this patch lays down the basic infrastructure
	to run async/periodic VM-related operations, and start
	moving bookkeeping operations to them.

2015-03-31  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/1205877

	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

	Relates-To: https://bugzilla.redhat.com/1205877

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

	spice: allow to disable the agent file transfer
	Spice has agent based file transfer support.
	This option can be disabled in QEMU, and  libvirt has support
	to pass this flag to the underlying QEMU.

	This patch expose this capability in VDSM, in the VM definition,
	implementing the VDSM part of bz983019.
	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/983019

	packaging: bump libvirt requirements
	With RHEL/Centos 7.1 out of the door, it is
	time to bump our libvirt requirements.

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

	stomp: use the atomic dict.setdefault() instead for check and set
	This is faster and simpler.

	jsonrpc: Properly log and return an error if the threadFactory fails
	Otherwise if scheduling fails there will be a thread error and no
	messages will be handled while VDSM still runs.

	jsonrpc: Fix callMethod in JsonRpcClient
	In order to call a verb using JsonRpcClient we have several methods that
	we can use. We can call method asynchronosuly (call_async) or
	synchronously (call). callMethod help with building JsonRpcRequest and
	raises an Error in case of any issues occuring on the other side.
	callMethod was using call_batch which is not needed so we have decided
	to merge both methods and get rid of call_batch as well as fix issues
	around single vs batch.

	jsonrpc: Properly initialize RuntimeError for JsonRpcError
	Without this, the error doesn't have a proper message when printed\logged

	asyncore: heartbeat fix
	When getting new timeout for asyncore loop we get None several times in
	a row we are forced to wait for dispatcher event. We expect to process
	heartbeat events so we need to set timeout to asyncore default value
	which is 30 seconds.

2015-03-30  Darshan N  <dnarayan@redhat.com>

	gluster: Fix arguments name for geo-replication status verb.
	Fixed arguments name in apiwrapper and vdsmapi-gluster-schema
	for geo-replication status verb.

2015-03-28  Nir Soffer  <nsoffer@redhat.com>

	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.

	Relates-To: https://bugzilla.redhat.com/1205877

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

	no need to call setupNetworks with empty argument during network restoration
	It is not smart to trust setupNetwork implementation so that it is really a
	no-op when called with empty input.

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

	tests: add negative tests for setNumberOfVcpus
	Failures are more cumbersome to tests, due to need
	to inject errors or to cause them.
	Add tests to do basic sanity tests, and to help
	verification of the upcoming response.error() transition
	patches.

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

	net: sourceroute: demote error log message
	DHCP server may provide vdsm with partial IP information (one of IPADDR,
	NETMASK or GATEWAY is missing). This is not Vdsm's fault, and should not
	marked as an error.

2015-03-27  Martin Polednik  <mpolednik@redhat.com>

	ppc64le: add fake kvm support
	Fake kvm requires correct cpu model and flags for ppc64le. This patch
	adds ppc64le detection for this in caps.

2015-03-27  Nir Soffer  <nsoffer@redhat.com>

	utils: Add round() helper
	We have the same rounding code all over, which does not make the code
	more fun to work with. This patch adds utils.round() utility to
	eliminate this duplication.

2015-03-27  Shmuel Melamud  <smelamud@redhat.com>

	virt: configurable sampling interval for HostStatsThread
	Sampling interval for HostStatsThread was hardcoded and set to 2s which
	is too short.

	Added new configuration option host_sample_stats_interval for this
	purposes. Sampling interval is set to 15s by default.

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

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

	clientIF: stop VmStatsThread on shutdown
	Explicitily stop VmStatsThreads when VDSM is shutting down.
	This patch makes the flow faster and safer when libvirtd crashes
	Without this patch, the VmStatsThread exit on shutdown because
	they find Vm._dom equals None, and they exit with a stacktrace
	as soon as they woke up for their polling.

	With this patch, we make things explicit.

	Relates-To: https://bugzilla.redhat.com/1203210

	vm: add stopVmStats method
	Add a method to allow clients of Vm class to shutdown
	the VmStatsThread.

	virt: make _initVmStats public
	A followup patch want to add an explicit stopVmStats method.
	Currently, we have a private helper to start the Vm Stats Thread:
	_initVmStats.

	It could be surprising to have a private method to start and
	a public one to stop, so this patch renames _initVmStats into
	startVmStats to make the flows symmetric, with no further
	changes in the code flow.

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

	virt: keep libvirt's <driver> element
	Most commonly, vdsm does not supply the <driver> element to libvirt, so
	that libvirt is able to apply its logic for setting the correct one
	(qemu/vhost).

	Once libvirt has chosen the driver, it must not change. When link state
	is modified, the chosen driver must be stated explicitly.

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

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

	virt: ExpiringCache: implement __nonzero__
	Truthy test is now required by bulk stats sampling code.

2015-03-26  Martin Polednik  <mpolednik@redhat.com>

	ppc64le: Add default device configs for this arch
	PPC64le is very similar in terms of what we do in vdsm to PPC64. This
	patch updates branches to consider default devices and busses.

	ppc64le: virt: support for running ppc64le systems
	Our architecture check lacked ppc64le. This patch fixes it by adding it
	as a supported architecture and adding default machine type for it.

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

	vm: method to check if dom is ready for commands
	add a method to VM object to check if the underlying libvirt
	domain is ready to accpet commands.

	Here we want to easily rule out known-bad situations rather
	than look for known-good situations.

2015-03-26  Darshan N  <dnarayan@redhat.com>

	gluster: modified parsing logic in snapshot config list.
	Modified snapshot config parsing logic to return only
	effective-hard-limit as snapmax-hard-limit in volume
	config. As the remaining two values are not relevant.

2015-03-26  darshan n  <dnarayan@redhat.com>

	gluster: get rdma port number as part of volume status.
	In glusterfs volume status command is modified to
	retrive rdma port number along with tcp port. This
	patch adds parsing of the newly added rdma port
	number. The modified gluster volume status verb
	returns the rdma port as follows.

	{'name': NAME,
	   'bricks': [{'brick': BRICK,
	               'hostuuid': UUID,
	               'port': PORT,
	               'rdma_port': RDMA_PORT  #newly added
	               'status': STATUS,
	               'pid': PID}, ...],
	          'nfs': [{'hostname': HOST,
	                   'hostuuid': UUID,
	                   'port': PORT,
	                   'rdma_port': RDMA_PORT  #newly added
	                   'status': STATUS,
	                   'pid': PID}, ...],
	          'shd: [{'hostname': HOST,
	                  'hostuuid': UUID,
	                  'status': STATUS,
	                  'pid': PID}, ...]}

2015-03-26  Darshan N  <dnarayan@redhat.com>

	gluster: Modified geo-rep verbs to include newly added "user"
	In this patch all the geo-replication related verbs have
	been modified to include user name as an argument. This
	is need to execute all gluster cli commands, when geo-
	replication session is set with a non-root user. This
	patch also modifies geo-rep list and status verbs to
	list the remote user name which was newly added in gluster
	cli.

2015-03-26  darshan n  <dnarayan@redhat.com>

	gluster: Patch adds geo-replication create and delete verbs.
	This patch adds the feature geo-replication session create and delete.
	It exposes two verbs:
	*glusterVolumeGeoRepSessionCreate- This verb sets up session to remote
	volume of remote gluster cluster for given volume name.
	*glusterVolumeGeoRepSessionDelete- This verb deletes previously
	created session.

2015-03-25  Ala Hino  <ahino@redhat.com>

	misc: Support zero-time in getReadDelay()
	We found out that dd returned the following output:

	    "517 bytes (517 B) copied, 0 s, Infinity B/s"

	The root cause for getting zero/Infinity stats in dd is erratic
	behavior of clock_gettime. Testing in the field shows that
	clock_gettime() using CLOCK_MONOTONIC may return the same value
	for duration of up to 11 milliseconds.

	We ran a tool sampling current time using clock_gettime(), and
	recording the uniqe readings and the difference between the
	previous and the current sample:

	    #samples  difference
	     177      0.000000001
	     175      0.000999812
	    9462      0.000999813
	     183      0.000999814
	       1      0.001999626
	       1      0.010997944
	       1      0.011997756

	In dd, if the start time is equal to the end time, dd returns
	"0 s, Infinity B/s"

	misc.readpeed() fails to parse that output. This causes the domain
	monitor to fail and the domain to move into invalid state. This failure
	could cause the host to become non-operational, leading to migration
	storm while storage is actually valid.

	misc.readpeed() changed to parse the returned output.

	Engine tested and is not affected by this change.

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

2015-03-25  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/1187244

2015-03-25  Darshan N  <dnarayan@redhat.com>

	gluster: Adds new verb to setup geo-rep mount broker.
	This patch adds a new verb to setup mount broker for
	gluster geo-replication:

	geoRepMountBrokerSetup: This verb takes remote user name,
	group name and remote volume name as argument. and
	sets the mount broker need for non-root geo-replication.

	This patch adds a dependency on glusterfs-3.7dev. This
	version of glusterfs can be found at:
	http://download.gluster.org/pub/gluster/glusterfs/nightly/glusterfs/

2015-03-25  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	spec: revert build dependency on non-existing blivet
	commit 1a54863 added a dependency on blivet that is not
	available on el7 and f20. Reverting this to fix CI issues.

2015-03-25  Martin Polednik  <mpolednik@redhat.com>

	vmdevices: implement getUnderlyingRngDeviceInfo
	RNG device lacked this function, causing it to be inconsistent when
	analyzing device attributes. Creating it corrects this inconsistence
	and adds alias and address field parsing which is also used for
	persistent device addressing.

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

	schema: temporarily skip getMigrationStatus
	Commit b8df0ff261c unveiled an existing inconsistency
	betwen the return value of VM.getMigrationStatus() API
	and the schema.
	As result, schema validation tests, thus master,
	are broken.

	Investigation on Engine side suggests that Engine
	does not really cares about new keys, so we
	have the chance to properly fix, cleanup and modernize
	this verb with no hurry.

	However, to quickly unbreak master, this patch
	just skips the schema validation of the getMigrationStatus
	verb, until it is fully worked on.

2015-03-25  Darshan N  <dnarayan@redhat.com>

	gluster: Adds new verbs to setup gluster geo-replication.
	This patch adds two new verbs to setup gluster
	geo-replication:

	geoRepKeysGet: This verb executes the gsec create
	command and then reads the collected public keys generated
	by gsec create command. It returns the collected public
	key as a list of strings.

	geoReoKeysUpdate: This verb takes user name and
	public key collection as argument. It appends the
	public keys to the user's authorized_keys file.

2015-03-24  Shubhendu Tripathi  <shtripat@redhat.com>

	gluster: Corrected return value of gluster volume snapshot create
	Earlier Gluster was returning only UUID of the created volume
	snapshot. Recently it started returning created snapshot name
	as well with appended timestamp.
	Corrected the VDSM verb glusterVolumeSnapshotCreate to return
	both UUID and snapshot name.

2015-03-24  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/1177651

2015-03-24  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-24  Yeela Kaplan  <ykaplan@redhat.com>

	spec: configure multipath on upgrade
	Use vdsm-tool to configure vdsm on upgrade -
	post uninstall.

	If we don't vdsm fails to start automatically
	after start.

2015-03-24  Nir Soffer  <nsoffer@redhat.com>

	lib: Simplify and generalize concurrent.tmap()
	The previous version of tmap had few issues:

	- Used non-daemon threads, so the caller application may be blocked on
	  shutdown if a mapped function got stuck.
	- Assumed that mapped functions do not raise, limiting the usefulness of
	  this utility.
	- Logged exceptions for functions that do raise - libraries should not
	  log behind you back.
	- Dropped all errors but the last one, so the caller could not handle
	  them.
	- Assumed that all errors are equal, and raised the last error.

	This version fixes these issues by making tmap() simpler and more
	generic. The function is mapped to the values, and the result is a 2
	namedtuple (succeeded, value), holding either the result of the
	function, or the exception raised by the function.

	The caller is responsible now for handling the errors, and logging them
	if needed.

	lib: Add vdsm.concurrent library
	Move misc.tmap to new module. We will probably need to move some other
	utilities to the new module later.  The tmap utility will be used to
	simplify fc-scan and multipath-resize helpers.

	tmap() was moved as is from misc for easier review. The next patch will
	clean it up a little bit. The tests were rewritten in a simpler way.

2015-03-24  Vitor de Lima  <vdelima@redhat.com>

	caps: Do not use lscpu on ppc64
	Recent RHEL for power and powerKVM correctly show the
	topology of ppc64 hosts, so it is not required the use of 'lscpu'
	to obtain this information.

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

2015-03-24  Martin Polednik  <mpolednik@redhat.com>

	ppc64le: fix cpuinfo caps parsing
	Our capability parsing for CpuInfo ignored ppc64le platform. This patch
	adds ppc64le as a POWER platform and fixes raised RuntimeErrors.

	ppc64le: add as architecture
	RHEL 7.1 for PPC is uses architecture name ppc64le. It is therefore
	needed to support this architecture in specfile.

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

	network: tests: add error code checking

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

	asyncore: adding __impl attribute

2015-03-23  Nir Soffer  <nsoffer@redhat.com>

	contrib: Add logdb tool for importing logs to a database
	Using a database we have more power to dissect big amount of logs and
	extract useful statistics.

	Examples:

	  Breakdown of vgs calls every 10 minutes interval:

	    $ logdb vdsm-all.db vdsm.log.*
	    $ sqlite3 vdsm-all.db "
	        select
	          datetime(strftime('%s',timestamp)/600*600,'unixepoch')
	          as interval,count()
	        from messages
	        where
	            func = 'cmd' and
	            text glob '*/sbin/lvm vgs*' and
	            timestamp > '2015-03-11 05:30:00'
	        group by interval
	        "
	    2015-03-11 05:30:00|2
	    2015-03-11 05:40:00|5
	    2015-03-11 05:50:00|8
	    2015-03-11 06:00:00|16
	    2015-03-11 06:10:00|2
	    2015-03-11 06:20:00|2
	    2015-03-11 06:30:00|2
	    2015-03-11 06:40:00|2
	    2015-03-11 06:50:00|2

	  Show vm xml for vms started on 2015-03-11:

	    $ sqlite3 vdsm-all.db "
	        select timestamp,text from messages
	        where
	            text glob '*<domain *' and
	            date(timestamp) = '2015-03-11'
	        "

2015-03-23  Shahar Havivi  <shaharh@redhat.com>

	RFE: Report downtime for each live migration
	Added new value to migrateStatus verb: downtime.
	downtime reports the actual time that the VM was offline (ie not
	available for the user).

2015-03-23  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/1187244

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

	virt: remove unwanted 'response' aliasing
	In quite a few place we used the name 'response'
	for variables holding the result of an API call.

	After the introduction of the 'response' module,
	this created unwanted aliasing, with room for subtle
	annoying bugs like

	AttributeError: 'dict' object has no attribute 'success'

	With some pyflakes, this may also cause the error

	vm.py:1234: redefinition of unused 'response' from line 41

	thus breaking the build.

	To fix this, we look for variables which used the 'response'
	name, and we just rename them to 'result', without changing
	the program flow.

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

	vm: use response.error() with custom message
	Use the newly introduced response.error() in
	Vm flows when we need to use a custom
	error message.

	lib: introduce the 'response' module
	It happens sometimes that it is needed to overwrite
	the predefined error message with something more
	specific to the circumstances.

	In general, the handling of response code
	feels clumsier than it should.

	To improve things, we bootstrap the little helper
	'response' module, starting with a function
	which allow to override the error message.

2015-03-21  Martin Polednik  <mpolednik@redhat.com>

	hostdev: remove detection of device vmId
	vmId detection only reported back what engine sent, making it useless.
	Since no detection for oVirt-external VMs was/is present, we can drop
	current state of detection and possibly reintroduce it later if needed.

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

	tests: making as broken

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

	profiling: import yappi outside lock
	Importing modules with locks held is dangerous and
	may lead to deadlock.
	Better to move the import of the yappi module outside the lock.

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

	jsonrpc: add ability to get dictionary directly from JsonRpcRequest

	jsonrpc: Remove JsonRpcClientPool
	It was created before the reactor was able to manage
	client connections as well.

	This makes using the JsonRpcClient much simpler.

	Have the protocol detector use the Reactor
	The current implementation duplicates a lot of the code in the reactor.
	This removes a lot of the duplicate code and prepares the ground for a
	single reactor for VDSM.

	asyncore: Move ssl buffer handling to dispatcher
	This is boilerplate code that all dispatcher implementations must do to
	prevent a deadlock in the loop. Putting it in the dispatcher makes the
	problem transparent to the implementation.

	asyncore: dynamic tick support
	Currently the reactor uses a fixed tick of 0.5 seconds. This feature
	changes it so that dispatchers can request a different tick time.

	The minimal tick from all requested tick intervals will be used each
	iteration.

2015-03-20  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add after_hostdev_list_by_caps hooking point
	In order to allow oVirt deployment maintainers some customization over
	which host devices are hidden to oVirt or do modification/quirks for
	specific hardware, new hooking point, after_hostdev_list_by_caps is
	introduced. This hooking point is another _json_hook, meaning that
	it receives device json representation and is free to modify it.

	This hook needs to be used with caution: modifying the device forest
	(multiple trees) may lead to engine's inability to parse it and use
	it correctly. Safe modification are removing leaf nodes and whole
	trees. Although engine may not be able to parse broken tree correctly,
	it should not explode or cause inconsistent database state.

2015-03-20  Candace Sheremeta  <cshereme@redhat.com>

	vdsm: added documentation for downloadImage method
	Added documentation for downloadImage in vdsClient.
	Gave a clearer description of what the methodArgs
	parameter is and how it should be used. Formatted
	documentation according to standard used in other
	methods in vdsClient. See comments for copy of
	output.

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

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

	no need for quotes in supervdsmd service file
	systemd interprets them as part of the string

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

	spec: temporarily revert build dependency on non-existing blivet
	commit 1a54863 added a dependency on blivet that is not yet available on
	el7 and f20. Instead of completely reverting it, or waiting for a proper
	support for older blivet (https://gerrit.ovirt.org/38942/) this patch
	drops the build requirement, which is to be enforced during install time
	only of vdsm-gluster.

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

	vm: do not poll for scheduler parameters
	The scheduler parameters aren't actually stats, but
	configuration data[1], which will not change unless
	someone asks libvirt to do so.

	VDSM is supposed to be the lone controller of libvirt,
	so it is safe to assume (as we already do in a quite
	lot of flows) that nothing will change behind his back.

	So, stop to poll for scheduler parameters, and store
	the change instead.

	A future patch will add support for tune events, in
	the (unlikely) case someone else indeed start
	to mess around with libvirt bypassing VDSM.

	+++

	[1] as we were reminded into
	https://bugzilla.redhat.com/show_bug.cgi?id=1199002#c2

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

	jsonrpc: for checking the event use the class method
	instead of checking the event itself

2015-03-19  Idan Shaby  <ishaby@redhat.com>

	lvm: Raise an exception if missing physical volume
	Raise InaccessiblePhysDev when getting a pv which is not in lvm cache.

	When lvm.getPV() tries to get a cached PV object from its cache, there
	is a possibility that the physical volume is not in the cache anymore.
	In such a case, we should raise a relevant storage exception, instead of
	letting the code fail at a random point later when trying to access
	an attribute of None object.

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

2015-03-18  Timothy Asir  <tjeyasin@redhat.com>

	gluster: add createBrick verb
	This patch adds new verb createBrick which
	creates pvs from the given or list of available devices
	and create a thin lv out of it.

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

	sslTests: set timeout to transport through the ctor

	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

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

	vm: rename internal method for clarity
	_getVcpuLimit actually updates a field,
	so rename it accordingly.

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

	clusterLock: Make inquire retval consistent
	Callers of clusterLock.inquire() expect a tuple with two values to be
	returned.  The SANLock flavor gets this right but LocalLock returns a
	single None when the lock has no owners.  It should return None, None.

	storage: Stop using tempnam in deleteImage
	tempnam does not guarantee that the entire requested prefix is part of
	the resulting file name but we rely on the whole prefix to be present to
	identify the images for garbage collection.  tempnam is a bit of
	overkill anyway since we already have a guaranteed unique file name (the
	image UUID) and locking to prevent races.

2015-03-18  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  Shubhendu Tripathi  <shtripat@redhat.com>

	gluster: Fetch disperse count and redundacy count for volume
	Modified the verb glusterVolumeInfo to fetch disperse count
	and redundancy count also.

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

	vmTests: unbreak tests on el6
	test_change_cd_failure and testReadPauseCodeDomainPausedCrash have been
	failing since they used too-new libvirt error codes.

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

	asyncore: Move generic reactor functionality
	This is part of a larger move to unify the protocol detector and the
	stomp reactor.

	In this phase we move all the functionality not specific to stomp to a
	generic Reactor class.

	This patch still keeps the original StompReactor to minimize changes
	outside of yajsonrpc.

2015-03-16  Martin Perina  <mperina@redhat.com>

	host stats: Add number of in/out migrations
	Adds number of incoming and outgoing VM migrations into HostStats.

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

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

	sslutils: call named arguments with their name

2015-03-16  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.

2015-03-13  Candace Sheremeta  <cshereme@redhat.com>

	vdsm: marked headers as optional in ImageSharingMethodArgsHttp
	while inspecting the code to update documentation for
	downloadImage, I determined that the headers parameter
	is optional for ImageSharingMethodArgsHttp, but was
	not marked as such

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

	libvirt configurator: listen to ipv6, too
	By default, libvirtd listens to all local addresses, ipv4 and ipv6
	alike. Our setting of listen_addr="0.0.0.0" changes that to ipv4 only.

	This patch drops this config to enable future migration of ipv6.

2015-03-13  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/1183977

2015-03-13  Allon Mureinik  <amureini@redhat.com>

	image.py: reference exception as e when required

2015-03-13  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-13  Timothy Asir Jeyasingh  <tjeyasin@redhat.com>

	gluster: storage devices list provides device size in MiB
	Currently it returns unit size along with device size in
	KiB/MiB/GiB.. based on the size. This patch fixes this issue
	to return the values in MiB.

	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=1201263

2015-03-12  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/1188543

2015-03-12  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix creation and deletion of multiple udev rules
	When attaching multiple devices from the same group, each of the
	devices needs to be detached and then later reattached to the host.
	The udev rule creation is hooked into this routine to give qemu access to
	the /dev/vfio endpoint. This patch corrects behaviour of udev if the file
	already exists or does not exist due to creation or deletion of VM.

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

2015-03-12  Dima Kuznetsov  <dkuznets@redhat.com>

	caps: Fix access to /sys/class/iommu
	This patch fixes OSError during getVdsCapabilities introduced in
	https://gerrit.ovirt.org/#/c/37701/

	On some systems (such as el6), iommu is not present, causing 
	getVdsCapabilities to not return properly. This patch can be reverted when
	we no longer want to be able to run on el6.

2015-03-11  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Log the the duration time of the migration
	For post mortem analysis in regards to migration times, this patchset
	will additionally log the time the successful migration took.
	This will help us in future to determine how long migrations took on a
	certain system.

2015-03-11  Martin Polednik  <mpolednik@redhat.com>

	hostdev: display hostdev passthrough support in caps
	Passthrough support can be  read via sysfs /sys/class/iommu, where
	support would be indicated by presence of dma remapping indicator -
	dmarX (where X >= 0). This patch exposes this fact in caps via
	hostdevPassthrough key.

	Hostdev support is indicated by 2 settings - Intel VT-d or AMD-Vi
	and kernel iommu support, both of these are handled by this
	implementation.

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

	clientIF: add method to get all registered VMs
	add a new method to extract all the registered VMs.
	Future patches need to iterate on a snapshot
	of vmContainer.

2015-03-10  Martin Sivak  <msivak@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:

	# time for x in $(seq 100); do
	#   vdsClient -s 0 getAllVmStats >/dev/null;
	# done

	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=1182094

2015-03-10  Martin Polednik  <mpolednik@redhat.com>

	hostdev: remove rom, file and bar settings from API
	Those settings require a specific file to be present on every host
	that would use these parameters. This patch removes their exposure
	because no such mechanism was introduced.

2015-03-10  Ondřej Svoboda  <osvoboda@redhat.com>

	network: order 'ipv4' before 'ipv6' and rename 'blocking' to 'blockingdhcp'

	models: remove IpConfig's namedtuple (NetDevice.ipConfig)

	iproute2, pyroute_two: use IpConfig directly (NetDevice.ipconfig)
	NetDevice.ip now always contains an IpConfig so we can access IpConfig's
	attributes without the diversion through IpConfig's namedtuple.

	ifcfg: stop using IpConfig's namedtuple altogether

	ifcfg: use IpConfig in _createConfFile instead of its namedtuple
	Note that _getIfaceConfValues() now returns an IpConfig object (updated with
	information from an ifcfg file) instead of an IpConfig.ipConfig namedtuple.

	ifcfg: stop reading from NetDevice.ipConfig namedtuple in _getIfaceConfValues
	_getIfaceConfValues updates a copy of a NetDevice's IP configuration before
	actually configuring it. The changes must not be brought back to the original
	IpConfig so deep copy is performed.

	The namedtuple is still returned by _getIfaceConfValues (for now) but in
	the next patch the copied IpConfig will be returned directly.

	ipconfig.bootproto is not compared against None for compatibility reasons
	(it could contain a zero-length string, for instance). It will be converted
	to a boolean 'dhcpv4' soon.

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

	stomp: use monotonic timer instead of clock

	asyncore: Move AsyncoreEvent to betterAsyncore

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

	vm: stats: cache metadata value
	vcpuLimit can be set only by Engine (or anyone else
	impersonating it using the UpdateVmPolicy API).

	It seems a little wasteful to poll, albeit infrequently
	(every 15s), for changes in a value which we know
	when and how it will change.

	Instead of doing so, this patch adds a simple cache
	variable, to be transparently updated after
	each UpdateVmPolicy.

	Please note that the same approach was taken for I/O
	tune, based on the assumption that VDSM is the only
	controller of libvirt.

	Since this assumption is ingrained in the very roots
	of how VDSM works, it seem fair to extend to (V)CPU
	tune as well.

	vm: add 'name' property
	add a 'name' property, to Vm class, and add it to the
	Vm.getStats() output.

	This is needed to better integrate with MOM.

	Also, clean up a tiny bit the internals of the Vm class
	to use the new property.

2015-03-10  Timothy Asir  <tjeyasin@redhat.com>

	lvm:moved metadatasize as an optional param for pv create in lvm module
	Allow metadatasize as an optional param for pvcreate. This feature is
	required for gluster brick creation. Currently this param is not an
	optional one.

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

	jsonrpc: Change _AsyncoreEvent to use EventFD
	_AsyncoreEvent originally used a pipe which is a waste of an FD and
	depends on assumptions about how the kernel buffers pipes.

	It also required us to synchronize access using a lock.

	Moving to EventFD fixes all those issues and simplifies the
	implementation.

	infra: Introduce EventFD support
	This patch adds a wrapper for the eventfd(2) functionality.

	For more information check the inline documentation.

2015-03-09  Ondřej Svoboda  <osvoboda@redhat.com>

	models: rename NetDevice.ip to ipconfig to be more descriptive
	And also to avoid ambiguity with IPDB in pyroute_two.

	Now there are still instances of IPConfig's namedtuple, called 'ipConfig',
	which is very confusing, but this is to be removed (simply renamed, which
	actually motivated the change) in the coming patches.

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

	vm: abort vm start if can't read pid
	If for whatever (quite unlikely) cause
	the PID can't be read, or it is invalid,
	abort the creation of the VM.

	In recovery flow, we should'nt overwrite the PID,
	because there is no reason to believe it changed
	meantime - and most likely, it has not.

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

2015-03-09  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-09  Francesco Romani  <fromani@redhat.com>

	tests: bootstrap changeBlockDev tests
	add very basic tests.

2015-03-08  Darshan N  <dnarayan@redhat.com>

	gluster: volume snapshot list verb.
	This Patch adds new verb to get the snapshot
	list for a volume and across cluster.

	*glusterVolumeSnapshotList: gives the list of all the snapshots
	present in a volume if volume name is provided. Else It gives
	list of all snapshot across the cluster
	Returns:
	{'v1': {'snapshots': [{'name': 'snap1_v1',
	                       'description': description of the snapshot,
	                       'id': '8add41ae-c60c-4023-'
	                                       'a1a6-5093a5d35603',
	                       'createTime': {'timeZone': 'IST',
	                                      'epochTime': 1414427114},
	                       'snapVolume': '5eeaf23def3f446d898e1de8461a6aa7'
	                       'snapVolumeStatus': 'ACTIVATED'}, ...],
	        'snapRemaining': 252},
	 'v2': {'snapshots': [{'name': 'snap1_v2',
	                       'description': description of the snapshot,
	                       'id': '8add41ae-c60c-4023'
	                                       '-a1a6-1233a5d35603',
	                       'createTime': {'timeZone': 'IST',
	                                      'epochTime': 1414427114},
	                       'snapVolume': '5eeaf23def3f446d898e1123461a6aa7'
	                       'snapVolumeStatus': 'DEACTIVATED'}, ...],
	        'snapRemaining': 252},...
	}

2015-03-08  Darshan n  <dnarayan@redhat.com>

	gluster: volume snapshot config list and set verbs.
	This patch adds new verbs to list and set the
	configuration of gluster volume snapshots.

	*glusterSnapshotConfigList: get the snapshot configuration.
	This verb gives the snapshot configuration for the cluster
	and for all the volumes present in it.
	Returns:
	{'system':{'snap-max-hard-limit': 'hardlimit',
	           'snap-max-soft-limit': 'softLimit',
	           'auto-delete': 'enable/disable'},
	 'volume':{'name' :
	            {'snap-max-hard-limit: 'hardlimit',
	             'effective-hard-limit: 'EffectiveHardlimit',
	             'snap-max-soft-limit': 'softLimit'}
	          }...
	}

	*glusterVolumeSnapshotConfigList: Get the snapshot
	configuration for a volume. Volume name should be provided
	as an argument, configuration for that volume along with
	cluster snapshot configuration is listed.
	Returns:
	{'system':{'snap-max-hard-limit': 'hardlimit',
	           'snap-max-soft-limit': 'softLimit',
	           'auto-delete': 'enable/disable'},
	 'volume':{'name' :
	            {'snap-max-hard-limit: 'hardlimit',
	             'effective-hard-limit: 'EffectiveHardlimit',
	             'snap-max-soft-limit': 'softLimit'}
	          }
	}

	*glusterSnapshotConfigSet: Set snapshot configuration
	at cluster leval. The possible configurations that can
	be set are:
	snap-max-hard-limit, snap-max-soft-limit and auto-delete

	*glusterVolumeSnapshotConfigSet: Set snapshot configuration
	at volume leval. Volume name has to be provided as argument.
	And the configurable parameter is snap-max-hard-limit.

2015-03-08  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/show_bug.cgi?id=1196072

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

	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-06  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add hostdev device definition
	Using hostdev infrastructure for attaching a detaching devices
	to/from host and passing them to VMs, this patch introduces the
	device endpoint that is used for passing devices to VMs via
	libvirt's hostdev element

2015-03-06  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Additional reporting of IO statistics
	As per request, we're now additionally reporting:
	- Read and write operations per VM and disk
	- Read and written bytes per VM and disk

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

2015-03-06  Nir Soffer  <nsoffer@redhat.com>

	virt: Avoid pointless extension requests
	After a drive is extended to the maximum volume size, if the guest
	keeps writing, the image may pass the drive's watermark for early
	extension.

	On this condition, current extend logic is trying to extend the drive
	every 2 seconds. This results in fruitless extensions failing in 
	lvextend because the requested size is equal to the current size. These
	extension requests may delay real requests, perform unneeded io, and fill
	up the log with bogus errors and warnings.

	Now we check if the drive was fully extended and do not try to extend it
	further.

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

2015-03-05  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-04  Martin Polednik  <mpolednik@redhat.com>

	vmdevices: remove duplicate slot in audio device
	Alias slot is created by Base device, no need to re-create it.

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-03  Ondřej Svoboda  <osvoboda@redhat.com>

	testSetupNetworksOverDhcpIface: fix dnsmasq invocation on EL6
	All other DHCP tests already ask dnsmasq not to serve DHCPv6 which it does not
	support on EL6. Follow suit and let our dnsmasq wrapper use dnsmasq as DHCPv4
	server only.

	Without this patch, the test is skipped with
	"dnsmasq: bad command line options".

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

	dumpStorageTable: less statement-like prints

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

	netinfo: children count of <interface/> is 0 which broke a condition
	Commit If1a704cd53db56d64a3da6a056a322a6b35ee2bd resulted in getVdsCaps
	failing with an "Unexpected exception" which prevented VDSM from starting (on
	upgrade_300_nets).

2015-03-03  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.

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

	network: test: remove bond with removed enslaved nics

	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.

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

	asyncore: Remove AsyncChat
	No one uses it.

	betterAsyncore: Bind the dispatcher implementation
	This patch modifies the way the implementation is accessed in the
	dispatcher. It binds all the methods on __init__() saving time during
	each method call.

2015-03-02  Ondřej Svoboda  <osvoboda@redhat.com>

	api: correct the order of parameters in _bridge_reconfigured
	The wrong order was harmless because both parameters are passed to !=
	which is commutative.

2015-03-02  Ala Hino  <ahino@redhat.com>

	tests: Add missing empty line

2015-03-01  Genadi Chereshnya  <gcheresh@redhat.com>

	netinfo: Replacing  xml.dom.minidom with cElementTree module
	The change is done as etree is much faster than minidom
	It requires cElementTree module to be installed

	With multiple paragraphs if necessary.

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

	virt: Clarify error handling
	In diskSizeExtend, error handling was correct but less clear then it
	should be. We have try except block, returning one value on success, and
	other value on errors.

2015-02-26  Madhu Pavan Kothapally  <kmp@linux.vnet.ibm.com>

	tests: InterfaceSampleTests are failing with IOError
	Both testHostSampleHandlesDisappearingVlanInterfaces and
	testHostSampleReportsNewInterface are failing due to IOError.

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

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

	virt: Allocate additonal space for cow internal data
	In change I4098dfc07 (virt: Fix limit when calculating next volume size) we
	fixed drive size limit so drive volume is limited by drive capacity. This
	change introduced a regression where vm is paused when trying to fill up a
	drive, and there is no way to resume it, since qemu cannot complete the write.

	To allow a guest to use the entire drive capacity, we must allocate extra space
	for cow internal data. Since it is tricky to compute the exact value, we use
	the same estimate (1.1) used for converting raw volumes to cow and merging
	volumes.

	Relates-To: https://bugzilla.redhat.com/1195768

2015-02-25  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/1176673

2015-02-25  Francesco Romani  <fromani@redhat.com>

	tests: move find() helper into testlib
	Recently the vmTests gained a find() helper
	function to make xml tests less fragile,
	allowing to assertXMLEqual() only the minimal
	amount of XML.

	This patch moves this helper into testlib,
	to make it easily available to other test suites.

	Only code moving and import fixing.

2015-02-25  Ondřej Svoboda  <osvoboda@redhat.com>

	_addNetwork: never try to set mtu=None to an existing bridge
	On my EL6 host I tried to configure the 'ovirtmgmt' network manually, so it
	becomes a libvirt network (and in this case I would be able to reproduce
	a case when a gateway is duplicated by our dynamic source route thread).

	  vdsClient -s 0 setupNetworks 'networks={ovirtmgmt:{nic:eth0,bootproto:dhcp}}'

	The command failed, however (Unexpected exception):

	  MainProcess|Thread-1000::INFO::2015-02-18 10:55:08,731::api::304::root::(_addNetwork) Adding network ovirtmgmt with vlan=None, bonding=None, nics=[u'eth0'], bondingOptions=None, mtu=None, bridged=True, defaultRoute=True,options={u'bootproto': u'dhcp', 'implicitBonding': True}

	  MainProcess|Thread-1000::DEBUG::2015-02-18 10:55:08,732::ifcfg::460::root::(_persistentBackup) backing up ifcfg-ovirtmgmt: DEVICE=ovirtmgmt
	  ONBOOT=yes
	  TYPE=Bridge
	  DELAY=0
	  STP=off
	  BOOTPROTO=dhcp
	  MTU=1500
	  DEFROUTE=yes
	  NM_CONTROLLED=no
	  HOTPLUG=no

	  MainProcess|Thread-1000::DEBUG::2015-02-18 10:55:08,733::utils::623::root::(execCmd) /sbin/ip link set dev eth0 mtu None (cwd None)
	  MainProcess|Thread-1000::DEBUG::2015-02-18 10:55:08,738::utils::643::root::(execCmd) FAILED: <err> = 'Error: argument "None" is wrong: Invalid "mtu" value\n\n'; <rc> = 255

	  MainProcess|Thread-1000::ERROR::2015-02-18 10:55:14,507::supervdsmServer::108::SuperVdsm.ServerCallback::(wrapper) Error in setupNetworks
	  Traceback (most recent call last):
	    File "/usr/share/vdsm/supervdsmServer", line 106, in wrapper
	      res = func(*args, **kwargs)
	    File "/usr/share/vdsm/supervdsmServer", line 203, in setupNetworks
	      return setupNetworks(networks, bondings, **options)
	    File "/usr/share/vdsm/network/api.py", line 855, in setupNetworks
	      logger, _netinfo)
	    File "/usr/share/vdsm/network/api.py", line 690, in _add_missing_networks
	      implicitBonding=True, _netinfo=_netinfo, **d)
	    File "/usr/share/vdsm/network/api.py", line 225, in wrapped
	      ret = func(**attrs)
	    File "/usr/share/vdsm/network/api.py", line 328, in _addNetwork
	      _update_bridge_ports_mtu(net_ent.name, mtu)
	    File "/usr/share/vdsm/network/api.py", line 246, in _update_bridge_ports_mtu
	      ipwrapper.linkSet(port, ['mtu', str(mtu)])
	    File "/usr/lib/python2.6/site-packages/vdsm/ipwrapper.py", line 630, in linkSet
	      _execCmd(command)
	    File "/usr/lib/python2.6/site-packages/vdsm/ipwrapper.py", line 525, in _execCmd
	      raise IPRoute2Error(error)
	  IPRoute2Error: ['Error: argument "None" is wrong: Invalid "mtu" value', '']

2015-02-24  Francesco Romani  <fromani@redhat.com>

	vm: fix race in shutdown reason reporting
	This patch fix a race in the reporting of
	the shutdown exit reason.

	Relates-To: https://bugzilla.redhat.com/557125

2015-02-23  Ala Hino  <ahino@redhat.com>

	tests: Use permutations for separating test failures

	tests: Enhance ReadSpeed.testReadSpeedRegExp unit test
	Test changed to be more readable.

	Currently, the test defines a parameterized template and a list of
	outputs to be tested. For each output, the test replaces
	the parameters in the template with the corresponding values from
	the output.

	This patch makes the test more straightforward by removing the
	templating mechanism.

2015-02-23  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: convert yes/no <-> True/False using _from_ifcfg_bool and _to_ifcfg_bool
	Use them to format the defaultRoute=True/False property to DEFROUTE=yes/no
	without the need to replace the value in IpConfig's namedtuple first and
	also to override the property with information from an existing ifcfg file.

	If DEFROUTE is not present it is stored as None and not printed to an ifcfg
	file at all. To simplify the situation (as seen in other configurators) only
	True/False could be used in the future not only in defaultRoute but in other
	IP configuration parameters.

	models: make IpConfig deal with blank configuration from NetDevice gracefully
	This patch is a part of a bigger change striving to remove IpConfig's
	namedtuple which merely adds an unnecessary layer in network configurators
	and to introduce a boolean 'dhcpv4' parameter in setupNetworks (to mirror
	the 'dhcpv6' parameter) which will deprecate the legacy 'bootproto' parameter.

	As the first milestone IpConfig now gains the ability to initialize itself
	with no parameters so it is possible to gradually replace the usage of the
	namedtuple (IpConfig.ipConfig) in configurators (and in models.NetDevice)
	with IpConfig itself (NetDevice.ip, soon to be renamed to NetDevice.ipconfig).

	Next, the @property NetDevice.ipConfig, which just wraps information stored
	in IpConfig (and its members IPv4 and IPv6) can be removed.

	Finally, IpConfig will move from the string 'bootproto' to a boolean 'dhcpv4'.

	I think it is supported to configure (if a user pleases) a network with no IP
	configuration. Hence, I removed the ConfigNetworkError exception ("You need to
	specify IPv4 or IPv6 or both address").

2015-02-20  Francesco Romani  <fromani@redhat.com>

	profile: transform into a subpackage
	this patch tranforms the profile module into the
	profiling subpackage, to make room for the memory
	profiling module.

	No code change besides moving around and fixing imports.

2015-02-20  Ondřej Svoboda  <osvoboda@redhat.com>

	testStaticNetworkConfig: check a network's IPv4 address
	We should also verify bridged and unbridged configuration directly from
	the bridge or the dummy nic because we want the engine to refer to their
	reported information instead of reading the duplicated information from
	the network's dict.

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

	tests: Add ValidateNotRunningAsRoot
	Some tests simulate failures that happen only when running as
	unpriviliged user. When running as root, the test will fail although the
	test code is fine.

	This patch adds @ValidateNotRunningAsRoot decorator, skipping decorated
	tests when running the test suite as root.

	tests: Add tests for filesUtils.createdir
	Add few trivial tests before refactoring.

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

	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/1183728

2015-02-19  Yaniv Bronhaim  <ybronhei@redhat.com>

	Adding support for cluster level 3.6

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

	tests: reorganize imports in utilsTests.py

	network: filter out networks with unconfigured bonds

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

	tests: fix return value
	fix tests to conform to the new internal API.

2015-02-19  Ondřej Svoboda  <osvoboda@redhat.com>

	_get_gateway: allow duplicated gateways if they are in fact the same routes
	This happens with a DHCP libvirt network (e.g. the ovirtmgmt bridge) for which
	1) dhclient(-script) adds a gateway to the main table and also
	2) dhclient-script notifies VDSM's dynamic source routing thread which adds
	   the same gateway to a dedicated routing table (and corresponding routing
	   rules)

	In this configuration the gateway acquired via DHCP(v4) was not reported so
	let's start reporting it now.

	Before solving the referenced bug, only gateways from the 'main' routing table
	would be reported, not the ones in separate tables. Since dhclient(-script) is
	not supposed to handle source routing we have to consult all tables which VDSM
	itself creates.

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

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

	tests: Replace workaround for caching during tests with invalidation
	Replace the workaround added to avoid caching of _supports_src_cache
	with cleaner memoized invalidation.

	tests: Enable again utils.memoized in the tests
	Tests that may leave dirt in memoized functions should invalidate the
	functions during teardown.

	Since we disabled memoizing becuase of pulluted memoized functions in
	caps module, caps tests invalidate all memoized functions now.

2015-02-19  Ondřej Svoboda  <osvoboda@redhat.com>

	_get_gateway: formally require an interface for lookup
	All callers pass the interface name so let's simplify even further, after
	I27c1c97e1b59ab45cc1bb3e7a358021c62c919d2 started to require routes_by_dev.

	testSetupNetworksAddDelDhcp: check that IPv4 gateways are reported correctly

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

	utils: Add memoized invalidation
	We learned in the hard way that memoizing and monkey-patching do work
	nicely together. However, disabling memoizing during the tests means
	that we do not test the same code in the application.

	This patch adds invalidate() method to memoized functions, so tests can
	clean up properly after they modify memozied data.

	This can also be used by application code to invalidate memoized
	functions in certain conditions.

2015-02-18  Martin Polednik  <mpolednik@redhat.com>

	vmTests: move device tests out of vmTests
	vmTests.py, like vm.py, has grown in size a lot. Since some of the
	devices are already isolated in their own class, we can easily move
	this out to different module. Also some of the devices were in the
	TestVM class, where they don't belong and are therefore also moved out.

2015-02-18  Shahar Havivi  <shaharh@redhat.com>

	v2v: fix wrong handling of errCode in get_external_vms
	Opening connection via libvirt didn't return proper error code but
	failed with exception.

2015-02-18  Timothy Asir  <tjeyasin@redhat.com>

	gluster: add _getDeviceDict function to reuse common code
	Added internal function to return device dictonary which can be
	used for storageDevicesList and any subsequent function.
	Updated _canCreateBrick internal function to return False for
	the device which type belongs to 'lvmthinlv'
	Added device format uuid into storageDeviceList which was
	missing in the existing function.

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

	fileUtils: Improve logging when creating directories
	Log the mode when specified and format octal numbers only when needed by
	the current logging level.

2015-02-18  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfoTests: no need to import each and every netinfo function
	The list of imports from netinfo uncontrollably grew with netinfo members
	that were used only once or a small number of times.

	testSetupNetworksAddDelDhcp: shorten before adding checks for gateways

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

	network: remove unused execCmd outputs

2015-02-17  Ondřej Svoboda  <osvoboda@redhat.com>

	ifcfg: remove an unused function _getConfigValue

2015-02-17  Francesco Romani  <fromani@redhat.com>

	vm: guestagent: do not access guestinfo directly
	guest info should be get using the getGuestInfo()
	method and not using the guestInfo field directly.

	This patch fixes that.

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

	virt: Fix limit when calculating next volume size
	Drive.getNextVolumeSize() limit was wrong in two ways. First,
	Drive.truesize is *not* the drive true size on block-based drive (it
	is a duplicate of Drive.apparentsize). Second, Drive.truesize is using
	bytes but the code assumed that it is using megabytes. The result was
	that next volume size was limited only by the vg free size.

	Drive.getNextVolumeSize() requires now a capacity argument.  To prevent
	the confusion with mixing different size units, we use now safer naming
	convention.

	Vm.extendDriveVolume() requires now a capacity argument. The capacity
	was already available but unused in the drive monitoring code.

	When starting live storage migration or live merge, we use now
	libvirt.virDomain.blockInfo() to get drive capacity for the initial
	extension.

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

	tests: netlink: remove expected event missing in EL7

2015-02-17  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: report DHCP from configuration to avoid confusion after stopping DHCP
	Note: this concerns reporting of DHCP for networks only, not for individual
	devices, so far. (If we require the engine to read network configuration from
	the devices, typically bridges, we will have to report DHCP, as configured on
	the network, even for the devices.)

	Until now, after moving away from reporting DHCP based on ifcfg files, VDSM
	relied on dhclient's lease files. Even after a network was reconfigured to
	stop using DHCP and thus dhclient was stopped, DHCP would still be reported
	from the still valid leases (which preserve the state of network configuration
	as obtained from a DHCP server, to rebind later to the same address if
	allowed).

	Although I introduced this behaviour intentionally, VDSM must stop reporting
	dhcpv4 and dhcpv6 for a network that is reverted to static configutation
	(which is to be effective immediately not to confuse the engine and the user).

	The currently active network configuration is queried to find out if DHCPv4/6
	is to be reported, or not. If a network is not configured, leases are
	consulted again.

	testSetupNetworksAddDelDhcp reverts from DHCP-configured network to static
	configuration and checks that DHCP is no longer reported (indeed, netinfo
	returns the configured values for networks, now).

	pep8: fix `make check` on EL6
	Sadly http://danken.fedorapeople.org/python-pep8-1.4.5-2.el6.noarch.rpm is
	not enough now.

	I may just be lazy to recompile python-pep8 from a newer source package
	and fake python(abi) = 2.7 dependency. Or, I can apply this patch and have
	`make check` running.

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

	fileSD: Optimize getAllVolumes on file storage
	The previous implementation was using O(N^2) search to detect template
	images and volumes. When working with storage domain with large number
	of disks created from the same template, getAllVolumes becomes very
	slow, delaying flows such as vm startup and recovery.

	This patch reimplements getAllVolumes using O(N) search, cutting the
	time to process 5000 volume paths from 9 to 0.065 seconds.

	Profiling on scale setup show that getAllVolume cpu time per call
	dropped from 44 to 1.3 seconds, and the total cpu time used for
	preparing 20 images drop from 884 to 28 seconds.

	Before this patch:

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	       ...
	       20    0.153    0.008  884.109   44.205 hsm.py:3188(HSM.prepareImage)
	       20    7.242    0.362  883.014   44.151 fileSD.py:414(NfsStorageDomain.getAllVolumes)
	   214840  866.080    0.004  866.080    0.004 fileSD.py:444(<genexpr>)
	      ...

	With this patch:

	   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
	      ...
	       20    0.128    0.006   28.302    1.415 hsm.py:3188(HSM.prepareImage)
	       20   10.391    0.520   26.579    1.329 fileSD.py:415(NfsStorageDomain.getAllVolumes)
	     ...

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

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

	virt: Check if a drive is chuhked before extending
	Previously extendDriveVolume() was checking if a drive is a block device
	and assumed that callers checked the drive format. The check was unneeded
	when called from extendDrivesIfNeeded(), and spreading the logic between
	different methods makes the code harder to understand.

	Now extendDriveVolume() requires that callers are doing the required
	checks and callers are checking Drive.chunked before calling it.

	When we support LSM between mixed storage domain, Drive.chunked will
	encapsulate the logic for handling replication of file-based drive to
	block based storage domain.

	In merge(), we are always dealing with cow volumes, so checking for
	blockDev is enough. Using Drive.chunked for clarity.

	tests: Remove workaround for caching during tests
	In change Ibd986403a we disabled utils.memoize during testing, so we can
	drop the workaround added to avoid caching of _supports_src_cache.

2015-02-16  Francesco Romani  <fromani@redhat.com>

	tests: disable memoization in testrunner
	memoization during tests is harmful, because
	it adds another one hidden layer of global state
	shared across test runs.

	This may lead -and actually did- to hard
	to debug failures in apparently unrelated code.

	The net result is waste of developer's time,
	and decreased trust in automated tests
	because of mysterious failures.

	To fix that, we now monkeypatch in testrunner
	only utils.memoized with a fake which avoids caching.

2015-02-15  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: show the dnsmasq command on failure to ease debugging on EL6

2015-02-14  Ondřej Svoboda  <osvoboda@redhat.com>

	dummy: unify parameter 'dummy_name' naming with a variable name already used

	networkTests: delete our lease files also on EL6
	EL6's initscripts name them with one less dash and the extension *.leases,
	unlike recent ones (*.lease). (Inside the two dashes there may be a UUID if
	set in an ifcfg file.)

	  dhclient--veth_wjG7pxZqwg.lease (EL7), dhclient-veth_wjG7pxZqwg.leases (EL6)

	networkTests: remove a broken workaround for NM interfering in DHCP tests
	When introducing testDhclientLeases which tested DHCPv4 only I let the test
	suite add an IPv4 address to the client side of a veth pair (on the other
	there is dnsmasq serving as a DHCP server) so NetworkManager will not run
	its own dhclient there. I also added this workaround to testSetupNetworks-
	AddDelDhcp).

	There is a more appropriate way to unmanaging devices, and that is by passing
	NM_CONTROLLED=no in an ifcfg file to nmcli conn load, although this workaround
	is probably specific to distributions that use ifcfg network configuration
	(as an Arch user I may address this later, but patches are welcome).

	Ever since I added IPv6 capability to the dnsmasq wrapper used in both tests
	they require that NM be stopped or told not to manage veths because it sets
	the sysctl property disable_ipv6 on all devices out of security concerns, see
	e.g. https://bugzilla.redhat.com/show_bug.cgi?id=1102064

	If NM is running the two tests are skipped with the message added recently:

	  SKIP : Failed to add the IPv6 address fdb3:84e5:4ff4:55e3::1/64 to device
	  veth_xrSWAagFYW: ['RTNETLINK answers: Permission denied']; NetworkManager
	  may have set the sysctl disable_ipv6 flag on the device, please see e.g.
	  RH BZ #1102064

	At least Fedora 21 and EL7 are affected, EL6 is not because it relies on the
	'network' initscript. The NM versions on Fedora 21 and EL7 are currently:

	  0.9.9.1-35.git20140326.4dba720.el7 and
	  0.9.10.1-1.4.20150115git.fc21

	Let's remove the imperfect approach now.

	In the following patches we will inform NetworkManager to "unmanage" both
	veth sides (and later also dummies) by passing an ifcfg file with
	NM_CONTROLLED=no in it.

2015-02-14  Francesco Romani  <fromani@redhat.com>

	tests: forbid tabs in schema
	Our schema parser doesn't like tabs.
	Add a test to detect them, to avoid wasting times
	chasing them in the editor.

	schema: require vmId in {Exited,Running}VmStats
	On commit bb45b4b619c9a30a8fb35865fbd99f680295ac15
	we were reminded in an harsh way that vmId must
	always be present in the Vm.getStats() output.

	One of the problems was that the vmId field was injected
	the Vm.getStats() output by API.py, and this value was
	not documented in the schema.

	So, this patches update the schema to reflect the
	reality of the Engine's needs.

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

2015-02-13  Francesco Romani  <fromani@redhat.com>

	tests: clear libvirtconnection cache
	the libvirtconnection has a cache to reuse connections,
	and this caching doesn't play well with the monkeypatching
	which we do in tests. 

	In libvirtconnectionTests, we create fake libvirt objects,
	most notably fake virConnect-s. Unfortunately, the test fails
	to clean up properly the libvirtconnection cache.

	So, the test runs just fine in isolation, but if run in batch
	like in 'make check', later tests which expect the real object
	become broken.

	The failure presents itself like the following:

	AttributeError: 'virConnect' object has no attribute 'getMemoryStats'

	This patch fixes this error adding a facility to clear
	the libvirtconnection cache, and clearing it after each
	test.

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

	networkTests: give an instructory message when an address could not be added
	On recent Fedoras and EL7 NetworkManager sets the sysctl property disable_ipv6
	on some interfaces (including veths) silently, as a workaround to IPv6LL
	(link-local address) assignment clash between NM and the kernel, see e.g.
	https://bugzilla.redhat.com/show_bug.cgi?id=1102064

	In the next commits this problem will be addressed by telling NM to unmanage
	our veth pairs and dummy devices.

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

	network: change objectivizeNetwork to private

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

	virt: Add Drive.chunked property
	Previously the logic for extending a drive was part of the vm god-class.
	This makes the code little more readable, and encapsulate the logic in a
	better location.

	virt: Invalidate drive blockDev when path changes
	After live storage migration between mixed domain types, a drive
	blockDev must be reinitialized. We initialize this property in __init__
	for cdrom or floppy devices, or lazily for other devices, and cache the
	computed value for later calls.

	The initialization was moved to single location, to make it easier to
	understand the code.

	Drive.path is now a property so modifying it after LSM invalidates
	cached blockDev value.

	For easier debugging, each time Drive.path changes we log the old and
	new values.

2015-02-11  Darshan n  <dnarayan@redhat.com>

	gluster: Added gluster snapshot restore verb.
	This patch adds verb to restore gluster volume
	snapshot.

	*glusterSnapshotRestore: Restores a gluster volume snapshot.
	Takes snapshot name as an argunment.
	Returns:
	{'volumeName': 'vol1',
	 'volumeUuid': 'uuid',
	 'snapshotName': 'snap2',
	 'snapshotUuid': 'uuid'}

2015-02-11  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add support for reporting usb addresses
	This patch extends the address field in hostdev tree that holds map of
	address fields relevant to the device. This is required in order to
	passthrough a usb device.

	usb_device is used because it is libvirt standard used for viable
	devices.

	devices: remove redundant slot
	'device' slot is defined in Base class (core.py), there is no need
	to have it in child classes.

2015-02-11  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=1138690

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

	virt: add ExpiringCache
	ExpiringCache is a simple cache with expiring time attached
	to keys. This class implements parts of the dict() interface,
	but do not aims to be a full replacement for dict()s.
	ExpiringCache is thread safe.

2015-02-11  Shahar Havivi  <shaharh@redhat.com>

	v2v: additional info for disk and network
	disk now return type ('disk', 'cdrom' etc)
	network now return type ('e1000', 'rtl' etc)

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

	virt: Move status constant to vmstatus
	_get_lastStatus was creating a temporary tuple using values from
	vmstatus. The repeating "vmstatus." tells us that the code belongs to
	the vmstatus module.

2015-02-11  Arik Hadas  <ahadas@redhat.com>

	vm: add missing vm id to get stats of down vm
	The stats that are returned for a VM which is down does not contains the
	id of the VM.

	This was broken by 7f577ab94b35f2cb2560d3ae49d6b0f753588474, which failed
	to put the vmId in the 'Exited Vm Stats', but only in the 'Running Vm Stats'

	That causes a regression since the engine uses this id,
	without it hibernated VM is not destroyed, but remains down on the host.
	Thus, adding the vm-id back.

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

2015-02-10  Dima Kuznetsov  <dkuznets@redhat.com>

	signals: Handle signals to non-main threads
	This patch addresses an issue of signals being delayed in supervdsm,
	in attempt to add zombiereaper to supervdsm, zombiereaper did not
	receive signals it was supposed to receive.

	When any thread in python receives a signal, python's signal handler
	(running in that thread) marks the signal as received and writes down that
	the main thread should handle any arrived signals. When main thread
	calls signal.pause(), it goes to sleep until it receives a signal (on
	main the main thread itself).
	If during that time, a signal is received on any other thread, it is not
	handled until main thread itself receives any other signal (because of what
	the signal handler does)

	I've reported the issue here, also with a simple reproducing script:
	https://bugzilla.redhat.com/show_bug.cgi?id=1114434

2015-02-10  Ondřej Svoboda  <osvoboda@redhat.com>

	dnsmasqDhcp: fix an inverted condition
	Anywhere _except_ EL6 we want to use dnsmasq with --bind-dynamic.

2015-02-10  Francesco Romani  <fromani@redhat.com>

	vm: make _getNicStats a function
	_getNicStats used to be a classmethod of VmStatsThread,
	but there are no valid reasons anymore to keep it like that.

	This patch makes it a plain function, to make room
	for more refactoring in this area.

	There are no changes in logic.
	Except for moving code around, the only significant change
	is the removal of the now-useless 'cls' argument.

	vm: make MBPS_TO_BPS a module constant
	There is no good reason anymore to have MBPS_TO_BPS a class constant,
	so this patch moves it to module level, in order to make room for more
	future cleanup.

	vmchannels: downgrade logs about expected flows
	virt flows have plenty of steps logged, but some of them
	aren't worth of the user's attention, so downgrade them.

2015-02-10  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: report a gateway for statically configured networks
	Bug-Url: https://bugzilla.redhat.com/1186330

	networkTests: also check we successfully report an IPv4 gateway
	Bug-Url: https://bugzilla.redhat.com/1186330

	networkTests: use IP_MASK, there's no need for prefix2netmask

	ipwrapper: remove the unused function 'routeList'

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

	tests: Add tests for drive disk type
	Test Drive.networkDev and Drive.blockDev before refactoring these
	properties.

	tests: Rename test class
	It is easier to grok the tests results when the name of the test case
	starts with meaningful word, instead of "Test".

	TestFoo
	  test_xxx
	  test_yyy

	FooTests
	  test_xxx
	  test_yyy

	tests: Add drive_config helper
	Instead of repeating all drive options for each test, add a helper
	function to create drive configuration specifying only the interesting
	options for the specific test.

2015-02-10  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/1188251

2015-02-09  Ondřej Svoboda  <osvoboda@redhat.com>

	_get_gateway: reformat a list comprehension for readability

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

	tests: Move drive shared tests to storage module
	Move virt.vmdevices.storage.Drive shared tests to vmStorageTests module.

	Refactor the old test so each test case is a separate method so one
	failure does not effect other test cases.

	tests: Remove unused imports
	Commit 507179aa3a1f left unused imports breaking pyflakes check.

2015-02-08  Ondřej Svoboda  <osvoboda@redhat.com>

	kill_dhclient: log whenever we stop a previously running dhclient
	When VDSM wants to run its own dhclient it has to stop a dhclient that was
	serving the given interface. This important action was not logged previously
	so let's do that now so it's easier to locate (even unsuccessful) VDSM's
	attempts to replace a DHCP client.

2015-02-07  Ido Barkan  <ibarkan@redhat.com>

	reorder methods of netconfpersistence module
	Trying to improve readability by placing public methods first

2015-02-07  Francesco Romani  <fromani@redhat.com>

	tests: profile: use make_config from testlib
	Recently a generic utility to build new
	custom instances of VDSM config was added to testlib.
	This function is equivalent, but more generic, to the
	one previously bundled with profileTests.

	This patch makes profileTests use the code from testlib.

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

	storageServer: Cleanup logging when mount fails
	- Log the OSError text if os.rmdir fails instead of an unhelpful traceback
	- Use logging.exception instead of exc_info=True
	- Use "mountpoint" instead of "mount point"
	- Use %r for revealing whitespace bugs in paths
	- Unify logging messages

	storageServer: Fix connection error handling
	We used to log a traceback and then raise the original error instance
	(with a truncated traceback), which would cause another useless
	traceback for the same error.

	Now we keep the original exception info and re-raising it, so it is not
	masked by errors raised during cleanup. Since we raise useful exception,
	we don't need the additional log; having 2 tracebacks for same error is
	not helping anyone.

2015-02-06  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: do not confuse dhclient with invalid configuration
	When testing the ability to parse dhclient -6 leases we passed
	  db-time-format not applicable;

	as configuration to dhclient, signalling rather to ourselves that dhclient
	formats time values in its leases in 'default' (full date) or 'local'
	(second since epoch) format only in DHCPv4 mode.

	Since dhclient complains in logs about an unknown db-time-format let's just
	create an empty file instead.

2015-02-06  Darshan n  <dnarayan@redhat.com>

	gluster: volume snapshot activate and deactivate verbs.
	This patch adds two new verbs to activate and deactivate
	gluster volume snapshots.

	*glusterSnapshotActivate: Activates gluster volume
	snapshot. It takes force as optional argument. when
	force is provided snapshot is activated forcefully.
	Returns success/failure.

	*glusterSnapshotDeactivate: Deactivates gluster volume
	snapshot. Returns success/failure.

2015-02-06  ndarshan  <dnarayan@redhat.com>

	gluster: geo-replication configuration related verbs.
	This patch adds three new verb related to geo-replication
	configuration.

	Verbs:
	 * glusterVolumeGeoRepConfigList
	    - Lists all the configuration for the session.
	      Returns:
	       {georepConfig:{'optionName': 'optionValue',...}
	       }

	 * glusterVolumeGeoRepConfigSet
	    - Sets the configuration value for a given
	      configuration.
	      Returns:bool

	 * glusterVolumeGeoRepConfigReset
	    - Sets the configuration to its default value
	      Returns:bool

2015-02-06  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: order VDSM modules after its libraries

	networkTests: order VDSM libraries after system libraries

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

	Revert "Require newer dhclient on el7"
	This reverts commit e22a79bace890b69858b93b77c953ce8068598ee.
	We may need to conflict with dhcp server, but never to require it.

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

	tests: Move virt storage tests to new module
	This patch moves virt.vmdevices.storage.Drive.getXML tests to new
	vmStorageTests module. Future patches will move the rest of the Drive
	releated tests.

	Moved tests were refactored to make them more reliable, readable and
	easier to modify.

	- Each test case has its own test method, so failure of one test case
	  does not effect others.
	- Device configuration was indented and sorted
	- Unneeded logic was eliminated

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

	Added support for reporting the timezone and os info
	The guest agent reports now the timezone and more detailed
	os information. This patch introduces the support for those
	new messages.

	OS info reporting in the guestagent:  http://gerrit.ovirt.org/#/c/28938
	Timezone reporting in the guestagent: http://gerrit.ovirt.org/#/c/28013

	Guest-Agent-API-Version: 2
	Bug-Url: https://bugzilla.redhat.com/869296

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

	Require newer dhclient on el7
	I don't want to hear about dhclient bug
	https://bugzilla.redhat.com/show_bug.cgi?id=1116004
	again.

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

	tests: Remove unused import
	Recent commit left unused import, breaking the build.

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

	tests: assertLess is not a part of TestCaseBase on el66

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

	Allow passing custom properties when removing networks.
	This allows greater flexibility when writing hooks. For example, it will be
	possible to perform proper cleanups after setupNetwork occurs.
	Engine still needs to pass the custom properties on network removal For this
	to be fully functional.

	tests: 'ip link del dev <bridge>' fails on el6 if the bridge device is still up.

2015-02-04  Darshan n  <dnarayan@redhat.com>

	gluster: volume snapshot create and delete verbs.
	This patch adds three new verbs to create and delete
	gluster volume snapshots.

	*glusterVolumeSnapshotCreate: Creates gluster volume
	snapshot. It returns uuid of the created snapshot.

	*glusterSnapshotDelete: Deletes gluster volume
	snapshot. Snap name should be provided as argument,
	that snapshot will be deleted. Returns success/
	failure.

	*glusterVolumeSnapshotDeleteAll: Deletes gluster volume
	snapshot. Volume name should be provided as argument,
	all snapshots for that volume will be deleted.
	Returns success/failure.

2015-02-04  Antoni S. Puimedon  <asegurap@redhat.com>

	net_func_tests: Rollback only when an error happens
	Up until now, net_func_tests used RollbackContext that always
	performs all the rolling back operations on context exit. This patch
	adds a flag to RollbackContext that if explicitely set to True, will
	only perform the rollback operations in case the context was left
	due to an exception.

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

	network: api: be consistent with bootproto = None

	netlink: replace ipwrapper monitor

2015-02-04  Frantisek Kobzik  <fkobzik@redhat.com>

	vdsm: Fix return value of _setTicketForGraphicDev
	Invoking VM.updateDevice method via json api expects result to contain
	vmList attribute, however, this method doesn't always contain it in
	case of updating graphics device.
	This patch adds the attribute.

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

	Better logging for networks that are added twice.
	This is useful in tests mainly but may come handy in real world scenario also.

	Handle bridge reconfiguration
	This fixes a regression that was introduced in
	3951f078d840f6c99d3e72b8ef95a94c6fad4094. When a bridged network is
	reconfigured, for example, changing its IP or its bootproto, vdsm would change
	nothing, since it would try to leave the bridge intact. Comparing the required
	configuration (setupNetworks arguments) to the running configuration solves
	this.

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

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

	netinfo: routes_by_dev parameter is never None anyway so _get_gateway can be simplified.

2015-02-03  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add support for reporting scsi addresses
	This patch extends the address field in hostdev tree that holds map of
	address fields relevant to the device. This is required in order to
	passthrough a scsi device

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

	restore-net-config: set main thread name
	restore-net-config's log flow to supervdsm.log, and are a bit hard to
	discern.

2015-02-03  Martin Polednik  <mpolednik@redhat.com>

	numvfs: fix schema mistake
	Mistake slipped through where schema mentions deviceName while
	API mentions device_name. This patch changes the name in API in
	order to be consistent with rest of API.

2015-02-03  Dima Kuznetsov  <dkuznets@redhat.com>

	bridge: Make VdsmError more verbose
	Before:
	Traceback (most recent call last):
	  Line 10, in <module>
	    raise VdsmError(1, 'a message 1')
	VdsmError

	After:
	Traceback (most recent call last):
	  Line 24, in <module>
	    raise VdsmError(2, 'a message 2')
	VdsmError: [error 2] a message 2

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

2015-02-03  Martin Polednik  <mpolednik@redhat.com>

	hostdev: implement numvfs changing
	This patch implements functionality, where user desires to change
	number of virtual functions for given physical function. This is done
	via sysfs, with a little addition that before changing the number of
	functions, they have to be removed entirely.

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

	virt: move all_channels into DomainDescriptor
	before the introduction of the DomainDescriptor
	class, we had a bunch of functions/methods who
	repeteadly parsed the VM XML Domain using the slow
	minidom module.

	The introduction of the DomainDescriptor opens
	the gate for both more efficient and cleaner processing.

	DomainDescriptor should provide methods to return
	high-level objects, not low-level ones, e.g, XML document
	nodes, which are inevitabily tied to the underlying xml
	library being used.

	The first step in this (long) journey is to move
	vmxml.all_channels into the DomainDescriptor.
	This allow us to have both nicer code in vm.Vm
	and to save us one unneeded XML parsing.

	vm: use DomainDescriptor in setTicket
	setTicket used to fetch and parse yet again the Domain XML.
	Since there is no known good reason to do so, this patch
	changes the code to make use of the DomainDescriptor,
	in order to gain a bit more of performance and of code brevity.

	executor: introduce the executor library
	Executor is a thread pool augmented with the
	capability of discard blocked worker threads,
	by replacing them with fresh ones.

	This is needed to accomodate the needs of the sampling code.
	The sampling needs to deal with possibly blocking libvirt
	calls which needs to enter into the QEMU monitor,
	thus can get stuck due to QEMU being in D state.

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

	storage.monitor: Streamline names
	Rename internal classes using shorter names, considering the package
	namespace. For example:

	    storage.monitor.DomainMonitorStatus -> storage.monitor.Status

	In this case the name is more correct, as this is not the status of the
	single DomainMonitor object but status of one of the monitor threads.

	Since DomainMonitorThread was renamed, the logger was renamed too. We do
	not need muliple loggers for the DomainMonitor and the MonitorThread, so
	both of them use now the Storage.Monitor logger.

	storage.monitor: Use lowercase module name
	storage.domainMonitor was using pep8 incompatible and too specific
	module name.

2015-02-02  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add dynamic udev rule creation for iommu groups
	Detaching a device from a host (via detach_detachable) spawns
	a new vfio endpoint in /dev/vfio/$name, where $name = iommu group
	number. In order to start a VM with this endpoint assigned (= vm
	with device passed through) we need rw permissions for QEMU.

	This patch adds dynamic udev rule creation/deletion for when device is
	detached/reattached from or to the host.

	Creating an udev rule will happen one time for each IOMMU group, that
	is passed through to the host. That means we're expecting the call to
	only happen on VM creation, where the number of such VMs is very limited
	(possibly 1 or few).

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

	rpc: Replace misuse of assert with TypeError
	Asserts are optimized out when running with -O or when using
	PYTHONOPTIMIZE environment variable.  This assert seems like a security
	related check, and it should never be right to ignore this check.

	Replaced with TypeError, which is the expected error when passing
	non-existing argument to a function.

	I'm not very happy about this, since this hides a security failure,
	pretending to be a Python calling error. Anyway this is better then
	the assert.

	mailbox: Log traceback after fatal failures in mailbox monitors
	Mailbox monitor threads were not logging fatal error properly. Now these
	threads use our standard @traceback decorator to ensure that failures
	are logged properly.

	Relates-to: https://bugzilla.redhat.com/1117795

2015-02-02  ndarshan  <dnarayan@redhat.com>

	gluster: geo-replication pause and resume session
	This patch adds two new verbs to pause and resume
	geo-replication session between master and slave
	volume.

	Verbs:
	glusterVolumeGeoRepSessionPause
	   This verb Pauses a geo-replication session between
	a local and a remote volume. It retruns boolean
	output.

	glusterVolumeGeoRepSessionResume
	   This verb resumes a geo-replication session between
	a local and a remote volume. It retruns boolean
	output.

2015-02-01  Martin Polednik  <mpolednik@redhat.com>

	hostdev: add support for reporting pci addresses
	This patch adds addr field into hostdev tree that holds map of
	address fields relevant to the device. This is required in order to
	avoid parsing the pci name (such as pci_0000_05_fe_1).

2015-01-29  Martin Polednik  <mpolednik@redhat.com>

	hostdev: remove physfn attribute in physfn
	Previously, detecting physfn was done via finding capabilities
	inside capabilities element, where address element pointed to physfn.
	This caused capabilities element in physfn with type 'virt_functions'
	to wrongly reference physfn in physfn. This patch fixes the bug,
	adding check for type attribute inside capabilities element, therefore
	removing the wrongful referencing.

2015-01-28  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.

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

	hostdev: report 'net' devices and their interface name

2015-01-28  ndarshan  <dnarayan@redhat.com>

	gluster: Added geo-replication session list and session status
	This patch adds the features geo-replication session list and
	session status.
	It exposes two verbs:

	*glusterGeoRepSessionList- It provides geo-replication session
	list of all sessions or between specified local volume and all
	its remote-volumes or between a specified local and remote volume.
	Returns:
	{'volume name':{
		 sessions: [{sessionKey: 'unique identification for session ',
		     remoteVolumeName: 'name of remote volume involved in session'
	             bricks: [{host: 'local host',
	                      hostUuid: 'uuid of brick host',
	                      brickName: 'local brick',
	                      remotehost: 'slave',
	                      status: 'status',
	                      checkpointStatus: 'checkpoint status',
	                      crawlStatus: 'crawlStatus'}]....
	         }]....
	  }
	}

	*glusterGeoRepSessionStatus- It provides detailed status of
	geo-replication session between a local and remote volume.
	Returns:
	{'volume name': {
	 	sessions: [{sessionKey: 'unique identification for session ',
	             remoteVolumeName: 'name of remote volume involved in session'
	             bricks: [{host: 'local host',
	                      hostUuid: 'uuid of brick host',
	                      brickName: 'local brick',
	                      remotehost: 'slave',
	                      status: 'status',
	                      checkpointStatus: 'checkpoint status',
	                      crawlStatus: 'crawlStatus'
	                      filesSynced: 'nos of files syncd',
	                      filesPending: 'nos of files Pending',
	                      bytesPending: 'nos of bytes pending',
	                      deletesPending: 'Nos of deletes pending',
	                      filesSkipped: 'Nos of files skipped'}]...

	        }]....
	  }
	}

2015-01-28  Federico Simoncelli  <fsimonce@redhat.com>

	utils: move nice ionice sid and sudo out of execCmd
	Utility commands as nice, ionice, setsid and sudo should be reusable
	with regular Popen calls. In order to make them composable this patch
	moves them out of execCmd.

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

	virt: cleaner getAllVmStats
	the api.Global.getAllVmStats method was implemented reusing
	api.Global.getVMList and api.VM.getStats().

	This lead to unnecessary work, and a lot of layering traversal
	with objects being wrapped in responses, which in turn are
	promptly discarded and rewrapped again to obtain the final
	result. All of this without any clear benefit.

	This patch drops all the layering and use simple and lean
	methods to obtain the same result doing much less work.
	Unfortunately, total performance gains are expected
	to be negligible because this function was already
	very low in the profiling data.

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

	tests: add test case for getAllVmStats
	bootstrap test case for Host.getAllVmStats
	external API.

	Due to the racy behaviour of running stats,
	this test is added as broken.

	vm: properly implement readPauseCode
	When restarted, VDSM needs to know if a VM was paused for
	disk space exhausted, in order to properly extend the disk(s)
	before to (re)start it again.

	Since the move to libvirt, this code was not implemented.
	However, a couple of libvirt APIs which somehow are gone
	unnoticed so far, make it possible to implement it.

	This patch rebuilds readPauseCode on top of these APIs.
	Currently, readPauseCode reports these codes:

	NOERR  - if everything was fine.
	ENOSPC - if one or more disks was filled.
	EOTHER - if one or more disks exprienced any other error.

2015-01-27  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: use os.path instead of string concatenation
	supervdsmServer uses string concatenation to construct paths to
	udev rules. In python, using os.path collection of functions is
	the preferred way to handle filesystem paths. This patch implements
	using os.path tools.

2015-01-27  Shahar Havivi  <shaharh@redhat.com>

	v2v: add volume size to disk info
	Added size in bytes for each disk size.
	The size is needed by oVirt Engine for volume creation when import will
	take place.

2015-01-27  Martin Polednik  <mpolednik@redhat.com>

	supervdsm: remove unused constants
	Constants KB and TEST_BUFF_LEN are not used anywhere in the
	code, therefore being obsolete and not required. This patch simply
	removes them, unpolluting the code a bit.

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

	tests: Fix too delicate tests
	protocoldector tests were assuming that another thread will wake up
	exactly after 2.0 seconds, and were failing randomly if the other
	thread woke up 2 milliseconds later. We cannot make such assumptions in
	tests, in particular not when the test are running on overloaded vms.

	We use now additional grace time that practically make the issue
	disappear (without eliminating the test-only race).

	protocoldetector: Make cleanup more deterministic
	Protocol detector was setting the next cleanup time on each cleanup, by
	adding the cleanup internal to the currnet time. Since cleanup was done
	after processing all the events, and cleanup time was reached, this
	introduced small non-deterministic drift to the cleanup time, making the
	logic harder to test.

	Adding additional logging show that the server cleans up 2 milliseconds too
	late, causing the test to fail.

	1422041252.455594: vds.MultiProtocolAcceptor DEBUG Adding detector <protocoldetectorTests.Echo object at 0x7f49ba4c4410>
	1422041252.455715: vds.MultiProtocolAcceptor DEBUG Adding detector <protocoldetectorTests.Uppercase object at 0x7f49ba4c4450>
	1422041252.455924: vds.MultiProtocolAcceptor DEBUG Running
	1422041252.455979: vds.MultiProtocolAcceptor DEBUG Using required_size=9
	1422041252.456336: vds.MultiProtocolAcceptor DEBUG Adding connection 127.0.0.1:42807
	1422041252.456397: AcceptorTests DEBUG client 127.0.0.1:42807 waiting...
	1422041252.456564: AcceptorTests DEBUG client 127.0.0.1:42808 waiting...
	1422041252.456640: vds.MultiProtocolAcceptor DEBUG Adding connection 127.0.0.1:42808
	1422041252.456872: vds.MultiProtocolAcceptor DEBUG Adding connection 127.0.0.1:42809
	1422041252.456926: AcceptorTests DEBUG client 127.0.0.1:42809 waiting...
	1422041252.457131: vds.MultiProtocolAcceptor DEBUG Adding connection 127.0.0.1:42810
	1422041252.457197: AcceptorTests DEBUG client 127.0.0.1:42810 waiting...
	1422041252.457416: vds.MultiProtocolAcceptor DEBUG Adding connection 127.0.0.1:42811
	1422041252.457470: AcceptorTests DEBUG client 127.0.0.1:42811 waiting...
	1422041253.456519: vds.MultiProtocolAcceptor DEBUG cleaning up pending connections (elasped 1.000919)
	1422041253.456709: vds.MultiProtocolAcceptor DEBUG Removing connection 127.0.0.1:42807
	1422041254.456889: AcceptorTests DEBUG client 127.0.0.1:42807 woke up
	1422041254.457284: AcceptorTests DEBUG client 127.0.0.1:42808 woke up
	1422041254.457373: vds.MultiProtocolAcceptor DEBUG Detected protocol echo from 127.0.0.1:42808
	1422041254.457416: vds.MultiProtocolAcceptor DEBUG Removing connection 127.0.0.1:42808
	1422041254.457633: vds.MultiProtocolAcceptor DEBUG cleaning up pending connections (elasped 2.002052)
	1422041254.457727: vds.MultiProtocolAcceptor DEBUG Removing connection 127.0.0.1:42811
	1422041254.457781: vds.MultiProtocolAcceptor DEBUG Removing connection 127.0.0.1:42809
	1422041254.457828: vds.MultiProtocolAcceptor DEBUG Removing connection 127.0.0.1:42810
	1422041254.458750: AcceptorTests DEBUG client 127.0.0.1:42809 woke up
	1422041254.458858: AcceptorTests DEBUG client 127.0.0.1:42811 woke up
	1422041254.459377: AcceptorTests DEBUG client 127.0.0.1:42810 woke up

	This patches changes the calculation so it is more deterministic. We don't know
	when the server will wake up and how much time will be spent handling the
	events, but know eexactly what is the next cleanup time.

	Note that this does not prevent failures of the tests, since they are too
	delicate, depending on task scheduling. This will be fixed in the next patch.

2015-01-27  Darshan N  <dnarayan@redhat.com>

	schema test: limit line length in gluster schema
	This patch checks and limits the line length in gluster
	schema(vdsmapi-gluster-schema.json). And fix the lines
	in gluster schema having line length greater than 80
	characters.

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

	zombiereaper: Raise if used incorrectly
	zombiereaper was trying to reap pid when it was not initialized
	properly. This lead to slient failures and and leaking zombies processes
	for the process lifetime.

	In commit 0636b8607b (Revert "supervdsm: Add zombiereaper to supervdsm")
	we removed zombiereaper from supervdsm, but there are still callers that
	assume it is inizialized. This patch ensures callers will fail loudly if
	zombiereaper was not initialzied.

	The tests are more carefull now not change the Python process state when
	importing tests from the test module.

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

	numa: reformat to be pep8-friendlier
	reformat and make the code more pep8 compliant
	to improve readability, with no changes in
	behaviour.

	numa: avoid needless list comprehension
	A generator expression fits better and achieves
	the same result.

	numa: use defaultdict to simplify the code
	Leverage defaultdict(set) instead of reinventing it
	locally and partially, with no changes in logic.

2015-01-26  Darshan N  <dnarayan@redhat.com>

	gluster: Add geo-replication start and stop session
	This patch adds two new verbs to start and stop
	geo-replication session between local and remote
	volume.

	Verbs:
	glusterVolumeGeoRepSessionStart
	   This verb starts a georeplication session between
	a local and a remote volume. It retruns boolean
	output.

	glusterVolumeGeoRepSessionStop
	   This verb stops a georeplication session between
	a local and a remote volume. It retruns boolean
	output.

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

	tests: mark testRunningStats as broken
	tests/vmApiTests was an early attempt to test that
	the output of API verb [vdsm.virt.]VM.getStats()
	was compliant to the schema.

	Because of how the sampling code currently
	works, to check for running stats is racy.
	Moreover, much more solid schemaCompliancyTests was
	recently added.

	The best course of action in the medium/long term
	is to refacor both the sampling and the testing
	code. To have more testable code will avoid races
	in the tests.

	Until that time, to avoid noise and to waste time,
	this patch marks the current broken test as such.

2015-01-26  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.

2015-01-26  Shahar Havivi  <shaharh@redhat.com>

	v2v: separate top level vm information to a method
	for a clearer code separate general vm information to a method from vm
	iteration logic.

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

	schedule: Introduce scheduling library
	This moudule provides a Scheduler class scheduling execution of
	callables on a background thread. This should be part of the new
	scalable vm sampling implemntation.

	See the module docstring and tests for usage examples.

2015-01-24  Allon Mureinik  <amureini@redhat.com>

	spec: Require newer qemu-kvm-rhev version for EL6
	Require a newer qemu-kvm-rhev version that solves an issue with running
	a VM with more than 23 snapshots.

	Note that this issue was solved in qemu-kvm-0.12.1.2-2.422.el6. Modern
	EL6.6 releases already contain newer versions than that, so this patch
	serves mainly as a safeguard.

	Bug-Url: https://bugzilla.redhat.com/1113583
	Relates-To: https://bugzilla.redhat.com/1067576

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

	netlink: handy monitor context manager

	netlink: event monitor with timeout

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

	tests: dummy: provide more info upon failure
	Expose a bit more information regarding the underlying failure when
	failing to remove or set IP on a device.

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

	networkTests: sort imports from Python libraries, separate 3rd party nosetests

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

	net tests: unbreak pyflakes
	My recent version of http://gerrit.ovirt.org/35061 has dropped a
	reference to time.sleep, but did not remove the import of the time
	module.

	net stats: expose sample timestamp

	net stats: drop statsAge from statistics
	statsAge has been reported by getVdsStats and getAllVmStats since ever,
	but it has never been consumed by Engine. This patch drops this element,
	since we would like to report sampleTime in a following patch, and would
	not like to report duplicate information.

2015-01-22  shlad  <a.shlado@gmail.com>

	net stats: add tx/rx statistic to getInterfacesStat

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

	numa: restore compatibility with python 2.6
	Commit 6c8477355877bf2e tried to be a good one,
	but it was overzealous and that lead to a failure
	on python 2.6.

	The failing commit:
	- paranoidly checked for the presence of the
	  'pid' attribute on the 'vcpu' subelement.
	  Original code didn't. If the XML changes or lacks
	  this attribute for whatever reason, it should
	  not be fixed or handled here. Instead, we
	  should just stop to poke in libvirt's private data.

	- added tests to cover cases on which libvirt's
	  private XML isn't constructed the way we expect.
	  Again, proper solution is still the above one,
	  not trying to cover up.

	This commit removes the overzelousness, and makes
	the code working again on python 2.6.

	numa: rename _getHostNumaNodesCpuMap for clarity
	no code changes, only renaming

	numa: rename _getVcpuRuntimePinMap for clarity
	rename only, no code changes.

	numa: rename variables for clarity
	Rename the return value of
	getVcpuNumaMemoryMapping()
	to improve readability.

	No changes in logic, only in naming.

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

	numa: rename _getVmNumaNodesCpuMap for clarity
	No code changes, just rename

	numa: virt: remove one more minidom user
	The NUMA support code relies on libvirt's internal XML representation
	to build its state and to track VCPU placement.

	A side effect of this already questionable usage is that VDSM has
	to parse a large XML document -larger than a VM domain definition,
	since the private representation contains libvirt's internal
	bookkeping data each time it is asked for NUMA stats.

	While we look for a more robust and more efficient way
	to reconstruct this information, this patch switches
	to a more efficient XML processing to offer some short-term
	quick help.

2015-01-21  Ido Barkan  <ibarkan@redhat.com>

	disconnect bridge port on rhel 6
	This fixes a bug introduced in d6d7db4ca24606d35acafe6e92b1ee031c0c8fe1
	Where del network learned how to disconnect a bridge port.  Since rhel6 ip link
	command does not support 'nomaster', we also try brctl.

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-21  Amador Pahim  <apahim@redhat.com>

	Simplify tests for qemuimg to allow additional capabilities checks
	Tests are mocking execCmd() to fake _supports_qcow2_compat(). To allow
	other capabilities checks inside convert(), this patch is:
	 - Creating a new class for compat tests.
	 - Moving compat commands tests from create/convert iclass to compat class.
	 - Testing the _supports_qcow2_compat() itself.
	 - Removing the need of mocking execCmd() inside convert tests.
	 - Mocking _supports_qcow2_compat() for convert and create tests.

2015-01-21  Federico Simoncelli  <fsimonce@redhat.com>

	image: use qemu-img convert to copy internal volumes
	According to the qemu-img manual:

	 You can use the backing_file option to force the output image to be
	 created as a copy on write image of the specified base image; the
	 backing_file should have the same content as the input's base image,
	 however the path, image format, etc may differ.

	The benefits to use qemu-img convert instead of dd to copy the internal
	volumes are:

	- we unify operations under just one tool that is specific for image
	  manipulations

	- copying images from block domains we won't copy the entire chunk
	  (1Gb) but only the amount of data really in use

	- qemu-img when copying images tries to re-sparsify them, so on certain
	  occasion the destination image will be shrinked to a smaller size

	The downside is the additional call to getParentVolume (that seems
	trascurable compared to the amount of data that we're going to copy).

	The following statistics were gathered using:

	 coreutils-8.4-37.el6.x86_64
	 kernel-2.6.32-504.1.3.el6.x86_64
	 qemu-img-rhev-0.12.1.2-2.415.el6_5.3.x86_64

	each copy ran 5 times; the reported values are the average and the
	standard deviation:

	- dd 3Gb data volume on block domain: 67.16s +-2.19s [1]
	- qemu-img 2Gb data volume on block domain: 37.60s +-0.32s

	- dd 2Gb data volume on file domain: 79.02s +-7.44s
	- qemu-img 2Gb data volume on file domain: 56.92s +-12.37s

	All the volumes contained the same (u)random data which is the
	worst case: qemu-img is forced to transfer each cluster of the image
	as dd does (in all the other cases qemu-img transfers less data).
	The only case where the amount of data transfered is different is
	explicitly mentioned.

	[1] here dd pays the price of having to copy the entire chunk of
	    allocated space (3Gb vs 2Gb of real data). Anyway even when
	    normalized to the same amount of data it's still slower.

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

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

	netlink: event monitor
	Current event monitor is implemented as a wrapper around `ip monitor`
	command.  It sometimes returns before the underlying monitor is properly
	started. However, it's used just in a few tests.

	We want to implement more natural version of monitor - wrapper around
	the libnl library. With this monitor we will be able e.g. to monitor
	`ifup` operation on a new device and guarantee properly created network
	before returned.

2015-01-21  Ido Barkan  <ibarkan@redhat.com>

	adapt host outbound qos link share values so they would be always divisible by 8
	This was needed due the fact that tc reports those parameters back after
	rounding them down to multiples of 8, causing vdsm to report rounded
	numbers back to users. Since link share parameters has no absolute meaning,
	only relative one, using multiples of 8 should work around this.

	Bug-Url: http://bugzilla.redhat.com/1174829

2015-01-20  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.

	It is also not included on el7's python-2.7.5 so we are reverting on master as well.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1168217
	Related-To: https://bugzilla.redhat.com/1181624

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

	multipath configurator: raise only if service is active
	If multipathd is active, configuration must be reloaded
	actively by vdsm, otherwise it will be reloaded once
	multipathd starts.

	Configuration will fail only in case multipathd is active
	and cannot be reloaded.

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

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

	protocoldetector: Fix race in protocoldetector tests
	To test removal of stale connections, we were waiting 2 cleanup
	intervals on the client side, to make sure that the server would wake up
	and remove the our stale connection.

	However, since the server runs in a separate thread, and the cleanup
	timeout was initialized when the server was started, it was possible
	that the server did not wake up yet when the client woke up and try to
	send a message. This caused test_reject_very_slow_client_concurrency()
	to fail from time to time.

	Now we initialize _next_cleanup when the object is created, so we know
	exactly when the server should wake up, eliminiating this race.

2015-01-20  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt test: check the full range of replaceable chars in filtering
	The string filtering now checks the full range of characters
	which have to be replaced

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

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

	service: make service compatible with systemctl reload rc
	When reloading service with systemctl and the service is inactive
	rc is 1.
	Same scenario on service return rc 0.

	We want service reload rc to be consistent on vdsm
	and reload is failing when service is down
	so we will adapt sysV to systemd.

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

	tests: deduplicate clientIF fakes
	both clientIFTests and vmfakelib modules
	had an implementation of clientIF fake.

	Some tests could have specific needs for Fakes,
	and it may have sense to have specific Fakes
	tied to specific tests, when one size does not
	fits all (fake.VM is rapidly going this route).

	However, duplication of code is always lurking,
	so there is should be a clean and not debatable
	case to have specific (= duplicate) Fakes.

	It doesn't seem the case for faking ClientIF yet,
	so this patch reunite the two implementations
	into one, to be placed into vmfakelib.

2015-01-20  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: Optimize guest agent string filtering
	The filtering gains a bit of speed by:
	- NO more calling 'ord'
	- Moving all possible restricted chars to the set
	- Mapped the chars to unichr and put then into a frozenset
	- Having only one if
	- Using an array to iterate over the unicode string
	- And remove the function call for each element

	This brought up a performance gain of ~43%

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

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

	tests: mark test_reject_very_slow_client_concurrency as broken
	Too often does this test fail with

	FAIL: test_reject_very_slow_client_concurrency(use_ssl=False) (protocoldetectorTests.AcceptorTests)
	----------------------------------------------------------------------
	Traceback (most recent call last):
	  File "/home/jenkins/workspace/vdsm_master_unit-tests_merged/tests/testlib.py", line 65, in wrapper
	    return f(self, *args)
	  File "/home/jenkins/workspace/vdsm_master_unit-tests_merged/tests/protocoldetectorTests.py", line 157, in test_reject_very_slow_client_concurrency
	    self.check_concurrently(self.check_very_slow_client, use_ssl)
	  File "/home/jenkins/workspace/vdsm_master_unit-tests_merged/tests/protocoldetectorTests.py", line 236, in check_concurrently
	    self.assertTrue(all(done))
	AssertionError: False is not true

2015-01-19  Timothy Asir  <tjeyasin@redhat.com>

	Add remoteServer parameter into gluster volumes list
	Currently glusterVolumesList does not accept remoteServer parameter.
	This adds remoteServer parameter to get the list volumes from
	a remote host.

2015-01-19  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix SR-IOV VF test
	VF incorrectly used PF definition for testing and verification
	(copy-paste mistake). This patch changes the test to use correct
	definitions.

2015-01-19  Ondřej Svoboda  <osvoboda@redhat.com>

	testSetupNetworksAddDelDhcp: Extend to also consider DHCPv6
	Test that DHCPv4, DHCPv6 and dual-stack configurations work.

2015-01-18  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

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

	spec: only gluster requires blivet
	commit 7e49db74d introduced a gluster-only dependecy on python-blivet.

	The dependency should have been localized to vdsm-gluster, and only on
	platforms that have the package. When it is not available, its relevant
	test shouldbe skipped.

	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-17  Dima Kuznetsov  <dkuznets@redhat.com>

	spec: Unlist remove file from spec file
	Patch http://gerrit.ovirt.org/#/c/36711/ removed
	tests/glob_1c60971a-8647-44ac-ae33-6520887f8843.out but it was still
	listed in the spec, breaking 'make rpm' target.

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

	tests: Move assertXMLEqual to testlib [4/4]
	This patch introduces testlib.XMLTestCase and move assertXMLEqual up to
	the new class.

	tests: Move assertXMLEqual to testlib [3/4]
	This patch separates extracting xml fragments from asserting. The path
	argument to assertXMLEqual was removed, and tests that used it are using
	now the new find(xml, match) helper for extracting the needed fragment.

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

	tests: Move assertXMLEqual to testlib [2/4]
	This patch changes the the element argument to xml string, so the
	funcion is not tied to xml.dom.minidom.

	tests: Make it easy to debug assertXMLEqual failures
	The previous code was normalizing xmls by replacing indentation with
	single space, and compared normalized xml using assertEqual. This made
	it very hard to debug failures:

	    AssertionError: '<disk device="lun" sgio="unfiltered" snapshot="no"
	    type="block"> <source dev="/dev/mapper/lun1-xxx"/> <target
	    bus="scsi" dev="sda"/> <serial>54-a672-23e5b495a9ea</serial> <driver
	    cache="none" error_policy="stop" io="native" name="qemu"
	    type="raw"/> </disk>' != '<disk device="lun" sgio="unfiltered"
	    snapshot="no" type="block"> <source dev="/dev/mapper/lun1"/> <target
	    bus="scsi" dev="sda"/> <serial>54-a672-23e5b495a9ea</serial> <driver
	    cache="none" error_policy="stop" io="native" name="qemu"
	    type="raw"/> </disk>'

	Now we normalize xmls by reindenting them, and when xmls do not match,
	we display the indented xmls to make it easy to find the differences:

	    AssertionError: XMLs are different:
	    Actual:
	    <disk device="lun" sgio="unfiltered" snapshot="no" type="block">
	        <source dev="/dev/mapper/lun1-xxx" />
	        <target bus="scsi" dev="sda" />
	        <serial>54-a672-23e5b495a9ea</serial>
	        <driver cache="none" error_policy="stop" io="native" name="qemu" type="raw" />
	    </disk>

	    Expected:
	    <disk device="lun" sgio="unfiltered" snapshot="no" type="block">
	        <source dev="/dev/mapper/lun1" />
	        <target bus="scsi" dev="sda" />
	        <serial>54-a672-23e5b495a9ea</serial>
	        <driver cache="none" error_policy="stop" io="native" name="qemu" type="raw" />
	    </disk>

	tests: Cleanup getAllVolumes tests for block storage
	The old tests had few issues:

	- Careless monkey-patching leaving lvm module patched with fake getLV
	  function, possibly breaking the next tests.
	- Not closing open files when they are not needed any more. This is not
	  critical in testing context, but we don't like to see this bad style
	  anyway, when it can be done correctly in more clear code.
	- Readability could be better

	Also add TODO for future improvements in this code.

	tests: Remove getAllVolumesTests
	Remove the minimal FileStorageDomain.getAllVolumes tests, replaced
	by fileSDTests module, and move the BlockStorageDomain.getAllVolumes
	tests to blockSDTests module.

	The block storage getAllVolumes tests were moved without any change
	(except simplified imports) to make the patch easier to reivew. The old
	tests have various issues that we will fix in the next patch.

	Add tests for getAllVolumes
	Profiling show that FileStorageDomain.getAllVolumes is too slow, taking
	more than 30% of cpu time when starting or recoverting 20 vms with 3000
	disks on NFS storage domain. Each call in this setup took 44 seconds of
	cpu time.

	This patch adds tests documenting the somewhat surprizing behavior of
	getAllVolumes to make sure we do not break it in the next patch.

	Relates-To: https://bugzilla.redhat.com/1177634

	test: Move assertXMLEqual to testlib [1/4]
	assertXMLEqual should be part of testlib, so we can use it in other
	tests easily. To do that, we need to:

	1. Remove unused assertXMLNone
	2. Remove the dependency on xml.dom.minidom
	3. Separate finding xml fragment from asserting
	4. Move assertXMLEqual up to testlib.VdsmTestcase

	This pach removes the unused assertXMLNone method.

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

	virt: move GraphicsDevice into devices subpackage
	Move the Graphics class and its related utilities
	into the devices subpackage.

	Also, rearrange code -without changes besides scatthering
	it around to make it less awkward to use for clients
	outside the package.

	Example: staticmethod -> module function.

2015-01-16  Ondřej Svoboda  <osvoboda@redhat.com>

	testSetupNetworksAddDelDhcp: Delete a lease file left over by dhclient
	The non-obvious reason we must not leave lease files laying around
	is that the extended version of the test would, in bridged cases, detect
	DHCPv4 or DHCPv6 even in permutations in which either was not requested,
	because we reuse a bridge name.

2015-01-16  Timothy Asir  <tjeyasin@redhat.com>

	gluster: add glusterStorageDevicesList verb
	This patch adds new verb glusterStorageDevicesList
	which provides list of storage devices detail in the node.

	Output format is
	{'deviceInfo': [{ 'name': DEVICE_NAME,
	                  'devPath': DEVICE_PATH,
	                  'devUuid': DEVICE_UUID,
	                  'bus': BUS,
	                  'model': DEVICE_TYPE,
	                  'fsType': FILE_SYSTEM_TYPE,
	                  'mountPoint': MOUNT_POINT,
	                  'size': DEVICE_SIZE,
	                  'uuid': DEVICE_FILE_SYSTEM_UUID,
	                  'createBrick': ALLOWED_OR_NOT }, ...]}

2015-01-16  Martin Polednik  <mpolednik@redhat.com>

	hostdev: fix el6 'format' issue
	Since we're using python 2.6 in RHEL6 deployments, the formatting
	string in python is expecting numbered placeholders in the string.
	This patch adds in order to pass el6 unit tests.

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

	virt: cleaner getVMList implementation
	Avoid wasteful work and make
	the verb implementation cleaner with no
	changes in behaviour.
	Performance gains are unfortunately negligible.

	vm: cleaner retrieval of graphics stats
	Device object and device configuration
	data are kept in sync, so there is no need to scan all the
	device configuration data to report it to Engine.

	Instead, just iterate on the Graphics Device classes.
	This new code is also a bit faster in the microbenchmarks, but
	since this method is already very low on profile, total
	performance gain is negligible.

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

2015-01-15  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: report 'dhcpv6' based on dhclient-6 leases

	netinfo: Split a DHCPv4-specific portion from a branch in _parse_lease_file
	The lines starting with "  expire" are only in v4 leases, not in v6.

	netinfo: Do not require the callers of _get_dhclient_ifaces to know the paths
	Make _DHCLIENT_LEASES_GLOBS a default value of _get_dhclient_ifaces, so as to
	localize the lease files code and data in one place.

	And remove a redundant comment in _DHCLIENT_LEASES_GLOBS (the owner of the
	directory is implied).

	netinfo._parse_lease_file: change order of branches, to aid reading
	We first encounter the line "lease {", so let us handle it first, too.
	The original order was a premature speed optimization.

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

	net test: unbreak qosTests
	commit a42f9854 moved a function without touching its test.

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

	tests: Rename assertXML to assertXMLEqual
	New name is more clear and fit nicely with other asserts such as
	assertXMLNone.

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

	Using --enable-koji to configure spec for koji build
	In vdsm.spec we use fedora_koji_build variable to determine few changes
	between other builds to koji specific. Having --enable-koji flag to
	configure.ac allows to generate the spec easily only by running
	configure with --enable-koji.

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

	tests: fix pyflakes glitch
	Fixes:
	./tests/toolTests.py:253: local variable 'args' is assigned to but never
	used

2015-01-14  Ido Barkan  <ibarkan@redhat.com>

	push _qos_to_str_dict down to tc.cls right before it is really needed
	This method handles the command line parameters hence it belongs to the
	layer that calls the command line. Also, using it only at the last
	moment keeps qos options machine readable so it is easier to modify
	them if it is needed.

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

	spec: Require curl
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1139554

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

	fileUtils: Remove unneeded else block
	The code is about handling existing directories, not about taking one of
	two choices. Using early return on errors and keeping the normal code
	path is more clear.

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

	tests: Support DHCPv6 in dnsmasq and dhclient wrappers
	Also account for EL6's dnsmasq not supporting DHCPv6.

2015-01-13  Antoni Segura Puimedon  <toni@midokura.com>

	contrib: add useful shell functions to assist in vdsm development
	With this file, that you can just source from your ~/.zshrc, or ~.bashrc
	it is much more convenient to do common tasks such as install the packages
	you just build, uninstall vdsm, etc.

2015-01-13  Mooli Tayer  <mtayer@redhat.com>

	tool: change configure verb logic.
	If configurator.configure() is called when configure(isconfigured()=NO,
	validate()=False and force()=False), and InvalidConfig is raise.

	In fact, configuration should be performed.

	A new test covers all of this method's
	truth table, so that all edge cases are tested..

	tool: change in configurators import.

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

	ipwrapperTests: prevent infinite stuck
	In case when iterator.next() has nothing to return, thread stuck.
	To prevent this case, we added timeout to testMonitorInteration test.

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

	testSetupNetworksAddDelDhcp: Assert for source routing only in DHCPv4 cases
	The test will be parametrized for checking the combinations of DHCPv4
	and DHCPv6.

2015-01-12  Mooli Tayer  <mtayer@redhat.com>

	tool: configurator module names optional, defaults to file name.

	tool: small doc format change.

	tool: autoload modules.
	Configurator modules are loaded once in the beginning
	of vdsm-tool's operation.

	Once vdsm-tool uses autoloading adding new
	configurators does not requires changing
	configurators.py but only module logic and packaging.

	This also enables Manual installation of modules.
	If desired, we could have a /etc/vdsm/configurators.d
	in the future.

	The import of validate_ovirt_certs needed a change due
	to autoload.

2015-01-12  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/show_bug.cgi?id=1112861

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

	utils: move NoIntrCall from storage/misc.py to utils.py
	NoIntrCall and NoIntrPoll functions are defined on two different places.

	We would like to use NoIntrCall in networking too, so i moved it from
	storage/misc.py to utils.py.

2015-01-12  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Modernize functions that recognize the usage of DHCP from lease files

	IpConfig: Rename inet4 and inet6 parameters

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

	virt: Silense pyflakes about unused imports
	Recent virt merge left apparantly unused imports, breaking the build.
	Add reference to these names to make pyflakes happy again.

	virt: Add missing import
	Recent virt merge migrated a constant to another module, leaving the
	required import behind, breaking the application.

	tests: Remove unused imports
	Recent virt merge left behind some unused imports, breaking the build.

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-10  Dan Kenigsberg  <danken@redhat.com>

	make check: fix pyflakes test
	Commit 321eabf5 broke pyflakes test by overriding the output of "find"
	with a limitted WHITELIST. This patch appends the WHITELIST to all found
	*.py files.

2015-01-10  Ido Barkan  <ibarkan@redhat.com>

	rename tc._classes as it is used publically

2015-01-10  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/1176517

2015-01-10  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Remove 'ipv6' parameter we won't use, and an outdated, invalid TODO
	_parseLeaseFile is going to support parsing of both dhclient -4 and -6
	lease files and it will need no extra parameter/switch.

	netinfo: Rename and export only one bondOpts() function
	_bondOpts(), originally without _, now serves as a low-level reader of all
	bonding properties. The public bondOpts() never returns read-only values
	and special options such as 'slaves'.

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

	virt: move NetworkInterfaceDevice into vmdevices
	No code changes besides import fixes and the renaming:
	vm.NetworkInterfaceDevice -> vmdevices.network.Interface

	virt: move Drive class into vmdevices subpackage
	No code changes besides import fixes.

	virt: make vmdevices a subpackage
	This patch transforms the vmdevices module into a subpackage,
	to make it suitable to host the remaining, big devices
	in nicely separate modules.

	A few decisions where made for the sake of practicality
	and to make this patch minimal, although meaningful:

	- the subpackage retains the 'vm' prefix instead the simpler
	  'devices', to reduce name clashes.
	- not-empty __init__, hosting subpackage imports and constants.
	  Nothing else will go there.
	- 'small' devices moved into a generic module named 'core',
	  which is the shortest yet meaningful name I could find.

	No changes besides import fixes and code being scatthered around.

	virt: sampling: fix order of imports

	numa: fix schema omission
	document the missing 'nodeIndex' field
	which is actually sent from Engine.

2015-01-08  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-08  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Make bootproto4 a boolean and rename it while it is still unused
	No other protocol (BOOTP) is supported and the future 'dhcpv6' flag will
	be a boolean as well (related to the already existing 'dhcpv6' flag
	in setupNetworks).

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

	vmTests: clean after assertBuildCmdLine
	Before this patch, assertBuildCmdLine left a temporary
	    /tmp/tmp_Pj21g9ffe28b6-6134-4b1e-8804-1185f49c436f.recovery
	file behind, since it monkey-patched P_VDSM_RUN with no trailing slash.

	This patch fixes this mistake, but it also makes assertBuildCmdLine use
	more modern testlib functions for mokey-patching and tempdir.

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

	ip route: parse only first part of each route
	This patch makes sure that the output of `ip route show table all` has
	one line corresponding to exactly one route. It then ignores whatever
	follows the first backslash of a route text. The motivation is to ignore
	'cache' lines, which are of no interest to Vdsm at the moment.

	ip route: parse route flags
	Previously, routes like

	    unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101
	    broadcast 240.0.0.255 dev veth_23  table local  proto kernel  scope link  src 240.0.0.1

	(the latter occuring natually in kernel's "local" routing table)
	would just spew warnings in source routing tests. This is because we
	parse routes from all routing tables, not just for interfaces we manage,
	to avoid calling iproute2 multiple times.

2015-01-07  Ido Barkan  <ibarkan@redhat.com>

	fix unsupported errno system symbol on RHEL6
	Replace ENOTSUP with EOPNOTSUPP that is supported on older distributions.
	This bug was introduced on 4cf9ba7fb4df09c75fc1bce000225334e8ed5b8c
	and shouldn't be backported.

	fixed a key error in _delNetwork
	When _delNetwork was called from _delBrokenNetwork its netinfo
	is adapted so it would be able to remove the broken netwrok.
	Without this patch, trying to remove a broken bridgeless network fails
	With a KeyError due to a missing bootproto element.

	Traceback (most recent call last):
	  File "/usr/share/vdsm/supervdsmServer", line 100, in wrapper
	    res = func(*args, **kwargs)
	  File "/usr/share/vdsm/supervdsmServer", line 200, in setupNetworks
	    return setupNetworks(networks, bondings, **options)
	  File "/usr/share/vdsm/network/api.py", line 798, in setupNetworks
	    configurator=configurator)
	  File "/usr/share/vdsm/network/api.py", line 404, in _delBrokenNetwork
	    implicitBonding=False, _netinfo=_netinfo)
	  File "/usr/share/vdsm/network/api.py", line 223, in wrapped
	    ret = func(**attrs)
	  File "/usr/share/vdsm/network/api.py", line 462, in _delNetwork
	    net_ent.ip.bootproto = _netinfo.networks[network]['bootproto4']
	KeyError: 'bootproto4

	This was introduced by commit 1886113ee096f2d414738be0c5b11ca5079a5a3c
	and should/shouldnot be backported to the stable branch.

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

	storageServer: Format mismatches only when needed
	For formating list of mismatches, we can implement __repr__ on the
	Mismatch class instead of explicit formating. This is generaly better
	since we pay for formatting only when logging level requires formatting.

	This also eliminate, pyflakes-0.8.1-3.el6 warning:

	    vdsm/storage/storageServer.py:427: list comprehension redefines 'e' from line 421

	storageServer: Fix Mismatch initialization
	Commit e57e0bdb3e was verified only with the positive flows, since it is
	hard to simulate connection mismatch. In case of a real mismatch,
	attmpting to log the mismatches would raise "TypeError: not enough
	arguments for format string" hiding the real error.

	This patch adds some trivial tests and initialize the "args" instance
	variable.

2015-01-06  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: regression on setupNetworks
	During schema and code alignemnt Host_setupNetowrks entry was removed
	from command_info. Adding back the entry and fixing schema verification
	test.


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

2015-01-06  Ido Barkan  <ibarkan@redhat.com>

	Added errno.ENOTSUP to excepted tc error codes
	As reported in https://bugzilla.redhat.com/show_bug.cgi?id=1165257#c9
	on RHEL 7, when removing a non existent tc object an ENOTSUP
	is returned instead of ENOENT or EINVAL.

2015-01-06  Amador Pahim  <apahim@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.

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-06  Yaniv Bronhaim  <ybronhei@redhat.com>

	For koji build enable hooks rpms
	Build for fedora require rpms build for all vdsm hooks.

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

	vm: log xml from/to libvirt at 'info' level
	The XML which VDSM sends or receive to libvirt
	is a critical piece of information for troubleshooting
	issues, and we must make sure to log it unless the user
	really want VDSM to be really silent.

	So, bump the relevant logs from 'debug' to 'info',
	even if we know the xml dump is actually debug
	information.

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

	Revert "jsonrpc: Image_upload missing in command_info"
	This reverts commit 691a6f49b785b725439230a3f0bf55a9e71f539b, as it
	was not needed on the master branch. We should have backported
	http://gerrit.ovirt.org/35533 instead.

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

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

2014-12-31  ibarkan  <ibarkan@redhat.com>

	improve testSetupNetworksNiclessBridgeless readability

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

	Revert 'Create default multipath.conf during install'
	Revert http://gerrit.ovirt.org/#/c/30704
	as the original problem of nonexistent multipath
	configuration on vdsm start is resolved by:
	http://gerrit.ovirt.org/#/c/30909
	which configurates multipath before vdsm starts
	using the vdsm configuration tool.

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

	tests: Make pyflakes happy with apparently unused variable
	Pyflakes was upset by what looks like an unused local variable.  The
	local variable was used to keep a reference to a Receiver instance that
	must be live during this test.

2014-12-30  Shahar Havivi  <shaharh@redhat.com>

	adding missing import for errCode

2014-12-30  Amador Pahim  <apahim@redhat.com>

	Fix schema
	Current schema is presenting the build error:

	 ValueError: 'HostDeviceParams' comment mentions 'physfn' which is not defined

	This patch is adding the missing 'physfn'.

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

	tool: configurators package should only contain configurators.
	in preperation for autoloading modules. Moving configfile.py out.

	tool: change configurators from classes to modules.
	Currently we have:
	|-- configurators                    package
	|   |-- certificates.py              module
	|   |   |-- ModuleConfigure          class
	|   |-- libvirt.py                   module
	|   |   |-- ModuleConfigure          class
	|   |-- sanlock.py                   module
	|   |   |-- ModuleConfigure          class

	I am suggesting to make this flatter:
	|-- configurators                    package
	|   |-- certificates.py              module
	|   |-- libvirt.py                   module
	|   |-- sanlock.py                   module

	Defaults moved from the less visible __init__.py to
	the configurators consumer. What was once named a ModuleConfigurer is now called
	a configurator module.

2014-12-29  Martin Polednik  <mpolednik@redhat.com>

	hostdev: report physfn
	Each sr-iov virtual function is actually a separate function on a pci
	bus. Libvirt reports these functions on the same level as physical
	functions, but sysfs provides us means of determining which pf does
	given vf belong to. This is useful in order to correctly construct the
	tree.

2014-12-29  Dima Kuznetsov  <dkuznets@redhat.com>

	infra: Switch utils calls to filecontrol
	Change all call to functions moved to filecontrol to appropriate module
	and remove old calls from utils

	spec: Enable vhostmd on non-koji Fedora builds
	with_vhostmd is configurable since vhostmd is missing from Centos 6/7 +
	EPEL. For everywhere else, we want to set with_vhostmd=1

	Recently, we've added

	 http://jenkins.ovirt.org/job/vhostmd_create-rpms_el6/
	 http://jenkins.ovirt.org/job/vhostmd_create-rpms_el7/

	which let us ship vhostmd within oVirt repos.

	So basically, we can take vhostmd if it's not el, or if it's built out of koji.

	qemu-img: Allow creation of zero-sized volumes
	In previous version if size is zero it was omitted from the command

2014-12-28  Shahar Havivi  <shaharh@redhat.com>

	v2v: adding os support version for v2v
	as well as fixing for broken test in el6.
	el6 does not support etree syntax that is use to parse xml in v2v as
	well as virt-v2v import from vmdk (libvirt image) is not supported in
	el6.

2014-12-25  ibarkan  <ibarkan@redhat.com>

	be smarter about forcing bridge removal

2014-12-24  ibarkan  <ibarkan@redhat.com>

	tests: Improve assertNetworkExists and assertNetworkDoesntExist
	Both should also verify that bridges actually exist or absent.
	Currently we only assert that bridged networks are stored in libvirt.

	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

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

	oopTests: Use monkeypatch for changing idle time

	sd: remove unused volumeExists method
	Last used by: http://gerrit.ovirt.org/18274

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

	Adding %configure flags for rhev_build

2014-12-23  Ido Barkan  <ibarkan@redhat.com>

	tests, tool: Suffix veth and dummy names with random strings
	With much lower chance to collide we can simplify the process of creating
	the virtual network devices.

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

	schema: verify line length to be shorter than 80

	schema: verification of API.py and schema during UT
	In order to automate verification of API changes with schema we added
	a unit test which breaks build if there is any discrapency.

	The verification covers most of issues found:
	- number of args in verb and schema
	- optional args in schema vs default args in api
	- return value in command_info and schema

	Due to API module being loaded for schema verification we needed to
	fix bridgeTests.py

2014-12-23  Dima Kuznetsov  <dkuznets@redhat.com>

	infra: Add filecontrol module
	Added module with fcntl convenience functions

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

	netinfo: Infer 'bootproto4' just from the existence of a DHCP lease
	If we found an active (not outdated) DHCPv4 lease for an interface we don't
	have to check if we have an address. Most probably it will be there.
	If it weren't we would not be concerned about 'bootproto4' attribute anyway.

	netinfo, tests: Rename internal 'dhcp4' variables to get in line with 'dhcpv6'

2014-12-23  Federico Simoncelli  <fsimonce@redhat.com>

	Using with_rhev flag in spec to configure rhev changes if required
	This flag will allow to set specific restrictions when building vdsm
	as part of rhev.

	* dumpStorageTable.py was moved[1][2] from vdsm-cli to vdsm package.

	  As result when updating vdsm without vdsm-cli there is a conflict
	  between the old vdsm-cli and the new vdsm packages.

	  Our old bootstrap code which is shipped with rhevm-3.0 installs
	  packages one by one, failing any bootstrap if such conflict exists.

	  The temporary simplest solution is to pull vdsm-cli into dependency try
	  of vdsm package, this dependency will be removed in future when
	  newer vdsm-bootstrap be distributed to all rhevm machines.

	[1] Ic9dfdc2
	[2] http://gerrit.ovirt.org/1889

	* Disabling creation of gluster packages during vdsm make process
	  As described in bz1031707, vdsm 3.3.0 should not provide vdsm-gluster
	  rpm

2014-12-23  Alon Bar-Lev  <alonbl@redhat.com>

	api: compat: fix api breakage of 'config' and 'netinfo' used by bootstrap
	rhevm-3.0 depends on previous vdsm-bootstrap which uses config and
	netinfo packages.

	config and netinfo packages are now moved to the 'formal' vdsm api located
	at vdsm namespace.

	In order to allow rhevm-3.0 install vdsm-4.9.6 the legacy config and
	netinfo should be available.

	The old bootstrap code does not start the libvirtd service before
	using the netinfo module.

	The current vdsm.netinfo needs running libvirtd or it fails.

	This patch starts the libvirtd service during the import of the
	compatibility module.

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

2014-12-22  ibarkan  <ibarkan@redhat.com>

	There is no need to decorate all tests with RequireDummyMod
	This is since setupModule already needs the dummy module to be loaded in order
	to add dummy links. So even tests that are not decorated with RequireDummyMod
	actually require it.

	teach addNetwork to add a netwrok to an existing bridge
	Although this adds an additional ossible flow for addNetwork,
	this commit does not yet change VDSM's behavior as the situation
	where a bridge should already exist should still not yet happen.

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

	storageServer: Minor cleanup
	Various cleanups, addressing Federico and Dan comments from the previous
	patch:

	- Make match() private
	- Replace str(e) with "%s" % e, to avoid (unlikely) unicode encoding
	  errors when converting to string.
	- Use "mismatches" instead of "mismatch"

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

	tool: cleanup old enum names in comments left over from 34046.
	I forget about them in one of the rebases:
	http://gerrit.ovirt.org/#/c/34046/2..4/lib/vdsm/tool/configurators/__init__.py,cm
	(They where actually replaced in a later commit)

2014-12-21  ibarkan  <ibarkan@redhat.com>

	teach delNetworks to remove a network entity under a bridge
	By leaving the bridge intact, VDSM will be able to allow
	partial network editing while VMs are connected to it.
	Inter-VM networking on the bridge is also preserved during
	network editing.
	This commit does not yet change VDSM's behavior.

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

	clientIF: update doctext to inclode json-rpc

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

	spec: remove redundant 'Requires(X): policycoreutils-python'.
	Having an rpm as both 'Required' and 'Required(post/preun) is redundant';
	a 'Required' dependency is present for post/preun.

	There where two possible solutions here: remove the 'Required(X)'
	or remove the 'Required' lines. I choose the first since an rpm
	dependency for stage x, is a dependency for all stages before x.
	This is done so that rpm will never ask to install a package when
	trying to remove one[1]. This means that we practically need
	policycoreutils-python for all stages (except postun).

	See also:
	[1] Context Marked Dependencies:
	http://www.rpm.org/max-rpm-snapshot/s1-rpm-depend-manual-dependencies.html

	[2] related vdsm patches:
	8409, 10000

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

	spec: kernel requirements on EL6
	kernel-2.6.32-465.el6 solves a few NFSv4 issues.
	Since VDSM supports NFSv4, it should require this kernel version to
	ensure it avoids those bugs.

	Note that this fix is not relevant for EL7 and modern Fedora builds,
	which use kernel versions from the 3.x generation.

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

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

	vmdevices: move devices type into hwclass module
	This patch moves the device types in a new
	'hwclass' module, and renames the various vm.${NAME}_DEVICES
	into the corresponding hwclass.${NAME}
	with no changes in behaviour.

	This patch, has little value on its own, but is
	needed to move away more code from vm into vmdevices.

2014-12-17  Dima Kuznetsov  <dkuznets@redhat.com>

	doc: Add index for vdsm-infra package

2014-12-17  Shahar Havivi  <shaharh@redhat.com>

	External hypervisor VMs integration
	Added v2v module - added ability to list VMs from external source
	(non KVM) via libvirt.

	The v2v module aims to add the ability to vdsm to integrate with
	external hypervisors and import VMs directly to storage domain.
	It will have an API for listing VMs with basic properties (such as name,
	disks and network) as well as an API for importing an actual VM from
	external hypervisor.

	v2v module will use virt-v2v to convert the VM from other hypervisors as
	well as libvirt for listing existing VMs.

2014-12-17  Dima Kuznetsov  <dkuznets@redhat.com>

	doc: Remove create_sl.sh
	sphinx does not require this.

2014-12-17  ibarkan  <ibarkan@redhat.com>

	There is no need to decorate all tests with ValidateRunningAsRoot
	This is since setupModule already requires root previliges when
	Adding dummy links. So even tests that are not decorated with
	ValidateRunningAsRoot actually require root previliges.

2014-12-16  Nir Soffer  <nsoffer@redhat.com>

	storageServer: Improve iscsi connection logging
	We have several bugs where iscsi storage connection are not disconnected
	properly, but the logs contains no info that can help debugging such
	issue. Now it should be very clear why disconnect operation is skipped.

2014-12-16  Petr Horáček  <phoracek@redhat.com>

	netlink: return link/addr/route's name only when available
	When we try to get information about a removed device without a
	corresponding cache, _get_link() will end up with ENODEV exception.

	This case may happen, for example, when we catch DELLINK event-object
	(which includes related link's id) and then try to get info about a
	related link that has also been deleted.

	Now _link/route/addr_functions() always return indexes and if it is
	possible, label too. ENODEV error raised by _link_index_to_name
	(in case of not available device) is ignored.

	This patch is needed by following 'netlink: event monitor'[1] patch. In
	case, when we catch NEWLINK event, everything works great and we are
	able to return related device's name. However, when we catch DELLINK
	event, we are not able to get name of related link (which has been
	already deleted), so we at least return its ID from event object. (If we
	have old links stored somewhere, we could use ID to map them. It could
	be handy, when we use EventMonitor in interpreter for some debugging
	too.)

	[1] I23ea72986564c5a115e36be0e7cf679c28c8ea96

2014-12-16  Amador Pahim  <apahim@redhat.com>

	Fix pep8 compliance after 6b1b446

2014-12-16  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  Amador Pahim  <apahim@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.

2014-12-16  ibarkan  <ibarkan@redhat.com>

	convert sampling classed to new style classes
	The use of old style classes is discourged in modern Python

2014-12-16  Antoni Segura Puimedon  <toni@midokura.com>

	utils: Make CommandPath try to find the executable
	Before this patch, if the executable was not one of the proposed
	paths in the parameters, it would raise straight an ENOENT OSError.
	With this patch, it will use distutils find_executable before
	bailing out.

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

2014-12-16  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Move 'dhcp4' parameters to the end in helper functions

2014-12-16  ibarkan  <ibarkan@redhat.com>

	rename _libvirtNets2vdsm as it is used publicly

	fix docstring format

2014-12-16  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Retrieve a VLAN's NIC after its ID in getVlanBondingNic
	Obviously, we cannot supply a VLAN's underlying device (eth0) to getVlanID,
	it has to be the VLAN (eth0.100) itself.

	Fixes: http://gerrit.ovirt.org/18182

2014-12-16  ibarkan  <ibarkan@redhat.com>

	rename nets to libvirt_nets for readability

2014-12-16  Francesco Romani  <fromani@redhat.com>

	vm: promote some debug messages to warn
	Promote to 'warn' some logs which reveal
	behaviour that may surprise the user.

	This patch is part of the preparation for
	the switch to default log level to 'info'
	in VDSM.

2014-12-15  Francesco Romani  <fromani@redhat.com>

	vm: promote some debug messages to info
	Promote to 'info' some logs which
	are high level and important enough to deserve it.

	This patch is part of the preparation for
	the switch to default log level to 'info'
	in VDSM.

	migration: promote debug to info
	Some logs we emit in the migration flows
	are more suitable as info() than as debug().

	This patch is part of the preparation for
	the switch to default log level to 'info'
	in VDSM.

2014-12-15  Petr Horáček  <phoracek@redhat.com>

	tcTests: bridge deleted before downed

2014-12-15  ibarkan  <ibarkan@redhat.com>

	Simplify testAddVlanedBridgeless
	There is no need for the networks dictionary.

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-13  David Caro  <dcaroest@redhat.com>

	Allowing to skip checks from command line
	We were forcing the value of with_checks in the spec, overriding any value
	passed from any external source (rpmmacros, command line, etc.)

2014-12-13  Martin Polednik  <mpolednik@redhat.com>

	hostdev: report totalvfs
	Totalvfs is a parameter defined by hardware that tells us how many
	virtual functions we can spawn (if bandwidth of the bus allows it).
	This patch adds totalvfs field to host device tree to device params.
	The value is read from /sys/bus/pci/devices/x/sriov_totalvfs where x
	is name of the device in the format of nnnn:nn:nn.n.

2014-12-13  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Image_upload
	Align naming between API.py and schema.

2014-12-12  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: VM_updateVmPolicy
	Align naming between API.py and schema.

	jsonrpc: LVMVolumeGroup_create
	Align naming between API.py and schema.

2014-12-12  Nir Soffer  <nsoffer@redhat.com>

	hba: Run fc-scan in supervdsm
	On master zombiereaper is available in supervdsm, so we can run fc-scan
	from suprevdsm instead of using sudo.

2014-12-12  Petr Horáček  <phoracek@redhat.com>

	ipwrapperTests: prevent infinite stuck of iterator
	Sometimes, ipwrapper monitor.start() is not fast enough and it's
	returned before it's proper started and listening. In this case, monitor
	doesn't catch the first created device and iterator.next() stuck
	forever.

	I included quick sleep() fix, to prevent this problem until we get new
	netlink-based event monitor.

2014-12-12  Dan Kenigsberg  <danken@redhat.com>

	net tests: fix api.addNetwork call
	commit 7b39590d4 forgot to rename the function in this test.

2014-12-11  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Host_delNetwork
	Newly modified API verb needs aligment with schema.

2014-12-11  Francesco Romani  <fromani@redhat.com>

	vm: sampling: docs: document expected data format
	Add docstrings to sample functions to document
	the expected output.

	It is hopefully more practical to keep this
	doc up to date instead of digging into the libvirt
	python bindings to rediscover the wheel each time.

2014-12-11  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Host_getVMList
	Align naming between API.py and schema.

2014-12-11  Martin Polednik  <mpolednik@redhat.com>

	hostdev: make caps in listByCaps truly optional
	In order to make the api cleaner, removes the need to specify the
	caps parameter (defaulting to None which means all devices)

2014-12-10  Ondřej Svoboda  <osvoboda@redhat.com>

	supervdsmServer: Remove needless parentheses
	Amends: http://gerrit.ovirt.org/35311

2014-12-10  ibarkan  <ibarkan@redhat.com>

	rename netEnt to net_ent

2014-12-10  Francesco Romani  <fromani@redhat.com>

	virt: make domain_descriptor.py API pep8-friendly
	Only changes in naming.

2014-12-10  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: VM_getStats
	Align naming between API.py and schema.

	jsonrpc: VM_snapshot
	Align naming between API.py and schema.

2014-12-10  Dan Kenigsberg  <danken@redhat.com>

	net tests: rename temporary variable
	vdsm_net is too confusing with self.vdsm_net.

2014-12-10  Ondřej Svoboda  <osvoboda@redhat.com>

	testSetupNetworksAddDelDhcp: Check for DHCPv4 also on the device (or bridge)

2014-12-10  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Make pep8/flake8 happy with the indentation

2014-12-10  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: StoragePool_updateVMs
	Align naming between API.py and schema.

	jsonrpc: StoragePool_removeVM
	Align naming between API.py and schema.

	jsonrpc: StoragePool_getDomainsContainingImage
	Align naming between API.py and schema.

	jsonrpc: StoragePool_getBackedUpVmsList
	Align naming between API.py and schema.

	jsonrpc: StoragePool_getBackedUpVmsInfo
	Align naming between API.py and schema.

	jsonrpc: StoragePool_disconnect
	Align naming between API.py and schema.

	jsonrpc: StoragePool_destroy
	Align naming between API.py and schema.

	jsonrpc: StoragePool_connect
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_getVolumes
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_extend
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_detach
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_deactivate
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_create
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_attach
	Align naming between API.py and schema.

	jsonrpc: StorageDomain_activate
	Align naming between API.py and schema.

	jsonrpc: Image_teardown
	Align naming between API.py and schema.

	jsonrpc: Image_sparsify
	Align naming between API.py and schema.

	jsonrpc: Image_reconcileVolumeChain
	Align naming between API.py and schema.

	jsonrpc: Image_prepare
	Align naming between API.py and schema.

	jsonrpc: Image_download
	Align naming between API.py and schema.

	jsonrpc: Host_stopMonitoringDomain
	Align naming between API.py and schema.

	jsonrpc: Host_startMonitoringDomain
	Align naming between API.py and schema.

	jsonrpc: Host_getStorageDomains
	Align naming between API.py and schema.

	jsonrpc: VM_getDiskAlignment
	Align naming between API.py and schema.

	jsonrpc: Host_addNetwork
	Newly modified API verb needs aligment with schema.

	jsonrpc: VM_setIoTune
	Align naming between API.py and schema.

2014-12-10  Antoni S. Puimedon  <asegurap@redhat.com>

	Make _addNetwork and _delNetwork private

	network: Make vdsmd delNetwork use supervdsmd setupNetworks
	delNetwork is part of a very old and deprecated API that we have to
	eventually shed off in the next major release. It makes sense to
	just make an adapter so that we can simplify network.api to keep
	a single entry point.

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  Ondřej Svoboda  <osvoboda@redhat.com>

	testSetupNetworksAddDelDhcp: Improve readability

2014-12-10  Antoni S. Puimedon  <asegurap@redhat.com>

	network: Make vdsmd addNetwork use supervdsmd setupNetworks
	addNetwork is part of a very old and deprecated API that we have to
	eventually shed off in the next major release. It makes sense to
	just make an adapter so that we can simplify network.api to keep
	a single entry point.

2014-12-09  Petr Horáček  <phoracek@redhat.com>

	libnl: non-existing link returns exception instead of None
	Because of backward compatibility we use two different functions for
	getting the link in _get_link(). In case of non-existing device,
	rtnl_link_get_by_name() returns None, rtnl_link_get_kernel() raises
	NLE_NODEV exception.

	To make _get_link() function consistent, we return link as None in the
	case of NLE_NODEV exception.

2014-12-09  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: VM_setCpuTuneQuota
	Align naming between API.py and schema.

	jsonrpc: VM_setCpuTunePeriod
	Align naming between API.py and schema.

2014-12-09  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.

2014-12-09  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Host_setupNetworks
	Align naming between API.py and schema.

2014-12-09  Allon Mureinik  <amureini@redhat.com>

	spec: fix selinux-policy requirement for EL6
	Bug-Url: https://bugzilla.redhat.com/1160808

2014-12-09  Francesco Romani  <fromani@redhat.com>

	janitorial: fix pep8 glitch
	Fixes this pep8 error:

	./tests/functional/utils.py:245:25: W292 no newline at end of file

2014-12-08  ibarkan  <ibarkan@redhat.com>

	tests: factor out api calls response parsing
	This will prevent unclear KeyError Exceptions when the service has failed to
	load or when an api call has raised an exception.

2014-12-08  Yeela Kaplan  <ykaplan@redhat.com>

	Move multipath configuration to vdsm-tool configurator
	Previously multipath is reconfigured on each vdsm
	service restart.

	multipath.conf should not be changed since important changes
	done by the sysadmin are needed and might be overwritten.

	vdsm will fail to start if multipath configuration is
	required.

	Multipath will be reconfigured only on user demand
	using "vdsm-tool configure --module multipath".

	as part of the move to using vdsm tool configurator for multipath,
	we want to consolidate the configuration of multipath with
	other configurators, such as libvirt.
	Rotating the configuration file will end up deleting the
	original multipath conf file for the user,
	- pre vdsm installation. So we'll use backup files with
	timestamp instead of rotation.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1076531

2014-12-08  Dan Kenigsberg  <danken@redhat.com>

	net tests: allowDhcp is no-op if there is no firewall
	firewall.allowDhcp is intended to allow DHCP traffic to the tested
	interface. With this patch, we assume that if we find no firewall
	service running, DHCP is already allowed.

	This change allows DHCP-related tests to run when no firewall is
	running on host.

2014-12-07  Yeela Kaplan  <ykaplan@redhat.com>

	ioprocess: reduce log level to INFO
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1170510

2014-12-05  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/1142776

2014-12-05  Petr Horáček  <phoracek@redhat.com>

	network: unified configureLibvirtNetwork parameters
	configureLibvirtNetwork() parameters in iproute2 and pyroute_two
	configurators are changed to fit the ifcfg's ones which was introduced
	in 122c03886c4f42aa8c563e429aa7f4a9a1eb5a5b.

2014-12-04  Martin Polednik  <mpolednik@redhat.com>

	vdsm: expose hostdev via vdsClient
	Exposes current API verb hostdevListByCaps by vdsClient,
	using pretty tree graphical structure.

2014-12-04  Nir Soffer  <nsoffer@redhat.com>

	tests: Add tests for registering instancemethod
	Event class cannot be used with instance methods, so we must use partial
	holding weak reference to the object. This code is used in StoragePool,
	and these tests validate that this works and serve as example code for
	Event.

2014-12-04  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: Introduce IPv6_ADDRESS_AND_CIDR

	networkTests: Reorganize parameters to dnsmasq and improve comments

2014-12-04  Allon Mureinik  <amureini@redhat.com>

	storage: Fix VMPathNotExists text
	Bug-Url: https://bugzilla.redhat.com/1169512

2014-12-04  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: Fix operator precedence so a parameter to dnsmasq is not empty
	--dhcp-option=3 (with the missing ,<router> part) forces dnsmasq not to pass
	any gateway to DHCP clients, in contrast to sending the gateway of the system
	dnsmasq is running on, when this parameter is not used.

	No tests employ this functionality nowadays (they did before source route
	testing) but let's be correct.

2014-12-04  Antoni S. Puimedon  <asegurap@redhat.com>

	net_func_tests: add calling method name to setupNetworks
	It is usually difficult to know which test originated the
	setupNetworks calls in the logs. This patch makes it easier to debug

2014-12-03  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  Martin Sivak  <mars@montik.net>

	Restore the default value of rhev_build in the spec file

2014-12-03  Francesco Romani  <fromani@redhat.com>

	sampling: live merge: avoid wasteful picklecopy
	The Vm.queryBlockJobs() API always return a fresh dictionary,
	so it is safe to copy it directly, saving a picklecopy.

	virt: log.error(exc_info=True) -> log.exception()
	This patch just replaces the occurrences of

	log.error('something', exc_info=True)

	with the recommended idiom

	log.exception('something').

	No changes in behaviour.

2014-12-03  Dima Kuznetsov  <dkuznets@redhat.com>

	hooks: Remove sudo use from ethtool_options hooks
	This hook is running from supevdsm context therefore runs as root.

2014-12-03  Francesco Romani  <fromani@redhat.com>

	vdscli: 'port' argument must be an int
	The 'port' parameter of the cannonizeHostPort
	function should be an int, not a string, and
	should be treated as such.

	This patch fixes the code to so, removing
	TODOs along the way.

	tests: add vdscli.cannonizeHostPort unit tests
	This patch adds tests to cannonizeHostPort as is.
	Future patches will address the FIXMEs and the
	quirks of the function, bulding on the safety
	added by these test.

	xmlrpc: remove useless 'serverPort' attribute
	The BindingXMLRPC class used to have one
	'serverPort' attribute, which was used only on the migration
	path.

	Since commit 3be9ad1f278 was merged some time ago, this
	attribute is unused and could be removed.

	This patch does that.

	vdscli: rename constants and make them private
	the various d_* constants found in the vdscli
	module should not be exported and their naming
	should reflect they are private.

2014-12-02  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-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  Dan Kenigsberg  <danken@redhat.com>

	Revert "use SASL_USERNAME instead of its upstream value"
	This reverts commit b4da9f55ee0010f516212393f5d0562c59603bd3.

	use SASL_USERNAME instead of its upstream value
	commit 98a2692fe reverted broken code, but it also added new code, that
	the reviewer failed to notice. This patch fixes it.

	Bug-Url : https://bugzilla.redhat.com/show_bug.cgi?id=1168689

2014-12-02  Yeela Kaplan  <ykaplan@redhat.com>

	constants: remove unuesd service constant
	Use have been moved to service.py

2014-12-02  Martin Polednik  <mpolednik@redhat.com>

	vdsm: add functionality to reattach host devices
	Release call (libvirt's reAttach call) is mandatory to properly
	reattach device back to host, unbinding it from VFIO driver and
	binding it back to host driver.

	vdsm: add functionality to detach host devices
	Detach call (libvirt's dettach/detachFlags call) is required to
	properly detach device from host. Dettaching device from the host means
	unbinding it from it's driver and binding it to VFIO driver, which
	serves as KVM device driver.

2014-12-02  ibarkan  <ibarkan@redhat.com>

	remove updating libvirt_nets, it has no effect

	factor out hook logic in setupNetworks

	removed unused argument copies

	factor out parts of setupNetworks for better readability

	do not delete networks from parameters

2014-12-01  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  Yeela Kaplan  <ykaplan@redhat.com>

	sosreport: Don't try to collect info from sockets
	sosreport gets an IOError trying to collect data
	from svdsm.sock:
	'caught IO error copying /var/run/vdsm/svdsm.sock'

2014-12-01  Adam Litke  <alitke@redhat.com>

	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

	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

2014-12-01  Francesco Romani  <fromani@redhat.com>

	tests: fix HostStatsThread tests
	In commit 4567f368bc3b initial tests for HostStatsThread
	were added. Unfortunately, the patch was verified
	on branch, not on master, so master branch broke
	when the patch got merged.

	The mistake slipped into because
	* the parent patch contained the code which made the
	  test work ok, and was abandoned (see below).
	* 4567f368bc3b applied cleanly against mastr.

	This followup patch fixes that in the following way
	- mark test as broken: the existing behaviour is *not*
	  to continue in presence of errors - see
	  http://gerrit.ovirt.org/#/c/29401/ abandoned
	  for that reason.
	- wrap a real HostSample to be more correct
	- add a timeout to avoid hang indefinitely.

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  ibarkan  <ibarkan@redhat.com>

	rename networkAttrs to attrs

	rename networksAdded to connectivity_check_networks

	move _netinfo and libvirt_nets decleration right before it's used

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-12-01  Francesco Romani  <fromani@redhat.com>

	tests: sampling: add initial HostStatsThread tests
	This patch adds a unit test to HostStatsThread.

	Relates-To: https://bugzilla.redhat.com/1113948

2014-12-01  Dima Kuznetsov  <dkuznets@redhat.com>

	Remove orphaned files
	This patch removes files than are neither mentioned in any code nor
	shipped int the dist tar file.

2014-11-30  Dima Kuznetsov  <dkuznets@redhat.com>

	debian: Add noipspoof files to dist

2014-11-30  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-11-28  Petr Horáček  <phoracek@redhat.com>

	libnl: workaround for _rtnl_link_get_kernel on el6
	If we pass just a link's name to rtnl_link_get_kernel(), el6's kernel
	is not able to return link object. For this case we created
	a workaround with cache and rtnl_link_get_by_name().

2014-11-28  Ondřej Svoboda  <osvoboda@redhat.com>

	networkTests: Make DEFROUTE controllable so the system's gateway is preserved
	testSetupNetworksAddDelDhcp, a test on a veth pair (with dnsmasq and
	a VDSM-invoked dhclient), has recently been adapted to account for source
	routing. Other two tests using dhclient directly however result in
	the replacement of the system's default route.

	Fix this situation on Fedora and RHEL by instructing their dhclient-script
	not to set the gateway on the veth.

2014-11-28  Antoni S. Puimedon  <asegurap@redhat.com>

	dummy_nics: add hotplug=no so udev does not ifup them
	In EL6 udev/initscripts execute ifup if an ifcfg file exists for the
	just plugged device (which applies often for virtual devices). Due
	to how troubling this functionality is they removed it from el7/F20+
	but in el6 it can disrupt our configuring with parallel ifups,
	overriding of bond slaves config, etc.

	drv_name: Make drv_name support unicode types
	Our json serialization and de-serialization for both the hooks and
	persistence add unicode text to the flows of our codebase.

	Before we would only have "foo". Now we have as well u"foo".
	In order to make it work in unicode we also need to provide for real
	unicode characters u"トトロ".

2014-11-28  Federico Simoncelli  <fsimonce@redhat.com>

	build: expose rhev_build to make rpm

2014-11-27  Martin Sivak  <msivak@redhat.com>

	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.

2014-11-27  Genadi Chereshnya  <gcheresh@redhat.com>

	netinfo: Displays active slave for the bond in getVdsCaps vdsmapi-schema: Adding Active slave support networkTests: Test to check if active slave exists
	Adding active slave field for the bond in the getVdsCaps
	Adding active slave in vdsmapi-schema.json
	Displays an active slave if exists or displays '' when there is no active slave

2014-11-27  Yeela Kaplan  <ykaplan@redhat.com>

	sosreport: use service status instead of initd script
	Using initd script obviously fails on el7...

2014-11-27  Vitor de Lima  <vdelima@redhat.com>

	caps: Do not memoize CPU topology
	This patch prevents the CPU topology from being memoized, this is
	needed in order to support host CPU hotplugging, to avoid using
	disabled logical CPUs and to rescan for topology changes in ppc64.

2014-11-26  Francesco Romani  <fromani@redhat.com>

	live merge: fix usage of getLastSample
	In commit 359c7b60b6125cae0ac47b64dfcffde1dd91c9b7
	I forgot to update the sampleVmJobs code to make
	use of the new getLastSample() API.

	This broke live merge, and this patch fixes that.

2014-11-26  ibarkan  <ibarkan@redhat.com>

	Remove unused proxyLock member from SuperVdsmProxy
	The usage was removed in 812fe75

2014-11-26  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-26  Francesco Romani  <fromani@redhat.com>

	tests: split SampleWindow tests
	Reorganize and rationalize the unit tests after
	the introduction of SampleWindow class.

2014-11-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	Arranging format of configure flags to avoid conflicts later

2014-11-25  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-25  Francesco Romani  <fromani@redhat.com>

	utils: add monotonic_time function
	We currently use time.time() to get timestamp
	with (near) second precision.
	We we just need the difference between two instants
	in time, os.times() provide safer alternative
	because it is more resilient with respect to
	system clock adjustments, and can never go
	backwards.

	This function add a simple monotonic_time() function
	based on os.times().

	The drawback of this function is lower resolution.
	The actual resolution depend on the kernel configuration,
	but a commonly found value is ten milliseconds.

	sampling: rename variables to make code nicer
	Rename internal variables of SampleWindow
	methods to make the code nicer and easier
	to read.

	No changes in behaviour.

	vm: log exceptional monitor unresponsive case
	In past ages we added an explicit case to mark
	monitor unresponsive.

	This case may be no long relevant. In order
	to gather evidence against or supporting
	this hypotesis, add an explicit log line
	when this case is applied.

	Also, extract the relevant code in a helper
	method, and add a couple of unit tests.

	virt: sampling: factor numa stats in a method
	This patch moves the NUMA stats collection into
	an helper method, to make the code more consistent
	and a bit tidier.
	No functional changes.

2014-11-24  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.

2014-11-24  Dima Kuznetsov  <dkuznets@redhat.com>

	tests: Add sourceroutingTests and qosTests to make check

	tests: Fix API change in sourceroute.py
	Fix signature change introduced in http://gerrit.ovirt.org/#/c/34067

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-21  Ondřej Svoboda  <osvoboda@redhat.com>

	tests: Add and use assertRuleExists and assertRuleDoesntExist
	DHCPv6-enabled testSetupNetworksAddDelDhcp needs a better diagnosis.

2014-11-21  Vitor de Lima  <vdelima@redhat.com>

	Add missing version comment in onlineCpus
	The onlineCpus property of the capabilities command was missing a
	comment reporting in which version it was introduced.

2014-11-21  ibarkan  <ibarkan@redhat.com>

	avoid reading ifcfg files in netinfo
	getting runtime network information is better via quering
	more standard netinfo api's rather than reading ifcfg configuration
	files which is more error prone.

	We need to confine reading ifcfg files only in the context of
	dealing with the ifcfg configurator.

2014-11-20  Sandro Bonazzola  <sbonazzo@redhat.com>

	sos: remove vdsm pki private keys collection
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1162784

2014-11-20  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-20  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

2014-11-20  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

2014-11-19  ibarkan  <ibarkan@redhat.com>

	make isVDSMInterface and it's helpers static

2014-11-19  Petr Horáček  <phoracek@redhat.com>

	libnl: make link cache optional for link/route/addr_info

2014-11-19  Antoni S. Puimedon  <asegurap@redhat.com>

	host QoS: have service curve parameters be integers
	It does not make sense to represent fraction of bits, specially when
	we get the information from the kernel (though indirectly) and the
	kernel external representation is in integer bps.

	change qosOutbound for a nested 'hostQos':{'out': bandwidth_params}
	The engine had some semantics associated to the original (and never
	used, but shared with vnic traffic shaping) host QoS. That makes it
	a good idea to take a sort of a clean-slate approach to this feature
	that I did not originally take, but I do here in this patch.

	The difference is that it used to be:

	    {'blue': {'nic': 'em1', 'qosOutbound': {'ls': 8 * 1024 ** 2}}}

	and now it will be:

	    {'blue': {'nic': 'em1', 'hostQos': {'out': {'ls': 8 * 1024 ** 2}}}}

2014-11-18  Antoni S. Puimedon  <asegurap@redhat.com>

	libnl: drop libnl-1 dependency
	El6.6 is out. Since the next release of vdsm will not support
	earlier releases than that, we can finally depend exclusively on
	libnl3 and remove libnl1 glue code.

	The next step should be to leverage the extra things that libnl3
	gives us that we could not use up until now, e.g., routes support
	for source routing.

2014-11-18  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.

2014-11-18  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

2014-11-18  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfoTests: suggest to refresh bonding defaults in a unit test
	With the unfortunate, but pragmatic move from determining the defaults
	at runtime to distributing them as a file we might not always be
	up to date when the kernel introduces new bonding options.

	The unit test will now suggest to run `vdsm-tool dump-bonding-defaults`
	when new options are found instead of just failing.

	As we moved from reading the defaults from a reference bond we can no
	longer trigger read errors, thus assertNotRaises was removed from the test.

2014-11-18  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

2014-11-18  ibarkan  <ibarkan@redhat.com>

	refactor StaticSourceRoute for better testability
	changed the way this object is built such that most of the relevant
	information is known at object creation time. This allows better
	testability as the routing rules and ip rules generators can be
	always accessed directly by tests.

2014-11-18  Francesco Romani  <fromani@redhat.com>

	sampling: extract SampleWindow class
	The existing AdvancedStatsFunction does actually
	two different things: wraps a client-provided
	callable, and implements a sliding window for samples.

	This patch splits the two responsabilities.
	Other than cleanup for the sake of clarity and testability,
	future sampling refactoring patches will still
	need to store samples and handle a sliding window;
	but samples will be given instead of grabbed
	(inversion of control, think the new libvirt bulk stats API)
	so this also improve code reuse.

	tests: backport assertAlmostEqual
	vm migration tests depend on the 'delta'
	keyword argument of the assertAlmostEqual method.

	This patch adds the backport of this method,
	thus unbreaking the tests on python 2.6.

	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

	clientIF: strip unneeded logging
	Everything we log inside clientIF.createVm is either
	redundant or with little value.

	Highlights
	* if we need to debug vmContainerLock, there are better
	  and more comprehensive ways to do that
	* no need to log error, it should be reported anyway.

	So this patch strips all the logging from this method.

	vm: replace try/finally with 'with'
	The creation of VM is throttled using a bounded semaphore.
	This patch
	* replaces the try/finally construct with 'with' to make
	  code (a tiny bit) nicer ad smaller
	* drops the log lines around the lock, because
	  - we are now guaranteed the code is correct and always
	    release the lock
	  - if we care about performances and timings (e.g.time spent
	    in locked region) we need more precise instrumentation
	    anyway.

2014-11-17  Sandro Bonazzola  <sbonazzo@redhat.com>

	pep8: fix pep8 on generated vdsm.py

2014-11-17  Yeela Kaplan  <ykaplan@redhat.com>

	oopTests: replace 'if None' with try except clause
	When asserting if the instance is None at the end of the test,
	we already assume that it should be None,
	or else the test fails.
	This means that the 'if None' check is redundant and
	can be moved into a try except clause because in case
	of test failure we still want the relevant logs.

2014-11-17  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.

2014-11-17  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: diskSizeExtend missing in command_info
	Bug-Url: https://bugzilla.redhat.com/1161115

2014-11-16  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: Wrong key name for getDevicesVisibility
	Bug-Url: https://bugzilla.redhat.com/1159637

2014-11-14  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

	qemuimg: add backing file to convert
	This patch adds the support for the backing file in the convert qemu-img
	command.

2014-11-14  Artyom Lukianov  <alukiano@redhat.com>

	Change clientIF to get port as string and not as int from config.
	Bug-Url: https://bugzilla.redhat.com/1163771

2014-11-14  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

2014-11-13  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'

	The bz for the policycoreutils bug is:
	https://bugzilla.redhat.com/show_bug.cgi?id=1148800

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1139873

2014-11-13  Douglas Schilling Landgraf  <dougsland@redhat.com>

	Makefile: add whitelist files to pyflakes and pep8 check
	We should run pyflakes and pep8 check in vdsm-reg-setup.in for example.
	We already have whitelist for pep8. this adds the files also to pyflakes
	check.

2014-11-13  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-12  ibarkan  <ibarkan@redhat.com>

	clean dhclient processes that are left after functional tests
	using a context manager to kill dhclient process that
	outlives the functional test

2014-11-12  Dima Kuznetsov  <dkuznets@redhat.com>

	tests: Avoid printing objects that reference None
	One of the current ioprocess tests checks who holds reference to the
	ioprocess object, but since only a weak reference is stored, if the
	object is freed, we check who holds reference to None, and apparently
	quite a lot things do.

	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-11  Yaniv Bronhaim  <ybronhei@redhat.com>

	fixing pyflakes errors

2014-11-11  Federico Simoncelli  <fsimonce@redhat.com>

	blockVolume: remove inexplicable fixme comment
	There's no apparent reason for this fixme. Since the line is raising an
	exception the "fix me" string appears in the tracebacks making our code
	appear sloppy.

	I searched for other inexplicable fixmes but it seems that this was the
	only one.

2014-11-10  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsm-reg: make vdsm-reg-setup PEP8-happy

2014-11-10  ibarkan  <ibarkan@redhat.com>

	pretty print json in vdsm persistency files
	Adding indentation is making the json a lot more human readable

2014-11-10  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsm-reg: Fix redundant control flow

2014-11-09  Yeela Kaplan  <ykaplan@redhat.com>

	misc: use utils.persist/unpersist instead of execcmd

	Use utils.persist instead of importing ovirt-node Config

	utils: add unpersist for symmetry

	utils: change persistFile to persist
	For style reasons. This way it's compatible with other
	calls in the utils module.

	utils: Use ovirt node for persist files

2014-11-09  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 that were not waited upon to zombiereaper.

	Bug-url: https://bugzilla.redhat.com/show_bug.cgi?id=841486

2014-11-07  ibarkan  <ibarkan@redhat.com>

	fix broken TestConfigNetwork.testAddNetworkValidation
	this was broken after http://gerrit.oveir.org/34538
	was merged.

2014-11-07  Frantisek Kobzik  <fkobzik@redhat.com>

	vm: return displayIp as a string in default case
	Previously, default value of displayInfo.displayIp was number 0. This patch
	changes it to string '0' so that it conforms to the schema.

2014-11-07  Shahar Havivi  <shaharh@redhat.com>

	libvirtconnection: add function to create a new connection
	Added a new function open_connection(), which accept credentials and uri,
	This will open a new libvirt connection and will not be handled by the
	wrapMethod() and will not be stored by the __connection dictionary.

	The new function will be needed by the v2v future patches which will need
	to connect to a remote libvirt given an uri.

2014-11-07  Nir Soffer  <nsoffer@redhat.com>

	guestagent: Simpler and safer disk mapping hash
	Previously diskMapingHash was initialized to the magic value 0, or to
	hash of a sorted json dump of the diskMapping dict. Now diskMappingHash
	is always a real hash, and is read only.

	The hash is computed automatically when the value of guestDiskMapping is
	changed, and there is no way to forget to update the hash.

	guestagent: Use new style class
	Using old style class is a trap for innocent developers. They do not
	support properties in a nasty way, and should be forbidden in vdsm code.

	domain_descriptor: More careful falsy check
	Using "if self._devices" works with xml.minidom, but if we switch our xml
	library to xml.etree, empty element is considered falsy, which will
	create same hash for different xml.

	While this may be a non-issue, using "if self._devices is not None" is
	more correct and predictable.

	domain_descriptor: Eliminate magic hash init value
	We used to initialize devices hash to 0 when there are no devices. There
	is no need for using this magic value. Hashing an empty string does not
	require additional comments and is more general.

	The magic "0" hash value was exposed in the past in the stats xml, and
	could be used for detecting a fresh domain without any devices, but this
	value is not exposed any more since we introduced the guest agent disk
	mapping hash.

2014-11-07  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).

2014-11-07  Daniel Erez  <derez@redhat.com>

	storageServer: remove dead code from getSessionInfo
	storageServer -> getSessionInfo:
	cleanup of unused code ('sessions' varibale is never used).

2014-11-07  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

	tests: make pyflakes happy with outOfProcess tests
	This patch fixes

	python -c 'import pyflakes; print("pyflakes-%s" % pyflakes.__version__)'
	pyflakes-0.8.1
	find . -path './.git' -prune -type f -o \
		-name '*.py' -o -name '*.py.in'  | xargs
	/home/fromani/.local/bin/pyflakes | \
		grep -w -v "\./vdsm/storage/lvm\.py.*: list comprehension
	redefines 'lv' from line .*" | \
		while read LINE; do echo "$LINE"; false; done
	./tests/outOfProcessTests.py:31: 'config' imported but unused

2014-11-07  Mooli Tayer  <mtayer@redhat.com>

	spec: remove redundant check.
	if not fedora 0%{?fedora} evaluates to 0.

2014-11-07  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-04  Yeela Kaplan  <ykaplan@redhat.com>

	spec: require latest version of IOProcess
	This version includes an important fix for
	IOProcess being referenced by the communication thread

2014-11-04  Francesco Romani  <fromani@redhat.com>

	vm: migration: exponential downtime increment
	Migration downtime is calculated using an interpolation
	using the current downtime step (up to a configurabile
	maximum) and the maximum downtime.

	The downtime is incremented at each downtime step until
	it reaches the maximum, or the migration is finished.

	This patch changes the interpolation formula from linear
	to exponential, being the new one:

	d = c ** s + k

	where d is the downtime, s is the step and c is the
	exponentiation base computed in such a way
	of when s = S (number of steps to perform),
	then we will have d = D (selected downtime).
	K is a constant added to make sure that downtime 'd'
	is never equal to zero.

	The rationale for this patch is that moving linearly from
	the minimum to maximum downtime limit isn't very useful:
	if if we took 1s downtime for a migration that could complete
	with 0.1s downtime, that's very bad, but if we take 11s to
	complete a migration that could finish in 10s, it's not a
	big deal.

	So, it makes more sense to step towards the final hard limit
	exponentially rather than linearly.
	In addition, because most of the attempts will be much shorted
	than the final hard limit, it won't blow out the total time to
	complete migration nearly as badly.

	Please note that this patch still preserve an linear
	increment of the wait time.

	Along the way, we take the chance to bootstrap unit
	tests for vdsm/virt/migration.py.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1004101

2014-11-03  Yeela Kaplan  <ykaplan@redhat.com>

	oop: fix tests

2014-11-03  Ondřej Svoboda  <osvoboda@redhat.com>

	hooks: Add a hook to configure IPv6 networking through custom properties
	The hook forwards 'ipv6addr', 'ipv6gateway', 'ipv6autoconf' and 'dhcpv6'
	properties to the API.

2014-11-03  Yeela Kaplan  <ykaplan@redhat.com>

	tests: add unit tests for IOProcess per SD

2014-11-03  Saggi Mizrahi  <smizrahi@redhat.com>

	ioprocess: Have tests check ioprocess and not RFH

2014-11-03  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=1126206

	utils: Move functionality from storage.misc
	move persistFile into utils

2014-11-03  Liron Aravot  <laravot@redhat.com>

	schema: fix guest disk mapping versioning
	The guest disk mapping report feature is being merged to the ovirt-3.5
	branch now, as the current version is 4.16.8 the version on the master
	branch should be fixed as well.

2014-11-01  Petr Horáček  <phoracek@redhat.com>

	setupNetworks: doesn't remove broken nw from runningConfig
	This patch extends http://gerrit.ovirt.org/#/c/22354/:
	network/api.py:setupNetworks() removes broken networks - if network
	is not listed in netinfo, but it's in libvirt, _delBrokenNetwork()
	is called.

	The problem is that when the network doesn't have an existing device,
	we only remove it from libvirt and leave it in RunningConfig.

	TODO: this problem occurs on 3.4 with libvirt 1.2.9

	Now _delBrokenNetwork() remove broken network from runningConfig.

	NOTE: This patch doesn't handle the case, when the network is only in
	RunningConfig, not in libvirt, not in netinfo. This should be solved in
	a separate patch.

2014-11-01  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-10-31  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-31  Martin Polednik  <mpolednik@redhat.com>

	devices: rename VideoDevice to Video
	No functionality changes, only naming

2014-10-30  Nir Soffer  <nsoffer@redhat.com>

	domain_descriptor: Use stable devices hash
	Commit af09a3ff50 changed the way we compute the devices hash. Before
	this commit, we used:

	    hash(devxml.toxml())

	And now we use:

	    hash(devxml)

	Hashing minidom xml element returns a different hash for objects with
	same xml content. It is possible that another libary will compute a
	correct hash from parsed xml, but we should not depend on this.

	tests: Start DomainDescriptor tests
	Adding some tests before fixing hashing implementation.

2014-10-29  Dan Kenigsberg  <danken@redhat.com>

	vdsm.config, vdscli: use function-like print statements
	Get ready for python3 support, some day.

2014-10-29  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix typo in test name

2014-10-29  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fix attribute error on sebool is-configure
	The indentation was added wrongly in previous patch

2014-10-29  ibarkan  <ibarkan@redhat.com>

	relax the validation multiple networks on the same interface
	the only validation that is now left on the vdsm side is that there are
	no 2 networks using the same vlan tag that are connected to the same
	interface concurrently. Also, no 2 untagged networks can be connected to
	the same interface.

	Bug-Url: https://bugzilla.redhat.com/1049476

2014-10-29  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix random failures on el6
	The reject tests were relaying on the behavior in Fedora 20, but on el6
	the concurrent reject tests sometimes behaves differently. On Fedora 20,
	recv() was always returning an empty string, but on el6, sometimes
	socket.error "connection reset by peer" was raised.  Now both results
	are considered as disconnection.

2014-10-28  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-28  Francesco Romani  <fromani@redhat.com>

	tests: move more fakes into vmfakelib
	This patch move more Fakes into the common
	library, to avoid duplication and to give them
	better spotlight.

	Beside renames (e.g. FakeSuperVdsm -> fake.SuperVdsm)
	there are no code changes.

2014-10-28  pkliczewski  <piotr.kliczewski@gmail.com>

	ssl: ssl protocol configurable
	We make ssl protocol configurable in config.py.


	Bug-Url: https://bugzilla.redhat.com/1154184

2014-10-28  Mooli Tayer  <mtayer@redhat.com>

	tool: change enumeration naming.
	Suggesting a name change of isconfigured() return values:
	from: CONFIGURED, NOT_CONFIGURED, NOT_SURE
	to:   YES       , NO            , MAYBE

	tool: extend ModuleConfigurer documentation.

2014-10-28  Ondřej Svoboda  <osvoboda@redhat.com>

	vdsm: capture warnings in log only if supported
	python_warnings_enable is off by default but let's protect ourselves
	if we forget that logging.captureWarnings is not in Python 2.6

2014-10-27  ibarkan  <ibarkan@redhat.com>

	VDSM hook for random network allocation during VM power on
	This hook is useful in cases where one has a set
	of equivalent networks, and wants to distribute
	VMs evenly among them, so the networks share the
	traffic
	load.
	The more VMs allocated with networks, the
	tendency of VMs to be evenly distributed among
	networks rise.
	The hook uses CustomDeviceProperties and a property
	called 'equivnets' which is a whitespace separated list
	of network names. When the VM is started, a random
	network is allocated to it.

	Bug-Url: https://bugzilla.redhat.com/1065405

2014-10-27  Martin Polednik  <mpolednik@redhat.com>

	virt: move balloon device to vmdevices.py
	No real code changes

	virt: move watchdog device to vmdevices.py
	No real code changes

	virt: move tpm device to vmdevices.py
	No real code changes

	virt: move rng device to vmdevices.py
	No real code changes

2014-10-26  Dan Kenigsberg  <danken@redhat.com>

	testrunner: capture warnings in log only if supported

2014-10-26  Yaniv Bronhaim  <ybronhei@redhat.com>

	Fix use with wrong func name

2014-10-25  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

	Moving getSELinuxEnforeMode to utils

2014-10-24  Martin Polednik  <mpolednik@redhat.com>

	virt: move console device to vmdevices.py
	No real code changes

	virt: move smartcard device to vmdevices.py
	No real code changes

	virt: move redir device to vmdevices.py
	No real code changes

	virt: move sound device to vmdevices
	No code changes. This is part of ongoing effort to
	move virtual devices from vm.py to vmdevices.py.

2014-10-24  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-24  Dan Kenigsberg  <danken@redhat.com>

	spec: janitorial: drop with_systemd_macros and with_tmpfiles
	Nowadays we can assume that /usr/lib/tmpfiles.d and systemd_macros exist
	whenever systemd does.

	spec: janitorial: drop references to fedora 18
	We no longer support anything below Fedora 19, so ancient complexities
	can be ignored.

2014-10-23  Francesco Romani  <fromani@redhat.com>

	virt: vm: sanitize earlier the 'smp' parameter
	In the VM creation path, in the Vm._run()
	method, we ensure the presence of the 'smp' parameter,
	which is used in the creation path to build
	the VM Domain XML to be fed to libvirt.

	However, parameter sanitization is better done earlier,
	so this patch moves the check in the Vm.__init__ method,
	and also adds a couple of tests to ensure the 'smp'
	parameter is correct.

	virt: migration: use running() for downtime thread
	Now that migration.DowntimeThread() conforms to the
	interface required by utils.running(), we can make
	use of this context manager and make the code a little
	nicer and shorter.

	virt: migration: avoid implicit thread start
	migration.DowntimeThread used to implicitely
	start() itself at the end of its __init__().

	This is bad practice, so this patch removes
	the implicit start and make the method be called
	when needed.

	virt: migration: rename cancel->stop method
	The most common meaning of  'cancel' is
	'halt operation and discard the current progress',
	which DowntimeThread doesn't do -and there is
	no point in doing.

	What cancel() method does is actually just halt
	the thread without affecting the output, so this
	patch renames the method to stop() in order
	to make it less surprising and and also consistent
	with migration.MonitorThread.

	Besides that there are no changes in behaviour.

	virt: migration: rename helper function
	rename helper function to be a bit more consistent
	with the new style guidelines.

2014-10-23  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-10-23  Vinzenz Feenstra  <vfeenstr@redhat.com>

	virt: introduce caching the parsed domain XML
	This patch replaces the repeatively parsed domain XML with a pre-parsed
	and cached implementation.
	Additionally it comes with convenience functions for accessing the devices
	sub-tree

2014-10-23  Martin Polednik  <mpolednik@redhat.com>

	virt: move controller device to vmdevices.py
	No real code changes

2014-10-23  Francesco Romani  <fromani@redhat.com>

	conf: sampling: drop unused tunables
	With the recent consolidation of disk stats
	and added support for one-item sample windows,
	a bunch of tunables has become obsolete.

	These tunables were already unsupported, so
	any configuration which was making use of
	them was likely already broken,
	so this patch just drops them.

	virt: sampling: use getLastSample
	This patch makes use of the new
	getLastSample method when a sample
	window is not needed.

	No intentional changes in behaviour.

	libvirt: do not always log failed libvirt calls
	The libvirtconnection module provides libvirt connection handling
	for VDSM. libvirt connection and domain objects have their callable
	methods transparently wrapped, to let VDSM automatically
	detect and react to disconnection.

	A side effect of this wrapping is that exceptions are intercepted
	before to be reraised and delivered to the caller, and a
	quite cryptic and not very informative message is logged for
	each exception.

	Given that the wrapper is -and has to be- generic, this logging
	has no choice in turn but to be generic, but this adds little
	value to logs, and surely adds noise and concern to the user.

	Proper action must be done in the client code, which must handle
	exception correctly and do whatever it is needed, maybe
	just log the error, maybe silencing it.

	So, this patch just drops the extra debug log.

	sampling: update module docstring
	Make sampling module docstring reflect reality.

2014-10-22  Francesco Romani  <fromani@redhat.com>

	vm: sampling: use collections.deque
	The AdvancedStatsFunction class uses a circular buffer
	of configurable size to store samples.

	The standard library provides us a simpler and faster
	recipe to achieve the same result with less code.

2014-10-22  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/show_bug.cgi?id=1112861

2014-10-22  Nir Soffer  <nsoffer@redhat.com>

	protocoldetector: Unify log messages
	We stare at vdsm logs for hours, lets make it little nicer.

	protocoldetector: Avoid unneeded syscalls
	When cleaning up non-responsive connections, it is enough to get the
	current time once, and it also make the code little bit more clear.

	protocoldetector: Use values() instead of items()
	Iterating over items is useful when we need the keys, but we don't.

2014-10-22  Francesco Romani  <fromani@redhat.com>

	spec: fix libvirt dependency for fedora and RHEL7
	In commit 395c77c90c0bc we bumped the libvirt requirement
	to 1.2.3, which is found on RHEL 7.1 snapshots and
	in fedora 20 with virt-preview repos.

	This rules out RHEL 7.0 and Centos 7.0, thus a quite
	relevant part of users.

	This patch downgrades the libvirt requirements to 1.1.1
	both for rpm and deb based systems with the following
	rationale:

	* commit 395c77c90c0bc already has soft dependency and
	  could handle gracefully an old libvirt.
	* CentOS/RHEL 7.0 provides libvirt 1.1.1, so it is fine
	  out of the box. [1]
	* Fedora 19 has libvirt 1.0.5.8 by default, but the
	  virt-preview repo which already recommend provides
	  libvirt 1.1.3 [2]
	* Fedora 20 has libvirt 1.1.3 by default and libvirt 1.2.9
	  through the virt-preview repo. [3]

	References:
	[1] http://mirror.centos.org/centos/7/os/x86_64/Packages/
	[2] https://repos.fedorapeople.org/repos/crobinso/virt-preview/fedora-19/
	[3] https://repos.fedorapeople.org/repos/crobinso/virt-preview/fedora-20/

	Bug-Url: https://bugzilla.redhat.com/??????

2014-10-21  Nir Soffer  <nsoffer@redhat.com>

	protocoldetector: Introduce _close_connection
	In http://gerrit.ovirt.org/33982 we learned that having to both remove a
	connection and close the socket is error prone. We have 4 places where
	we do this, and one other place where we remove a connection, and close
	the socket only if detection failed.

	This patch simplifies the rules and removes duplicate calls to
	self._remove_connection() followed by socket.close() by introducing
	_close_connection(). _close_connection() is used for all fatal errors,
	and _remove_connection() is used only when detection is successful.

	Having this method, we can clean up connection handling around protocol
	detection. Previously we used to remove the connection before trying to
	detect the protocol, and if protocol detection failed, the socket was
	closed. This also fixes logging, so we first report that a protocol was
	detected, and then report that the connection was removed.

	protocoldetector: Remove connection after handshake error
	Commit e414fa9ff9 added support for asynchronous SSL handshake, but did
	not clean up properly after handshake error.

	Normally, the closed connection would be removed later by the periodical
	cleanup. However leaving closed socket registered with the poller is not
	a good idea.

	While verifying this fix, I found an unexpected failure mode - when
	trying to connect to vdsm using an http client instead of https. For
	example, this command:

	    vdsClient 0 getVdsCaps

	Causes a busy loop, handling write event on the *closed* socket, logging
	this error:

	    Detector thread::DEBUG::2014-10-10 00:13:29,709::protocoldetector::226
	    ::vds.MultiProtocolAcceptor::(_process_handshake) Error during
	    handshake: http request

	The busy loop ends after about 90 seconds, writing 1163139 errors and
	crating 175MB log.

	An interesting question is why do we get write events on a closed
	socket? Digging into M2Crypto source reveals that Connection.close()
	does *not* close a socket, and it is actually closed in __del__. Since
	we hold a reference to the connection, it is closed only when the
	connection is removed from the _pending_connections map. See
	https://github.com/M2Crypto/M2Crypto/blob/53d740ebd0fabf0346ebead4646b6f4a2e3ef782/M2Crypto/SSL/Connection.py#L63

	This patch removes the connection if the handshake fails, and ensures
	that we do not try to handle write event on a removed connection.

	The event loop is handling read event and write event on pending
	connections. If a connection is removed while handling a read event,
	there is no need to handle write event on the same fd.  This is a common
	problem with asynchronous event loops. asyncore had the same issue in
	older versions.

2014-10-21  Francesco Romani  <fromani@redhat.com>

	tests: ppc: fully fake arch for recovery tests
	In commit 8d03325348 we added a new recovery
	test, which will work on PPC64 as well as on
	X86_64, with basic unit tests.

	The tests were supposed to fake the underlying
	architecture, but they didn't fully.
	This patch completes the job.

2014-10-21  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-21  Ondřej Svoboda  <osvoboda@redhat.com>

	tc tests: Fix compilation by adhering to and praising PEP8
	The syntax for block comments is now checked by pep8,
	which requires that (E265) block comment should start with '# '.

	Amends: I5f2d64c3dbc621f062274afb343ad56048b36180

2014-10-21  Nir Soffer  <nsoffer@redhat.com>

	protocolDetector: Remove unneeded poll flags
	Protocol detector was using uneeded poll flags in the eventmask; POLLHUP
	and POLLERR are output only, as documented in poll(2) and Python library
	reference:
	https://docs.python.org/2.6/library/select.html#select.poll.register

	POLLPRI is needed only to detect out-of-band data, which the other side
	can send using MSG_OOB flag, as documented in send(2). Since we don't
	use out-of-band data, we don't need to check for it.

	Since the READ_ONLY_MASK contains only select.POLLIN, and the
	READ_WRITE_MASK was used only once, they were removed.  Developers
	maintaing this code are expected to know these constants.

	tests: Add protocoldetector tests
	Add tests for protocoldetector.MultiProtocolAcceptor using both ssl and
	non-ssl transport.

2014-10-21  Dan Kenigsberg  <danken@redhat.com>

	network.api: use function-like print statements

	netinfo: drop unused graph() function

2014-10-20  Saggi Mizrahi  <smizrahi@redhat.com>

	vdsm-infra: zombie-reaper refactor
	In a general intent to better organize how infra libraries and utilities
	are organized.

	It uses zombie-reaper as a sample use case and adds documentation for it.

2014-10-20  Dan Kenigsberg  <danken@redhat.com>

	netinfo.getIpInfo: handle slashless address
	Apparently, 32 bit prefix is not reported within the address field.

2014-10-20  Saggi Mizrahi  <smizrahi@redhat.com>

	ioprocess: Move and reword rename() warning
	The warning was appearing even when people use the function in the
	correct manner.

	Let it be on the record that my original intent was to move the log line
	to only display when a non-empty directory is being renamed instead of
	every time.

	But one of the requirements from my reviewers was to use the warnings
	module instead making things more "correct" in the price of making the
	line itself useless as no one turns on warnings in VDSM and there
	is no way to atomically ignore warnings in a thread safe manner for
	parts of the code so we can't even turn them on. Also, warnings go to
	stderr by default which means that even if you turn them on no one will
	see them.

	Note: I only use the bug in the bug-url as it's partially related and it
	feels to trivial to get a new bug opened and acked.

	Bug-Url: http://bugzilla.redhat.com/1131867

	core: Add python warnings boilerplate
	In order to use python's built-in warnings module there some things you
	have to set up so they appear in the log.

	The options devel/enable_python_warnings in the config is responsible
	for turning the warnings on and is turned-off by defaults.

	Also enabled warnings for unit tests by defaults.

2014-10-20  Antoni S. Puimedon  <asegurap@redhat.com>

	tc tests: Fix icmp test frame to have payload
	In Ic6c5684ca8833807cf1dc05e9ccc4d97391c6168 I changed the original
	packet to have a proper long and nice description. I generated the
	frame with 'scapy' and I did not include any payload to ICMP.

	For some reason, the jenkins unit tests pass but on my machines it
	is causing the mirroring target not to see the frame. This patch
	fixes the issue.

2014-10-16  Nir Soffer  <nsoffer@redhat.com>

	multiapth: Disable hba rescanning by default
	Since commit 85d46e4572 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-16  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-15  Saggi Mizrahi  <smizrahi@redhat.com>

	docs: remove old docs
	The don't even compile

2014-10-15  Martin Betak  <mbetak@redhat.com>

	vdsm: Add support for VIR_MIGRATE_COMPRESSED parameter
	Add support for configuring the VIR_MIGRATE_COMPRESSED migration
	parameter in libvirt to compress repeated pages.

	This flag enables the XBZRLE compresson of same memory pages which is
	beneficial for certain workloads, e.g. database server with many
	duplicate data in memory.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1151001

	vdsm: Add support for VIR_MIGRATE_AUTO_CONVERGE parameter
	Add support for configuring the VIR_MIGRATE_AUTO_CONVERGE migration
	parameter in libvirt forcing convergence of given live migration.

	This parmeter can be used when we want to guarantee convergence of
	migration even at the cost of incremental slowing down of the guest.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1151001

2014-10-15  Yeela Kaplan  <ykaplan@redhat.com>

	Change file() to open() continued
	Update file calls to open calls due to file's deprecation,
	and also use with statements to take care of closing files.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1128715

	use with statement to take care of unclosed files
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1128715

2014-10-15  Dima Kuznetsov  <dkuznets@redhat.com>

	open: Change file() to open()
	Update file calls to open calls due to file's deprecation.

	This patch does not convert all calls, more patches will follow.

	Relates-To: https://bugzilla.redhat.com/show_bug.cgi?id=1128715

2014-10-14  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix patchDecorators so decorated function will actually run
	Commit 5c5a0d9c5 introduced a fancy decorator for cleaning up the mess
	when we monkey patch conifguratiors. Unfortunatly, this decorator has an
	unexpected side effect, of *not* running the decorated function, so the
	test would always pass, even if the code is broken.

	This patch replaces this decorator with a much simpler one that let the
	real decorator (MonkeyPatch) do the right thing.

2014-10-14  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-14  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-14  Nir Soffer  <nsoffer@redhat.com>

	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 USER and
	GROUP directives.

	Relates-To: http://gerrit.ovirt.org/33875
	Relates-To: https://bugzilla.redhat.com/1147910

2014-10-13  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  Martin Polednik  <mpolednik@redhat.com>

	vdsm: introduce hostdev module
	Hostdev module serves the purpose of encapsulating functions
	related to reporting, acquiring and releasing host devices
	(nodeDevices in libvirt terms)

2014-10-12  Mooli Tayer  <mtayer@redhat.com>

	tool: fix typo 'environemnt'->'environment'

	toolTests: change mock objects creation.

	toolTests: change boolean logic.
	1. change  should_fail to should_succeed.
	2. change
	if !should_fail:
	    return True
	return False

	to:
	return should_succeed

2014-10-12  Federico Simoncelli  <fsimonce@redhat.com>

	task: remove unused canAbortRecover

2014-10-12  Nir Soffer  <nsoffer@redhat.com>

	assert: Replace asserts with validation function
	Replace 2 asserts for number of arguments with exiting validateArgTypes
	function, that raise a clear error instead of the cryptic assert.

	Another assert was removed as the code already used validateArgTypes
	just after it.

2014-10-12  Mooli Tayer  <mtayer@redhat.com>

	toolTests: clean leftover debug output.

2014-10-10  Petr Horáček  <phoracek@redhat.com>

	`tc qdisc del device x ingress` changed err code
	In new kernel, operation `tc qdisc del device dummy_x ingress`
	changed error code of 'no ingress exists' from EINVAL to ENOENT.

	CentOS 6.5
	$ ip link add dummy_ni type dummy
	$ tc qdisc del dev dummy_ni ingress
	RTNETLINK answers: Invalid argument

	Fedora 20
	$ ip link add dummy_ni type dummy
	$ tc qdisc del dev dummy_ni ingress
	RTNETLINK answers: No such file or directory

	Now qos.py:_fresh_qdisc_conf_out() ignores ENOENT too.

2014-10-10  Francesco Romani  <fromani@redhat.com>

	sampling: document block stats libvirt flag
	Document why we use the cryptic VIR_TYPED_PARAM_STRING_OKAY.

	Comment-only, no code changes.

	virt: sampling: consolidate disk statistics
	We used to have two different sampling, and thus two
	libvirt calls per sampling, per disk.
	One sampling gathers basic disk data and R/W rate;
	the other one gathers the disk latency.

	Most often, as the default values are unchanged, the
	configuration for these sampling is identical, so it is safe
	and cheaper to read all the needed information in one go,
	saving one libvirt call without losing any information.

	These sampling uses two different libvirt calls.
	sampleDisk, which gathers the disk I/O rate, uses the older
	virDomainGetBlockStats call;
	sampleDiskLatency, which gathers disk latency, uses the newer
	and more flexible virDomainGetBlockStatsFlags;

	Inside libvirt, these two calls are implemented on top
	of the same QEMU monitor function (qemuMonitorGetBlockStatsInfo).
	The newer call returns all the data gathered by the QEMU monitor,
	while the older call returns just a subset of it.

	Other differences in the API exists, like the return type
	and the presence of the flags, but those can safely be considered
	of no interest for VDSM.

	virt: stats: make _calcDiskRate a function
	used to be a method, but never uses 'self',
	so make it a function.

	No changes in behaviour, except the drop of the
	unused 'self'.

	virt: sampling: extract disk latency calculation
	This is a preparation patch for the merge
	of sampleDisk and sampleDiskLatency

2014-10-10  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-10-09  Federico Simoncelli  <fsimonce@redhat.com>

	utils: remove return redundant parenthesis

2014-10-08  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

	tests: assertIsNone is not available on Python 2.6
	This patch fixes the build on jenkins EL6 slaves.

2014-10-08  Vinzenz Feenstra  <vfeenstr@redhat.com>

	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  Vitor de Lima  <vdelima@redhat.com>

	vm: Fix error with missing cdrom in conf
	Avoids referencing the cdrom parameter in conf in case it is missing.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1145728

2014-10-07  Francesco Romani  <fromani@redhat.com>

	sampling: allow window=1 in AdvancedStatsFunction
	A few sampling functions do not need a real sampling window,
	yet they are forced to use window=2 because it is the minimum
	allowed size.

	This patch adds support for the window=1 special case, and a new
	method to fetch the sample on this case, because the existing
	API does not fit really well.

	This patch also adds the initial wave of unit tests for
	AdvancedStatsFunction.

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-06  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-06  Saggi Mizrahi  <smizrahi@redhat.com>

	protocol_acceptor: Make SSL handshake asynchronous

2014-10-06  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

2014-10-06  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.

2014-10-06  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Cleanup logging
	- Use INFO level for the important state change message, and uppercase
	  VALID and INVALID for extra visibility.
	- Add few debug messages that may help debugging.
	- Replace non-standard exc_info with logging.exception.
	- Simplify messages text and remove unneeded words.

2014-10-03  Martin Polednik  <mpolednik@redhat.com>

	vdsm: refactor has_channel using etree
	has_channel is a helper function currently located in vmxml,
	which decides whether channel with given name exists in domain's
	xml. This patch refactors this function to use dom and adds simple
	test to verify it is acting as before.

2014-10-03  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: remove obsolete getVolumePath verb
	We can remove the getVolumePath verb as it was never officially in use.

2014-10-03  Martin Polednik  <mpolednik@redhat.com>

	virt: move general devices to vmdevices
	No code changes. This is part of ongoing effort to
	move virtual devices from vm.py to vmdevices.py.

2014-10-02  Dan Kenigsberg  <danken@redhat.com>

	kaxmlrpc: fix ancient comment text

2014-10-02  Nir Soffer  <nsoffer@redhat.com>

	volume: Fix exception re-rasing
	When re-raising and excepition, the correct way is:

	    raise

	And not:

	    raise e

	The later form create a new useless traceback, strating at the point were the
	exception was re-raised:

	    Traceback (most recent call last):
	      File "raise.py", line 14, in <module>
	        raise e
	    Exception: testing

	Instead of the original traceback, showing the original call stack:

	    Traceback (most recent call last):
	      File "raise.py", line 11, in <module>
	        a()
	      File "raise.py", line 2, in a
	        b()
	      File "raise.py", line 5, in b
	        c()
	      File "raise.py", line 8, in c
	        raise Exception("testing")
	    Exception: testing

2014-10-02  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-01  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: mssing verbs in command info
	Missing clone image structure and image sync data in command info.


	Bug-url: https://bugzilla.redhat.com/1148498

	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.

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-10-01  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.

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  Mooli Tayer  <mtayer@redhat.com>

	toolTests: Fix undefined name usage introduced by 32713.
	pyflakes complained:
	./tests/toolTests.py:309: undefined name 'Libvirt'.

2014-09-30  pkliczewski  <piotr.kliczewski@gmail.com>

	jsonrpc: hotunplug spelling issue
	Bug-Url: https://bugzilla.redhat.com/1147458

2014-09-30  Mooli Tayer  <mtayer@redhat.com>

	tool-tests: use variable from conf version in template files.
	Replace LATEST_CONF_VERSION with current value from libvirt configure.

	This will save having to update all toolTests_*.conf files each
	time we bump a version.

2014-09-29  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.

	spec: Sort BuildRequires sections

2014-09-29  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

2014-09-29  Ondřej Svoboda  <osvoboda@redhat.com>

	vdsm: No need to 'import threading'
	This fixes the build after "vdsm: making PM 'on' and 'off' sync".

	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-09-29  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-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  Nir Soffer  <nsoffer@redhat.com>

	qemuimg: Move private functions to end of module
	_supports_qcow_compat() is a private helper and should be after public
	functions.

	tests: Add tests for qcow2 comapt option when converting images
	Since qemuimg.convert() uses utils.watchCmd instead of utils.execCmd,
	FakeExecCmd was modified so it can patch both functions.

	This patch is separate from the actual fix, to allow easy backporting of
	the actual fix, without backporing the testing infrastructure, which is
	missing in older versions.

	Relates-To: https://bugzilla.redhat.com/1139707

	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-29  Eli Mesika  <emesika@dhcp-0-211.tlv.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-26  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-26  Ondřej Svoboda  <osvoboda@redhat.com>

	ipwrapper.addrFlush: flush only globally routable addresses
	Link-local address must be kept for DHCPv6 support.
	This patch makes iproute2 configurator play nice so
	even after removing a network from an interface it is
	still usable for DHCPv6.

	Fixes: I5708c4db6f6d450536bd243a0475164b89f46f93

2014-09-25  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

	hook: noipspoof: consume libvirt's clean-traffic filter
	This hook converts all vnic filters of a VM to the clean-traffic filter.
	The list of valid IP addresses is specified as a VM-wide custom
	property.

	A VM-wide custom property has been chosen since Engine does not allow
	setting per-VM vnic properties (but rather only vnic-type ones).

2014-09-25  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Error out if we failed to change a bond's mode
	This is currently caused by NetworkManager (even with a 'server'
	configuration). Please see BZ 1136843.

	Also check for the failure in a unit test.

2014-09-25  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-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-23  Federico Simoncelli  <fsimonce@redhat.com>

	hsm: validate storage pool in prepareImage
	If the storage pool is specified (non-blank) we should validate that
	we're connected.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1130995

	sd: IncorrectFormat cannot be decoded
	If the volFormat and/or preallocated parameters are not within the
	supported values it's most likely impossible to try and convert them
	into names.

2014-09-22  Liron Aravot  <laravot@redhat.com>

	vm, guestagent: return hash should include also the disk mapping

	vm: return diskMapping on status()
	status() is used by API.Global.getVMList and should return also the disk
	mapping retrieved by the guest agent.

2014-09-21  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-19  Antoni S. Puimedon  <asegurap@redhat.com>

	make the promisc property compliant with old pyflakes
	el6 pyflakes is older than the addition of setters and deleters for
	python class properties. Thus, it wrongly detects the syntax:

	    @x.setter
	    def x(self, value)

	As a redefinition of x. Thankfully, it is possible to use
	the property builtin to achieve the same result without being
	flagged as re-defining.

	Bug-Url: https://bugzilla.redhat.com/1134851

2014-09-18  Martin Sivak  <mars@montik.net>

	Do not reference qemu hook on RHEL 6 in spec file
	The previous patch skips the qemu hook installation on RHEL 6,
	but still references it in the %files section.

	This fixes that.

	Related-To: https://bugzilla.redhat.com/show_bug.cgi?id=1138340

2014-09-18  Dan Kenigsberg  <danken@redhat.com>

	drop dead ksmtuned-related code
	mom has replaced ksmtuned completely, and is expected to be running
	whenever Vdsm is. We can safely remove the unused ksm module.

2014-09-18  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

2014-09-18  Petr Horáček  <phoracek@redhat.com>

	pyroute2: IPv6 support
	IPv6 support added to pyroute2 configurator.

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-17  Nir Soffer  <nsoffer@redhat.com>

	tests: Unify fake execCmd mechanism
	qemuimg tests were using two mechanisms for faking utils.execCmd. The
	old one was supporting faking a single command, no arguments validation,
	and no way to control the retruned values of the call. This also used
	textwrap module and partial functions where simpler ways can be used.

	Now all tests are using the new mechanism, supporting:

	- faking multiple commands, (e.g. call foo and then call bar based on
	  foo return value)
	- checking input arguments (e.g. was it called with -foo "bar"?)
	- returning any value from the call (e.g return 0, '', '' on success,
	  or return 1, '', 'error' on errors).

	Sine this change requires rewriting of all the tests, I also normalized
	the tests names to pep8 style, as they were very hard to read. This
	could be a separate patch, but I don't think we would like to waste time
	reviewing and verifying another patch for this.

2014-09-17  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-17  Petr Horáček  <phoracek@redhat.com>

	network/api.py: delete network's orphans + test
	When addNetwork fails on ifup, it leaves orphan devices.

	setupNetworks function is changed to remove leftovers in case of
	addNetwork's ConfigNetworkError with code ERR_FAILED_IFUP.

	testHonorBlockingDhcp tests for bridge leftovers.
	testNetworksEmergencyDevicesCleanup tests for leftovers of more
	complex network which overwrites existing devices.

	Two/four added tests takes almost five minutes so they (and
	testHonorBlockingDhcp) are marked as @slowtest.

	pyroute2: use pyroute2's routes handling
	Use pyroute2's routes handling instead of ipwrapper.

	pyroute2: DHCPv6 support
	DHCPv6 support added to pyroute2 configurator.

2014-09-17  Francesco Romani  <fromani@redhat.com>

	tests: split tests fakes in a module
	For the VM tests, we gathered a fair amount of Fake
	helper objects. Is time to move them in a module,
	in order to make it simpler for the other tests
	to use them, and also to avoid to vmTests.py
	become another vm.py, before it's too late.

	Code changes are limited to renaming
	* for better clarity; or
	* to avoid redundancy or name clashing.

2014-09-17  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-16  Francesco Romani  <fromani@redhat.com>

	vm: always log when guest CPU state changes
	In order to improve debuggability of VDSM,
	add a log when the guest CPU state changes.

	Since this event is supposed to be sporadic,
	this will not add noise to the logs.

	Relates-To: https://bugzilla.redhat.com/1131548

	test: fix typos and repair vmTests
	A couple of errors sneaked into master after commit 2ec1f8e7cb8c
	likely because automation test has whitelisting to avoid excessive load.
	This patch fixes that.

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-16  Francesco Romani  <fromani@redhat.com>

	vm: declass warning for unsupported pause code
	When VDSM starts, it resyncs the VM state with libvirt.
	Unfortunately, libvirt does not provide yet all the
	informations VDSM needs, most notably the pause reason
	if a VM was paused.
	Thus VDSM spews a warning about that.

	We have bugs filed to the relevant dependencies since
	a few months, so it's time to declass this warning
	to a less worrysome message.

	Related-To: https://bugzilla.redhat.com/1129587

	tests: vm: add unit tests for setBalloonTarget

	vm: graphdev: fix device hooks post migration
	the _deviceXML attribute was not regenerated on
	destination VM after migrations.

2014-09-16  Nir Soffer  <nsoffer@redhat.com>

	tests: Use more clear name
	false_mock is misterious name, specially when used as false_mock=False.
	Reading the code reveal that false_mock=True means that the mock should
	fail. Hopefully renming it to should_fail will make this more clear.

	When creating a mock, using optional argument notation "should_fail=True"
	is more clear then just "True".

2014-09-15  Petr Horáček  <phoracek@redhat.com>

	getRoute verb added
	New verb in vdsClient `getRoute <ip>` returns name of the device
	assigned to IP. It uses `ip route get <ip>`.

	Bug-Url: https://bugzilla.redhat.com/1117303

2014-09-15  Fabio Pliger  <fabio.pliger@gmail.com>

	vm: implement VM.sdIds as read-only property
	Changed the VM object sdIds list attribute. It used to be a list that
	kept a copy of the storage domains in use in an additional list (with
	all the difficulties of keeping the list in sync). That list has been
	replaced with a property that returns the storage domains in use
	getting them directly from the the vm devices in use.

	Relates-To: https://bugzilla.redhat.com/1094518

2014-09-15  Antoni S. Puimedon  <asegurap@redhat.com>

	tc: Integrate Host QoS with network deletion via setupNetworks
	This patch makes it possible to leverage the network.tc package
	to remove outbound Host network Quality of Service.

	When deleting the last shaped network of a device the qdiscs will
	be deleted so that they go back to being the kernel default (just
	a single pfifo_fast, at the moment).

	tc: Integrate Host QoS with network addition via setupNetworks
	This patch makes it possible to leverage the network.tc package to
	configure outbound Host network Quality of Service. The following
	patch should add support for deleting the QoS entities when deleting
	the associated network.

	It is not legal to configure a shaped network over a device that
	backs a non shaped network and vice-versa.

	One can configure it just like this:

	    In [1]:from vdsm import vdscli
	    In [2]: c = vdscli.connect()
	    In [3]: c.setupNetworks({
	        'bar':{'nic': 'eth1',
	        'qosOutbound': {
	            'ls': {'m1': 4 * 1000 ** 2,
	                   'd': 100 * 1000,
	                   'm2': 3 * 1000 **2},
	            'ul':{'m2': 8 * 1000 ** 2}},
	        'defaultRoute': False,
	        'bridged': False,
	        'vlan': 11}}, {}, {'connectivityCheck': False})
	    Out[3]: {'status': {'code': 0, 'message': 'Done'}}
	    In [4]: c.getVdsCapabilities()['info']['networks']['bar']['qosOutbound']
	    Out[4]:
	    {'ls': {'d': 100000.0, 'm1': 4000000000.0, 'm2': 3000000.0},
	     'ul': {'d': 0, 'm1': 0.0, 'm2': 8000000.0}}

	net_models: make network hierarchies iterable
	network hierarchies are tree-like data structures that contain all
	the devices in a network. It is useful to be able to iterate through
	the 'tree' in order to retrieve hierarchy properties such as vlan
	tag and backing device (nic or bond) of the network topology.

	This patch adds that with proper unit tests.

	tc_wrapper: Fix errno parsing for multiline error text
	Sometimes tc appends an extra text after the parseable error. E.g.:

	    RTNETLINK answers: Invalid argument\nWe have an error talking to the kernel\n

	This patch makes it possible to handle such cases

	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.

	tc: add command line wrappers for qdiscs, classes and filters
	Up until now there were ad-hoc wrappers in __init__.py for the cases
	in which we needed to perform an operation.

	This patch adds to each of the entities modules:
	    - cls
	    - filter
	    - qdisc
	some more generic operations:
	    - add (except filter, can use replace instead)
	    - delete
	    - replace
	    - show

	With these new wrappers, it will be possible to start the
	integration of addNetwork/delNetwork with tc to implement the QoS
	flow.

2014-09-14  Dan Kenigsberg  <danken@redhat.com>

	fix typo introduced by Ie8140fe1

2014-09-14  Nir Soffer  <nsoffer@redhat.com>

	tests: Remove dead code
	Commit 36a81b5aef added the legacy getServices interface, which is not
	part of the ModuleConfigurator. The new services property is inherited
	from the super class, so there is no need to implement it.

	tests: Use frozenset instead of set
	Using frozenset ensures that bad code trying ot mutate the return value
	of requires() will fail.

	Instead of replacing all set(...) calls with frozenset(...), I'm
	creating the frozenset in __init__, so there is no way to create an
	instance with the wrong type. This also cleans up code that creates a
	mock configurator without any requirements.

2014-09-13  Martin Polednik  <mpolednik@redhat.com>

	use super instead of direct parent call for NIC
	Super allows us to call parent class without having to specify
	its name, simplifying further moving of the class and possibly
	more inheritance.

2014-09-13  Francesco Romani  <fromani@redhat.com>

	config: introduce a devel section
	This patch introduces a 'devel' configuration section,
	in order to unclutter a bit the already crowded 'vars'
	section.

	An additional important benefit of this move is to clearly
	mark that some tunables should never turned on in production
	environments, unless exceptional circumstances, like a
	performance problem being debugged.

	For the same reason, is acceptable to move these options
	across minor versions (e.g. 3.5 to 3.6).

	This patch also makes room for future options which are
	currently being discussed, like memory profiling or
	a debug manhole service.

	tests: add simple balloon functional testcase

2014-09-13  Martin Polednik  <mpolednik@redhat.com>

	use super instead of direct parent call for Drive
	Super allows us to call parent class without having to specify
	its name, simplifying further moving of the class and possibly
	more inheritance.

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

	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.

2014-09-12  Dan Kenigsberg  <danken@redhat.com>

	net: getLinks: avoid redundant list creation
	Returning an iterator is cheaper than creating a possibly-long
	throwaway list.

2014-09-11  Francesco Romani  <fromani@redhat.com>

	vm: rename obsolete buildCmdLine method
	In past times, VDSM used to run QEMU.
	The Vm._buildCmdLine method was in charge
	to build the QEMU executable command line.

	Nowadays we use libvirt as middleware, with no
	plans to come back, so this method does a different
	thing.

	This patch renames this method, with no behaviour
	change, to reflect the reality.

	Please note that this method is mostly orchestration
	of vmxml.Domain calls;
	Future patches will split this code from vm.py
	to vmxml.py.

2014-09-11  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-11  Nir Soffer  <nsoffer@redhat.com>

	make: Add check-all target
	The previous patch made it easy to skip the stress and slow tests, and
	hard to run them. This make it easy again to run the stress and slow
	tests:

	    make check-all

	tests: Disable slow and stress tests by default
	Currently developers must use this crazy long command line when
	running the tests:

	    NOSE_SKIP_STRESS_TESTS=1 NOSE_SKIP_SLOW_TESTS=1 make check

	If you don't add the environment variables, you are wasting your time
	waiting for slow and stress tests, or worse, stress tests may fail
	because your system is overloaded.

	This patch disables slow and stress tests by default, so the common way
	to run the tests is just:

	    make check

	To enable slow and stress tests, you can use new shorter environment
	variables:

	    NOSE_STRESS_TESTS=1 NOSE_SLOW_TESTS=1 make check

	The new environment variables are also documented now.

2014-09-11  Antoni S. Puimedon  <asegurap@redhat.com>

	ethtool: remove debian and configure.ac python-ethtool references
	Commit a5e6b0843b6193d578f59cfe40303eaadf1c02ce aimed to remove any
	python-ethtool reference outside vdsm-bootstrap. Regrettably, I missed
	these few places that I fix now.

2014-09-10  Nir Soffer  <nsoffer@redhat.com>

	make: Run fast checks before slow ones
	Previously the slow tests where run before the fast pyflakes and pep8
	checks, so developer discover unused arguments or whitespace issues only
	after 1-2 minutes instead of few seconds.

	Now make check runs the fast checks before the slow ones, saving
	developer time.

	This is implemented by extracting the unrelated checks from check-local
	into separate phony targets. This is useful when debugging specific
	issues or when creating automated jobs that run specific checks.

	tool: Remove duplicate names
	The configurators modules were duplicating the module name in the class
	name:

	    libvirt.Libvrit

	This is not only ugly, but does not describe what this class is. Now all
	the configurtors modules define a Configurator class instead:

	    libvirt.Configurator

	This also has the nice property that it is now harder to import class
	names into other modules, so people will import the modules instead.

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  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  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-09  Petr Horáček  <phoracek@redhat.com>

	configurators: runDhclient moved iproute2 > __init__.py
	Function _runDhclient is moved from iproute2.py to __init__.py,
	so we can use it in pyroute_two.py.

2014-09-09  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-09  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-09  Antoni S. Puimedon  <asegurap@redhat.com>

	sourceroutethread: fix logging string formatting

2014-09-08  Petr Horáček  <phoracek@redhat.com>

	networkTests: IPv6 added to testGetRouteDeviceTo

	tests/functional/dummy.py: addAddr IPv6 support
	IPv6 address support added to dummy's addAddr function.

2014-09-08  Francesco Romani  <fromani@redhat.com>

	vm: document disk stats collection on recovery
	The disk handling flow in the recovery path may be
	surprising, due to the interaction of moving parts.

	Until we properly clean up and refactor this flow,
	add a comment to document the behaviour.

2014-09-08  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-08  Antoni S. Puimedon  <asegurap@redhat.com>

	ethtool: remove vdsm dependency on ethtool
	We only leave a dependency in the bootstrap package as it is
	deprecated anyway and touching it would do more harm than good.

	ethtool: remove some more usages
	This patch continues with the removal of the python ethtool
	dependency, as it is not really necessary now that the libnl
	bindings are mature.

	sampling: remove ethtool dependency
	The flags are already part of the link object. There was no good
	reason to ask the system again for this data.

2014-09-08  Martin Polednik  <mpolednik@redhat.com>

	vdsm: move video device to vmdevices
	No code changes, only moving around

2014-09-08  Yaniv Bronhaim  <ybronhei@redhat.com>

	Additional tool tests for exposed functions

2014-09-06  Martin Polednik  <mpolednik@redhat.com>

	vdsm: initial split of vm devices
	Initial boostrapping of devices. This is effort to move
	things out of vm.py to their modules in order to improve readability
	and isolate functionality.

2014-09-06  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-06  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.

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

2014-09-04  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>

	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-02  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

2014-09-02  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.

	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.

	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.

	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

2014-09-02  Martin Polednik  <mpolednik@redhat.com>

	vdsm: remove protected attribute access in VmStatsThread
	Accessing internal elements is evil, VmStatsThread accessed
	vm devices through _vm._devices[DISK_DEVICES], which can be
	replaced by _vm.getDiskDevices()

2014-09-02  pkliczewski  <piotr.kliczewski@gmail.com>

	getVMFullList fails when processing externally managed 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.

	When we get -1 we need to get back to poll loop so we override send
	method and return 0 when we see -1 which fixes the issue.


	Bug-Url: https://bugzilla.redhat.com/1135959

2014-09-01  Nir Soffer  <nsoffer@redhat.com>

	tool: Make configurators more Pythonic
	The configurations used to have Java like getters, which make the code
	more clumsy then it should be. This patch convert the getters to read
	only properties.

	The types returned by the getters were mutable, which may lead to
	calling code to modify the returned value without any error. Now the
	configurators return immutable types.

	There was no documentation about the purpose and the semantics of the
	getters, which makes it harder for new developer to modify this part.
	Now ModuleConfigure document these properties.

	There should be no change in the behavior.

2014-09-01  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: use geteuid() instead of getuid() for root check.
	This is expected to have no consequence. checking for effective user id
	is more accurate for permissions check.

	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.

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

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-09-01  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

2014-08-31  Adam Litke  <alitke@redhat.com>

	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

2014-08-31  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

	spec: require latest ioprocess version
	this will help with reducing ioprocess logs
	to the vdsm log.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1124369

2014-08-30  Yaniv Bronhaim  <ybronhei@redhat.com>

	Use stdout for regular output message in removeConf func

2014-08-29  Petr Horáček  <phoracek@redhat.com>

	Deprecated string.join() replaced
	Deprecated string.join(execfn, " ")) was replaced by
	' '.join(execfn)).

2014-08-28  Petr Horáček  <phoracek@redhat.com>

	ipwrapper: event monitor: wait after kill
	proc.kill() function alone leaves zombies, so i added
	proc.wait() after it.

2014-08-28  Dan Kenigsberg  <danken@redhat.com>

	tests: fix typo
	I've pushed a wrong version of the patch instead of the verified one

2014-08-28  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.

2014-08-27  Ondřej Svoboda  <osvoboda@redhat.com>

	iproute2, dhclient: Deal with v4/v6 protocols separately
	When taking over DHCP services, stop the previously running dhclient
	only if the protocol matches. Similarly, flush only the respective
	adresses (also keep link-local v6 addresses for DHCPv6 functionality).

	api, iproute2, dhclient: Support DHCPv6
	First, propagate 'dhcpv6' through add/setupNetworks.
	The forgotten property can now reach ifcfg configurator, which has
	already supported DHCPv6, and iproute2 configurator, which
	(using dhclient) now learned DHCPv6 too.

	DHCPv6-only setup needs dhclient 4.2.7-2.fc20, or BZ 1129500 fix
	to be backported to RHEL 6 and 7 (this should happen shortly).

2014-08-27  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-08-27  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Only report bootproto4=dhcp when we have an address
	A DHCPv4 lease might still be valid. As the address is unused, however,
	it cannot be said that the interface has been configured using DHCPv4.

2014-08-27  Petr Horáček  <phoracek@redhat.com>

	networkTests: UNKNOWN operstate
	Sometimes kernel is not fast enough to write new device's
	/sys/class/net/$devicename/operstate in time, in this case
	originalState read by networkTests:nonChangingOperstate is
	'UNKNOWN' and test which it uses fails.

	This problem occurs with iproute2 on this tests:
	- testAddNetworkBondWithManyVlans(kwargs=True)
	- testSetupNetworksAddNetworkToNicAfterBondResizing(kwargs=True)
	- testSetupNetworksDelOneOfBondNets

	I added new function _waitForKnownOperstate(device) which waits
	for operstate other than UNKNOWN. This function is called before
	every 'with nonChangingOperstate(BOND_NAME)'. I don't use it
	before 'with nonChangingOperstate(nics[0])', because nics'
	operstate seems to be UNKNOWN for all the time (bug #1133159).

	New function uses signal.alert() timeout because monitor's loop
	blocks code until it gets the right value.

2014-08-27  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Fix unsafe status handling
	DomainMonitor status was updated in a unsafe way, assuming that another
	thread will never ask the status in the middle of an update. The code
	was written as if creating a new status object is expensive operation
	that should be avoided.

	Instead of having long living status object in the monitor, I create new
	forozen copy each monitor interval (10 seconds). The frozen copy ensure
	that careless developers trying to modify a status will get what they
	deserve.

2014-08-26  Martin Polednik  <mpoledni@redhat.com>

	vdsm: isolate VmDevice xml generation method
	VmDevice class uses helper function 'createXmlElem' to ease generating
	of XML for devices. This patch moves the function to xmldom in the form
	of new parent class for VmDevice, separating the logic and xml
	generation. (inspired by http://gerrit.ovirt.org/#/c/17694/)

2014-08-26  Artyom Lukianov  <alukiano@redhat.com>

	Send to cannonizeHostPort port parameter as string instead of integer.
	Bug-Url: https://bugzilla.redhat.com/1127776

2014-08-26  Saggi Mizrahi  <smizrahi@redhat.com>

	mount: Remove a redundant call to speed things up
	This way we query sysfs less times and everyone is happy.

	Also update the copyright message it appear our lawyer overlords.

2014-08-26  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-08-26  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-26  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.

2014-08-26  Antoni S. Puimedon  <asegurap@redhat.com>

	el6_tests: fix toolTests to use VdsmTestCase so that assertIn is available

2014-08-26  Francesco Romani  <fromani@redhat.com>

	vm: xml: add  method to extract all the channels
	The VM code needs to iterate on all the agent channels
	to possibly fix the links.

	However, it doesn't need, nor it should, directly
	parse the XML again, because we are moving all
	the XML-related processing into the vmxml module.

	This patch is another step on this direction.
	Please note that this patch mostly moves code around.
	More aggressive refactoring is planned for future work.

	Along the way, we bootstrap the vdsm/virt/vmxml.py
	test module, because vmTests.py is too big already.

2014-08-25  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

2014-08-22  Nir Soffer  <nsoffer@redhat.com>

	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.

2014-08-22  Francesco Romani  <fromani@redhat.com>

	vm: make the 'destroyed' field private
	it is used only internally, so no reason to expose it.

	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.

	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.

2014-08-21  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.

	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

	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

2014-08-21  Adam Litke  <alitke@redhat.com>

	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-08-21  Nir Soffer  <nsoffer@redhat.com>

	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.

	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.

	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.

	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.

2014-08-20  Francesco Romani  <fromani@redhat.com>

	vm: remove guest agent channels tunables
	We had tunables to disable vm/ga channels creation from a long time,
	but it was just on debug purposes and these settings should never
	be used in production.

	Moreover, we acttually rely on the channel being here (see
	RHBZ#1126887).

	Since it is now possible the achive the same results through hooks,
	it is time to drop these tunables.

	Relates-To: https://bugzilla.redhat.com/1126887

2014-08-20  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

	vdsm-tool: simplify getting modules by names.

	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.

2014-08-20  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

2014-08-19  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-08-19  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-19  Petr Horáček  <phoracek@redhat.com>

	networkTests: assertBondDoesntExist with nics=None
	When assertBondDoesntExist is used with nics=None, it raises an
	error "'NoneType' object is not iterable".

	I changed it to assert nics only when defined.

2014-08-19  Ondřej Svoboda  <osvoboda@redhat.com>

	iproute2, netinfo: Change the location of our dhclient lease files
	To prepare for DHCPv6 support, name the files 'dhclient[46]-iface.leases.
	The plural not only mirrors the 'generate_lease_file_name' function
	in initscripts but also reflects the fact that there is usually more
	than one lease in the files.
	DHCPv4 lease files now carry a '4' in the name for simplicity, explicitly
	suggesting the DHCP flavour used.

	Also simplify globs representing our and 3rd party lease files locations.

2014-08-19  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.

2014-08-19  Michal Skrivanek  <michal.skrivanek@redhat.com>

	update fake caps to match updated PPC support to match the engine side (I75ea7ce447853f653cc45044cbf8ede64c0a8bb9)

2014-08-19  Francesco Romani  <fromani@redhat.com>

	virt: sampling: extract disk rate calculation
	This is a preparation patch for the merge
	of sampleDisk and sampleDiskLatency

	vm: xml: add a method do append custom device XML
	add a method to vmxml.Domain to append the XML representation
	of a device. This is used to update the XML after the hooks are
	been run.

	This is needed to achieve better isolation among
	vm.Vm and vmxml.Domain, and brings us one tiny step closer
	to the isolation of all XML-related processing into vdsm/virt/vmxml.

	vm: avoid duplicate import
	Vm._getVmPolicy added another minidom import just to use parseString.
	There is no need for it since we already imported it as _domParseStr
	from a long time.

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  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Remove spammy 'Trying to connect fileno' log message
	This message is repeated almost every second for every VM where
	no connection to the VM can be established. This can be a lot of
	log messages which have actually no value and are creating a huge
	load of noise.

	This patch removes the logging of this message.

	virt: Avoid timeout log spam due to channel timeouts
	Currently vmchannels.Listener is logging every timeout events every
	30 seconds (based on guest_agent_timeout config value):
	vmChannels::91::vds::(_handle_timeouts) Timeout on fileno 106.

	This patch changes this behaviour to keep track if a timeout has
	been logged before and in that case wouldn't log it again until
	a new event (like incoming data) has been received.

	Bug-Url: https://bugzilla.redhat.com/1096312

2014-08-14  Nir Soffer  <nsoffer@redhat.com>

	tests: Fix rare deadlock in profile threads tests
	There is a rare deadlock in yappi profiler, when starting a profile in
	the same time a thread is started. This caused the
	ThreadsProfileTests.test_running_threads to fail once in a while.

	The deadlock happens when yappi find a new thread it does not know yet,
	and try to get the thread class name. If the first call happen to be the
	_active_limbo_lock.acquire, yappi calls back into python
	threading.currentThread, which returns a _DummyThread, which try to lock
	again _active_limbo_lock to register itself and deadlocks. See [1] for
	complete details about this.

	Since we start yappi profiles first thing on startup, this bug should
	not effect vdsm in production.

	Now the tests wait until the thread is fully started before running the
	profiled function, avoiding the possible deadlock.  I verified this
	change by running the failing tests 1000 times in a loop, without any
	failure. Before this, we could not get 100 successful runs.

	[1] https://code.google.com/p/yappi/issues/detail?id=48

2014-08-14  Utkarsh  <utkarshsins@gmail.com>

	sparsify: integrating virt-sparsify into vdsm
	This patch adds virt-sparsify support in vdsm. Sparse disk images
	which are being used grow in size over a period of time but still
	have considerable amount of free space that may be shrunk back
	using virt-sparsify utility provided by libguestfs.

	The detailed expected execution flow is as follows-

	* The user selects a sparse volume to run virt-sparsify on to reclaim
	  free space.
	* User creates a new destination volume using createVolume of the
	  same virtual size as the source volume.
	* User creates a snapshot of the source volume, which will be used
	  as a temporary volume for virt-sparsify (--tmp prebuilt:file)
	* User runs sparsify (implemented in this patch) providing as
	  arguments temporary volume and destination volume.
	  (source volume is just the parent of temporary volume, so user
	  doesn't need to specify that)
	* Once sparsify is done (pass or fail) user removes the temporary
	  volume.
	* User may now check and verify the destination volume, and
	  optionally remove the source volume.

2014-08-14  Dima Kuznetsov  <dkuznets@redhat.com>

	utils: Remove duplicate set non-blocking functions
	Current code had 2 implementations of functions that turned on the
	O_NONBLOCK flag on file descriptors, none of which were in lib, to avoid
	creating yet another implementation for lib code to use, one of existing
	implementations was moved to utils.

2014-08-14  Vinzenz Feenstra  <vfeenstr@redhat.com>

	Create GuestAgent instance in __init__ and connect later
	This is not only a cosmetic improvement. There are cases where we
	are trying to call methods of the GuestAgent before the instance was
	created. To avoid these race conditions we're creating the instance of
	the guest agent already in the __init__ phase.

2014-08-14  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

2014-08-14  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-14  Dima Kuznetsov  <dkuznets@redhat.com>

	log: Change vdsm log file to enforce user/group
	This commit adds a new log handler that extends WatchedFileHandler,
	This handler checks current user and group and checks with the expected
	values, to make sure logs are created with correct permissions. In case of bad
	access RuntimeError is thrown.

	This patch also updates logger.conf to use this handler.

2014-08-14  Petr Horáček  <phoracek@redhat.com>

	networkTests: BOND_NAME constant changed to bond11
	getVdsCaps on rhel6 reports bond0-4 as existing
	regardless of their true existence (see
	_report_legacy_bondings).

	This confuses the testing changes in upcoming
	patches, hence we prefer to test a bond name with
	no legacy burdens.

2014-08-14  Dima Kuznetsov  <dkuznets@redhat.com>

	vdsClient: alternative ways to provide password
	Current method to provide password for vdsClient commands is typing it
	in the command line. The BZ1032525 requests to provide safer way.

	The patch implements new alternatives to provide command's password
	value instead of a plain text.

	This change introduces an new field, 'auth=', usage:
	 * auth=[alt:value] with following posibilities:
	 ** auth=file:path - read password from the first line of the file
	                     pointed by path
	 ** auth=env:name - read password from the environment variable 'name'
	 ** auth=pass:password - use plaintext password, provided in case would
	                         want to depricate the old format altogether.

	This change affects the following commands:
	Group 1:
	 * connectStorageServer
	 * disconnectStorageServer
	 * validateStorageServerConnection
	 Commands in this group pass password as part of conList format, such as
	 id=...,user=...,password=...
	 These commands can drop password= altogether, and use only auth=, if
	 both are provided, auth= takes precedence.

	Group 2:
	 * desktopLogin
	 * discoverST
	 Commands in this group receive password as a mandatory  argument, at
	 a known index, for example: [address] [user] [pass], to avoid breaking
	 compatibility, password argument has to be specified, even when using
	 auth=, where auth= can come anywhere after all the mandatory arguments.
	 For example: vdsClient someCommand 127.0.0.1 user - auth=method:...
	 (note the '-')

	Group 3:
	 * setVmTicket
	 auth=... can be passed only after '--' parameter, to avoid collision
	 with the fifth optional parameter
	 For example:
	 vdsClient setVmTicket 127.0.0.1 user - disconnect -- auth=method:...

	Bug-Url: https://bugzilla.redhat.com/1032525

2014-08-13  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.

	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

2014-08-12  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-12  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

	vm: graphdev: update the _devices field
	this patch let the Graphic Devices instances in _devices
	be updated from the fresh data from libvirt.

2014-08-12  Antoni S. Puimedon  <asegurap@redhat.com>

	tc: add hfsc class parsing support
	In order to add Quality of Service reporting and configuring to vdsm,
	it is necessary to be able to parse Hierarchical Fair Service Curves
	class printouts as provided by the 'tc' iproute2 tool.

	This patch follows in the steps of vdsm/network/tc/qdisc.py by
	providing a spec dictionary based parser that simplifies a lot the
	verification (a test is provided as well).

2014-08-12  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.

2014-08-12  Antoni S. Puimedon  <asegurap@redhat.com>

	tc_wrapper: Fix errno reporting
	When tc fails in and of itself, it returns with code 1. When it is
	due to kernel error as relayed by the kernel in rtnl_talk, it sets
	the return code to 2 and prints like so:

	    fprintf(stderr, "RTNETLINK answers: %s\n",
	            strerror(-err->error));

	Thus, if wrapper._process_request is to raise proper errno
	verifiable error codes in its TrafficControlExceptions, it is
	necessary that we do the inverse process, strerror -> errno.

	After this patch:

	When deleting a non-existing class as root:

	In [6]: wrapper._process_request(['class', 'del', 'dev', 'em1',
	                                  'classid', '1:2'])
	TrafficControlException:
	(2, 'RTNETLINK answers: No such file or directory\n',
	['/usr/sbin/tc', 'class', 'del', 'dev', 'em1', 'classid', '1:2'])

	And as regular user:
	In [49]: wrapper._process_request(['class', 'del', 'dev', 'em1',
	                                   'classid', '1:2']
	TrafficControlException:
	(1, 'RTNETLINK answers: Operation not permitted\n',
	['/usr/sbin/tc', 'class', 'del', 'dev', 'em1', 'classid', '1:2'])

	Both being the correct errno codes.

	tc_filter: make use of _parser for getting the relevant items
	The previous patch introduced a lot of parsing methods for the new
	qdisc tc module. This patch changes the already existing filter
	module to use them.

2014-08-11  Francesco Romani  <fromani@redhat.com>

	vm: graphdev: fix parameter passing
	This patch fixes the parameter passing to updateDevice.
	The problem is I originally overlooked how hook params are
	supposed to be passed to the hook.

	The tests with this patch highlights the problem:

	File "vdsm/vdsm/virt/vm.py", line 4408,
	in _setTicketForGraphicDev
	hooks.before_vm_set_ticket(self._lastXMLDesc, self.conf, params)
	File "/home/fromani/Projects/upstream/vdsm/tests/vmTests.py", line 1403,
	in _check_ticket_params
	self.assertEqual(params, TICKET_PARAMS)
	AssertionError: {'params': {'userName': 'admin', 'userId':
	'fdfc627c-d875-11e0-90f0-83df133b58cc [truncated]... != {'userName':
	'admin', 'userId': 'fdfc627c-d875-11e0-90f0-83df133b58cc'}
	- {'params': {'userId': 'fdfc627c-d875-11e0-90f0-83df133b58cc',
	? -----------

	+ {'userId': 'fdfc627c-d875-11e0-90f0-83df133b58cc', 'userName':
	'admin'} ? +++++++++++++++++++++

	    'userName': 'admin'}}

	Here the meaning of 'params', per API spec, is the same as setTicket.
	'params' should be a StringMap.

	Unfortunately, updateDevice accepts a single argument:

	'params': 'vmUpdateDeviceParams' (quoting spec again)

	Confusion arises by the nesting of 'params', hence the bug.
	The hook receives the nested params instead of the plain StringMap
	it should receive as per spec.

	Moreover, no hooks are using graphics devices, so this bug slipped
	unnoticed. The new tests will help this to not happen again.

	As nice side effect, this allows a cleaner and shorter
	implementation.

2014-08-11  Nir Soffer  <nsoffer@redhat.com>

	tests: Introduce AssertingLock
	When we want to test locking, we don't want to poke into object
	internals and check the state of objects locks, or even worse, mock out
	object lock.

	This patch introduces the AssertingLock, which unlike regular locks,
	never blocks when you try to acquire a lock somebody else is holding.
	Instead, this lock raises AssertionError, failing the test.

	Assuming that Foo object implements the context manager and use a lock,
	we can verify this by:

	    single_thread = AssertingLock()
	    foo = Foo()

	    def check():
	        with foo:
	            with single_thread:
	                time.sleep(0.1)

	Now we can run check in several threads; if foo is implemented
	correctly, single thread will be able to enter the foo context. If foo
	does not lock properly, multiple thread will enter this context, and
	then fail when trying to enter the AssertingLock.

	Turns out that in the SamplingMethodTests, I used a BoundedSemaphore for
	this purpuse which is incorrect. Incorrect code can be hidden becuase
	the testing threads would block instead of failing the tests. This code
	uses now an AssertingLock instead.

2014-08-09  Antoni S. Puimedon  <asegurap@redhat.com>

	tc: add qdisc parsing for some hfsc, ingress, pfifo_fast, etc
	This patch adds qdisc parsing capabilities to vdsm/network/tc.py which
	will aid in adding QoS configuring and reporting support. The queuing
	disciplines that can be parsed completely are:
	    - fq_codel,
	    - hfsc,
	    - ingress,
	    - pfifo_fast,
	    - sfq

	For an qdisc data like:

	    qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
	    qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
	    qdisc drr 1: dev eth2 root refcnt 2
	    qdisc tbf 10: dev eth2 parent 1:10 rate 32000Kbit burst 64Kb lat 4295.0s
	    qdisc tbf 20: dev eth2 parent 1:20 rate 3200Kbit burst 100Kb lat 4294.7s
	    qdisc tbf 30: dev eth2 parent 1:30 rate 800000Kbit burst 100Kb lat 4295.0s
	    qdisc ingress ffff: dev eth2 parent ffff:fff1 ----------------

	it would return the following dicts:

	    {'kind': 'pfifo_fast', 'handle': '0:', 'pfifo_fast': {'priomap': [1, 2, 2,
	     2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1]}, 'refcnt': '2', 'dev': 'eth0',
	     'root': True}
	    {'kind': 'pfifo_fast', 'handle': '0:', 'pfifo_fast': {'priomap': [1, 2, 2,
	     2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1]}, 'refcnt': '2', 'dev': 'eth1',
	     'root': True}
	    {'root': True, 'kind': 'drr', 'handle': '1:', 'refcnt': '2', 'dev': 'eth2'}
	    {'kind': 'tbf', 'handle': '10:', 'parent': '1:10', 'dev': 'eth2'}
	    {'kind': 'tbf', 'handle': '20:', 'parent': '1:20', 'dev': 'eth2'}
	    {'kind': 'tbf', 'handle': '30:', 'parent': '1:30', 'dev': 'eth2'}
	    {'kind': 'ingress', 'handle': 'ffff:', 'parent': 'ffff:fff1',
	     'dev': 'eth2'}

	Note that there is some basic information reported for unsupported
	qdisc classes (like tbf and drr).

2014-08-09  Petr Horáček  <phoracek@redhat.com>

	networkTests: assertBridgeDoesntExist added
	New assert added, i need it in a following patch:
	http://gerrit.ovirt.org/31018/

	dummies and veths with changeable prefix
	Veth's and dummy's create() functions have unrequired attribute
	prefix.

2014-08-09  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

	Bug-Url: https://bugzilla.redhat.com/1127763

2014-08-08  Dan Kenigsberg  <danken@redhat.com>

	Drop ExclusiveArch
	Vdsm supports ppc, and should be built for ppc also for el7.

2014-08-07  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-07  Antoni S. Puimedon  <asegurap@redhat.com>

	tc_tests: break down _ICMP into more understandable bits
	_ICMP used to be defined as just a long hex string and it was
	difficult to remember what each byte stood for. With this change,
	I made a breakdown with scapy, pasted it and broke down the hex
	string into smaller significant pieces.

2014-08-06  Federico Simoncelli  <fsimonce@redhat.com>

	fileSD: getMountsList should be a private function
	Renaming getMountsList with private prefix as the function is not
	expected to be used outside of fileSD.

	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

2014-08-06  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-06  Federico Simoncelli  <fsimonce@redhat.com>

	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  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-08-05  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

2014-08-05  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Refine names
	The domain monitor use to have monitoredDomains and poolMonitoredDomains
	properties. The word "monitored" in these names is unneeded, as the
	class is called DomainMonitor, and it does not keep other lists of
	domains.

	I replaced the _domains variable to the more specific _monitors, since
	this dict keep domain monitors, not domain objects.  This is required
	now to prevent confusion, since the new domains property does not return
	the dict but its keys.

	Finally, when we get a monitor from the _monitor dict, we call it
	monitor instead of domainThread. It is true that this object is related
	to a domain and it run in a thread, but responsibility of this object is
	monitoring.

2014-08-04  Dima Kuznetsov  <dkuznets@redhat.com>

	packaging: Make vdms_reg bridge configurable
	Added -with-reg-bridge-name= option to configure script which defaults
	to ovirtmgmt.

	packaging: Changes for official builds
	Made engine name and smbios values configurable and moved out
	hard-coded values into configuration script:
	 * registration URI
	 * qemu-kvm/qemu-img package names.

	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1119020

2014-08-03  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-01  Antoni S. Puimedon  <asegurap@redhat.com>

	net_configurators: Fix optional configurator importing
	With the arrival of the first truly optional (its dependencies do not
	need to be installed) configurator, i.e., pyroute_two, a flaw in my
	getConfiguratorClass was exposed.

	With this patch, all configurators should explicitly define a
	    is_available()
	method that returns True if it is required and False if it is
	optional and some of its dependencies are missing. Additionally,
	all the extra dependency importing should not raise.

2014-08-01  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Introduce cancellation points
	While monitoring domain, the monitor perform some operations that we
	would like to avoid if the monitor thread was stopped while running
	the _monitorDomain method. Example operations are accessing shared
	storage, which may block for long time, or acquiring a host id.

	This patch adds the @cancelpoint decorator, that can be used to mark
	methods as cancellation points. Some of the domain monitor thread
	methods are marked as cancellation points, ensuring that a monitor will
	stop as soon as possible when stopped.

	domainMonitor: Extract domain monitoring methods
	The _domainMonitor method was extremely long and was doing too much.
	This patch breaks it to multiple small methods to make it easier to
	understand and modify.

	One of the planned changes is to allow _domainMonitor to abort in the
	middle if a monitor is stopped. Implementing this in the original method
	would only make it worse. To make it easy, operation that may take lot
	of time were extracted into separate methods.

	This patch does not change the behavior of the monitor, only move code
	around.

	domainMonitor: Ensure that host id is released
	Previously unexpected exception could cause the domain monitor thread to
	exit without releasing the host id. Stale host id will prevent removal
	of logical volume and the underlying devices, and prevent stopping of
	sanlock, requiring a reboot to upgrade a host.

	Now try finally block ensures that host id is is always released.

	domainMonitor: Stop domain monitors concurrently
	Deactivating a host connected to lot of storage domains takes too much
	time. This is caused by stopping each domain monitor thread and waiting
	until the thread exit before stopping the next one.

	If you stop vdsm when connected to many storage domains, vdsm may be
	killed before all domains monitors are stopped. This may leave
	unreleased host ids held by sanlock, which prevent stooping of sanlock,
	and requires a reboot to upgrade the host.

	This patch changes stopMonitoring() to accept an iteratable of sdUUIDs
	instead of single value. When stopping multiple monitor threads, instead
	of stopping each thread and waiting until the thread exit, we first stop
	all threads, and then wait until all of them exit.

	I tested this patch on Fedora 19 machine connected to 30 storage
	domains. The time to stop all monitors dropped from 67 to 10 seconds.
	Profiling show that most of the time is spent waiting for sanlock to
	release the host id.

	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-01  Francesco Romani  <fromani@redhat.com>

	migration: deprecate != 'online' migrations
	Since long time the only supported method for migration
	is actually 'online'. In the API schema, the methods
	are actually an enumeration with a single value ('online').

	This patch adds an explicit deprecation reminder.

2014-07-31  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: remove Link cli parser
	Nowadays we only use the Link object creation from dictionary (in
	the netlink Link gathering flow. This code was deprecated and
	unused (except for some tests). It is the time to get rid of this.

2014-07-31  Alon Bar-Lev  <alonbl@redhat.com>

	build: add missing root folder files into tarball
	tarball should contain all source control files plus
	generated files.

2014-07-31  Genadi Chereshnya  <gcheresh@redhat.com>

	netinfo_tests: load bonding module for Centos7
	In Centos7 bonding module is not automatically loaded
	Added decorator to testGetBondingOptions to load bonding module
	in case it is not loaded

2014-07-31  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

	Remove dmidecode build requirement

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  Petr Horáček  <phoracek@redhat.com>

	pyroute2: unused import removed

	pyroute2: REQUIRED_BONDINGS condition removed
	netinfo.REQUIRED_BONDINGS condition removed from pyroute2 configurator as in
	iproute2 (commit 341b6fb5a6487bd4d01e55fded2b8caad7d97035).

	pyroute2: optional configurator added
	Pyroute2 was added as new optional configurator. pyroute2 library, which it
	requires, is not listed as a dependency because it is not strictly necessary.
	If you want to use this configurator, you have to install current library
	version (0.2.12) from pip or GitHub https://github.com/svinota/pyroute2. If
	someone tries to use it and does not have it installed, it writes an ERROR log
	and uses Ifcfg instead.

	Necessary changes were made in spec file, debian install file and Makefile
	because of the new file network/configurators/pyroute_two.py

	It makes sense to have iproute2 and pyroute2 options in config file.
	pyroute_two looks ugly. Anyway we can not rename pyroute_two.py too because of
	import conflicts with library.

2014-07-31  Robert Cernak  <robocernak@gmail.com>

	Pyroute2 network configurator
	Network configurator used for setting network devices.
	Configuration is done using pyroute2 library.

2014-07-30  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-07-30  Dan Kenigsberg  <danken@redhat.com>

	net tests: add a minimal test for getVdsStats
	This patch verifies that the vlan devices added by
	testSetupNetworksAddBondWithManyVlans are reported by getVdsStats.

2014-07-30  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-07-29  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-29  Petr Horáček  <phoracek@redhat.com>

	iproute2: overwrite existing bridge if necessary
	When iproute2 tries to add new network over existing bridge, brctl raises an
	error: AssertionError: ["device test-network already exists; can't create
	bridge with the same name"] while ifcfg handles that situation without
	a problem.

	I changed iproute2's addBridge to ignore this error.

	I've already wrote a test for this case http://gerrit.ovirt.org/#/c/30578/

	networkTests: old bridge overwrite
	New created network should overwrite old bridge with the same name.

2014-07-29  Francesco Romani  <fromani@redhat.com>

	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.

2014-07-28  Dan Kenigsberg  <danken@redhat.com>

	API.updateTimestamp: use touchFile
	Opening a file for writing with the file() constructor is frowned upon.
	Particularly when we have a library function that does the intended
	action properly.

2014-07-28  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

	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

	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.

2014-07-28  Antoni S. Puimedon  <asegurap@redhat.com>

	tc: replace mirred filter parsing with a generic filter parser
	For now, we only need to parse filters with mirred actions. This
	must change in order to implement the Quality of Service feature,
	which will require parsing classes, queuing disciplines and other
	kinds of filters.

	This patch adds a generic parsing filter and lays the structure
	for iterating over other Traffic Control entities.

2014-07-28  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Cleanup imports
	- Import only modules, except sdCache and config that we import
	  everywhere. This should be fixed by converting them to modules since
	  they are singeltons anyway - in another patch.
	- Import standard library modules before vdsm
	- Import vdsm library modules before package modules
	- Use relative imports for package imports
	- Sort imports in each group

2014-07-27  Saggi Mizrahi  <smizrahi@redhat.com>

	stomp: Server side heartbeat implementation

2014-07-24  Nir Soffer  <nsoffer@redhat.com>

	init: Start vdsmd after required services
	When using systemd, vdsm was restarted concurrently with the services it
	requires. This caused a race where vdsm may try to access one of those
	services before they are started.

	This patch use systemd.unit's "After" option to ensure that
	vdsmd starts only after the required services are started.

	Relates-to: https://bugzilla.redhat.com/1120209

2014-07-23  Yaniv Bronhaim  <ybronhei@redhat.com>

	Arrange pthreading requirement to 0.1.3-3 which includes locked() impl

2014-07-22  Yaniv Bronhaim  <ybronhei@redhat.com>

	Changing isconfigured parameter semantics
	Currently isconfigured holds boolean and that way the name is misleading as
	True doesn't mean the module is actually configured. This patch changes
	that and put in isconfigured just the ret value of isconfigured() on the
	specific module instead of calling it twice, and later on we use this
	parameter to decide when to reconfigure the module or not.

2014-07-22  Yeela Kaplan  <ykaplan@redhat.com>

	oop: add missing utils.forceLink
	Bug-Url: https://bugzilla.redhat.com/1120721

2014-07-22  Ondřej Svoboda  <osvoboda@redhat.com>

	tests, schema: Replace deprecated uses of bootproto 'static' with 'none'
	'none' has settled to signify static network configuration both in initscripts
	(see sysconfig.txt or search for "Interface Configuration Files") and VDSM
	(mostly in functional network tests).

2014-07-22  Dan Kenigsberg  <danken@redhat.com>

	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-21  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

	connectivty log: log duplex state
	Add detected changes of full/half duplex to connectivity.log

	Bug-Url: https://bugzilla.redhat.com/1111234

2014-07-21  pkliczewski  <piotr.kliczewski@gmail.com>

	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-20  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-20  Lukas Bednar  <lbednar@redhat.com>

	hsm.py: volUUID is not member of HSM class
	this issues was found using static analysis of code.
	it was causued by 24ad94dd, this change should be backported to all
	branches which contains change mentioned above.

2014-07-18  Adam Litke  <alitke@redhat.com>

	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.

	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.

2014-07-18  Francesco Romani  <fromani@redhat.com>

	virt: move _DomXML into the xml module
	Move virt.vm._DomXML into virt.vmxml.Domain
	Fix paths and imports (e.g. vmxml.Element -> Element),
	no functional changes.

	virt: xml: add utility functions
	Add utility functions factoring out common
	operations over the `devices' element of the domain XML.

2014-07-18  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

2014-07-17  Federico Simoncelli  <fsimonce@redhat.com>

	supervdsm: remove unused lsblk module
	The method getLsBlk was added in commit 6ee565b without any explanation
	on why it's needed. I couldn't find any trace of this being ever used.

2014-07-17  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).

2014-07-17  Federico Simoncelli  <fsimonce@redhat.com>

	supervdsm: remove unused md_utils module
	The method getMdDeviceUuidMap was added in commit b9b6ca2 without any
	explanation on why it's needed. I couldn't find any trace of this being
	ever used.

	volumeTests: add BlockDomainMetadataSlotTest
	A new test has been added to check the metadata slot selection.

2014-07-16  Francesco Romani  <fromani@redhat.com>

	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.

2014-07-16  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

2014-07-16  Francesco Romani  <fromani@redhat.com>

	vm: use vmxml.Element in snapshot method
	Use vmxml.Element instead of xml.dom.minidom.Element
	in vm.snapshot
	No functional changes.

	vm: use vmxml.Element in setLinkAndNetwork
	Use vmxml.Element instead of xml.dom.minidom.Element
	in vm.setLinkAndNetwork.
	No functional changes.

	vm: replace minidom.Element for memory snapshots
	The _memorySnapshot method used to manipulate directly
	xml.dom.minidom.Element items.
	This patch allow the code to do the equivalent by using
	vmxml.Element instead.

2014-07-15  Francesco Romani  <fromani@redhat.com>

	virt: move __hacked_writexml in the vmxml module
	No reason to keep this hack under the spotlight,
	and give to vm.py some much needed relief.
	No code changes.

2014-07-15  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-15  Francesco Romani  <fromani@redhat.com>

	virt: introduce a XML processing module
	this patch bootstrap a XML processing module for the
	virt package, by extracting the core class:

	virt.utils.XMLElement -> virt.vmxml.Element

	The module is named 'vmxml' and not just 'xml'
	to avoid name clashing with python stdlib inside
	the new module, (see imports), and because just
	'xml' seem a bit too generic here.

2014-07-15  Nir Soffer  <nsoffer@redhat.com>

	tests: Separate test runner from test library
	The test runner was used both as a script and as a library for testing
	utitilies. This cause the module to be imported twice, performing
	various hacks twice.

	Runnning pthreading.monkey_patch() twice fails with upstream pthreading,
	which ensure that monkey pataching is not too late. The check in
	pthreading should be fixed, but it expose the problem in the testrunner.

	This separate the library code from the script realted code and hacks
	that must run once in the context of the test runner script, fixing
	the double invocation of pthreading.monkey_patch().

	Bug-Url: https://bugzilla.redhat.com/1119172

2014-07-15  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.

2014-07-14  Enrico Tagliavini  <enrico.tagliavini@gmail.com>

	tests: Add symlink mount test
	Some filesystems like gfs2 resolves symlink (as /dev/mapper/name or
	/dev/vg/lv), and the real device will appear in /proc/mounts instead of
	the original device symlink specified on the command line. This adds a
	test for this case.

	This test use a symlink to a backing image mounted using the loop
	device. This is a simple way to simulate the same issue when using gfs2.

	Bug-Url: https://bugzilla.redhat.com/888711

2014-07-14  Martin Sivak  <msivak@redhat.com>

	Remove noisy log message from CPU metadata collector
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1119336

	Change method names in vmtune.py to the PEP8 style

	Add API.VM.getIoTunePolicy
	This method can be used by MoM to retrieve the current ioTune
	boundaries from the domain xml metadata section.

	Add API.VM.setIoTune
	This allows MoM (and the engine if necessary) to set the iotune
	limits for disk devices.

2014-07-14  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.

2014-07-14  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

2014-07-13  Nir Soffer  <nsoffer@redhat.com>

	mailbox: Fix unsafe locking
	In setMaxHostID, both _inLock and _outLock are acquired and released in
	an unsafe way, not ensuring that the locks are released on errors.  Both
	locks use now with block. The rest of the file use currently try finally
	but I plan to convert these to with in a later patch.

	Relates-to: https://bugzilla.redhat.com/1117795

2014-07-12  Martin Sivak  <msivak@redhat.com>

	Add setIoTune and getIoTunePolicy to the xml-rpc API

2014-07-12  Francesco Romani  <fromani@redhat.com>

	virt: migration: use contextmanager for monitor
	This patch factors the monitor thread
	control in a context manager to make code
	clearer and less cluttered.

	virt: migration: replace magic number
	replace a magic constant with the symbolic name to clarify
	the intent of the code.

	What the code does is to check the migration job is still active.
	The symbolic name was found by checking the docs:

	http://libvirt.org/html/libvirt-libvirt.html#virDomainJobInfo

	(beware of misalinged comments).
	'jobType' can be one of
	http://libvirt.org/html/libvirt-libvirt.html#virDomainJobType

2014-07-11  Martin Sivak  <msivak@redhat.com>

	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.

2014-07-11  Francesco Romani  <fromani@redhat.com>

	tests: fix pep8 errors
	Commit: a2890d5d614e856a44102d61576a8591a8d2e52f
	introduced pep8 and pyflakes errors in tests.
	This patch fixes that.

2014-07-11  Ondřej Svoboda  <osvoboda@redhat.com>

	netmodelsTests: Test IPv6.validateAddress and IPv6.validatePrefixlen
	Use addresses with prefixes to test the latter function.

2014-07-11  Francesco Romani  <fromani@redhat.com>

	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.

2014-07-10  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/1117795

2014-07-10  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.

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

	vdsm: check attribute not object type
	Checking existance attribute is more flexible than checking object
	type.

2014-07-10  Nir Soffer  <nsoffer@redhat.com>

	pep8: Fix indentation violation

2014-07-10  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-09  Yoav Kleinberger  <ykleinbe@redhat.com>

	tests: revived forgotten test
	It appears that the original author meant for the writeLargeData to be a
	test, but forgot the `test' prefix.
	Moreover, previously the test asserted data>4096, where data is a
	string, which in python is always True. I simplified it a bit, and
	removed the trivial assertion.

2014-07-09  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.

2014-07-09  Douglas Schilling Landgraf  <dougsland@redhat.com>

	deployUtil: add %s for logging call
	In commit d78b36b50 introduces a logging call missing
	%s which generates TypeError. With this error ovirt-node
	registration is not able to complete.This patch adds the %s.

2014-07-09  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-09  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.

	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).

2014-07-09  Antoni S. Puimedon  <asegurap@redhat.com>

	ipwrapper: Get rid of unused methods
	In the move to libnl's netlink interface to the kernel networking
	information we stopped using several of ipwrapper's methods. This
	patch removes those that had no usage whatsoever.

	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 transitional improvement (future releases will have
	separate vdsm-network and vdsmd services and initializations).

	This patch 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. Setting this
	makes the initscripts network service configure the network itself.
	So for the default route network, the boot process is going to:
	    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.

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

2014-07-08  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.

2014-07-08  Ondřej Svoboda  <osvoboda@redhat.com>

	models: Reorder bonding options so the mode is applied first
	The option lacp_rate, for instance, is exclusive to the mode
	802.3ad (4) and changing it under the default mode balance-rr (0)
	results in "Operation not permitted" error.

	Guard against this by ordering the mode first (and the rest of
	options alphabetically).

2014-07-08  Nir Soffer  <nsoffer@redhat.com>

	utils: Remove unused code

2014-07-08  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: replace the last dependency on ethtool with netlink
	After the last work on the lib/vdsm/netlink package and the extensive
	usage of it throughout netinfo, there was little reason to continue
	to have two libraries for our network information gathering. We still
	have vdsm/network/tc.py and testing dependencies on ethtool that will
	soon be gone. When that happens, we can remove it from packaging
	requirements.

2014-07-07  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

	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

	vdsm: verifyingTransport testing
	Changing unused command line test to unit test. SecureXMLRPCServer is
	not used by vdsm code base and it was moved to verifyingTransportTests
	to be used to make sure that Verifing* classes work.

2014-07-07  Daniel Erez  <derez@redhat.com>

	hsm:  deleteImage - fix string format
	getExclusiveLock -> namespace should be formatted
	as '"%s_%s" % (imgUUID, sdUUID)'.

2014-07-07  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: drop unused intToAddress
	Back when we introduced ipwrapper's Route class (commit
	9903861228c4b16fa5636f626e7548f8f0d0f41f), we dropped the only
	usage of netinfo's intToAddress. Since it had a very specific
	usage, it is safe to drop it.

	netinfo: drop unused NetInfo.getBridgelessNetworkForIface
	Commit fb443166d483dbff199f7e35313304f849b98470 not only changed the
	method so that it would return only a single network, but also
	removed its only usage. It is time to drop it.

	netinfo: drop generally unused NetInfo.getNicBondings
	getNicBondings was only used as a rather verbose convenience method
	for getNicBonding. It is better to just have a simplified version
	inside getNicBonding.

2014-07-07  Adam Litke  <alitke@redhat.com>

	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.

2014-07-07  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: remove deprecated getaddr and getnetmask
	In 5fa87504543719fdc827d2284738a7723b8a5973 we started using libnl
	to retrieve both ipv4 addresses and netmask and these methods fell
	into deprecation. It's time to get rid of this old ethtool using
	code.

	netinfo: remove unused getipv6addrs
	In 5fa87504543719fdc827d2284738a7723b8a5973 we started using libnl
	to retrieve both ipv4 and ipv6 addresses and this method fell into
	deprecation. It's time to get rid of this unused code.

	netinfo: add gateway reporting to all devices
	by adding gateway reporting to all the devices we make it possible
	to for a vdsm client to gather which is the gateway of the device
	that is to be used for providing link to a bridged (VM) network.

	netlink: add route retrieval capability
	Currenlty we use iproute2 external processes and parsing to retrieve
	the ip routes and rules that are on the system. This patch implements
	the information retrieval using libnl, lowering the resource needs
	and increasing the performance.

	As an example, to retrieve the the routes that we are interested in
	for source routing we would now do:

	    In [9]: list((route for route in netlink.iter_routes() if route['oif'] == 'dummy_90' and route['scope'] == 'universe' and route['family'] == 'inet')
	    )
	    Out[10]:
	    [{'destination': '240.0.0.0/24',
	      'destination_length': 24,
	      'family': 'inet',
	      'gateway': '240.0.0.1',
	      'oif': 'dummy_90',
	      'scope': 'universe',
	      'source': None,
	      'source_length': 0,
	      'table': 252},
	     {'destination': 'none',
	      'destination_length': 0,
	      'family': 'inet',
	      'gateway': '240.0.0.254',
	      'oif': 'dummy_90',
	      'scope': 'universe',
	      'source': None,
	      'source_length': 0,
	      'table': 252}]

	Note that it would be easy to extend for the inet6 family and that
	the table number is wrong in el6 because libnl-1 only has an uint8
	for the table instead of the 32bits of rta_table. For this reason,
	on el6.5 the filtering by table is not possible (as we report None).
	Libnl3 distros, on the other hand, can do a fast and correct
	filtering just checking the table number.

	The performance as measured by ipython is:
	    %timeit list((route for route in netlink.iter_routes() if route['oif'] == 'dummy_90' and route['scope'] == 'universe' and route['family'] == 'inet'))
	    1000 loops, best of 3: 907 us per loop

	While the current solution, before parsing and filtering is:
	    In [16]: %timeit ipwrapper.routeShowTable('4026531841')
	    1000 loops, best of 3: 1.81 ms per loop

	netlink: make the scope string stable across libnl1-3
	For globally scoped routes, libnl1 reports 'universe' and libnl3
	reports 'global'. This patch makes sure that we only get 'global'.

2014-07-07  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-07  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  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-05  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-04  Martin Sivak  <msivak@redhat.com>

	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.

2014-07-04  Antoni S. Puimedon  <asegurap@redhat.com>

	net: remove last dependency on ifcfg persistence
	Up until now, some of the most corner case behavior (removal of
	partially broken networks) was only working for ifcfg persistence
	or ifcfg configurator + unified persistence.

	This patch cleans the api from ifcfgisms.

2014-07-04  Francesco Romani  <fromani@redhat.com>

	migration: add properties and string constants
	This patch adds constants for state and method and helper properties
	to avoid the client code to mess up with the migration.SourceThread
	internals, and to make the migration code looks a bit nicer.

2014-07-03  Martin Sivak  <msivak@redhat.com>

	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.

	Fix the API definition for cpu tune methods

2014-07-03  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.

2014-07-03  Dan Kenigsberg  <danken@redhat.com>

	sriov hook: allow VFs with nonzero pci domain
	This patch is the smallest change needed to expose a host nic with non-zero pci
	domain to a guest.

	The hook does a questionable detour via libvirt in order to extract the pci
	address of the specified nic. This begs for simplification in a follow up patch.

	Bug-Url: https://bugzilla.redhat.com/1092425

2014-07-03  Francesco Romani  <fromani@redhat.com>

	vm: drop redundant hasattr()
	I don't see how it is possible for a Vm instance to *not* have the
	updateGuestCpuRunning method, therefore I remove the hasattr() check
	before to call it.

	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.

2014-07-03  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.

	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.

	HostStats: recalculate total line rate every time
	This should have been done when we started supporting host plugging in
	commit b7b29e6.

2014-07-03  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Fix unsafe iteration of domain monitor status
	When we generate repoStat response, we used to iterate over the
	monitored domains, getting the status for each monitor. This naïve
	approach does not consider that a monitor may be removed from the domain
	monitor dict during the iteration.

	Since the only usage now is getting the status for all domains, I
	changed getStatus to return an iterator returning all domains status in
	a safe manner.

2014-07-03  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.

2014-07-03  Nir Soffer  <nsoffer@redhat.com>

	domainMonitor: Fix unsafe iteration
	Using dict.iteritems() is safe only if nobody else can modify the
	dictionary while iterating. However in DomainMonitor, others threads can
	add or remove items during the iteration, so we must use dict.items(),
	which copies the keys and values atomically.

	dict.iteritems() is useful when we have huge dict and we don't want to
	create a huge list of items, but in case of the domain monitor, where we
	have less then 100 monitors, there is not need for fancy iteration.

	While modifying this line, I also improve the names to make the code
	more clear, this can be separated to another patch but I don't think it
	is needed in this case.

2014-07-02  Antoni S. Puimedon  <asegurap@redhat.com>

	netlink: simplify string conversion methods
	There are multiple string handling needs shared between the netlink
	modules. This patch unifies them to simplify all the modules.

	netlink: move netlink into a lib vdsm subpackage
	netlink.py was increasingly getting new netlink entities making the
	module difficult to follow. This patch splits each entity on a
	separate module of a netlink package so that each new module is
	easy to reason about.

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 the this cause the method to 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

2014-07-01  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-01  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-01  Nir Soffer  <nsoffer@redhat.com>

	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 e xactly 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  Francesco Romani  <fromani@redhat.com>

	vm: add direct import of advancedstats helpers
	This is purely a transitional patch towards
	the move of VmStatsThread from vm.py to sampling.py.

	This patch adds directly import of the VmStatsThread
	dependencies, in order to make the move of such class
	exactly a trivial matter of cut/paste plus fixing imports,
	with exactly zero changes needed to VmStatsThread itself.

	Thus the final patch will be more easily
	verifiable.

2014-06-30  Yeela Kaplan  <ykaplan@redhat.com>

	Add missing validateQemuReadable to oop
	Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1114499

2014-06-30  Martin Polednik  <mpoledni@redhat.com>

	faqemu hook: move memory limitation to config
	*** WARNING: this patch changes default behaviour for faqemu, increasing
	memory usage to what is supplied in vmCreate call unless changed in
	/etc/vdsm/vdsm.conf ***

	This patch removes memory constraints of faqemu, moving one global
	constraint to configuration. Setting this to '0' causes memory element not
	be touched by the hook, using nonzero value sets the memory limit.

	Usage of > 20 MB memory is required
	when running faqemu with system kernel/initramfs combo.

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).

2014-06-28  Francesco Romani  <fromani@redhat.com>

	virt: replace status string with constant
	during the extraction of migration.py some status strings
	survived to the port to vmstatus. This patch fixes this.

2014-06-27  Francesco Romani  <fromani@redhat.com>

	vm: janitorial: detect if dom is running
	this patch extracts a little helper method
	to detect if the underlying libvirt
	domain is running.

2014-06-27  Martin Sivak  <msivak@redhat.com>

	Extract the DOM to Drive name, alias and path logic to reusable method

2014-06-27  pkliczewski  <piotr.kliczewski@gmail.com>

	vdsm: adding docstring to MultiProtocolAcceptor and ConnectedTcpServer
	MultiProtocolAcceptor and ConnectedTCPServer now have docstring
	explanation how they work.

	test: fixing cif getinstance issue
	During running jsonrpc test cif.getInstance fails due to missing logger.
	We mock getInstance method to return fake cif.

2014-06-26  Dan Kenigsberg  <danken@redhat.com>

	vdscli: no need to generate using autoconf
	.in files are cumbersome and non-pythonic. As such, they should be
	avoided when possible. The only autoconf-related value in vdscli was the
	default value for the trust store. This value is already available from
	config.py, which is still auto-confingured.

2014-06-26  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  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-06-26  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-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-26  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.

2014-06-25  pkliczewski  <piotr.kliczewski@gmail.com>

	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.

2014-06-25  Francesco Romani  <fromani@redhat.com>

	virt: do not access devices directly outside Vm
	VmStatsThread used to access directly the _devices and conf
	fields of vm.Vm.
	This patch does a little cleanup by introducing helper getters
	to mediate the access to the devices for the Vm clients,
	VmStatsThread being the first.

	this patch add little benefit on its own but paves the road
	to extract VmStatsThread from vm.py and put it in sampling.py.

2014-06-25  Nir Soffer  <nsoffer@redhat.com>

	misc: Fix possible deadlock when entering sampling method
	If a thread entered a sampling method and got the lock, it must exit and
	release the lock. This code try to ensure this using try finally block.
	However, before the try, we log a message about entering the sampling
	method. If this log call raises, the lock will never be released,
	causing all other threads entering this methods to wait forever.

	The possibility of logging failure is very low, but we have seen this in
	the field with older Python versions. It is likely that most of the code
	is not safe considering such errors, but this particular case it is
	trivial to write the code safely.

2014-06-25  Dima Kuznetsov  <dkuznets@redhat.com>

	log: Remove metadata.log
	This log exists only in the spec file and logger.conf.
	Removing because not used by VDSM.

2014-06-25  Nir Soffer  <nsoffer@redhat.com>

	xmlrpc: Move related classes to new xmlrpc module
	The xmlrpc infrastructure is not general utility and does not belong in
	utils.py. This patch does not make any change except moving the xmlrpc
	classes and imports to a new module and updating the code that imported
	them previously from utils.py.

2014-06-25  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-25  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/1071654

2014-06-24  Ondřej Svoboda  <osvoboda@redhat.com>

	netinfo: Add 'bootproto4' to all devices
	Previously, this information (which deprecated the use of
	ifcfg BOOTPROTO property) was added only to devices used by
	networks.

	By advertising bootproto4 (either "none" or "dhcp")
	for all devices, a new scenario is now possible.

	When installing a new host, devices now clearly show in their
	bootproto4 parameter that they were either configured by dhclient
	("dhcp") or their address was set manually ("none"), regardless
	of an ifcfg file having been used.

	Bug-Url: https://bugzilla.redhat.com/987813

	netinfo: Move _devinfo out of _*info to avoid passing more parameters later

2014-06-24  pkliczewski  <piotr.kliczewski@gmail.com>

	vdsm: sslTests updated to use sslutils
	sslTests used ssl code from SecureXMLRPCServer which was moved to new
	module.

2014-06-24  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

	misc: Simplify DynamicBarrier implemenation
	DynamicBarrier uses a threading.Condition. The condition
	already contain a lock, used to synchronize enter() and exit().

	Within the critical sections in enter() and exit(), only one thread can
	run. When a thread call self._cond.wait(), the condition lock is
	released atomically and the next thread waiting on the condition lock
	continue to run. When a thread return from self.cond.wait(), it get the
	condition lock and run, while all other threads are waiting on the
	condition lock. This is ensured by threading.Condition, both Python
	builtin and pthread_cond when using pthreading.

	To keep a boolean state of the barrier, we don't need another lock, a
	boolean is just fine.

	Previously, when trying to exit a barrier without entering it, a
	ThreadError was raised:

	    thread.error: release unlocked lock

	Now a more specific and useful message is raised:

	    AssertionError: Attempt to exit a barrier without entering

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-10  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-10  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-10  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-10  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-10  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-29  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-25  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-20  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-17  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-06  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-22  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-22  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-16  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-10  Antoni S. Puimedon  <asegurap@redhat.com>

	rpmspec: Drop Fedora <19 special cases

	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-01  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-01  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-16  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-02-28  Antoni S. Puimedon  <asegurap@redhat.com>

	netinfo: remove code duplication between nics, bridges, bonds and vlans

	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-23  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-18  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-13  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-11  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-11  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-11  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-03  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-24  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.

	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

2014-01-22  Antoni S. Puimedon  <asegurap@redhat.com>

	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-18  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-16  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-02  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-02  Antoni S. Puimedon  <asegurap@redhat.com>

	sourceRouteThread: log unhandled exceptions

2014-01-02  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.

2013-11-28  Dan Kenigsberg  <danken@redhat.com>

	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.

	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-21  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-16  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-07  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

2013-11-03  Martin Polednik  <mpoledni@redhat.com>

	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-04  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-19  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-11  Federico Simoncelli  <fsimonce@redhat.com>

	vdsm-tool: handle missing sanlock pid file

2013-09-11  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-06  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-24  Martin Polednik  <mpoledni@redhat.com>

	xmlrpcTests: refactoring
	- split xmlrpcTests into storageTests and virtTests to reduce complexity
	- use vdsProxy approach for virtTests part

2013-08-23  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-20  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-20  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-19  Amador Pahim  <apahim@redhat.com>

	Introducing hidden_vlans configurable.

2013-08-19  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-21  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.

2013-07-15  Douglas Schilling Landgraf  <dougsland@redhat.com>

	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-09  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-08  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-04  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-20  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-06  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-10  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-02  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-01  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-23  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-19  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-06  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-30  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-22  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-20  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-14  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-19  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-18  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-14  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-17  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-28  Douglas Schilling Landgraf  <dougsland@redhat.com>

	nfs-check: Add except socket.gethostbyname()
	Avoid exception when cannot resolve localhost.

2012-03-28  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-22  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

2011-11-02  Dan Kenigsberg  <danken@redhat.com>

	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-28  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-11  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-11  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-06  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-06  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-04  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-16  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-03  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-06  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
