Explorar el Código

replace hard-coded OIDs with dynamic queries, including verbose output of all relevant commands

Ralf S. Engelschall hace 22 años
padre
commit
9c5438e549
Se han modificado 1 ficheros con 55 adiciones y 29 borrados
  1. 55 29
      openpkg/uuid.sh

+ 55 - 29
openpkg/uuid.sh

@@ -44,19 +44,9 @@ while [ 1 ]; do
     esac
 done
 
-#   Prepare Static Information
-do_prepare () {
-    #   official OpenPKG OID
-    OID_OPKG="1.3.6.1.4.1.18749.4.1"
-
-    #   special UUIDs for OpenPKG OID-based namespaces
-    UUID_NS_INSTANCE=`$prog_uuid -v3 ns:OID "$OID_OPKG.1"`
-    UUID_NS_PLATFORM=`$prog_uuid -v3 ns:OID "$OID_OPKG.2"`
-
-    #   special "Nil UUID"
-    UUID_NIL="00000000-0000-0000-0000-000000000000"
-}
-
+#   special "Nil UUID"
+UUID_NIL="00000000-0000-0000-0000-000000000000"
+    
 #   Query Dynamic Information
 do_query () {
     #   query RPM information
@@ -114,7 +104,7 @@ do_load () {
     #   load configuration (and override defaults)
     if [ -r $file_uuid ]; then
         if [ ".$opt_v" = .yes ]; then
-            echo "$0: loading UUID configuration file ($file_uuid)"
+            echo "uuid: loading UUID configuration file ($file_uuid)"
         fi
         . $file_uuid
     fi
@@ -128,10 +118,10 @@ do_save () {
     if [ ".$changed" = .yes ]; then
         #   save configuration
         if [ ".$opt_v" = .yes ]; then
-            echo "$0: saving UUID configuration file ($file_uuid)"
+            echo "uuid: saving UUID configuration file ($file_uuid)"
         fi
         if [ -f $file_uuid ] && [ ! -w $file_uuid ]; then
-            echo "$0:ERROR: cannot write to $file_uuid" 1>&2
+            echo "uuid:ERROR: cannot write to $file_uuid" 1>&2
             exit 1
         fi
         ( echo "UUID_REGISTRY=\"$UUID_REGISTRY\""
@@ -141,7 +131,7 @@ do_save () {
         n=`egrep 'UUID_(REGISTRY|INSTANCE|PLATFORM)="[0-9a-f-]*"' \
            $file_uuid.new | wc -l | awk '{ print $1; }'`
         if [ ".$n" != .3 ]; then
-            echo "$0:ERROR: failed to update $file_uuid" 1>&2
+            echo "uuid:ERROR: failed to update $file_uuid" 1>&2
             rm -f $file_uuid.new
             exit 1
         fi
@@ -181,12 +171,12 @@ do_update () {
             opt="-m"
         fi
         if [ ".$opt_v" = .yes ]; then
-            echo "$0: calculating OpenPKG Registry UUID (UUID_REGISTRY):"
-            echo "$0: << $prog_uuid -v1 $opt"
+            echo "uuid: calculating OpenPKG Registry UUID (UUID_REGISTRY):"
+            echo "uuid: << $prog_uuid -v1 $opt"
         fi
         UUID_REGISTRY=`$prog_uuid -v1 $opt`
         if [ ".$opt_v" = .yes ]; then
-            echo "$0: >> $UUID_REGISTRY (NOT REPEATABLE)"
+            echo "uuid: >> $UUID_REGISTRY (NOT REPEATABLE)"
         fi
         changed=yes
     fi
@@ -199,12 +189,28 @@ do_update () {
     name="$name:${Q_rusr}:${Q_ruid}:${Q_rgrp}:${Q_rgid}"
     name="$name:${Q_nusr}:${Q_nuid}:${Q_ngrp}:${Q_ngid}"
     if [ ".$opt_v" = .yes ]; then
-        echo "$0: calculating OpenPKG Instance UUID (UUID_INSTANCE):"
-        echo "$0: << $prog_uuid -v3 \"$UUID_NS_INSTANCE\" \"$name\""
+        echo "uuid: querying OpenPKG Instance OID"
+        echo "uuid: << $prog_rpm --eval '%{l_openpkg_oid_instance}'"
+    fi
+    OID_NS_INSTANCE="`$prog_rpm --eval '%{l_openpkg_oid_instance}'`"
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: >> $OID_NS_INSTANCE"
+    fi
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: calculating OpenPKG Instance Namespace UUID"
+        echo "uuid: << $prog_uuid -v3 ns:OID \"$OID_NS_INSTANCE\""
+    fi
+    UUID_NS_INSTANCE=`$prog_uuid -v3 ns:OID "$OID_NS_INSTANCE"`
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: >> $UUID_NS_INSTANCE"
+    fi
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: calculating OpenPKG Instance UUID (UUID_INSTANCE):"
+        echo "uuid: << $prog_uuid -v3 \"$UUID_NS_INSTANCE\" \"$name\""
     fi
     uuid=`$prog_uuid -v3 "$UUID_NS_INSTANCE" "$name"`
     if [ ".$opt_v" = .yes ]; then
-        echo "$0: >> $uuid"
+        echo "uuid: >> $uuid"
     fi
     if [ ".$UUID_INSTANCE" != ".$uuid" ]; then
         UUID_INSTANCE="$uuid"
@@ -216,12 +222,28 @@ do_update () {
     name="$name:${Q_hostname}"
     name="$name:${Q_ipaddr}"
     if [ ".$opt_v" = .yes ]; then
-        echo "$0: calculating OpenPKG Platform UUID (UUID_PLATFORM):"
-        echo "$0: << $prog_uuid -v3 \"$UUID_NS_PLATFORM\" \"$name\""
+        echo "uuid: querying OpenPKG Platform OID"
+        echo "uuid: << $prog_rpm --eval '%{l_openpkg_oid_platform}'"
+    fi
+    OID_NS_PLATFORM="`$prog_rpm --eval '%{l_openpkg_oid_platform}'`"
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: >> $OID_NS_PLATFORM"
+    fi
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: calculating OpenPKG Platform Namespace UUID"
+        echo "uuid: << $prog_uuid -v3 ns:OID \"$OID_NS_PLATFORM\""
+    fi
+    UUID_NS_PLATFORM=`$prog_uuid -v3 ns:OID "$OID_NS_PLATFORM"`
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: >> $UUID_NS_PLATFORM"
+    fi
+    if [ ".$opt_v" = .yes ]; then
+        echo "uuid: calculating OpenPKG Platform UUID (UUID_PLATFORM):"
+        echo "uuid: << $prog_uuid -v3 \"$UUID_NS_PLATFORM\" \"$name\""
     fi
     uuid=`$prog_uuid -v3 "$UUID_NS_PLATFORM" "$name"`
     if [ ".$opt_v" = .yes ]; then
-        echo "$0: >> $uuid"
+        echo "uuid: >> $uuid"
     fi
     if [ ".$UUID_PLATFORM" != ".$uuid" ]; then
         UUID_PLATFORM="$uuid"
@@ -274,13 +296,17 @@ cmd="$1"
 shift
 case "$cmd" in
     reset )
-        do_prepare; do_load; do_reset; do_save
+        do_load; do_reset; do_save
         ;;
     update )
-        do_prepare; do_query; do_load; do_update; do_save
+        do_query; do_load; do_update; do_save
         ;;
     info )
-        do_prepare; do_query; do_load; do_info
+        do_query; do_load; do_info
+        ;;
+    * )
+        echo "uuid:ERROR: invalid command \"$cmd\"" 1>&2
+        exit 1
         ;;
 esac