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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46b7ba57caa745cb2c4b7b61f72fb3c4c44a6a9c23b8bf5437f5da433028ae44
4
- data.tar.gz: a11888a2f0e8cd2276294e32da87479b542517bfbdd8e595bc76b9e3c687ec7f
3
+ metadata.gz: c208957102b3e9fc6ad3c18825ae5921bf5e184f8a915e25839d4734560d3402
4
+ data.tar.gz: 2def6dda277aea448f99989d4b413fa71d284129f2690d0149be8464aff0b428
5
5
  SHA512:
6
- metadata.gz: 32da261c491ce8d2bfbf5303b36b0869f71d2fef7fb226371efc05fcaadc6e252650ed7eba8e730bc182cd3bb05efea6bc68dd0d15837829581945cabcb4f8d6
7
- data.tar.gz: 086f06ec09baa46b080e64bc22f14dcafdc5438872778c9a38d1835b102fd6fccc9d6730b5de8eb498d8d66e9b07dbd79717a24b1b31d2938087df8d0570e801
6
+ metadata.gz: 82c4fba2797c5126f463c6607758e8b65d9b801f85a70e1e0064a06ac574c2f0bc0dcf7b303a227d7d0382a09fc5ae89a1b77105db232d7674063ca7ab82b5e7
7
+ data.tar.gz: dbd998fb8d2a2633c76755ec4f648eb2ef088ed4e7bb5eb9d766ff2abbcbb2f34445a20ec7e1de6439f844bee9486807e1efe122ea8c7c52430109a814cda997
@@ -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)
@@ -47,6 +47,8 @@ module Crowbar
47
47
 
48
48
  if formatter.empty?
49
49
  err "No result"
50
+ elsif args.name == "help"
51
+ err "Node does not exist"
50
52
  else
51
53
  say formatter.result
52
54
  end
@@ -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
- say "Next step: 'crowbarctl upgrade database [new|connect]'"
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
  #
@@ -43,6 +43,7 @@ module Crowbar
43
43
  def content
44
44
  super.easy_merge!(
45
45
  node: attrs.node,
46
+ cookbook: attrs.cookbook,
46
47
  service: attrs.service
47
48
  )
48
49
  end
@@ -28,12 +28,12 @@ module Crowbar
28
28
  #
29
29
  # Minor version
30
30
  #
31
- MINOR = 5
31
+ MINOR = 6
32
32
 
33
33
  #
34
34
  # Patch version
35
35
  #
36
- PATCH = 2
36
+ PATCH = 0
37
37
 
38
38
  #
39
39
  # Optional suffix
@@ -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.5.2
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-01-09 00:00:00.000000000 Z
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.4
624
+ rubygems_version: 2.7.7
625
625
  signing_key:
626
626
  specification_version: 4
627
627
  summary: Crowbar commandline client