crowbar-client 3.5.2 → 3.6.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 +9 -0
- data/lib/crowbar/client/app/services.rb +5 -4
- data/lib/crowbar/client/app/upgrade.rb +14 -1
- data/lib/crowbar/client/command/node/show.rb +2 -0
- data/lib/crowbar/client/command/upgrade/admin.rb +5 -1
- data/lib/crowbar/client/command/upgrade/nodes.rb +4 -0
- data/lib/crowbar/client/config.rb +27 -0
- data/lib/crowbar/client/request/services/clear_restart.rb +1 -0
- data/lib/crowbar/client/version.rb +2 -2
- data/spec/crowbar/client/request/services/clear_restart_spec.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c208957102b3e9fc6ad3c18825ae5921bf5e184f8a915e25839d4734560d3402
|
4
|
+
data.tar.gz: 2def6dda277aea448f99989d4b413fa71d284129f2690d0149be8464aff0b428
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82c4fba2797c5126f463c6607758e8b65d9b801f85a70e1e0064a06ac574c2f0bc0dcf7b303a227d7d0382a09fc5ae89a1b77105db232d7674063ca7ab82b5e7
|
7
|
+
data.tar.gz: dbd998fb8d2a2633c76755ec4f648eb2ef088ed4e7bb5eb9d766ff2abbcbb2f34445a20ec7e1de6439f844bee9486807e1efe122ea8c7c52430109a814cda997
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [3.6.0](https://github.com/crowbar/crowbar-client/releases/tag/v3.6.0) - 2018-06-19
|
4
|
+
|
5
|
+
* BUGFIX
|
6
|
+
* Fix node show help (bsc#1024498)
|
7
|
+
* ENHANCEMENT
|
8
|
+
* Extend the clean restart flags
|
9
|
+
* Add an option to identify the version of product being upgraded
|
10
|
+
* Added support for postpone/resume upgrade actions
|
11
|
+
|
3
12
|
## [3.5.2](https://github.com/crowbar/crowbar-client/releases/tag/v3.5.2) - 2018-01-09
|
4
13
|
|
5
14
|
* BUGFIX
|
@@ -35,17 +35,18 @@ module Crowbar
|
|
35
35
|
catch_errors(e)
|
36
36
|
end
|
37
37
|
|
38
|
-
desc "clear_restart NODE SERVICE",
|
38
|
+
desc "clear_restart NODE [COOKBOOK [SERVICE]]",
|
39
39
|
"Clear the restart flag for a service on a node"
|
40
40
|
|
41
41
|
long_desc <<-LONGDESC
|
42
|
-
`clear_restart NODE SERVICE` will clear the 'restart needed' flag
|
43
|
-
for the given SERVICE on the NODE.
|
42
|
+
`clear_restart NODE [COOKBOOK [SERVICE]]` will clear the 'restart needed' flag
|
43
|
+
for the given SERVICE, or all services in a COOKBOOK, or all services on the NODE.
|
44
44
|
LONGDESC
|
45
|
-
def clear_restart(node, service)
|
45
|
+
def clear_restart(node, cookbook = nil, service = nil)
|
46
46
|
Command::Services::ClearServiceRestart.new(
|
47
47
|
*command_params(
|
48
48
|
node: node,
|
49
|
+
cookbook: cookbook,
|
49
50
|
service: service
|
50
51
|
)
|
51
52
|
).execute
|
@@ -189,8 +189,19 @@ module Crowbar
|
|
189
189
|
catch_errors(e)
|
190
190
|
end
|
191
191
|
|
192
|
+
if Config.defaults[:upgrade_versions] == "7-to-8"
|
193
|
+
postpone_resume_short = "|postpone|resume"
|
194
|
+
postpone_resume = <<-RESUME
|
195
|
+
`nodes postpone` will postpone the upgrade of compute nodes.
|
196
|
+
It is possible to use crowbar in this state.
|
197
|
+
|
198
|
+
`nodes resume` will resume the upgrade process.
|
199
|
+
It is possible to go back to upgrading the compute nodes.
|
200
|
+
RESUME
|
201
|
+
end
|
202
|
+
|
192
203
|
desc "nodes COMPONENT",
|
193
|
-
"Trigger the node upgrade (all|controllers|NODENAME)"
|
204
|
+
"Trigger the node upgrade (all|controllers|NODENAME#{postpone_resume_short})"
|
194
205
|
|
195
206
|
long_desc <<-LONGDESC
|
196
207
|
`nodes all` will upgrade all nodes.
|
@@ -199,6 +210,8 @@ module Crowbar
|
|
199
210
|
|
200
211
|
`nodes NODENAME` will upgrade the node with the NODENAME.
|
201
212
|
This only works for compute nodes.
|
213
|
+
|
214
|
+
#{postpone_resume}
|
202
215
|
LONGDESC
|
203
216
|
|
204
217
|
def nodes(component)
|
@@ -36,7 +36,11 @@ module Crowbar
|
|
36
36
|
when 200
|
37
37
|
say "Triggered Crowbar operating system upgrade"
|
38
38
|
say "Wait until the admin server is fully upgraded and rebooted."
|
39
|
-
|
39
|
+
if Config.defaults[:upgrade_versions] == "6-to-7"
|
40
|
+
say "Next step: 'crowbarctl upgrade database [new|connect]'"
|
41
|
+
else
|
42
|
+
say "Next step: 'crowbarctl upgrade repocheck nodes'"
|
43
|
+
end
|
40
44
|
else
|
41
45
|
err format_error(
|
42
46
|
request.parsed_response["error"], "admin"
|
@@ -39,6 +39,10 @@ module Crowbar
|
|
39
39
|
say "Successfully triggered the upgrade of the nodes. "
|
40
40
|
when "controllers"
|
41
41
|
say "Successfully triggered the upgrade of the controller nodes. "
|
42
|
+
when "postpone"
|
43
|
+
say "The upgrade of compute nodes was postponed."
|
44
|
+
when "resume"
|
45
|
+
say "The upgrade process was resumed, compute nodes could be upgraded now."
|
42
46
|
else
|
43
47
|
say "Successfully triggered the upgrade of node #{args.component}. "
|
44
48
|
end
|
@@ -60,6 +60,7 @@ module Crowbar
|
|
60
60
|
anonymous: default_anonymous,
|
61
61
|
apiversion: default_apiversion,
|
62
62
|
experimental: default_experimental,
|
63
|
+
upgrade_versions: default_upgrade_versions,
|
63
64
|
debug: default_debug
|
64
65
|
)
|
65
66
|
end
|
@@ -93,6 +94,32 @@ module Crowbar
|
|
93
94
|
|
94
95
|
protected
|
95
96
|
|
97
|
+
#
|
98
|
+
# Define a default value for which upgrade is being executed
|
99
|
+
# User could provide values ("6-to-7" or "7-to-8") via ENV variable
|
100
|
+
# or it's gonna be set based on the system state.
|
101
|
+
#
|
102
|
+
# @return [String] the default value for upgrade versions
|
103
|
+
#
|
104
|
+
def default_upgrade_versions
|
105
|
+
return ENV["CROWBAR_UPGRADE_VERSIONS"] if ENV["CROWBAR_UPGRADE_VERSIONS"].present?
|
106
|
+
# if an upgrade is running, we could check the file indication
|
107
|
+
return "6-to-7" if File.exist?("/var/lib/crowbar/upgrade/6-to-7-upgrade-running")
|
108
|
+
return "7-to-8" if File.exist?("/var/lib/crowbar/upgrade/7-to-8-upgrade-running")
|
109
|
+
|
110
|
+
# if upgrade has not been started, check the system version
|
111
|
+
os_release_file = "/etc/os-release"
|
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
|
119
|
+
|
120
|
+
"7-to-8"
|
121
|
+
end
|
122
|
+
|
96
123
|
#
|
97
124
|
# Define a default alias value
|
98
125
|
#
|
@@ -26,8 +26,8 @@ describe "Crowbar::Client::Request::Services::ClearServiceRestart" do
|
|
26
26
|
)
|
27
27
|
end
|
28
28
|
|
29
|
-
let!(:attrs) { { node: "test", service: "test" } }
|
30
|
-
let!(:params) { { node: "test", service: "test" } }
|
29
|
+
let!(:attrs) { { node: "test", cookbook: "test", service: "test" } }
|
30
|
+
let!(:params) { { node: "test", cookbook: "test", service: "test" } }
|
31
31
|
let!(:method) { :post }
|
32
32
|
let!(:url) { "api/restart_management/restarts" }
|
33
33
|
let!(:headers) { { "Accept" => header, "Content-Type" => header } }
|
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.6.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: 2018-
|
13
|
+
date: 2018-06-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -621,7 +621,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
621
621
|
version: '0'
|
622
622
|
requirements: []
|
623
623
|
rubyforge_project:
|
624
|
-
rubygems_version: 2.7.
|
624
|
+
rubygems_version: 2.7.7
|
625
625
|
signing_key:
|
626
626
|
specification_version: 4
|
627
627
|
summary: Crowbar commandline client
|