virt.virt_utils: Get rid of create_report function
[autotest-zwu.git] / cli / user.py
blob0e4fd49ce895ca0b5c1a9c12a40dddc8b0cd8b52
2 # Copyright 2008 Google Inc. All Rights Reserved.
4 """
5 The user module contains the objects and methods used to
6 manage users in Autotest.
8 The valid action is:
9 list: lists user(s)
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.
15 """
17 import os, sys
18 from autotest_lib.cli import topic_common, action_common
21 class user(topic_common.atest):
22 """User class
23 atest user list <options>"""
24 usage_action = 'list'
25 topic = msg_topic = 'user'
26 msg_items = '<users>'
28 def __init__(self):
29 """Add to the parser the options common to all the
30 user actions"""
31 super(user, self).__init__()
33 self.parser.add_option('-U', '--ulist',
34 help='File listing the users',
35 type='string',
36 default=None,
37 metavar='USER_FLIST')
39 self.topic_parse_info = topic_common.item_parse_info(
40 attribute_name='users',
41 filename_option='ulist',
42 use_leftover=True)
45 def get_items(self):
46 return self.users
49 class user_help(user):
50 """Just here to get the atest logic working.
51 Usage is set by its parent"""
52 pass
55 class user_list(action_common.atest_list, user):
56 """atest user list <user>|--ulist <file>
57 [--acl <ACL>|--access_level <n>]"""
58 def __init__(self):
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')
68 def parse(self):
69 (options, leftover) = super(user_list, self).parse()
70 self.acl = options.acl
71 self.access_level = options.access_level
72 return (options, leftover)
75 def execute(self):
76 filters = {}
77 check_results = {}
78 if self.acl:
79 filters['aclgroup__name__in'] = [self.acl]
80 check_results['aclgroup__name__in'] = None
82 if self.access_level:
83 filters['access_level__in'] = [self.access_level]
84 check_results['access_level__in'] = None
86 if self.users:
87 filters['login__in'] = self.users
88 check_results['login__in'] = 'login'
90 return super(user_list, self).execute(op='get_users',
91 filters=filters,
92 check_results=check_results)
95 def output(self, results):
96 if self.verbose:
97 keys = ['id', 'login', 'access_level']
98 else:
99 keys = ['login']
101 super(user_list, self).output(results, keys)