mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
development: Update Goca tests
This commit is contained in:
parent
7d46241fe2
commit
169256a928
@ -97,7 +97,7 @@ func TestImage(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
|
||||
err = image.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@ -132,11 +132,11 @@ func TestImage(t *testing.T) {
|
||||
}
|
||||
|
||||
// Change Owner to oneadmin call
|
||||
err = image.Chown(0, 0)
|
||||
err = image.Chown(1, 1)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
|
||||
err = image.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@ -154,12 +154,12 @@ func TestImage(t *testing.T) {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
if "oneadmin" != uname {
|
||||
if "serveradmin" != uname {
|
||||
t.Error("Image owner is not oneadmin")
|
||||
}
|
||||
|
||||
// Compare with caller group
|
||||
if "oneadmin" != gname {
|
||||
if "users" != gname {
|
||||
t.Error("Image owner group is not oneadmin")
|
||||
}
|
||||
|
||||
|
@ -1,145 +1,118 @@
|
||||
package goca
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"strings"
|
||||
"testing"
|
||||
"goca"
|
||||
)
|
||||
|
||||
var mpTpl = `
|
||||
NAME = "MPTEST"
|
||||
MARKET_MAD = "http"
|
||||
ZONE_ID = 0
|
||||
BASE_URL = "http://frontend.opennebula.org/"
|
||||
PUBLIC_DIR = "/var/loca/market-http"
|
||||
BRIDGE_LIST = "web-server.opennebula.org"
|
||||
`
|
||||
|
||||
// Helper to create a Marketplace
|
||||
func createMarketPlace(t *testing.T) *MarketPlace {
|
||||
id, err := CreateMarketPlace(mpTpl)
|
||||
func TestMarketplace(t *testing.T){
|
||||
var mkt_name string = "marketplace_test_go"
|
||||
|
||||
var market *goca.MarketPlace
|
||||
|
||||
var mkt_template string = "NAME = \"" + mkt_name + "\"\n" +
|
||||
"MARKET_MAD = \"http\"\n" +
|
||||
"BASE_URL = \"http://url/\"\n" +
|
||||
"PUBLIC_DIR = \"/var/loca/market-http\""
|
||||
|
||||
//Create Marketpkace
|
||||
market_id, err := goca.CreateMarketPlace(mkt_template)
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
// Get Marketplace by ID
|
||||
mp := NewMarketPlace(id)
|
||||
market = goca.NewMarketPlace(market_id)
|
||||
market.Info()
|
||||
|
||||
actual, _:= market.XMLResource.XPath("/MARKETPLACE/NAME")
|
||||
|
||||
if actual != mkt_name {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", mkt_name, actual)
|
||||
}
|
||||
|
||||
tmpl := "ATT1 = \"VAL1\""
|
||||
|
||||
//Update Marketpkace
|
||||
err = market.Update(tmpl, 1)
|
||||
|
||||
err = mp.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
return mp
|
||||
}
|
||||
market.Info()
|
||||
|
||||
func TestMarketPlace(t *testing.T) {
|
||||
mp := createMarketPlace(t)
|
||||
actual_mm, _ := market.XMLResource.XPath("/MARKETPLACE/TEMPLATE/MARKET_MAD")
|
||||
actual_1, _ := market.XMLResource.XPath("/MARKETPLACE/TEMPLATE/ATT1")
|
||||
|
||||
if actual_mm != "http" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "http", actual_mm)
|
||||
}
|
||||
|
||||
if actual_1 != "VAL1" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "VAL1", actual_1)
|
||||
}
|
||||
|
||||
//Change permissions for Marketpkace
|
||||
err = market.Chmod(1,1,1,1,1,1,1,1,1)
|
||||
|
||||
idParse, err := GetID(t, mp, "MARKETPLACE")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
if idParse != mp.ID {
|
||||
t.Errorf("Marketplace ID does not match")
|
||||
market.Info()
|
||||
|
||||
expected := "111111111"
|
||||
actual, _ = market.XMLResource.XPath("/MARKETPLACE/PERMISSIONS")
|
||||
|
||||
if actual != expected {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected, actual)
|
||||
}
|
||||
|
||||
// Get security group by Name
|
||||
name, ok := mp.XPath("/MARKETPLACE/NAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get name")
|
||||
}
|
||||
//Change owner of Marketpkace
|
||||
err = market.Chown(1,1)
|
||||
|
||||
mp, err = NewMarketPlaceFromName(name)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
err = mp.Info()
|
||||
market.Info()
|
||||
|
||||
expected_usr := "1"
|
||||
expected_grp := "1"
|
||||
actual_usr, _ :=market.XMLResource.XPath("/MARKETPLACE/UID")
|
||||
actual_grp, _ :=market.XMLResource.XPath("/MARKETPLACE/GID")
|
||||
|
||||
if actual_usr != expected_usr {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected_usr, actual_usr)
|
||||
}
|
||||
|
||||
if actual_grp != expected_grp {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected_grp, actual_grp)
|
||||
}
|
||||
|
||||
rename := mkt_name + "-renamed"
|
||||
|
||||
//Rename Marketpkace
|
||||
err = market.Rename(rename)
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
idParse, err = GetID(t, mp, "MARKETPLACE")
|
||||
market.Info()
|
||||
|
||||
if idParse != mp.ID {
|
||||
t.Errorf("Marketplace ID does not match")
|
||||
actual, _ = market.XMLResource.XPath("/MARKETPLACE/NAME")
|
||||
|
||||
if actual != rename {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", rename, actual)
|
||||
}
|
||||
|
||||
// Change Owner to user call
|
||||
err = mp.Chown(-1, -1)
|
||||
//Delete Marketpkace
|
||||
err = market.Delete()
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
err = mp.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
// Get Marketplace Owner Name
|
||||
uname, ok := mp.XPath("/MARKETPLACE/UNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
// Get Marketplace owner group Name
|
||||
gname, ok := mp.XPath("/MARKETPLACE/GNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get group name")
|
||||
}
|
||||
|
||||
// Compare with caller username
|
||||
caller := strings.Split(client.token, ":")[0]
|
||||
if caller != uname {
|
||||
t.Error("Caller user and marketplace owner user mismatch")
|
||||
}
|
||||
|
||||
group, err := GetUserGroup(t, caller)
|
||||
if err != nil {
|
||||
t.Error("Cannot retreive caller group")
|
||||
}
|
||||
|
||||
// Compare with caller group
|
||||
if group != gname {
|
||||
t.Error("Caller group and security group owner group mismatch")
|
||||
}
|
||||
|
||||
// Change Owner to oneadmin call
|
||||
err = mp.Chown(0, 0)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
err = mp.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
// Get Marketplace Owner Name
|
||||
uname, ok = mp.XPath("/MARKETPLACE/UNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
// Get Marketplace Owner Name
|
||||
gname, ok = mp.XPath("/MARKETPLACE/GNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
if "oneadmin" != uname {
|
||||
t.Error("MarketPlace owner is not oneadmin")
|
||||
}
|
||||
|
||||
// Compare with caller group
|
||||
if "oneadmin" != gname {
|
||||
t.Error("MarketPlace owner group is not oneadmin")
|
||||
}
|
||||
|
||||
// Delete template
|
||||
err = mp.Delete()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
84
src/oca/go/src/goca/marketplaceapp_test.go
Normal file
84
src/oca/go/src/goca/marketplaceapp_test.go
Normal file
@ -0,0 +1,84 @@
|
||||
package goca
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"goca"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func TestMarketplaceApp(t *testing.T){
|
||||
var mkt_app_name string = "new_mkt_app"
|
||||
var mkt_app *goca.MarketPlaceApp
|
||||
var mkt_app_tmpl string
|
||||
var mkt_img_id uint
|
||||
var market_id uint
|
||||
var err error
|
||||
|
||||
mkt_app_tmpl = "NAME= \"" + mkt_app_name + "\"\n" +
|
||||
"TYPE=image\n"
|
||||
|
||||
//Create an image
|
||||
img_tmpl := "NAME = \"test_img_go" + "\"\n" +
|
||||
"PATH = /etc/hosts\n"
|
||||
|
||||
mkt_img_id, err = goca.CreateImage(img_tmpl, 1)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
mkt_app_tmpl += "ORIGIN_ID=" + strconv.Itoa(int(mkt_img_id)) + "\n"
|
||||
|
||||
//Create a marketplace
|
||||
mkt_tmpl := "NAME = \"mkt-app-test\"\n" +
|
||||
"MARKET_MAD = \"http\"\n" +
|
||||
"BASE_URL = \"http://url/\"\n" +
|
||||
"PUBLIC_DIR = \"/var/loca/market-http\"\n"
|
||||
|
||||
market_id, err = goca.CreateMarketPlace(mkt_tmpl)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
mkt_app_tmpl += "MARKETPLACE_ID=\"" + strconv.Itoa(int(market_id)) + "\"\n"
|
||||
|
||||
//Create MarketplaceApp
|
||||
app_id, err := goca.CreateMarketPlaceApp(mkt_app_tmpl, int(market_id))
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
mkt_app = goca.NewMarketPlaceApp(app_id)
|
||||
mkt_app.Info()
|
||||
|
||||
actual, _:= mkt_app.XMLResource.XPath("/MARKETPLACEAPP/NAME")
|
||||
|
||||
if actual != mkt_app_name {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", mkt_app_name, actual)
|
||||
}
|
||||
|
||||
//Delete MarketplaceApp
|
||||
err = mkt_app.Delete()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
//delete image
|
||||
img := goca.NewImage(mkt_img_id)
|
||||
err = img.Delete()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
//delete marketplace
|
||||
market := goca.NewMarketPlace(market_id)
|
||||
err = market.Delete()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
}
|
@ -1,149 +1,134 @@
|
||||
package goca
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"strings"
|
||||
"testing"
|
||||
"goca"
|
||||
)
|
||||
|
||||
var sgTpl = `
|
||||
NAME = "ssh-test"
|
||||
RULE = [
|
||||
PROTOCOL = "TCP",
|
||||
RANGE = 22,
|
||||
RULE_TYPE = "inbound"
|
||||
]
|
||||
RULE = [
|
||||
PROTOCOL = "TCP",
|
||||
RULE_TYPE = "outbound"
|
||||
]
|
||||
`
|
||||
func TestSGAllocate(t *testing.T){
|
||||
var sg_name string = "new_test_sg"
|
||||
var sg *goca.SecurityGroup
|
||||
var sg_template string = "NAME = \"" + sg_name + "\"\n" +
|
||||
"DESCRIPTION = \"test security group\"\n"+
|
||||
"ATT1 = \"VAL1\"\n" +
|
||||
"ATT2 = \"VAL2\""
|
||||
|
||||
//Create SG
|
||||
sg_id, err := goca.CreateSecurityGroup(sg_template)
|
||||
|
||||
// Helper to create a Security Group
|
||||
func createSecurityGroup(t *testing.T) *SecurityGroup {
|
||||
id, err := CreateSecurityGroup(sgTpl)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
// Get Security Group by ID
|
||||
secgroup := NewSecurityGroup(id)
|
||||
sg = goca.NewSecurityGroup(sg_id)
|
||||
sg.Info()
|
||||
|
||||
actual, _:= sg.XMLResource.XPath("/SECURITY_GROUP/NAME")
|
||||
|
||||
if actual != sg_name {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", sg_name, actual)
|
||||
}
|
||||
|
||||
tmpl := "ATT3 = \"VAL3\""
|
||||
|
||||
//Update SG
|
||||
err = sg.Update(tmpl, 1)
|
||||
|
||||
err = secgroup.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
return secgroup
|
||||
}
|
||||
sg.Info()
|
||||
|
||||
func TestSecurityGroup(t *testing.T) {
|
||||
secgroup := createSecurityGroup(t)
|
||||
actual_1, _ := sg.XMLResource.XPath("/SECURITY_GROUP/TEMPLATE/ATT1")
|
||||
actual_3, _ := sg.XMLResource.XPath("/SECURITY_GROUP/TEMPLATE/ATT3")
|
||||
|
||||
if actual_1 != "VAL1" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "VAL1", actual_1)
|
||||
}
|
||||
|
||||
if actual_3 != "VAL3" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "VAL3", actual_3)
|
||||
}
|
||||
|
||||
clone_name := sg_name + "-cloned"
|
||||
|
||||
//Clone SG
|
||||
clone_id, err := sg.Clone(clone_name)
|
||||
|
||||
idParse, err := GetID(t, secgroup, "SECURITY_GROUP")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
if idParse != secgroup.ID {
|
||||
t.Errorf("Security Group ID does not match")
|
||||
clone := goca.NewSecurityGroup(clone_id)
|
||||
clone.Info()
|
||||
|
||||
actual, _ = clone.XMLResource.XPath("/SECURITY_GROUP/NAME")
|
||||
|
||||
if actual != clone_name {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", clone_name, actual)
|
||||
}
|
||||
|
||||
// Get security group by Name
|
||||
name, ok := secgroup.XPath("/SECURITY_GROUP/NAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get name")
|
||||
}
|
||||
clone.Delete()
|
||||
|
||||
//Change permission of SG
|
||||
err = sg.Chmod(1,1,1,1,1,1,1,1,1)
|
||||
|
||||
secgroup, err = NewSecurityGroupFromName(name)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
err = secgroup.Info()
|
||||
sg.Info()
|
||||
|
||||
expected := "111111111"
|
||||
actual, _ = sg.XMLResource.XPath("/SECURITY_GROUP/PERMISSIONS")
|
||||
|
||||
if actual != expected {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected, actual)
|
||||
}
|
||||
|
||||
//Change owner of SG
|
||||
err = sg.Chown(1,1)
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
idParse, err = GetID(t, secgroup, "SECURITY_GROUP")
|
||||
sg.Info()
|
||||
|
||||
if idParse != secgroup.ID {
|
||||
t.Errorf("Security Group ID does not match")
|
||||
expected_usr := "1"
|
||||
expected_grp := "1"
|
||||
actual_usr, _ := sg.XMLResource.XPath("/SECURITY_GROUP/UID")
|
||||
actual_grp, _ := sg.XMLResource.XPath("/SECURITY_GROUP/GID")
|
||||
|
||||
if actual_usr != expected_usr {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected_usr, actual_usr)
|
||||
}
|
||||
|
||||
// Change Owner to user call
|
||||
err = secgroup.Chown(-1, -1)
|
||||
if actual_grp != expected_grp {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected_grp, actual_grp)
|
||||
}
|
||||
|
||||
//Rename SG
|
||||
rename := sg_name + "-renamed"
|
||||
err = sg.Rename(rename)
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
err = secgroup.Info()
|
||||
|
||||
sg.Info()
|
||||
|
||||
actual, _ = sg.XMLResource.XPath("/SECURITY_GROUP/NAME")
|
||||
|
||||
if actual != rename {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", rename, actual)
|
||||
}
|
||||
|
||||
//Delete SG
|
||||
err = sg.Delete()
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
// Get Security Group Owner Name
|
||||
uname, ok := secgroup.XPath("/SECURITY_GROUP/UNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
// Get Security Group owner group Name
|
||||
gname, ok := secgroup.XPath("/SECURITY_GROUP/GNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get group name")
|
||||
}
|
||||
|
||||
// Compare with caller username
|
||||
caller := strings.Split(client.token, ":")[0]
|
||||
if caller != uname {
|
||||
t.Error("Caller user and security group owner user mismatch")
|
||||
}
|
||||
|
||||
group, err := GetUserGroup(t, caller)
|
||||
if err != nil {
|
||||
t.Error("Cannot retreive caller group")
|
||||
}
|
||||
|
||||
// Compare with caller group
|
||||
if group != gname {
|
||||
t.Error("Caller group and security group owner group mismatch")
|
||||
}
|
||||
|
||||
// Change Owner to oneadmin call
|
||||
err = secgroup.Chown(0, 0)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
err = secgroup.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
// Get Security Group Owner Name
|
||||
uname, ok = secgroup.XPath("/SECURITY_GROUP/UNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
// Get Security Group Owner Name
|
||||
gname, ok = secgroup.XPath("/SECURITY_GROUP/GNAME")
|
||||
if !ok {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
if "oneadmin" != uname {
|
||||
t.Error("Security group owner is not oneadmin")
|
||||
}
|
||||
|
||||
// Compare with caller group
|
||||
if "oneadmin" != gname {
|
||||
t.Error("Security group owner group is not oneadmin")
|
||||
}
|
||||
|
||||
// Delete template
|
||||
err = secgroup.Delete()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
}
|
||||
|
@ -106,11 +106,11 @@ func TestVirtualNetwork(t *testing.T) {
|
||||
}
|
||||
|
||||
// Change Owner to oneadmin call
|
||||
err = vnet.Chown(0, 0)
|
||||
err = vnet.Chown(1, 1)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
|
||||
err = vnet.Info()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@ -128,12 +128,12 @@ func TestVirtualNetwork(t *testing.T) {
|
||||
t.Errorf("Could not get user name")
|
||||
}
|
||||
|
||||
if "oneadmin" != uname {
|
||||
if "serveradmin" != uname {
|
||||
t.Error("Virtual network owner is not oenadmin")
|
||||
}
|
||||
|
||||
// Compare with caller group
|
||||
if "oneadmin" != gname {
|
||||
if "users" != gname {
|
||||
t.Error("Virtual network owner group is not oneadmin")
|
||||
}
|
||||
|
||||
|
203
src/oca/go/src/goca/virtualrouter_test.go
Normal file
203
src/oca/go/src/goca/virtualrouter_test.go
Normal file
@ -0,0 +1,203 @@
|
||||
package goca
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"goca"
|
||||
)
|
||||
|
||||
|
||||
|
||||
func TestVirtualRouter(t *testing.T){
|
||||
var vr_name string = "new_vr"
|
||||
var vr *goca.VirtualRouter
|
||||
var vr_template string = "NAME = \"" + vr_name + "\"\n" +
|
||||
"VROUTER = YES\n" +
|
||||
"ATT1 = \"VAL1\"\n" +
|
||||
"ATT2 = \"VAL2\""
|
||||
|
||||
//Create VirtualRouter
|
||||
vr_id, err := goca.CreateVirtualRouter(vr_template)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr = goca.NewVirtualRouter(vr_id)
|
||||
vr.Info()
|
||||
|
||||
actual, _:= vr.XMLResource.XPath("/VROUTER/NAME")
|
||||
|
||||
if actual != vr_name {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", vr_name, actual)
|
||||
}
|
||||
|
||||
tmpl := "ATT3 = \"VAL3\""
|
||||
|
||||
//Update VirtualRouter
|
||||
err = vr.Update(tmpl, 1)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
actual_1, _ := vr.XMLResource.XPath("/VROUTER/TEMPLATE/ATT1")
|
||||
actual_3, _ := vr.XMLResource.XPath("/VROUTER/TEMPLATE/ATT3")
|
||||
|
||||
if actual_1 != "VAL1" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "VAL1", actual_1)
|
||||
}
|
||||
|
||||
if actual_3 != "VAL3" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "VAL3", actual_3)
|
||||
}
|
||||
|
||||
//Change permissions of VirtualRouter
|
||||
err = vr.Chmod(1,1,1,1,1,1,1,1,1)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
expected := "111111111"
|
||||
actual, _ = vr.XMLResource.XPath("/VROUTER/PERMISSIONS")
|
||||
|
||||
if actual != expected {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected, actual)
|
||||
}
|
||||
|
||||
//Change owner of VirtualRouter
|
||||
err = vr.Chown(1,1)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
expected_usr := "1"
|
||||
expected_grp := "1"
|
||||
actual_usr, _ := vr.XMLResource.XPath("/VROUTER/UID")
|
||||
actual_grp, _ := vr.XMLResource.XPath("/VROUTER/GID")
|
||||
|
||||
if actual_usr != expected_usr {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected_usr, actual_usr)
|
||||
}
|
||||
|
||||
if actual_grp != expected_grp {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", expected_grp, actual_grp)
|
||||
}
|
||||
|
||||
rename := vr_name + "-renamed"
|
||||
|
||||
//Rename VirtualRouter
|
||||
err = vr.Rename(rename)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
actual, _ = vr.XMLResource.XPath("/VROUTER/NAME")
|
||||
|
||||
if actual != rename {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", rename, actual)
|
||||
}
|
||||
|
||||
tmpl = "NAME = vrtemplate\n"+
|
||||
"CPU = 0.1\n"+
|
||||
"VROUTER = YES\n"+
|
||||
"MEMORY = 64\n"
|
||||
|
||||
tmpl_id, err := goca.CreateTemplate(tmpl)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
//Instantiate VirtualRouter
|
||||
vr.Instantiate(1, int(tmpl_id), "vr_test_go", false, "")
|
||||
|
||||
vm, err := goca.NewVMFromName("vr_test_go")
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vm.TerminateHard()
|
||||
template := goca.NewTemplate(tmpl_id)
|
||||
|
||||
template.Delete()
|
||||
|
||||
vn_tmpl := "NAME = \"go-net\"\n"+
|
||||
"BRIDGE = vbr0\n" +
|
||||
"VN_MAD = dummy\n"
|
||||
|
||||
vnet_id, _ := goca.CreateVirtualNetwork(vn_tmpl, 0)
|
||||
|
||||
nic_tmpl := "NIC = [ NETWORK=\"go-net\" ]"
|
||||
|
||||
//Attach nic to VirtualRouter
|
||||
err = vr.AttachNic(nic_tmpl)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
actual, _ = vr.XMLResource.XPath("/VROUTER/TEMPLATE/NIC/NETWORK")
|
||||
|
||||
if actual != "go-net" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "go-net", actual)
|
||||
}
|
||||
|
||||
vnet := goca.NewVirtualNetwork(vnet_id)
|
||||
vnet.Delete()
|
||||
|
||||
//Detach nic from VirtualRouter
|
||||
err = vr.DetachNic(0)
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
//LockAll for VirtualRouter
|
||||
err = vr.LockAll()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
actual, _ = vr.XMLResource.XPath("/VROUTER/LOCK/LOCKED")
|
||||
if actual != "4" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "4", actual)
|
||||
}
|
||||
|
||||
//Unlock VirtualRouter
|
||||
err = vr.Unlock()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
|
||||
vr.Info()
|
||||
|
||||
actual, _= vr.XMLResource.XPath("/VROUTER/LOCK/LOCKED")
|
||||
if actual != "" {
|
||||
t.Errorf("Test failed, expected: '%s', got: '%s'", "", actual)
|
||||
}
|
||||
|
||||
//Delete VirtualRouter
|
||||
err = vr.Delete()
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Test failed:\n" + err.Error())
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user