You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.5 KiB
42 lines
1.5 KiB
From 95f0d418fe4240a0ea2706cc400828ec90984844 Mon Sep 17 00:00:00 2001 |
|
From: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> |
|
Date: Tue, 5 Nov 2013 10:03:33 +0100 |
|
Subject: [PATCH 34/48] schema: Fix class removal with Pegasus |
|
|
|
In provider de-registration step, the provider-register.sh |
|
script is attempting to delete all libvirt-cim classes from |
|
the Pegasus repository. Pegasus refuses to delete classes |
|
if it still has child classes in the repository. |
|
While the MOF files are processed in reverse order, the classes |
|
were still deleted in their original order, which can fail due |
|
to inter-class dependencies. |
|
Changed to reverse the class deletion order on a per MOF |
|
file base. |
|
|
|
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> |
|
Signed-off-by: John Ferlan <jferlan@redhat.com> |
|
--- |
|
provider-register.sh | 8 ++++++-- |
|
1 file changed, 6 insertions(+), 2 deletions(-) |
|
|
|
diff --git a/provider-register.sh b/provider-register.sh |
|
index b730ef3..abe8e95 100755 |
|
--- a/provider-register.sh |
|
+++ b/provider-register.sh |
|
@@ -332,8 +332,12 @@ pegasus_uninstall() |
|
echo "Error: wbemexec not found" >&2 |
|
return 1 |
|
fi |
|
- CLASSES=`cat $mymofs 2> /dev/null | grep '^class'| cut -d ' ' -f 2 | uniq` |
|
- |
|
+ for mof in $mymofs |
|
+ do |
|
+ # We must delete the classes in reverse order per MOF file |
|
+ MOFCLASSES=`cat $mof 2> /dev/null | grep '^[[:space:]]*class' | sed 's/ \+/ /g' | tac | cut -d ' ' -f 2` |
|
+ CLASSES="$CLASSES $MOFCLASSES" |
|
+ done |
|
for _TEMPDIR in /var/tmp /tmp |
|
do |
|
if test -w $_TEMPDIR |
|
-- |
|
1.8.5.3
|
|
|