Hello community, here is the log from the commit of package suseRegister checked in at Tue Apr 25 17:33:00 CEST 2006. -------- --- suseRegister/suseRegister.changes 2006-04-21 17:44:02.000000000 +0200 +++ STABLE/suseRegister/suseRegister.changes 2006-04-25 15:14:32.000000000 +0200 @@ -1,0 +2,6 @@ +Tue Apr 25 14:52:54 CEST 2006 - mc@suse.de + +- prepare to use type zypp for update sources [#168739] +- delete services with the same name as new update source + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ suseRegister.spec ++++++ --- /var/tmp/diff_new_pack.rA2FGG/_old 2006-04-25 17:31:55.000000000 +0200 +++ /var/tmp/diff_new_pack.rA2FGG/_new 2006-04-25 17:31:55.000000000 +0200 @@ -13,7 +13,7 @@ Name: suseRegister BuildRequires: mono-core Version: 1.0 -Release: 50 +Release: 52 Summary: Registration tool Group: Productivity/Other License: GPL @@ -62,6 +62,9 @@ /usr/lib/suseRegister/bin/* %changelog -n suseRegister +* Tue Apr 25 2006 - mc@suse.de +- prepare to use type zypp for update sources [#168739] +- delete services with the same name as new update source * Fri Apr 21 2006 - mc@suse.de - Add Requires: libzypp-zmd-backend [#168345] * Fri Apr 21 2006 - mc@suse.de ++++++ suseRegister-1.0.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/suseRegister-1.0/suse_register new/suseRegister-1.0/suse_register --- old/suseRegister-1.0/suse_register 2006-04-20 15:15:50.000000000 +0200 +++ new/suseRegister-1.0/suse_register 2006-04-25 14:52:32.000000000 +0200 @@ -1220,7 +1220,7 @@ return 0; } -sub rugConfigured +sub rugSearchServices { my $msg = ""; my $code = 1; @@ -1241,48 +1241,20 @@ { return 0; } - if ($forceZmdConfiguration) - { - foreach my $line (split("\n", $msg)) - { - if ($line =~ /^\d*\|\w+\|\w+\|([^\|]+)\|/) - { - if (defined $1 && $1 ne "") - { - print STDERR "forceZmdConfiguration remove: $1\n" if($debug >= 2); - my $m = `LANG=en_US $rug --terse --no-abbrev sd $1`; - my $c = ($?>>8); - } - } - } - return 0; - } - else + + foreach my $line (split("\n", $msg)) { - my $foundUpdateSource = 0; # updatesources are type: $type != zypp + my($num, $stat, $type, $name, $uri) = split('\s*\|\s*', $line, 5); + print STDERR "Found $num, $stat, $type, $name, $uri\n" if($debug >= 2 && defined $num); - foreach my $line (split("\n", $msg)) - { - my($num, $stat, $type, $name, $uri) = split('\|', $line, 5); - print STDERR "Found $num, $stat, $type, $name, $uri\n" if($debug >= 2 && defined $num); - - if(defined $name && $name ne "" && - defined $type && $type ne "") + if(defined $name && $name ne "" && + defined $num && $num ne "") { - if(lc($type) ne "zypp") - { - $foundUpdateSource = 1; - } - $availableSources{$name} = $type; + $availableSources{$num} = $name; } - } - if(!$foundUpdateSource) - { - return 0; - } } - return 1; + return 0; } sub rugProducts @@ -1347,6 +1319,51 @@ } +sub rugServiceDelete +{ + my $id = shift || undef; + my $msg = ""; + my $t0 = [gettimeofday] if($time); + + if(!defined $id) + { + return 1; + } + + my @rugArgs = ("--terse", "--no-abbrev", "sd", "$id"); + + print STDERR "rug service delete command: $rug ".join(" ",@rugArgs)."\n" if($debug >= 1); + + my $pid = open3(\*IN, \*OUT, \*ERR, $rug, @rugArgs) or do { + logPrintExit("Cannot execute $rug ".join(" ", @rugArgs).": $!\n",13); + }; + + while (<OUT>) + { + $msg .= "$_"; + } + #chomp($msg) if(defined $msg && $msg ne ""); + while (<ERR>) + { + $msg .= "$_"; + } + close OUT; + close ERR; + close IN; + waitpid $pid, 0; + + my $code = ($?>>8); + if($code != 0) + { + $code += 20; + } + + print STDERR "Delete service failed($code): $msg\n" if($debug && $code != 0); + print STDERR "rugServiceDelete: ".(tv_interval($t0))."\n" if($time); + + return $code; +} + sub rugServiceAdd { @@ -1354,6 +1371,7 @@ my $type = shift || undef; my $id = shift || undef; my $msg = ""; + my $t0 = [gettimeofday] if($time); if(!$rugzmdInstalled) { @@ -1373,18 +1391,20 @@ my @rugArgs = ("--quiet", "sa", "--ignore-failure", "-t", "$type", "$url"); - if(defined $id) + + foreach my $num (keys %availableSources) { - if(exists $availableSources{$id} && - uc($availableSources{$id}) eq uc($type)) + if(defined $availableSources{$num} && + $availableSources{$num} eq $id) { - print STDERR "Name '$id' already exists\n" if($debug >= 2); - return (0, ""); + # delete this service + + rugServiceDelete($id); } - - push @rugArgs, $id; - } + } + push @rugArgs, $id; + print STDERR "rug add service command: $rug ".join(" ",@rugArgs)."\n" if($debug >= 1); my $pid = open3(\*IN, \*OUT, \*ERR, $rug, @rugArgs) or do { @@ -1412,6 +1432,7 @@ } print STDERR "Add service failed($code): $msg\n" if($debug && $code != 0); + print STDERR "rugServiceAdd: ".(tv_interval($t0))."\n" if($time); # return $code, but maybe it is ignored return ($code,$msg); @@ -1641,7 +1662,7 @@ return 0; } - my $rugConfigured = rugConfigured(); + rugSearchServices(); foreach my $service (keys %$zmdConfig) { @@ -1651,7 +1672,8 @@ next if($service eq "globalzmdoptions"); - if($zmdConfig->{$service}->{type} eq "yum") + if($zmdConfig->{$service}->{type} eq "yum" || + $zmdConfig->{$service}->{type} eq "zypp") { if(exists $zmdConfig->{$service}->{catalog}->[0] && defined $zmdConfig->{$service}->{catalog}->[0] && @@ -1672,74 +1694,43 @@ $catalogs = $zmdConfig->{$service}->{catalog}; } - if (!$rugConfigured) - { - print STDERR "rug not configured\n" if($debug >= 2); - - ($ret, $msg) = rugServiceAdd($zmdConfig->{$service}->{url}, - $zmdConfig->{$service}->{type}, - $name); - - if ($ret != 0) - { - logPrintExit($msg, $ret); - } - - if($zmdConfig->{$service}->{type} ne "yum") - { - ($ret, $msg) = rugRegister($zmdConfig->{$service}->{url}, - $zmdConfig->{$service}->{regcode}); - - if ($ret != 0) - { - logPrintExit($msg, $ret); - } - } + ($ret, $msg) = rugServiceAdd($zmdConfig->{$service}->{url}, + $zmdConfig->{$service}->{type}, + $name); + + if ($ret != 0) + { + logPrintExit($msg, $ret); + } - ($ret, $msg) = rugSubscribe($catalogs); + if($zmdConfig->{$service}->{type} eq "zenworks") + { + ($ret, $msg) = rugRegister($zmdConfig->{$service}->{url}, + $zmdConfig->{$service}->{regcode}); if ($ret != 0) { logPrintExit($msg, $ret); } - if(exists $zmdConfig->{globalzmdoptions}->{update_inventory} && - defined $zmdConfig->{globalzmdoptions}->{update_inventory}) - { - - ($ret, $msg) = rugPreferences("inventory-enabled", - $zmdConfig->{globalzmdoptions}->{update_inventory}); - - if ($ret != 0) - { - logPrintExit($msg, $ret); - } - } } - else # rug is already configured + + ($ret, $msg) = rugSubscribe($catalogs); + + if ($ret != 0) + { + logPrintExit($msg, $ret); + } + if(exists $zmdConfig->{globalzmdoptions}->{update_inventory} && + defined $zmdConfig->{globalzmdoptions}->{update_inventory}) { - print STDERR "rug already configured\n" if($debug >= 2); - - ($ret, $msg) = rugServiceAdd($zmdConfig->{$service}->{url}, - $zmdConfig->{$service}->{type}, - $name); - # - # ignore errors. Configuring two sources might fail - # but we are still on track - # - - if($zmdConfig->{$service}->{type} ne "yum") + ($ret, $msg) = rugPreferences("inventory-enabled", + $zmdConfig->{globalzmdoptions}->{update_inventory}); + + if ($ret != 0) { - ($ret, $msg) = rugRegister($zmdConfig->{$service}->{url}, - $zmdConfig->{$service}->{regcode}); - - if ($ret != 0) - { - logPrintExit($msg, $ret); - } + logPrintExit($msg, $ret); } - - # do not touch catalogs here } } print STDERR "configureZMD: ".(tv_interval($t0))."\n" if($time); @@ -2065,7 +2056,7 @@ print STDERR " for registration even though registration itself\n"; print STDERR " might be optional\n"; print STDERR " --no-hw-data do not send hardware data, even if they are mandatory\n"; - print STDERR " [--forceZmdConfiguration] delete current zmd configuration and apply new values\n"; +# print STDERR " [--forceZmdConfiguration] delete current zmd configuration and apply new values\n"; print STDERR " -h -? [--help] show this help\n"; print STDERR " -a [--arg] <key>=<value> provide an additional argument 'key'\n"; print STDERR " with the value 'value'\n"; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...