Skip to content

Commit 9dbc8ef

Browse files
committed
Update user to OpenNebula 4.10 specification
1 parent 0b62b4d commit 9dbc8ef

3 files changed

Lines changed: 78 additions & 26 deletions

File tree

oca/tests/fixtures/user.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
<USER>
22
<ID>3</ID>
3-
<GID>1</GID>
4-
<GNAME>users</GNAME>
3+
<GID>0</GID>
4+
<GROUPS>
5+
<ID>0</ID>
6+
</GROUPS>
7+
<GNAME>oneadmin</GNAME>
58
<NAME>dan</NAME>
6-
<PASSWORD>d22a12348334v33f71ba846572d25250d40701e72</PASSWORD>
7-
<ENABLED>0</ENABLED>
9+
<PASSWORD>fe05bcdcdc4928012781a5f1a2a77cbb5398e106</PASSWORD>
10+
<AUTH_DRIVER>core</AUTH_DRIVER>
11+
<ENABLED>1</ENABLED>
12+
<LOGIN_TOKEN/>
13+
<TEMPLATE>
14+
<TOKEN_PASSWORD><![CDATA[97fc29a2162405277a5d2a0ef33acfcbd4f78e4e]]></TOKEN_PASSWORD>
15+
</TEMPLATE>
816
</USER>

oca/tests/fixtures/userpool.xml

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,54 @@
11
<USER_POOL>
22
<USER>
33
<ID>0</ID>
4-
<GID>1</GID>
5-
<GNAME>users</GNAME>
4+
<GID>0</GID>
5+
<GROUPS>
6+
<ID>0</ID>
7+
</GROUPS>
8+
<GNAME>oneadmin</GNAME>
69
<NAME>oneadmin</NAME>
7-
<PASSWORD>f13a1234833436f71ab846572d251c0d40391e72</PASSWORD>
10+
<PASSWORD>fe05bcdcdc4928012781a5f1a2a77cbb5398e106</PASSWORD>
11+
<AUTH_DRIVER>core</AUTH_DRIVER>
812
<ENABLED>1</ENABLED>
13+
<LOGIN_TOKEN/>
14+
<TEMPLATE>
15+
<TOKEN_PASSWORD><![CDATA[97fc29a2162405277a5d2a0ef33acfcbd4f78e4e]]></TOKEN_PASSWORD>
16+
</TEMPLATE>
917
</USER>
18+
<QUOTAS>
19+
<ID>0</ID>
20+
<DATASTORE_QUOTA/>
21+
<NETWORK_QUOTA/>
22+
<VM_QUOTA/>
23+
<IMAGE_QUOTA/>
24+
</QUOTAS>
1025
<USER>
1126
<ID>1</ID>
12-
<GID>1</GID>
13-
<GNAME>users</GNAME>
14-
<NAME>dan</NAME>
15-
<PASSWORD>d22a12348334v33f71ba846572d25250d40701e72</PASSWORD>
16-
<ENABLED>0</ENABLED>
27+
<GID>0</GID>
28+
<GROUPS>
29+
<ID>0</ID>
30+
</GROUPS>
31+
<GNAME>oneadmin</GNAME>
32+
<NAME>serveradmin</NAME>
33+
<PASSWORD>f9f3c8912fc6cc53012d743ded329c4f5fb035a5</PASSWORD>
34+
<AUTH_DRIVER>server_cipher</AUTH_DRIVER>
35+
<ENABLED>1</ENABLED>
36+
<LOGIN_TOKEN/>
37+
<TEMPLATE>
38+
<TOKEN_PASSWORD><![CDATA[d53363ad24f9f5b44a95d028c78f1a9d3320fdee]]></TOKEN_PASSWORD>
39+
</TEMPLATE>
1740
</USER>
41+
<QUOTAS>
42+
<ID>1</ID>
43+
<DATASTORE_QUOTA/>
44+
<NETWORK_QUOTA/>
45+
<VM_QUOTA/>
46+
<IMAGE_QUOTA/>
47+
</QUOTAS>
48+
<DEFAULT_USER_QUOTAS>
49+
<DATASTORE_QUOTA/>
50+
<NETWORK_QUOTA/>
51+
<VM_QUOTA/>
52+
<IMAGE_QUOTA/>
53+
</DEFAULT_USER_QUOTAS>
1854
</USER_POOL>

oca/user.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
11
# -*- coding: UTF-8 -*-
2-
from pool import Pool, PoolElement
2+
from pool import Pool, PoolElement, Template, extractString
33

44

55
class User(PoolElement):
66
METHODS = {
7-
'info' : 'user.info',
8-
'allocate' : 'user.allocate',
9-
'delete' : 'user.delete',
10-
'passwd' : 'user.passwd',
11-
'chgrp' : 'user.chgrp'
7+
'info': 'user.info',
8+
'allocate': 'user.allocate',
9+
'delete': 'user.delete',
10+
'passwd': 'user.passwd',
11+
'chgrp': 'user.chgrp'
1212
}
1313

1414
XML_TYPES = {
15-
'id' : int,
16-
'gid' : int,
17-
'name' : str,
18-
'gname' : str,
19-
'password' : str,
20-
'enabled' : bool,
15+
'id': int,
16+
'gid': int,
17+
'group_ids': ['GROUPS', lambda group_ids: map(lambda group_id: int(group_id.text), group_ids)],
18+
'gname': extractString,
19+
'name': extractString,
20+
'password': extractString,
21+
'auth_driver': extractString,
22+
'enabled': bool,
23+
'template': ['TEMPLATE', Template],
24+
#'datastore_quota': handled separately # see http://dev.opennebula.org/issues/3849
25+
#'network_quota': handled separately # see http://dev.opennebula.org/issues/3849
26+
#'vm_quota': handled separately # see http://dev.opennebula.org/issues/3849
27+
#'image_quota' # see http://dev.opennebula.org/issues/3849
28+
#'default_user_quotas' # see http://dev.opennebula.org/issues/3849
2129
}
2230

2331
ELEMENT_NAME = 'USER'
@@ -64,11 +72,11 @@ def __repr__(self):
6472

6573
class UserPool(Pool):
6674
METHODS = {
67-
'info' : 'userpool.info',
75+
'info': 'userpool.info',
6876
}
6977

7078
def __init__(self, client):
71-
super(UserPool, self).__init__('USER_POOL', 'POOL', client)
79+
super(UserPool, self).__init__('USER_POOL', 'USER', client)
7280

7381
def _factory(self, xml):
7482
u = User(xml, self.client)

0 commit comments

Comments
 (0)