razor-client 1.7.0 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/NEWS.md +12 -0
  2. data/bin/razor +19 -23
  3. data/lib/razor/cli/command.rb +3 -3
  4. data/lib/razor/cli/navigate.rb +55 -1
  5. data/lib/razor/cli/parse.rb +15 -11
  6. data/lib/razor/cli/version.rb +1 -1
  7. data/spec/cli/command_spec.rb +10 -1
  8. data/spec/cli/navigate_spec.rb +52 -4
  9. data/spec/cli/parse_spec.rb +1 -2
  10. data/spec/fixtures/sample_api +1 -0
  11. data/spec/fixtures/vcr/Razor_CLI_Navigate/accept-language_header/should_allow_other_accept-language_headers.yml +10 -8
  12. data/spec/fixtures/vcr/Razor_CLI_Navigate/accept-language_header/should_set_the_accept-language_header.yml +10 -8
  13. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_in_string.yml +110 -91
  14. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_single-dash_with_single_character_flag.yml +71 -51
  15. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_spaces.yml +328 -271
  16. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_not_allow_double-dash_with_single_character_flag.yml +52 -40
  17. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_not_allow_single-dash_with_multiple_character_flag.yml +49 -37
  18. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml +53 -135
  19. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml +53 -135
  20. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml +53 -135
  21. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml +53 -135
  22. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml +53 -135
  23. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml +53 -135
  24. data/spec/fixtures/vcr/Razor_CLI_Navigate/positional_arguments/should_allow_the_use_of_positional_arguments.yml +229 -163
  25. data/spec/fixtures/vcr/Razor_CLI_Navigate/positional_arguments/should_fail_with_too_many_positional_arguments.yml +49 -37
  26. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml +25 -13
  27. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_supply_that_to_the_API_service.yml +14 -8
  28. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_bad_JSON.yml +52 -40
  29. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_malformed_argument.yml +105 -90
  30. 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 +549 -446
  31. 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 +549 -446
  32. 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 +549 -446
  33. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object.yml +71 -51
  34. 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 +144 -100
  35. 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 +52 -40
  36. 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 +52 -40
  37. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_no_parameters/should_fail_with_bad_JSON.yml +54 -43
  38. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_limit.yml +25 -13
  39. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_start.yml +25 -13
  40. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_not_fail_when_query_returns_details_for_one_item.yml +78 -44
  41. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_store_query_without_query_parameters.yml +130 -74
  42. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API.yml +14 -8
  43. 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 +66 -38
  44. data/spec/fixtures/vcr/Razor_CLI_Parse/_new/_help/should_print_a_list_of_known_endpoints.yml +12 -8
  45. data/spec/spec_helper.rb +4 -1
  46. data/spec/testing.md +25 -1
  47. metadata +73 -71
@@ -12,7 +12,11 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - Ruby
15
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
16
+ Accept-Language:
17
+ - en_US,en
18
+ Host:
19
+ - localhost:8150
16
20
  response:
17
21
  status:
18
22
  code: 200
@@ -23,16 +27,16 @@ http_interactions:
23
27
  X-Content-Type-Options:
24
28
  - nosniff
25
29
  Content-Type:
26
- - application/json;charset=utf-8
30
+ - application/json
27
31
  Content-Length:
28
- - '5650'
32
+ - '7110'
29
33
  Date:
30
- - Mon, 09 Mar 2015 19:54:01 GMT
34
+ - Mon, 23 Apr 2018 19:47:17 GMT
31
35
  body:
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: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"}}'
36
+ encoding: UTF-8
37
+ 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":"run-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/run-hook","id":"http://localhost:8150/api/commands/run-hook"},{"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-broker-configuration","rel":"http://api.puppetlabs.com/razor/v1/commands/update-broker-configuration","id":"http://localhost:8150/api/commands/update-broker-configuration"},{"name":"update-hook-configuration","rel":"http://api.puppetlabs.com/razor/v1/commands/update-hook-configuration","id":"http://localhost:8150/api/commands/update-hook-configuration"},{"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-policy-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-broker","id":"http://localhost:8150/api/commands/update-policy-broker"},{"name":"update-policy-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-node-metadata","id":"http://localhost:8150/api/commands/update-policy-node-metadata"},{"name":"update-policy-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-repo","id":"http://localhost:8150/api/commands/update-policy-repo"},{"name":"update-policy-task","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-task","id":"http://localhost:8150/api/commands/update-policy-task"},{"name":"update-repo-task","rel":"http://api.puppetlabs.com/razor/v1/commands/update-repo-task","id":"http://localhost:8150/api/commands/update-repo-task"},{"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"},{"name":"config","rel":"http://api.puppetlabs.com/razor/v1/collections/config","id":"http://localhost:8150/api/collections/config"}],"version":{"server":"v1.8.0-dirty"}}'
34
38
  http_version:
35
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
39
+ recorded_at: Mon, 23 Apr 2018 19:47:17 GMT
36
40
  - request:
37
41
  method: get
38
42
  uri: http://localhost:8150/api/commands/create-repo
@@ -45,7 +49,11 @@ http_interactions:
45
49
  Accept-Encoding:
46
50
  - gzip, deflate
47
51
  User-Agent:
48
- - Ruby
52
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
53
+ Accept-Language:
54
+ - en_US,en
55
+ Host:
56
+ - localhost:8150
49
57
  response:
50
58
  status:
51
59
  code: 200
@@ -54,17 +62,17 @@ http_interactions:
54
62
  Server:
55
63
  - Apache-Coyote/1.1
56
64
  Etag:
57
- - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
65
+ - '"server-version-v1.8.0-dirty"'
58
66
  X-Content-Type-Options:
59
67
  - nosniff
60
68
  Content-Type:
61
- - application/json;charset=utf-8
69
+ - application/json
62
70
  Content-Length:
63
- - '7794'
71
+ - '8224'
64
72
  Date:
65
- - Mon, 09 Mar 2015 19:54:01 GMT
73
+ - Mon, 23 Apr 2018 19:47:17 GMT
66
74
  body:
67
- encoding: US-ASCII
75
+ encoding: UTF-8
68
76
  string: '{"name":"create-repo","help":{"summary":"Create a new repository, from
69
77
  an ISO image or a URL","description":"Create a new repository, which can either
70
78
  contain the content to install a\nnode, or simply point to an existing online
@@ -79,87 +87,90 @@ http_interactions:
79
87
  the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
80
88
  http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
81
89
  The name of the repository.\n - This attribute is required.\n - It must
82
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
83
- The URL of the remote repository to use.\n - It must be of type string.\n -
84
- If present, iso_url, no_content must not be present.\n - It must be between
85
- 1 and 1000 in length.\n\n * iso_url\n - The URL of the ISO image to download
86
- and unpack to create the\n repository. This can be an HTTP or HTTPS URL,
87
- or it can be a\n file URL.\n \n In the latter case, the file path
88
- is interpreted as a path on the\n Razor server, rather than a path on
89
- the client. This requires that\n you manually place the ISO image on
90
- the server before invoking the\n command.\n - It must be of type string.\n -
91
- If present, url, no_content must not be present.\n - It must be between
92
- 1 and 1000 in length.\n\n * no_content\n - For cases where extraction will
93
- be done manually, this argument\n creates a stub directory in the repo
94
- store where the extracted\n contents can be placed.\n - It must be of
95
- type boolean.\n - If present, iso_url, url must not be present.\n\n * task\n -
96
- The name of the task associated with this repository. This is used to\n install
97
- nodes that match a policy using this repository; generally it\n should
98
- match the OS that the URL or ISO_URL attributes point to.\n - This attribute
99
- is required.\n - It must be of type string.\n","examples":{"api":"Create
90
+ be of type string.\n - It must be between 1 and 250 in length.\n - Its
91
+ argument position is 0.\n\n * url\n - The URL of the remote repository to
92
+ use.\n - It must be of type string.\n - If present, iso_url, no_content
93
+ must not be present.\n - It must be between 1 and 1000 in length.\n\n *
94
+ iso_url\n - The URL of the ISO image to download and unpack to create the\n repository. This
95
+ can be an HTTP or HTTPS URL, or it can be a\n file URL.\n \n In
96
+ the latter case, the file path is interpreted as a path on the\n Razor
97
+ server, rather than a path on the client. This requires that\n you manually
98
+ place the ISO image on the server before invoking the\n command.\n -
99
+ It must be of type string.\n - If present, url, no_content must not be present.\n -
100
+ It must be between 1 and 1000 in length.\n\n * no_content\n - For cases
101
+ where extraction will be done manually, this argument\n creates a stub
102
+ directory in the repo store where the extracted\n contents can be placed.\n -
103
+ It must be of type boolean.\n - If present, iso_url, url must not be present.\n\n
104
+ * task\n - The name of the default task associated with this repository. This
105
+ is\n used to install nodes that match a policy using this repository;\n generally
106
+ it should match the OS that the URL or ISO_URL attributes point\n to.
107
+ Note that this attribute can be overridden by the task on the policy.\n -
108
+ This attribute is required.\n - It must be of type string.\n","examples":{"api":"Create
100
109
  a repository from an ISO image, which will be downloaded and unpacked\nby
101
- the razor-server in the background:\n\n {\n \"name\": \"fedora19\",\n \"iso_url\":
102
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nYou
110
+ the razor-server in the background:\n\n {\n \"name\": \"fedora21\",\n \"iso_url\":
111
+ \"http://example.com/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nYou
103
112
  can also unpack an ISO image from a file *on the server*; this does not\nupload
104
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
105
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nFinally,
113
+ the file from the client:\n {\n \"name\": \"fedora21\",\n \"iso_url\":
114
+ \"file:///tmp/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nFinally,
106
115
  you can provide a `url` property when you create the repository;\nthis form
107
116
  is merely a pointer to a resource somewhere and nothing will be\ndownloaded
108
- onto the Razor server:\n\n {\n \"name\": \"fedora19\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/\"\n \"task\":
117
+ onto the Razor server:\n\n {\n \"name\": \"fedora21\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os\"\n \"task\":
109
118
  \"fedora\"\n }","cli":"Create a repository from an ISO image, which will
110
119
  be downloaded and unpacked\nby the razor-server in the background:\n\n razor
111
- create-repo --name fedora19 \\\n --iso-url http://example.com/Fedora-19-x86_64-DVD.iso
120
+ create-repo --name fedora21 \\\n --iso-url http://example.com/Fedora-21-x86_64-DVD.iso
112
121
  \\\n --task fedora\n\nYou can also unpack an ISO image from a file
113
122
  *on the server*; this does not\nupload the file from the client:\n\n razor
114
- create-repo --name fedora19 \\\n --iso-url file:///tmp/Fedora-19-x86_64-DVD.iso
123
+ create-repo --name fedora21 \\\n --iso-url file:///tmp/Fedora-21-x86_64-DVD.iso
115
124
  \\\n --task fedora\n\nFinally, you can provide a `url` property when
116
125
  you create the repository;\nthis form is merely a pointer to a resource somewhere
117
126
  and nothing will be\ndownloaded onto the Razor server:\n\n razor create-repo
118
- --name fedora19 --iso-url \\\n http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/
119
- \\\n --task fedora"},"full":"# SYNOPSIS\nCreate a new repository, from
120
- an ISO image or a URL\n\n# DESCRIPTION\nCreate a new repository, which can
121
- either contain the content to install a\nnode, or simply point to an existing
122
- online repository by URL.\n# Access Control\n\nThis command''s access control
123
- pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}` are
124
- substitutions from the input data: typically\nthe name of the object being
125
- modified, or some other critical detail, these\nallow roles to be granted
126
- partial access to modify the system.\n\nFor more detail on how the permission
127
- strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
128
- pattern is expanded\nand then a permission check applied to it, before the
129
- command is authorized.\n\nThese checks only apply if security is enabled in
130
- the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
131
- http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
132
- The name of the repository.\n - This attribute is required.\n - It must
133
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
134
- The URL of the remote repository to use.\n - It must be of type string.\n -
135
- If present, iso_url, no_content must not be present.\n - It must be between
136
- 1 and 1000 in length.\n\n * iso_url\n - The URL of the ISO image to download
137
- and unpack to create the\n repository. This can be an HTTP or HTTPS URL,
138
- or it can be a\n file URL.\n \n In the latter case, the file path
139
- is interpreted as a path on the\n Razor server, rather than a path on
140
- the client. This requires that\n you manually place the ISO image on
141
- the server before invoking the\n command.\n - It must be of type string.\n -
142
- If present, url, no_content must not be present.\n - It must be between
143
- 1 and 1000 in length.\n\n * no_content\n - For cases where extraction will
144
- be done manually, this argument\n creates a stub directory in the repo
145
- store where the extracted\n contents can be placed.\n - It must be of
146
- type boolean.\n - If present, iso_url, url must not be present.\n\n * task\n -
147
- The name of the task associated with this repository. This is used to\n install
148
- nodes that match a policy using this repository; generally it\n should
149
- match the OS that the URL or ISO_URL attributes point to.\n - This attribute
150
- is required.\n - It must be of type string.\n\n# EXAMPLES\n\n Create a
151
- repository from an ISO image, which will be downloaded and unpacked\n by
152
- the razor-server in the background:\n \n {\n \"name\": \"fedora19\",\n \"iso_url\":
153
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
127
+ --name fedora21 --url \\\n http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os/
128
+ \\\n --task fedora\n\nWith positional arguments, this can be shortened::\n\n razor
129
+ create-repo fedora21 --task fedora --url \\\n http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os/"},"full":"#
130
+ SYNOPSIS\nCreate a new repository, from an ISO image or a URL\n\n# DESCRIPTION\nCreate
131
+ a new repository, which can either contain the content to install a\nnode,
132
+ or simply point to an existing online repository by URL.\n# Access Control\n\nThis
133
+ command''s access control pattern: `commands:create-repo:%{name}`\n\nWords
134
+ surrounded by `%{...}` are substitutions from the input data: typically\nthe
135
+ name of the object being modified, or some other critical detail, these\nallow
136
+ roles to be granted partial access to modify the system.\n\nFor more detail
137
+ on how the permission strings are structured and work, you can\nsee the [Shiro
138
+ Permissions documentation][shiro]. That pattern is expanded\nand then a permission
139
+ check applied to it, before the command is authorized.\n\nThese checks only
140
+ apply if security is enabled in the Razor configuration\nfile; on this server
141
+ security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
142
+ Attributes\n\n * name\n - The name of the repository.\n - This attribute
143
+ is required.\n - It must be of type string.\n - It must be between 1 and
144
+ 250 in length.\n - Its argument position is 0.\n\n * url\n - The URL of
145
+ the remote repository to use.\n - It must be of type string.\n - If present,
146
+ iso_url, no_content must not be present.\n - It must be between 1 and 1000
147
+ in length.\n\n * iso_url\n - The URL of the ISO image to download and unpack
148
+ to create the\n repository. This can be an HTTP or HTTPS URL, or it can
149
+ be a\n file URL.\n \n In the latter case, the file path is interpreted
150
+ as a path on the\n Razor server, rather than a path on the client. This
151
+ requires that\n you manually place the ISO image on the server before
152
+ invoking the\n command.\n - It must be of type string.\n - If present,
153
+ url, no_content must not be present.\n - It must be between 1 and 1000 in
154
+ length.\n\n * no_content\n - For cases where extraction will be done manually,
155
+ this argument\n creates a stub directory in the repo store where the extracted\n contents
156
+ can be placed.\n - It must be of type boolean.\n - If present, iso_url,
157
+ url must not be present.\n\n * task\n - The name of the default task associated
158
+ with this repository. This is\n used to install nodes that match a policy
159
+ using this repository;\n generally it should match the OS that the URL
160
+ or ISO_URL attributes point\n to. Note that this attribute can be overridden
161
+ by the task on the policy.\n - This attribute is required.\n - It must
162
+ be of type string.\n\n# EXAMPLES\n\n Create a repository from an ISO image,
163
+ which will be downloaded and unpacked\n by the razor-server in the background:\n \n {\n \"name\": \"fedora21\",\n \"iso_url\":
164
+ \"http://example.com/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
154
165
  can also unpack an ISO image from a file *on the server*; this does not\n upload
155
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
156
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
166
+ the file from the client:\n {\n \"name\": \"fedora21\",\n \"iso_url\":
167
+ \"file:///tmp/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
157
168
  you can provide a `url` property when you create the repository;\n this form
158
169
  is merely a pointer to a resource somewhere and nothing will be\n downloaded
159
- onto the Razor server:\n \n {\n \"name\": \"fedora19\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/\"\n \"task\":
160
- \"fedora\"\n }\n"},"schema":{"name":{"type":"string"},"url":{"type":"string"},"iso_url":{"type":"string","aliases":["iso-url"]},"no_content":{"type":"boolean","aliases":["no-content"]},"task":{"type":"string"}}}'
170
+ onto the Razor server:\n \n {\n \"name\": \"fedora21\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os\"\n \"task\":
171
+ \"fedora\"\n }\n"},"schema":{"name":{"type":"string","position":0},"url":{"type":"string"},"iso_url":{"type":"string","aliases":["iso-url"]},"no_content":{"type":"boolean","aliases":["no-content"]},"task":{"type":"string"}}}'
161
172
  http_version:
162
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
173
+ recorded_at: Mon, 23 Apr 2018 19:47:17 GMT
163
174
  - request:
164
175
  method: post
165
176
  uri: http://localhost:8150/api/commands/create-repo
@@ -171,12 +182,16 @@ http_interactions:
171
182
  - application/json
172
183
  Accept-Encoding:
173
184
  - gzip, deflate
185
+ User-Agent:
186
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
174
187
  Content-Type:
175
188
  - application/json
189
+ Accept-Language:
190
+ - en_US,en
176
191
  Content-Length:
177
192
  - '77'
178
- User-Agent:
179
- - Ruby
193
+ Host:
194
+ - localhost:8150
180
195
  response:
181
196
  status:
182
197
  code: 202
@@ -187,17 +202,17 @@ http_interactions:
187
202
  X-Content-Type-Options:
188
203
  - nosniff
189
204
  Content-Type:
190
- - application/json;charset=utf-8
205
+ - application/json
191
206
  Content-Length:
192
207
  - '237'
193
208
  Date:
194
- - Mon, 09 Mar 2015 19:54:01 GMT
209
+ - Mon, 23 Apr 2018 19:47:17 GMT
195
210
  body:
196
- encoding: US-ASCII
211
+ encoding: UTF-8
197
212
  string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/separate%20with%20spaces","name":"separate
198
213
  with spaces","command":"http://localhost:8150/api/collections/commands/1"}'
199
214
  http_version:
200
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
215
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
201
216
  - request:
202
217
  method: get
203
218
  uri: http://localhost:8150/api/collections/repos/separate%20with%20spaces
@@ -210,7 +225,11 @@ http_interactions:
210
225
  Accept-Encoding:
211
226
  - gzip, deflate
212
227
  User-Agent:
213
- - Ruby
228
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
229
+ Accept-Language:
230
+ - en_US,en
231
+ Host:
232
+ - localhost:8150
214
233
  response:
215
234
  status:
216
235
  code: 200
@@ -221,17 +240,17 @@ http_interactions:
221
240
  X-Content-Type-Options:
222
241
  - nosniff
223
242
  Content-Type:
224
- - application/json;charset=utf-8
243
+ - application/json
225
244
  Content-Length:
226
245
  - '371'
227
246
  Date:
228
- - Mon, 09 Mar 2015 19:54:01 GMT
247
+ - Mon, 23 Apr 2018 19:47:17 GMT
229
248
  body:
230
- encoding: US-ASCII
249
+ encoding: UTF-8
231
250
  string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/separate%20with%20spaces","name":"separate
232
251
  with spaces","iso_url":null,"url":"http://url.com/some.iso","task":{"spec":"http://api.puppetlabs.com/razor/v1/collections/tasks/member","id":"http://localhost:8150/api/collections/tasks/noop","name":"noop"}}'
233
252
  http_version:
234
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
253
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
235
254
  - request:
236
255
  method: get
237
256
  uri: http://localhost:8150/api
@@ -244,7 +263,11 @@ http_interactions:
244
263
  Accept-Encoding:
245
264
  - gzip, deflate
246
265
  User-Agent:
247
- - Ruby
266
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
267
+ Accept-Language:
268
+ - en_US,en
269
+ Host:
270
+ - localhost:8150
248
271
  response:
249
272
  status:
250
273
  code: 200
@@ -255,16 +278,16 @@ http_interactions:
255
278
  X-Content-Type-Options:
256
279
  - nosniff
257
280
  Content-Type:
258
- - application/json;charset=utf-8
281
+ - application/json
259
282
  Content-Length:
260
- - '5650'
283
+ - '7110'
261
284
  Date:
262
- - Mon, 09 Mar 2015 19:54:01 GMT
285
+ - Mon, 23 Apr 2018 19:47:17 GMT
263
286
  body:
264
- encoding: US-ASCII
265
- 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"}}'
287
+ encoding: UTF-8
288
+ 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":"run-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/run-hook","id":"http://localhost:8150/api/commands/run-hook"},{"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-broker-configuration","rel":"http://api.puppetlabs.com/razor/v1/commands/update-broker-configuration","id":"http://localhost:8150/api/commands/update-broker-configuration"},{"name":"update-hook-configuration","rel":"http://api.puppetlabs.com/razor/v1/commands/update-hook-configuration","id":"http://localhost:8150/api/commands/update-hook-configuration"},{"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-policy-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-broker","id":"http://localhost:8150/api/commands/update-policy-broker"},{"name":"update-policy-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-node-metadata","id":"http://localhost:8150/api/commands/update-policy-node-metadata"},{"name":"update-policy-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-repo","id":"http://localhost:8150/api/commands/update-policy-repo"},{"name":"update-policy-task","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-task","id":"http://localhost:8150/api/commands/update-policy-task"},{"name":"update-repo-task","rel":"http://api.puppetlabs.com/razor/v1/commands/update-repo-task","id":"http://localhost:8150/api/commands/update-repo-task"},{"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"},{"name":"config","rel":"http://api.puppetlabs.com/razor/v1/collections/config","id":"http://localhost:8150/api/collections/config"}],"version":{"server":"v1.8.0-dirty"}}'
266
289
  http_version:
267
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
290
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
268
291
  - request:
269
292
  method: get
270
293
  uri: http://localhost:8150/api/commands/create-repo
@@ -277,7 +300,11 @@ http_interactions:
277
300
  Accept-Encoding:
278
301
  - gzip, deflate
279
302
  User-Agent:
280
- - Ruby
303
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
304
+ Accept-Language:
305
+ - en_US,en
306
+ Host:
307
+ - localhost:8150
281
308
  response:
282
309
  status:
283
310
  code: 200
@@ -286,17 +313,17 @@ http_interactions:
286
313
  Server:
287
314
  - Apache-Coyote/1.1
288
315
  Etag:
289
- - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
316
+ - '"server-version-v1.8.0-dirty"'
290
317
  X-Content-Type-Options:
291
318
  - nosniff
292
319
  Content-Type:
293
- - application/json;charset=utf-8
320
+ - application/json
294
321
  Content-Length:
295
- - '7794'
322
+ - '8224'
296
323
  Date:
297
- - Mon, 09 Mar 2015 19:54:01 GMT
324
+ - Mon, 23 Apr 2018 19:47:17 GMT
298
325
  body:
299
- encoding: US-ASCII
326
+ encoding: UTF-8
300
327
  string: '{"name":"create-repo","help":{"summary":"Create a new repository, from
301
328
  an ISO image or a URL","description":"Create a new repository, which can either
302
329
  contain the content to install a\nnode, or simply point to an existing online
@@ -311,87 +338,90 @@ http_interactions:
311
338
  the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
312
339
  http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
313
340
  The name of the repository.\n - This attribute is required.\n - It must
314
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
315
- The URL of the remote repository to use.\n - It must be of type string.\n -
316
- If present, iso_url, no_content must not be present.\n - It must be between
317
- 1 and 1000 in length.\n\n * iso_url\n - The URL of the ISO image to download
318
- and unpack to create the\n repository. This can be an HTTP or HTTPS URL,
319
- or it can be a\n file URL.\n \n In the latter case, the file path
320
- is interpreted as a path on the\n Razor server, rather than a path on
321
- the client. This requires that\n you manually place the ISO image on
322
- the server before invoking the\n command.\n - It must be of type string.\n -
323
- If present, url, no_content must not be present.\n - It must be between
324
- 1 and 1000 in length.\n\n * no_content\n - For cases where extraction will
325
- be done manually, this argument\n creates a stub directory in the repo
326
- store where the extracted\n contents can be placed.\n - It must be of
327
- type boolean.\n - If present, iso_url, url must not be present.\n\n * task\n -
328
- The name of the task associated with this repository. This is used to\n install
329
- nodes that match a policy using this repository; generally it\n should
330
- match the OS that the URL or ISO_URL attributes point to.\n - This attribute
331
- is required.\n - It must be of type string.\n","examples":{"api":"Create
341
+ be of type string.\n - It must be between 1 and 250 in length.\n - Its
342
+ argument position is 0.\n\n * url\n - The URL of the remote repository to
343
+ use.\n - It must be of type string.\n - If present, iso_url, no_content
344
+ must not be present.\n - It must be between 1 and 1000 in length.\n\n *
345
+ iso_url\n - The URL of the ISO image to download and unpack to create the\n repository. This
346
+ can be an HTTP or HTTPS URL, or it can be a\n file URL.\n \n In
347
+ the latter case, the file path is interpreted as a path on the\n Razor
348
+ server, rather than a path on the client. This requires that\n you manually
349
+ place the ISO image on the server before invoking the\n command.\n -
350
+ It must be of type string.\n - If present, url, no_content must not be present.\n -
351
+ It must be between 1 and 1000 in length.\n\n * no_content\n - For cases
352
+ where extraction will be done manually, this argument\n creates a stub
353
+ directory in the repo store where the extracted\n contents can be placed.\n -
354
+ It must be of type boolean.\n - If present, iso_url, url must not be present.\n\n
355
+ * task\n - The name of the default task associated with this repository. This
356
+ is\n used to install nodes that match a policy using this repository;\n generally
357
+ it should match the OS that the URL or ISO_URL attributes point\n to.
358
+ Note that this attribute can be overridden by the task on the policy.\n -
359
+ This attribute is required.\n - It must be of type string.\n","examples":{"api":"Create
332
360
  a repository from an ISO image, which will be downloaded and unpacked\nby
333
- the razor-server in the background:\n\n {\n \"name\": \"fedora19\",\n \"iso_url\":
334
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nYou
361
+ the razor-server in the background:\n\n {\n \"name\": \"fedora21\",\n \"iso_url\":
362
+ \"http://example.com/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nYou
335
363
  can also unpack an ISO image from a file *on the server*; this does not\nupload
336
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
337
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nFinally,
364
+ the file from the client:\n {\n \"name\": \"fedora21\",\n \"iso_url\":
365
+ \"file:///tmp/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nFinally,
338
366
  you can provide a `url` property when you create the repository;\nthis form
339
367
  is merely a pointer to a resource somewhere and nothing will be\ndownloaded
340
- onto the Razor server:\n\n {\n \"name\": \"fedora19\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/\"\n \"task\":
368
+ onto the Razor server:\n\n {\n \"name\": \"fedora21\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os\"\n \"task\":
341
369
  \"fedora\"\n }","cli":"Create a repository from an ISO image, which will
342
370
  be downloaded and unpacked\nby the razor-server in the background:\n\n razor
343
- create-repo --name fedora19 \\\n --iso-url http://example.com/Fedora-19-x86_64-DVD.iso
371
+ create-repo --name fedora21 \\\n --iso-url http://example.com/Fedora-21-x86_64-DVD.iso
344
372
  \\\n --task fedora\n\nYou can also unpack an ISO image from a file
345
373
  *on the server*; this does not\nupload the file from the client:\n\n razor
346
- create-repo --name fedora19 \\\n --iso-url file:///tmp/Fedora-19-x86_64-DVD.iso
374
+ create-repo --name fedora21 \\\n --iso-url file:///tmp/Fedora-21-x86_64-DVD.iso
347
375
  \\\n --task fedora\n\nFinally, you can provide a `url` property when
348
376
  you create the repository;\nthis form is merely a pointer to a resource somewhere
349
377
  and nothing will be\ndownloaded onto the Razor server:\n\n razor create-repo
350
- --name fedora19 --iso-url \\\n http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/
351
- \\\n --task fedora"},"full":"# SYNOPSIS\nCreate a new repository, from
352
- an ISO image or a URL\n\n# DESCRIPTION\nCreate a new repository, which can
353
- either contain the content to install a\nnode, or simply point to an existing
354
- online repository by URL.\n# Access Control\n\nThis command''s access control
355
- pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}` are
356
- substitutions from the input data: typically\nthe name of the object being
357
- modified, or some other critical detail, these\nallow roles to be granted
358
- partial access to modify the system.\n\nFor more detail on how the permission
359
- strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
360
- pattern is expanded\nand then a permission check applied to it, before the
361
- command is authorized.\n\nThese checks only apply if security is enabled in
362
- the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
363
- http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
364
- The name of the repository.\n - This attribute is required.\n - It must
365
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
366
- The URL of the remote repository to use.\n - It must be of type string.\n -
367
- If present, iso_url, no_content must not be present.\n - It must be between
368
- 1 and 1000 in length.\n\n * iso_url\n - The URL of the ISO image to download
369
- and unpack to create the\n repository. This can be an HTTP or HTTPS URL,
370
- or it can be a\n file URL.\n \n In the latter case, the file path
371
- is interpreted as a path on the\n Razor server, rather than a path on
372
- the client. This requires that\n you manually place the ISO image on
373
- the server before invoking the\n command.\n - It must be of type string.\n -
374
- If present, url, no_content must not be present.\n - It must be between
375
- 1 and 1000 in length.\n\n * no_content\n - For cases where extraction will
376
- be done manually, this argument\n creates a stub directory in the repo
377
- store where the extracted\n contents can be placed.\n - It must be of
378
- type boolean.\n - If present, iso_url, url must not be present.\n\n * task\n -
379
- The name of the task associated with this repository. This is used to\n install
380
- nodes that match a policy using this repository; generally it\n should
381
- match the OS that the URL or ISO_URL attributes point to.\n - This attribute
382
- is required.\n - It must be of type string.\n\n# EXAMPLES\n\n Create a
383
- repository from an ISO image, which will be downloaded and unpacked\n by
384
- the razor-server in the background:\n \n {\n \"name\": \"fedora19\",\n \"iso_url\":
385
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
378
+ --name fedora21 --url \\\n http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os/
379
+ \\\n --task fedora\n\nWith positional arguments, this can be shortened::\n\n razor
380
+ create-repo fedora21 --task fedora --url \\\n http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os/"},"full":"#
381
+ SYNOPSIS\nCreate a new repository, from an ISO image or a URL\n\n# DESCRIPTION\nCreate
382
+ a new repository, which can either contain the content to install a\nnode,
383
+ or simply point to an existing online repository by URL.\n# Access Control\n\nThis
384
+ command''s access control pattern: `commands:create-repo:%{name}`\n\nWords
385
+ surrounded by `%{...}` are substitutions from the input data: typically\nthe
386
+ name of the object being modified, or some other critical detail, these\nallow
387
+ roles to be granted partial access to modify the system.\n\nFor more detail
388
+ on how the permission strings are structured and work, you can\nsee the [Shiro
389
+ Permissions documentation][shiro]. That pattern is expanded\nand then a permission
390
+ check applied to it, before the command is authorized.\n\nThese checks only
391
+ apply if security is enabled in the Razor configuration\nfile; on this server
392
+ security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
393
+ Attributes\n\n * name\n - The name of the repository.\n - This attribute
394
+ is required.\n - It must be of type string.\n - It must be between 1 and
395
+ 250 in length.\n - Its argument position is 0.\n\n * url\n - The URL of
396
+ the remote repository to use.\n - It must be of type string.\n - If present,
397
+ iso_url, no_content must not be present.\n - It must be between 1 and 1000
398
+ in length.\n\n * iso_url\n - The URL of the ISO image to download and unpack
399
+ to create the\n repository. This can be an HTTP or HTTPS URL, or it can
400
+ be a\n file URL.\n \n In the latter case, the file path is interpreted
401
+ as a path on the\n Razor server, rather than a path on the client. This
402
+ requires that\n you manually place the ISO image on the server before
403
+ invoking the\n command.\n - It must be of type string.\n - If present,
404
+ url, no_content must not be present.\n - It must be between 1 and 1000 in
405
+ length.\n\n * no_content\n - For cases where extraction will be done manually,
406
+ this argument\n creates a stub directory in the repo store where the extracted\n contents
407
+ can be placed.\n - It must be of type boolean.\n - If present, iso_url,
408
+ url must not be present.\n\n * task\n - The name of the default task associated
409
+ with this repository. This is\n used to install nodes that match a policy
410
+ using this repository;\n generally it should match the OS that the URL
411
+ or ISO_URL attributes point\n to. Note that this attribute can be overridden
412
+ by the task on the policy.\n - This attribute is required.\n - It must
413
+ be of type string.\n\n# EXAMPLES\n\n Create a repository from an ISO image,
414
+ which will be downloaded and unpacked\n by the razor-server in the background:\n \n {\n \"name\": \"fedora21\",\n \"iso_url\":
415
+ \"http://example.com/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
386
416
  can also unpack an ISO image from a file *on the server*; this does not\n upload
387
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
388
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
417
+ the file from the client:\n {\n \"name\": \"fedora21\",\n \"iso_url\":
418
+ \"file:///tmp/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
389
419
  you can provide a `url` property when you create the repository;\n this form
390
420
  is merely a pointer to a resource somewhere and nothing will be\n downloaded
391
- onto the Razor server:\n \n {\n \"name\": \"fedora19\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/\"\n \"task\":
392
- \"fedora\"\n }\n"},"schema":{"name":{"type":"string"},"url":{"type":"string"},"iso_url":{"type":"string","aliases":["iso-url"]},"no_content":{"type":"boolean","aliases":["no-content"]},"task":{"type":"string"}}}'
421
+ onto the Razor server:\n \n {\n \"name\": \"fedora21\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os\"\n \"task\":
422
+ \"fedora\"\n }\n"},"schema":{"name":{"type":"string","position":0},"url":{"type":"string"},"iso_url":{"type":"string","aliases":["iso-url"]},"no_content":{"type":"boolean","aliases":["no-content"]},"task":{"type":"string"}}}'
393
423
  http_version:
394
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
424
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
395
425
  - request:
396
426
  method: post
397
427
  uri: http://localhost:8150/api/commands/create-repo
@@ -403,12 +433,16 @@ http_interactions:
403
433
  - application/json
404
434
  Accept-Encoding:
405
435
  - gzip, deflate
436
+ User-Agent:
437
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
406
438
  Content-Type:
407
439
  - application/json
440
+ Accept-Language:
441
+ - en_US,en
408
442
  Content-Length:
409
443
  - '85'
410
- User-Agent:
411
- - Ruby
444
+ Host:
445
+ - localhost:8150
412
446
  response:
413
447
  status:
414
448
  code: 202
@@ -419,17 +453,17 @@ http_interactions:
419
453
  X-Content-Type-Options:
420
454
  - nosniff
421
455
  Content-Type:
422
- - application/json;charset=utf-8
456
+ - application/json
423
457
  Content-Length:
424
458
  - '255'
425
459
  Date:
426
- - Mon, 09 Mar 2015 19:54:01 GMT
460
+ - Mon, 23 Apr 2018 19:47:17 GMT
427
461
  body:
428
- encoding: US-ASCII
462
+ encoding: UTF-8
429
463
  string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/%22double-quote%20with%20spaces%22","name":"\"double-quote
430
464
  with spaces\"","command":"http://localhost:8150/api/collections/commands/2"}'
431
465
  http_version:
432
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
466
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
433
467
  - request:
434
468
  method: get
435
469
  uri: http://localhost:8150/api/collections/repos/%22double-quote%20with%20spaces%22
@@ -442,7 +476,11 @@ http_interactions:
442
476
  Accept-Encoding:
443
477
  - gzip, deflate
444
478
  User-Agent:
445
- - Ruby
479
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
480
+ Accept-Language:
481
+ - en_US,en
482
+ Host:
483
+ - localhost:8150
446
484
  response:
447
485
  status:
448
486
  code: 200
@@ -453,17 +491,17 @@ http_interactions:
453
491
  X-Content-Type-Options:
454
492
  - nosniff
455
493
  Content-Type:
456
- - application/json;charset=utf-8
494
+ - application/json
457
495
  Content-Length:
458
496
  - '389'
459
497
  Date:
460
- - Mon, 09 Mar 2015 19:54:01 GMT
498
+ - Mon, 23 Apr 2018 19:47:17 GMT
461
499
  body:
462
- encoding: US-ASCII
500
+ encoding: UTF-8
463
501
  string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/%22double-quote%20with%20spaces%22","name":"\"double-quote
464
502
  with spaces\"","iso_url":null,"url":"http://url.com/some.iso","task":{"spec":"http://api.puppetlabs.com/razor/v1/collections/tasks/member","id":"http://localhost:8150/api/collections/tasks/noop","name":"noop"}}'
465
503
  http_version:
466
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
504
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
467
505
  - request:
468
506
  method: get
469
507
  uri: http://localhost:8150/api
@@ -476,7 +514,11 @@ http_interactions:
476
514
  Accept-Encoding:
477
515
  - gzip, deflate
478
516
  User-Agent:
479
- - Ruby
517
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
518
+ Accept-Language:
519
+ - en_US,en
520
+ Host:
521
+ - localhost:8150
480
522
  response:
481
523
  status:
482
524
  code: 200
@@ -487,16 +529,16 @@ http_interactions:
487
529
  X-Content-Type-Options:
488
530
  - nosniff
489
531
  Content-Type:
490
- - application/json;charset=utf-8
532
+ - application/json
491
533
  Content-Length:
492
- - '5650'
534
+ - '7110'
493
535
  Date:
494
- - Mon, 09 Mar 2015 19:54:01 GMT
536
+ - Mon, 23 Apr 2018 19:47:17 GMT
495
537
  body:
496
- encoding: US-ASCII
497
- 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"}}'
538
+ encoding: UTF-8
539
+ 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":"run-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/run-hook","id":"http://localhost:8150/api/commands/run-hook"},{"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-broker-configuration","rel":"http://api.puppetlabs.com/razor/v1/commands/update-broker-configuration","id":"http://localhost:8150/api/commands/update-broker-configuration"},{"name":"update-hook-configuration","rel":"http://api.puppetlabs.com/razor/v1/commands/update-hook-configuration","id":"http://localhost:8150/api/commands/update-hook-configuration"},{"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-policy-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-broker","id":"http://localhost:8150/api/commands/update-policy-broker"},{"name":"update-policy-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-node-metadata","id":"http://localhost:8150/api/commands/update-policy-node-metadata"},{"name":"update-policy-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-repo","id":"http://localhost:8150/api/commands/update-policy-repo"},{"name":"update-policy-task","rel":"http://api.puppetlabs.com/razor/v1/commands/update-policy-task","id":"http://localhost:8150/api/commands/update-policy-task"},{"name":"update-repo-task","rel":"http://api.puppetlabs.com/razor/v1/commands/update-repo-task","id":"http://localhost:8150/api/commands/update-repo-task"},{"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"},{"name":"config","rel":"http://api.puppetlabs.com/razor/v1/collections/config","id":"http://localhost:8150/api/collections/config"}],"version":{"server":"v1.8.0-dirty"}}'
498
540
  http_version:
499
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
541
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
500
542
  - request:
501
543
  method: get
502
544
  uri: http://localhost:8150/api/commands/create-repo
@@ -509,7 +551,11 @@ http_interactions:
509
551
  Accept-Encoding:
510
552
  - gzip, deflate
511
553
  User-Agent:
512
- - Ruby
554
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
555
+ Accept-Language:
556
+ - en_US,en
557
+ Host:
558
+ - localhost:8150
513
559
  response:
514
560
  status:
515
561
  code: 200
@@ -518,17 +564,17 @@ http_interactions:
518
564
  Server:
519
565
  - Apache-Coyote/1.1
520
566
  Etag:
521
- - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
567
+ - '"server-version-v1.8.0-dirty"'
522
568
  X-Content-Type-Options:
523
569
  - nosniff
524
570
  Content-Type:
525
- - application/json;charset=utf-8
571
+ - application/json
526
572
  Content-Length:
527
- - '7794'
573
+ - '8224'
528
574
  Date:
529
- - Mon, 09 Mar 2015 19:54:01 GMT
575
+ - Mon, 23 Apr 2018 19:47:17 GMT
530
576
  body:
531
- encoding: US-ASCII
577
+ encoding: UTF-8
532
578
  string: '{"name":"create-repo","help":{"summary":"Create a new repository, from
533
579
  an ISO image or a URL","description":"Create a new repository, which can either
534
580
  contain the content to install a\nnode, or simply point to an existing online
@@ -543,87 +589,90 @@ http_interactions:
543
589
  the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
544
590
  http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
545
591
  The name of the repository.\n - This attribute is required.\n - It must
546
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
547
- The URL of the remote repository to use.\n - It must be of type string.\n -
548
- If present, iso_url, no_content must not be present.\n - It must be between
549
- 1 and 1000 in length.\n\n * iso_url\n - The URL of the ISO image to download
550
- and unpack to create the\n repository. This can be an HTTP or HTTPS URL,
551
- or it can be a\n file URL.\n \n In the latter case, the file path
552
- is interpreted as a path on the\n Razor server, rather than a path on
553
- the client. This requires that\n you manually place the ISO image on
554
- the server before invoking the\n command.\n - It must be of type string.\n -
555
- If present, url, no_content must not be present.\n - It must be between
556
- 1 and 1000 in length.\n\n * no_content\n - For cases where extraction will
557
- be done manually, this argument\n creates a stub directory in the repo
558
- store where the extracted\n contents can be placed.\n - It must be of
559
- type boolean.\n - If present, iso_url, url must not be present.\n\n * task\n -
560
- The name of the task associated with this repository. This is used to\n install
561
- nodes that match a policy using this repository; generally it\n should
562
- match the OS that the URL or ISO_URL attributes point to.\n - This attribute
563
- is required.\n - It must be of type string.\n","examples":{"api":"Create
592
+ be of type string.\n - It must be between 1 and 250 in length.\n - Its
593
+ argument position is 0.\n\n * url\n - The URL of the remote repository to
594
+ use.\n - It must be of type string.\n - If present, iso_url, no_content
595
+ must not be present.\n - It must be between 1 and 1000 in length.\n\n *
596
+ iso_url\n - The URL of the ISO image to download and unpack to create the\n repository. This
597
+ can be an HTTP or HTTPS URL, or it can be a\n file URL.\n \n In
598
+ the latter case, the file path is interpreted as a path on the\n Razor
599
+ server, rather than a path on the client. This requires that\n you manually
600
+ place the ISO image on the server before invoking the\n command.\n -
601
+ It must be of type string.\n - If present, url, no_content must not be present.\n -
602
+ It must be between 1 and 1000 in length.\n\n * no_content\n - For cases
603
+ where extraction will be done manually, this argument\n creates a stub
604
+ directory in the repo store where the extracted\n contents can be placed.\n -
605
+ It must be of type boolean.\n - If present, iso_url, url must not be present.\n\n
606
+ * task\n - The name of the default task associated with this repository. This
607
+ is\n used to install nodes that match a policy using this repository;\n generally
608
+ it should match the OS that the URL or ISO_URL attributes point\n to.
609
+ Note that this attribute can be overridden by the task on the policy.\n -
610
+ This attribute is required.\n - It must be of type string.\n","examples":{"api":"Create
564
611
  a repository from an ISO image, which will be downloaded and unpacked\nby
565
- the razor-server in the background:\n\n {\n \"name\": \"fedora19\",\n \"iso_url\":
566
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nYou
612
+ the razor-server in the background:\n\n {\n \"name\": \"fedora21\",\n \"iso_url\":
613
+ \"http://example.com/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nYou
567
614
  can also unpack an ISO image from a file *on the server*; this does not\nupload
568
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
569
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nFinally,
615
+ the file from the client:\n {\n \"name\": \"fedora21\",\n \"iso_url\":
616
+ \"file:///tmp/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n\nFinally,
570
617
  you can provide a `url` property when you create the repository;\nthis form
571
618
  is merely a pointer to a resource somewhere and nothing will be\ndownloaded
572
- onto the Razor server:\n\n {\n \"name\": \"fedora19\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/\"\n \"task\":
619
+ onto the Razor server:\n\n {\n \"name\": \"fedora21\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os\"\n \"task\":
573
620
  \"fedora\"\n }","cli":"Create a repository from an ISO image, which will
574
621
  be downloaded and unpacked\nby the razor-server in the background:\n\n razor
575
- create-repo --name fedora19 \\\n --iso-url http://example.com/Fedora-19-x86_64-DVD.iso
622
+ create-repo --name fedora21 \\\n --iso-url http://example.com/Fedora-21-x86_64-DVD.iso
576
623
  \\\n --task fedora\n\nYou can also unpack an ISO image from a file
577
624
  *on the server*; this does not\nupload the file from the client:\n\n razor
578
- create-repo --name fedora19 \\\n --iso-url file:///tmp/Fedora-19-x86_64-DVD.iso
625
+ create-repo --name fedora21 \\\n --iso-url file:///tmp/Fedora-21-x86_64-DVD.iso
579
626
  \\\n --task fedora\n\nFinally, you can provide a `url` property when
580
627
  you create the repository;\nthis form is merely a pointer to a resource somewhere
581
628
  and nothing will be\ndownloaded onto the Razor server:\n\n razor create-repo
582
- --name fedora19 --iso-url \\\n http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/
583
- \\\n --task fedora"},"full":"# SYNOPSIS\nCreate a new repository, from
584
- an ISO image or a URL\n\n# DESCRIPTION\nCreate a new repository, which can
585
- either contain the content to install a\nnode, or simply point to an existing
586
- online repository by URL.\n# Access Control\n\nThis command''s access control
587
- pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}` are
588
- substitutions from the input data: typically\nthe name of the object being
589
- modified, or some other critical detail, these\nallow roles to be granted
590
- partial access to modify the system.\n\nFor more detail on how the permission
591
- strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
592
- pattern is expanded\nand then a permission check applied to it, before the
593
- command is authorized.\n\nThese checks only apply if security is enabled in
594
- the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
595
- http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
596
- The name of the repository.\n - This attribute is required.\n - It must
597
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
598
- The URL of the remote repository to use.\n - It must be of type string.\n -
599
- If present, iso_url, no_content must not be present.\n - It must be between
600
- 1 and 1000 in length.\n\n * iso_url\n - The URL of the ISO image to download
601
- and unpack to create the\n repository. This can be an HTTP or HTTPS URL,
602
- or it can be a\n file URL.\n \n In the latter case, the file path
603
- is interpreted as a path on the\n Razor server, rather than a path on
604
- the client. This requires that\n you manually place the ISO image on
605
- the server before invoking the\n command.\n - It must be of type string.\n -
606
- If present, url, no_content must not be present.\n - It must be between
607
- 1 and 1000 in length.\n\n * no_content\n - For cases where extraction will
608
- be done manually, this argument\n creates a stub directory in the repo
609
- store where the extracted\n contents can be placed.\n - It must be of
610
- type boolean.\n - If present, iso_url, url must not be present.\n\n * task\n -
611
- The name of the task associated with this repository. This is used to\n install
612
- nodes that match a policy using this repository; generally it\n should
613
- match the OS that the URL or ISO_URL attributes point to.\n - This attribute
614
- is required.\n - It must be of type string.\n\n# EXAMPLES\n\n Create a
615
- repository from an ISO image, which will be downloaded and unpacked\n by
616
- the razor-server in the background:\n \n {\n \"name\": \"fedora19\",\n \"iso_url\":
617
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
629
+ --name fedora21 --url \\\n http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os/
630
+ \\\n --task fedora\n\nWith positional arguments, this can be shortened::\n\n razor
631
+ create-repo fedora21 --task fedora --url \\\n http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os/"},"full":"#
632
+ SYNOPSIS\nCreate a new repository, from an ISO image or a URL\n\n# DESCRIPTION\nCreate
633
+ a new repository, which can either contain the content to install a\nnode,
634
+ or simply point to an existing online repository by URL.\n# Access Control\n\nThis
635
+ command''s access control pattern: `commands:create-repo:%{name}`\n\nWords
636
+ surrounded by `%{...}` are substitutions from the input data: typically\nthe
637
+ name of the object being modified, or some other critical detail, these\nallow
638
+ roles to be granted partial access to modify the system.\n\nFor more detail
639
+ on how the permission strings are structured and work, you can\nsee the [Shiro
640
+ Permissions documentation][shiro]. That pattern is expanded\nand then a permission
641
+ check applied to it, before the command is authorized.\n\nThese checks only
642
+ apply if security is enabled in the Razor configuration\nfile; on this server
643
+ security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
644
+ Attributes\n\n * name\n - The name of the repository.\n - This attribute
645
+ is required.\n - It must be of type string.\n - It must be between 1 and
646
+ 250 in length.\n - Its argument position is 0.\n\n * url\n - The URL of
647
+ the remote repository to use.\n - It must be of type string.\n - If present,
648
+ iso_url, no_content must not be present.\n - It must be between 1 and 1000
649
+ in length.\n\n * iso_url\n - The URL of the ISO image to download and unpack
650
+ to create the\n repository. This can be an HTTP or HTTPS URL, or it can
651
+ be a\n file URL.\n \n In the latter case, the file path is interpreted
652
+ as a path on the\n Razor server, rather than a path on the client. This
653
+ requires that\n you manually place the ISO image on the server before
654
+ invoking the\n command.\n - It must be of type string.\n - If present,
655
+ url, no_content must not be present.\n - It must be between 1 and 1000 in
656
+ length.\n\n * no_content\n - For cases where extraction will be done manually,
657
+ this argument\n creates a stub directory in the repo store where the extracted\n contents
658
+ can be placed.\n - It must be of type boolean.\n - If present, iso_url,
659
+ url must not be present.\n\n * task\n - The name of the default task associated
660
+ with this repository. This is\n used to install nodes that match a policy
661
+ using this repository;\n generally it should match the OS that the URL
662
+ or ISO_URL attributes point\n to. Note that this attribute can be overridden
663
+ by the task on the policy.\n - This attribute is required.\n - It must
664
+ be of type string.\n\n# EXAMPLES\n\n Create a repository from an ISO image,
665
+ which will be downloaded and unpacked\n by the razor-server in the background:\n \n {\n \"name\": \"fedora21\",\n \"iso_url\":
666
+ \"http://example.com/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
618
667
  can also unpack an ISO image from a file *on the server*; this does not\n upload
619
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
620
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
668
+ the file from the client:\n {\n \"name\": \"fedora21\",\n \"iso_url\":
669
+ \"file:///tmp/Fedora-21-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
621
670
  you can provide a `url` property when you create the repository;\n this form
622
671
  is merely a pointer to a resource somewhere and nothing will be\n downloaded
623
- onto the Razor server:\n \n {\n \"name\": \"fedora19\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/19/Fedora/x86_64/os/\"\n \"task\":
624
- \"fedora\"\n }\n"},"schema":{"name":{"type":"string"},"url":{"type":"string"},"iso_url":{"type":"string","aliases":["iso-url"]},"no_content":{"type":"boolean","aliases":["no-content"]},"task":{"type":"string"}}}'
672
+ onto the Razor server:\n \n {\n \"name\": \"fedora21\",\n \"url\": \"http://mirrors.n-ix.net/fedora/linux/releases/21/Server/x86_64/os\"\n \"task\":
673
+ \"fedora\"\n }\n"},"schema":{"name":{"type":"string","position":0},"url":{"type":"string"},"iso_url":{"type":"string","aliases":["iso-url"]},"no_content":{"type":"boolean","aliases":["no-content"]},"task":{"type":"string"}}}'
625
674
  http_version:
626
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
675
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
627
676
  - request:
628
677
  method: post
629
678
  uri: http://localhost:8150/api/commands/create-repo
@@ -635,12 +684,16 @@ http_interactions:
635
684
  - application/json
636
685
  Accept-Encoding:
637
686
  - gzip, deflate
687
+ User-Agent:
688
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
638
689
  Content-Type:
639
690
  - application/json
691
+ Accept-Language:
692
+ - en_US,en
640
693
  Content-Length:
641
694
  - '83'
642
- User-Agent:
643
- - Ruby
695
+ Host:
696
+ - localhost:8150
644
697
  response:
645
698
  status:
646
699
  code: 202
@@ -651,17 +704,17 @@ http_interactions:
651
704
  X-Content-Type-Options:
652
705
  - nosniff
653
706
  Content-Type:
654
- - application/json;charset=utf-8
707
+ - application/json
655
708
  Content-Length:
656
709
  - '249'
657
710
  Date:
658
- - Mon, 09 Mar 2015 19:54:01 GMT
711
+ - Mon, 23 Apr 2018 19:47:17 GMT
659
712
  body:
660
- encoding: US-ASCII
713
+ encoding: UTF-8
661
714
  string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/''single-quote%20with%20spaces''","name":"''single-quote
662
715
  with spaces''","command":"http://localhost:8150/api/collections/commands/3"}'
663
716
  http_version:
664
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
717
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
665
718
  - request:
666
719
  method: get
667
720
  uri: http://localhost:8150/api/collections/repos/'single-quote%20with%20spaces'
@@ -674,7 +727,11 @@ http_interactions:
674
727
  Accept-Encoding:
675
728
  - gzip, deflate
676
729
  User-Agent:
677
- - Ruby
730
+ - rest-client/2.0.2 (darwin x86_64) jruby/9.1.5.0 (2.3.1p0)
731
+ Accept-Language:
732
+ - en_US,en
733
+ Host:
734
+ - localhost:8150
678
735
  response:
679
736
  status:
680
737
  code: 200
@@ -685,15 +742,15 @@ http_interactions:
685
742
  X-Content-Type-Options:
686
743
  - nosniff
687
744
  Content-Type:
688
- - application/json;charset=utf-8
745
+ - application/json
689
746
  Content-Length:
690
747
  - '383'
691
748
  Date:
692
- - Mon, 09 Mar 2015 19:54:01 GMT
749
+ - Mon, 23 Apr 2018 19:47:17 GMT
693
750
  body:
694
- encoding: US-ASCII
751
+ encoding: UTF-8
695
752
  string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/''single-quote%20with%20spaces''","name":"''single-quote
696
753
  with spaces''","iso_url":null,"url":"http://url.com/some.iso","task":{"spec":"http://api.puppetlabs.com/razor/v1/collections/tasks/member","id":"http://localhost:8150/api/collections/tasks/noop","name":"noop"}}'
697
754
  http_version:
698
- recorded_at: Mon, 09 Mar 2015 19:54:01 GMT
699
- recorded_with: VCR 2.5.0
755
+ recorded_at: Mon, 23 Apr 2018 19:47:18 GMT
756
+ recorded_with: VCR 4.0.0