1
0
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:
Ruben S. Montero 2011-07-12 00:28:43 +02:00
commit 3d0aa2638e
8 changed files with 207 additions and 75 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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' %>

View File

@ -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.

View File

@ -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

View File

@ -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