razor-client 0.16.0 → 1.0.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.
- data/NEWS.md +15 -0
- data/bin/razor +3 -2
- data/lib/razor/cli.rb +6 -0
- data/lib/razor/cli/command.rb +24 -13
- data/lib/razor/cli/navigate.rb +1 -0
- data/lib/razor/cli/parse.rb +29 -3
- data/lib/razor/cli/query.rb +2 -1
- data/lib/razor/cli/table_format.rb +38 -2
- data/lib/razor/cli/transforms.rb +8 -1
- data/lib/razor/cli/version.rb +1 -1
- data/lib/razor/cli/views.yaml +17 -4
- data/spec/cli/command_spec.rb +66 -0
- data/spec/cli/navigate_spec.rb +7 -7
- data/spec/cli/parse_spec.rb +23 -4
- data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_in_string.yml +82 -171
- data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_spaces.yml +281 -548
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml +160 -37
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml +160 -37
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml +160 -37
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml +160 -37
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml +160 -37
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml +160 -37
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml +10 -10
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_supply_that_to_the_API_service.yml +5 -5
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_bad_JSON.yml +71 -166
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_malformed_argument.yml +109 -59
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_an_array_into_an_existing_array.yml +527 -1360
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_as_an_array.yml +528 -1361
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_into_an_existing_array.yml +528 -1361
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object.yml +66 -229
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object_with_unicode.yml +104 -165
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_array_then_hash_.yml +57 -155
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_hash_then_array_.yml +57 -220
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_no_parameters/should_fail_with_bad_JSON.yml +98 -5
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_limit.yml +8 -8
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_start.yml +8 -8
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_not_fail_when_query_returns_details_for_one_item.yml +41 -149
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_store_query_without_query_parameters.yml +70 -286
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API.yml +5 -5
- data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API_from_a_single_item.yml +36 -144
- data/spec/fixtures/vcr/Razor_CLI_Parse/_new/_help/should_print_a_list_of_known_endpoints.yml +5 -5
- data/spec/spec_helper.rb +8 -4
- metadata +92 -85
- checksums.yaml +0 -7
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_command_--help_.yml +0 -110
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_command_help_.yml +0 -110
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_help_command_.yml +0 -110
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--help_--api_command_.yml +0 -110
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_-a_-h_command_.yml +0 -110
- data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_-a_command_-h_.yml +0 -110
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://fred:dead@localhost:
|
5
|
+
uri: http://fred:dead@localhost:8150/api
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -25,12 +25,12 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json;charset=utf-8
|
27
27
|
Content-Length:
|
28
|
-
- '
|
28
|
+
- '5650'
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Mon, 09 Mar 2015 19:55:07 GMT
|
31
31
|
body:
|
32
32
|
encoding: US-ASCII
|
33
|
-
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:
|
33
|
+
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8150/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8150/api/commands/create-broker"},{"name":"create-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/create-hook","id":"http://localhost:8150/api/commands/create-hook"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8150/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8150/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8150/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8150/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8150/api/commands/delete-broker"},{"name":"delete-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-hook","id":"http://localhost:8150/api/commands/delete-hook"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8150/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8150/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8150/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8150/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8150/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8150/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8150/api/commands/modify-node-metadata"},{"name":"modify-policy-max-count","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-policy-max-count","id":"http://localhost:8150/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8150/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8150/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8150/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8150/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8150/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8150/api/commands/remove-policy-tag"},{"name":"set-node-desired-power-state","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-desired-power-state","id":"http://localhost:8150/api/commands/set-node-desired-power-state"},{"name":"set-node-hw-info","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-hw-info","id":"http://localhost:8150/api/commands/set-node-hw-info"},{"name":"set-node-ipmi-credentials","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-ipmi-credentials","id":"http://localhost:8150/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8150/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8150/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8150/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8150/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8150/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8150/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8150/api/collections/nodes","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8150/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8150/api/collections/commands"},{"name":"events","rel":"http://api.puppetlabs.com/razor/v1/collections/events","id":"http://localhost:8150/api/collections/events","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"hooks","rel":"http://api.puppetlabs.com/razor/v1/collections/hooks","id":"http://localhost:8150/api/collections/hooks"}],"version":{"server":"v0.16.1-18-gd3acc7a-dirty"}}'
|
34
34
|
http_version:
|
35
|
-
recorded_at:
|
35
|
+
recorded_at: Mon, 09 Mar 2015 19:55:07 GMT
|
36
36
|
recorded_with: VCR 2.5.0
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://localhost:
|
5
|
+
uri: http://localhost:8150/api
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -25,17 +25,17 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json;charset=utf-8
|
27
27
|
Content-Length:
|
28
|
-
- '
|
28
|
+
- '5650'
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Mon, 09 Mar 2015 19:55:18 GMT
|
31
31
|
body:
|
32
32
|
encoding: US-ASCII
|
33
|
-
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:
|
33
|
+
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8150/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8150/api/commands/create-broker"},{"name":"create-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/create-hook","id":"http://localhost:8150/api/commands/create-hook"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8150/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8150/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8150/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8150/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8150/api/commands/delete-broker"},{"name":"delete-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-hook","id":"http://localhost:8150/api/commands/delete-hook"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8150/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8150/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8150/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8150/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8150/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8150/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8150/api/commands/modify-node-metadata"},{"name":"modify-policy-max-count","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-policy-max-count","id":"http://localhost:8150/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8150/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8150/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8150/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8150/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8150/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8150/api/commands/remove-policy-tag"},{"name":"set-node-desired-power-state","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-desired-power-state","id":"http://localhost:8150/api/commands/set-node-desired-power-state"},{"name":"set-node-hw-info","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-hw-info","id":"http://localhost:8150/api/commands/set-node-hw-info"},{"name":"set-node-ipmi-credentials","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-ipmi-credentials","id":"http://localhost:8150/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8150/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8150/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8150/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8150/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8150/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8150/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8150/api/collections/nodes","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8150/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8150/api/collections/commands"},{"name":"events","rel":"http://api.puppetlabs.com/razor/v1/collections/events","id":"http://localhost:8150/api/collections/events","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"hooks","rel":"http://api.puppetlabs.com/razor/v1/collections/hooks","id":"http://localhost:8150/api/collections/hooks"}],"version":{"server":"v0.16.1-18-gd3acc7a-dirty"}}'
|
34
34
|
http_version:
|
35
|
-
recorded_at:
|
35
|
+
recorded_at: Mon, 09 Mar 2015 19:55:18 GMT
|
36
36
|
- request:
|
37
37
|
method: get
|
38
|
-
uri: http://localhost:
|
38
|
+
uri: http://localhost:8150/api/commands/register-node
|
39
39
|
body:
|
40
40
|
encoding: US-ASCII
|
41
41
|
string: ''
|
@@ -54,15 +54,15 @@ http_interactions:
|
|
54
54
|
Server:
|
55
55
|
- Apache-Coyote/1.1
|
56
56
|
Etag:
|
57
|
-
- '"server-version-v0.
|
57
|
+
- '"server-version-v0.16.1-18-gd3acc7a-dirty"'
|
58
58
|
X-Content-Type-Options:
|
59
59
|
- nosniff
|
60
60
|
Content-Type:
|
61
61
|
- application/json;charset=utf-8
|
62
62
|
Content-Length:
|
63
|
-
- '
|
63
|
+
- '6207'
|
64
64
|
Date:
|
65
|
-
-
|
65
|
+
- Mon, 09 Mar 2015 19:55:18 GMT
|
66
66
|
body:
|
67
67
|
encoding: US-ASCII
|
68
68
|
string: '{"name":"register-node","help":{"summary":"Register a node with Razor
|
@@ -85,7 +85,7 @@ http_interactions:
|
|
85
85
|
http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * installed\n -
|
86
86
|
Should the node be considered ''installed'' already? Installed nodes are\n not
|
87
87
|
eligible for policy matching, and will simply boot locally.\n - This attribute
|
88
|
-
is required.\n - It must be of type boolean.\n\n *
|
88
|
+
is required.\n - It must be of type boolean.\n\n * hw_info\n - The hardware
|
89
89
|
information for the node. This is used to match the node on first\n boot
|
90
90
|
with the record in the database. The order of MAC address assignment in\n this
|
91
91
|
data is not significant, as a node with reordered MAC addresses will be\n treated
|
@@ -96,7 +96,7 @@ http_interactions:
|
|
96
96
|
It must be of type string.\n \n * uuid\n - The DMI UUID of the node\n -
|
97
97
|
It must be of type string.\n","examples":{"api":"Register a machine before
|
98
98
|
you boot it, and note that it already has an OS\ninstalled, so should not
|
99
|
-
be subject to policy-based reinstallation:\n\n {\n \"
|
99
|
+
be subject to policy-based reinstallation:\n\n {\n \"hw_info\": {\n \"net0\": \"78:31:c1:be:c8:00\",\n \"net1\": \"72:00:01:f2:13:f0\",\n \"net2\": \"72:00:01:f2:13:f1\",\n \"serial\":
|
100
100
|
\"xxxxxxxxxxx\",\n \"asset\": \"Asset-1234567890\",\n \"uuid\": \"Not
|
101
101
|
Settable\"\n },\n \"installed\": true\n }","cli":"Register a
|
102
102
|
machine before you boot it, and note that it already has an OS\ninstalled,
|
@@ -124,7 +124,7 @@ http_interactions:
|
|
124
124
|
http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * installed\n -
|
125
125
|
Should the node be considered ''installed'' already? Installed nodes are\n not
|
126
126
|
eligible for policy matching, and will simply boot locally.\n - This attribute
|
127
|
-
is required.\n - It must be of type boolean.\n\n *
|
127
|
+
is required.\n - It must be of type boolean.\n\n * hw_info\n - The hardware
|
128
128
|
information for the node. This is used to match the node on first\n boot
|
129
129
|
with the record in the database. The order of MAC address assignment in\n this
|
130
130
|
data is not significant, as a node with reordered MAC addresses will be\n treated
|
@@ -135,126 +135,18 @@ http_interactions:
|
|
135
135
|
It must be of type string.\n \n * uuid\n - The DMI UUID of the node\n -
|
136
136
|
It must be of type string.\n\n# EXAMPLES\n\n Register a machine before you
|
137
137
|
boot it, and note that it already has an OS\n installed, so should not be
|
138
|
-
subject to policy-based reinstallation:\n \n {\n \"
|
138
|
+
subject to policy-based reinstallation:\n \n {\n \"hw_info\":
|
139
139
|
{\n \"net0\": \"78:31:c1:be:c8:00\",\n \"net1\": \"72:00:01:f2:13:f0\",\n \"net2\": \"72:00:01:f2:13:f1\",\n \"serial\":
|
140
140
|
\"xxxxxxxxxxx\",\n \"asset\": \"Asset-1234567890\",\n \"uuid\": \"Not
|
141
|
-
Settable\"\n },\n \"installed\": true\n }\n"},"schema":{"installed":{"type":"boolean"},"
|
141
|
+
Settable\"\n },\n \"installed\": true\n }\n"},"schema":{"installed":{"type":"boolean"},"hw_info":{"type":"object","aliases":["hw-info"]}}}'
|
142
142
|
http_version:
|
143
|
-
recorded_at:
|
144
|
-
- request:
|
145
|
-
method: get
|
146
|
-
uri: http://localhost:8080/api/commands/register-node
|
147
|
-
body:
|
148
|
-
encoding: US-ASCII
|
149
|
-
string: ''
|
150
|
-
headers:
|
151
|
-
Accept:
|
152
|
-
- application/json
|
153
|
-
Accept-Encoding:
|
154
|
-
- gzip, deflate
|
155
|
-
User-Agent:
|
156
|
-
- Ruby
|
157
|
-
response:
|
158
|
-
status:
|
159
|
-
code: 200
|
160
|
-
message: OK
|
161
|
-
headers:
|
162
|
-
Server:
|
163
|
-
- Apache-Coyote/1.1
|
164
|
-
Etag:
|
165
|
-
- '"server-version-v0.15.0-67-gcc2509f"'
|
166
|
-
X-Content-Type-Options:
|
167
|
-
- nosniff
|
168
|
-
Content-Type:
|
169
|
-
- application/json;charset=utf-8
|
170
|
-
Content-Length:
|
171
|
-
- '6185'
|
172
|
-
Date:
|
173
|
-
- Tue, 18 Nov 2014 01:49:50 GMT
|
174
|
-
body:
|
175
|
-
encoding: US-ASCII
|
176
|
-
string: '{"name":"register-node","help":{"summary":"Register a node with Razor
|
177
|
-
before it is discovered","description":"In order to make brownfield deployments
|
178
|
-
of Razor easier we allow users to\nregister nodes explicitly. This command
|
179
|
-
allows you to perform the same\nregistration that would happen when a new
|
180
|
-
node checked in, ahead of time.\n\nIn order for this to be effective the hw_info
|
181
|
-
must contain enough information\nthat the node can successfully be matched
|
182
|
-
during the iPXE boot phase.\n\nIf the node matches an existing node, in keeping
|
183
|
-
with the overall policy of\ncommands declaring desired state, the node installed
|
184
|
-
field will be updated to\nmatch the value in this command.\n\nThe final state
|
185
|
-
is that a node with the supplied hardware information, and the\ndesired installed
|
186
|
-
state, will be present in the database, regardless of it\nexisting before
|
187
|
-
hand or not.","schema":"# Access Control\n\nThis command''s access control
|
188
|
-
pattern: `commands:register-node`\n\nFor more detail on how the permission
|
189
|
-
strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
|
190
|
-
pattern is expanded\nand then a permission check applied to it, before the
|
191
|
-
command is authorized.\n\nThese checks only apply if security is enabled in
|
192
|
-
the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
|
193
|
-
http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * installed\n -
|
194
|
-
Should the node be considered ''installed'' already? Installed nodes are\n not
|
195
|
-
eligible for policy matching, and will simply boot locally.\n - This attribute
|
196
|
-
is required.\n - It must be of type boolean.\n\n * hw-info\n - The hardware
|
197
|
-
information for the node. This is used to match the node on first\n boot
|
198
|
-
with the record in the database. The order of MAC address assignment in\n this
|
199
|
-
data is not significant, as a node with reordered MAC addresses will be\n treated
|
200
|
-
as the same node.\n - This attribute is required.\n - It must be of type
|
201
|
-
object.\n - It must be between 1 and Infinity in length.\n # Attributes\n \n *
|
202
|
-
serial\n - The DMI serial number of the node\n - It must be of type
|
203
|
-
string.\n \n * asset\n - The DMI asset tag of the node\n -
|
204
|
-
It must be of type string.\n \n * uuid\n - The DMI UUID of the node\n -
|
205
|
-
It must be of type string.\n","examples":{"api":"Register a machine before
|
206
|
-
you boot it, and note that it already has an OS\ninstalled, so should not
|
207
|
-
be subject to policy-based reinstallation:\n\n {\n \"hw-info\": {\n \"net0\": \"78:31:c1:be:c8:00\",\n \"net1\": \"72:00:01:f2:13:f0\",\n \"net2\": \"72:00:01:f2:13:f1\",\n \"serial\":
|
208
|
-
\"xxxxxxxxxxx\",\n \"asset\": \"Asset-1234567890\",\n \"uuid\": \"Not
|
209
|
-
Settable\"\n },\n \"installed\": true\n }","cli":"Register a
|
210
|
-
machine before you boot it, and note that it already has an OS\ninstalled,
|
211
|
-
so should not be subject to policy-based reinstallation:\n\n razor register-node
|
212
|
-
--hw-info net0=78:31:c1:be:c8:00 \\\n --hw-info net1=72:00:01:f2:13:f0
|
213
|
-
\\\n --hw-info net2=72:00:01:f2:13:f1 \\\n --hw-info serial=xxxxxxxxxxx
|
214
|
-
\\\n --hw-info asset=Asset-1234567890 \\\n --hw-info uuid=\"Not
|
215
|
-
Settable\" \\\n --installed"},"full":"# SYNOPSIS\nRegister a node with
|
216
|
-
Razor before it is discovered\n\n# DESCRIPTION\nIn order to make brownfield
|
217
|
-
deployments of Razor easier we allow users to\nregister nodes explicitly. This
|
218
|
-
command allows you to perform the same\nregistration that would happen when
|
219
|
-
a new node checked in, ahead of time.\n\nIn order for this to be effective
|
220
|
-
the hw_info must contain enough information\nthat the node can successfully
|
221
|
-
be matched during the iPXE boot phase.\n\nIf the node matches an existing
|
222
|
-
node, in keeping with the overall policy of\ncommands declaring desired state,
|
223
|
-
the node installed field will be updated to\nmatch the value in this command.\n\nThe
|
224
|
-
final state is that a node with the supplied hardware information, and the\ndesired
|
225
|
-
installed state, will be present in the database, regardless of it\nexisting
|
226
|
-
before hand or not.\n# Access Control\n\nThis command''s access control pattern:
|
227
|
-
`commands:register-node`\n\nFor more detail on how the permission strings
|
228
|
-
are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
|
229
|
-
pattern is expanded\nand then a permission check applied to it, before the
|
230
|
-
command is authorized.\n\nThese checks only apply if security is enabled in
|
231
|
-
the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
|
232
|
-
http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * installed\n -
|
233
|
-
Should the node be considered ''installed'' already? Installed nodes are\n not
|
234
|
-
eligible for policy matching, and will simply boot locally.\n - This attribute
|
235
|
-
is required.\n - It must be of type boolean.\n\n * hw-info\n - The hardware
|
236
|
-
information for the node. This is used to match the node on first\n boot
|
237
|
-
with the record in the database. The order of MAC address assignment in\n this
|
238
|
-
data is not significant, as a node with reordered MAC addresses will be\n treated
|
239
|
-
as the same node.\n - This attribute is required.\n - It must be of type
|
240
|
-
object.\n - It must be between 1 and Infinity in length.\n # Attributes\n \n *
|
241
|
-
serial\n - The DMI serial number of the node\n - It must be of type
|
242
|
-
string.\n \n * asset\n - The DMI asset tag of the node\n -
|
243
|
-
It must be of type string.\n \n * uuid\n - The DMI UUID of the node\n -
|
244
|
-
It must be of type string.\n\n# EXAMPLES\n\n Register a machine before you
|
245
|
-
boot it, and note that it already has an OS\n installed, so should not be
|
246
|
-
subject to policy-based reinstallation:\n \n {\n \"hw-info\":
|
247
|
-
{\n \"net0\": \"78:31:c1:be:c8:00\",\n \"net1\": \"72:00:01:f2:13:f0\",\n \"net2\": \"72:00:01:f2:13:f1\",\n \"serial\":
|
248
|
-
\"xxxxxxxxxxx\",\n \"asset\": \"Asset-1234567890\",\n \"uuid\": \"Not
|
249
|
-
Settable\"\n },\n \"installed\": true\n }\n"},"schema":{"installed":{"type":"boolean"},"hw-info":{"type":"object"}}}'
|
250
|
-
http_version:
|
251
|
-
recorded_at: Tue, 18 Nov 2014 01:49:50 GMT
|
143
|
+
recorded_at: Mon, 09 Mar 2015 19:55:18 GMT
|
252
144
|
- request:
|
253
145
|
method: post
|
254
|
-
uri: http://localhost:
|
146
|
+
uri: http://localhost:8150/api/commands/register-node
|
255
147
|
body:
|
256
148
|
encoding: UTF-8
|
257
|
-
string: '{"installed":true,"
|
149
|
+
string: '{"installed":true,"hw_info":{"net0":"78:31:c1:be:c8:00"}}'
|
258
150
|
headers:
|
259
151
|
Accept:
|
260
152
|
- application/json
|
@@ -278,17 +170,17 @@ http_interactions:
|
|
278
170
|
Content-Type:
|
279
171
|
- application/json;charset=utf-8
|
280
172
|
Content-Length:
|
281
|
-
- '
|
173
|
+
- '203'
|
282
174
|
Date:
|
283
|
-
-
|
175
|
+
- Mon, 09 Mar 2015 19:55:18 GMT
|
284
176
|
body:
|
285
177
|
encoding: US-ASCII
|
286
|
-
string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes/member","id":"http://localhost:
|
178
|
+
string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes/member","id":"http://localhost:8150/api/collections/nodes/node1","name":"node1","command":"http://localhost:8150/api/collections/commands/1"}'
|
287
179
|
http_version:
|
288
|
-
recorded_at:
|
180
|
+
recorded_at: Mon, 09 Mar 2015 19:55:18 GMT
|
289
181
|
- request:
|
290
182
|
method: get
|
291
|
-
uri: http://localhost:
|
183
|
+
uri: http://localhost:8150/api/collections/nodes/node1
|
292
184
|
body:
|
293
185
|
encoding: US-ASCII
|
294
186
|
string: ''
|
@@ -311,17 +203,17 @@ http_interactions:
|
|
311
203
|
Content-Type:
|
312
204
|
- application/json;charset=utf-8
|
313
205
|
Content-Length:
|
314
|
-
- '
|
206
|
+
- '409'
|
315
207
|
Date:
|
316
|
-
-
|
208
|
+
- Mon, 09 Mar 2015 19:55:18 GMT
|
317
209
|
body:
|
318
210
|
encoding: US-ASCII
|
319
|
-
string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes/member","id":"http://localhost:
|
211
|
+
string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes/member","id":"http://localhost:8150/api/collections/nodes/node1","name":"node1","hw_info":{"mac":["78:31:c1:be:c8:00"]},"log":{"id":"http://localhost:8150/api/collections/nodes/node1/log","name":"log","params":{"limit":{"type":"number"},"start":{"type":"number"}}},"tags":[],"state":{"installed":"true","installed_at":"2015-03-09T14:55:18-05:00"}}'
|
320
212
|
http_version:
|
321
|
-
recorded_at:
|
213
|
+
recorded_at: Mon, 09 Mar 2015 19:55:18 GMT
|
322
214
|
- request:
|
323
215
|
method: get
|
324
|
-
uri: http://fred:dead@localhost:
|
216
|
+
uri: http://fred:dead@localhost:8150/api
|
325
217
|
body:
|
326
218
|
encoding: US-ASCII
|
327
219
|
string: ''
|
@@ -344,17 +236,17 @@ http_interactions:
|
|
344
236
|
Content-Type:
|
345
237
|
- application/json;charset=utf-8
|
346
238
|
Content-Length:
|
347
|
-
- '
|
239
|
+
- '5650'
|
348
240
|
Date:
|
349
|
-
-
|
241
|
+
- Mon, 09 Mar 2015 19:55:18 GMT
|
350
242
|
body:
|
351
243
|
encoding: US-ASCII
|
352
|
-
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:
|
244
|
+
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8150/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8150/api/commands/create-broker"},{"name":"create-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/create-hook","id":"http://localhost:8150/api/commands/create-hook"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8150/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8150/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8150/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8150/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8150/api/commands/delete-broker"},{"name":"delete-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-hook","id":"http://localhost:8150/api/commands/delete-hook"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8150/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8150/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8150/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8150/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8150/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8150/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8150/api/commands/modify-node-metadata"},{"name":"modify-policy-max-count","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-policy-max-count","id":"http://localhost:8150/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8150/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8150/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8150/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8150/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8150/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8150/api/commands/remove-policy-tag"},{"name":"set-node-desired-power-state","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-desired-power-state","id":"http://localhost:8150/api/commands/set-node-desired-power-state"},{"name":"set-node-hw-info","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-hw-info","id":"http://localhost:8150/api/commands/set-node-hw-info"},{"name":"set-node-ipmi-credentials","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-ipmi-credentials","id":"http://localhost:8150/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8150/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8150/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8150/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8150/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8150/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8150/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8150/api/collections/nodes","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8150/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8150/api/collections/commands"},{"name":"events","rel":"http://api.puppetlabs.com/razor/v1/collections/events","id":"http://localhost:8150/api/collections/events","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"hooks","rel":"http://api.puppetlabs.com/razor/v1/collections/hooks","id":"http://localhost:8150/api/collections/hooks"}],"version":{"server":"v0.16.1-18-gd3acc7a-dirty"}}'
|
353
245
|
http_version:
|
354
|
-
recorded_at:
|
246
|
+
recorded_at: Mon, 09 Mar 2015 19:55:18 GMT
|
355
247
|
- request:
|
356
248
|
method: get
|
357
|
-
uri: http://fred:dead@localhost:
|
249
|
+
uri: http://fred:dead@localhost:8150/api/collections/nodes
|
358
250
|
body:
|
359
251
|
encoding: US-ASCII
|
360
252
|
string: ''
|
@@ -377,12 +269,12 @@ http_interactions:
|
|
377
269
|
Content-Type:
|
378
270
|
- application/json;charset=utf-8
|
379
271
|
Content-Length:
|
380
|
-
- '
|
272
|
+
- '226'
|
381
273
|
Date:
|
382
|
-
-
|
274
|
+
- Mon, 09 Mar 2015 19:55:18 GMT
|
383
275
|
body:
|
384
276
|
encoding: US-ASCII
|
385
|
-
string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes","items":[{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes/member","id":"http://localhost:
|
277
|
+
string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes","items":[{"spec":"http://api.puppetlabs.com/razor/v1/collections/nodes/member","id":"http://localhost:8150/api/collections/nodes/node1","name":"node1"}],"total":1}'
|
386
278
|
http_version:
|
387
|
-
recorded_at:
|
279
|
+
recorded_at: Mon, 09 Mar 2015 19:55:18 GMT
|
388
280
|
recorded_with: VCR 2.5.0
|
data/spec/fixtures/vcr/Razor_CLI_Parse/_new/_help/should_print_a_list_of_known_endpoints.yml
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://localhost:
|
5
|
+
uri: http://localhost:8150/api
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -25,12 +25,12 @@ http_interactions:
|
|
25
25
|
Content-Type:
|
26
26
|
- application/json;charset=utf-8
|
27
27
|
Content-Length:
|
28
|
-
- '
|
28
|
+
- '5650'
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Mon, 09 Mar 2015 19:55:47 GMT
|
31
31
|
body:
|
32
32
|
encoding: US-ASCII
|
33
|
-
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:
|
33
|
+
string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8150/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8150/api/commands/create-broker"},{"name":"create-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/create-hook","id":"http://localhost:8150/api/commands/create-hook"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8150/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8150/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8150/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8150/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8150/api/commands/delete-broker"},{"name":"delete-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-hook","id":"http://localhost:8150/api/commands/delete-hook"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8150/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8150/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8150/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8150/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8150/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8150/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8150/api/commands/modify-node-metadata"},{"name":"modify-policy-max-count","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-policy-max-count","id":"http://localhost:8150/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8150/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8150/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8150/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8150/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8150/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8150/api/commands/remove-policy-tag"},{"name":"set-node-desired-power-state","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-desired-power-state","id":"http://localhost:8150/api/commands/set-node-desired-power-state"},{"name":"set-node-hw-info","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-hw-info","id":"http://localhost:8150/api/commands/set-node-hw-info"},{"name":"set-node-ipmi-credentials","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-ipmi-credentials","id":"http://localhost:8150/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8150/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8150/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8150/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8150/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8150/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8150/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8150/api/collections/nodes","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8150/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8150/api/collections/commands"},{"name":"events","rel":"http://api.puppetlabs.com/razor/v1/collections/events","id":"http://localhost:8150/api/collections/events","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"hooks","rel":"http://api.puppetlabs.com/razor/v1/collections/hooks","id":"http://localhost:8150/api/collections/hooks"}],"version":{"server":"v0.16.1-18-gd3acc7a-dirty"}}'
|
34
34
|
http_version:
|
35
|
-
recorded_at:
|
35
|
+
recorded_at: Mon, 09 Mar 2015 19:55:47 GMT
|
36
36
|
recorded_with: VCR 2.5.0
|
data/spec/spec_helper.rb
CHANGED
@@ -29,19 +29,23 @@ end
|
|
29
29
|
def reset_db
|
30
30
|
razor_admin_path = ENV['razor-admin'] || 'bin/razor-admin'
|
31
31
|
db_environment = ENV['server-database-environment'] || 'development'
|
32
|
-
# The `cd` business is a workaround, since running `razor-admin` from a
|
33
|
-
|
32
|
+
# The `cd` business is a workaround, since running `razor-admin` from a
|
33
|
+
# different directory currently fails. Without the `Bundler` wrap, it uses
|
34
|
+
# the same bundler environment for the shell command, leading to errors
|
35
|
+
# relating to gems on razor-server that are not included in the razor-client
|
36
|
+
# bundle.
|
37
|
+
Bundler.with_clean_env {system("cd ../razor-server && #{razor_admin_path} -e #{db_environment} reset-database")}
|
34
38
|
end
|
35
39
|
|
36
40
|
# Record one cassette for each test
|
37
41
|
RSpec.configure do |c|
|
38
42
|
c.treat_symbols_as_metadata_keys_with_true_values = true
|
39
43
|
c.before(:each) do
|
40
|
-
ENV::
|
44
|
+
ENV::store('RAZOR_API', 'http://localhost:8150/api')
|
41
45
|
end
|
42
46
|
# Make tests have no side effects when [re-]recording.
|
43
47
|
if vcr_recording?
|
44
48
|
c.before(:all) { reset_db }
|
45
|
-
c.after(:each) { reset_db }
|
49
|
+
c.after(:each, :vcr => true) { reset_db }
|
46
50
|
end
|
47
51
|
end
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: razor-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Puppet Labs
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-06-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: mime-types
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - <
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - <
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,53 +30,66 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: multi_json
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rest-client
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - <
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
53
|
+
version: '1.7'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - <
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
61
|
+
version: '1.7'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: command_line_reporter
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- - '>'
|
67
|
+
- - ! '>'
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '3.0'
|
62
70
|
type: :runtime
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- - '>'
|
75
|
+
- - ! '>'
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '3.0'
|
69
|
-
description:
|
70
|
-
|
71
|
-
|
78
|
+
description: ! 'Razor is an advanced provisioning application which can deploy both
|
79
|
+
bare-metal
|
80
|
+
|
81
|
+
and virtual systems. It''s aimed at solving the problem of how to bring new
|
82
|
+
|
72
83
|
metal into a state where your existing DevOps/configuration management
|
84
|
+
|
73
85
|
workflows can take it over.
|
74
86
|
|
87
|
+
|
75
88
|
This provides the client application gem, used to provide CLI access and control
|
89
|
+
|
76
90
|
to users of razor-server.
|
91
|
+
|
92
|
+
'
|
77
93
|
email: info@puppetlabs.com
|
78
94
|
executables:
|
79
95
|
- razor
|
@@ -81,123 +97,114 @@ extensions: []
|
|
81
97
|
extra_rdoc_files: []
|
82
98
|
files:
|
83
99
|
- bin/razor
|
84
|
-
- lib/razor
|
100
|
+
- lib/razor.rb
|
101
|
+
- lib/razor/cli/version.rb
|
85
102
|
- lib/razor/cli/command.rb
|
86
|
-
- lib/razor/cli/document.rb
|
87
|
-
- lib/razor/cli/format.rb
|
88
|
-
- lib/razor/cli/navigate.rb
|
89
103
|
- lib/razor/cli/parse.rb
|
90
|
-
- lib/razor/cli/query.rb
|
91
|
-
- lib/razor/cli/table_format.rb
|
92
104
|
- lib/razor/cli/transforms.rb
|
93
|
-
- lib/razor/cli/
|
94
|
-
- lib/razor/cli/
|
105
|
+
- lib/razor/cli/navigate.rb
|
106
|
+
- lib/razor/cli/document.rb
|
107
|
+
- lib/razor/cli/table_format.rb
|
108
|
+
- lib/razor/cli/query.rb
|
95
109
|
- lib/razor/cli/views.yaml
|
96
|
-
- lib/razor.rb
|
110
|
+
- lib/razor/cli/views.rb
|
111
|
+
- lib/razor/cli/format.rb
|
112
|
+
- lib/razor/cli.rb
|
97
113
|
- NEWS.md
|
98
114
|
- README.md
|
99
115
|
- LICENSE
|
100
|
-
- spec/
|
116
|
+
- spec/testing.md
|
101
117
|
- spec/cli/navigate_spec.rb
|
118
|
+
- spec/cli/command_spec.rb
|
102
119
|
- spec/cli/parse_spec.rb
|
103
|
-
- spec/
|
104
|
-
- spec/fixtures/vcr/
|
105
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
106
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_command_help_.yml
|
107
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_help_command_.yml
|
108
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--help_--api_command_.yml
|
109
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_-a_-h_command_.yml
|
110
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_-a_command_-h_.yml
|
111
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml
|
112
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml
|
113
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml
|
114
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml
|
115
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml
|
116
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml
|
117
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml
|
120
|
+
- spec/cli/format_spec.rb
|
121
|
+
- spec/fixtures/vcr/Razor_CLI_Parse/_new/_help/should_print_a_list_of_known_endpoints.yml
|
122
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_no_parameters/should_fail_with_bad_JSON.yml
|
118
123
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_supply_that_to_the_API_service.yml
|
119
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
120
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
121
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_an_array_into_an_existing_array.yml
|
122
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_as_an_array.yml
|
123
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_into_an_existing_array.yml
|
124
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml
|
125
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_array_then_hash_.yml
|
124
126
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object.yml
|
125
127
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object_with_unicode.yml
|
126
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_array_then_hash_.yml
|
127
128
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_hash_then_array_.yml
|
128
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
129
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
129
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_as_an_array.yml
|
130
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_an_array_into_an_existing_array.yml
|
131
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_into_an_existing_array.yml
|
132
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_malformed_argument.yml
|
133
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_bad_JSON.yml
|
134
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_spaces.yml
|
135
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_in_string.yml
|
130
136
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_start.yml
|
137
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API_from_a_single_item.yml
|
138
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API.yml
|
131
139
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_not_fail_when_query_returns_details_for_one_item.yml
|
132
140
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_store_query_without_query_parameters.yml
|
133
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/
|
134
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
135
|
-
- spec/fixtures/vcr/
|
136
|
-
- spec/
|
137
|
-
- spec/
|
141
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_limit.yml
|
142
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml
|
143
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml
|
144
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml
|
145
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml
|
146
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml
|
147
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml
|
138
148
|
- spec/vcr_library.rb
|
139
149
|
- spec/version_spec.rb
|
150
|
+
- spec/spec_helper.rb
|
140
151
|
homepage: http://puppetlabs.com/puppet/puppet-enterprise
|
141
152
|
licenses: []
|
142
|
-
metadata: {}
|
143
153
|
post_install_message:
|
144
154
|
rdoc_options: []
|
145
155
|
require_paths:
|
146
156
|
- lib
|
147
157
|
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
none: false
|
148
159
|
requirements:
|
149
|
-
- - '>='
|
160
|
+
- - ! '>='
|
150
161
|
- !ruby/object:Gem::Version
|
151
162
|
version: '0'
|
152
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
153
165
|
requirements:
|
154
|
-
- - '>='
|
166
|
+
- - ! '>='
|
155
167
|
- !ruby/object:Gem::Version
|
156
168
|
version: '0'
|
157
169
|
requirements: []
|
158
170
|
rubyforge_project:
|
159
|
-
rubygems_version:
|
171
|
+
rubygems_version: 1.8.23
|
160
172
|
signing_key:
|
161
|
-
specification_version:
|
173
|
+
specification_version: 3
|
162
174
|
summary: Razor is an advanced provisioning application
|
163
175
|
test_files:
|
164
|
-
- spec/
|
176
|
+
- spec/testing.md
|
165
177
|
- spec/cli/navigate_spec.rb
|
178
|
+
- spec/cli/command_spec.rb
|
166
179
|
- spec/cli/parse_spec.rb
|
167
|
-
- spec/
|
168
|
-
- spec/fixtures/vcr/
|
169
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
170
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_command_help_.yml
|
171
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--api_help_command_.yml
|
172
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_--help_--api_command_.yml
|
173
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_-a_-h_command_.yml
|
174
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_API_command_help_for_razor_-a_command_-h_.yml
|
175
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml
|
176
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml
|
177
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml
|
178
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml
|
179
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml
|
180
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml
|
181
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml
|
180
|
+
- spec/cli/format_spec.rb
|
181
|
+
- spec/fixtures/vcr/Razor_CLI_Parse/_new/_help/should_print_a_list_of_known_endpoints.yml
|
182
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_no_parameters/should_fail_with_bad_JSON.yml
|
182
183
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_supply_that_to_the_API_service.yml
|
183
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
184
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
185
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_an_array_into_an_existing_array.yml
|
186
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_as_an_array.yml
|
187
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_into_an_existing_array.yml
|
184
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml
|
185
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_array_then_hash_.yml
|
188
186
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object.yml
|
189
187
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object_with_unicode.yml
|
190
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_array_then_hash_.yml
|
191
188
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_fail_with_mixed_types_hash_then_array_.yml
|
192
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
193
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
189
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_as_an_array.yml
|
190
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_an_array_into_an_existing_array.yml
|
191
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_into_an_existing_array.yml
|
192
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_malformed_argument.yml
|
193
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_bad_JSON.yml
|
194
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_spaces.yml
|
195
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_in_string.yml
|
194
196
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_start.yml
|
197
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API_from_a_single_item.yml
|
198
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API.yml
|
195
199
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_not_fail_when_query_returns_details_for_one_item.yml
|
196
200
|
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_store_query_without_query_parameters.yml
|
197
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/
|
198
|
-
- spec/fixtures/vcr/Razor_CLI_Navigate/
|
199
|
-
- spec/fixtures/vcr/
|
200
|
-
- spec/
|
201
|
-
- spec/
|
201
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_limit.yml
|
202
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml
|
203
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml
|
204
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml
|
205
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml
|
206
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml
|
207
|
+
- spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml
|
202
208
|
- spec/vcr_library.rb
|
203
209
|
- spec/version_spec.rb
|
210
|
+
- spec/spec_helper.rb
|