crowbar-client 3.6.1 → 3.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|