wavefront-cli 5.1.1 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +37 -1
- data/HISTORY.md +34 -2
- data/README.md +2 -4
- data/lib/wavefront-cli/account.rb +119 -0
- data/lib/wavefront-cli/alert.rb +29 -0
- data/lib/wavefront-cli/base.rb +0 -2
- data/lib/wavefront-cli/cloudintegration.rb +12 -0
- data/lib/wavefront-cli/commands/.rubocop.yml +34 -0
- data/lib/wavefront-cli/commands/account.rb +61 -0
- data/lib/wavefront-cli/commands/alert.rb +1 -0
- data/lib/wavefront-cli/commands/base.rb +1 -1
- data/lib/wavefront-cli/commands/cloudintegration.rb +4 -1
- data/lib/wavefront-cli/commands/proxy.rb +2 -1
- data/lib/wavefront-cli/commands/query.rb +4 -1
- data/lib/wavefront-cli/commands/role.rb +44 -0
- data/lib/wavefront-cli/commands/spy.rb +0 -5
- data/lib/wavefront-cli/commands/usergroup.rb +7 -11
- data/lib/wavefront-cli/commands/write.rb +7 -2
- data/lib/wavefront-cli/controller.rb +5 -63
- data/lib/wavefront-cli/display/account.rb +122 -0
- data/lib/wavefront-cli/display/alert.rb +8 -0
- data/lib/wavefront-cli/display/base.rb +1 -1
- data/lib/wavefront-cli/display/cloudintegration.rb +15 -2
- data/lib/wavefront-cli/display/printer/long.rb +2 -1
- data/lib/wavefront-cli/display/proxy.rb +16 -0
- data/lib/wavefront-cli/display/role.rb +66 -0
- data/lib/wavefront-cli/display/settings.rb +1 -0
- data/lib/wavefront-cli/display/usergroup.rb +18 -14
- data/lib/wavefront-cli/exception_handler.rb +89 -0
- data/lib/wavefront-cli/output/hcl/base.rb +1 -1
- data/lib/wavefront-cli/output/hcl/dashboard.rb +1 -1
- data/lib/wavefront-cli/proxy.rb +5 -0
- data/lib/wavefront-cli/query.rb +13 -7
- data/lib/wavefront-cli/role.rb +54 -0
- data/lib/wavefront-cli/serviceaccount.rb +0 -6
- data/lib/wavefront-cli/spy.rb +0 -8
- data/lib/wavefront-cli/usergroup.rb +8 -8
- data/lib/wavefront-cli/version.rb +1 -1
- data/lib/wavefront-cli/write.rb +29 -5
- data/spec/.rubocop.yml +34 -0
- data/spec/test_mixins/delete.rb +1 -2
- data/spec/wavefront-cli/account_spec.rb +303 -0
- data/spec/wavefront-cli/alert_spec.rb +28 -0
- data/spec/wavefront-cli/cloudintegration_spec.rb +19 -6
- data/spec/wavefront-cli/commands/write_spec.rb +1 -1
- data/spec/wavefront-cli/event_spec.rb +1 -1
- data/spec/wavefront-cli/output/csv/query_spec.rb +1 -1
- data/spec/wavefront-cli/output/wavefront/query_spec.rb +2 -2
- data/spec/wavefront-cli/query_spec.rb +20 -3
- data/spec/wavefront-cli/role_spec.rb +187 -0
- data/spec/wavefront-cli/serviceaccount_spec.rb +3 -3
- data/spec/wavefront-cli/usergroup_spec.rb +48 -43
- data/spec/wavefront-cli/write_spec.rb +44 -0
- data/wavefront-cli.gemspec +3 -3
- metadata +28 -36
- data/lib/wavefront-cli/commands/cluster.rb +0 -44
- data/lib/wavefront-cli/commands/user.rb +0 -54
- data/lib/wavefront-cli/display/monitoredcluster.rb +0 -14
- data/lib/wavefront-cli/display/user.rb +0 -103
- data/lib/wavefront-cli/monitoredcluster.rb +0 -50
- data/lib/wavefront-cli/user.rb +0 -92
- data/spec/wavefront-cli/monitoredcluster_spec.rb +0 -85
- data/spec/wavefront-cli/resources/responses/user-list.json +0 -1
- data/spec/wavefront-cli/user_spec.rb +0 -311
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65a2455065fbd4b69b42718f7789e4c01cb5245a0015ea7d2977b96581ad0b83
|
4
|
+
data.tar.gz: 2c01e8464589c804271a97dba24a19a62b3f4a1dba9af588216f1d0b911c9ec9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 392ea65a15b94665c5255da837abcaf3a8b69d38db9b675652c5c824627b3436b4b802174283bcdda6d2f95150cb3fce0a21de2dfcb449c64a0a73259d16357b
|
7
|
+
data.tar.gz: f55ffa3998170ee1a3d98f55cdefa9cd27d2f84e39f3c2fcbe3ffb649bcb34eeb96e93e1a486f4edfa030244e4640e3777865eef6f6119380dec7ff273637041
|
data/.rubocop.yml
CHANGED
@@ -1,14 +1,50 @@
|
|
1
1
|
---
|
2
2
|
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.4
|
5
5
|
|
6
6
|
Metrics/ClassLength:
|
7
7
|
Max: 400
|
8
8
|
|
9
|
+
Style/IfUnlessModifier:
|
10
|
+
Enabled: false # because it wants to make lines >80 chars
|
9
11
|
Style/HashEachMethods:
|
10
12
|
Enabled: true
|
11
13
|
Style/HashTransformKeys:
|
12
14
|
Enabled: true
|
13
15
|
Style/HashTransformValues:
|
14
16
|
Enabled: true
|
17
|
+
|
18
|
+
# New compatabilities
|
19
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
20
|
+
Enabled: true
|
21
|
+
Layout/SpaceAroundMethodCallOperator:
|
22
|
+
Enabled: true
|
23
|
+
Lint/RaiseException:
|
24
|
+
Enabled: true
|
25
|
+
Lint/StructNewOverride:
|
26
|
+
Enabled: true
|
27
|
+
Style/ExponentialNotation:
|
28
|
+
Enabled: true
|
29
|
+
Style/SlicingWithRange:
|
30
|
+
Enabled: true
|
31
|
+
Lint/DeprecatedOpenSSLConstant:
|
32
|
+
Enabled: true
|
33
|
+
Lint/MixedRegexpCaptureTypes:
|
34
|
+
Enabled: true
|
35
|
+
Style/RedundantRegexpCharacterClass:
|
36
|
+
Enabled: true
|
37
|
+
Style/RedundantRegexpEscape:
|
38
|
+
Enabled: true
|
39
|
+
Style/AccessorGrouping:
|
40
|
+
Enabled: true
|
41
|
+
Style/BisectedAttrAccessor:
|
42
|
+
Enabled: true
|
43
|
+
Style/RedundantAssignment:
|
44
|
+
Enabled: true
|
45
|
+
Style/RedundantFetchBlock:
|
46
|
+
Enabled: true
|
47
|
+
|
48
|
+
# Is nothing sacred?
|
49
|
+
Layout/LineLength:
|
50
|
+
Max: 80
|
data/HISTORY.md
CHANGED
@@ -1,7 +1,39 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
##
|
4
|
-
*
|
3
|
+
## 7.2.0 (2020-08-12)
|
4
|
+
* Add `cloudintegration awsid generate` command.
|
5
|
+
* Add `cloudintegration awsid delete <external_id>` command.
|
6
|
+
* Add `cloudintegration awsid validate <external_id>` command.
|
7
|
+
* Require 5.1.x of [the SDK](https://github.com/snltd/wavefront-sdk).
|
8
|
+
|
9
|
+
## 7.1.0 (2020-08-07)
|
10
|
+
* Remove `user` command. (Breaking change.)
|
11
|
+
* Add `account` command.
|
12
|
+
* Complete coverage of roles and user groups.
|
13
|
+
* Add `alert affected hosts` command to show which hosts are affected by one
|
14
|
+
or all firing alerts.
|
15
|
+
* Remove obsolete `group` subcommands. (`grant` and `revoke`).
|
16
|
+
* Add `write noise` command to send a flow of random data to an endpoint.
|
17
|
+
* Better information when working with cloud integrations.
|
18
|
+
|
19
|
+
## 7.0.0 (unreleased)
|
20
|
+
|
21
|
+
## 6.1.0 (2020-06-02)
|
22
|
+
* Add `-A` flag to `proxy list` command, to only list active proxies
|
23
|
+
|
24
|
+
## 6.0.0 (2020-04-07)
|
25
|
+
* Remove `cluster` command. (Breaking change.)
|
26
|
+
* Add `role` command.
|
27
|
+
* Add `--nocache`, `--nostrict` and `--histogram-view` options to `query`
|
28
|
+
command.
|
29
|
+
* Require 5.x of [the SDK](https://github.com/snltd/wavefront-sdk).
|
30
|
+
|
31
|
+
## 5.1.2 (2020-02-28)
|
32
|
+
* Fix regression in HCL dashboard export.
|
33
|
+
* Properly handle unavailable port when sending distributions to a proxy.
|
34
|
+
|
35
|
+
## 5.1.1 (2020-02-20)
|
36
|
+
* Say whether `--upsert` did an update or an import.
|
5
37
|
|
6
38
|
## 5.1.0 (2020-02-20)
|
7
39
|
* Add `-U` (`--upsert`) option to `import` sub-commands.
|
data/README.md
CHANGED
@@ -33,7 +33,6 @@ Commands:
|
|
33
33
|
alert view and manage alerts
|
34
34
|
apitoken view and your own API tokens
|
35
35
|
cloudintegration view and manage cloud integrations
|
36
|
-
cluster view and manage monitored clusters
|
37
36
|
config create and manage local configuration
|
38
37
|
dashboard view and manage dashboards
|
39
38
|
derivedmetric view and manage derived metrics
|
@@ -52,7 +51,6 @@ Commands:
|
|
52
51
|
source view and manage source tags and descriptions
|
53
52
|
spy monitor traffic going into Wavefront
|
54
53
|
usage view and manage usage reports
|
55
|
-
user view and manage Wavefront users
|
56
54
|
usergroup view and manage Wavefront user groups
|
57
55
|
webhook view and manage webhooks
|
58
56
|
window view and manage maintenance windows
|
@@ -104,7 +102,7 @@ $ wf proxy list
|
|
104
102
|
|
105
103
|
You can get more verbose listings with the `-l` flag. Results may be
|
106
104
|
paginated. You can progress through pages with the `-L` and `-o`
|
107
|
-
options, or
|
105
|
+
options, or use `--all` to get everything in one go.
|
108
106
|
|
109
107
|
### Describing Things
|
110
108
|
|
@@ -152,7 +150,7 @@ mentioned above, human-readable listings and desctiptions may omit
|
|
152
150
|
data which is not likely to be useful, or which is extremely hard to
|
153
151
|
present in a readable way.
|
154
152
|
|
155
|
-
If you `describe` an object like a dashboard,
|
153
|
+
If you `describe` an object like a dashboard, account, webhook etc as
|
156
154
|
`json` or `yaml`, and send the output to a file, you can re-import
|
157
155
|
that data. The format of the file to be imported is automatically
|
158
156
|
detected.
|
@@ -0,0 +1,119 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'base'
|
4
|
+
|
5
|
+
module WavefrontCli
|
6
|
+
#
|
7
|
+
# CLI coverage for the v2 'account' API.
|
8
|
+
#
|
9
|
+
class Account < WavefrontCli::Base
|
10
|
+
alias do_roles do_describe
|
11
|
+
alias do_groups do_describe
|
12
|
+
alias do_ingestionpolicy do_describe
|
13
|
+
alias do_permissions do_describe
|
14
|
+
|
15
|
+
def do_role_add_to
|
16
|
+
wf_account_id?(options[:'<id>'])
|
17
|
+
wf.add_roles(options[:'<id>'], options[:'<role>'])
|
18
|
+
end
|
19
|
+
|
20
|
+
def do_role_remove_from
|
21
|
+
wf_account_id?(options[:'<id>'])
|
22
|
+
wf.remove_roles(options[:'<id>'], options[:'<role>'])
|
23
|
+
end
|
24
|
+
|
25
|
+
def do_group_add_to
|
26
|
+
wf_account_id?(options[:'<id>'])
|
27
|
+
wf.add_user_groups(options[:'<id>'], options[:'<group>'])
|
28
|
+
end
|
29
|
+
|
30
|
+
def do_group_remove_from
|
31
|
+
wf_account_id?(options[:'<id>'])
|
32
|
+
wf.remove_user_groups(options[:'<id>'], options[:'<group>'])
|
33
|
+
end
|
34
|
+
|
35
|
+
def do_business_functions
|
36
|
+
wf_user_id?(options[:'<id>'])
|
37
|
+
wf.business_functions(options[:'<id>'])
|
38
|
+
end
|
39
|
+
|
40
|
+
def do_grant_to
|
41
|
+
wf.grant(options[:'<account>'], options[:'<permission>'])
|
42
|
+
end
|
43
|
+
|
44
|
+
def do_revoke_from
|
45
|
+
wf.revoke(options[:'<account>'], options[:'<permission>'])
|
46
|
+
end
|
47
|
+
|
48
|
+
def do_ingestionpolicy_add_to
|
49
|
+
wf_account_id?(options[:'<id>'])
|
50
|
+
wf.add_ingestion_policy(options[:'<policy>'], [options[:'<id>']])
|
51
|
+
end
|
52
|
+
|
53
|
+
def do_ingestionpolicy_remove_from
|
54
|
+
wf_account_id?(options[:'<id>'])
|
55
|
+
wf_ingestionpolicy_id?(options[:'<policy>'])
|
56
|
+
wf.remove_ingestion_policy(options[:'<policy>'], [options[:'<id>']])
|
57
|
+
end
|
58
|
+
|
59
|
+
def do_create_user
|
60
|
+
wf_user_id?(options[:'<id>'])
|
61
|
+
wf.user_create(user_body)
|
62
|
+
end
|
63
|
+
|
64
|
+
def do_invite_user
|
65
|
+
wf_user_id?(options[:'<id>'])
|
66
|
+
wf.user_invite([user_body])
|
67
|
+
end
|
68
|
+
|
69
|
+
def do_validate
|
70
|
+
wf.validate_accounts(options[:'<account>'])
|
71
|
+
end
|
72
|
+
|
73
|
+
def extra_validation
|
74
|
+
validate_policy
|
75
|
+
validate_permission
|
76
|
+
validate_roles
|
77
|
+
validate_groups
|
78
|
+
validate_accounts
|
79
|
+
end
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
def validate_policy
|
84
|
+
wf_ingestionpolicy_id?(options[:'<policy>']) if options[:'<policy>']
|
85
|
+
end
|
86
|
+
|
87
|
+
def validate_permission
|
88
|
+
wf_permission?(options[:'<permission>']) if options[:'<permission>']
|
89
|
+
end
|
90
|
+
|
91
|
+
def validate_roles
|
92
|
+
options[:'<role>'].each { |r| wf_role_id?(r) }
|
93
|
+
end
|
94
|
+
|
95
|
+
def validate_groups
|
96
|
+
options[:'<group>'].each { |g| wf_usergroup_id?(g) }
|
97
|
+
end
|
98
|
+
|
99
|
+
def validate_accounts
|
100
|
+
options[:'<account>'].each { |a| wf_account_id?(a) }
|
101
|
+
end
|
102
|
+
|
103
|
+
# Object used to create and invite users. We deal with the permissions
|
104
|
+
# seperately because if we don't supply any and they get compacted out,
|
105
|
+
# the user is created with a default set of perms, and we don't want that.
|
106
|
+
#
|
107
|
+
def user_body
|
108
|
+
raw = {
|
109
|
+
emailAddress: options[:'<id>'],
|
110
|
+
roles: options[:roleid],
|
111
|
+
ingestionPolicyId: options[:policyid],
|
112
|
+
userGroups: options[:groupid]
|
113
|
+
}.reject { |_k, v| v&.empty? }.compact
|
114
|
+
|
115
|
+
raw[:groups] = options[:permission]
|
116
|
+
raw
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
data/lib/wavefront-cli/alert.rb
CHANGED
@@ -50,6 +50,14 @@ module WavefrontCli
|
|
50
50
|
wf.history(options[:'<id>'], options[:offset], options[:limit])
|
51
51
|
end
|
52
52
|
|
53
|
+
def do_affected_hosts
|
54
|
+
if options[:'<id>']
|
55
|
+
affected_hosts_for_id(options[:'<id>'])
|
56
|
+
else
|
57
|
+
all_affected_hosts
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
53
61
|
def do_currently
|
54
62
|
state = options[:'<state>'].to_s
|
55
63
|
|
@@ -146,5 +154,26 @@ module WavefrontCli
|
|
146
154
|
end
|
147
155
|
end.compact
|
148
156
|
end
|
157
|
+
|
158
|
+
def all_affected_hosts
|
159
|
+
cannot_noop!
|
160
|
+
in_state(:firing).tap do |r|
|
161
|
+
r.response = r.response.items.each_with_object({}) do |alert, aggr|
|
162
|
+
aggr[alert[:id]] = affected_hosts_for_id(alert[:id]).response
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def affected_hosts_for_id(id)
|
168
|
+
resp = wf.describe(id)
|
169
|
+
|
170
|
+
return if options[:noop]
|
171
|
+
|
172
|
+
return resp unless resp.ok? && resp.response.key?(:failingHostLabelPairs)
|
173
|
+
|
174
|
+
resp.tap do |r|
|
175
|
+
r.response = r.response[:failingHostLabelPairs].map { |h| h[:host] }
|
176
|
+
end
|
177
|
+
end
|
149
178
|
end
|
150
179
|
end
|
data/lib/wavefront-cli/base.rb
CHANGED
@@ -485,7 +485,6 @@ module WavefrontCli
|
|
485
485
|
# @param cond [String] a search condition, like "key=value"
|
486
486
|
# @return [Hash] of matchingMethod and negated
|
487
487
|
#
|
488
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
489
488
|
# rubocop:disable Metrics/MethodLength
|
490
489
|
def matching_method(cond)
|
491
490
|
case cond
|
@@ -506,7 +505,6 @@ module WavefrontCli
|
|
506
505
|
end
|
507
506
|
end
|
508
507
|
# rubocop:enable Metrics/MethodLength
|
509
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
510
508
|
|
511
509
|
# Return a detailed description of one item, if an ID has been
|
512
510
|
# given, or all items if it has not.
|
@@ -22,5 +22,17 @@ module WavefrontCli
|
|
22
22
|
def do_disable
|
23
23
|
wf.disable(options[:'<id>'])
|
24
24
|
end
|
25
|
+
|
26
|
+
def do_awsid_generate
|
27
|
+
wf.create_aws_external_id
|
28
|
+
end
|
29
|
+
|
30
|
+
def do_awsid_delete
|
31
|
+
wf.delete_aws_external_id(options[:'<external_id>'])
|
32
|
+
end
|
33
|
+
|
34
|
+
def do_awsid_confirm
|
35
|
+
wf.confirm_aws_external_id(options[:'<external_id>'])
|
36
|
+
end
|
25
37
|
end
|
26
38
|
end
|
@@ -11,3 +11,37 @@ Style/HashTransformKeys:
|
|
11
11
|
Enabled: true
|
12
12
|
Style/HashTransformValues:
|
13
13
|
Enabled: true
|
14
|
+
|
15
|
+
# new compatabilities
|
16
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
17
|
+
Enabled: true
|
18
|
+
Layout/SpaceAroundMethodCallOperator:
|
19
|
+
Enabled: true
|
20
|
+
Lint/RaiseException:
|
21
|
+
Enabled: true
|
22
|
+
Lint/StructNewOverride:
|
23
|
+
Enabled: true
|
24
|
+
Style/ExponentialNotation:
|
25
|
+
Enabled: true
|
26
|
+
Style/SlicingWithRange:
|
27
|
+
Enabled: true
|
28
|
+
Lint/DeprecatedOpenSSLConstant:
|
29
|
+
Enabled: true
|
30
|
+
Lint/MixedRegexpCaptureTypes:
|
31
|
+
Enabled: true
|
32
|
+
Style/RedundantRegexpCharacterClass:
|
33
|
+
Enabled: true
|
34
|
+
Style/RedundantRegexpEscape:
|
35
|
+
Enabled: true
|
36
|
+
Style/AccessorGrouping:
|
37
|
+
Enabled: true
|
38
|
+
Style/BisectedAttrAccessor:
|
39
|
+
Enabled: true
|
40
|
+
Style/RedundantAssignment:
|
41
|
+
Enabled: true
|
42
|
+
Style/RedundantFetchBlock:
|
43
|
+
Enabled: true
|
44
|
+
|
45
|
+
# Is nothing sacred?
|
46
|
+
Layout/LineLength:
|
47
|
+
Max: 80
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'base'
|
4
|
+
|
5
|
+
# Define the account command.
|
6
|
+
#
|
7
|
+
class WavefrontCommandAccount < WavefrontCommandBase
|
8
|
+
def description
|
9
|
+
"view and manage Wavefront #{things}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def _commands
|
13
|
+
["list #{CMN} [-sSal] [-O fields] [-o offset] [-L limit]",
|
14
|
+
"describe #{CMN} <id>",
|
15
|
+
"create user #{CMN} [-m permission...] [-g group-id...] " \
|
16
|
+
'[-r role-id...] [-i policy-id] <id>',
|
17
|
+
"invite user #{CMN} [-m permission...] [-g group-id...] " \
|
18
|
+
'[-r role-id...] [-i policy-id] <id>',
|
19
|
+
"delete #{CMN} <id>",
|
20
|
+
"dump #{CMN}",
|
21
|
+
"import #{CMN} [-uU] <file>",
|
22
|
+
"role #{CMN} add to <id> <role>...",
|
23
|
+
"role #{CMN} remove from <id> <role>...",
|
24
|
+
"roles #{CMN} <id>",
|
25
|
+
"ingestionpolicy #{CMN} add to <id> <policy>",
|
26
|
+
"ingestionpolicy #{CMN} remove from <id> <policy>",
|
27
|
+
"ingestionpolicy #{CMN} <id>",
|
28
|
+
"group #{CMN} add to <id> <group>...",
|
29
|
+
"group #{CMN} remove from <id> <group>...",
|
30
|
+
"groups #{CMN} <id>",
|
31
|
+
"grant #{CMN} <permission> to <account>...",
|
32
|
+
"revoke #{CMN} <permission> from <account>...",
|
33
|
+
"permissions #{CMN} <id>",
|
34
|
+
"business functions #{CMN} <id>",
|
35
|
+
"validate #{CMN} [-l] <account>...",
|
36
|
+
"search #{CMN} [-al] [-o offset] [-L limit] [-O fields] <condition>..."]
|
37
|
+
end
|
38
|
+
|
39
|
+
def _options
|
40
|
+
[common_options,
|
41
|
+
"-l, --long list #{things} in detail",
|
42
|
+
"-a, --all list all #{things}",
|
43
|
+
"-o, --offset=n start from nth #{thing}",
|
44
|
+
"-L, --limit=COUNT number of #{things} to list",
|
45
|
+
'-s, --service list only service accounts',
|
46
|
+
'-S, --user list only user accounts',
|
47
|
+
'-O, --fields=F1,F2,... only show given fields',
|
48
|
+
"-u, --update update an existing #{thing}",
|
49
|
+
"-U, --upsert import new or update existing #{thing}",
|
50
|
+
'-m, --permission=STRING Wavefront permission name',
|
51
|
+
'-g, --groupid=STRING Wavefront usergroup ID',
|
52
|
+
'-r, --roleid=STRING Wavefront role ID',
|
53
|
+
'-i, --policyid=STRING Wavefront ingestion policy ID']
|
54
|
+
end
|
55
|
+
|
56
|
+
def postscript
|
57
|
+
'Service accounts can be partially managed with this command, but ' \
|
58
|
+
"'wf serviceaccount' has more features.\n\nFor a list of permissions, " \
|
59
|
+
"run 'wf settings list permissions'.".fold(TW, 0)
|
60
|
+
end
|
61
|
+
end
|
@@ -8,6 +8,7 @@ class WavefrontCommandAlert < WavefrontCommandBase
|
|
8
8
|
def _commands
|
9
9
|
["list #{CMN} [-al] [-O fields] [-o offset] [-L limit]",
|
10
10
|
"firing #{CMN} [-o offset] [-L limit]",
|
11
|
+
"affected #{CMN} hosts [<id>]",
|
11
12
|
"snoozed #{CMN} [-o offset] [-L limit]",
|
12
13
|
"describe #{CMN} [-v version] <id>",
|
13
14
|
"delete #{CMN} <id>",
|