2 # Copyright 2008 Google Inc. All Rights Reserved.
5 The user module contains the objects and methods used to
6 manage users in Autotest.
11 The common options are:
12 --ulist / -U: file containing a list of USERs
14 See topic_common.py for a High Level Design and Algorithm.
18 from autotest_lib
.cli
import topic_common
, action_common
21 class user(topic_common
.atest
):
23 atest user list <options>"""
25 topic
= msg_topic
= 'user'
29 """Add to the parser the options common to all the
31 super(user
, self
).__init
__()
33 self
.parser
.add_option('-U', '--ulist',
34 help='File listing the users',
39 self
.topic_parse_info
= topic_common
.item_parse_info(
40 attribute_name
='users',
41 filename_option
='ulist',
49 class user_help(user
):
50 """Just here to get the atest logic working.
51 Usage is set by its parent"""
55 class user_list(action_common
.atest_list
, user
):
56 """atest user list <user>|--ulist <file>
57 [--acl <ACL>|--access_level <n>]"""
59 super(user_list
, self
).__init
__()
61 self
.parser
.add_option('-a', '--acl',
62 help='Only list users within this ACL')
64 self
.parser
.add_option('-l', '--access_level',
65 help='Only list users at this access level')
69 (options
, leftover
) = super(user_list
, self
).parse()
70 self
.acl
= options
.acl
71 self
.access_level
= options
.access_level
72 return (options
, leftover
)
79 filters
['aclgroup__name__in'] = [self
.acl
]
80 check_results
['aclgroup__name__in'] = None
83 filters
['access_level__in'] = [self
.access_level
]
84 check_results
['access_level__in'] = None
87 filters
['login__in'] = self
.users
88 check_results
['login__in'] = 'login'
90 return super(user_list
, self
).execute(op
='get_users',
92 check_results
=check_results
)
95 def output(self
, results
):
97 keys
= ['id', 'login', 'access_level']
101 super(user_list
, self
).output(results
, keys
)