summaryrefslogtreecommitdiffstats
path: root/mdkonline.pm
diff options
context:
space:
mode:
Diffstat (limited to 'mdkonline.pm')
-rw-r--r--mdkonline.pm78
1 files changed, 38 insertions, 40 deletions
diff --git a/mdkonline.pm b/mdkonline.pm
index 433cc078..aaacf2a4 100644
--- a/mdkonline.pm
+++ b/mdkonline.pm
@@ -16,26 +16,24 @@ use SOAP::Lite;
#For debugging
use Data::Dumper;
-my ($uri, $service_proxy, $online_proxy);
+my ($service_proxy);
my $testing = 1;
my $release_file = find { -f $_ } '/etc/mandriva-release', '/etc/mandrakelinux-release', '/etc/mandrake-release', '/etc/redhat-release';
my ($product_file, $conf_file, $rootconf_file) = ('/etc/sysconfig/system', '/etc/sysconfig/mdkonline', '/root/.MdkOnline/hostconf');
-my $release = get_release();
my $uri = !$testing ? 'https://online.mandriva.com/soap' : 'http://online3.mandriva.com/o/soap/';
$service_proxy = $online_proxy = $uri;
-my $VERSION = 3;
my $useragent = set_ua('mdkonline');
sub is_proxy () {
return defined $ENV{http_proxy} ? 1 : defined $ENV{https_proxy} ? 2 : 0;
}
-my $proxy = is_proxy;
+my $proxy = is_proxy();
my $s = $proxy == 2
? SOAP::Lite->uri($uri)->proxy($service_proxy, proxy => [ 'http' => $ENV{https_proxy} ], agent => $useragent)
@@ -43,7 +41,7 @@ my $s = $proxy == 2
? SOAP::Lite->uri($uri)->proxy($service_proxy, proxy => [ 'http' => $ENV{http_proxy} ], agent => $useragent)
: SOAP::Lite->uri($uri)->proxy($service_proxy, agent => $useragent);
-sub upgrade2v3 {
+sub upgrade2v3() {
my $res;
if (-e $rootconf_file) {
my %oc = getVarsFromSh($rootconf_file);
@@ -54,7 +52,7 @@ sub upgrade2v3 {
$res;
}
-sub get_rpmdblist {
+sub get_rpmdblist() {
my $rpmdblist = `rpm -qa --queryformat '%{HDRID};%{N};%{E};%{V};%{R};%{ARCH};%{OS};%{DISTRIBUTION};%{VENDOR};%{SIZE};%{BUILDTIME};%{INSTALLTIME}\n'`;
$rpmdblist;
}
@@ -84,11 +82,11 @@ sub set_ua {
$qualified_name;
}
-sub get_distro_type {
+sub get_distro_type() {
my $r = cat_($release_file);
my ($archi) = $r =~ /\s+for\s+(\w+)/;
my ($name) = $r =~ /(corporate|mnf)/i;
- { name => lc($name), arch => $archi };
+ { name => lc($name), 'arch' => $arch1 };
}
sub soap_create_account {
@@ -191,11 +189,11 @@ sub check_server_response {
22 => [ N("User Forbidden"), N("User account forbidden by Mandriva web services") ],
99 => [ N("Connection error"), N("Mandriva web services not reachable") ]
};
- foreach my $num ([9, 8], [21, 20]) { $hash_ret->{$num->[0]} = $hash_ret->{$num->[1]} };
+ foreach my $num ([9, 8], [21, 20]) { $hash_ret->{$num->[0]} = $hash_ret->{$num->[1]} }
# print Dumper($response);
my $code = $response->{code} || '99';
$response->{status} and write_conf($response);
- return $response->{status} ? 'OK' : $hash_ret->{$code}->[0] . ' : ' . $hash_ret->{$code}->[1] . '\n\n' . $response->{message};
+ return $response->{status} ? 'OK' : $hash_ret->{$code}[0] . ' : ' . $hash_ret->{$code}[1] . '\n\n' . $response->{message};
}
sub check_valid_email {
@@ -263,23 +261,23 @@ sub rpm_ver_cmp {
}
sub soap_recover_service {
- my $data = $s->recoverHostFromV2(@_)->result();
+ my $data = $s->recoverHostFromV2(@_)->result;
$data;
}
sub soap_get_task {
- my $data = $s->getTask(@_)->result();
+ my $data = $s->getTask(@_)->result;
$data;
}
sub soap_return_task_result {
- my $data = $s->setTaskResult(@_)->result();
+ my $data = $s->setTaskResult(@_)->result;
$data;
}
sub soap_get_updates_for_host {
- my $data = $s->getUpdatesForHost(@_)->result();
- $data
+ my $data = $s->getUpdatesForHost(@_)->result;
+ $data;
}
sub mv_files {
@@ -287,7 +285,7 @@ sub mv_files {
-e $source and system("mv", $source, $dest);
}
-sub clean_confdir {
+sub clean_confdir() {
my $confdir = '/root/.MdkOnline';
system "/bin/rm", "-f", "$confdir/*log.bz2", "$confdir/*log.bz2.uue", "$confdir/*.dif $confdir/rpm_qa_installed_before", "$confdir/rpm_qa_installed_after";
}
@@ -298,7 +296,7 @@ sub hw_upload {
-x $hw_exec && !-s '/etc/sysconfig/mdkonline' and system("HWDB_PASSWD=$passwd $hw_exec $login $hostname &");
}
-sub automated_upgrades {
+sub automated_upgrades() {
output_p "/etc/cron.daily/mdkupdate",
qq(#!/bin/bash
if [ -f $conf_file ]; then /usr/sbin/mdkupdate --auto; fi
@@ -326,11 +324,11 @@ sub write_wide_conf {
my ($soap_response) = shift;
# print Dumper($soap_response);
my $date = get_date(); my $conf_hash;
- %{$conf_hash} = getVarsFromSh($conf_file);
- $conf_hash->{uc($_)} = $soap_response->{data}->{$_} foreach (keys %{$soap_response->{data}});
+ %$conf_hash = getVarsFromSh($conf_file);
+ $conf_hash->{uc($_)} = $soap_response->{data}{$_} foreach keys %{$soap_response->{data}};
#print Dumper $conf_hash;
$conf_hash->{DATE_SET} = $date;
- foreach my $alias (['email','user_email'], ['customer_id', 'user_id']) {
+ foreach my $alias (['email', 'user_email'], ['customer_id', 'user_id']) {
exists $conf_hash->{uc($alias->[0])} and $conf_hash->{uc($alias->[1])} = $conf_hash->{uc($alias->[0])};
}
setVarsInSh($conf_file, $conf_hash, qw(USER_EMAIL USER_ID HOST_NAME HOST_ID HOST_KEY HOST_DESC HOST_MOBILE VERSION DATE_SET));
@@ -339,26 +337,26 @@ sub write_wide_conf {
sub is_running {
my ($name) = @_;
any {
- my ($ppid, $pid, $n) = /^\s*(\d+)\s+(\d+)\s+(.*)/;
+ my ($_ppid, $pid, $n) = /^\s*(\d+)\s+(\d+)\s+(.*)/;
$pid != $$ && $n eq $name;
} `ps -o '%P %p %c' -u $ENV{USER}`;
}
# Romain: you need to finish those dns functions or drop them
sub get_configuration {
- my $in = shift;
+ my $_in = shift;
my $config_file = '/etc/sysconfig/mdkonline';
my %conf;my $ret;
# check local config file
- if( ! ( -e $config_file ) || ! ( -s $config_file ) ) {
+ if (! (-e $config_file) || ! (-s $config_file)) {
%conf = get_conf_from_dns();
- print "from dns:\n",Dumper(%conf),"\n";
+ print "from dns:\n", Dumper(%conf), "\n";
} else {
%conf = getVarsFromSh($config_file);
- if( defined $conf{MACHINE} && ! defined $conf{VERSION} ) {
+ if (defined $conf{MACHINE} && !defined $conf{VERSION}) {
$ret = upgrade_to_v3();
print "\n", $ret, "\n";
- if( $ret eq 1 ) {
+ if ($ret == 1) {
# reload config
%conf = getVarsFromSh($config_file);
}
@@ -370,15 +368,15 @@ sub get_configuration {
}
# now, a valid working config file is loaded
- if( defined $conf{MOBILE} && $conf{MOBILE} eq 'TRUE' ) {
+ if (defined $conf{MOBILE} && $conf{MOBILE} eq 'TRUE') {
# client is mobile: we check for any dns-declared local option
# (like, a local update mirror)
# TODO set precedence rules. user may not want/have the right to
# follow local network rules (security of the update process).
# depends on host config, and on server commands.
my $sd = new Discovery;
- my $info = $sd->search();
- if( $info ) {
+ my $info = $sd->search;
+ if ($info) {
# TODO
}
else {} # nothing to do
@@ -389,28 +387,28 @@ sub get_configuration {
sub register_from_dns {
my $dnsconf = shift;
my ($hostinfo, $country );
- my $user = $dnsconf->{user}->{name};
- my $pass = $dnsconf->{user}->{pass};
+ my $user = $dnsconf->{user}{name};
+ my $pass = $dnsconf->{user}{pass};
my $hostname = chomp_(`hostname`);
# TODO change SOAP proxy to the one indicated at $dnsconf->{service} before
# TODO wrap all soap calls into an object so we can update the proxy on the fly?
- my $res = mdkonline::soap_register_host( $user, $pass, $hostname, $hostinfo, $country );
+ my $res = mdkonline::soap_register_host($user, $pass, $hostname, $hostinfo, $country);
if ($res->{code}) {
- $res->{data}->{service} = $dnsconf->{service};
- return mdkonline::save_config( $res->{data} );
+ $res->{data}{service} = $dnsconf->{service};
+ return mdkonline::save_config($res->{data});
}
}
-sub get_conf_from_dns {
+sub get_conf_from_dns() {
my $sd = new Discover;
- my $info = $sd->search();
+ my $info = $sd->search;
my $ret;
- if( $info ) {
- if( defined $info->{user}->{name} && defined $info->{user}->{pass} && $info->{user}->{name} ne '' && $info->{user}->{pass} ne '' ) {
+ if ($info) {
+ if (defined $info->{user}{name} && defined $info->{user}{pass} && $info->{user}{name} ne '' && $info->{user}{pass} ne '') {
print Dumper($info);
# TODO check service certificate
- $ret = mdkonline::register_from_dns( $info );
- if( $ret ) {
+ $ret = mdkonline::register_from_dns($info);
+ if ($ret) {
return $ret;
}
}