mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
Merge branch 'master' of git.opennebula.org:one
This commit is contained in:
commit
3d0aa2638e
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env ruby
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
# -------------------------------------------------------------------------- #
|
||||
# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) #
|
||||
@ -18,9 +18,9 @@
|
||||
|
||||
####################################################
|
||||
# Script to implement host failure tolerance
|
||||
# It can be set to
|
||||
# It can be set to
|
||||
# -r resubmit VMs running in the host
|
||||
# -d delete VMs running in the host
|
||||
# -d delete VMs running in the host
|
||||
####################################################
|
||||
|
||||
ONE_LOCATION=ENV["ONE_LOCATION"]
|
||||
@ -64,16 +64,18 @@ host.info
|
||||
host_name = host.name
|
||||
|
||||
# Loop through all vms
|
||||
vms = VirtualMachinePool.new(client, -2)
|
||||
vms = VirtualMachinePool.new(client)
|
||||
exit -1 if OpenNebula.is_error?(vms)
|
||||
|
||||
vms.info
|
||||
vms.info_all
|
||||
|
||||
vm_ids_array = vms.retrieve_elements("/VM_POOL/VM[STATE=3]/HISTORY[HOSTNAME=\"#{host_name}\"]/../ID")
|
||||
state = "STATE=3"
|
||||
state += " or STATE=5" if force == "y"
|
||||
|
||||
vm_ids_array = vms.retrieve_elements("/VM_POOL/VM[#{state}]/HISTORY_RECORDS/HISTORY[HOSTNAME=\"#{host_name}\" and last()]/../../ID")
|
||||
|
||||
if vm_ids_array
|
||||
vm_ids_array.each do |vm_id|
|
||||
vm_ids_array.each do |vm_id|
|
||||
vm=OpenNebula::VirtualMachine.new_with_id(vm_id, client)
|
||||
vm.info
|
||||
|
||||
@ -85,21 +87,3 @@ if vm_ids_array
|
||||
end
|
||||
end
|
||||
|
||||
if force == "y"
|
||||
vm_ids_array = vms.retrieve_elements("/VM_POOL/VM[STATE=5]/HISTORY[HOSTNAME=\"#{host_name}\"]/../ID")
|
||||
|
||||
if vm_ids_array
|
||||
vm_ids_array.each do |vm_id|
|
||||
vm=OpenNebula::VirtualMachine.new_with_id(vm_id, client)
|
||||
vm.info
|
||||
|
||||
if mode == "-r"
|
||||
vm.resubmit
|
||||
elsif mode == "-d"
|
||||
vm.finalize
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
@ -81,8 +81,8 @@ EOT
|
||||
end
|
||||
end
|
||||
|
||||
def list_pool(options, top=false, filter_flag=-2)
|
||||
filter_flag ||= -2
|
||||
def list_pool(options, top=false, filter_flag=nil)
|
||||
filter_flag ||= OpenNebula::Pool::INFO_GROUP
|
||||
|
||||
pool = factory_pool(filter_flag)
|
||||
|
||||
@ -219,15 +219,19 @@ EOT
|
||||
|
||||
def filterflag_to_i(str)
|
||||
filter_flag = case str
|
||||
when "a", "all" then -2
|
||||
when "m", "mine" then -3
|
||||
when "g", "group" then -1
|
||||
when "a", "all" then OpenNebula::Pool::INFO_ALL
|
||||
when "m", "mine" then OpenNebula::Pool::INFO_MINE
|
||||
when "g", "group" then OpenNebula::Pool::INFO_GROUP
|
||||
else
|
||||
if str.match(/^[0123456789]+$/)
|
||||
str.to_i
|
||||
else
|
||||
user = translation_hash[:users].select { |k,v| v==str }
|
||||
user.length > 0 ? user.first.first.to_i : -2
|
||||
if user.length > 0
|
||||
user.first.first.to_i
|
||||
else
|
||||
OpenNebula::Pool::INFO_GROUP
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -161,11 +161,10 @@ class EC2QueryServer < CloudServer
|
||||
end
|
||||
|
||||
def describe_images(params, one_client)
|
||||
user_flag=-1
|
||||
user_flag = OpenNebula::Pool::INFO_GROUP
|
||||
impool = ImagePool.new(one_client, user_flag)
|
||||
impool.info
|
||||
|
||||
erb_user_name = params['AWSAccessKeyId']
|
||||
erb_version = params['Version']
|
||||
|
||||
response = ERB.new(File.read(@config[:views]+"/describe_images.erb"))
|
||||
@ -221,7 +220,7 @@ class EC2QueryServer < CloudServer
|
||||
end
|
||||
|
||||
def describe_instances(params, one_client)
|
||||
user_flag=-1
|
||||
user_flag = OpenNebula::Pool::INFO_MINE
|
||||
vmpool = VirtualMachinePool.new(one_client, user_flag)
|
||||
vmpool.info
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
<% elsif im['STATE'] == '4'%>
|
||||
<imageState>pending</imageState>
|
||||
<% end %>
|
||||
<imageOwnerId><%= erb_user_name %></imageOwnerId>
|
||||
<imageOwnerId><%= im['UNAME'] %></imageOwnerId>
|
||||
<% if im['PUBLIC'] == '0' %>
|
||||
<isPublic>false</isPublic>
|
||||
<% elsif im['PUBLIC'] == '1' %>
|
||||
|
@ -46,16 +46,21 @@ 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}');"
|
||||
@db[:user_pool].insert(
|
||||
:oid => oid,
|
||||
:name => name,
|
||||
:body => body)
|
||||
end
|
||||
|
||||
# Delete old user_pool
|
||||
@ -98,7 +103,12 @@ module Migrator
|
||||
|
||||
body = "<HOST><ID>#{oid}</ID><NAME>#{name}</NAME><STATE>#{state}</STATE><IM_MAD>#{row[:im_mad]}</IM_MAD><VM_MAD>#{row[:vm_mad]}</VM_MAD><TM_MAD>#{row[:tm_mad]}</TM_MAD><LAST_MON_TIME>#{last_mon_time}</LAST_MON_TIME>#{host_share}#{ template_doc.to_s }</HOST>"
|
||||
|
||||
@db.run "INSERT INTO host_pool VALUES(#{oid},'#{name}','#{body}', #{state}, #{last_mon_time});"
|
||||
@db[:host_pool].insert(
|
||||
:oid => oid,
|
||||
:name => name,
|
||||
:body => body,
|
||||
:state => state,
|
||||
:last_mon_time => last_mon_time)
|
||||
end
|
||||
|
||||
# Delete old table
|
||||
@ -131,13 +141,20 @@ 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});"
|
||||
@db[:image_pool].insert(
|
||||
:oid => oid,
|
||||
:name => name,
|
||||
:body => body,
|
||||
:uid => uid,
|
||||
:gid => gid,
|
||||
:public => public)
|
||||
end
|
||||
|
||||
# Delete old table
|
||||
@ -167,7 +184,10 @@ module Migrator
|
||||
|
||||
body = "<HISTORY><SEQ>#{seq}</SEQ><HOSTNAME>#{row[:host_name]}</HOSTNAME><VM_DIR>#{row[:vm_dir]}</VM_DIR><HID>#{row[:hid]}</HID><STIME>#{row[:stime]}</STIME><ETIME>#{row[:etime]}</ETIME><VMMMAD>#{row[:vm_mad]}</VMMMAD><TMMAD>#{row[:tm_mad]}</TMMAD><PSTIME>#{row[:pstime]}</PSTIME><PETIME>#{row[:petime]}</PETIME><RSTIME>#{row[:rstime]}</RSTIME><RETIME>#{row[:retime]}</RETIME><ESTIME>#{row[:estime]}</ESTIME><EETIME>#{row[:eetime]}</EETIME><REASON>#{row[:reason]}</REASON></HISTORY>"
|
||||
|
||||
@db.run "INSERT INTO history VALUES(#{vid},'#{seq}','#{body}');"
|
||||
@db[:history].insert(
|
||||
:vid => vid,
|
||||
:seq => seq,
|
||||
:body => body)
|
||||
end
|
||||
|
||||
|
||||
@ -177,6 +197,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,17 +208,21 @@ 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,
|
||||
:name => name,
|
||||
:body => body,
|
||||
:uid => uid,
|
||||
:gid => gid,
|
||||
:last_poll => last_poll,
|
||||
:state => state,
|
||||
:lcm_state => lcm_state)
|
||||
:oid => oid,
|
||||
:name => name,
|
||||
:body => body,
|
||||
:uid => uid,
|
||||
:gid => gid,
|
||||
:last_poll => last_poll,
|
||||
:state => state,
|
||||
:lcm_state => lcm_state)
|
||||
end
|
||||
|
||||
|
||||
@ -228,14 +253,21 @@ 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});"
|
||||
@db[:network_pool].insert(
|
||||
:oid => oid,
|
||||
:name => name,
|
||||
:body => body,
|
||||
:uid => uid,
|
||||
:gid => gid,
|
||||
:public => public)
|
||||
end
|
||||
|
||||
# Read each entry in the old table, and insert into new table
|
||||
@ -245,7 +277,10 @@ module Migrator
|
||||
|
||||
body = "<LEASE><IP>#{ip}</IP><MAC_PREFIX>#{row[:mac_prefix]}</MAC_PREFIX><MAC_SUFFIX>#{row[:mac_suffix]}</MAC_SUFFIX><USED>#{row[:used]}</USED><VID>#{row[:vid]}</VID></LEASE>"
|
||||
|
||||
@db.run "INSERT INTO leases VALUES(#{oid}, #{ip}, '#{body}');"
|
||||
@db[:leases].insert(
|
||||
:oid => oid,
|
||||
:ip => ip,
|
||||
:body => body)
|
||||
end
|
||||
|
||||
# Delete old tables
|
||||
@ -259,11 +294,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 +318,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
|
||||
|
Binary file not shown.
@ -1,13 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script populates a DB with different resources
|
||||
# Set the TWO_SERIES flag if the target OpenNebula is 2.0 or 2.2
|
||||
|
||||
# The oneadmin's auth must be in ~/.one/one_auth
|
||||
|
||||
TWO_SERIES="no"
|
||||
#TWO_SERIES="yes"
|
||||
|
||||
ONEADMIN_AUTH=$ONE_AUTH
|
||||
|
||||
TMP_FILE="tmp_file"
|
||||
|
||||
# 5 Users
|
||||
|
||||
# 5 Hosts and Clusters
|
||||
for i in 0 1 2 3 4; do
|
||||
echo "user_$i:pass_$i" > one_auth$i
|
||||
oneuser create user_$i pass_$i
|
||||
done
|
||||
|
||||
|
||||
# 5 Hosts
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
onehost create host_$i im_dummy vmm_dummy tm_dummy
|
||||
@ -18,7 +31,9 @@ done
|
||||
for i in 0 1 2; do
|
||||
( echo "NAME = vnet_fixed_$i"
|
||||
echo "TYPE = FIXED"
|
||||
echo "PUBLIC = FIXED"
|
||||
echo "BRIDGE = vbr1"
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR VNET $i\""
|
||||
echo "LEASES = [IP=192.168.$i.1]"
|
||||
echo "LEASES = [IP=192.168.$i.2]"
|
||||
echo "LEASES = [IP=192.168.$i.3]"
|
||||
@ -26,6 +41,9 @@ for i in 0 1 2; do
|
||||
echo "LEASES = [IP=192.168.$i.5]"
|
||||
) > $TMP_FILE
|
||||
|
||||
# Change auth
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
onevnet create $TMP_FILE
|
||||
done
|
||||
|
||||
@ -37,9 +55,14 @@ for i in 3 4; do
|
||||
echo "BRIDGE = vbr0"
|
||||
echo "NETWORK_SIZE = C"
|
||||
echo "NETWORK_ADDRESS = 192.168.$i.0"
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR VNET $i\""
|
||||
) > $TMP_FILE
|
||||
|
||||
# Change auth
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
onevnet create $TMP_FILE
|
||||
onevnet publish $i
|
||||
done
|
||||
|
||||
# 5 Images
|
||||
@ -48,17 +71,14 @@ for i in 0 1 2 3 4; do
|
||||
( echo "NAME = image_$i"
|
||||
echo "TYPE = DATABLOCK"
|
||||
echo "PATH = /dev/null"
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR IMG $i\""
|
||||
) > $TMP_FILE
|
||||
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
oneimage create $TMP_FILE
|
||||
done
|
||||
|
||||
# 5 Users
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
oneuser create user_$i pass_$i
|
||||
done
|
||||
|
||||
# 5 VMs
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
@ -82,23 +102,38 @@ for i in 0 1 2 3 4; do
|
||||
echo "REQUIREMENTS = \"CPUSPEED > 1000\" "
|
||||
echo "RANK = FREECPU "
|
||||
echo "CONTEXT = [ files = \"/dev/null\" ] "
|
||||
|
||||
echo "EXTRA_ATT = \"EXTRA_VALUE FOR VM $i\""
|
||||
) > $TMP_FILE
|
||||
|
||||
export ONE_AUTH="`pwd`/one_auth$i"
|
||||
|
||||
if [ $TWO_SERIES == "yes" ]; then
|
||||
onevm create $TMP_FILE
|
||||
else
|
||||
onetemplate create $TMP_FILE
|
||||
onetemplate instantiate $i
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
if [ -n "$ONEADMIN_AUTH" ] ; then
|
||||
export ONE_AUTH=$ONEADMIN_AUTH
|
||||
else
|
||||
# Unset the one_auth file, cli will look for it in ~/.one/one_auth
|
||||
unset ONE_AUTH
|
||||
fi
|
||||
|
||||
for i in 0 1 2 3; do
|
||||
onevm deploy $i $i
|
||||
done
|
||||
|
||||
rm $TMP_FILE
|
||||
|
||||
|
||||
echo -n "Waiting until all VMs are running "
|
||||
|
||||
while [ $(onevm list | grep -c runn) -ne 5 ]; do
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do
|
||||
echo -n "."
|
||||
sleep 0.5s
|
||||
done
|
||||
@ -108,17 +143,34 @@ echo " ok"
|
||||
# Wait for some monitorization data
|
||||
sleep 3s
|
||||
|
||||
|
||||
onevm migrate 0 1
|
||||
while [ $(onevm list | grep -c runn) -ne 5 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
|
||||
onevm livemigrate 1 2
|
||||
while [ $(onevm list | grep -c runn) -ne 5 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
onevm stop 1
|
||||
while [ $(onevm list a | grep -c stop) -ne 1 ]; do sleep 0.5s; done
|
||||
|
||||
onevm resume 1
|
||||
while [ $(onevm list a | grep -c pend) -ne 2 ]; do sleep 0.5s; done
|
||||
|
||||
onevm deploy 1 0
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
onevm migrate 1 3
|
||||
while [ $(onevm list a | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
|
||||
onevm shutdown 1
|
||||
while [ $(onevm list a | grep -c runn) -ne 3 ]; do sleep 0.5s; done
|
||||
|
||||
onevm shutdown 2
|
||||
while [ $(onevm list | grep -c runn) -ne 4 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 2 ]; do sleep 0.5s; done
|
||||
|
||||
onevm delete 3
|
||||
while [ $(onevm list | grep -c runn) -ne 3 ]; do sleep 0.5s; done
|
||||
while [ $(onevm list a | grep -c runn) -ne 1 ]; do sleep 0.5s; done
|
||||
|
||||
onehost disable 3
|
||||
oneimage persistent 3
|
||||
@ -130,8 +182,20 @@ sleep 3s
|
||||
|
||||
mkdir -p results/xml_files
|
||||
|
||||
for obj in host vnet image vm; do
|
||||
for obj in host vnet image vm user; do
|
||||
one$obj list a -x > results/xml_files/$obj-pool.xml
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
one$obj show -x $i > results/xml_files/$obj-$i.xml
|
||||
done
|
||||
done
|
||||
|
||||
if [ $TWO_SERIES == "no" ]; then
|
||||
oneacl list a -x > results/xml_files/acl-pool.xml
|
||||
onegroup list a -x > results/xml_files/group-pool.xml
|
||||
fi
|
||||
|
||||
# Clean one auth files
|
||||
for i in 0 1 2 3 4; do
|
||||
rm one_auth$i
|
||||
done
|
||||
|
@ -26,8 +26,12 @@ fi
|
||||
|
||||
cp oned.conf $ONEDCONF_LOCATION
|
||||
|
||||
|
||||
echo "oneadmin:oneadmin" > oneadmin_auth
|
||||
export ONE_XMLRPC=http://localhost:2888/RPC2
|
||||
export PATH=$ONE_LOCATION/bin:$PATH
|
||||
export ONE_AUTH="`pwd`/oneadmin_auth"
|
||||
|
||||
|
||||
PID=$$
|
||||
|
||||
@ -62,12 +66,16 @@ onedb upgrade -v --sqlite results/one.db.upgraded --backup results/one.db.backup
|
||||
echo "Done. Upgraded DB and the one just created will be compared."
|
||||
|
||||
# Dump both DB schemas
|
||||
sqlite3 results/one.db.upgraded ".schema" > results/one.db.upgraded.schema
|
||||
sqlite3 results/one.db.3.0 ".schema" > results/one.db.3.0.schema
|
||||
sqlite3 results/one.db.upgraded ".schema" > results/one.db.upgraded.tmpschema
|
||||
sqlite3 results/one.db.3.0 ".schema" > results/one.db.3.0.tmpschema
|
||||
|
||||
# Sort the files contents, to avoid false diff errors
|
||||
sort results/one.db.upgraded.schema > results/one.db.upgraded.schema
|
||||
sort results/one.db.3.0.schema > results/one.db.3.0.schema
|
||||
sort results/one.db.upgraded.tmpschema > results/one.db.upgraded.schema
|
||||
sort results/one.db.3.0.tmpschema > results/one.db.3.0.schema
|
||||
|
||||
rm results/one.db.upgraded.tmpschema
|
||||
rm results/one.db.3.0.tmpschema
|
||||
|
||||
|
||||
|
||||
# Perform a diff
|
||||
@ -92,12 +100,17 @@ cp results/one.db.upgraded $VAR_LOCATION/one.db
|
||||
oned -f &
|
||||
sleep 2s;
|
||||
|
||||
for obj in host vnet image vm; do
|
||||
for obj in host vnet image vm user; do
|
||||
for i in 0 1 2 3 4; do
|
||||
one$obj show -x $i > results/xml_files/$obj-$i-upgraded.xml
|
||||
done
|
||||
done
|
||||
|
||||
for obj in host vnet image vm acl group user; do
|
||||
one$obj list a -x > results/xml_files/$obj-pool-upgraded.xml
|
||||
done
|
||||
|
||||
|
||||
pkill -P $PID oned
|
||||
sleep 2s;
|
||||
pkill -9 -P $PID oned
|
||||
@ -106,6 +119,14 @@ echo "XML output collected. A diff will be performed."
|
||||
|
||||
mkdir results/diff_files
|
||||
|
||||
diff <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-pool.xml) <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-pool-upgraded.xml) > results/diff_files/host-pool.diff
|
||||
diff <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-pool.xml) <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-pool-upgraded.xml) > results/diff_files/image-pool.diff
|
||||
diff <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-pool.xml) <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-pool-upgraded.xml) > results/diff_files/vm-pool.diff
|
||||
|
||||
for obj in vnet acl group user; do
|
||||
diff <(cat results/xml_files/$obj-pool.xml) <(cat results/xml_files/$obj-pool-upgraded.xml) > results/diff_files/$obj-pool.diff
|
||||
done
|
||||
|
||||
for i in 0 1 2 3 4; do
|
||||
diff <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-$i.xml) <(grep -v -e "<LAST_MON_TIME>" -e "<CLUSTER>" -e "NAME>" results/xml_files/host-$i-upgraded.xml) > results/diff_files/host-$i.diff
|
||||
|
||||
@ -113,12 +134,15 @@ for i in 0 1 2 3 4; do
|
||||
|
||||
diff <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-$i.xml) <(grep -v -e "<REGTIME>" -e "<SOURCE>" results/xml_files/image-$i-upgraded.xml) > results/diff_files/image-$i.diff
|
||||
|
||||
diff <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-$i.xml) <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" results/xml_files/vm-$i-upgraded.xml) > results/diff_files/vm-$i.diff
|
||||
diff <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" -e "<NET_TX>" results/xml_files/vm-$i.xml) <(grep -v -e "<LAST_POLL>" -e "TIME>" -e "<SOURCE>" -e "<TEMPLATE_ID>" -e "<VM_DIR>" -e "<NET_TX>" results/xml_files/vm-$i-upgraded.xml) > results/diff_files/vm-$i.diff
|
||||
|
||||
diff <(cat results/xml_files/user-$i.xml) <(cat results/xml_files/user-$i-upgraded.xml) > results/diff_files/user-$i.diff
|
||||
done
|
||||
|
||||
|
||||
CODE=0
|
||||
|
||||
for obj in host vnet image vm; do
|
||||
for obj in host vnet image vm user; do
|
||||
for i in 0 1 2 3 4; do
|
||||
FILE=results/diff_files/$obj-$i.diff
|
||||
if [[ -s $FILE ]] ; then
|
||||
@ -128,8 +152,19 @@ for obj in host vnet image vm; do
|
||||
done
|
||||
done
|
||||
|
||||
for obj in host vnet image vm acl group user; do
|
||||
FILE=results/diff_files/$obj-pool.diff
|
||||
if [[ -s $FILE ]] ; then
|
||||
echo "Error: diff file $FILE is not empty."
|
||||
CODE=-1
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
if [ $CODE -eq 0 ]; then
|
||||
echo "Done, all tests passed."
|
||||
fi
|
||||
|
||||
rm oneadmin_auth
|
||||
|
||||
exit $CODE
|
||||
|
Loading…
x
Reference in New Issue
Block a user