crowbar-client 3.5.2 → 3.6.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 +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
|