crowbar-client 2.0.0 → 2.1.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
  SHA1:
3
- metadata.gz: c7cd53688bfbc14f2894c740577bd8606e2a0162
4
- data.tar.gz: 114e67d7040c3af63514ec9424432de09a02ae06
3
+ metadata.gz: 5af7f5c6bab5cfaf58a39cd195ad78c94641d39b
4
+ data.tar.gz: 038f95011bd1e449e7c5b3121df21447fc427ece
5
5
  SHA512:
6
- metadata.gz: 6e366c5b53565cc2ef9767b0b4de934f59e5b2c668afd9e1fe2315490349b4c355f89bc3999e80342a853a6020f2a9c9e220fadf3978dc6c4278f04b78dd1576
7
- data.tar.gz: fbe5929613ab1065b75a571b9b04dc37a9fa84870c40549b735c497a0ca030ac07c02b97da1bdcad86512559256b62c4b8a28816723e85af84847595c64e92d2
6
+ metadata.gz: e3a803ba5baefeb1c258322cdbaf163bef2c90f40b0eb8344c7d889af337df7abd44860f6c453983fcff71d893ac8940921a9a9774be02668cd2ae3ae4cc917a
7
+ data.tar.gz: f1ea6e61388e472b8a9be57f304c64b4da1620668f98eb16a2c56ae2a7cca81717e7da25814370dd8aec364e5945488c0649df791f75449e5185c7fa0ec0341c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1.0](https://github.com/crowbar/crowbar-client/releases/tag/v2.1.0) - 2015-11-25
4
+
5
+ * BREAKING
6
+ * Removed the config file flag, just using default paths (@tboerger)
7
+ * BUGFIX
8
+ * Fixed heading for node status (@tboerger)
9
+ * ENHANCEMENT
10
+ * Added API help subcommand (@tboerger)
11
+ * Added switch to hide ready nodes within status (@tboerger)
12
+ * Added switches to hide names or aliases on node list (@tboerger)
13
+ * Integrated config values from environment (@tboerger)
14
+
3
15
  ## [2.0.0](https://github.com/crowbar/crowbar-client/releases/tag/v2.0.0) - 2015-11-12
4
16
 
5
17
  * BREAKING
@@ -7,7 +19,7 @@
7
19
  * BUGFIX
8
20
  * Fixed format shortcuts to method instead of class options (@tboerger)
9
21
  * ENHANCEMENT
10
- * Be sure to set the correct output format(@tboerger)
22
+ * Be sure to set the correct output format (@tboerger)
11
23
 
12
24
  ## [1.0.1](https://github.com/crowbar/crowbar-client/releases/tag/v1.0.1) - 2015-11-11
13
25
 
@@ -28,6 +28,9 @@ module Crowbar
28
28
  class SimpleCatchableError < StandardError
29
29
  end
30
30
 
31
+ class BadOptionsError < SimpleCatchableError
32
+ end
33
+
31
34
  class BadFormatterError < SimpleCatchableError
32
35
  end
33
36
 
@@ -53,6 +53,9 @@ module Crowbar
53
53
  autoload :Role,
54
54
  File.expand_path("../app/role", __FILE__)
55
55
 
56
+ autoload :Server,
57
+ File.expand_path("../app/server", __FILE__)
58
+
56
59
  autoload :VirtualIP,
57
60
  File.expand_path("../app/virtual_ip", __FILE__)
58
61
  end
@@ -27,7 +27,8 @@ module Crowbar
27
27
  formats and you can filter the list by any search criteria.
28
28
 
29
29
  With --format <format> option you can choose an output format
30
- with the available options table, json or plain.
30
+ with the available options table, json or plain. You can also
31
+ use the shortcut options --table, --json or --plain.
31
32
 
32
33
  With --filter <filter> option you can limit the result of
33
34
  printed out elements. You can use any substring that is part
@@ -26,7 +26,6 @@ module Crowbar
26
26
 
27
27
  Config.configure(
28
28
  options.slice(
29
- :config,
30
29
  :alias,
31
30
  :username,
32
31
  :password,
@@ -48,39 +47,6 @@ module Crowbar
48
47
  exit(exit_code) unless exit_code.nil?
49
48
  end
50
49
 
51
- def config_parse(path, section)
52
- ini = Hashie::Mash.new(
53
- IniFile.load(
54
- config_detect(path)
55
- ).to_h
56
- )
57
-
58
- if ini[section]
59
- ini[section]
60
- else
61
- Hashie::Mash.new
62
- end
63
- rescue
64
- Hashie::Mash.new
65
- end
66
-
67
- def config_detect(path)
68
- if path.nil?
69
- config_paths.detect do |temp|
70
- File.exist? temp
71
- end
72
- else
73
- path
74
- end
75
- end
76
-
77
- def config_paths
78
- [
79
- "#{ENV["HOME"]}/.crowbarrc",
80
- "/etc/crowbarrc"
81
- ]
82
- end
83
-
84
50
  def command_params(args = {})
85
51
  [
86
52
  $stdin,
@@ -23,51 +23,45 @@ module Crowbar
23
23
  "-v"
24
24
  ] => :version
25
25
 
26
- class_option :config,
27
- type: :string,
28
- default: nil,
29
- aliases: ["-c"],
30
- desc: "Path to a configuration file"
31
-
32
26
  class_option :alias,
33
27
  type: :string,
34
- default: "default",
28
+ default: Config.defaults[:alias],
35
29
  aliases: ["-a"],
36
30
  desc: "Alias for a config section"
37
31
 
38
32
  class_option :username,
39
33
  type: :string,
40
- default: "crowbar",
34
+ default: Config.defaults[:username],
41
35
  aliases: ["-U"],
42
36
  desc: "Specify username for connection"
43
37
 
44
38
  class_option :password,
45
39
  type: :string,
46
- default: "crowbar",
40
+ default: Config.defaults[:password],
47
41
  aliases: ["-P"],
48
42
  desc: "Specify password for connection"
49
43
 
50
44
  class_option :server,
51
45
  type: :string,
52
- default: "http://127.0.0.1:80",
46
+ default: Config.defaults[:server],
53
47
  aliases: ["-s"],
54
48
  desc: "Specify server for connection"
55
49
 
56
50
  class_option :timeout,
57
51
  type: :numeric,
58
- default: 60,
52
+ default: Config.defaults[:timeout],
59
53
  aliases: ["-t"],
60
54
  desc: "Specify timeout for connection"
61
55
 
62
56
  class_option :anonymous,
63
57
  type: :boolean,
64
- default: false,
58
+ default: Config.defaults[:anonymous],
65
59
  aliases: ["-a"],
66
60
  desc: "Skip API user authentication"
67
61
 
68
62
  class_option :debug,
69
63
  type: :boolean,
70
- default: false,
64
+ default: Config.defaults[:debug],
71
65
  aliases: ["-d"],
72
66
  desc: "Output more debug information"
73
67
 
@@ -115,6 +109,10 @@ module Crowbar
115
109
  desc "role [COMMANDS]",
116
110
  "Role specific commands, call without params for help"
117
111
  subcommand "role", Crowbar::Client::App::Role
112
+
113
+ desc "server [COMMANDS]",
114
+ "Server specific commands, call without params for help"
115
+ subcommand "server", Crowbar::Client::App::Server
118
116
  end
119
117
  end
120
118
  end
@@ -34,6 +34,10 @@ module Crowbar
34
34
  With --filter <filter> option you can limit the result of
35
35
  printed out elements. You can use any substring that is part
36
36
  of the found elements.
37
+
38
+ With --no-ready switch you can hide all nodes that already
39
+ transitioned to the ready state, per default the listing will
40
+ display all nodes.
37
41
  LONGDESC
38
42
 
39
43
  method_option :format,
@@ -66,6 +70,12 @@ module Crowbar
66
70
  banner: "<filter>",
67
71
  desc: "Filter by criteria, display only data that contains filter"
68
72
 
73
+ method_option :ready,
74
+ type: :boolean,
75
+ default: true,
76
+ aliases: [],
77
+ desc: "Show or hide the nodes that already transitioned to ready"
78
+
69
79
  def status
70
80
  Command::Node::Status.new(
71
81
  *command_params
@@ -90,6 +100,12 @@ module Crowbar
90
100
  With --filter <filter> option you can limit the result of
91
101
  printed out elements. You can use any substring that is part
92
102
  of the found elements.
103
+
104
+ With --no-aliases switch you can disable the output of the node
105
+ aliases, per default the listing will display them.
106
+
107
+ With --no-names switch you can disable the output of the node
108
+ names, per default the listing will display them.
93
109
  LONGDESC
94
110
 
95
111
  method_option :format,
@@ -122,6 +138,18 @@ module Crowbar
122
138
  banner: "<filter>",
123
139
  desc: "Filter by criteria, display only data that contains filter"
124
140
 
141
+ method_option :aliases,
142
+ type: :boolean,
143
+ default: true,
144
+ aliases: [],
145
+ desc: "Show or hide the aliases for the available nodes within listing"
146
+
147
+ method_option :names,
148
+ type: :boolean,
149
+ default: true,
150
+ aliases: [],
151
+ desc: "Show or hide the names for the available nodes within listing"
152
+
125
153
  def list
126
154
  Command::Node::List.new(
127
155
  *command_params
@@ -0,0 +1,41 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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
+ class Server < Base
21
+ desc "api BARCLAMP",
22
+ "Show the API documentation"
23
+
24
+ long_desc <<-LONGDESC
25
+ `api BARCLAMP` will print out the API documentation that is
26
+ available for the specified barclamp.
27
+ LONGDESC
28
+
29
+ def api(barclamp)
30
+ Command::Server::Api.new(
31
+ *command_params(
32
+ barclamp: barclamp
33
+ )
34
+ ).execute
35
+ rescue SimpleCatchableError => e
36
+ err e.message, 1
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -47,6 +47,9 @@ module Crowbar
47
47
  autoload :Role,
48
48
  File.expand_path("../command/role", __FILE__)
49
49
 
50
+ autoload :Server,
51
+ File.expand_path("../command/server", __FILE__)
52
+
50
53
  autoload :VirtualIP,
51
54
  File.expand_path("../command/virtual_ip", __FILE__)
52
55
  end
@@ -38,10 +38,15 @@ module Crowbar
38
38
  self.args = Hashie::Mash.new(
39
39
  args
40
40
  )
41
+
42
+ checks
41
43
  end
42
44
 
43
45
  protected
44
46
 
47
+ def checks
48
+ end
49
+
45
50
  def say(message)
46
51
  stdout.puts message
47
52
  end
@@ -34,7 +34,7 @@ module Crowbar
34
34
  when 200
35
35
  formatter = Formatter::Hash.new(
36
36
  format: provide_format,
37
- headings: ["Name", "Alias"],
37
+ headings: headings,
38
38
  values: Filter::Hash.new(
39
39
  filter: provide_filter,
40
40
  values: content_from(request)
@@ -54,16 +54,32 @@ module Crowbar
54
54
 
55
55
  protected
56
56
 
57
+ def headings
58
+ [].tap do |values|
59
+ values.push("Name") if options["names"]
60
+ values.push("Alias") if options["aliases"]
61
+ end
62
+ end
63
+
57
64
  def content_from(request)
58
65
  [].tap do |row|
59
66
  request.parsed_response["nodes"].each do |child|
67
+ values = {}
68
+ values[:name] = child["name"] if options["names"]
69
+ values[:alias] = child["alias"] if options["aliases"]
70
+
60
71
  row.push(
61
- name: child["name"],
62
- alias: child["alias"]
72
+ values
63
73
  )
64
74
  end
65
75
  end
66
76
  end
77
+
78
+ def checks
79
+ msg = "Please provide only names or aliases switch"
80
+ raise BadOptionsError,
81
+ msg unless options["names"] || options["aliases"]
82
+ end
67
83
  end
68
84
  end
69
85
  end
@@ -34,7 +34,7 @@ module Crowbar
34
34
  when 200
35
35
  formatter = Formatter::Hash.new(
36
36
  format: provide_format,
37
- headings: ["Name", "Alias"],
37
+ headings: ["Name", "Status"],
38
38
  values: Filter::Hash.new(
39
39
  filter: provide_filter,
40
40
  values: content_from(request)
@@ -57,6 +57,8 @@ module Crowbar
57
57
  def content_from(request)
58
58
  [].tap do |row|
59
59
  request.parsed_response["nodes"].each do |name, value|
60
+ next if value["status"] == "Ready" && !options["ready"]
61
+
60
62
  row.push(
61
63
  name: name,
62
64
  status: value["status"]
@@ -0,0 +1,26 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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
+ module Server
21
+ autoload :Api,
22
+ File.expand_path("../server/api", __FILE__)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,54 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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
+ module Server
21
+ class Api < Base
22
+ include Mixin::Barclamp
23
+
24
+ def request
25
+ @request ||= Request::Server::Api.new(
26
+ args
27
+ )
28
+ end
29
+
30
+ def execute
31
+ validate_barclamp! args.barclamp
32
+
33
+ request.process do |request|
34
+ case request.code
35
+ when 200
36
+ say JSON.pretty_generate(
37
+ content_from(request)
38
+ )
39
+ else
40
+ err request.parsed_response["error"]
41
+ end
42
+ end
43
+ end
44
+
45
+ protected
46
+
47
+ def content_from(request)
48
+ request.parsed_response
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -38,14 +38,13 @@ module Crowbar
38
38
 
39
39
  def defaults
40
40
  @defaults ||= Hashie::Mash.new(
41
- config: nil,
42
- alias: "default",
43
- username: "crowbar",
44
- password: "crowbar",
45
- server: "http://127.0.0.1:80",
46
- timeout: 60,
47
- anonymous: false,
48
- debug: false
41
+ alias: default_alias,
42
+ username: default_username,
43
+ password: default_password,
44
+ server: default_server,
45
+ timeout: default_timeout,
46
+ anonymous: default_anonymous,
47
+ debug: default_debug
49
48
  )
50
49
  end
51
50
 
@@ -63,6 +62,50 @@ module Crowbar
63
62
 
64
63
  protected
65
64
 
65
+ def default_alias
66
+ ENV["CROWBAR_ALIAS"] || "default"
67
+ end
68
+
69
+ def default_username
70
+ ENV["CROWBAR_USERNAME"] || "crowbar"
71
+ end
72
+
73
+ def default_password
74
+ ENV["CROWBAR_PASSWORD"] || "crowbar"
75
+ end
76
+
77
+ def default_server
78
+ ENV["CROWBAR_SERVER"] || "http://127.0.0.1:80"
79
+ end
80
+
81
+ def default_timeout
82
+ if ENV["CROWBAR_TIMEOUT"].present?
83
+ ENV["CROWBAR_TIMEOUT"].to_i
84
+ else
85
+ 60
86
+ end
87
+ end
88
+
89
+ def default_anonymous
90
+ if ENV["CROWBAR_ANONYMOUS"].present?
91
+ [
92
+ true, 1, "1", "t", "T", "true", "TRUE"
93
+ ].include? ENV["CROWBAR_ANONYMOUS"]
94
+ else
95
+ false
96
+ end
97
+ end
98
+
99
+ def default_debug
100
+ if ENV["CROWBAR_DEBUG"].present?
101
+ [
102
+ true, 1, "1", "t", "T", "true", "TRUE"
103
+ ].include? ENV["CROWBAR_ANONYMOUS"]
104
+ else
105
+ false
106
+ end
107
+ end
108
+
66
109
  def merge
67
110
  result = {}.tap do |overwrite|
68
111
  defaults.keys.each do |key|
@@ -101,21 +144,22 @@ module Crowbar
101
144
  end
102
145
 
103
146
  def finder
104
- if options.config.nil?
105
- paths.detect do |temp|
106
- File.exist? temp
107
- end
108
- else
109
- options.config
147
+ paths.detect do |temp|
148
+ File.exist? temp
110
149
  end
111
150
  end
112
151
 
113
152
  def paths
114
153
  [
115
- options.config,
116
- "#{ENV["HOME"]}/.crowbarrc",
117
- "/etc/crowbarrc"
118
- ].compact
154
+ File.join(
155
+ ENV["HOME"],
156
+ ".crowbarrc"
157
+ ),
158
+ File.join(
159
+ "/etc",
160
+ "crowbarrc"
161
+ )
162
+ ]
119
163
  end
120
164
 
121
165
  class << self
@@ -50,6 +50,9 @@ module Crowbar
50
50
  autoload :Role,
51
51
  File.expand_path("../request/role", __FILE__)
52
52
 
53
+ autoload :Server,
54
+ File.expand_path("../request/server", __FILE__)
55
+
53
56
  autoload :VirtualIP,
54
57
  File.expand_path("../request/virtual_ip", __FILE__)
55
58
  end
@@ -0,0 +1,26 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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
+ module Server
21
+ autoload :Api,
22
+ File.expand_path("../server/api", __FILE__)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,38 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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
+ module Server
21
+ class Api < Base
22
+ def method
23
+ :get
24
+ end
25
+
26
+ def url
27
+ [
28
+ "crowbar",
29
+ attrs.barclamp,
30
+ "1.0",
31
+ "help"
32
+ ].join("/")
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -18,7 +18,7 @@ module Crowbar
18
18
  module Client
19
19
  class Version
20
20
  MAJOR = 2
21
- MINOR = 0
21
+ MINOR = 1
22
22
  PATCH = 0
23
23
 
24
24
  PRE = nil
@@ -23,7 +23,9 @@ describe "Crowbar::Client::Command::Node::List" do
23
23
  ::Crowbar::Client::Command::Node::List.new(
24
24
  stdin,
25
25
  stdout,
26
- stderr
26
+ stderr,
27
+ lists: true,
28
+ aliases: true
27
29
  )
28
30
  end
29
31
 
@@ -0,0 +1,39 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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_relative "../../../../spec_helper"
18
+
19
+ describe "Crowbar::Client::Command::Server::Api" do
20
+ include_context "command_context"
21
+
22
+ subject do
23
+ ::Crowbar::Client::Command::Server::Api.new(
24
+ stdin,
25
+ stdout,
26
+ stderr
27
+ )
28
+ end
29
+
30
+ it "should always return a request class" do
31
+ expect(subject.request).to(
32
+ be_a(
33
+ ::Crowbar::Client::Request::Server::Api
34
+ )
35
+ )
36
+ end
37
+
38
+ pending
39
+ end
@@ -0,0 +1,52 @@
1
+ #
2
+ # Copyright 2015, SUSE Linux GmbH
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_relative "../../../../spec_helper"
18
+
19
+ describe "Crowbar::Client::Request::Server::Api" do
20
+ it_behaves_like "a request class" do
21
+ subject do
22
+ ::Crowbar::Client::Request::Server::Api.new(
23
+ attrs
24
+ )
25
+ end
26
+
27
+ let!(:attrs) do
28
+ {
29
+ barclamp: "ntp"
30
+ }
31
+ end
32
+
33
+ let!(:params) do
34
+ {}
35
+ end
36
+
37
+ let!(:method) do
38
+ :get
39
+ end
40
+
41
+ let!(:url) do
42
+ "crowbar/ntp/1.0/help"
43
+ end
44
+
45
+ let!(:headers) do
46
+ {
47
+ "Content-Type" => "application/json",
48
+ "Accept" => "application/json"
49
+ }
50
+ end
51
+ end
52
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crowbar-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Boerger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-12 00:00:00.000000000 Z
11
+ date: 2015-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -220,6 +220,7 @@ files:
220
220
  - lib/crowbar/client/app/repository.rb
221
221
  - lib/crowbar/client/app/reset.rb
222
222
  - lib/crowbar/client/app/role.rb
223
+ - lib/crowbar/client/app/server.rb
223
224
  - lib/crowbar/client/app/virtual_ip.rb
224
225
  - lib/crowbar/client/command.rb
225
226
  - lib/crowbar/client/command/barclamp.rb
@@ -272,6 +273,8 @@ files:
272
273
  - lib/crowbar/client/command/role.rb
273
274
  - lib/crowbar/client/command/role/list.rb
274
275
  - lib/crowbar/client/command/role/show.rb
276
+ - lib/crowbar/client/command/server.rb
277
+ - lib/crowbar/client/command/server/api.rb
275
278
  - lib/crowbar/client/command/virtual_ip.rb
276
279
  - lib/crowbar/client/command/virtual_ip/allocate.rb
277
280
  - lib/crowbar/client/command/virtual_ip/deallocate.rb
@@ -334,6 +337,8 @@ files:
334
337
  - lib/crowbar/client/request/role.rb
335
338
  - lib/crowbar/client/request/role/list.rb
336
339
  - lib/crowbar/client/request/role/show.rb
340
+ - lib/crowbar/client/request/server.rb
341
+ - lib/crowbar/client/request/server/api.rb
337
342
  - lib/crowbar/client/request/virtual_ip.rb
338
343
  - lib/crowbar/client/request/virtual_ip/allocate.rb
339
344
  - lib/crowbar/client/request/virtual_ip/deallocate.rb
@@ -382,6 +387,7 @@ files:
382
387
  - spec/crowbar/client/command/reset/proposal_spec.rb
383
388
  - spec/crowbar/client/command/role/list_spec.rb
384
389
  - spec/crowbar/client/command/role/show_spec.rb
390
+ - spec/crowbar/client/command/server/api_spec.rb
385
391
  - spec/crowbar/client/command/virtual_ip/allocate_spec.rb
386
392
  - spec/crowbar/client/command/virtual_ip/deallocate_spec.rb
387
393
  - spec/crowbar/client/filter/array_spec.rb
@@ -423,6 +429,7 @@ files:
423
429
  - spec/crowbar/client/request/reset/proposal_spec.rb
424
430
  - spec/crowbar/client/request/role/list_spec.rb
425
431
  - spec/crowbar/client/request/role/show_spec.rb
432
+ - spec/crowbar/client/request/server/api_spec.rb
426
433
  - spec/crowbar/client/request/virtual_ip/allocate_spec.rb
427
434
  - spec/crowbar/client/request/virtual_ip/deallocate_spec.rb
428
435
  - spec/crowbar/client/util/editor_spec.rb
@@ -469,6 +476,7 @@ test_files:
469
476
  - spec/crowbar/client/util/runner_spec.rb
470
477
  - spec/crowbar/client/command/host_ip/allocate_spec.rb
471
478
  - spec/crowbar/client/command/host_ip/deallocate_spec.rb
479
+ - spec/crowbar/client/command/server/api_spec.rb
472
480
  - spec/crowbar/client/command/repository/activate_all_spec.rb
473
481
  - spec/crowbar/client/command/repository/deactivate_spec.rb
474
482
  - spec/crowbar/client/command/repository/list_spec.rb
@@ -512,6 +520,7 @@ test_files:
512
520
  - spec/crowbar/client/request/party_spec.rb
513
521
  - spec/crowbar/client/request/host_ip/allocate_spec.rb
514
522
  - spec/crowbar/client/request/host_ip/deallocate_spec.rb
523
+ - spec/crowbar/client/request/server/api_spec.rb
515
524
  - spec/crowbar/client/request/repository/activate_all_spec.rb
516
525
  - spec/crowbar/client/request/repository/deactivate_spec.rb
517
526
  - spec/crowbar/client/request/repository/list_spec.rb