add support for running selfservice server against multiple machines
authorivan <ivan>
Fri, 30 Jan 2004 01:10:28 +0000 (01:10 +0000)
committerivan <ivan>
Fri, 30 Jan 2004 01:10:28 +0000 (01:10 +0000)
FS/FS/ClientAPI/MyAccount.pm
FS/bin/freeside-selfservice-server
Makefile
init.d/freeside-init

index 2900221..445f0ec 100644 (file)
@@ -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 {
index f9571fa..371a646 100644 (file)
@@ -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: $!";
index 2c2b7a5..0d99e13 100644 (file)
--- 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
index b9c95ae..1ca7dff 100644 (file)
@@ -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)