accept /etc/invirt/{nolvm,nocreate} on remote-server
[invirt/packages/invirt-remote.git] / server / usr / sbin / invirt-remote-proxy
index d84fe81..cea1bbd 100755 (executable)
@@ -13,18 +13,32 @@ esac
 
 case "$TYPE/$SERVICE" in
     web/listvms )
-       exec invirt-remote-listvms "$@" ;;
+       invirt-remote-listvms "$@" ;;
     web/vnccert )
-        exec invirt-remote-vnccert "$@" ;;
+        invirt-remote-vnccert "$@" ;;
+    web/availability )
+        invirt-remote-availability "$@" ;;
+    web/lvcreate | web/lvremove | web/lvrename | web/lvresize )
+        if [ -f "/etc/invirt/nolvm" ]; then
+            echo "LVM operations are temporarily disabled for maintenance, sorry."
+            exit 2
+        fi
+        remctl "$(invirt-getconf hosts.0.hostname)" remote "$TYPE" "$SERVICE" "$@" ;;
     control/help )
-        exec invirt-remctl-help ;;
+        invirt-remctl-help ;;
     control/create|control/install )
-       exec invirt-remote-create "$SERVICE" "$MACHINE" "$@" ;;
+        if [ -f "/etc/invirt/nocreate" ]; then
+            echo "Booting VMs is temporarily disabled for maintenance, sorry."
+            exit 2
+        fi
+       invirt-remote-create "$SERVICE" "$MACHINE" "$@" ;;
     control/listhost|control/list-host )
-       exec invirt-remote-listhost "$MACHINE" "$@" ;;
+       invirt-remote-listhost "$MACHINE" "$@" ;;
     control/* )
        # Everything but create must go where the VM is already running.
-       exec invirt-remote-control "$MACHINE" "$SERVICE" "$@" ;;
+       invirt-remote-control "$MACHINE" "$SERVICE" "$@" ;;
     * )
-       exec remctl "$(invirt-getconf hosts.0.hostname)" remote "$TYPE" "$SERVICE" "$@" ;;
+        echo "ERROR: invalid subcommand"
+        exit 34
+        ;;
 esac