/[pxelator]/lib/PXElator/amt.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/PXElator/amt.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 181 by dpavlin, Sun Aug 9 19:00:52 2009 UTC revision 473 by dpavlin, Tue Jan 5 17:26:34 2010 UTC
# Line 3  package amt; Line 3  package amt;
3  use warnings;  use warnings;
4  use strict;  use strict;
5    
6  use lib '/home/dpavlin/llin/Intel-AMT/lib/';  use lib '/srv/Intel-AMT/lib/';
7  use Intel::AMT::RemoteControl;  use Intel::AMT::RemoteControl;
8  use Intel::AMT::NetworkAdministration;  use Intel::AMT::NetworkAdministration;
9    use Intel::AMT::EventManager;
10  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
11    use Regexp::Common qw/net/;
12    
13  use html;  use html;
14    use ping;
15    use CouchDB;
16    use Carp qw/confess/;
17    
18    sub ip {
19            my ( $client_ip, $amt ) = @_;
20            return unless $client_ip;
21            $amt ||= client::conf( $client_ip => 'amt' );
22            my ( $passwd, $ip ) = split(/\s+/, $amt);
23            ( $ip, $passwd ) = ( $passwd, $ip ) if $passwd =~ m/$RE{net}{IPv4}/;
24    
25  sub info {          $ip ||= $client_ip;
         my $amt = shift;  
         my ( $passwd, $ip ) = split(/\n/, $amt);  
         warn "amt $ip\n";  
26    
         $ENV{AMT_HOST} = $ip;  
27          $ENV{AMT_PASSWORD} = $passwd;          $ENV{AMT_PASSWORD} = $passwd;
28            $ENV{AMT_HOST} = $ip;
29    
30            my $hostname = client::conf( $client_ip => 'hostname' ) || $client_ip;
31    
32            client::conf( $ip => 'hostname', default => "amt-$hostname" );
33    
34            return $ip;
35    }
36    
37    sub power_state {
38            my $state = eval { Intel::AMT::RemoteControl::SystemPowerState };
39            CouchDB::audit('SystemPowerState', { ip => $ENV{AMT_HOST}, SystemPowerState => $state });
40            return $state;
41    }
42    
43    sub power_on {
44            ip @_;
45            my $state = power_state;
46            defined $state && ( $state & 0x0f ) == 0;
47    }
48    
49          my $out;  sub network {
50            ip @_;
51    
52          $out = qq|power: S| . Intel::AMT::RemoteControl::SystemPowerState          my $amt = eval { Intel::AMT::NetworkAdministration::network_settings };
53                  . qq|<br>|          if ( $@ ) {
54                  . qq|<a href="http://$ip:16992/" target="$ip">amt</a>|                  warn "ERROR $@";
55                  . qq|<br>|          } else {
56                  . html::pre_dump( Intel::AMT::NetworkAdministration::network_settings )                  $amt->{ip} = $ENV{AMT_HOST};
57                  ;                  CouchDB::audit('log', $amt );
58            }
59            $amt;
60    }
61    
62    sub log {
63            ip @_;
64    
65            my $amt = eval { Intel::AMT::EventManager::ReadEventLogRecords };
66            if ( $@ ) {
67                    warn "ERROR $@";
68            } else {
69                    $amt->{ip} = $ENV{AMT_HOST};
70                    CouchDB::audit('log', $amt );
71            }
72            $amt;
73    }
74    
75          return $out;  sub RemoteControl {
76            ip shift;
77            my $command = shift;
78            eval { Intel::AMT::RemoteControl::run( $command ) };
79            CouchDB::audit( $command, { ip => $ENV{AMT_HOST}, error => $@ } );
80            warn "ERROR $@" if $@;
81  }  }
82    
83  1;  1;

Legend:
Removed from v.181  
changed lines
  Added in v.473

  ViewVC Help
Powered by ViewVC 1.1.26