mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
feature #2465: Migrator copies vnet config attr to the template
This commit is contained in:
parent
2dc79fdfe9
commit
7ce928c82d
@ -118,6 +118,44 @@ module Migrator
|
||||
|
||||
log_time()
|
||||
|
||||
# Copy VNet config variables to the template
|
||||
|
||||
@db.run "ALTER TABLE network_pool RENAME TO old_network_pool;"
|
||||
@db.run "CREATE TABLE network_pool (oid INTEGER PRIMARY KEY, name VARCHAR(128), body MEDIUMTEXT, uid INTEGER, gid INTEGER, owner_u INTEGER, group_u INTEGER, other_u INTEGER, cid INTEGER, UNIQUE(name,uid));"
|
||||
|
||||
@db.transaction do
|
||||
@db.fetch("SELECT * FROM old_network_pool") do |row|
|
||||
doc = Nokogiri::XML(row[:body])
|
||||
|
||||
template = doc.root.at_xpath("TEMPLATE")
|
||||
|
||||
["PHYDEV", "VLAN_ID", "BRIDGE"].each do |elem|
|
||||
template.add_child(doc.create_element(elem)).
|
||||
add_child(doc.create_cdata(doc.root.at_xpath(elem).text))
|
||||
end
|
||||
|
||||
vlan_text = doc.root.at_xpath("VLAN").text == "0" ? "NO" : "YES"
|
||||
|
||||
template.add_child(doc.create_element("VLAN")).
|
||||
add_child(doc.create_cdata(vlan_text))
|
||||
|
||||
@db[:network_pool].insert(
|
||||
:oid => row[:oid],
|
||||
:name => row[:name],
|
||||
:body => doc.root.to_s,
|
||||
:uid => row[:oid],
|
||||
:gid => row[:gid],
|
||||
:owner_u => row[:owner_u],
|
||||
:group_u => row[:group_u],
|
||||
:other_u => row[:other_u],
|
||||
:cid => row[:cid])
|
||||
end
|
||||
end
|
||||
|
||||
@db.run "DROP TABLE old_network_pool;"
|
||||
|
||||
log_time()
|
||||
|
||||
# Default ZONE
|
||||
@db.run "CREATE TABLE zone_pool (oid INTEGER PRIMARY KEY, name VARCHAR(128), body MEDIUMTEXT, uid INTEGER, gid INTEGER, owner_u INTEGER, group_u INTEGER, other_u INTEGER, UNIQUE(name));"
|
||||
@db.run "INSERT INTO zone_pool VALUES(0,'OpenNebula','<ZONE><ID>0</ID><NAME>OpenNebula</NAME><TEMPLATE><ENDPOINT><![CDATA[-]]></ENDPOINT></TEMPLATE></ZONE>',0,0,1,0,0);"
|
||||
|
Loading…
x
Reference in New Issue
Block a user