summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2004-01-30 01:10:28 +0000
committerivan <ivan>2004-01-30 01:10:28 +0000
commit95558fc7bcc98138db7f2d54cd5e6724bac3beea (patch)
tree962b92cbe25f30a2abf7f30b5f2382cebe7e8216
parentc4ff840a85e33c86ecad9223d074d57cba50e0f9 (diff)
add support for running selfservice server against multiple machines
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm5
-rw-r--r--FS/bin/freeside-selfservice-server5
-rw-r--r--Makefile5
-rw-r--r--init.d/freeside-init26
4 files changed, 29 insertions, 12 deletions
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)