usd 1.3.5 → 1.4.2
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/LICENSE.md +0 -0
- data/README.md +11 -2
- data/bin/rusdc +9 -3
- data/bin/set_env +0 -0
- data/change_log.md +20 -0
- data/images/vcard.png +0 -0
- data/lib/usd.rb +9 -5
- data/usd.gemspec +3 -2
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad9d4b334ba1e9d009ec6eb8a2192afa40ab2d777669d5cf1c96f9559f288c9a
|
|
4
|
+
data.tar.gz: 488d9459d4f3bbfeaffe54eedc225f6d14505e779019c058c7ca3d5c4bf4e338
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 91a0ff217c1abbd4f1f6d86bfbe151e9ca757cf6a7d19484773e257b38b4927f57f4f9d917d8cafa011c6952075e8e64cc163af55ee6b84f67dbb91a3124731e
|
|
7
|
+
data.tar.gz: e8132c8e6f4e7f1ad35de70224fd3017616a7503ae9edcd441a5e4294795641a97e578adbaa356717e6d9e00a35854152fdbfcee06ea79f9d4664bdc393bb294
|
data/LICENSE.md
CHANGED
|
File without changes
|
data/README.md
CHANGED
|
@@ -56,13 +56,14 @@ rusdc get_attachment_of_co <co_name> <filename> # d
|
|
|
56
56
|
rusdc get_attachment_of_in <incident> <filename> # download an attachment of an Incident and print it out on stdout
|
|
57
57
|
rusdc help [COMMAND] # Describe available commands or one specific command
|
|
58
58
|
rusdc in_add_2_chg <changeorder> <incident> # add incident to changeorder
|
|
59
|
-
rusdc in_add_attachment <in> <file> # attach
|
|
59
|
+
rusdc in_add_attachment <in> <file> # attach a file to an incident or problem
|
|
60
60
|
rusdc in_list_child_ins <in> # list all child-incidents of one incident
|
|
61
61
|
rusdc list_attachments_of_ci <ci_name> # list all attachments of a CI
|
|
62
62
|
rusdc list_attachments_of_co <co_name> # list all attachments of a changeorder
|
|
63
|
-
rusdc list_attachments_of_in <in> # list all attachments of an
|
|
63
|
+
rusdc list_attachments_of_in <in> # list all attachments of an incident or problem
|
|
64
64
|
rusdc nr_add_attachment <nr> <file> # attach the file to nr
|
|
65
65
|
rusdc nr_add_child <nr-name> <child-name> # add one child CI to another CI
|
|
66
|
+
rusdc nr_add_contact <nr> <cnt_email> # add contact to configuration-item
|
|
66
67
|
rusdc nr_add_org <nr> <org> # add an Organisation to a ConfigurationItem
|
|
67
68
|
rusdc nr_changes <nr> [inactive-too] # list all open changeorders of one CI
|
|
68
69
|
rusdc nr_childs <ci-name> # lists all childs CIs of a specific CI
|
|
@@ -112,3 +113,11 @@ foo2 foo TEST
|
|
|
112
113
|
```
|
|
113
114
|
|
|
114
115
|
more examples under [find examples-Wikipage](https://github.com/ogaida/usd/wiki/find-examples) or in the [change_log](https://github.com/ogaida/usd/blob/master/change_log.md)
|
|
116
|
+
|
|
117
|
+
# senarios
|
|
118
|
+
|
|
119
|
+
<img src="https://yuml.me/diagram/scruffy/class/[SDM%20REST-API{bg:red}]<->[usd-gem{bg:green}]<->[rusdc{bg:orange}],[ruby-script{bg:orange}]<->[usd-gem],[sinatra%20web-app{bg:orange}]<->[usd-gem],[bash commands]<->[rusdc],[shell-scripts]<->[rusdc],[import]->[ruby-script],[ruby-script]->[export],[reports]<-[sinatra%20web-app]<-[drop datafiles/emails/create objects]">
|
|
120
|
+
|
|
121
|
+
# feedback
|
|
122
|
+
|
|
123
|
+
Since I could only test this gem in a 14.1 environment, I would be interested to know whether it also works in a version 17 environment of CA Service Management. Any kind of feedback is very welcome.
|
data/bin/rusdc
CHANGED
|
@@ -232,8 +232,14 @@ class Rusdc < Thor
|
|
|
232
232
|
|
|
233
233
|
desc "get_attachment_of_co <co_name> <filename>", "download an attachment of a changeorder and print it out on stdout"
|
|
234
234
|
def get_attachment_of_co(coname, filename)
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
chg_id=loadcon.request("/caisd-rest/chg/COMMON_NAME-#{coname}")["chg"]["@id"]
|
|
236
|
+
att_nr = loadcon.search("lrel_attachments_changes",{'fields' => "attmnt","wc" => "chg = #{chg_id}"})
|
|
237
|
+
att_nr.each do |att|
|
|
238
|
+
attmnt = loadcon.request("/caisd-rest/attmnt/#{att["attmnt"]["@id"]}")["attmnt"]
|
|
239
|
+
if attmnt["orig_file_name"] == filename
|
|
240
|
+
puts loadcon.request("/caisd-rest/attmnt/#{attmnt["@id"]}/file-resource",{:unchanged => true})
|
|
241
|
+
end
|
|
242
|
+
end
|
|
237
243
|
end
|
|
238
244
|
|
|
239
245
|
desc "in_add_attachment <in> <file>", "attach a file to an incident or problem"
|
|
@@ -514,7 +520,7 @@ class Rusdc < Thor
|
|
|
514
520
|
})
|
|
515
521
|
data = loadcon.update({:type => "json", :data => json})
|
|
516
522
|
if data.class == RestClient::BadRequest
|
|
517
|
-
puts "
|
|
523
|
+
puts "Hint: Do not panic, I got a bad Request-Response from USD-API. Now I try again to update via IDs of COMMON_NAME arguments. Be aware to specify a ref_obj if it's not nr."
|
|
518
524
|
cn_id = loadcon.search(obj,{'fields' => "@id","wc" => "#{Usd::CN[obj]} = '#{cn}' and delete_flag = 0"})[0]["@id"]
|
|
519
525
|
value_id = loadcon.search(ref_obj,{'fields' => "@id","wc" => "#{Usd::CN[ref_obj]} = '#{v}' and delete_flag = 0"})[0]["@id"]
|
|
520
526
|
invoke "update_ref_attr_by_id", [obj, cn_id, k, value_id]
|
data/bin/set_env
CHANGED
|
File without changes
|
data/change_log.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# rusdc changelog
|
|
2
2
|
|
|
3
|
+
## 1.4.2
|
|
4
|
+
|
|
5
|
+
- count number changed for search method from fixed value of 50 to dynamic value
|
|
6
|
+
|
|
7
|
+
## 1.4.1
|
|
8
|
+
|
|
9
|
+
- changed some comments
|
|
10
|
+
|
|
11
|
+
## 1.4.0
|
|
12
|
+
|
|
13
|
+
- remove "warning: URI.escape is obsolete"
|
|
14
|
+
|
|
15
|
+
## 1.3.7
|
|
16
|
+
|
|
17
|
+
- Bugfix in rusdc-function `get_attachment_of_co`
|
|
18
|
+
|
|
19
|
+
## 1.3.6
|
|
20
|
+
|
|
21
|
+
- Bugfix : uploaded filename with special character will be renamed with `URI.escape`
|
|
22
|
+
|
|
3
23
|
## 1.3.5
|
|
4
24
|
|
|
5
25
|
- new function `nr_add_contact <nr> <email>` to assign a contact to a configuration-item
|
data/images/vcard.png
CHANGED
|
File without changes
|
data/lib/usd.rb
CHANGED
|
@@ -11,6 +11,7 @@ require 'tempfile'
|
|
|
11
11
|
class Usd
|
|
12
12
|
|
|
13
13
|
CN={
|
|
14
|
+
"grc" => "type",
|
|
14
15
|
"chg" => "chg_ref_num",
|
|
15
16
|
"cnt" => "combo_name",
|
|
16
17
|
"arcpur_rule" => "name",
|
|
@@ -160,10 +161,11 @@ class Usd
|
|
|
160
161
|
RestClient.log = STDOUT if @debug
|
|
161
162
|
hash = {:method => "get", :header => header(), :unchanged => false, :json => "", :base_url => @base_url}.update hash
|
|
162
163
|
puts "request - hash: #{JSON.pretty_generate(hash)}" if @debug
|
|
164
|
+
parser = URI::RFC2396_Parser.new
|
|
163
165
|
if (uri !~ /^http/)
|
|
164
|
-
url =
|
|
166
|
+
url = parser.escape("#{hash[:base_url]}#{uri}")
|
|
165
167
|
else
|
|
166
|
-
url =
|
|
168
|
+
url = parser.escape(uri)
|
|
167
169
|
end
|
|
168
170
|
begin
|
|
169
171
|
if hash[:method] == "get"
|
|
@@ -271,7 +273,7 @@ class Usd
|
|
|
271
273
|
else
|
|
272
274
|
retArray = res_rdata["collection_#{object}"][object]
|
|
273
275
|
if total_count > (count + start - 1)
|
|
274
|
-
new_params = {"start" => (start +
|
|
276
|
+
new_params = {"start" => (start + count)}
|
|
275
277
|
params = params.update new_params
|
|
276
278
|
retArray += search(object,params)
|
|
277
279
|
end
|
|
@@ -283,7 +285,9 @@ class Usd
|
|
|
283
285
|
baseurl =~ /^([^:]+):/
|
|
284
286
|
server = $1
|
|
285
287
|
filename = File.basename(file)
|
|
286
|
-
|
|
288
|
+
#filename_escaped = URI.escape(filename)
|
|
289
|
+
filename_escaped = filename.gsub(/[^0-9A-Za-z.\-]/, '_')
|
|
290
|
+
uri = "/caisd-rest/attmnt?repositoryId=1002&serverName=#{server}&mimeType=Text&description=#{filename_escaped}"
|
|
287
291
|
url = URI("#{baseurl}#{uri}")
|
|
288
292
|
http = Net::HTTP.new(url.host, url.port);
|
|
289
293
|
request = Net::HTTP::Post.new(url)
|
|
@@ -294,7 +298,7 @@ class Usd
|
|
|
294
298
|
fileObj = File.open(file, "rb")
|
|
295
299
|
fileContent = fileObj.read
|
|
296
300
|
fileObj.close
|
|
297
|
-
request.body = "--*****MessageBoundary*****\r\n \r\nContent-Disposition: form-data; name=\"payload\" \r\nContent-Type: application/xml; CHARACTERSET=UTF-8 \r\n\r\n \r\n<attmnt> \r\n<repository id=\"1002\"></repository> \r\n<orig_file_name>#{
|
|
301
|
+
request.body = "--*****MessageBoundary*****\r\n \r\nContent-Disposition: form-data; name=\"payload\" \r\nContent-Type: application/xml; CHARACTERSET=UTF-8 \r\n\r\n \r\n<attmnt> \r\n<repository id=\"1002\"></repository> \r\n<orig_file_name>#{filename_escaped}</orig_file_name> \r\n<attmnt_name>#{filename_escaped}</attmnt_name> \r\n<description>Uploaded with rusdc from rubygem usd</description> \r\n</attmnt> \r\n\r\n \r\n--*****MessageBoundary*****\r\n \r\nContent-Disposition: form-data; name=\"#{filename_escaped}\"; filename=\"#{filename_escaped}\" \r\nContent-Type: application/octet-stream \r\nContent-Transfer-Encoding: base64\r\n\r\n#{Base64.encode64(fileContent)}\r\n\r\n \r\n--*****MessageBoundary*****--\r\n"
|
|
298
302
|
response = http.request(request)
|
|
299
303
|
response.read_body
|
|
300
304
|
end
|
data/usd.gemspec
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Gem::Specification.new do |spec|
|
|
2
2
|
spec.name = 'usd'
|
|
3
|
-
spec.version = '1.
|
|
4
|
-
spec.date = '2020-
|
|
3
|
+
spec.version = '1.4.2'
|
|
4
|
+
spec.date = '2020-12-18'
|
|
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"]
|
|
@@ -13,4 +13,5 @@ Gem::Specification.new do |spec|
|
|
|
13
13
|
spec.add_runtime_dependency 'thor', '~> 0.20', '>= 0.20.3'
|
|
14
14
|
spec.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.0'
|
|
15
15
|
spec.add_runtime_dependency 'json', '~> 2.1', '>= 2.1.0'
|
|
16
|
+
spec.license = 'MIT'
|
|
16
17
|
end
|
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: 1.
|
|
4
|
+
version: 1.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Oliver Gaida
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -86,7 +86,8 @@ files:
|
|
|
86
86
|
- lib/usd.rb
|
|
87
87
|
- usd.gemspec
|
|
88
88
|
homepage: https://github.com/ogaida/usd
|
|
89
|
-
licenses:
|
|
89
|
+
licenses:
|
|
90
|
+
- MIT
|
|
90
91
|
metadata: {}
|
|
91
92
|
post_install_message:
|
|
92
93
|
rdoc_options: []
|
|
@@ -103,8 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
103
104
|
- !ruby/object:Gem::Version
|
|
104
105
|
version: '0'
|
|
105
106
|
requirements: []
|
|
106
|
-
|
|
107
|
-
rubygems_version: 2.7.6
|
|
107
|
+
rubygems_version: 3.1.2
|
|
108
108
|
signing_key:
|
|
109
109
|
specification_version: 4
|
|
110
110
|
summary: SDM REST-API-Calls
|