Initial commit of xen devstack support
diff --git a/tools/xen/scripts/uninstall-os-vpx.sh b/tools/xen/scripts/uninstall-os-vpx.sh
new file mode 100755
index 0000000..7c1cd41
--- /dev/null
+++ b/tools/xen/scripts/uninstall-os-vpx.sh
@@ -0,0 +1,102 @@
+#!/bin/bash
+#
+# Copyright (c) 2011 Citrix Systems, Inc.
+# Copyright 2011 OpenStack LLC.
+# Copyright (C) 2011 Nicira, Inc
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+remove_data=
+if [ "$1" = "--remove-data" ]
+then
+ remove_data=1
+fi
+
+set -eu
+
+xe_min()
+{
+ local cmd="$1"
+ shift
+ /opt/xensource/bin/xe "$cmd" --minimal "$@"
+}
+
+destroy_vdi()
+{
+ local vbd_uuid="$1"
+ local type=$(xe_min vbd-list uuid=$vbd_uuid params=type)
+ local dev=$(xe_min vbd-list uuid=$vbd_uuid params=userdevice)
+ local vdi_uuid=$(xe_min vbd-list uuid=$vbd_uuid params=vdi-uuid)
+
+ if [ "$type" = 'Disk' ] && [ "$dev" != 'xvda' ] && [ "$dev" != '0' ]
+ then
+ echo -n "Destroying data disk... "
+ xe vdi-destroy uuid=$vdi_uuid
+ echo "done."
+ fi
+}
+
+uninstall()
+{
+ local vm_uuid="$1"
+ local power_state=$(xe_min vm-list uuid=$vm_uuid params=power-state)
+
+ if [ "$power_state" != "halted" ]
+ then
+ echo -n "Shutting down VM... "
+ xe vm-shutdown vm=$vm_uuid force=true
+ echo "done."
+ fi
+
+ if [ "$remove_data" = "1" ]
+ then
+ for v in $(xe_min vbd-list vm-uuid=$vm_uuid | sed -e 's/,/ /g')
+ do
+ destroy_vdi "$v"
+ done
+ fi
+
+ echo -n "Deleting VM... "
+ xe vm-uninstall vm=$vm_uuid force=true >/dev/null
+ echo "done."
+}
+
+uninstall_template()
+{
+ local vm_uuid="$1"
+
+ if [ "$remove_data" = "1" ]
+ then
+ for v in $(xe_min vbd-list vm-uuid=$vm_uuid | sed -e 's/,/ /g')
+ do
+ destroy_vdi "$v"
+ done
+ fi
+
+ echo -n "Deleting template... "
+ xe template-uninstall template-uuid=$vm_uuid force=true >/dev/null
+ echo "done."
+}
+
+
+for u in $(xe_min vm-list other-config:os-vpx=true | sed -e 's/,/ /g')
+do
+ uninstall "$u"
+done
+
+for u in $(xe_min template-list other-config:os-vpx=true | sed -e 's/,/ /g')
+do
+ uninstall_template "$u"
+done