Changed some config settings to load all jabber stuff from the bootstrap config
authorerickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Thu, 24 Feb 2005 16:47:22 +0000 (16:47 +0000)
committererickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Thu, 24 Feb 2005 16:47:22 +0000 (16:47 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@105 9efc2488-bf62-4759-914b-345cdb29e865

src/perlmods/OpenSRF/AppSession.pm
src/perlmods/OpenSRF/System.pm
src/perlmods/OpenSRF/Transport/SlimJabber/Inbound.pm
src/perlmods/OpenSRF/Transport/SlimJabber/PeerConnection.pm

index b25dcc4..eb28008 100644 (file)
@@ -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
index bcf474d..47ad90f 100644 (file)
@@ -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;
                }
index 72d559c..13a9a7f 100644 (file)
@@ -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
index a44c34d..af93d36 100644 (file)
@@ -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;
 }