From 1392d885e650e06937846d536ebb11b91d0adc75 Mon Sep 17 00:00:00 2001 From: Johannes Erdfelt Date: Thu, 9 Jun 2011 20:10:02 +0000 Subject: Add version and agentupdate commands --- plugins/xenserver/xenapi/etc/xapi.d/plugins/agent | 37 +++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent b/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent index 9e761f264..0aab7c2eb 100755 --- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent +++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent @@ -53,6 +53,19 @@ class TimeoutError(StandardError): pass +def version(self, arg_dict): + """Get version of agent.""" + arg_dict["value"] = json.dumps({"name": "version", "value": ""}) + request_id = arg_dict["id"] + arg_dict["path"] = "data/host/%s" % request_id + xenstore.write_record(self, arg_dict) + try: + resp = _wait_for_agent(self, request_id, arg_dict) + except TimeoutError, e: + raise PluginError(e) + return resp + + def key_init(self, arg_dict): """Handles the Diffie-Hellman key exchange with the agent to establish the shared secret key used to encrypt/decrypt sensitive @@ -144,6 +157,24 @@ def inject_file(self, arg_dict): return resp +@jsonify +def agent_update(self, arg_dict): + """Expects an URL and md5sum of the contents, then directs the agent to + update itself.""" + request_id = arg_dict["id"] + url = arg_dict["url"] + md5sum = arg_dict["md5sum"] + arg_dict["value"] = json.dumps({"name": "agentupdate", + "value": {"url": url, "md5sum": md5sum}}) + arg_dict["path"] = "data/host/%s" % request_id + xenstore.write_record(self, arg_dict) + try: + resp = _wait_for_agent(self, request_id, arg_dict) + except TimeoutError, e: + raise PluginError(e) + return resp + + def _agent_has_method(self, method): """Check that the agent has a particular method by checking its features. Cache the features so we don't have to query the agent @@ -201,7 +232,9 @@ def _wait_for_agent(self, request_id, arg_dict): if __name__ == "__main__": XenAPIPlugin.dispatch( - {"key_init": key_init, + {"version": version, + "key_init": key_init, "password": password, "resetnetwork": resetnetwork, - "inject_file": inject_file}) + "inject_file": inject_file, + "agentupdate": agent_update}) -- cgit From 73303a34652c738064821ede0258a799435c63d1 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Sat, 11 Jun 2011 22:12:59 -0400 Subject: Updated so that we use a 'tmp' subdirectory under the Xen SR when staging migrations. Fixes an issue where you would get a 'File exists' error because the directory under 'images' already existed (created via the rsync copy). --- plugins/xenserver/xenapi/etc/xapi.d/plugins/migration | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration b/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration index 75c653408..ac1c50ad9 100644 --- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration +++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration @@ -44,7 +44,7 @@ def move_vhds_into_sr(session, args): new_cow_uuid = params['new_cow_uuid'] sr_path = params['sr_path'] - sr_temp_path = "%s/images/" % sr_path + sr_temp_path = "%s/tmp/" % sr_path # Discover the copied VHDs locally, and then set up paths to copy # them to under the SR -- cgit From 00eae759e8b3d0d35af513471d7d2d43a18ba215 Mon Sep 17 00:00:00 2001 From: Johannes Erdfelt Date: Fri, 17 Jun 2011 20:34:43 +0000 Subject: Result is already in JSON format from _wait_for_agent --- plugins/xenserver/xenapi/etc/xapi.d/plugins/agent | 1 - 1 file changed, 1 deletion(-) (limited to 'plugins') diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent b/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent index 0aab7c2eb..b8a1b936a 100755 --- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent +++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent @@ -157,7 +157,6 @@ def inject_file(self, arg_dict): return resp -@jsonify def agent_update(self, arg_dict): """Expects an URL and md5sum of the contents, then directs the agent to update itself.""" -- cgit From 31e3aed4a25e0525797c7fc6cbdce0fa652b3878 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Mon, 20 Jun 2011 20:33:15 -0700 Subject: Remove the unnecessary insertion of whitespace. This happens to be enough to match this patch apply on recent versions of XenServer / Xen Cloud Platform. --- .../xenserver/networking/etc/xensource/scripts/vif_5.6-fp1.patch | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'plugins') diff --git a/plugins/xenserver/networking/etc/xensource/scripts/vif_5.6-fp1.patch b/plugins/xenserver/networking/etc/xensource/scripts/vif_5.6-fp1.patch index feaf1312d..d42a11eff 100644 --- a/plugins/xenserver/networking/etc/xensource/scripts/vif_5.6-fp1.patch +++ b/plugins/xenserver/networking/etc/xensource/scripts/vif_5.6-fp1.patch @@ -8,7 +8,7 @@ fi ;; -@@ -224,9 +225,11 @@ +@@ -224,6 +225,7 @@ remove) if [ "${TYPE}" = "vif" ] ;then @@ -16,7 +16,3 @@ xenstore-rm "${HOTPLUG}/hotplug" fi logger -t scripts-vif "${dev} has been removed" - remove_from_bridge - ;; - esac -+ -- cgit From 21cbac8334a37f15595088bc0c99f8f04451f1a7 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Mon, 27 Jun 2011 00:20:53 -0400 Subject: Adding files for building an rpm for xenserver xenapi plugins. --- plugins/xenserver/xenapi/contrib/build.sh | 20 ++++++++++++ .../rpmbuild/SPECS/nova-xenapi-plugins.spec | 36 ++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 plugins/xenserver/xenapi/contrib/build.sh create mode 100644 plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec (limited to 'plugins') diff --git a/plugins/xenserver/xenapi/contrib/build.sh b/plugins/xenserver/xenapi/contrib/build.sh new file mode 100755 index 000000000..b194fface --- /dev/null +++ b/plugins/xenserver/xenapi/contrib/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash +PACKAGE=nova-xenapi-plugins +RPMBUILD_DIR=$PWD/rpmbuild +if [ ! -d $RPMBUILD_DIR ]; then + echo $RPMBUILD_DIR is missing + exit 1 +fi + +for dir in BUILD BUILDROOT SRPMS RPMS SOURCES; do + rm -rf $RPMBUILD_DIR/$dir + mkdir -p $RPMBUILD_DIR/$dir +done + +rm -rf /tmp/$PACKAGE +mkdir /tmp/$PACKAGE +cp -r ../etc/xapi.d /tmp/$PACKAGE +tar czf $RPMBUILD_DIR/SOURCES/$PACKAGE.tar.gz -C /tmp $PACKAGE + +rpmbuild -ba --nodeps --define "_topdir $RPMBUILD_DIR" \ + $RPMBUILD_DIR/SPECS/$PACKAGE.spec diff --git a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec new file mode 100644 index 000000000..1a61dbbad --- /dev/null +++ b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec @@ -0,0 +1,36 @@ +Name: nova-xenapi-plugins +Version: 1.0 +Release: 1 +Summary: Files for XenAPI support. +License: Apache +Group: Applications/Utilities +Source0: nova-xenapi-plugins.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%define debug_package %{nil} + +%description +This package contains files that are required for XenAPI support for OpenStack. + +%prep +%setup -q -n nova-xenapi-plugins + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/etc +cp -r xapi.d $RPM_BUILD_ROOT/etc +chmod u+x $RPM_BUILD_ROOT/etc/xapi.d/plugins/objectstore +#%{_fixperms} $RPM_BUILD_ROOT/* + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +/etc/xapi.d/plugins/agent +/etc/xapi.d/plugins/glance +/etc/xapi.d/plugins/migration +/etc/xapi.d/plugins/objectstore +/etc/xapi.d/plugins/pluginlib_nova.py +/etc/xapi.d/plugins/xenhost +/etc/xapi.d/plugins/xenstore.py -- cgit From 998b5ba2c709054c535583195ba489454e384f41 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Mon, 27 Jun 2011 12:04:44 -0400 Subject: Changed package name to openstack-xen-plugins per dprince's suggestion. All the files in /etc/xapi.d/plugins must be executable. Added dependency on parted. Renamed build.sh to build-rpm.sh. --- plugins/xenserver/xenapi/contrib/build-rpm.sh | 20 ++++++++++++ plugins/xenserver/xenapi/contrib/build.sh | 20 ------------ .../rpmbuild/SPECS/nova-xenapi-plugins.spec | 36 ---------------------- .../rpmbuild/SPECS/openstack-xen-plugins.spec | 36 ++++++++++++++++++++++ 4 files changed, 56 insertions(+), 56 deletions(-) create mode 100755 plugins/xenserver/xenapi/contrib/build-rpm.sh delete mode 100755 plugins/xenserver/xenapi/contrib/build.sh delete mode 100644 plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec create mode 100644 plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec (limited to 'plugins') diff --git a/plugins/xenserver/xenapi/contrib/build-rpm.sh b/plugins/xenserver/xenapi/contrib/build-rpm.sh new file mode 100755 index 000000000..f7bed4d84 --- /dev/null +++ b/plugins/xenserver/xenapi/contrib/build-rpm.sh @@ -0,0 +1,20 @@ +#!/bin/bash +PACKAGE=openstack-xen-plugins +RPMBUILD_DIR=$PWD/rpmbuild +if [ ! -d $RPMBUILD_DIR ]; then + echo $RPMBUILD_DIR is missing + exit 1 +fi + +for dir in BUILD BUILDROOT SRPMS RPMS SOURCES; do + rm -rf $RPMBUILD_DIR/$dir + mkdir -p $RPMBUILD_DIR/$dir +done + +rm -rf /tmp/$PACKAGE +mkdir /tmp/$PACKAGE +cp -r ../etc/xapi.d /tmp/$PACKAGE +tar czf $RPMBUILD_DIR/SOURCES/$PACKAGE.tar.gz -C /tmp $PACKAGE + +rpmbuild -ba --nodeps --define "_topdir $RPMBUILD_DIR" \ + $RPMBUILD_DIR/SPECS/$PACKAGE.spec diff --git a/plugins/xenserver/xenapi/contrib/build.sh b/plugins/xenserver/xenapi/contrib/build.sh deleted file mode 100755 index b194fface..000000000 --- a/plugins/xenserver/xenapi/contrib/build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -PACKAGE=nova-xenapi-plugins -RPMBUILD_DIR=$PWD/rpmbuild -if [ ! -d $RPMBUILD_DIR ]; then - echo $RPMBUILD_DIR is missing - exit 1 -fi - -for dir in BUILD BUILDROOT SRPMS RPMS SOURCES; do - rm -rf $RPMBUILD_DIR/$dir - mkdir -p $RPMBUILD_DIR/$dir -done - -rm -rf /tmp/$PACKAGE -mkdir /tmp/$PACKAGE -cp -r ../etc/xapi.d /tmp/$PACKAGE -tar czf $RPMBUILD_DIR/SOURCES/$PACKAGE.tar.gz -C /tmp $PACKAGE - -rpmbuild -ba --nodeps --define "_topdir $RPMBUILD_DIR" \ - $RPMBUILD_DIR/SPECS/$PACKAGE.spec diff --git a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec deleted file mode 100644 index 1a61dbbad..000000000 --- a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/nova-xenapi-plugins.spec +++ /dev/null @@ -1,36 +0,0 @@ -Name: nova-xenapi-plugins -Version: 1.0 -Release: 1 -Summary: Files for XenAPI support. -License: Apache -Group: Applications/Utilities -Source0: nova-xenapi-plugins.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -%define debug_package %{nil} - -%description -This package contains files that are required for XenAPI support for OpenStack. - -%prep -%setup -q -n nova-xenapi-plugins - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT/etc -cp -r xapi.d $RPM_BUILD_ROOT/etc -chmod u+x $RPM_BUILD_ROOT/etc/xapi.d/plugins/objectstore -#%{_fixperms} $RPM_BUILD_ROOT/* - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root,-) -/etc/xapi.d/plugins/agent -/etc/xapi.d/plugins/glance -/etc/xapi.d/plugins/migration -/etc/xapi.d/plugins/objectstore -/etc/xapi.d/plugins/pluginlib_nova.py -/etc/xapi.d/plugins/xenhost -/etc/xapi.d/plugins/xenstore.py diff --git a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec new file mode 100644 index 000000000..864ca7ff7 --- /dev/null +++ b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec @@ -0,0 +1,36 @@ +Name: openstack-xen-plugins +Version: 2011.3 +Release: 1 +Summary: Files for XenAPI support. +License: Apache +Group: Applications/Utilities +Source0: openstack-xen-plugins.tar.gz +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/migration +/etc/xapi.d/plugins/objectstore +/etc/xapi.d/plugins/pluginlib_nova.py +/etc/xapi.d/plugins/xenhost +/etc/xapi.d/plugins/xenstore.py -- cgit From 7b6ded922adc26f26dd208d5de1763b708866cea Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Mon, 27 Jun 2011 12:10:47 -0400 Subject: Updating license to ASL 2.0 --- .../xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec index 864ca7ff7..91ff20e5f 100644 --- a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec +++ b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec @@ -2,7 +2,7 @@ Name: openstack-xen-plugins Version: 2011.3 Release: 1 Summary: Files for XenAPI support. -License: Apache +License: ASL 2.0 Group: Applications/Utilities Source0: openstack-xen-plugins.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -- cgit