mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
onedb: update to latest data structures
This commit is contained in:
parent
c47734d6bd
commit
81054bce3b
@ -46,14 +46,16 @@ module Migrator
|
||||
|
||||
if( oid == 0 )
|
||||
gid = 0
|
||||
groupname = "oneadmin"
|
||||
else
|
||||
gid = 1
|
||||
groupname = "users"
|
||||
user_group_ids += "<ID>#{oid}</ID>"
|
||||
end
|
||||
|
||||
name = row[:user_name]
|
||||
|
||||
body = "<USER><ID>#{oid}</ID><GID>#{gid}</GID><NAME>#{name}</NAME><PASSWORD>#{row[:password]}</PASSWORD><ENABLED>#{row[:enabled]}</ENABLED><GROUPS><ID>#{gid}</ID></GROUPS></USER>"
|
||||
body = "<USER><ID>#{oid}</ID><GID>#{gid}</GID><GNAME>#{groupname}</GNAME><NAME>#{name}</NAME><PASSWORD>#{row[:password]}</PASSWORD><ENABLED>#{row[:enabled]}</ENABLED></USER>"
|
||||
|
||||
@db.run "INSERT INTO user_pool VALUES(#{oid},'#{name}','#{body}');"
|
||||
end
|
||||
@ -131,11 +133,12 @@ module Migrator
|
||||
name = row[:name]
|
||||
uid = row[:uid]
|
||||
gid = (uid == 0) ? 0 : 1
|
||||
group = (uid == 0) ? "oneadmin" : "users"
|
||||
public = row[:public]
|
||||
|
||||
# In OpenNebula 2.0 Image States go from 0 to 3, in 3.0 go
|
||||
# from 0 to 5, but the meaning is the same for states 0 to 3
|
||||
body = "<IMAGE><ID>#{oid}</ID><UID>#{row[:uid]}</UID><GID>#{gid}</GID><NAME>#{name}</NAME><TYPE>#{row[:type]}</TYPE><PUBLIC>#{public}</PUBLIC><PERSISTENT>#{row[:persistent]}</PERSISTENT><REGTIME>#{row[:regtime]}</REGTIME><SOURCE>#{row[:source]}</SOURCE><STATE>#{row[:state]}</STATE><RUNNING_VMS>#{row[:running_vms]}</RUNNING_VMS>#{row[:template]}</IMAGE>"
|
||||
body = "<IMAGE><ID>#{oid}</ID><UID>#{row[:uid]}</UID><GID>#{gid}</GID><UNAME>#{get_username(row[:uid])}</UNAME><GNAME>#{group}</GNAME><NAME>#{name}</NAME><TYPE>#{row[:type]}</TYPE><PUBLIC>#{public}</PUBLIC><PERSISTENT>#{row[:persistent]}</PERSISTENT><REGTIME>#{row[:regtime]}</REGTIME><SOURCE>#{row[:source]}</SOURCE><STATE>#{row[:state]}</STATE><RUNNING_VMS>#{row[:running_vms]}</RUNNING_VMS>#{row[:template]}</IMAGE>"
|
||||
|
||||
@db.run "INSERT INTO image_pool VALUES(#{oid},'#{name}','#{body}', #{uid}, #{gid}, #{public});"
|
||||
end
|
||||
@ -177,6 +180,7 @@ module Migrator
|
||||
name = row[:name]
|
||||
uid = row[:uid]
|
||||
gid = (uid == 0) ? 0 : 1
|
||||
group = (uid == 0) ? "oneadmin" : "users"
|
||||
last_poll = row[:last_poll]
|
||||
state = row[:state]
|
||||
lcm_state = row[:lcm_state]
|
||||
@ -187,7 +191,11 @@ module Migrator
|
||||
history = history_row[:body]
|
||||
end
|
||||
|
||||
body = "<VM><ID>#{oid}</ID><UID>#{uid}</UID><GID>#{gid}</GID><NAME>#{name}</NAME><LAST_POLL>#{last_poll}</LAST_POLL><STATE>#{state}</STATE><LCM_STATE>#{lcm_state}</LCM_STATE><STIME>#{row[:stime]}</STIME><ETIME>#{row[:etime]}</ETIME><DEPLOY_ID>#{row[:deploy_id]}</DEPLOY_ID><MEMORY>#{row[:memory]}</MEMORY><CPU>#{row[:cpu]}</CPU><NET_TX>#{row[:net_tx]}</NET_TX><NET_RX>#{row[:net_rx]}</NET_RX>#{row[:template]}#{history}</VM>"
|
||||
if ( history != "" )
|
||||
history = "<HISTORY_RECORDS>#{history}</HISTORY_RECORDS>"
|
||||
end
|
||||
|
||||
body = "<VM><ID>#{oid}</ID><UID>#{uid}</UID><GID>#{gid}</GID><UNAME>#{get_username(uid)}</UNAME><GNAME>#{group}</GNAME><NAME>#{name}</NAME><LAST_POLL>#{last_poll}</LAST_POLL><STATE>#{state}</STATE><LCM_STATE>#{lcm_state}</LCM_STATE><STIME>#{row[:stime]}</STIME><ETIME>#{row[:etime]}</ETIME><DEPLOY_ID>#{row[:deploy_id]}</DEPLOY_ID><MEMORY>#{row[:memory]}</MEMORY><CPU>#{row[:cpu]}</CPU><NET_TX>#{row[:net_tx]}</NET_TX><NET_RX>#{row[:net_rx]}</NET_RX>#{row[:template]}#{history}</VM>"
|
||||
|
||||
@db[:vm_pool].insert(
|
||||
:oid => oid,
|
||||
@ -228,12 +236,13 @@ module Migrator
|
||||
name = row[:name]
|
||||
uid = row[:uid]
|
||||
gid = (uid == 0) ? 0 : 1
|
||||
group = (uid == 0) ? "oneadmin" : "users"
|
||||
public = row[:public]
|
||||
|
||||
# <TOTAL_LEASES> is stored in the DB, but it is not used to rebuild
|
||||
# the VirtualNetwork object, and it is generated each time the
|
||||
# network is listed. So setting it to 0 is safe
|
||||
body = "<VNET><ID>#{oid}</ID><UID>#{uid}</UID><GID>#{gid}</GID><NAME>#{name}</NAME><TYPE>#{row[:type]}</TYPE><BRIDGE>#{row[:bridge]}</BRIDGE><PUBLIC>#{public}</PUBLIC><TOTAL_LEASES>0</TOTAL_LEASES>#{row[:template]}</VNET>"
|
||||
body = "<VNET><ID>#{oid}</ID><UID>#{uid}</UID><GID>#{gid}</GID><UNAME>#{get_username(uid)}</UNAME><GNAME>#{group}</GNAME><NAME>#{name}</NAME><TYPE>#{row[:type]}</TYPE><BRIDGE>#{row[:bridge]}</BRIDGE><PUBLIC>#{public}</PUBLIC><TOTAL_LEASES>0</TOTAL_LEASES>#{row[:template]}</VNET>"
|
||||
|
||||
@db.run "INSERT INTO network_pool VALUES(#{oid},'#{name}','#{body}', #{uid}, #{gid}, #{public});"
|
||||
end
|
||||
@ -259,11 +268,12 @@ module Migrator
|
||||
|
||||
@db.run "CREATE TABLE db_versioning (oid INTEGER PRIMARY KEY, version INTEGER, timestamp INTEGER, comment VARCHAR(256));"
|
||||
@db.run "CREATE TABLE template_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, uid INTEGER, gid INTEGER, public INTEGER);"
|
||||
@db.run "CREATE TABLE acl (oid INT PRIMARY KEY, user BIGINT, resource BIGINT, rights BIGINT);"
|
||||
|
||||
# The group pool has two default ones
|
||||
@db.run "CREATE TABLE group_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, UNIQUE(name));"
|
||||
@db.run "INSERT INTO group_pool VALUES(0,'oneadmin','<GROUP><ID>0</ID><UID>0</UID><NAME>oneadmin</NAME><USERS><ID>0</ID></USERS></GROUP>');"
|
||||
@db.run "INSERT INTO group_pool VALUES(1,'users','<GROUP><ID>1</ID><UID>0</UID><NAME>users</NAME><USERS>#{user_group_ids}</USERS></GROUP>');"
|
||||
@db.run "INSERT INTO group_pool VALUES(0,'oneadmin','<GROUP><ID>0</ID><NAME>oneadmin</NAME><USERS><ID>0</ID></USERS></GROUP>');"
|
||||
@db.run "INSERT INTO group_pool VALUES(1,'users','<GROUP><ID>1</ID><NAME>users</NAME><USERS>#{user_group_ids}</USERS></GROUP>');"
|
||||
|
||||
# New pool_control table contains the last_oid used, must be rebuilt
|
||||
@db.run "CREATE TABLE pool_control (tablename VARCHAR(32) PRIMARY KEY, last_oid BIGINT UNSIGNED)"
|
||||
@ -282,4 +292,14 @@ module Migrator
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
def get_username(uid)
|
||||
username = ""
|
||||
|
||||
@db.fetch("SELECT name FROM user_pool WHERE oid=#{uid}") do |user|
|
||||
username = user[:name]
|
||||
end
|
||||
|
||||
return username
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user