source: trunk/packages/invirt-remote/server/usr/sbin/invirt-remote-proxy @ 2507

Last change on this file since 2507 was 2495, checked in by adehnert, 15 years ago

Balance LVM requests (LP: #307361)

  • Add "monocast" method to send remctl requests to exactly one

randomly-selected host.

  • Send LVM requests to randomly-selected host for redundancy and load-balancing (LP: #307361).
  • Property svn:executable set to *
File size: 1.3 KB
RevLine 
[2495]1#!/bin/bash                                                                                         
2# invoke as invirt-remote-proxy-$TYPE, with "TYPE" in the remctl sense.                             
[659]3
[777]4klist -s || kinit -k
[624]5
[620]6TYPE="${0##*-}"
[624]7case "$TYPE" in
8    control )
[2495]9        MACHINE="$1"; SERVICE="$2"; shift; shift ;;
[624]10    * )
[2495]11        SERVICE="$1"; shift ;;
[620]12esac
[624]13
14case "$TYPE/$SERVICE" in
15    web/listvms )
[2495]16        invirt-remote-listvms "$@" ;;
[1402]17    web/vnccert )
[2097]18        invirt-remote-vnccert "$@" ;;
[2292]19    web/availability | web/avail )
[2188]20        invirt-remote-availability "$@" ;;
[2255]21    web/lvcreate | web/lvremove | web/lvrename | web/lvresize )
[2495]22        invirt-remote-lvm "$SERVICE" "$@"
23        ;;
[1665]24    control/help )
[2097]25        invirt-remctl-help ;;
[1088]26    control/create|control/install )
[2256]27        if [ -f "/etc/invirt/nocreate" ]; then
[2264]28            echo "Booting VMs is temporarily disabled for maintenance, sorry." >&2
[2256]29            exit 2
30        fi
[2495]31        invirt-remote-create "$SERVICE" "$MACHINE" "$@" ;;
[1161]32    control/listhost|control/list-host )
[2495]33        invirt-remote-listhost "$MACHINE" "$@" ;;
[625]34    control/* )
[2495]35        # Everything but create must go where the VM is already running.
36        invirt-remote-control "$MACHINE" "$SERVICE" "$@" ;;
[624]37    * )
[2495]38        echo "ERROR: invalid subcommand $TYPE/$SERVICE"
[2255]39        exit 34
40        ;;
[624]41esac
Note: See TracBrowser for help on using the repository browser.