Evening Satoru,
I have created the following bugzilla to track for review/submission for Spacewalk 0.5.

https://bugzilla.redhat.com/show_bug.cgi?id=484481

Feel free to add yourself as a CC to this bug.

Regards,
Clifford

Satoru SATOH wrote:
Hi,

Sorry, my patch was completely broken. Here is a revised one.

I confirmed it works as expected with satellite-5.2.0 at least.  I'm not
sure about spacewalk but it should be the same, I guess.

Could you anyone please look at it?

- satoru

On Wed, Dec 17, 2008 at 06:45:04PM +0900, Satoru SATOH wrote:
I and my associate came across an inconsistency in advisory name
generation rule while trying to cloning errata in rhn-satellite. And I
found that spacewalk also has this inconsistency between the following
codes.

 a. ErrataFactory.createClone in
    java/code/src/com/redhat/rhn/domain/errata/ErrataFactory.java

 b. PublishErrataHelper.cloneErrataFast in
    
java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataHelper.java

 c. find_next_advisory in web/modules/rhn/RHN/DB/ErrataEditor.pm

The rule in a and b (both are in java) looks the same but c (perl) is
completely different from them.

a and b: CLSA-2008:0580 -> CLSA-2008:0580-1, CLSA-2008:0580-2, ...
 c: CLSA-2008:0580 -> CMSA-2008:0580, CNSA-2008:0580, ...,
    RISA-2008:0580, ... ZZSA-2008:0580, AAASA-2008:0580, ...

Here is an experimental fix for this issue to change c's rule, not
tested in actual. (i'm not a perl monger so that it even might have
errors and not work).


 web/modules/rhn/RHN/DB/ErrataEditor.pm |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/web/modules/rhn/RHN/DB/ErrataEditor.pm 
b/web/modules/rhn/RHN/DB/ErrataEditor.pm
index d19d2b0..75dc1d0 100644
--- a/web/modules/rhn/RHN/DB/ErrataEditor.pm
+++ b/web/modules/rhn/RHN/DB/ErrataEditor.pm
@@ -303,17 +303,24 @@ EOQ
 sub find_next_advisory {
   my $adv = shift || '';
   my $adv_name = shift || '';
+  my $suffix = '';
+  my $i = 1;
substr($adv, 0, 2) = 'CL';
   substr($adv_name, 0, 2) = 'CL';
- while (advisory_exists($adv)) {
-    substr($adv, 0, 2)++;
-  }
+  if (advisory_exists($adv) || advisory_name_exists($adv_name)) {
+    $suffix = sprintf("-%u", $i++);
+    $adv = $adv . $suffix;
+    $adv_name = $adv_name . $suffix;
- while (advisory_name_exists($adv_name)) {
-    substr($adv_name, 0, 2)++;
+    while (advisory_exists($adv) || advisory_name_exists($adv_name)) {
+      substr($adv, -1, 1) = $i;
+      substr($adv_name, -1, 1) = $i;
+      $i++;
+    }
   }
+
   return ($adv, $adv_name);
 }
_______________________________________________
Spacewalk-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/spacewalk-devel


--
Clifford Perry
Manager, Satellite Engineering
Red Hat, Inc.
http://www.redhat.com/
+1 919 754 4403
RHCA / RHCE# 805007680128201

_______________________________________________
Spacewalk-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to