Class: WavefrontCli::User
- Inherits:
-
Base
- Object
- Base
- WavefrontCli::User
show all
- Defined in:
- lib/wavefront-cli/user.rb
Overview
CLI coverage for the v2 ‘user’ API.
Constant Summary
Constants included
from Constants
Constants::ALL_PAGE_SIZE, Constants::DEFAULT_CONFIG, Constants::DEFAULT_OPTS, Constants::EVENT_STATE_DIR, Constants::HUMAN_TIME_FORMAT, Constants::HUMAN_TIME_FORMAT_MS, Constants::SEARCH_SPLIT
Instance Attribute Summary
Attributes inherited from Base
#klass, #klass_word, #options, #wf
Instance Method Summary
collapse
Methods inherited from Base
#_sdk_class, #cannot_noop!, #check_response_blocks, #check_status, #cli_output_class, #conds_to_query, #dispatch, #display, #display_api_error, #display_no_api_response, #do_describe, #do_dump, #do_import, #do_search, #do_set, #do_undelete, #dump_json, #dump_yaml, #extract_values, #failed_validation_message, #format_var, #handle_error, #handle_response, #hcl_fields, #import_message, #import_object, #import_update, #initialize, #load_display_class, #load_file, #load_from_stdin, #load_json, #load_yaml, #matching_method, #method_word_list, #mk_creds, #mk_opts, #name_of_do_method, #no_api_response, #ok_exit, #one_or_all, #options_and_exit, #parseable_output, #range_hash, #run, #search_key, #smart_delete, #smart_delete_message, #status_error_handler, #unsupported_format_message, #validate_id, #validate_input, #validate_opts, #validate_tags, #validator_exception, #validator_method, #warning_message
Instance Method Details
#do_create ⇒ Object
18
19
20
21
|
# File 'lib/wavefront-cli/user.rb', line 18
def do_create
wf_user_id?(options[:'<id>'])
wf.create(user_body, options[:email])
end
|
#do_delete ⇒ Object
14
15
16
|
# File 'lib/wavefront-cli/user.rb', line 14
def do_delete
wf.delete_users(options[:'<user>'])
end
|
#do_grant ⇒ Object
34
35
36
|
# File 'lib/wavefront-cli/user.rb', line 34
def do_grant
wf.grant(options[:'<id>'], options[:'<privilege>'])
end
|
#do_invite ⇒ Object
42
43
44
45
|
# File 'lib/wavefront-cli/user.rb', line 42
def do_invite
wf_user_id?(options[:'<id>'])
wf.invite([user_body])
end
|
#do_join ⇒ Object
26
27
28
|
# File 'lib/wavefront-cli/user.rb', line 26
def do_join
wf.add_groups_to_user(options[:'<id>'], options[:'<group>'])
end
|
#do_leave ⇒ Object
30
31
32
|
# File 'lib/wavefront-cli/user.rb', line 30
def do_leave
wf.remove_groups_from_user(options[:'<id>'], options[:'<group>'])
end
|
#do_list ⇒ Object
10
11
12
|
# File 'lib/wavefront-cli/user.rb', line 10
def do_list
wf.list
end
|
#do_revoke ⇒ Object
38
39
40
|
# File 'lib/wavefront-cli/user.rb', line 38
def do_revoke
wf.revoke(options[:'<id>'], options[:'<privilege>'])
end
|
Because of the way docopt works, we have to call the user ID parameter something else on the delete command. This means the automatic validtion doesn’t work, and we have to do it ourselves.
69
70
71
|
# File 'lib/wavefront-cli/user.rb', line 69
def
options[:'<user>']&.each { |u| validate_user(u) }
end
|
#import_to_create(raw) ⇒ Object
47
48
49
50
51
52
53
54
|
# File 'lib/wavefront-cli/user.rb', line 47
def import_to_create(raw)
{ emailAddress: raw['items']['identifier'],
groups: raw['items']['groups'] }.tap do |r|
if raw['items'].key?('userGroups')
r['userGroups'] = raw['items']['userGroups'].map { |g| g['id'] }
end
end
end
|
#item_dump_call ⇒ Object
79
80
81
|
# File 'lib/wavefront-cli/user.rb', line 79
def item_dump_call
wf.list.response.items
end
|
#user_body ⇒ Object
Object used to create and invite users.
58
59
60
61
62
|
# File 'lib/wavefront-cli/user.rb', line 58
def user_body
{ emailAddress: options[:'<id>'],
groups: options[:permission],
userGroups: options[:group] }
end
|
#validate_user(user) ⇒ Object
73
74
75
76
77
|
# File 'lib/wavefront-cli/user.rb', line 73
def validate_user(user)
wf_user_id?(user)
rescue Wavefront::Exception::InvalidUserId
abort failed_validation_message(user)
end
|