usd 0.1.7 → 0.1.8
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/README.md +20 -18
- data/bin/rusdc +79 -37
- data/change_log.md +45 -0
- data/usd.gemspec +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dd923f3b1814841074968b4308bed67f1103d612445254ffad801f762ddbc6bf
|
|
4
|
+
data.tar.gz: 531ef12b97b305293082b3252c00625529c1f79a47f2bd06505f9b0e1f3f78b9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d2ffbea196cef1e974dd9f8bafb43b6076c807e24caa81a96a733bc2062aec830f6956de00bbda984fe7320e1fd756a829b63214cf9b32dfe11159d5b2f496fe
|
|
7
|
+
data.tar.gz: 77531ebb77a005a9dba2f9954faa8dafafc05c68df97c9e7824b2fe964fcc5526f2243e6407eda4544d9704370031b5decb1c774f65bfdc53157881a0c55d549
|
data/README.md
CHANGED
|
@@ -34,24 +34,26 @@ Place the `mlr`-binary in a path, which is in your PATH-Environment.
|
|
|
34
34
|
```
|
|
35
35
|
rusdc
|
|
36
36
|
Commands:
|
|
37
|
-
rusdc chg_add_nr
|
|
38
|
-
rusdc chg_list_nr
|
|
39
|
-
rusdc create
|
|
40
|
-
rusdc field_names
|
|
41
|
-
rusdc find
|
|
42
|
-
rusdc get
|
|
43
|
-
rusdc get_attachment_of_ci
|
|
44
|
-
rusdc get_attachment_of_co
|
|
45
|
-
rusdc help [COMMAND]
|
|
46
|
-
rusdc in_list_child_ins
|
|
47
|
-
rusdc list_attachments_of_ci
|
|
48
|
-
rusdc list_attachments_of_co
|
|
49
|
-
rusdc nr_add_child
|
|
50
|
-
rusdc nr_changes
|
|
51
|
-
rusdc nr_childs
|
|
52
|
-
rusdc nr_incidents
|
|
53
|
-
rusdc nr_parents
|
|
54
|
-
rusdc update
|
|
37
|
+
rusdc chg_add_nr <co> <ci> # add a CI to a changeorder
|
|
38
|
+
rusdc chg_list_nr <co> # list all CIs of one changeorder
|
|
39
|
+
rusdc create # pipe json-data to create object
|
|
40
|
+
rusdc field_names <object-type> # list all fields of an object including its format
|
|
41
|
+
rusdc find <object-type> [where-clause] [fields, comma separated] [options] # finds each object which meets the wc-condition
|
|
42
|
+
rusdc get <object-type> <common_name> # shows one object
|
|
43
|
+
rusdc get_attachment_of_ci <ci_name> <filename> # download an attachment of a CI and print it out on stdout
|
|
44
|
+
rusdc get_attachment_of_co <co_name> <filename> # download an attachment of a changeorder and print it out on stdout
|
|
45
|
+
rusdc help [COMMAND] # Describe available commands or one specific command
|
|
46
|
+
rusdc in_list_child_ins <in> # list all child-incidents of one incident
|
|
47
|
+
rusdc list_attachments_of_ci <ci_name> # list all attachments of a CI
|
|
48
|
+
rusdc list_attachments_of_co <co_name> # list all attachments of a changeorder
|
|
49
|
+
rusdc nr_add_child <nr-name> <child-name> # add one child CI to another CI
|
|
50
|
+
rusdc nr_changes <nr> [inactive-too] # list all open changeorders of one CI
|
|
51
|
+
rusdc nr_childs <ci-name> # lists all childs CIs of a specific CI
|
|
52
|
+
rusdc nr_incidents <nr> [inactive-too] # lists all incident of a specific CI
|
|
53
|
+
rusdc nr_parents <ci-name> # lists all parent CIs of a specific CI
|
|
54
|
+
rusdc update # pipe json-data to update object
|
|
55
|
+
rusdc update_attr <obj> <common_name> <key> <value> # updates a direct (not referenced) attribute of one object.
|
|
56
|
+
rusdc update_ref_attr <obj> <common_name> <key> <value> # updates a referenced attribute of one object.
|
|
55
57
|
```
|
|
56
58
|
|
|
57
59
|
# environment-variables
|
data/bin/rusdc
CHANGED
|
@@ -7,7 +7,7 @@ require "usd"
|
|
|
7
7
|
|
|
8
8
|
class Rusdc < Thor
|
|
9
9
|
|
|
10
|
-
desc "chg_add_nr
|
|
10
|
+
desc "chg_add_nr <co> <ci>", "add a CI to a changeorder"
|
|
11
11
|
def chg_add_nr(co, ci)
|
|
12
12
|
template = ERB.new <<-EOF
|
|
13
13
|
{
|
|
@@ -25,7 +25,7 @@ class Rusdc < Thor
|
|
|
25
25
|
puts loadcon.create({:type => "json", :data => json})
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
desc "chg_list_nr", "
|
|
28
|
+
desc "chg_list_nr <co>", "list all CIs of one changeorder"
|
|
29
29
|
def chg_list_nr(co)
|
|
30
30
|
invoke 'find', ['lrel_asset_chgnr', %(chg.chg_ref_num = '#{co}'), "nr"], {:format => "mlr"}
|
|
31
31
|
end
|
|
@@ -35,7 +35,7 @@ class Rusdc < Thor
|
|
|
35
35
|
puts loadcon.create({:type => "json", :data => STDIN.read})
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
desc "field_names
|
|
38
|
+
desc "field_names <object-type>","list all fields of an object including its format"
|
|
39
39
|
def field_names(object)
|
|
40
40
|
e = loadcon.search(object,{'fields' => "*","start" => "1", "size" => "1"})[0]
|
|
41
41
|
e.keys.sort.each do |k|
|
|
@@ -46,46 +46,49 @@ class Rusdc < Thor
|
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
desc "find
|
|
49
|
+
desc "find <object-type> [where-clause] [fields, comma separated] [options]", "finds each object which meets the wc-condition"
|
|
50
50
|
long_desc <<-LONGDESC
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
with --mlr_format you may change the output-format of Miller (mlr) to csv, md (markdown), xtab , dkvp (delimited key-value pairs) ..., refer `mlr --help`
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Examples:
|
|
56
56
|
|
|
57
|
-
-
|
|
58
|
-
|
|
57
|
+
- all grc objects (! don't use this kind of query for objecttype like nr, in, chg etc., whose number of objects is too big)
|
|
58
|
+
rusdc find grc
|
|
59
59
|
|
|
60
|
-
-
|
|
61
|
-
|
|
60
|
+
- all aktive ci which start with the string `servername`, only print the fields @id and name:
|
|
61
|
+
rusdc find nr "name like 'servername%' and delete_flag.sym = 'Active' " "@id,name" --format mlr
|
|
62
62
|
|
|
63
|
-
-
|
|
64
|
-
|
|
63
|
+
- my active incidents with most importent fields:
|
|
64
|
+
rusdc find --format mlr in "assignee.last_name = 'gaida' and status.sym in ('Service pending','Work in progress.','Customer Pending','Open','Hold','Resolved')" ref_num,z_project,summary,status,call_back_date,affected_resource,orig_user_organization
|
|
65
65
|
|
|
66
|
-
-
|
|
67
|
-
|
|
66
|
+
- activity-Log of an incident in xtab format:
|
|
67
|
+
rusdc find alg "call_req_id.ref_num = 'I00001'" "call_req_id,action_desc,analyst,description,time_stamp,type" --format mlr --mlr_format xtab
|
|
68
68
|
|
|
69
|
-
-
|
|
70
|
-
|
|
69
|
+
- the same but only the field description in csv-format:
|
|
70
|
+
rusdc find alg "call_req_id.ref_num = 'I00001'" "description" --format mlr --mlr_format csv
|
|
71
71
|
|
|
72
|
-
-
|
|
73
|
-
|
|
72
|
+
- incidents of the ci with the name `servername`
|
|
73
|
+
rusdc find in "affected_resource.name = 'servername'" "ref_num,summary" --format mlr
|
|
74
74
|
|
|
75
|
-
-
|
|
75
|
+
- combination of all activity-log-description of all incidents of a specific ci in pprint-Miller-format:
|
|
76
|
+
rusdc find alg "call_req_id.affected_resource.name = 'servername'" "description" --format mlr
|
|
77
|
+
|
|
78
|
+
- changeorders of a secific ci:
|
|
76
79
|
rusdc find chg "asset.nr.name = 'servername'" "@COMMON_NAME,summary,status" --format mlr
|
|
77
80
|
|
|
78
|
-
-
|
|
81
|
+
- find all active ci whose name start with dc and check if they have children like Windows or Linux server:
|
|
79
82
|
for ci in $(rusdc find nr "name like 'dc%' and delete_flag.sym = 'active'" "name" --format mlr | sed '1 d'); do rusdc nr_childs $ci > help ; echo "$ci: $(grep -iP '^(Linux|.*MS windows).*server' help)" ; done
|
|
80
83
|
|
|
81
84
|
LONGDESC
|
|
82
|
-
option :format, :type => :string, :default => "json"
|
|
83
|
-
option :mlr_format, :type => :string, :default => "pprint"
|
|
84
|
-
option :nice_time, :type => :boolean, :default => true
|
|
85
|
-
option :debug, :type => :boolean, :default => false
|
|
86
|
-
def find(object, wc, fields="
|
|
85
|
+
option :format, :type => :string, :default => "json", :banner => "[json|yaml|mlr]"
|
|
86
|
+
option :mlr_format, :type => :string, :default => "pprint",:banner => "[pprint|json|md|csv|xtab]"
|
|
87
|
+
option :nice_time, :type => :boolean, :default => true,:banner => "[true|false]"
|
|
88
|
+
option :debug, :type => :boolean, :default => false,:banner => "[true|false]"
|
|
89
|
+
def find(object, wc="", fields="@COMMON_NAME")
|
|
87
90
|
unless (fields =~ /^[\w\_,@]+$/)
|
|
88
|
-
puts "fields-problem: there must be only letters, numbers, comma
|
|
91
|
+
puts "fields-problem: there must be only letters, numbers, comma, the @-sign or underscore, nothing else!"
|
|
89
92
|
else
|
|
90
93
|
con = loadcon
|
|
91
94
|
mlr_array = []
|
|
@@ -137,7 +140,7 @@ class Rusdc < Thor
|
|
|
137
140
|
end # fields check
|
|
138
141
|
end
|
|
139
142
|
|
|
140
|
-
desc "get
|
|
143
|
+
desc "get <object-type> <common_name>", "shows one object"
|
|
141
144
|
option :yaml, :type => :boolean, :default => false
|
|
142
145
|
def get(object, cn)
|
|
143
146
|
e = loadcon.request("/caisd-rest/#{object}/COMMON_NAME-#{cn}")
|
|
@@ -150,7 +153,7 @@ class Rusdc < Thor
|
|
|
150
153
|
end
|
|
151
154
|
end
|
|
152
155
|
|
|
153
|
-
desc "get_attachment_of_ci
|
|
156
|
+
desc "get_attachment_of_ci <ci_name> <filename>", "download an attachment of a CI and print it out on stdout"
|
|
154
157
|
def get_attachment_of_ci(ciname, filename)
|
|
155
158
|
att_nr = loadcon.search("lrel_attachments_nr",{'fields' => "attmnt","wc" => "nr.name = '#{ciname}'"})
|
|
156
159
|
att_nr.each do |att|
|
|
@@ -161,7 +164,7 @@ class Rusdc < Thor
|
|
|
161
164
|
end
|
|
162
165
|
end
|
|
163
166
|
|
|
164
|
-
desc "get_attachment_of_co
|
|
167
|
+
desc "get_attachment_of_co <co_name> <filename>", "download an attachment of a changeorder and print it out on stdout"
|
|
165
168
|
def get_attachment_of_co(coname, filename)
|
|
166
169
|
chg_id=loadcon.request("/caisd-rest/chg/COMMON_NAME-#{coname}")["chg"]["@id"]
|
|
167
170
|
att_nr = loadcon.search("lrel_attachments_changes",{'fields' => "attmnt","wc" => "chg = #{chg_id}"})
|
|
@@ -173,12 +176,12 @@ class Rusdc < Thor
|
|
|
173
176
|
end
|
|
174
177
|
end
|
|
175
178
|
|
|
176
|
-
desc "in_list_child_ins
|
|
179
|
+
desc "in_list_child_ins <in>", "list all child-incidents of one incident"
|
|
177
180
|
def in_list_child_ins(incident)
|
|
178
181
|
invoke('find',['cr', "parent.ref_num = '#{incident}'", "ref_num"], {:format => "mlr"})
|
|
179
182
|
end
|
|
180
183
|
|
|
181
|
-
desc "list_attachments_of_ci", "
|
|
184
|
+
desc "list_attachments_of_ci <ci_name>", "list all attachments of a CI"
|
|
182
185
|
def list_attachments_of_ci(ciname)
|
|
183
186
|
att_nr = loadcon.search("lrel_attachments_nr",{'fields' => "attmnt","wc" => "nr.name = '#{ciname}'"})
|
|
184
187
|
att_nr.each do |att|
|
|
@@ -186,7 +189,7 @@ class Rusdc < Thor
|
|
|
186
189
|
end
|
|
187
190
|
end
|
|
188
191
|
|
|
189
|
-
desc "list_attachments_of_co", "
|
|
192
|
+
desc "list_attachments_of_co <co_name>", "list all attachments of a changeorder"
|
|
190
193
|
def list_attachments_of_co(coname)
|
|
191
194
|
chg_id=loadcon.request("/caisd-rest/chg/COMMON_NAME-#{coname}")["chg"]["@id"]
|
|
192
195
|
att_nr = loadcon.search("lrel_attachments_changes",{'fields' => "attmnt","wc" => "chg = #{chg_id}"})
|
|
@@ -195,7 +198,7 @@ class Rusdc < Thor
|
|
|
195
198
|
end
|
|
196
199
|
end
|
|
197
200
|
|
|
198
|
-
desc "nr_add_child
|
|
201
|
+
desc "nr_add_child <nr-name> <child-name>", "add one child CI to another CI"
|
|
199
202
|
def nr_add_child(nr, child)
|
|
200
203
|
template = ERB.new <<-EOF
|
|
201
204
|
{
|
|
@@ -213,7 +216,7 @@ class Rusdc < Thor
|
|
|
213
216
|
puts loadcon.create({:type => "json", :data => json})
|
|
214
217
|
end
|
|
215
218
|
|
|
216
|
-
desc "nr_changes
|
|
219
|
+
desc "nr_changes <nr> [inactive-too]", "list all open changeorders of one CI"
|
|
217
220
|
option :inactive_too, :type => :boolean, :default => false
|
|
218
221
|
def nr_changes(nr)
|
|
219
222
|
wc_add = (options[:inactive_too] ? "" : " and status.sym in ('Service pending','Work in progress','Customer Pending','Open','Hold')")
|
|
@@ -221,20 +224,20 @@ class Rusdc < Thor
|
|
|
221
224
|
invoke 'find', ['chg', wc, 'chg_ref_num,summary,status'], {:format => "mlr"}
|
|
222
225
|
end
|
|
223
226
|
|
|
224
|
-
desc "nr_childs
|
|
227
|
+
desc "nr_childs <ci-name>", "lists all childs CIs of a specific CI"
|
|
225
228
|
def nr_childs(name)
|
|
226
229
|
loadcon.search("hier",{'fields' => "*","wc" => "parent.name = '#{name}'"}).each do |c|
|
|
227
230
|
puts c["child"]["@COMMON_NAME"]
|
|
228
231
|
end
|
|
229
232
|
end
|
|
230
233
|
|
|
231
|
-
desc "nr_incidents
|
|
234
|
+
desc "nr_incidents <nr> [inactive-too]", "lists all incident of a specific CI"
|
|
232
235
|
option :inactive_too, :type => :boolean, :default => false
|
|
233
236
|
def nr_incidents(nr)
|
|
234
237
|
invoke 'find', ['in', %(affected_resource.name = '#{nr}'#{options[:inactive_too] ? "" : " and not status.sym in ('Cancelled','Closed')"}), "ref_num,summary,status"], {:format => "mlr"}
|
|
235
238
|
end
|
|
236
239
|
|
|
237
|
-
desc "nr_parents
|
|
240
|
+
desc "nr_parents <ci-name>", "lists all parent CIs of a specific CI"
|
|
238
241
|
def nr_parents(name)
|
|
239
242
|
loadcon.search("hier",{'fields' => "*","wc" => "child.name = '#{name}'"}).each do |c|
|
|
240
243
|
puts c["parent"]["@COMMON_NAME"]
|
|
@@ -254,6 +257,45 @@ class Rusdc < Thor
|
|
|
254
257
|
puts loadcon.update({:type => "json", :data => STDIN.read})
|
|
255
258
|
end
|
|
256
259
|
|
|
260
|
+
desc "update_attr <obj> <common_name> <key> <value>", "updates a direct (not referenced) attribute of one object."
|
|
261
|
+
def update_attr(obj, cn, k, v)
|
|
262
|
+
template = ERB.new <<-EOF
|
|
263
|
+
{
|
|
264
|
+
"<%= obj %>": {
|
|
265
|
+
"@COMMON_NAME": "<%= cn %>",
|
|
266
|
+
"<%= k %>": "<%= v %>"
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
EOF
|
|
270
|
+
json = template.result_with_hash({
|
|
271
|
+
:obj => obj,
|
|
272
|
+
:cn => cn,
|
|
273
|
+
:k => k,
|
|
274
|
+
:v => v
|
|
275
|
+
})
|
|
276
|
+
puts loadcon.update({:type => "json", :data => json})
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
desc "update_ref_attr <obj> <common_name> <key> <value>", "updates a referenced attribute of one object."
|
|
280
|
+
def update_ref_attr(obj, cn, k, v)
|
|
281
|
+
template = ERB.new <<-EOF
|
|
282
|
+
{
|
|
283
|
+
"<%= obj %>": {
|
|
284
|
+
"@COMMON_NAME": "<%= cn %>",
|
|
285
|
+
"<%= k %>": {
|
|
286
|
+
"@COMMON_NAME": "<%= v %>"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
EOF
|
|
291
|
+
json = template.result_with_hash({
|
|
292
|
+
:obj => obj,
|
|
293
|
+
:cn => cn,
|
|
294
|
+
:k => k,
|
|
295
|
+
:v => v
|
|
296
|
+
})
|
|
297
|
+
puts loadcon.update({:type => "json", :data => json})
|
|
298
|
+
end
|
|
257
299
|
|
|
258
300
|
private
|
|
259
301
|
|
data/change_log.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.8
|
|
4
|
+
|
|
5
|
+
- new function in rusdc `update_attr`
|
|
6
|
+
|
|
7
|
+
Example for `update_attr`:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
> rusdc help update_attr
|
|
11
|
+
Usage:
|
|
12
|
+
rusdc update_attr <obj> <common_name> <key> <value>
|
|
13
|
+
|
|
14
|
+
updates a direct (not referenced) attribute of one object.
|
|
15
|
+
|
|
16
|
+
> rusdc get cnt 'gaida, oliver' | grep alt_phone
|
|
17
|
+
"alt_phone": "",
|
|
18
|
+
> rusdc update_attr cnt 'gaida, oliver' alt_phone "+49123456789"
|
|
19
|
+
> rusdc get cnt 'gaida, oliver' | grep alt_phone
|
|
20
|
+
"alt_phone": "+49123456789",
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- new function in rusdc `update_ref_attr`
|
|
24
|
+
|
|
25
|
+
Example for `update_ref_attr`:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
> rusdc help update_ref_attr
|
|
29
|
+
Usage:
|
|
30
|
+
rusdc update_ref_attr <obj> <common_name> <key> <value>
|
|
31
|
+
|
|
32
|
+
updates a referenced attribute of one object.
|
|
33
|
+
> rusdc find chg "chg_ref_num = 'CO000001'" status --format mlr
|
|
34
|
+
status
|
|
35
|
+
Work in progress
|
|
36
|
+
> rusdc update_ref_attr chg CO000001 status "Service pending"
|
|
37
|
+
> rusdc find chg "chg_ref_num = 'CO000001'" status --format mlr
|
|
38
|
+
status
|
|
39
|
+
Service pending
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 0.1.7
|
|
43
|
+
|
|
44
|
+
- fix sorting the output of `rusdc find`
|
|
45
|
+
- add new rusdc function `rusdc in_list_child_ins`
|
data/usd.gemspec
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Gem::Specification.new do |spec|
|
|
2
2
|
spec.name = 'usd'
|
|
3
|
-
spec.version = '0.1.
|
|
4
|
-
spec.date = '2019-11-
|
|
3
|
+
spec.version = '0.1.8'
|
|
4
|
+
spec.date = '2019-11-04'
|
|
5
5
|
spec.summary = "SDM REST-API-Calls"
|
|
6
6
|
spec.description = "a Ruby class and a commandlinetool for SDM REST-API-Calls"
|
|
7
7
|
spec.authors = ["Oliver Gaida"]
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: usd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Oliver Gaida
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-11-
|
|
11
|
+
date: 2019-11-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -80,6 +80,7 @@ files:
|
|
|
80
80
|
- README.md
|
|
81
81
|
- bin/rusdc
|
|
82
82
|
- bin/set_env
|
|
83
|
+
- change_log.md
|
|
83
84
|
- lib/usd.rb
|
|
84
85
|
- usd.gemspec
|
|
85
86
|
homepage: https://github.com/ogaida/usd
|