mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-23 22:50:09 +03:00
Feature #407: Fix tests
This commit is contained in:
parent
7285fbd5c0
commit
3db7376b5e
@ -27,15 +27,15 @@ const string names[] = {"cluster_a", "Second cluster"};
|
||||
|
||||
const string xmls[] =
|
||||
{
|
||||
"<CLUSTER><ID>1</ID><NAME>cluster_a</NAME></CLUSTER>",
|
||||
"<CLUSTER><ID>2</ID><NAME>Second cluster</NAME></CLUSTER>"
|
||||
"<CLUSTER><ID>1</ID><NAME>cluster_a</NAME><HOSTS></HOSTS></CLUSTER>",
|
||||
"<CLUSTER><ID>2</ID><NAME>Second cluster</NAME><HOSTS></HOSTS></CLUSTER>"
|
||||
};
|
||||
|
||||
const string cluster_default =
|
||||
"<CLUSTER><ID>0</ID><NAME>default</NAME></CLUSTER>";
|
||||
"<CLUSTER><ID>0</ID><NAME>default</NAME><HOSTS></HOSTS></CLUSTER>";
|
||||
|
||||
const string cluster_xml_dump =
|
||||
"<CLUSTER_POOL><CLUSTER><ID>0</ID><NAME>default</NAME></CLUSTER><CLUSTER><ID>1</ID><NAME>cluster_a</NAME></CLUSTER><CLUSTER><ID>3</ID><NAME>cluster_c</NAME></CLUSTER><CLUSTER><ID>4</ID><NAME>cluster_d</NAME></CLUSTER></CLUSTER_POOL>";
|
||||
"<CLUSTER_POOL><CLUSTER><ID>0</ID><NAME>default</NAME><HOSTS></HOSTS></CLUSTER><CLUSTER><ID>1</ID><NAME>cluster_a</NAME><HOSTS></HOSTS></CLUSTER><CLUSTER><ID>3</ID><NAME>cluster_c</NAME><HOSTS></HOSTS></CLUSTER><CLUSTER><ID>4</ID><NAME>cluster_d</NAME><HOSTS></HOSTS></CLUSTER></CLUSTER_POOL>";
|
||||
|
||||
const string host_0_cluster =
|
||||
"<HOST><ID>0</ID><NAME>Host one</NAME><STATE>0</STATE><IM_MAD>im_mad</IM_MAD><VM_MAD>vmm_mad</VM_MAD><TM_MAD>tm_mad</TM_MAD><LAST_MON_TIME>0</LAST_MON_TIME><CID>1</CID><HOST_SHARE><DISK_USAGE>0</DISK_USAGE><MEM_USAGE>0</MEM_USAGE><CPU_USAGE>0</CPU_USAGE><MAX_DISK>0</MAX_DISK><MAX_MEM>0</MAX_MEM><MAX_CPU>0</MAX_CPU><FREE_DISK>0</FREE_DISK><FREE_MEM>0</FREE_MEM><FREE_CPU>0</FREE_CPU><USED_DISK>0</USED_DISK><USED_MEM>0</USED_MEM><USED_CPU>0</USED_CPU><RUNNING_VMS>0</RUNNING_VMS></HOST_SHARE><TEMPLATE></TEMPLATE></HOST>";
|
||||
@ -83,8 +83,6 @@ class ClusterPoolTest : public PoolTest
|
||||
CPPUNIT_TEST (name_pool);
|
||||
|
||||
CPPUNIT_TEST (duplicates);
|
||||
CPPUNIT_TEST (set_cluster);
|
||||
CPPUNIT_TEST (remove_cluster);
|
||||
CPPUNIT_TEST (delete_cluster);
|
||||
CPPUNIT_TEST (dump);
|
||||
|
||||
@ -260,72 +258,12 @@ public:
|
||||
|
||||
/* ********************************************************************* */
|
||||
|
||||
void set_cluster()
|
||||
{
|
||||
Host* host;
|
||||
int rc;
|
||||
string xml_str, err;
|
||||
|
||||
init_hp();
|
||||
|
||||
host = hpool->get(0, false);
|
||||
CPPUNIT_ASSERT(host != 0);
|
||||
|
||||
rc = host->set_cluster(1);
|
||||
CPPUNIT_ASSERT( rc == 0 );
|
||||
|
||||
hpool->update(host);
|
||||
|
||||
host->to_xml(xml_str);
|
||||
CPPUNIT_ASSERT( xml_str == host_0_cluster);
|
||||
}
|
||||
|
||||
/* ********************************************************************* */
|
||||
|
||||
void remove_cluster()
|
||||
{
|
||||
Host* host;
|
||||
|
||||
int rc;
|
||||
string xml_str;
|
||||
|
||||
init_hp();
|
||||
|
||||
host = hpool->get(0, false);
|
||||
CPPUNIT_ASSERT(host != 0);
|
||||
|
||||
// Set cluster
|
||||
rc = host->set_cluster(1);
|
||||
CPPUNIT_ASSERT( rc == 0 );
|
||||
|
||||
hpool->update(host);
|
||||
|
||||
host->to_xml(xml_str);
|
||||
CPPUNIT_ASSERT( xml_str == host_0_cluster);
|
||||
|
||||
// Remove from the cluster
|
||||
rc = cpool->set_default_cluster(host);
|
||||
CPPUNIT_ASSERT( rc == 0 );
|
||||
|
||||
hpool->update(host);
|
||||
|
||||
// The host should have been moved to the default cluster
|
||||
|
||||
host = hpool->get(0, false);
|
||||
CPPUNIT_ASSERT(host != 0);
|
||||
|
||||
host->to_xml(xml_str);
|
||||
CPPUNIT_ASSERT( xml_str == host_0_default);
|
||||
}
|
||||
|
||||
/* ********************************************************************* */
|
||||
|
||||
void delete_cluster()
|
||||
{
|
||||
Host * host;
|
||||
Cluster * cluster;
|
||||
Cluster * cluster, * cluster_old;
|
||||
|
||||
int rc, oid;
|
||||
int rc, oid, host_gid;
|
||||
string xml_str;
|
||||
|
||||
init_hp();
|
||||
@ -338,11 +276,28 @@ public:
|
||||
|
||||
cluster = cpool->get(1, false);
|
||||
|
||||
// Get current host cluster
|
||||
host_gid = host->get_gid();
|
||||
|
||||
// Set cluster
|
||||
rc = host->set_cluster(cluster->get_oid());
|
||||
rc = host->set_gid(cluster->get_oid());
|
||||
CPPUNIT_ASSERT( rc == 0 );
|
||||
|
||||
// Add host ID to cluster
|
||||
rc = static_cast<ObjectCollection*>(cluster)->add_collection_id(host);
|
||||
CPPUNIT_ASSERT( rc == 0 );
|
||||
|
||||
// Update the DB
|
||||
hpool->update(host);
|
||||
cpool->update(cluster);
|
||||
|
||||
// Now get the old cluster, and remove the Host Id from it
|
||||
cluster_old = cpool->get(host_gid, false);
|
||||
CPPUNIT_ASSERT(cluster_old != 0);
|
||||
|
||||
cluster_old->del_collection_id(host);
|
||||
cpool->update(cluster_old);
|
||||
|
||||
|
||||
host->to_xml(xml_str);
|
||||
CPPUNIT_ASSERT( xml_str == host_0_cluster);
|
||||
|
@ -28,12 +28,13 @@ const string names[] = {"First name", "Second name"};
|
||||
|
||||
const string xmls[] =
|
||||
{
|
||||
"<GROUP><ID>100</ID><UID>0</UID><NAME>First name</NAME></GROUP>",
|
||||
"<GROUP><ID>101</ID><UID>1</UID><NAME>Second name</NAME></GROUP>"
|
||||
"<GROUP><ID>100</ID><UID>0</UID><NAME>First name</NAME><USERS></USERS></GROUP>",
|
||||
"<GROUP><ID>101</ID><UID>1</UID><NAME>Second name</NAME><USERS></USERS></GROUP>"
|
||||
};
|
||||
|
||||
const string group_xml_dump =
|
||||
"<GROUP_POOL><GROUP><ID>0</ID><UID>0</UID><NAME>oneadmin</NAME></GROUP><GROUP><ID>1</ID><UID>0</UID><NAME>users</NAME></GROUP><GROUP><ID>100</ID><UID>5</UID><NAME>group_a</NAME></GROUP><GROUP><ID>102</ID><UID>5</UID><NAME>group_c</NAME></GROUP><GROUP><ID>103</ID><UID>5</UID><NAME>group_d</NAME></GROUP></GROUP_POOL>";
|
||||
"<GROUP_POOL><GROUP><ID>0</ID><UID>0</UID><NAME>oneadmin</NAME><USERS></USERS></GROUP><GROUP><ID>1</ID><UID>0</UID><NAME>users</NAME><USERS></USERS></GROUP><GROUP><ID>100</ID><UID>5</UID><NAME>group_a</NAME><USERS></USERS></GROUP><GROUP><ID>102</ID><UID>5</UID><NAME>group_c</NAME><USERS></USERS></GROUP><GROUP><ID>103</ID><UID>5</UID><NAME>group_d</NAME><USERS></USERS></GROUP></GROUP_POOL>";
|
||||
|
||||
/* ************************************************************************* */
|
||||
/* ************************************************************************* */
|
||||
|
||||
|
@ -29,6 +29,7 @@ public:
|
||||
need_vm_pool = true;
|
||||
need_host_pool = true;
|
||||
need_user_pool = true;
|
||||
need_group_pool = true;
|
||||
need_vnet_pool = true;
|
||||
need_image_pool= true;
|
||||
|
||||
|
@ -29,6 +29,7 @@ public:
|
||||
need_vm_pool = true;
|
||||
need_host_pool = true;
|
||||
need_user_pool = true;
|
||||
need_group_pool = true;
|
||||
need_vnet_pool = true;
|
||||
need_image_pool= true;
|
||||
|
||||
|
@ -209,6 +209,11 @@ void Nebula::start()
|
||||
vnpool = tester->create_vnpool(db,mac_prefix,size);
|
||||
}
|
||||
|
||||
if (tester->need_group_pool)
|
||||
{
|
||||
gpool = tester->create_gpool(db);
|
||||
}
|
||||
|
||||
if (tester->need_user_pool)
|
||||
{
|
||||
upool = tester->create_upool(db);
|
||||
@ -230,11 +235,6 @@ void Nebula::start()
|
||||
{
|
||||
tpool = tester->create_tpool(db);
|
||||
}
|
||||
|
||||
if (tester->need_group_pool)
|
||||
{
|
||||
gpool = tester->create_gpool(db);
|
||||
}
|
||||
}
|
||||
catch (exception&)
|
||||
{
|
||||
|
@ -17,16 +17,40 @@
|
||||
Import('env')
|
||||
|
||||
env.Prepend(LIBS=[
|
||||
'nebula_um',
|
||||
'nebula_group',
|
||||
'nebula_cluster',
|
||||
'nebula_host',
|
||||
'nebula_pool',
|
||||
'nebula_template',
|
||||
'nebula_xml',
|
||||
'nebula_log',
|
||||
'nebula_common',
|
||||
'nebula_sql',
|
||||
|
||||
### TODO: delete not needed
|
||||
'nebula_core_test',
|
||||
'nebula_host',
|
||||
'nebula_cluster',
|
||||
'nebula_xml',
|
||||
'nebula_vmm',
|
||||
'nebula_im',
|
||||
'nebula_rm',
|
||||
'nebula_tm',
|
||||
'nebula_um',
|
||||
'nebula_mad',
|
||||
'nebula_template',
|
||||
'nebula_vm',
|
||||
'nebula_vmtemplate',
|
||||
'nebula_group',
|
||||
'nebula_vnm',
|
||||
'nebula_image',
|
||||
'nebula_pool',
|
||||
'nebula_hm',
|
||||
'nebula_authm',
|
||||
'nebula_common',
|
||||
'nebula_mad',
|
||||
'nebula_core',
|
||||
'nebula_lcm',
|
||||
'nebula_dm',
|
||||
'nebula_sql',
|
||||
'nebula_log',
|
||||
'crypto'
|
||||
])
|
||||
|
||||
|
@ -31,26 +31,24 @@ const string usernames[] = { "A user", "B user", "C user", "D user", "E user" };
|
||||
const string passwords[] = { "A pass", "B pass", "C pass", "D pass", "E pass" };
|
||||
|
||||
const string dump_result =
|
||||
"<USER_POOL><USER><ID>0</ID><GID>0</GID><NAME>one_user_test</NAME>"
|
||||
"<PASSWORD>5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8</PASSWORD>"
|
||||
"<ENABLED>1</ENABLED></USER><USER><ID>1</ID><GID>0</GID><NAME>a</NAME>"
|
||||
"<PASSWORD>p</PASSWORD><ENABLED>1</ENABLED></USER><USER>"
|
||||
"<ID>2</ID><GID>0</GID><NAME>a name</NAME><PASSWORD>pass</PASSWORD>"
|
||||
"<ENABLED>1</ENABLED></USER><USER><ID>3</ID><GID>0</GID><NAME>a_name</NAME>"
|
||||
"<PASSWORD>password</PASSWORD><ENABLED>1</ENABLED></USER><USER>"
|
||||
"<ID>4</ID><GID>0</GID><NAME>another name</NAME><PASSWORD>secret</PASSWORD>"
|
||||
"<ENABLED>1</ENABLED></USER><USER><ID>5</ID><GID>0</GID><NAME>user</NAME>"
|
||||
"<PASSWORD>1234</PASSWORD><ENABLED>1</ENABLED></USER>"
|
||||
"</USER_POOL>";
|
||||
"<USER_POOL><USER><ID>0</ID><GID>0</GID><NAME>one_user_test</NAME><PASSWORD>5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>1</ID><GID>0</GID><NAME>a</NAME><PASSWORD>p</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>2</ID><GID>0</GID><NAME>a name</NAME><PASSWORD>pass</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>3</ID><GID>0</GID><NAME>a_name</NAME><PASSWORD>password</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>4</ID><GID>0</GID><NAME>another name</NAME><PASSWORD>secret</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>5</ID><GID>0</GID><NAME>user</NAME><PASSWORD>1234</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER></USER_POOL>";
|
||||
|
||||
const string dump_where_result =
|
||||
"<USER_POOL><USER><ID>1</ID><GID>0</GID><NAME>a</NAME>"
|
||||
"<PASSWORD>p</PASSWORD><ENABLED>1</ENABLED></USER><USER>"
|
||||
"<ID>2</ID><GID>0</GID><NAME>a name</NAME><PASSWORD>pass</PASSWORD>"
|
||||
"<ENABLED>1</ENABLED></USER><USER><ID>3</ID><GID>0</GID><NAME>a_name</NAME>"
|
||||
"<PASSWORD>password</PASSWORD><ENABLED>1</ENABLED></USER><USER>"
|
||||
"<ID>4</ID><GID>0</GID><NAME>another name</NAME><PASSWORD>secret</PASSWORD>"
|
||||
"<ENABLED>1</ENABLED></USER></USER_POOL>";
|
||||
"<USER_POOL><USER><ID>1</ID><GID>0</GID><NAME>a</NAME><PASSWORD>p</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>2</ID><GID>0</GID><NAME>a name</NAME><PASSWORD>pass</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>3</ID><GID>0</GID><NAME>a_name</NAME><PASSWORD>password</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER><USER><ID>4</ID><GID>0</GID><NAME>another name</NAME><PASSWORD>secret</PASSWORD><ENABLED>1</ENABLED><GROUPS><ID>0</ID></GROUPS></USER></USER_POOL>";
|
||||
|
||||
#include "NebulaTest.h"
|
||||
|
||||
class NebulaTestUser: public NebulaTest
|
||||
{
|
||||
public:
|
||||
NebulaTestUser():NebulaTest()
|
||||
{
|
||||
NebulaTest::the_tester = this;
|
||||
|
||||
need_group_pool = true;
|
||||
need_user_pool = true;
|
||||
}
|
||||
};
|
||||
|
||||
class UserPoolTest : public PoolTest
|
||||
{
|
||||
@ -78,14 +76,20 @@ class UserPoolTest : public PoolTest
|
||||
|
||||
protected:
|
||||
|
||||
NebulaTestUser * tester;
|
||||
UserPool * upool;
|
||||
GroupPool * gpool;
|
||||
|
||||
|
||||
void bootstrap(SqlDB* db)
|
||||
{
|
||||
UserPool::bootstrap(db);
|
||||
// setUp overwritten
|
||||
};
|
||||
|
||||
PoolSQL* create_pool(SqlDB* db)
|
||||
{
|
||||
return new UserPool(db);
|
||||
// setUp overwritten
|
||||
return upool;
|
||||
};
|
||||
|
||||
int allocate(int index)
|
||||
@ -112,6 +116,28 @@ public:
|
||||
|
||||
~UserPoolTest(){xmlCleanupParser();};
|
||||
|
||||
void setUp()
|
||||
{
|
||||
create_db();
|
||||
|
||||
tester = new NebulaTestUser();
|
||||
|
||||
Nebula& neb = Nebula::instance();
|
||||
neb.start();
|
||||
|
||||
upool = neb.get_upool();
|
||||
gpool = neb.get_gpool();
|
||||
|
||||
pool = upool;
|
||||
};
|
||||
|
||||
void tearDown()
|
||||
{
|
||||
delete_db();
|
||||
|
||||
delete tester;
|
||||
};
|
||||
|
||||
/* ********************************************************************* */
|
||||
/* ********************************************************************* */
|
||||
|
||||
@ -288,13 +314,13 @@ public:
|
||||
ostringstream oss;
|
||||
((UserPool*)pool)->dump(oss, "");
|
||||
|
||||
|
||||
/*
|
||||
if( oss.str() != dump_result )
|
||||
{
|
||||
cout << endl << oss.str() << endl << "========"
|
||||
<< endl << dump_result << endl << "--------";
|
||||
}
|
||||
//
|
||||
//*/
|
||||
|
||||
CPPUNIT_ASSERT( oss.str() == dump_result );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user