[Kimchi-devel] [PATCH 2/5] Add API to list system users and groups
Rodrigo Trujillo
rodrigo.trujillo at linux.vnet.ibm.com
Tue Apr 22 17:00:11 UTC 2014
Reviewed-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
On 04/17/2014 06:04 PM, Aline Manera wrote:
> From: Aline Manera <alinefm at br.ibm.com>
>
> Signed-off-by: Aline Manera <alinefm at br.ibm.com>
> ---
> src/kimchi/control/host.py | 14 +++++++++++++-
> src/kimchi/mockmodel.py | 6 ++++++
> src/kimchi/model/host.py | 18 ++++++++++++++++++
> 3 files changed, 37 insertions(+), 1 deletion(-)
>
> diff --git a/src/kimchi/control/host.py b/src/kimchi/control/host.py
> index a0818c7..003c4b9 100644
> --- a/src/kimchi/control/host.py
> +++ b/src/kimchi/control/host.py
> @@ -19,7 +19,7 @@
>
> import cherrypy
>
> -from kimchi.control.base import Collection, Resource
> +from kimchi.control.base import Collection, Resource, SimpleCollection
> from kimchi.control.utils import UrlSubNode, validate_method
> from kimchi.exception import OperationFailed
> from kimchi.template import render
> @@ -37,6 +37,8 @@ class Host(Resource):
> self.devices = Devices(self.model)
> self.packagesupdate = PackagesUpdate(self.model)
> self.repositories = Repositories(self.model)
> + self.users = Users(self.model)
> + self.groups = Groups(self.model)
>
> @cherrypy.expose
> def swupdate(self):
> @@ -128,3 +130,13 @@ class Repository(Resource):
> @property
> def data(self):
> return self.info
> +
> +
> +class Users(SimpleCollection):
> + def __init__(self, model):
> + super(Users, self).__init__(model)
> +
> +
> +class Groups(SimpleCollection):
> + def __init__(self, model):
> + super(Groups, self).__init__(model)
> diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
> index 8c7d7bb..b235e1e 100644
> --- a/src/kimchi/mockmodel.py
> +++ b/src/kimchi/mockmodel.py
> @@ -798,6 +798,12 @@ class MockModel(object):
> 'net_recv_rate': round(random.uniform(0, 4000), 1),
> 'net_sent_rate': round(random.uniform(0, 4000), 1)}
>
> + def users_get_list(self):
> + return ["userA", "userB", "userC"]
> +
> + def groups_get_list(self):
> + return ["groupA", "groupB", "groupC", "groupD"]
> +
> def vms_get_list_by_state(self, state):
> ret_list = []
> for name in self.vms_get_list():
> diff --git a/src/kimchi/model/host.py b/src/kimchi/model/host.py
> index 7b151f2..e0ac760 100644
> --- a/src/kimchi/model/host.py
> +++ b/src/kimchi/model/host.py
> @@ -17,9 +17,11 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> +import grp
> import os
> import time
> import platform
> +import pwd
> from collections import defaultdict
>
> import psutil
> @@ -364,3 +366,19 @@ class RepositoryModel(object):
> raise InvalidOperation('KCHREPOS0014E')
>
> return self._repositories.removeRepository(repo_id)
> +
> +
> +class UsersModel(object):
> + def __init__(self, **kargs):
> + pass
> +
> + def get_list(self):
> + return [user.pw_name for user in pwd.getpwall()]
> +
> +
> +class GroupsModel(object):
> + def __init__(self, **kargs):
> + pass
> +
> + def get_list(self):
> + return [group.gr_name for group in grp.getgrall()]
More information about the Kimchi-devel
mailing list