crowbar-client 3.6.1 → 3.9.3

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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/lib/crowbar/client/app.rb +6 -0
  4. data/lib/crowbar/client/app/entry.rb +13 -0
  5. data/lib/crowbar/client/app/proposal.rb +20 -0
  6. data/lib/crowbar/client/app/restricted.rb +136 -0
  7. data/lib/crowbar/client/app/ses.rb +54 -0
  8. data/lib/crowbar/client/command.rb +6 -0
  9. data/lib/crowbar/client/command/base.rb +9 -0
  10. data/lib/crowbar/client/command/proposal/edit.rb +5 -1
  11. data/lib/crowbar/client/command/proposal/show.rb +7 -1
  12. data/lib/crowbar/client/command/restricted.rb +38 -0
  13. data/lib/crowbar/client/command/restricted/allocate.rb +51 -0
  14. data/lib/crowbar/client/command/restricted/ping.rb +45 -0
  15. data/lib/crowbar/client/command/restricted/show.rb +72 -0
  16. data/lib/crowbar/client/command/restricted/transition.rb +47 -0
  17. data/lib/crowbar/client/command/ses.rb +29 -0
  18. data/lib/crowbar/client/command/ses/upload.rb +60 -0
  19. data/lib/crowbar/client/command/upgrade/repocheck.rb +3 -1
  20. data/lib/crowbar/client/config.rb +24 -8
  21. data/lib/crowbar/client/request.rb +6 -0
  22. data/lib/crowbar/client/request/restricted.rb +38 -0
  23. data/lib/crowbar/client/request/restricted/allocate.rb +50 -0
  24. data/lib/crowbar/client/request/restricted/ping.rb +49 -0
  25. data/lib/crowbar/client/request/restricted/show.rb +50 -0
  26. data/lib/crowbar/client/request/restricted/transition.rb +63 -0
  27. data/lib/crowbar/client/request/ses.rb +29 -0
  28. data/lib/crowbar/client/request/ses/upload.rb +65 -0
  29. data/lib/crowbar/client/util.rb +3 -0
  30. data/lib/crowbar/client/util/apiversion.rb +2 -8
  31. data/lib/crowbar/client/util/osrelease.rb +37 -0
  32. data/lib/crowbar/client/version.rb +2 -2
  33. metadata +26 -10
@@ -0,0 +1,50 @@
1
+ #
2
+ # Copyright 2019, SUSE
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ module Crowbar
18
+ module Client
19
+ module Request
20
+ module Restricted
21
+ #
22
+ # Implementation for the restricted show request
23
+ #
24
+ class Show < Base
25
+ #
26
+ # HTTP method that gets used by the request
27
+ #
28
+ # @return [Symbol] the method for the request
29
+ #
30
+ def method
31
+ :get
32
+ end
33
+
34
+ #
35
+ # Path to the API endpoint for the request
36
+ #
37
+ # @return [String] path to the API endpoint
38
+ #
39
+ def url
40
+ [
41
+ "restricted",
42
+ "show",
43
+ attrs.name
44
+ ].join("/")
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,63 @@
1
+ #
2
+ # Copyright 2019, SUSE
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require "easy_diff"
18
+
19
+ module Crowbar
20
+ module Client
21
+ module Request
22
+ module Restricted
23
+ #
24
+ # Implementation for the restricted transition request
25
+ #
26
+ class Transition < Base
27
+ #
28
+ # Override the request content
29
+ #
30
+ # @return [Hash] the content for the request
31
+ #
32
+ def content
33
+ super.easy_merge!(
34
+ state: attrs.state
35
+ )
36
+ end
37
+
38
+ #
39
+ # HTTP method that gets used by the request
40
+ #
41
+ # @return [Symbol] the method for the request
42
+ #
43
+ def method
44
+ :post
45
+ end
46
+
47
+ #
48
+ # Path to the API endpoint for the request
49
+ #
50
+ # @return [String] path to the API endpoint
51
+ #
52
+ def url
53
+ [
54
+ "restricted",
55
+ "transition",
56
+ attrs.name
57
+ ].join("/")
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,29 @@
1
+ #
2
+ # Copyright 2019, SUSE
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ module Crowbar
18
+ module Client
19
+ module Request
20
+ #
21
+ # Module for the SES request implementations
22
+ #
23
+ module Ses
24
+ autoload :Upload,
25
+ File.expand_path("../ses/upload", __FILE__)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,65 @@
1
+ #
2
+ # Copyright 2019, SUSE
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require "easy_diff"
18
+
19
+ module Crowbar
20
+ module Client
21
+ module Request
22
+ module Ses
23
+ #
24
+ # Implementation for the SES config upload request
25
+ #
26
+ class Upload < Base
27
+ #
28
+ # Override the request content
29
+ #
30
+ # @return [Hash] the content for the request
31
+ #
32
+ def content
33
+ super.easy_merge!(
34
+ sesconfig: {
35
+ file: attrs.file
36
+ }
37
+ )
38
+ end
39
+
40
+ #
41
+ # HTTP method that gets used by the request
42
+ #
43
+ # @return [Symbol] the method for the request
44
+ #
45
+ def method
46
+ :post
47
+ end
48
+
49
+ #
50
+ # Path to the API endpoint for the request
51
+ #
52
+ # @return [String] path to the API endpoint
53
+ #
54
+ def url
55
+ [
56
+ "ses",
57
+ "settings",
58
+ "upload"
59
+ ].join("/")
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -28,6 +28,9 @@ module Crowbar
28
28
 
29
29
  autoload :ApiVersion,
30
30
  File.expand_path("../util/apiversion", __FILE__)
31
+
32
+ autoload :OsRelease,
33
+ File.expand_path("../util/osrelease", __FILE__)
31
34
  end
32
35
  end
33
36
  end
@@ -40,15 +40,9 @@ module Crowbar
40
40
 
41
41
  class << self
42
42
  def default
43
- os_release_file = "/etc/os-release"
43
+ os_release = OsRelease.fields
44
44
 
45
- if File.exist?(os_release_file)
46
- os_release = Hash[
47
- File.open(os_release_file).read.scan(/(\S+)\s*=\s*"([^"]+)/)
48
- ]
49
-
50
- return 1.0 if os_release["VERSION_ID"] == "12.1" && os_release["ID"] == "sles"
51
- end
45
+ return 1.0 if os_release["VERSION_ID"] == "12.1" && os_release["ID"] == "sles"
52
46
 
53
47
  2.0
54
48
  end
@@ -0,0 +1,37 @@
1
+ #
2
+ # Copyright 2019, SUSE
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ module Crowbar
18
+ module Client
19
+ module Util
20
+ class OsRelease
21
+ class << self
22
+ def fields
23
+ os_release_file = "/etc/os-release"
24
+
25
+ if File.exist?(os_release_file)
26
+ return Hash[
27
+ File.open(os_release_file).read.scan(/(\S+)\s*=\s*"([^"]+)/)
28
+ ]
29
+ end
30
+
31
+ {}
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -28,12 +28,12 @@ module Crowbar
28
28
  #
29
29
  # Minor version
30
30
  #
31
- MINOR = 6
31
+ MINOR = 9
32
32
 
33
33
  #
34
34
  # Patch version
35
35
  #
36
- PATCH = 1
36
+ PATCH = 3
37
37
 
38
38
  #
39
39
  # Optional suffix
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crowbar-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.1
4
+ version: 3.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Boerger
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-12-14 00:00:00.000000000 Z
13
+ date: 2020-09-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -114,22 +114,22 @@ dependencies:
114
114
  name: activesupport
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 3.0.0
120
117
  - - "<"
121
118
  - !ruby/object:Gem::Version
122
119
  version: 5.0.0
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 3.0.0
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 3.0.0
130
127
  - - "<"
131
128
  - !ruby/object:Gem::Version
132
129
  version: 5.0.0
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 3.0.0
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: rest-client
135
135
  requirement: !ruby/object:Gem::Requirement
@@ -244,9 +244,11 @@ files:
244
244
  - lib/crowbar/client/app/node.rb
245
245
  - lib/crowbar/client/app/proposal.rb
246
246
  - lib/crowbar/client/app/repository.rb
247
+ - lib/crowbar/client/app/restricted.rb
247
248
  - lib/crowbar/client/app/role.rb
248
249
  - lib/crowbar/client/app/server.rb
249
250
  - lib/crowbar/client/app/services.rb
251
+ - lib/crowbar/client/app/ses.rb
250
252
  - lib/crowbar/client/app/upgrade.rb
251
253
  - lib/crowbar/client/app/virtual_ip.rb
252
254
  - lib/crowbar/client/command.rb
@@ -309,6 +311,11 @@ files:
309
311
  - lib/crowbar/client/command/repository/deactivate.rb
310
312
  - lib/crowbar/client/command/repository/deactivate_all.rb
311
313
  - lib/crowbar/client/command/repository/list.rb
314
+ - lib/crowbar/client/command/restricted.rb
315
+ - lib/crowbar/client/command/restricted/allocate.rb
316
+ - lib/crowbar/client/command/restricted/ping.rb
317
+ - lib/crowbar/client/command/restricted/show.rb
318
+ - lib/crowbar/client/command/restricted/transition.rb
312
319
  - lib/crowbar/client/command/role.rb
313
320
  - lib/crowbar/client/command/role/list.rb
314
321
  - lib/crowbar/client/command/role/show.rb
@@ -320,6 +327,8 @@ files:
320
327
  - lib/crowbar/client/command/services/disable_restart.rb
321
328
  - lib/crowbar/client/command/services/list_restarts.rb
322
329
  - lib/crowbar/client/command/services/restart_flags.rb
330
+ - lib/crowbar/client/command/ses.rb
331
+ - lib/crowbar/client/command/ses/upload.rb
323
332
  - lib/crowbar/client/command/upgrade.rb
324
333
  - lib/crowbar/client/command/upgrade/admin.rb
325
334
  - lib/crowbar/client/command/upgrade/backup.rb
@@ -419,6 +428,11 @@ files:
419
428
  - lib/crowbar/client/request/repository/deactivate_all.rb
420
429
  - lib/crowbar/client/request/repository/list.rb
421
430
  - lib/crowbar/client/request/rest.rb
431
+ - lib/crowbar/client/request/restricted.rb
432
+ - lib/crowbar/client/request/restricted/allocate.rb
433
+ - lib/crowbar/client/request/restricted/ping.rb
434
+ - lib/crowbar/client/request/restricted/show.rb
435
+ - lib/crowbar/client/request/restricted/transition.rb
422
436
  - lib/crowbar/client/request/role.rb
423
437
  - lib/crowbar/client/request/role/list.rb
424
438
  - lib/crowbar/client/request/role/show.rb
@@ -430,6 +444,8 @@ files:
430
444
  - lib/crowbar/client/request/services/disable_restart.rb
431
445
  - lib/crowbar/client/request/services/list_restarts.rb
432
446
  - lib/crowbar/client/request/services/restart_flags.rb
447
+ - lib/crowbar/client/request/ses.rb
448
+ - lib/crowbar/client/request/ses/upload.rb
433
449
  - lib/crowbar/client/request/upgrade.rb
434
450
  - lib/crowbar/client/request/upgrade/admin.rb
435
451
  - lib/crowbar/client/request/upgrade/backup.rb
@@ -448,6 +464,7 @@ files:
448
464
  - lib/crowbar/client/util.rb
449
465
  - lib/crowbar/client/util/apiversion.rb
450
466
  - lib/crowbar/client/util/editor.rb
467
+ - lib/crowbar/client/util/osrelease.rb
451
468
  - lib/crowbar/client/util/runner.rb
452
469
  - lib/crowbar/client/version.rb
453
470
  - spec/crowbar/client/app_spec.rb
@@ -619,8 +636,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
619
636
  - !ruby/object:Gem::Version
620
637
  version: '0'
621
638
  requirements: []
622
- rubyforge_project:
623
- rubygems_version: 2.7.8
639
+ rubygems_version: 3.1.4
624
640
  signing_key:
625
641
  specification_version: 4
626
642
  summary: Crowbar commandline client