mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
Bug #4611: Fix missing zone_id in market after migration
(cherry picked from commit 02494be37878492018bb8f130a46e400ead89e78)
This commit is contained in:
parent
a7fe7e5468
commit
a419845a2f
@ -1355,16 +1355,18 @@ EOT
|
||||
|
||||
@db.fetch("SELECT oid,body FROM marketplace_pool") do |row|
|
||||
market_id = row[:oid]
|
||||
doc = Document.new(row[:body])
|
||||
doc = Nokogiri::XML(row[:body],nil,NOKOGIRI_ENCODING){|c| c.default_xml.noblanks}
|
||||
|
||||
apps_elem = doc.root.elements.delete("MARKETPLACEAPPS")
|
||||
apps_elem = doc.root.at_xpath("MARKETPLACEAPPS")
|
||||
apps_elem.remove if !apps_elem.nil?
|
||||
|
||||
apps_new_elem = doc.root.add_element("MARKETPLACEAPPS")
|
||||
apps_new_elem = doc.create_element("MARKETPLACEAPPS")
|
||||
doc.root.add_child(apps_new_elem)
|
||||
|
||||
error = false
|
||||
|
||||
marketplace[market_id][:apps].each do |id|
|
||||
id_elem = apps_elem.elements.delete("ID[.=#{id}]")
|
||||
id_elem = apps_elem.at_xpath("ID[.=#{id}]")
|
||||
|
||||
if id_elem.nil?
|
||||
error = true
|
||||
@ -1372,12 +1374,14 @@ EOT
|
||||
log_error(
|
||||
"Marketplace App #{id} is missing from Marketplace #{market_id} "<<
|
||||
"app id list")
|
||||
else
|
||||
id_elem.remove
|
||||
end
|
||||
|
||||
apps_new_elem.add_element("ID").text = id.to_s
|
||||
apps_new_elem.add_child(doc.create_element("ID")).content = id.to_s
|
||||
end
|
||||
|
||||
apps_elem.each_element("ID") do |id_elem|
|
||||
apps_elem.xpath("ID").each do |id_elem|
|
||||
error = true
|
||||
|
||||
log_error(
|
||||
@ -1385,7 +1389,23 @@ EOT
|
||||
"app id list, but it should not")
|
||||
end
|
||||
|
||||
markets_fix[row[:oid]] = doc.root.to_s
|
||||
zone_elem = doc.root.at_xpath("ZONE_ID")
|
||||
|
||||
if (zone_elem.nil? || zone_elem.text == "-1")
|
||||
error = true
|
||||
|
||||
log_error("Marketplace #{market_id} has an invalid ZONE_ID. Will be set to 0")
|
||||
|
||||
if (zone_elem.nil?)
|
||||
zone_elem = doc.root.add_child(doc.create_element("ZONE_ID"))
|
||||
end
|
||||
|
||||
zone_elem.content = "0"
|
||||
end
|
||||
|
||||
if (error)
|
||||
markets_fix[row[:oid]] = doc.root.to_s
|
||||
end
|
||||
end
|
||||
|
||||
if !db_version[:is_slave]
|
||||
|
@ -178,7 +178,7 @@ module Migrator
|
||||
|
||||
@db.run "CREATE TABLE marketplace_pool (oid INTEGER PRIMARY KEY, name VARCHAR(128), body MEDIUMTEXT, uid INTEGER, gid INTEGER, owner_u INTEGER, group_u INTEGER, other_u INTEGER);"
|
||||
|
||||
@db.run "INSERT INTO marketplace_pool VALUES(0,'OpenNebula Public','<MARKETPLACE><ID>0</ID><UID>0</UID><GID>0</GID><UNAME>#{oneadmin_uname}</UNAME><GNAME>#{oneadmin_gname}</GNAME><NAME>OpenNebula Public</NAME><MARKET_MAD><![CDATA[one]]></MARKET_MAD><TOTAL_MB>0</TOTAL_MB><FREE_MB>0</FREE_MB><USED_MB>0</USED_MB><MARKETPLACEAPPS></MARKETPLACEAPPS><PERMISSIONS><OWNER_U>1</OWNER_U><OWNER_M>1</OWNER_M><OWNER_A>1</OWNER_A><GROUP_U>1</GROUP_U><GROUP_M>0</GROUP_M><GROUP_A>0</GROUP_A><OTHER_U>1</OTHER_U><OTHER_M>0</OTHER_M><OTHER_A>0</OTHER_A></PERMISSIONS><TEMPLATE><DESCRIPTION><![CDATA[OpenNebula Systems MarketPlace]]></DESCRIPTION></TEMPLATE></MARKETPLACE>',0,0,1,1,1);"
|
||||
@db.run "INSERT INTO marketplace_pool VALUES(0,'OpenNebula Public','<MARKETPLACE><ID>0</ID><UID>0</UID><GID>0</GID><UNAME>#{oneadmin_uname}</UNAME><GNAME>#{oneadmin_gname}</GNAME><NAME>OpenNebula Public</NAME><ZONE_ID><![CDATA[0]]></ZONE_ID><MARKET_MAD><![CDATA[one]]></MARKET_MAD><TOTAL_MB>0</TOTAL_MB><FREE_MB>0</FREE_MB><USED_MB>0</USED_MB><MARKETPLACEAPPS></MARKETPLACEAPPS><PERMISSIONS><OWNER_U>1</OWNER_U><OWNER_M>1</OWNER_M><OWNER_A>1</OWNER_A><GROUP_U>1</GROUP_U><GROUP_M>0</GROUP_M><GROUP_A>0</GROUP_A><OTHER_U>1</OTHER_U><OTHER_M>0</OTHER_M><OTHER_A>0</OTHER_A></PERMISSIONS><TEMPLATE><DESCRIPTION><![CDATA[OpenNebula Systems MarketPlace]]></DESCRIPTION></TEMPLATE></MARKETPLACE>',0,0,1,1,1);"
|
||||
|
||||
@db.run "INSERT INTO pool_control VALUES('marketplace_pool',99);"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user