From c25e7e06f70a9cc8d5bfc8d64edf235f2a829656 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 24 Feb 2005 16:47:22 +0000 Subject: [PATCH] Changed some config settings to load all jabber stuff from the bootstrap config git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@105 9efc2488-bf62-4759-914b-345cdb29e865 --- src/perlmods/OpenSRF/AppSession.pm | 22 +++++++- src/perlmods/OpenSRF/System.pm | 7 ++- .../OpenSRF/Transport/SlimJabber/Inbound.pm | 66 ++++++++++------------ .../OpenSRF/Transport/SlimJabber/PeerConnection.pm | 46 +++++---------- 4 files changed, 68 insertions(+), 73 deletions(-) diff --git a/src/perlmods/OpenSRF/AppSession.pm b/src/perlmods/OpenSRF/AppSession.pm index b25dcc4..eb28008 100644 --- a/src/perlmods/OpenSRF/AppSession.pm +++ b/src/perlmods/OpenSRF/AppSession.pm @@ -166,12 +166,27 @@ sub last_sent_type { sub get_app_targets { my $app = shift; - my $targets; - my $config_client = OpenSRF::Utils::SettingsClient->new(); +# my $config_client = OpenSRF::Utils::SettingsClient->new(); + + my $conf = OpenSRF::Utils::Config->current; + my $router_name = $conf->bootstrap->router_name; + my $routers = $conf->bootstrap->domains; + + unless($router_name and $routers) { + throw OpenSRF::EX::Config + ("Missing router config information 'router_name' and 'routers'"); + } + my @targets; + for my $router (@$routers) { + push @targets, "$router_name\@$router/$app"; + } + + return @targets; + +=head comment if( $app eq "settings" ) { # we have to load from the bootstrap config file - my $conf = OpenSRF::Utils::Config->current; if(!$conf) { die("No transport target for $app!"); } $targets = $conf->targets->$app || die("No transport target for $app!"); @@ -181,6 +196,7 @@ sub get_app_targets { } return @$targets; +=cut } # When we're a client and we want to connect to a remote service diff --git a/src/perlmods/OpenSRF/System.pm b/src/perlmods/OpenSRF/System.pm index bcf474d..47ad90f 100644 --- a/src/perlmods/OpenSRF/System.pm +++ b/src/perlmods/OpenSRF/System.pm @@ -213,6 +213,11 @@ sub bootstrap { _log( " * System is ready..." ); + sleep 1; + my $ps = `ps ax | grep " Open" | grep -v grep | sort -r -k5`; + + print "\n --- PS --- \n$ps --- PS ---\n\n"; + while( 1 ) { sleep; } exit; } @@ -363,7 +368,7 @@ sub launch_listener { } else { my $apname = $app; - $0 = "Listener ($apname)"; + $0 = "OpenSRF listener ($apname)"; eval _listener( $app ); exit; } diff --git a/src/perlmods/OpenSRF/Transport/SlimJabber/Inbound.pm b/src/perlmods/OpenSRF/Transport/SlimJabber/Inbound.pm index 72d559c..13a9a7f 100644 --- a/src/perlmods/OpenSRF/Transport/SlimJabber/Inbound.pm +++ b/src/perlmods/OpenSRF/Transport/SlimJabber/Inbound.pm @@ -32,28 +32,14 @@ This service should be loaded at system startup. $class = ref( $class ) || $class; if( ! $instance ) { - my $client = OpenSRF::Utils::SettingsClient->new(); - - my $transport_info = $client->config_value( - "apps", $app, "transport_hosts", "transport_host" ); - - if( !ref($transport_info) eq "ARRAY" ) { - $transport_info = [$transport_info]; - } - + my $conf = OpenSRF::Utils::Config->current; + my $domains = $conf->bootstrap->domains; - # XXX for now, we just try the first host... - - my $username = $transport_info->[0]->{username}; - my $password = $transport_info->[0]->{password}; - my $resource = 'system'; - my $host = $transport_info->[0]->{host}; - my $port = $transport_info->[0]->{port}; - - if (defined $client->config_value("router_targets")) { - my $h = OpenSRF::Utils::Config->current->env->hostname; - $resource .= "_$h"; - } + my $username = $conf->bootstrap->username; + my $password = $conf->bootstrap->passwd; + my $port = $conf->bootstrap->port; + my $host = $domains->[0]; # XXX for now... + my $resource = $app . '_listener_at_' . $conf->env->hostname; OpenSRF::Utils::Logger->transport("Inbound as $username, $password, $resource, $host, $port\n", INTERNAL ); @@ -67,6 +53,7 @@ This service should be loaded at system startup. $self->{app} = $app; + my $client = OpenSRF::Utils::SettingsClient->new(); my $f = $client->config_value("dirs", "sock"); $unix_sock = join( "/", $f, $client->config_value("apps", $app, "unix_config", "unix_sock" )); @@ -81,27 +68,32 @@ This service should be loaded at system startup. sub listen { my $self = shift; - my $client = OpenSRF::Utils::SettingsClient->new(); my $routers; - try { - - $routers = $client->config_value("router_targets","router_target"); - $logger->transport( $self->{app} . " connecting to router $routers", INFO ); - - if (defined $routers) { - if( !ref($routers) || !(ref($routers) eq "ARRAY") ) { - $routers = [$routers]; - } + try { - for my $router (@$routers) { - $logger->transport( $self->{app} . " connecting to router $router", INFO ); - $self->send( to => $router, - body => "registering", router_command => "register" , router_class => $self->{app} ); - } - $logger->transport( $self->{app} . " :routers connected", INFO ); + my $conf = OpenSRF::Utils::Config->current; + my $router_name = $conf->bootstrap->router_name; + my $routers = $conf->bootstrap->domains; + + unless($router_name and $routers) { + throw OpenSRF::EX::Config + ("Missing router config information 'router_name' and 'routers'"); + } + + my @targets; + for my $router (@$routers) { + push @targets, "$router_name\@$router/router"; + } + for my $router (@targets) { + $logger->transport( $self->{app} . " connecting to router $router", INFO ); + $self->send( to => $router, + body => "registering", router_command => "register" , router_class => $self->{app} ); } + $logger->transport( $self->{app} . " :routers connected", INFO ); + + } catch OpenSRF::EX::Config with { $logger->transport( $self->{app} . ": No routers defined" , WARN ); # no routers defined diff --git a/src/perlmods/OpenSRF/Transport/SlimJabber/PeerConnection.pm b/src/perlmods/OpenSRF/Transport/SlimJabber/PeerConnection.pm index a44c34d..af93d36 100644 --- a/src/perlmods/OpenSRF/Transport/SlimJabber/PeerConnection.pm +++ b/src/perlmods/OpenSRF/Transport/SlimJabber/PeerConnection.pm @@ -30,7 +30,7 @@ sub retrieve { my( $class, $app ) = @_; return $_singleton_connection; # my @keys = keys %apps_hash; -#OpenSRF::Utils::Logger->transport( +# OpenSRF::Utils::Logger->transport( # "Requesting peer for $app and we have @keys", INFO ); # return $apps_hash{$app}; } @@ -50,35 +50,22 @@ sub new { throw OpenSRF::EX::Config( "No suitable config found for PeerConnection" ); } - my $trans_list = $config->bootstrap->transport; - unless( $trans_list && $trans_list->[0] ) { - throw OpenSRF::EX::Config ("Peer Connection needs transport info"); - } - - # For now we just use the first in the list... - my $trans = $trans_list->[0]; - - my $username; - if( $app eq "system_client" ) { - $username = $config->$trans->username; - } else { - $username = $app; - } + my $conf = OpenSRF::Utils::Config->current; + my $domains = $conf->bootstrap->domains; + my $h = $conf->env->hostname; + my $username = $conf->bootstrap->username; + my $password = $conf->bootstrap->passwd; + my $port = $conf->bootstrap->port; + my $resource = "${app}_drone_at_$h"; + my $host = $domains->[0]; # XXX for now... + if( $app eq "client" ) { $resource = "client_at_$h"; } - my $password = $config->$trans->password; - OpenSRF::Utils::Logger->transport( "Building Peer with " .$config->$trans->password, INTERNAL ); - my $h = $config->env->hostname; - my $resource = $h; - my $server = $config->$trans->server; - OpenSRF::Utils::Logger->transport( "Building Peer with " .$config->$trans->server, INTERNAL ); - my $port = $config->$trans->port; - OpenSRF::Utils::Logger->transport( "Building Peer with " .$config->$trans->port, INTERNAL ); OpenSRF::EX::Config->throw( "JPeer could not load all necesarry values from config" ) - unless ( $username and $password and $resource and $server and $port ); + unless ( $username and $password and $resource and $host and $port ); OpenSRF::Utils::Logger->transport( "Built Peer with", INTERNAL ); @@ -86,7 +73,7 @@ sub new { username => $username, resource => $resource, password => $password, - host => $server, + host => $host, port => $port, ); @@ -102,20 +89,15 @@ sub new { } sub process { + my $self = shift; my $val = $self->SUPER::process(@_); return 0 unless $val; + OpenSRF::Utils::Logger->transport( "Calling transport handler for ".$self->app." with: $val", INTERNAL ); my $t; -#try { $t = OpenSRF::Transport->handler($self->app, $val); -# } catch OpenSRF::EX with { -# my $e = shift; -# $e->throw(); - -# } catch Error with { return undef; } - return $t; } -- 2.11.0