From: ivan Date: Fri, 30 Jan 2004 01:10:28 +0000 (+0000) Subject: add support for running selfservice server against multiple machines X-Git-Tag: NET_WHOIS_RAW_0_31~163 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=95558fc7bcc98138db7f2d54cd5e6724bac3beea add support for running selfservice server against multiple machines --- diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 290022148..445f0ece8 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -28,6 +28,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 ); @@ -39,7 +40,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: $!"; diff --git a/Makefile b/Makefile index 2c2b7a5be..0d99e1361 100644 --- a/Makefile +++ b/Makefile @@ -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)