crowbar-client 3.6.1 → 3.7.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/CHANGELOG.md +5 -0
- data/lib/crowbar/client/app.rb +3 -0
- data/lib/crowbar/client/app/entry.rb +7 -0
- data/lib/crowbar/client/app/ses.rb +54 -0
- data/lib/crowbar/client/command.rb +3 -0
- data/lib/crowbar/client/command/ses.rb +29 -0
- data/lib/crowbar/client/command/ses/upload.rb +60 -0
- data/lib/crowbar/client/command/upgrade/repocheck.rb +1 -1
- data/lib/crowbar/client/config.rb +24 -8
- data/lib/crowbar/client/request.rb +3 -0
- data/lib/crowbar/client/request/ses.rb +29 -0
- data/lib/crowbar/client/request/ses/upload.rb +65 -0
- data/lib/crowbar/client/util.rb +3 -0
- data/lib/crowbar/client/util/apiversion.rb +2 -8
- data/lib/crowbar/client/util/osrelease.rb +37 -0
- data/lib/crowbar/client/version.rb +2 -2
- metadata +9 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dde7d7523db4411363365404f5e439b292b78723488ae6a732de79ecb08ae200
|
4
|
+
data.tar.gz: a692fb4b07d250b28e317077cffb0d40166a70c870d74b8e16e398a97f57d6f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed7acd0f36016af684a11e9c4968f687d96f27385e407c348f5e4edde299403cfbce83ff8245f2f85f4d0b6058a9844b61bbc67749aba7d33d90a6c28bf1fab5
|
7
|
+
data.tar.gz: e07e211190cd10599af16e18e3504833648150eec3dff9510245bf816912143345f6a2af941907700ce1a3ab0b5c8130f911cf10ea8615882707d50a5adfa50d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [3.7.0](https://github.com/crowbar/crowbar-client/releases/tag/v3.7.0) - 2018-12-14
|
4
|
+
|
5
|
+
* ENHANCEMENT
|
6
|
+
* Better upgrade repocheck output
|
7
|
+
|
3
8
|
## [3.6.1](https://github.com/crowbar/crowbar-client/releases/tag/v3.6.1) - 2018-12-07
|
4
9
|
|
5
10
|
* BUGFIX
|
data/lib/crowbar/client/app.rb
CHANGED
@@ -166,6 +166,13 @@ module Crowbar
|
|
166
166
|
desc "services [COMMANDS]",
|
167
167
|
"Services specific commands, call without params for help"
|
168
168
|
subcommand "services", Crowbar::Client::App::Services
|
169
|
+
|
170
|
+
desc "ses [COMMANDS]",
|
171
|
+
"SES (Ceph) specific commands, call without params for help"
|
172
|
+
subcommand "ses", Crowbar::Client::App::Ses
|
173
|
+
|
174
|
+
# hide SES command in older versions
|
175
|
+
remove_command :ses unless Config.defaults[:cloud_version].to_i >= 9
|
169
176
|
end
|
170
177
|
end
|
171
178
|
end
|
@@ -0,0 +1,54 @@
|
|
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 App
|
20
|
+
#
|
21
|
+
# A Thor based CLI wrapper for SES commands
|
22
|
+
#
|
23
|
+
class Ses < Base
|
24
|
+
desc "upload FILE",
|
25
|
+
"Upload SES configuration file"
|
26
|
+
|
27
|
+
long_desc <<-LONGDESC
|
28
|
+
`upload FILE` will upload yaml file with SES configuration to the
|
29
|
+
server. Data inside this file could be used later for integrating
|
30
|
+
SES cluster with other services.
|
31
|
+
LONGDESC
|
32
|
+
|
33
|
+
#
|
34
|
+
# SES config upload command
|
35
|
+
#
|
36
|
+
# It will upload yaml file with SES configuration to the server.
|
37
|
+
# Data inside this file could be used later for integrating SES
|
38
|
+
# cluster with other services.
|
39
|
+
#
|
40
|
+
# @param file [String] the path to the file
|
41
|
+
#
|
42
|
+
def upload(file)
|
43
|
+
Command::Ses::Upload.new(
|
44
|
+
*command_params(
|
45
|
+
file: file
|
46
|
+
)
|
47
|
+
).execute
|
48
|
+
rescue => e
|
49
|
+
catch_errors(e)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
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 Command
|
20
|
+
#
|
21
|
+
# Module for the SES command 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,60 @@
|
|
1
|
+
# Copyright 2019, SUSE
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#
|
15
|
+
|
16
|
+
module Crowbar
|
17
|
+
module Client
|
18
|
+
module Command
|
19
|
+
module Ses
|
20
|
+
#
|
21
|
+
# Implementation for the SES config upload command
|
22
|
+
#
|
23
|
+
class Upload < Base
|
24
|
+
def request
|
25
|
+
args.file =
|
26
|
+
case args.file
|
27
|
+
when "-"
|
28
|
+
stdin.to_io
|
29
|
+
when File
|
30
|
+
args.file
|
31
|
+
else
|
32
|
+
unless File.exist?(args.file)
|
33
|
+
err "File #{args.file} does not exist."
|
34
|
+
end
|
35
|
+
File.new(
|
36
|
+
args.file,
|
37
|
+
File::RDONLY
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
@request ||= Request::Ses::Upload.new(
|
42
|
+
args
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
def execute
|
47
|
+
request.process do |request|
|
48
|
+
case request.code
|
49
|
+
when 200
|
50
|
+
say "Successfully uploaded SES configuration"
|
51
|
+
else
|
52
|
+
err request.parsed_response["error"]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -61,6 +61,7 @@ module Crowbar
|
|
61
61
|
apiversion: default_apiversion,
|
62
62
|
experimental: default_experimental,
|
63
63
|
upgrade_versions: default_upgrade_versions,
|
64
|
+
cloud_version: default_cloud_version,
|
64
65
|
debug: default_debug
|
65
66
|
)
|
66
67
|
end
|
@@ -108,18 +109,33 @@ module Crowbar
|
|
108
109
|
return "7-to-8" if File.exist?("/var/lib/crowbar/upgrade/7-to-8-upgrade-running")
|
109
110
|
|
110
111
|
# if upgrade has not been started, check the system version
|
111
|
-
|
112
|
-
|
113
|
-
if File.exist?(os_release_file)
|
114
|
-
os_release = Hash[
|
115
|
-
File.open(os_release_file).read.scan(/(\S+)\s*=\s*"([^"]+)/)
|
116
|
-
]
|
117
|
-
return "6-to-7" if os_release["VERSION_ID"] == "12.1"
|
118
|
-
end
|
112
|
+
return "6-to-7" if default_cloud_version == "6"
|
119
113
|
|
120
114
|
"7-to-8"
|
121
115
|
end
|
122
116
|
|
117
|
+
#
|
118
|
+
# Define a default cloud version value
|
119
|
+
# It is detected based on OS release for local machine or set by user via ENV variable.
|
120
|
+
#
|
121
|
+
# @return [String] the default cloud version value
|
122
|
+
#
|
123
|
+
def default_cloud_version
|
124
|
+
return ENV["CROWBAR_CLOUD_VERSION"] if ENV["CROWBAR_CLOUD_VERSION"].present?
|
125
|
+
|
126
|
+
os_release = Crowbar::Client::Util::OsRelease.fields
|
127
|
+
case os_release["VERSION_ID"]
|
128
|
+
when "12.1"
|
129
|
+
"6"
|
130
|
+
when "12.2"
|
131
|
+
"7"
|
132
|
+
when "12.3"
|
133
|
+
"8"
|
134
|
+
else
|
135
|
+
"9"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
123
139
|
#
|
124
140
|
# Define a default alias value
|
125
141
|
#
|
@@ -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
|
data/lib/crowbar/client/util.rb
CHANGED
@@ -40,15 +40,9 @@ module Crowbar
|
|
40
40
|
|
41
41
|
class << self
|
42
42
|
def default
|
43
|
-
|
43
|
+
os_release = OsRelease.fields
|
44
44
|
|
45
|
-
if
|
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
|
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.
|
4
|
+
version: 3.7.0
|
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:
|
13
|
+
date: 2019-04-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -247,6 +247,7 @@ files:
|
|
247
247
|
- lib/crowbar/client/app/role.rb
|
248
248
|
- lib/crowbar/client/app/server.rb
|
249
249
|
- lib/crowbar/client/app/services.rb
|
250
|
+
- lib/crowbar/client/app/ses.rb
|
250
251
|
- lib/crowbar/client/app/upgrade.rb
|
251
252
|
- lib/crowbar/client/app/virtual_ip.rb
|
252
253
|
- lib/crowbar/client/command.rb
|
@@ -320,6 +321,8 @@ files:
|
|
320
321
|
- lib/crowbar/client/command/services/disable_restart.rb
|
321
322
|
- lib/crowbar/client/command/services/list_restarts.rb
|
322
323
|
- lib/crowbar/client/command/services/restart_flags.rb
|
324
|
+
- lib/crowbar/client/command/ses.rb
|
325
|
+
- lib/crowbar/client/command/ses/upload.rb
|
323
326
|
- lib/crowbar/client/command/upgrade.rb
|
324
327
|
- lib/crowbar/client/command/upgrade/admin.rb
|
325
328
|
- lib/crowbar/client/command/upgrade/backup.rb
|
@@ -430,6 +433,8 @@ files:
|
|
430
433
|
- lib/crowbar/client/request/services/disable_restart.rb
|
431
434
|
- lib/crowbar/client/request/services/list_restarts.rb
|
432
435
|
- lib/crowbar/client/request/services/restart_flags.rb
|
436
|
+
- lib/crowbar/client/request/ses.rb
|
437
|
+
- lib/crowbar/client/request/ses/upload.rb
|
433
438
|
- lib/crowbar/client/request/upgrade.rb
|
434
439
|
- lib/crowbar/client/request/upgrade/admin.rb
|
435
440
|
- lib/crowbar/client/request/upgrade/backup.rb
|
@@ -448,6 +453,7 @@ files:
|
|
448
453
|
- lib/crowbar/client/util.rb
|
449
454
|
- lib/crowbar/client/util/apiversion.rb
|
450
455
|
- lib/crowbar/client/util/editor.rb
|
456
|
+
- lib/crowbar/client/util/osrelease.rb
|
451
457
|
- lib/crowbar/client/util/runner.rb
|
452
458
|
- lib/crowbar/client/version.rb
|
453
459
|
- spec/crowbar/client/app_spec.rb
|
@@ -619,8 +625,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
619
625
|
- !ruby/object:Gem::Version
|
620
626
|
version: '0'
|
621
627
|
requirements: []
|
622
|
-
|
623
|
-
rubygems_version: 2.7.8
|
628
|
+
rubygems_version: 3.0.3
|
624
629
|
signing_key:
|
625
630
|
specification_version: 4
|
626
631
|
summary: Crowbar commandline client
|