Author: lslezak
Date: Wed Dec 21 12:15:03 2011
New Revision: 67047
URL: http://svn.opensuse.org/viewcvs/yast?rev=67047&view=rev
Log:
- force product upgrade in full migratinon mode, handle product
name change in SLES for VMware SP2 migration (bnc#735826)
Modified:
trunk/wagon/package/yast2-wagon.changes
trunk/wagon/src/modules/Wagon.ycp
Modified: trunk/wagon/package/yast2-wagon.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/wagon/package/yast2-wagon.changes?rev=67047&r1=67046&r2=67047&view=diff
==============================================================================
--- trunk/wagon/package/yast2-wagon.changes (original)
+++ trunk/wagon/package/yast2-wagon.changes Wed Dec 21 12:15:03 2011
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Wed Dec 21 09:56:24 UTC 2011 - lslezak@suse.cz
+
+- force product upgrade in full migratinon mode, handle product
+ name change in SLES for VMware SP2 migration (bnc#735826)
+
+-------------------------------------------------------------------
Fri Nov 25 16:15:24 UTC 2011 - lslezak@suse.cz
- fixed registration status check when there is only one product
Modified: trunk/wagon/src/modules/Wagon.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/wagon/src/modules/Wagon.ycp?rev=67047&r1=67046&r2=67047&view=diff
==============================================================================
--- trunk/wagon/src/modules/Wagon.ycp (original)
+++ trunk/wagon/src/modules/Wagon.ycp Wed Dec 21 12:15:03 2011
@@ -436,6 +436,40 @@
// reset solver flags (needed when switching from full DUP to partial DUP
Pkg::SetSolverFlags($["reset" : true]);
+ y2milestone("Migration products: %1", migration_products);
+
+ list<string> product_names = maplist(map prod, Pkg::ResolvableProperties ("", `product, ""), {return prod["name"]:"";});
+ // remove duplicates
+ product_names = toset(product_names);
+
+ foreach(string prod_name, product_names,
+ {
+ list<map> products_named = Pkg::ResolvableProperties(prod_name, `product, "");
+ y2milestone("Product: %1, resolvables: %2", prod_name, size(products_named));
+
+ if (size(products_named) > 1)
+ {
+ boolean installed = find(map p, products_named, {return p["status"]:`unknown == `installed;}) != nil;
+ boolean selected = find(map p, products_named, {return p["status"]:`unknown == `selected;}) != nil;
+ boolean removed = find(map p, products_named, {return p["status"]:`unknown == `removed;}) != nil;
+ boolean available = find(map p, products_named, {return p["status"]:`unknown == `available;}) != nil;
+
+ y2milestone("Product: %1, installed: %2, selected: %3, removed: %4, available: %5", prod_name, installed, selected, removed, available);
+
+ // force upgrade of installed non-migration products
+ if (installed && !selected && !removed && available && !contains(migration_products, prod_name))
+ {
+ y2milestone("Found installed product: %1, forcing product upgrade", prod_name);
+ Pkg::ResolvableInstall(prod_name, `product);
+ }
+ }
+ });
+
+ foreach(string prod, migration_products, {
+ y2milestone("Removing migration product: %1", prod);
+ Pkg::ResolvableRemove(prod, `product);
+ });
+
// do full distribution upgrade
map