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 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