1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-16 22:50:10 +03:00

Feature #4215: Add vrouter table to import_slave

This commit is contained in:
Carlos Martín 2016-03-03 17:38:41 +01:00
parent dafeeaf95c
commit e709ace860

View File

@ -323,6 +323,9 @@ EOT
@slave_db.run "ALTER TABLE secgroup_pool RENAME TO old_secgroup_pool;"
@slave_db.run "CREATE TABLE secgroup_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,uid));"
@slave_db.run "ALTER TABLE vrouter_pool RENAME TO old_vrouter_pool;"
@slave_db.run "CREATE TABLE vrouter_pool (oid INTEGER PRIMARY KEY, name VARCHAR(128), body MEDIUMTEXT, uid INTEGER, gid INTEGER, owner_u INTEGER, group_u INTEGER, other_u INTEGER);"
@slave_db.run "ALTER TABLE group_quotas RENAME TO old_group_quotas;"
@slave_db.run "CREATE TABLE group_quotas (group_oid INTEGER PRIMARY KEY, body MEDIUMTEXT);"
@ -853,6 +856,7 @@ EOT
@slave_db.run "DROP TABLE old_template_pool;"
@slave_db.run "DROP TABLE old_vm_pool;"
@slave_db.run "DROP TABLE old_secgroup_pool;"
@slave_db.run "DROP TABLE old_vrouter_pool;"
@slave_db.run "DROP TABLE old_group_quotas;"
@slave_db.run "DROP TABLE old_user_quotas;"
@ -1140,5 +1144,38 @@ EOT
:other_u => row[:other_u])
end
db.fetch("SELECT * FROM old_vrouter_pool") do |row|
new_user = users[row[:uid]]
new_group = groups[row[:gid]]
if (new_user.nil?)
new_user = users[0]
log("User ##{row[:uid]} does not exist anymore. Virtual Router ##{row[:oid]} will be assigned to user ##{new_user[:oid]}, #{new_user[:name]}")
end
if (new_group.nil?)
new_group = groups[0]
log("Group ##{row[:gid]} does not exist anymore. Virtual Router ##{row[:oid]} will be assigned to group ##{new_group[:oid]}, #{new_group[:name]}")
end
doc = Nokogiri::XML(row[:body],nil,NOKOGIRI_ENCODING){|c| c.default_xml.noblanks}
doc.root.at_xpath("UID").content = new_user[:oid]
doc.root.at_xpath("UNAME").content = new_user[:name]
doc.root.at_xpath("GID").content = new_group[:oid]
doc.root.at_xpath("GNAME").content = new_group[:name]
db[:vrouter_pool].insert(
:oid => row[:oid],
:name => row[:name],
:body => doc.root.to_s,
:uid => new_user[:oid],
:gid => new_group[:oid],
:owner_u => row[:owner_u],
:group_u => row[:group_u],
:other_u => row[:other_u])
end
end
end