
The core problem is that XenServer's `VDI.copy` call drops the destination file directly into the SR. This means that half-completed files are visible with no way to distinguish these from fully-copied files. We had some code that attempted to mitigate this issue by checking physical_utilisation against an expected value. The problem with this code is that it didn't account for VDI chaining where the physical_utilisation would not necessarily match the parent. The net effect of this was that 'cloned' VDIs would never be found because their physical_utilisation was far below what was expected. The work around is to create our own `_safe_copy_vdi` which is isolated and atomic. Long term, `VDI.copy` should be fixed so that half-completed files are never stored in the SR. Change-Id: I6eb3cb5259f9ee1c7394e58f76105a8b39bfc720
40 lines
994 B
RPMSpec
40 lines
994 B
RPMSpec
Name: openstack-xen-plugins
|
|
Version: 2012.1
|
|
Release: 1
|
|
Summary: Files for XenAPI support.
|
|
License: ASL 2.0
|
|
Group: Applications/Utilities
|
|
Source0: openstack-xen-plugins.tar.gz
|
|
BuildArch: noarch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
Requires: parted
|
|
|
|
%define debug_package %{nil}
|
|
|
|
%description
|
|
This package contains files that are required for XenAPI support for OpenStack.
|
|
|
|
%prep
|
|
%setup -q -n openstack-xen-plugins
|
|
|
|
%install
|
|
rm -rf $RPM_BUILD_ROOT
|
|
mkdir -p $RPM_BUILD_ROOT/etc
|
|
cp -r xapi.d $RPM_BUILD_ROOT/etc
|
|
chmod a+x $RPM_BUILD_ROOT/etc/xapi.d/plugins/*
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
/etc/xapi.d/plugins/agent
|
|
/etc/xapi.d/plugins/glance
|
|
/etc/xapi.d/plugins/kernel
|
|
/etc/xapi.d/plugins/migration
|
|
/etc/xapi.d/plugins/pluginlib_nova.py
|
|
/etc/xapi.d/plugins/workarounds
|
|
/etc/xapi.d/plugins/xenhost
|
|
/etc/xapi.d/plugins/xenstore.py
|
|
/etc/xapi.d/plugins/utils.py
|