diff options
author | ivan <ivan> | 2004-01-30 01:10:34 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-01-30 01:10:34 +0000 |
commit | be454575f9c5663e478a6bc69fbd48a8cef4610f (patch) | |
tree | efa934146208fd6bf0adbef7a7fe7b825e7dee72 | |
parent | 06ee7339e63c37ab8e408b48b09b91f8f3aeaa87 (diff) |
add support for running selfservice server against multiple machines
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 5 | ||||
-rw-r--r-- | FS/bin/freeside-selfservice-server | 5 | ||||
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | init.d/freeside-init | 26 |
4 files changed, 29 insertions, 12 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 421a08210..22f0d4adb 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -24,6 +24,7 @@ FS::ClientAPI->register_handlers( 'MyAccount/list_pkgs' => \&list_pkgs, 'MyAccount/order_pkg' => \&order_pkg, 'MyAccount/cancel_pkg' => \&cancel_pkg, + 'MyAccount/charge' => \&charge, ); use vars qw( @cust_main_editable_fields ); @@ -35,7 +36,9 @@ use vars qw( @cust_main_editable_fields ); ); #store in db? -my $cache = new Cache::SharedMemoryCache(); +my $cache = new Cache::SharedMemoryCache( { + 'namespace' => 'FS::ClientAPI::MyAccount', +} ); #false laziness w/FS::ClientAPI::passwd::passwd (needs to handle encrypted pw) sub login { diff --git a/FS/bin/freeside-selfservice-server b/FS/bin/freeside-selfservice-server index f9571fa1e..371a646b4 100644 --- a/FS/bin/freeside-selfservice-server +++ b/FS/bin/freeside-selfservice-server @@ -34,8 +34,9 @@ $kids = 0; my $user = shift or die &usage; my $machine = shift or die &usage; my $tag = scalar(@ARGV) ? shift : ''; -my $pid_file = "/var/run/freeside-selfservice-server.$user.pid"; -#my $pid_file = "/var/run/freeside-selfservice-server.$user.pid"; $FS::UID::datasrc not posible, but should include machine name at least, hmm + +# $FS::UID::datasrc not posible +my $pid_file = "/var/run/freeside-selfservice-server.$user.$machine.pid"; my $lock_file = "/usr/local/etc/freeside/selfservice.$machine.writelock"; open(LOCKFILE,">$lock_file") or die "can't open $lock_file: $!"; @@ -51,7 +51,8 @@ QUEUED_USER=fs_queue FREESIDE_PATH = `pwd` SELFSERVICE_USER = fs_selfservice -SELFSERVICE_MACHINE = localhost +SELFSERVICE_MACHINES = localhost +# SELFSERVICE_MACHINES = "web1.example.com web2.example.com" #--- @@ -137,7 +138,7 @@ install-init: s/%%%QUEUED_USER%%%/${QUEUED_USER}/g;\ s'%%%FREESIDE_PATH%%%'${FREESIDE_PATH}'g;\ s/%%%SELFSERVICE_USER%%%/${SELFSERVICE_USER}/g;\ - s/%%%SELFSERVICE_MACHINE%%%/${SELFSERVICE_MACHINE}/g;\ + s/%%%SELFSERVICE_MACHINES%%%/${SELFSERVICE_MACHINES}/g;\ " ${INIT_FILE} install: install-perl-modules install-docs install-init diff --git a/init.d/freeside-init b/init.d/freeside-init index b9c95ae53..1ca7dff0e 100644 --- a/init.d/freeside-init +++ b/init.d/freeside-init @@ -8,7 +8,7 @@ QUEUED_USER=%%%QUEUED_USER%%% FREESIDE_PATH="%%%FREESIDE_PATH%%%" SELFSERVICE_USER=%%%SELFSERVICE_USER%%% -SELFSERVICE_MACHINE=%%%SELFSERVICE_MACHINE%%% +SELFSERVICE_MACHINES="%%%SELFSERVICE_MACHINES%%%" case "$1" in start) @@ -17,9 +17,11 @@ case "$1" in freeside-queued $QUEUED_USER echo "done." - echo -n "Starting freeside-selfservice-server: " - freeside-selfservice-server $SELFSERVICE_USER $SELFSERVICE_MACHINE - echo "done." + for MACHINE in $SELFSERVICE_MACHINES; do + echo -n "Starting freeside-selfservice-server to $MACHINE: " + freeside-selfservice-server $SELFSERVICE_USER $MACHINE + echo "done." + done ;; stop) @@ -28,9 +30,19 @@ case "$1" in kill `cat /var/run/freeside-queued.pid` echo "done." - echo -n "Stopping freeside-selfservice-server: " - kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid` - echo "done." + if [ -e /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid ] + then + echo -n "Stopping (old) freeside-selfservice-server: " + kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid` + rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid + fi + + for MACHINE in $SELFSERVICE_MACHINES; do + echo -n "Stopping freeside-selfservice-server to $MACHINE: " + kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid` + echo "done." + done + ;; restart) |