pe-razor-client 0.15.2.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +27 -0
  3. data/bin/razor +27 -2
  4. data/lib/razor/cli.rb +11 -2
  5. data/lib/razor/cli/command.rb +150 -0
  6. data/lib/razor/cli/document.rb +8 -4
  7. data/lib/razor/cli/format.rb +46 -22
  8. data/lib/razor/cli/navigate.rb +28 -156
  9. data/lib/razor/cli/parse.rb +49 -7
  10. data/lib/razor/cli/query.rb +69 -0
  11. data/lib/razor/cli/table_format.rb +41 -0
  12. data/lib/razor/cli/transforms.rb +25 -0
  13. data/lib/razor/cli/version.rb +1 -1
  14. data/lib/razor/cli/views.yaml +53 -2
  15. data/spec/cli/command_spec.rb +66 -0
  16. data/spec/cli/format_spec.rb +95 -5
  17. data/spec/cli/navigate_spec.rb +50 -6
  18. data/spec/cli/parse_spec.rb +42 -2
  19. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_in_string.yml +233 -0
  20. data/spec/fixtures/vcr/Razor_CLI_Navigate/argument_formatting/should_allow_spaces.yml +281 -548
  21. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_--help_command_.yml +160 -37
  22. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_-h_command_.yml +160 -37
  23. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_--help_.yml +160 -37
  24. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_-h_.yml +160 -37
  25. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_command_help_.yml +160 -37
  26. data/spec/fixtures/vcr/Razor_CLI_Navigate/for_command_help/should_provide_command_help_for_razor_help_command_.yml +160 -37
  27. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_preserve_that_across_navigation.yml +10 -10
  28. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_authentication/should_supply_that_to_the_API_service.yml +5 -5
  29. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_bad_JSON.yml +71 -166
  30. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_invalid_parameter/should_fail_with_malformed_argument.yml +109 -59
  31. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_an_array_into_an_existing_array.yml +527 -1360
  32. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_as_an_array.yml +528 -1361
  33. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_array/should_merge_the_arguments_into_an_existing_array.yml +528 -1361
  34. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_multiple_arguments_with_same_name/combining_as_an_object/should_construct_a_json_object.yml +80 -111
  35. 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 +137 -123
  36. 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 +71 -166
  37. 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 +71 -102
  38. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_no_parameters/should_fail_with_bad_JSON.yml +98 -5
  39. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_limit.yml +69 -0
  40. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_append_start.yml +69 -0
  41. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_not_fail_when_query_returns_details_for_one_item.yml +313 -0
  42. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_store_query_without_query_parameters.yml +557 -0
  43. data/spec/fixtures/vcr/Razor_CLI_Navigate/with_query_parameters/should_throw_an_error_if_the_query_parameter_is_not_in_the_API.yml +36 -0
  44. 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 +280 -0
  45. data/spec/fixtures/vcr/Razor_CLI_Parse/_new/_help/should_print_a_list_of_known_endpoints.yml +5 -5
  46. data/spec/spec_helper.rb +8 -4
  47. metadata +26 -7
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://localhost:8080/api
5
+ uri: http://localhost:8150/api
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -25,17 +25,17 @@ http_interactions:
25
25
  Content-Type:
26
26
  - application/json;charset=utf-8
27
27
  Content-Length:
28
- - '4982'
28
+ - '5650'
29
29
  Date:
30
- - Fri, 16 May 2014 22:18:22 GMT
30
+ - Mon, 09 Mar 2015 19:53:33 GMT
31
31
  body:
32
32
  encoding: US-ASCII
33
- string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8080/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8080/api/commands/create-broker"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8080/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8080/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8080/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8080/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8080/api/commands/delete-broker"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8080/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8080/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8080/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8080/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8080/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8080/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8080/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:8080/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8080/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8080/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8080/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8080/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8080/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8080/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:8080/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:8080/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:8080/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8080/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8080/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8080/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8080/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8080/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8080/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8080/api/collections/nodes"},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8080/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8080/api/collections/commands"}],"version":{"server":"v0.14.1-113-g8b33d83-dirty"}}'
33
+ string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8150/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8150/api/commands/create-broker"},{"name":"create-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/create-hook","id":"http://localhost:8150/api/commands/create-hook"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8150/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8150/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8150/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8150/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8150/api/commands/delete-broker"},{"name":"delete-hook","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-hook","id":"http://localhost:8150/api/commands/delete-hook"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8150/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8150/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8150/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8150/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8150/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8150/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8150/api/commands/modify-node-metadata"},{"name":"modify-policy-max-count","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-policy-max-count","id":"http://localhost:8150/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8150/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8150/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8150/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8150/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8150/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8150/api/commands/remove-policy-tag"},{"name":"set-node-desired-power-state","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-desired-power-state","id":"http://localhost:8150/api/commands/set-node-desired-power-state"},{"name":"set-node-hw-info","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-hw-info","id":"http://localhost:8150/api/commands/set-node-hw-info"},{"name":"set-node-ipmi-credentials","rel":"http://api.puppetlabs.com/razor/v1/commands/set-node-ipmi-credentials","id":"http://localhost:8150/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8150/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8150/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8150/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8150/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8150/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8150/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8150/api/collections/nodes","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8150/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8150/api/collections/commands"},{"name":"events","rel":"http://api.puppetlabs.com/razor/v1/collections/events","id":"http://localhost:8150/api/collections/events","params":{"start":{"type":"number"},"limit":{"type":"number"}}},{"name":"hooks","rel":"http://api.puppetlabs.com/razor/v1/collections/hooks","id":"http://localhost:8150/api/collections/hooks"}],"version":{"server":"v0.16.1-18-gd3acc7a-dirty"}}'
34
34
  http_version:
35
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
35
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
36
36
  - request:
37
37
  method: get
38
- uri: http://localhost:8080/api/commands/create-repo
38
+ uri: http://localhost:8150/api/commands/create-repo
39
39
  body:
40
40
  encoding: US-ASCII
41
41
  string: ''
@@ -54,23 +54,23 @@ http_interactions:
54
54
  Server:
55
55
  - Apache-Coyote/1.1
56
56
  Etag:
57
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
57
+ - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
58
58
  X-Content-Type-Options:
59
59
  - nosniff
60
60
  Content-Type:
61
61
  - application/json;charset=utf-8
62
62
  Content-Length:
63
- - '3227'
63
+ - '7794'
64
64
  Date:
65
- - Fri, 16 May 2014 22:18:22 GMT
65
+ - Mon, 09 Mar 2015 19:53:33 GMT
66
66
  body:
67
67
  encoding: US-ASCII
68
- string: '{"name":"create-repo","help":{"full":"# SYNOPSIS\nCreate a new repository,
69
- from an ISO image or a URL\n\n# DESCRIPTION\nCreate a new repository, which
70
- can either contain the content to install a\nnode, or simply point to an existing
71
- online repository by URL.\n\n\n# Access Control\n\nThis command''s access
72
- control pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}`
73
- are substitutions from the input data: typically\nthe name of the object being
68
+ string: '{"name":"create-repo","help":{"summary":"Create a new repository, from
69
+ an ISO image or a URL","description":"Create a new repository, which can either
70
+ contain the content to install a\nnode, or simply point to an existing online
71
+ repository by URL.","schema":"# Access Control\n\nThis command''s access control
72
+ pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}` are
73
+ substitutions from the input data: typically\nthe name of the object being
74
74
  modified, or some other critical detail, these\nallow roles to be granted
75
75
  partial access to modify the system.\n\nFor more detail on how the permission
76
76
  strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
@@ -78,71 +78,50 @@ http_interactions:
78
78
  command is authorized.\n\nThese checks only apply if security is enabled in
79
79
  the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
80
80
  http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
81
- The name of the repository.\n - This attribute is required\n - It must
81
+ The name of the repository.\n - This attribute is required.\n - It must
82
82
  be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
83
83
  The URL of the remote repository to use.\n - It must be of type string.\n -
84
- If present, iso-url must not be present.\n - It must be between 1 and 1000
85
- in length.\n\n * iso-url\n - The URL of the ISO image to download and unpack
86
- to create the\n repository. This can be an HTTP or HTTPS URL, or it can
87
- be a\n file URL.\n \n In the later case, the file path is interpreted
88
- as a path on the\n Razor server, rather than a path on the client. This
89
- requires that\n you manually place the ISO image on the server before invoking
90
- the\n command.\n - It must be of type string.\n - If present, url must
91
- not be present.\n - It must be between 1 and 1000 in length.\n\n * task\n -
92
- The name of the task associated with this repository. This is used to\n install
93
- nodes that match a policy using this repository; generally it\n should match
94
- the OS that the URL or ISO-URL attributes point to.\n - This attribute is
95
- required\n - It must be of type string.\n\n\n\n# EXAMPLES\n Create a repository
96
- from an ISO image, which will be downloaded and unpacked\n by the razor-server
97
- in the background:\n \n {\n \"name\": \"fedora19\",\n \"iso-url\":
98
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
99
- can also unpack an ISO image from a file *on the server*; this does not\n upload
100
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso-url\":
101
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
102
- you can providing a `url` property when you create the repository;\n this
103
- form is merely a pointer to a resource somehwere and nothing will be\n downloaded
104
- 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\":
105
- \"fedora\"\n }\n\n"},"schema":{"name":{"type":"string"},"url":{"type":"string"},"iso-url":{"type":"string"},"task":{"type":"string"}}}'
106
- http_version:
107
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
108
- - request:
109
- method: get
110
- uri: http://localhost:8080/api/commands/create-repo
111
- body:
112
- encoding: US-ASCII
113
- string: ''
114
- headers:
115
- Accept:
116
- - application/json
117
- Accept-Encoding:
118
- - gzip, deflate
119
- User-Agent:
120
- - Ruby
121
- response:
122
- status:
123
- code: 200
124
- message: OK
125
- headers:
126
- Server:
127
- - Apache-Coyote/1.1
128
- Etag:
129
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
130
- X-Content-Type-Options:
131
- - nosniff
132
- Content-Type:
133
- - application/json;charset=utf-8
134
- Content-Length:
135
- - '3227'
136
- Date:
137
- - Fri, 16 May 2014 22:18:22 GMT
138
- body:
139
- encoding: US-ASCII
140
- string: '{"name":"create-repo","help":{"full":"# SYNOPSIS\nCreate a new repository,
141
- from an ISO image or a URL\n\n# DESCRIPTION\nCreate a new repository, which
142
- can either contain the content to install a\nnode, or simply point to an existing
143
- online repository by URL.\n\n\n# Access Control\n\nThis command''s access
144
- control pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}`
145
- are substitutions from the input data: typically\nthe name of the object being
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
100
+ 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
103
+ 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,
106
+ you can provide a `url` property when you create the repository;\nthis form
107
+ 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\":
109
+ \"fedora\"\n }","cli":"Create a repository from an ISO image, which will
110
+ 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
112
+ \\\n --task fedora\n\nYou can also unpack an ISO image from a file
113
+ *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
115
+ \\\n --task fedora\n\nFinally, you can provide a `url` property when
116
+ you create the repository;\nthis form is merely a pointer to a resource somewhere
117
+ 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
146
125
  modified, or some other critical detail, these\nallow roles to be granted
147
126
  partial access to modify the system.\n\nFor more detail on how the permission
148
127
  strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
@@ -150,108 +129,40 @@ http_interactions:
150
129
  command is authorized.\n\nThese checks only apply if security is enabled in
151
130
  the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
152
131
  http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
153
- The name of the repository.\n - This attribute is required\n - It must
132
+ The name of the repository.\n - This attribute is required.\n - It must
154
133
  be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
155
134
  The URL of the remote repository to use.\n - It must be of type string.\n -
156
- If present, iso-url must not be present.\n - It must be between 1 and 1000
157
- in length.\n\n * iso-url\n - The URL of the ISO image to download and unpack
158
- to create the\n repository. This can be an HTTP or HTTPS URL, or it can
159
- be a\n file URL.\n \n In the later case, the file path is interpreted
160
- as a path on the\n Razor server, rather than a path on the client. This
161
- requires that\n you manually place the ISO image on the server before invoking
162
- the\n command.\n - It must be of type string.\n - If present, url must
163
- not be present.\n - It must be between 1 and 1000 in length.\n\n * task\n -
164
- The name of the task associated with this repository. This is used to\n install
165
- nodes that match a policy using this repository; generally it\n should match
166
- the OS that the URL or ISO-URL attributes point to.\n - This attribute is
167
- required\n - It must be of type string.\n\n\n\n# EXAMPLES\n Create a repository
168
- from an ISO image, which will be downloaded and unpacked\n by the razor-server
169
- in the background:\n \n {\n \"name\": \"fedora19\",\n \"iso-url\":
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\":
170
153
  \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
171
154
  can also unpack an ISO image from a file *on the server*; this does not\n upload
172
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso-url\":
155
+ the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso_url\":
173
156
  \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
174
- you can providing a `url` property when you create the repository;\n this
175
- form is merely a pointer to a resource somehwere and nothing will be\n downloaded
157
+ you can provide a `url` property when you create the repository;\n this form
158
+ is merely a pointer to a resource somewhere and nothing will be\n downloaded
176
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\":
177
- \"fedora\"\n }\n\n"},"schema":{"name":{"type":"string"},"url":{"type":"string"},"iso-url":{"type":"string"},"task":{"type":"string"}}}'
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"}}}'
178
161
  http_version:
179
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
180
- - request:
181
- method: get
182
- uri: http://localhost:8080/api/commands/create-repo
183
- body:
184
- encoding: US-ASCII
185
- string: ''
186
- headers:
187
- Accept:
188
- - application/json
189
- Accept-Encoding:
190
- - gzip, deflate
191
- User-Agent:
192
- - Ruby
193
- response:
194
- status:
195
- code: 200
196
- message: OK
197
- headers:
198
- Server:
199
- - Apache-Coyote/1.1
200
- Etag:
201
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
202
- X-Content-Type-Options:
203
- - nosniff
204
- Content-Type:
205
- - application/json;charset=utf-8
206
- Content-Length:
207
- - '3227'
208
- Date:
209
- - Fri, 16 May 2014 22:18:22 GMT
210
- body:
211
- encoding: US-ASCII
212
- string: '{"name":"create-repo","help":{"full":"# SYNOPSIS\nCreate a new repository,
213
- from an ISO image or a URL\n\n# DESCRIPTION\nCreate a new repository, which
214
- can either contain the content to install a\nnode, or simply point to an existing
215
- online repository by URL.\n\n\n# Access Control\n\nThis command''s access
216
- control pattern: `commands:create-repo:%{name}`\n\nWords surrounded by `%{...}`
217
- are substitutions from the input data: typically\nthe name of the object being
218
- modified, or some other critical detail, these\nallow roles to be granted
219
- partial access to modify the system.\n\nFor more detail on how the permission
220
- strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
221
- pattern is expanded\nand then a permission check applied to it, before the
222
- command is authorized.\n\nThese checks only apply if security is enabled in
223
- the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
224
- http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
225
- The name of the repository.\n - This attribute is required\n - It must
226
- be of type string.\n - It must be between 1 and 250 in length.\n\n * url\n -
227
- The URL of the remote repository to use.\n - It must be of type string.\n -
228
- If present, iso-url must not be present.\n - It must be between 1 and 1000
229
- in length.\n\n * iso-url\n - The URL of the ISO image to download and unpack
230
- to create the\n repository. This can be an HTTP or HTTPS URL, or it can
231
- be a\n file URL.\n \n In the later case, the file path is interpreted
232
- as a path on the\n Razor server, rather than a path on the client. This
233
- requires that\n you manually place the ISO image on the server before invoking
234
- the\n command.\n - It must be of type string.\n - If present, url must
235
- not be present.\n - It must be between 1 and 1000 in length.\n\n * task\n -
236
- The name of the task associated with this repository. This is used to\n install
237
- nodes that match a policy using this repository; generally it\n should match
238
- the OS that the URL or ISO-URL attributes point to.\n - This attribute is
239
- required\n - It must be of type string.\n\n\n\n# EXAMPLES\n Create a repository
240
- from an ISO image, which will be downloaded and unpacked\n by the razor-server
241
- in the background:\n \n {\n \"name\": \"fedora19\",\n \"iso-url\":
242
- \"http://example.com/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n You
243
- can also unpack an ISO image from a file *on the server*; this does not\n upload
244
- the file from the client:\n {\n \"name\": \"fedora19\",\n \"iso-url\":
245
- \"file:///tmp/Fedora-19-x86_64-DVD.iso\"\n \"task\": \"fedora\"\n }\n \n Finally,
246
- you can providing a `url` property when you create the repository;\n this
247
- form is merely a pointer to a resource somehwere and nothing will be\n downloaded
248
- 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\":
249
- \"fedora\"\n }\n\n"},"schema":{"name":{"type":"string"},"url":{"type":"string"},"iso-url":{"type":"string"},"task":{"type":"string"}}}'
250
- http_version:
251
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
162
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
252
163
  - request:
253
164
  method: post
254
- uri: http://localhost:8080/api/commands/create-repo
165
+ uri: http://localhost:8150/api/commands/create-repo
255
166
  body:
256
167
  encoding: UTF-8
257
168
  string: '{"name":"name","url":"http://url.com/some.iso","task":"noop"}'
@@ -280,15 +191,15 @@ http_interactions:
280
191
  Content-Length:
281
192
  - '201'
282
193
  Date:
283
- - Fri, 16 May 2014 22:18:22 GMT
194
+ - Mon, 09 Mar 2015 19:53:33 GMT
284
195
  body:
285
196
  encoding: US-ASCII
286
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8080/api/collections/repos/name","name":"name","command":"http://localhost:8080/api/collections/commands/1"}'
197
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/name","name":"name","command":"http://localhost:8150/api/collections/commands/1"}'
287
198
  http_version:
288
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
199
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
289
200
  - request:
290
201
  method: get
291
- uri: http://localhost:8080/api/collections/repos/name
202
+ uri: http://localhost:8150/api/collections/repos/name
292
203
  body:
293
204
  encoding: US-ASCII
294
205
  string: ''
@@ -313,112 +224,15 @@ http_interactions:
313
224
  Content-Length:
314
225
  - '335'
315
226
  Date:
316
- - Fri, 16 May 2014 22:18:22 GMT
317
- body:
318
- encoding: US-ASCII
319
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8080/api/collections/repos/name","name":"name","iso_url":null,"url":"http://url.com/some.iso","task":{"spec":"http://api.puppetlabs.com/razor/v1/collections/tasks/member","id":"http://localhost:8080/api/collections/tasks/noop","name":"noop"}}'
320
- http_version:
321
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
322
- - request:
323
- method: get
324
- uri: http://localhost:8080/api
325
- body:
326
- encoding: US-ASCII
327
- string: ''
328
- headers:
329
- Accept:
330
- - application/json
331
- Accept-Encoding:
332
- - gzip, deflate
333
- User-Agent:
334
- - Ruby
335
- response:
336
- status:
337
- code: 200
338
- message: OK
339
- headers:
340
- Server:
341
- - Apache-Coyote/1.1
342
- X-Content-Type-Options:
343
- - nosniff
344
- Content-Type:
345
- - application/json;charset=utf-8
346
- Content-Length:
347
- - '4982'
348
- Date:
349
- - Fri, 16 May 2014 22:18:22 GMT
350
- body:
351
- encoding: US-ASCII
352
- string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8080/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8080/api/commands/create-broker"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8080/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8080/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8080/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8080/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8080/api/commands/delete-broker"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8080/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8080/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8080/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8080/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8080/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8080/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8080/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:8080/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8080/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8080/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8080/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8080/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8080/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8080/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:8080/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:8080/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:8080/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8080/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8080/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8080/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8080/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8080/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8080/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8080/api/collections/nodes"},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8080/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8080/api/collections/commands"}],"version":{"server":"v0.14.1-113-g8b33d83-dirty"}}'
353
- http_version:
354
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
355
- - request:
356
- method: get
357
- uri: http://localhost:8080/api/commands/create-broker
358
- body:
359
- encoding: US-ASCII
360
- string: ''
361
- headers:
362
- Accept:
363
- - application/json
364
- Accept-Encoding:
365
- - gzip, deflate
366
- User-Agent:
367
- - Ruby
368
- response:
369
- status:
370
- code: 200
371
- message: OK
372
- headers:
373
- Server:
374
- - Apache-Coyote/1.1
375
- Etag:
376
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
377
- X-Content-Type-Options:
378
- - nosniff
379
- Content-Type:
380
- - application/json;charset=utf-8
381
- Content-Length:
382
- - '2496'
383
- Date:
384
- - Fri, 16 May 2014 22:18:22 GMT
227
+ - Mon, 09 Mar 2015 19:53:33 GMT
385
228
  body:
386
229
  encoding: US-ASCII
387
- string: '{"name":"create-broker","help":{"full":"# SYNOPSIS\nCreate a new broker
388
- configuration for hand-off of installed nodes\n\n# DESCRIPTION\nCreate a new
389
- broker configuration. Brokers are responsible for handing a node\noff to
390
- a config management system, such as Puppet or Chef. In cases where you\nhave
391
- no configuration management system, you can use the `noop` broker.\n\n\n#
392
- Access Control\n\nThis command''s access control pattern: `commands:create-broker:%{name}`\n\nWords
393
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
394
- name of the object being modified, or some other critical detail, these\nallow
395
- roles to be granted partial access to modify the system.\n\nFor more detail
396
- on how the permission strings are structured and work, you can\nsee the [Shiro
397
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
398
- check applied to it, before the command is authorized.\n\nThese checks only
399
- apply if security is enabled in the Razor configuration\nfile; on this server
400
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
401
- Attributes\n\n * name\n - The name of the broker, as it will be referenced
402
- within Razor.\n This is the name that you supply to, eg, `create-policy`
403
- to specify\n which broker the node will be handed off via after installation.\n -
404
- This attribute is required\n - It must be of type string.\n - It must
405
- be between 1 and 250 in length.\n\n * broker-type\n - The broker type that
406
- this broker is created from. The available\n broker types on your server
407
- are:\n - chef\n - noop\n - puppet-pe\n - puppet\n - This
408
- attribute is required\n - It must be of type string.\n - It must match
409
- the name of an existing broker type.\n\n * configuration\n - The configuration
410
- for the broker. The acceptable values here are\n determined by the `broker-type`
411
- selected. In general this has\n settings like which server to contact,
412
- and other configuration\n related to handing on the newly installed system
413
- to the final\n configuration management system.\n - It must be of type
414
- object.\n \n \n\n\n\n# EXAMPLES\n Creating a simple Puppet broker:\n \n {\n \"name\":
415
- \"puppet\",\n \"configuration\": {\n \"server\": \"puppet.example.org\",\n \"environment\":
416
- \"production\"\n },\n \"broker-type\": \"puppet\"\n }\n\n"},"schema":{"name":{"type":"string"},"broker-type":{"type":"string"},"configuration":{"type":"object"}}}'
230
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/name","name":"name","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"}}'
417
231
  http_version:
418
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
232
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
419
233
  - request:
420
234
  method: get
421
- uri: http://localhost:8080/api/commands/create-broker
235
+ uri: http://localhost:8150/api
422
236
  body:
423
237
  encoding: US-ASCII
424
238
  string: ''
@@ -436,53 +250,22 @@ http_interactions:
436
250
  headers:
437
251
  Server:
438
252
  - Apache-Coyote/1.1
439
- Etag:
440
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
441
253
  X-Content-Type-Options:
442
254
  - nosniff
443
255
  Content-Type:
444
256
  - application/json;charset=utf-8
445
257
  Content-Length:
446
- - '2496'
258
+ - '5650'
447
259
  Date:
448
- - Fri, 16 May 2014 22:18:22 GMT
260
+ - Mon, 09 Mar 2015 19:53:33 GMT
449
261
  body:
450
262
  encoding: US-ASCII
451
- string: '{"name":"create-broker","help":{"full":"# SYNOPSIS\nCreate a new broker
452
- configuration for hand-off of installed nodes\n\n# DESCRIPTION\nCreate a new
453
- broker configuration. Brokers are responsible for handing a node\noff to
454
- a config management system, such as Puppet or Chef. In cases where you\nhave
455
- no configuration management system, you can use the `noop` broker.\n\n\n#
456
- Access Control\n\nThis command''s access control pattern: `commands:create-broker:%{name}`\n\nWords
457
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
458
- name of the object being modified, or some other critical detail, these\nallow
459
- roles to be granted partial access to modify the system.\n\nFor more detail
460
- on how the permission strings are structured and work, you can\nsee the [Shiro
461
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
462
- check applied to it, before the command is authorized.\n\nThese checks only
463
- apply if security is enabled in the Razor configuration\nfile; on this server
464
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
465
- Attributes\n\n * name\n - The name of the broker, as it will be referenced
466
- within Razor.\n This is the name that you supply to, eg, `create-policy`
467
- to specify\n which broker the node will be handed off via after installation.\n -
468
- This attribute is required\n - It must be of type string.\n - It must
469
- be between 1 and 250 in length.\n\n * broker-type\n - The broker type that
470
- this broker is created from. The available\n broker types on your server
471
- are:\n - chef\n - noop\n - puppet-pe\n - puppet\n - This
472
- attribute is required\n - It must be of type string.\n - It must match
473
- the name of an existing broker type.\n\n * configuration\n - The configuration
474
- for the broker. The acceptable values here are\n determined by the `broker-type`
475
- selected. In general this has\n settings like which server to contact,
476
- and other configuration\n related to handing on the newly installed system
477
- to the final\n configuration management system.\n - It must be of type
478
- object.\n \n \n\n\n\n# EXAMPLES\n Creating a simple Puppet broker:\n \n {\n \"name\":
479
- \"puppet\",\n \"configuration\": {\n \"server\": \"puppet.example.org\",\n \"environment\":
480
- \"production\"\n },\n \"broker-type\": \"puppet\"\n }\n\n"},"schema":{"name":{"type":"string"},"broker-type":{"type":"string"},"configuration":{"type":"object"}}}'
263
+ 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"}}'
481
264
  http_version:
482
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
265
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
483
266
  - request:
484
267
  method: get
485
- uri: http://localhost:8080/api/commands/create-broker
268
+ uri: http://localhost:8150/api/commands/create-broker
486
269
  body:
487
270
  encoding: US-ASCII
488
271
  string: ''
@@ -501,55 +284,88 @@ http_interactions:
501
284
  Server:
502
285
  - Apache-Coyote/1.1
503
286
  Etag:
504
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
287
+ - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
505
288
  X-Content-Type-Options:
506
289
  - nosniff
507
290
  Content-Type:
508
291
  - application/json;charset=utf-8
509
292
  Content-Length:
510
- - '2496'
293
+ - '5184'
511
294
  Date:
512
- - Fri, 16 May 2014 22:18:22 GMT
295
+ - Mon, 09 Mar 2015 19:53:33 GMT
513
296
  body:
514
297
  encoding: US-ASCII
515
- string: '{"name":"create-broker","help":{"full":"# SYNOPSIS\nCreate a new broker
516
- configuration for hand-off of installed nodes\n\n# DESCRIPTION\nCreate a new
517
- broker configuration. Brokers are responsible for handing a node\noff to
518
- a config management system, such as Puppet or Chef. In cases where you\nhave
519
- no configuration management system, you can use the `noop` broker.\n\n\n#
520
- Access Control\n\nThis command''s access control pattern: `commands:create-broker:%{name}`\n\nWords
521
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
522
- name of the object being modified, or some other critical detail, these\nallow
523
- roles to be granted partial access to modify the system.\n\nFor more detail
524
- on how the permission strings are structured and work, you can\nsee the [Shiro
525
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
526
- check applied to it, before the command is authorized.\n\nThese checks only
527
- apply if security is enabled in the Razor configuration\nfile; on this server
528
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
298
+ string: '{"name":"create-broker","help":{"summary":"Create a new broker configuration
299
+ for hand-off of installed nodes","description":"Create a new broker configuration. Brokers
300
+ are responsible for handing a node\noff to a config management system, such
301
+ as Puppet or Chef. In cases where you\nhave no configuration management system,
302
+ you can use the `noop` broker.","schema":"# Access Control\n\nThis command''s
303
+ access control pattern: `commands:create-broker:%{name}`\n\nWords surrounded
304
+ by `%{...}` are substitutions from the input data: typically\nthe name of
305
+ the object being modified, or some other critical detail, these\nallow roles
306
+ to be granted partial access to modify the system.\n\nFor more detail on how
307
+ the permission strings are structured and work, you can\nsee the [Shiro Permissions
308
+ documentation][shiro]. That pattern is expanded\nand then a permission check
309
+ applied to it, before the command is authorized.\n\nThese checks only apply
310
+ if security is enabled in the Razor configuration\nfile; on this server security
311
+ is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
529
312
  Attributes\n\n * name\n - The name of the broker, as it will be referenced
530
- within Razor.\n This is the name that you supply to, eg, `create-policy`
531
- to specify\n which broker the node will be handed off via after installation.\n -
532
- This attribute is required\n - It must be of type string.\n - It must
533
- be between 1 and 250 in length.\n\n * broker-type\n - The broker type that
534
- this broker is created from. The available\n broker types on your server
535
- are:\n - chef\n - noop\n - puppet-pe\n - puppet\n - This
536
- attribute is required\n - It must be of type string.\n - It must match
313
+ within Razor.\n This is the name that you supply to, eg, `create-policy`
314
+ to specify\n which broker the node will be handed off via after installation.\n -
315
+ This attribute is required.\n - It must be of type string.\n - It must
316
+ be between 1 and 250 in length.\n\n * broker_type\n - The broker type from
317
+ which this broker is created. The available\n broker types on your server
318
+ are:\n - chef\n - noop\n - puppet-pe\n - puppet\n - This
319
+ attribute is required.\n - It must be of type string.\n - It must match
537
320
  the name of an existing broker type.\n\n * configuration\n - The configuration
538
- for the broker. The acceptable values here are\n determined by the `broker-type`
539
- selected. In general this has\n settings like which server to contact,
540
- and other configuration\n related to handing on the newly installed system
541
- to the final\n configuration management system.\n - It must be of type
542
- object.\n \n \n\n\n\n# EXAMPLES\n Creating a simple Puppet broker:\n \n {\n \"name\":
543
- \"puppet\",\n \"configuration\": {\n \"server\": \"puppet.example.org\",\n \"environment\":
544
- \"production\"\n },\n \"broker-type\": \"puppet\"\n }\n\n"},"schema":{"name":{"type":"string"},"broker-type":{"type":"string"},"configuration":{"type":"object"}}}'
321
+ for the broker. The acceptable values here are\n determined by the `broker_type`
322
+ selected. In general this has\n settings like which server to contact,
323
+ and other configuration\n related to handing on the newly installed system
324
+ to the final\n configuration management system.\n \n This attribute
325
+ can be abbreviated as `c` for convenience.\n - It must be of type object.\n","examples":{"api":"Creating
326
+ a simple Puppet broker:\n\n{\n \"name\": \"puppet\",\n \"configuration\":
327
+ {\n \"server\": \"puppet.example.org\",\n \"environment\": \"production\"\n },\n \"broker_type\":
328
+ \"puppet\"\n}","cli":"Creating a simple Puppet broker:\n\nrazor create-broker
329
+ --name puppet -c server=puppet.example.org \\\n -c environment=production
330
+ --broker-type puppet"},"full":"# SYNOPSIS\nCreate a new broker configuration
331
+ for hand-off of installed nodes\n\n# DESCRIPTION\nCreate a new broker configuration. Brokers
332
+ are responsible for handing a node\noff to a config management system, such
333
+ as Puppet or Chef. In cases where you\nhave no configuration management system,
334
+ you can use the `noop` broker.\n# Access Control\n\nThis command''s access
335
+ control pattern: `commands:create-broker:%{name}`\n\nWords surrounded by `%{...}`
336
+ are substitutions from the input data: typically\nthe name of the object being
337
+ modified, or some other critical detail, these\nallow roles to be granted
338
+ partial access to modify the system.\n\nFor more detail on how the permission
339
+ strings are structured and work, you can\nsee the [Shiro Permissions documentation][shiro]. That
340
+ pattern is expanded\nand then a permission check applied to it, before the
341
+ command is authorized.\n\nThese checks only apply if security is enabled in
342
+ the Razor configuration\nfile; on this server security is currently disabled.\n\n[shiro]:
343
+ http://shiro.apache.org/permissions.html\n\n# Attributes\n\n * name\n -
344
+ The name of the broker, as it will be referenced within Razor.\n This
345
+ is the name that you supply to, eg, `create-policy` to specify\n which
346
+ broker the node will be handed off via after installation.\n - This attribute
347
+ is required.\n - It must be of type string.\n - It must be between 1 and
348
+ 250 in length.\n\n * broker_type\n - The broker type from which this broker
349
+ is created. The available\n broker types on your server are:\n -
350
+ chef\n - noop\n - puppet-pe\n - puppet\n - This attribute is
351
+ required.\n - It must be of type string.\n - It must match the name of
352
+ an existing broker type.\n\n * configuration\n - The configuration for the
353
+ broker. The acceptable values here are\n determined by the `broker_type`
354
+ selected. In general this has\n settings like which server to contact,
355
+ and other configuration\n related to handing on the newly installed system
356
+ to the final\n configuration management system.\n \n This attribute
357
+ can be abbreviated as `c` for convenience.\n - It must be of type object.\n\n#
358
+ EXAMPLES\n\n Creating a simple Puppet broker:\n \n {\n \"name\": \"puppet\",\n \"configuration\":
359
+ {\n \"server\": \"puppet.example.org\",\n \"environment\":
360
+ \"production\"\n },\n \"broker_type\": \"puppet\"\n }\n"},"schema":{"name":{"type":"string"},"broker_type":{"type":"string","aliases":["broker-type"]},"configuration":{"type":"object","aliases":["c"]}}}'
545
361
  http_version:
546
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
362
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
547
363
  - request:
548
364
  method: post
549
- uri: http://localhost:8080/api/commands/create-broker
365
+ uri: http://localhost:8150/api/commands/create-broker
550
366
  body:
551
367
  encoding: UTF-8
552
- string: '{"name":"puppet","configuration":{"server":"puppet.example.org","environment":"production"},"broker-type":"puppet"}'
368
+ string: '{"name":"puppet","configuration":{"server":"puppet.example.org","environment":"production"},"broker_type":"puppet"}'
553
369
  headers:
554
370
  Accept:
555
371
  - application/json
@@ -575,15 +391,15 @@ http_interactions:
575
391
  Content-Length:
576
392
  - '209'
577
393
  Date:
578
- - Fri, 16 May 2014 22:18:22 GMT
394
+ - Mon, 09 Mar 2015 19:53:33 GMT
579
395
  body:
580
396
  encoding: US-ASCII
581
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/brokers/member","id":"http://localhost:8080/api/collections/brokers/puppet","name":"puppet","command":"http://localhost:8080/api/collections/commands/2"}'
397
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/brokers/member","id":"http://localhost:8150/api/collections/brokers/puppet","name":"puppet","command":"http://localhost:8150/api/collections/commands/2"}'
582
398
  http_version:
583
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
399
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
584
400
  - request:
585
401
  method: get
586
- uri: http://localhost:8080/api/collections/brokers/puppet
402
+ uri: http://localhost:8150/api/collections/brokers/puppet
587
403
  body:
588
404
  encoding: US-ASCII
589
405
  string: ''
@@ -608,15 +424,15 @@ http_interactions:
608
424
  Content-Length:
609
425
  - '356'
610
426
  Date:
611
- - Fri, 16 May 2014 22:18:22 GMT
427
+ - Mon, 09 Mar 2015 19:53:33 GMT
612
428
  body:
613
429
  encoding: US-ASCII
614
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/brokers/member","id":"http://localhost:8080/api/collections/brokers/puppet","name":"puppet","configuration":{"server":"puppet.example.org","environment":"production"},"broker-type":"puppet","policies":{"id":"http://localhost:8080/api/collections/brokers/puppet/policies","count":0,"name":"policies"}}'
430
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/brokers/member","id":"http://localhost:8150/api/collections/brokers/puppet","name":"puppet","configuration":{"server":"puppet.example.org","environment":"production"},"broker_type":"puppet","policies":{"id":"http://localhost:8150/api/collections/brokers/puppet/policies","count":0,"name":"policies"}}'
615
431
  http_version:
616
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
432
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
617
433
  - request:
618
434
  method: get
619
- uri: http://localhost:8080/api
435
+ uri: http://localhost:8150/api
620
436
  body:
621
437
  encoding: US-ASCII
622
438
  string: ''
@@ -639,17 +455,17 @@ http_interactions:
639
455
  Content-Type:
640
456
  - application/json;charset=utf-8
641
457
  Content-Length:
642
- - '4982'
458
+ - '5650'
643
459
  Date:
644
- - Fri, 16 May 2014 22:18:22 GMT
460
+ - Mon, 09 Mar 2015 19:53:33 GMT
645
461
  body:
646
462
  encoding: US-ASCII
647
- string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8080/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8080/api/commands/create-broker"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8080/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8080/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8080/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8080/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8080/api/commands/delete-broker"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8080/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8080/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8080/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8080/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8080/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8080/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8080/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:8080/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8080/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8080/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8080/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8080/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8080/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8080/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:8080/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:8080/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:8080/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8080/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8080/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8080/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8080/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8080/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8080/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8080/api/collections/nodes"},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8080/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8080/api/collections/commands"}],"version":{"server":"v0.14.1-113-g8b33d83-dirty"}}'
463
+ 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"}}'
648
464
  http_version:
649
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
465
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
650
466
  - request:
651
467
  method: get
652
- uri: http://localhost:8080/api/commands/create-tag
468
+ uri: http://localhost:8150/api/commands/create-tag
653
469
  body:
654
470
  encoding: US-ASCII
655
471
  string: ''
@@ -668,156 +484,122 @@ http_interactions:
668
484
  Server:
669
485
  - Apache-Coyote/1.1
670
486
  Etag:
671
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
487
+ - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
672
488
  X-Content-Type-Options:
673
489
  - nosniff
674
490
  Content-Type:
675
491
  - application/json;charset=utf-8
676
492
  Content-Length:
677
- - '2178'
493
+ - '4439'
678
494
  Date:
679
- - Fri, 16 May 2014 22:18:22 GMT
495
+ - Mon, 09 Mar 2015 19:53:33 GMT
680
496
  body:
681
497
  encoding: ASCII-8BIT
682
498
  string: !binary |-
683
- eyJuYW1lIjoiY3JlYXRlLXRhZyIsImhlbHAiOnsiZnVsbCI6IiMgU1lOT1BT
684
- SVNcbkNyZWF0ZSBhIG5ldyB0YWdcblxuIyBERVNDUklQVElPTlxuQ3JlYXRl
685
- IGEgbmV3IHRhZywgYW5kIHNldCB0aGUgcnVsZSBpdCB3aWxsIHVzZSB0byBt
686
- YXRjaCBvbiBmYWN0cyBhbmQgbm9kZVxubWV0YWRhdGEuXG5cblxuIyBBY2Nl
687
- c3MgQ29udHJvbFxuXG5UaGlzIGNvbW1hbmQncyBhY2Nlc3MgY29udHJvbCBw
688
- YXR0ZXJuOiBgY29tbWFuZHM6Y3JlYXRlLXRhZzole25hbWV9YFxuXG5Xb3Jk
689
- cyBzdXJyb3VuZGVkIGJ5IGAley4uLn1gIGFyZSBzdWJzdGl0dXRpb25zIGZy
690
- b20gdGhlIGlucHV0IGRhdGE6IHR5cGljYWxseVxudGhlIG5hbWUgb2YgdGhl
691
- IG9iamVjdCBiZWluZyBtb2RpZmllZCwgb3Igc29tZSBvdGhlciBjcml0aWNh
692
- bCBkZXRhaWwsIHRoZXNlXG5hbGxvdyByb2xlcyB0byBiZSBncmFudGVkIHBh
693
- cnRpYWwgYWNjZXNzIHRvIG1vZGlmeSB0aGUgc3lzdGVtLlxuXG5Gb3IgbW9y
694
- ZSBkZXRhaWwgb24gaG93IHRoZSBwZXJtaXNzaW9uIHN0cmluZ3MgYXJlIHN0
695
- cnVjdHVyZWQgYW5kIHdvcmssIHlvdSBjYW5cbnNlZSB0aGUgW1NoaXJvIFBl
696
- cm1pc3Npb25zIGRvY3VtZW50YXRpb25dW3NoaXJvXS4gIFRoYXQgcGF0dGVy
697
- biBpcyBleHBhbmRlZFxuYW5kIHRoZW4gYSBwZXJtaXNzaW9uIGNoZWNrIGFw
698
- cGxpZWQgdG8gaXQsIGJlZm9yZSB0aGUgY29tbWFuZCBpcyBhdXRob3JpemVk
699
- LlxuXG5UaGVzZSBjaGVja3Mgb25seSBhcHBseSBpZiBzZWN1cml0eSBpcyBl
700
- bmFibGVkIGluIHRoZSBSYXpvciBjb25maWd1cmF0aW9uXG5maWxlOyBvbiB0
701
- aGlzIHNlcnZlciBzZWN1cml0eSBpcyBjdXJyZW50bHkgZGlzYWJsZWQuXG5c
702
- bltzaGlyb106IGh0dHA6Ly9zaGlyby5hcGFjaGUub3JnL3Blcm1pc3Npb25z
703
- Lmh0bWxcblxuIyBBdHRyaWJ1dGVzXG5cbiAqIG5hbWVcbiAgIC0gVGhlIG5h
704
- bWUgb2YgdGhlIHRhZ1xuICAgLSBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJl
705
- ZFxuICAgLSBJdCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLlxuICAgLSBJdCBt
706
- dXN0IGJlIGJldHdlZW4gMSBhbmQgSW5maW5pdHkgaW4gbGVuZ3RoLlxuXG4g
707
- KiBydWxlXG4gICAtIFRoZSB0YWcgbWF0Y2hlcyBhIG5vZGUgaWYgZXZhbHVh
708
- dGluZyB0aGlzIHJ1biBhZ2FpbnN0IHRoZSB0YWfigJlzIGZhY3RzXG4gICBy
709
- ZXN1bHRzIGluIHRydWUuIE5vdGUgdGhhdCB0YWcgbWF0Y2hpbmcgaXMgY2Fz
710
- ZSBzZW5zaXRpdmUuXG4gICBcbiAgIEZvciBleGFtcGxlLCBoZXJlIGlzIGEg
711
- dGFnIHJ1bGU6XG4gICBcbiAgICAgICBbXCJvclwiLFxuICAgICAgICBbXCI9
712
- XCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBcImRlOmVhOmRiOmVl
713
- OmYwOjAwXCJdXG4gICAgICAgIFtcIj1cIiwgW1wiZmFjdFwiLCBcIm1hY2Fk
714
- ZHJlc3NcIl0sIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1dXG4gICBcbiAgIFRo
715
- ZSB0YWcgY291bGQgYWxzbyBiZSB3cml0dGVuIGxpa2UgdGhpczpcbiAgIFxu
716
- ICAgICAgIFtcImluXCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBc
717
- ImRlOmVhOmRiOmVlOmYwOjAwXCIsIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1c
718
- biAgIFxuICAgVGhlIHN5bnRheCBmb3IgcnVsZSBleHByZXNzaW9ucyBpcyBk
719
- ZWZpbmVkIGluXG4gICBgbGliL3Jhem9yL21hdGNoZXIucmJgLiBFeHByZXNz
720
- aW9ucyBhcmUgb2YgdGhlIGZvcm0gYFtvcCBhcmcxIGFyZzIgLi4gYXJnbl1g
721
- XG4gICB3aGVyZSBvcCBpcyBvbmUgb2YgdGhlIG9wZXJhdG9ycyBiZWxvdywg
722
- YW5kIGFyZzEgdGhyb3VnaCBhcmduIGFyZSB0aGVcbiAgIGFyZ3VtZW50cyBm
723
- b3IgdGhlIG9wZXJhdG9yLiBJZiB0aGV5IGFyZSBleHByZXNzaW9ucyB0aGVt
724
- c2VsdmVzLCB0aGV5IHdpbGxcbiAgIGJlIGV2YWx1YXRlZCBiZWZvcmUgb3Ag
725
- aXMgZXZhbHVhdGVkXG4gICAtIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVk
726
- XG4gICAtIEl0IG11c3QgYmUgb2YgdHlwZSBhcnJheS5cblxuXG5cbiMgRVhB
727
- TVBMRVNcbiAgQ3JlYXRlIGEgc2ltcGxlIHRhZzpcbiAgXG4gIHtcbiAgICBc
728
- Im5hbWVcIjogXCJzbWFsbFwiLFxuICAgIFwicnVsZVwiOiBbXCI9XCIsIFtc
729
- ImZhY3RcIiwgXCJwcm9jZXNzb3Jjb3VudFwiXSwgXCIyXCJdXG4gIH1cblxu
730
- In0sInNjaGVtYSI6eyJuYW1lIjp7InR5cGUiOiJzdHJpbmcifSwicnVsZSI6
731
- eyJ0eXBlIjoiYXJyYXkifX19
499
+ eyJuYW1lIjoiY3JlYXRlLXRhZyIsImhlbHAiOnsic3VtbWFyeSI6IkNyZWF0
500
+ ZSBhIG5ldyB0YWciLCJkZXNjcmlwdGlvbiI6IkNyZWF0ZSBhIG5ldyB0YWcs
501
+ IGFuZCBzZXQgdGhlIHJ1bGUgaXQgd2lsbCB1c2UgdG8gbWF0Y2ggb24gZmFj
502
+ dHMgYW5kIG5vZGVcbm1ldGFkYXRhLiIsInNjaGVtYSI6IiMgQWNjZXNzIENv
503
+ bnRyb2xcblxuVGhpcyBjb21tYW5kJ3MgYWNjZXNzIGNvbnRyb2wgcGF0dGVy
504
+ bjogYGNvbW1hbmRzOmNyZWF0ZS10YWc6JXtuYW1lfWBcblxuV29yZHMgc3Vy
505
+ cm91bmRlZCBieSBgJXsuLi59YCBhcmUgc3Vic3RpdHV0aW9ucyBmcm9tIHRo
506
+ ZSBpbnB1dCBkYXRhOiB0eXBpY2FsbHlcbnRoZSBuYW1lIG9mIHRoZSBvYmpl
507
+ Y3QgYmVpbmcgbW9kaWZpZWQsIG9yIHNvbWUgb3RoZXIgY3JpdGljYWwgZGV0
508
+ YWlsLCB0aGVzZVxuYWxsb3cgcm9sZXMgdG8gYmUgZ3JhbnRlZCBwYXJ0aWFs
509
+ IGFjY2VzcyB0byBtb2RpZnkgdGhlIHN5c3RlbS5cblxuRm9yIG1vcmUgZGV0
510
+ YWlsIG9uIGhvdyB0aGUgcGVybWlzc2lvbiBzdHJpbmdzIGFyZSBzdHJ1Y3R1
511
+ cmVkIGFuZCB3b3JrLCB5b3UgY2FuXG5zZWUgdGhlIFtTaGlybyBQZXJtaXNz
512
+ aW9ucyBkb2N1bWVudGF0aW9uXVtzaGlyb10uICBUaGF0IHBhdHRlcm4gaXMg
513
+ ZXhwYW5kZWRcbmFuZCB0aGVuIGEgcGVybWlzc2lvbiBjaGVjayBhcHBsaWVk
514
+ IHRvIGl0LCBiZWZvcmUgdGhlIGNvbW1hbmQgaXMgYXV0aG9yaXplZC5cblxu
515
+ VGhlc2UgY2hlY2tzIG9ubHkgYXBwbHkgaWYgc2VjdXJpdHkgaXMgZW5hYmxl
516
+ ZCBpbiB0aGUgUmF6b3IgY29uZmlndXJhdGlvblxuZmlsZTsgb24gdGhpcyBz
517
+ ZXJ2ZXIgc2VjdXJpdHkgaXMgY3VycmVudGx5IGRpc2FibGVkLlxuXG5bc2hp
518
+ cm9dOiBodHRwOi8vc2hpcm8uYXBhY2hlLm9yZy9wZXJtaXNzaW9ucy5odG1s
519
+ XG5cbiMgQXR0cmlidXRlc1xuXG4gKiBuYW1lXG4gICAtIFRoZSBuYW1lIG9m
520
+ IHRoZSB0YWcuXG4gICAtIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVkLlxu
521
+ ICAgLSBJdCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLlxuICAgLSBJdCBtdXN0
522
+ IGJlIGJldHdlZW4gMSBhbmQgSW5maW5pdHkgaW4gbGVuZ3RoLlxuXG4gKiBy
523
+ dWxlXG4gICAtIFRoZSB0YWcgbWF0Y2hlcyBhIG5vZGUgaWYgZXZhbHVhdGlu
524
+ ZyB0aGlzIHJ1biBhZ2FpbnN0IHRoZSB0YWfigJlzIGZhY3RzXG4gICAgIHJl
525
+ c3VsdHMgaW4gdHJ1ZS4gTm90ZSB0aGF0IHRhZyBtYXRjaGluZyBpcyBjYXNl
526
+ IHNlbnNpdGl2ZS5cbiAgICAgXG4gICAgIEZvciBleGFtcGxlLCBoZXJlIGlz
527
+ IGEgdGFnIHJ1bGU6XG4gICAgIFxuICAgICAgICAgW1wib3JcIixcbiAgICAg
528
+ ICAgICBbXCI9XCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBcImRl
529
+ OmVhOmRiOmVlOmYwOjAwXCJdXG4gICAgICAgICAgW1wiPVwiLCBbXCJmYWN0
530
+ XCIsIFwibWFjYWRkcmVzc1wiXSwgXCJkZTplYTpkYjplZTpmMDowMVwiXV1c
531
+ biAgICAgXG4gICAgIFRoZSB0YWcgY291bGQgYWxzbyBiZSB3cml0dGVuIGxp
532
+ a2UgdGhpczpcbiAgICAgXG4gICAgICAgICBbXCJpblwiLCBbXCJmYWN0XCIs
533
+ IFwibWFjYWRkcmVzc1wiXSwgXCJkZTplYTpkYjplZTpmMDowMFwiLCBcImRl
534
+ OmVhOmRiOmVlOmYwOjAxXCJdXG4gICAgIFxuICAgICBUaGUgc3ludGF4IGZv
535
+ ciBydWxlIGV4cHJlc3Npb25zIGlzIGRlZmluZWQgaW4gYGxpYi9yYXpvci9t
536
+ YXRjaGVyLnJiYC5cbiAgICAgRXhwcmVzc2lvbnMgYXJlIG9mIHRoZSBmb3Jt
537
+ IGBbb3AgYXJnMSBhcmcyIC4uIGFyZ25dYFxuICAgICB3aGVyZSBvcCBpcyBv
538
+ bmUgb2YgdGhlIG9wZXJhdG9ycyBiZWxvdywgYW5kIGFyZzEgdGhyb3VnaCBh
539
+ cmduIGFyZSB0aGVcbiAgICAgYXJndW1lbnRzIGZvciB0aGUgb3BlcmF0b3Iu
540
+ IElmIHRoZXkgYXJlIGV4cHJlc3Npb25zIHRoZW1zZWx2ZXMsIHRoZXkgd2ls
541
+ bFxuICAgICBiZSBldmFsdWF0ZWQgYmVmb3JlIGBvcGAgaXMgZXZhbHVhdGVk
542
+ LlxuICAgLSBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJlZC5cbiAgIC0gSXQg
543
+ bXVzdCBiZSBvZiB0eXBlIGFycmF5LlxuIiwiZXhhbXBsZXMiOnsiYXBpIjoi
544
+ Q3JlYXRlIGEgc2ltcGxlIHRhZzpcblxue1xuICBcIm5hbWVcIjogXCJzbWFs
545
+ bFwiLFxuICBcInJ1bGVcIjogW1wiPVwiLCBbXCJmYWN0XCIsIFwicHJvY2Vz
546
+ c29yY291bnRcIl0sIFwiMlwiXVxufSIsImNsaSI6IkNyZWF0ZSBhIHNpbXBs
547
+ ZSB0YWc6XG5cbnJhem9yIGNyZWF0ZS10YWcgLS1uYW1lIHNtYWxsIC0tcnVs
548
+ ZSAnW1wiPVwiLCBbXCJmYWN0XCIsIFwicHJvY2Vzc29yY291bnRcIl0sIFwi
549
+ MlwiXScifSwiZnVsbCI6IiMgU1lOT1BTSVNcbkNyZWF0ZSBhIG5ldyB0YWdc
550
+ blxuIyBERVNDUklQVElPTlxuQ3JlYXRlIGEgbmV3IHRhZywgYW5kIHNldCB0
551
+ aGUgcnVsZSBpdCB3aWxsIHVzZSB0byBtYXRjaCBvbiBmYWN0cyBhbmQgbm9k
552
+ ZVxubWV0YWRhdGEuXG4jIEFjY2VzcyBDb250cm9sXG5cblRoaXMgY29tbWFu
553
+ ZCdzIGFjY2VzcyBjb250cm9sIHBhdHRlcm46IGBjb21tYW5kczpjcmVhdGUt
554
+ dGFnOiV7bmFtZX1gXG5cbldvcmRzIHN1cnJvdW5kZWQgYnkgYCV7Li4ufWAg
555
+ YXJlIHN1YnN0aXR1dGlvbnMgZnJvbSB0aGUgaW5wdXQgZGF0YTogdHlwaWNh
556
+ bGx5XG50aGUgbmFtZSBvZiB0aGUgb2JqZWN0IGJlaW5nIG1vZGlmaWVkLCBv
557
+ ciBzb21lIG90aGVyIGNyaXRpY2FsIGRldGFpbCwgdGhlc2VcbmFsbG93IHJv
558
+ bGVzIHRvIGJlIGdyYW50ZWQgcGFydGlhbCBhY2Nlc3MgdG8gbW9kaWZ5IHRo
559
+ ZSBzeXN0ZW0uXG5cbkZvciBtb3JlIGRldGFpbCBvbiBob3cgdGhlIHBlcm1p
560
+ c3Npb24gc3RyaW5ncyBhcmUgc3RydWN0dXJlZCBhbmQgd29yaywgeW91IGNh
561
+ blxuc2VlIHRoZSBbU2hpcm8gUGVybWlzc2lvbnMgZG9jdW1lbnRhdGlvbl1b
562
+ c2hpcm9dLiAgVGhhdCBwYXR0ZXJuIGlzIGV4cGFuZGVkXG5hbmQgdGhlbiBh
563
+ IHBlcm1pc3Npb24gY2hlY2sgYXBwbGllZCB0byBpdCwgYmVmb3JlIHRoZSBj
564
+ b21tYW5kIGlzIGF1dGhvcml6ZWQuXG5cblRoZXNlIGNoZWNrcyBvbmx5IGFw
565
+ cGx5IGlmIHNlY3VyaXR5IGlzIGVuYWJsZWQgaW4gdGhlIFJhem9yIGNvbmZp
566
+ Z3VyYXRpb25cbmZpbGU7IG9uIHRoaXMgc2VydmVyIHNlY3VyaXR5IGlzIGN1
567
+ cnJlbnRseSBkaXNhYmxlZC5cblxuW3NoaXJvXTogaHR0cDovL3NoaXJvLmFw
568
+ YWNoZS5vcmcvcGVybWlzc2lvbnMuaHRtbFxuXG4jIEF0dHJpYnV0ZXNcblxu
569
+ ICogbmFtZVxuICAgLSBUaGUgbmFtZSBvZiB0aGUgdGFnLlxuICAgLSBUaGlz
570
+ IGF0dHJpYnV0ZSBpcyByZXF1aXJlZC5cbiAgIC0gSXQgbXVzdCBiZSBvZiB0
571
+ eXBlIHN0cmluZy5cbiAgIC0gSXQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIElu
572
+ ZmluaXR5IGluIGxlbmd0aC5cblxuICogcnVsZVxuICAgLSBUaGUgdGFnIG1h
573
+ dGNoZXMgYSBub2RlIGlmIGV2YWx1YXRpbmcgdGhpcyBydW4gYWdhaW5zdCB0
574
+ aGUgdGFn4oCZcyBmYWN0c1xuICAgICByZXN1bHRzIGluIHRydWUuIE5vdGUg
575
+ dGhhdCB0YWcgbWF0Y2hpbmcgaXMgY2FzZSBzZW5zaXRpdmUuXG4gICAgIFxu
576
+ ICAgICBGb3IgZXhhbXBsZSwgaGVyZSBpcyBhIHRhZyBydWxlOlxuICAgICBc
577
+ biAgICAgICAgIFtcIm9yXCIsXG4gICAgICAgICAgW1wiPVwiLCBbXCJmYWN0
578
+ XCIsIFwibWFjYWRkcmVzc1wiXSwgXCJkZTplYTpkYjplZTpmMDowMFwiXVxu
579
+ ICAgICAgICAgIFtcIj1cIiwgW1wiZmFjdFwiLCBcIm1hY2FkZHJlc3NcIl0s
580
+ IFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1dXG4gICAgIFxuICAgICBUaGUgdGFn
581
+ IGNvdWxkIGFsc28gYmUgd3JpdHRlbiBsaWtlIHRoaXM6XG4gICAgIFxuICAg
582
+ ICAgICAgW1wiaW5cIiwgW1wiZmFjdFwiLCBcIm1hY2FkZHJlc3NcIl0sIFwi
583
+ ZGU6ZWE6ZGI6ZWU6ZjA6MDBcIiwgXCJkZTplYTpkYjplZTpmMDowMVwiXVxu
584
+ ICAgICBcbiAgICAgVGhlIHN5bnRheCBmb3IgcnVsZSBleHByZXNzaW9ucyBp
585
+ cyBkZWZpbmVkIGluIGBsaWIvcmF6b3IvbWF0Y2hlci5yYmAuXG4gICAgIEV4
586
+ cHJlc3Npb25zIGFyZSBvZiB0aGUgZm9ybSBgW29wIGFyZzEgYXJnMiAuLiBh
587
+ cmduXWBcbiAgICAgd2hlcmUgb3AgaXMgb25lIG9mIHRoZSBvcGVyYXRvcnMg
588
+ YmVsb3csIGFuZCBhcmcxIHRocm91Z2ggYXJnbiBhcmUgdGhlXG4gICAgIGFy
589
+ Z3VtZW50cyBmb3IgdGhlIG9wZXJhdG9yLiBJZiB0aGV5IGFyZSBleHByZXNz
590
+ aW9ucyB0aGVtc2VsdmVzLCB0aGV5IHdpbGxcbiAgICAgYmUgZXZhbHVhdGVk
591
+ IGJlZm9yZSBgb3BgIGlzIGV2YWx1YXRlZC5cbiAgIC0gVGhpcyBhdHRyaWJ1
592
+ dGUgaXMgcmVxdWlyZWQuXG4gICAtIEl0IG11c3QgYmUgb2YgdHlwZSBhcnJh
593
+ eS5cblxuIyBFWEFNUExFU1xuXG4gIENyZWF0ZSBhIHNpbXBsZSB0YWc6XG4g
594
+ IFxuICB7XG4gICAgXCJuYW1lXCI6IFwic21hbGxcIixcbiAgICBcInJ1bGVc
595
+ IjogW1wiPVwiLCBbXCJmYWN0XCIsIFwicHJvY2Vzc29yY291bnRcIl0sIFwi
596
+ MlwiXVxuICB9XG4ifSwic2NoZW1hIjp7Im5hbWUiOnsidHlwZSI6InN0cmlu
597
+ ZyJ9LCJydWxlIjp7InR5cGUiOiJhcnJheSJ9fX0=
732
598
  http_version:
733
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
734
- - request:
735
- method: get
736
- uri: http://localhost:8080/api/commands/create-tag
737
- body:
738
- encoding: US-ASCII
739
- string: ''
740
- headers:
741
- Accept:
742
- - application/json
743
- Accept-Encoding:
744
- - gzip, deflate
745
- User-Agent:
746
- - Ruby
747
- response:
748
- status:
749
- code: 200
750
- message: OK
751
- headers:
752
- Server:
753
- - Apache-Coyote/1.1
754
- Etag:
755
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
756
- X-Content-Type-Options:
757
- - nosniff
758
- Content-Type:
759
- - application/json;charset=utf-8
760
- Content-Length:
761
- - '2178'
762
- Date:
763
- - Fri, 16 May 2014 22:18:22 GMT
764
- body:
765
- encoding: ASCII-8BIT
766
- string: !binary |-
767
- eyJuYW1lIjoiY3JlYXRlLXRhZyIsImhlbHAiOnsiZnVsbCI6IiMgU1lOT1BT
768
- SVNcbkNyZWF0ZSBhIG5ldyB0YWdcblxuIyBERVNDUklQVElPTlxuQ3JlYXRl
769
- IGEgbmV3IHRhZywgYW5kIHNldCB0aGUgcnVsZSBpdCB3aWxsIHVzZSB0byBt
770
- YXRjaCBvbiBmYWN0cyBhbmQgbm9kZVxubWV0YWRhdGEuXG5cblxuIyBBY2Nl
771
- c3MgQ29udHJvbFxuXG5UaGlzIGNvbW1hbmQncyBhY2Nlc3MgY29udHJvbCBw
772
- YXR0ZXJuOiBgY29tbWFuZHM6Y3JlYXRlLXRhZzole25hbWV9YFxuXG5Xb3Jk
773
- cyBzdXJyb3VuZGVkIGJ5IGAley4uLn1gIGFyZSBzdWJzdGl0dXRpb25zIGZy
774
- b20gdGhlIGlucHV0IGRhdGE6IHR5cGljYWxseVxudGhlIG5hbWUgb2YgdGhl
775
- IG9iamVjdCBiZWluZyBtb2RpZmllZCwgb3Igc29tZSBvdGhlciBjcml0aWNh
776
- bCBkZXRhaWwsIHRoZXNlXG5hbGxvdyByb2xlcyB0byBiZSBncmFudGVkIHBh
777
- cnRpYWwgYWNjZXNzIHRvIG1vZGlmeSB0aGUgc3lzdGVtLlxuXG5Gb3IgbW9y
778
- ZSBkZXRhaWwgb24gaG93IHRoZSBwZXJtaXNzaW9uIHN0cmluZ3MgYXJlIHN0
779
- cnVjdHVyZWQgYW5kIHdvcmssIHlvdSBjYW5cbnNlZSB0aGUgW1NoaXJvIFBl
780
- cm1pc3Npb25zIGRvY3VtZW50YXRpb25dW3NoaXJvXS4gIFRoYXQgcGF0dGVy
781
- biBpcyBleHBhbmRlZFxuYW5kIHRoZW4gYSBwZXJtaXNzaW9uIGNoZWNrIGFw
782
- cGxpZWQgdG8gaXQsIGJlZm9yZSB0aGUgY29tbWFuZCBpcyBhdXRob3JpemVk
783
- LlxuXG5UaGVzZSBjaGVja3Mgb25seSBhcHBseSBpZiBzZWN1cml0eSBpcyBl
784
- bmFibGVkIGluIHRoZSBSYXpvciBjb25maWd1cmF0aW9uXG5maWxlOyBvbiB0
785
- aGlzIHNlcnZlciBzZWN1cml0eSBpcyBjdXJyZW50bHkgZGlzYWJsZWQuXG5c
786
- bltzaGlyb106IGh0dHA6Ly9zaGlyby5hcGFjaGUub3JnL3Blcm1pc3Npb25z
787
- Lmh0bWxcblxuIyBBdHRyaWJ1dGVzXG5cbiAqIG5hbWVcbiAgIC0gVGhlIG5h
788
- bWUgb2YgdGhlIHRhZ1xuICAgLSBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJl
789
- ZFxuICAgLSBJdCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLlxuICAgLSBJdCBt
790
- dXN0IGJlIGJldHdlZW4gMSBhbmQgSW5maW5pdHkgaW4gbGVuZ3RoLlxuXG4g
791
- KiBydWxlXG4gICAtIFRoZSB0YWcgbWF0Y2hlcyBhIG5vZGUgaWYgZXZhbHVh
792
- dGluZyB0aGlzIHJ1biBhZ2FpbnN0IHRoZSB0YWfigJlzIGZhY3RzXG4gICBy
793
- ZXN1bHRzIGluIHRydWUuIE5vdGUgdGhhdCB0YWcgbWF0Y2hpbmcgaXMgY2Fz
794
- ZSBzZW5zaXRpdmUuXG4gICBcbiAgIEZvciBleGFtcGxlLCBoZXJlIGlzIGEg
795
- dGFnIHJ1bGU6XG4gICBcbiAgICAgICBbXCJvclwiLFxuICAgICAgICBbXCI9
796
- XCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBcImRlOmVhOmRiOmVl
797
- OmYwOjAwXCJdXG4gICAgICAgIFtcIj1cIiwgW1wiZmFjdFwiLCBcIm1hY2Fk
798
- ZHJlc3NcIl0sIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1dXG4gICBcbiAgIFRo
799
- ZSB0YWcgY291bGQgYWxzbyBiZSB3cml0dGVuIGxpa2UgdGhpczpcbiAgIFxu
800
- ICAgICAgIFtcImluXCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBc
801
- ImRlOmVhOmRiOmVlOmYwOjAwXCIsIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1c
802
- biAgIFxuICAgVGhlIHN5bnRheCBmb3IgcnVsZSBleHByZXNzaW9ucyBpcyBk
803
- ZWZpbmVkIGluXG4gICBgbGliL3Jhem9yL21hdGNoZXIucmJgLiBFeHByZXNz
804
- aW9ucyBhcmUgb2YgdGhlIGZvcm0gYFtvcCBhcmcxIGFyZzIgLi4gYXJnbl1g
805
- XG4gICB3aGVyZSBvcCBpcyBvbmUgb2YgdGhlIG9wZXJhdG9ycyBiZWxvdywg
806
- YW5kIGFyZzEgdGhyb3VnaCBhcmduIGFyZSB0aGVcbiAgIGFyZ3VtZW50cyBm
807
- b3IgdGhlIG9wZXJhdG9yLiBJZiB0aGV5IGFyZSBleHByZXNzaW9ucyB0aGVt
808
- c2VsdmVzLCB0aGV5IHdpbGxcbiAgIGJlIGV2YWx1YXRlZCBiZWZvcmUgb3Ag
809
- aXMgZXZhbHVhdGVkXG4gICAtIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVk
810
- XG4gICAtIEl0IG11c3QgYmUgb2YgdHlwZSBhcnJheS5cblxuXG5cbiMgRVhB
811
- TVBMRVNcbiAgQ3JlYXRlIGEgc2ltcGxlIHRhZzpcbiAgXG4gIHtcbiAgICBc
812
- Im5hbWVcIjogXCJzbWFsbFwiLFxuICAgIFwicnVsZVwiOiBbXCI9XCIsIFtc
813
- ImZhY3RcIiwgXCJwcm9jZXNzb3Jjb3VudFwiXSwgXCIyXCJdXG4gIH1cblxu
814
- In0sInNjaGVtYSI6eyJuYW1lIjp7InR5cGUiOiJzdHJpbmcifSwicnVsZSI6
815
- eyJ0eXBlIjoiYXJyYXkifX19
816
- http_version:
817
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
599
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
818
600
  - request:
819
601
  method: post
820
- uri: http://localhost:8080/api/commands/create-tag
602
+ uri: http://localhost:8150/api/commands/create-tag
821
603
  body:
822
604
  encoding: UTF-8
823
605
  string: '{"name":"tag1","rule":["=",["fact","processorcount"],"1"]}'
@@ -846,15 +628,15 @@ http_interactions:
846
628
  Content-Length:
847
629
  - '199'
848
630
  Date:
849
- - Fri, 16 May 2014 22:18:22 GMT
631
+ - Mon, 09 Mar 2015 19:53:33 GMT
850
632
  body:
851
633
  encoding: US-ASCII
852
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8080/api/collections/tags/tag1","name":"tag1","command":"http://localhost:8080/api/collections/commands/3"}'
634
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8150/api/collections/tags/tag1","name":"tag1","command":"http://localhost:8150/api/collections/commands/3"}'
853
635
  http_version:
854
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
636
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
855
637
  - request:
856
638
  method: get
857
- uri: http://localhost:8080/api/collections/tags/tag1
639
+ uri: http://localhost:8150/api/collections/tags/tag1
858
640
  body:
859
641
  encoding: US-ASCII
860
642
  string: ''
@@ -879,15 +661,15 @@ http_interactions:
879
661
  Content-Length:
880
662
  - '382'
881
663
  Date:
882
- - Fri, 16 May 2014 22:18:22 GMT
664
+ - Mon, 09 Mar 2015 19:53:33 GMT
883
665
  body:
884
666
  encoding: US-ASCII
885
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8080/api/collections/tags/tag1","name":"tag1","rule":["=",["fact","processorcount"],"1"],"nodes":{"id":"http://localhost:8080/api/collections/tags/tag1/nodes","count":0,"name":"nodes"},"policies":{"id":"http://localhost:8080/api/collections/tags/tag1/policies","count":0,"name":"policies"}}'
667
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8150/api/collections/tags/tag1","name":"tag1","rule":["=",["fact","processorcount"],"1"],"nodes":{"id":"http://localhost:8150/api/collections/tags/tag1/nodes","count":0,"name":"nodes"},"policies":{"id":"http://localhost:8150/api/collections/tags/tag1/policies","count":0,"name":"policies"}}'
886
668
  http_version:
887
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
669
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
888
670
  - request:
889
671
  method: get
890
- uri: http://localhost:8080/api
672
+ uri: http://localhost:8150/api
891
673
  body:
892
674
  encoding: US-ASCII
893
675
  string: ''
@@ -910,17 +692,17 @@ http_interactions:
910
692
  Content-Type:
911
693
  - application/json;charset=utf-8
912
694
  Content-Length:
913
- - '4982'
695
+ - '5650'
914
696
  Date:
915
- - Fri, 16 May 2014 22:18:22 GMT
697
+ - Mon, 09 Mar 2015 19:53:33 GMT
916
698
  body:
917
699
  encoding: US-ASCII
918
- string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8080/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8080/api/commands/create-broker"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8080/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8080/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8080/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8080/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8080/api/commands/delete-broker"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8080/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8080/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8080/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8080/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8080/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8080/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8080/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:8080/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8080/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8080/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8080/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8080/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8080/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8080/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:8080/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:8080/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:8080/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8080/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8080/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8080/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8080/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8080/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8080/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8080/api/collections/nodes"},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8080/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8080/api/collections/commands"}],"version":{"server":"v0.14.1-113-g8b33d83-dirty"}}'
700
+ 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"}}'
919
701
  http_version:
920
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
702
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
921
703
  - request:
922
704
  method: get
923
- uri: http://localhost:8080/api/commands/create-tag
705
+ uri: http://localhost:8150/api/commands/create-tag
924
706
  body:
925
707
  encoding: US-ASCII
926
708
  string: ''
@@ -939,156 +721,122 @@ http_interactions:
939
721
  Server:
940
722
  - Apache-Coyote/1.1
941
723
  Etag:
942
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
724
+ - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
943
725
  X-Content-Type-Options:
944
726
  - nosniff
945
727
  Content-Type:
946
728
  - application/json;charset=utf-8
947
729
  Content-Length:
948
- - '2178'
730
+ - '4439'
949
731
  Date:
950
- - Fri, 16 May 2014 22:18:22 GMT
732
+ - Mon, 09 Mar 2015 19:53:33 GMT
951
733
  body:
952
734
  encoding: ASCII-8BIT
953
735
  string: !binary |-
954
- eyJuYW1lIjoiY3JlYXRlLXRhZyIsImhlbHAiOnsiZnVsbCI6IiMgU1lOT1BT
955
- SVNcbkNyZWF0ZSBhIG5ldyB0YWdcblxuIyBERVNDUklQVElPTlxuQ3JlYXRl
956
- IGEgbmV3IHRhZywgYW5kIHNldCB0aGUgcnVsZSBpdCB3aWxsIHVzZSB0byBt
957
- YXRjaCBvbiBmYWN0cyBhbmQgbm9kZVxubWV0YWRhdGEuXG5cblxuIyBBY2Nl
958
- c3MgQ29udHJvbFxuXG5UaGlzIGNvbW1hbmQncyBhY2Nlc3MgY29udHJvbCBw
959
- YXR0ZXJuOiBgY29tbWFuZHM6Y3JlYXRlLXRhZzole25hbWV9YFxuXG5Xb3Jk
960
- cyBzdXJyb3VuZGVkIGJ5IGAley4uLn1gIGFyZSBzdWJzdGl0dXRpb25zIGZy
961
- b20gdGhlIGlucHV0IGRhdGE6IHR5cGljYWxseVxudGhlIG5hbWUgb2YgdGhl
962
- IG9iamVjdCBiZWluZyBtb2RpZmllZCwgb3Igc29tZSBvdGhlciBjcml0aWNh
963
- bCBkZXRhaWwsIHRoZXNlXG5hbGxvdyByb2xlcyB0byBiZSBncmFudGVkIHBh
964
- cnRpYWwgYWNjZXNzIHRvIG1vZGlmeSB0aGUgc3lzdGVtLlxuXG5Gb3IgbW9y
965
- ZSBkZXRhaWwgb24gaG93IHRoZSBwZXJtaXNzaW9uIHN0cmluZ3MgYXJlIHN0
966
- cnVjdHVyZWQgYW5kIHdvcmssIHlvdSBjYW5cbnNlZSB0aGUgW1NoaXJvIFBl
967
- cm1pc3Npb25zIGRvY3VtZW50YXRpb25dW3NoaXJvXS4gIFRoYXQgcGF0dGVy
968
- biBpcyBleHBhbmRlZFxuYW5kIHRoZW4gYSBwZXJtaXNzaW9uIGNoZWNrIGFw
969
- cGxpZWQgdG8gaXQsIGJlZm9yZSB0aGUgY29tbWFuZCBpcyBhdXRob3JpemVk
970
- LlxuXG5UaGVzZSBjaGVja3Mgb25seSBhcHBseSBpZiBzZWN1cml0eSBpcyBl
971
- bmFibGVkIGluIHRoZSBSYXpvciBjb25maWd1cmF0aW9uXG5maWxlOyBvbiB0
972
- aGlzIHNlcnZlciBzZWN1cml0eSBpcyBjdXJyZW50bHkgZGlzYWJsZWQuXG5c
973
- bltzaGlyb106IGh0dHA6Ly9zaGlyby5hcGFjaGUub3JnL3Blcm1pc3Npb25z
974
- Lmh0bWxcblxuIyBBdHRyaWJ1dGVzXG5cbiAqIG5hbWVcbiAgIC0gVGhlIG5h
975
- bWUgb2YgdGhlIHRhZ1xuICAgLSBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJl
976
- ZFxuICAgLSBJdCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLlxuICAgLSBJdCBt
977
- dXN0IGJlIGJldHdlZW4gMSBhbmQgSW5maW5pdHkgaW4gbGVuZ3RoLlxuXG4g
978
- KiBydWxlXG4gICAtIFRoZSB0YWcgbWF0Y2hlcyBhIG5vZGUgaWYgZXZhbHVh
979
- dGluZyB0aGlzIHJ1biBhZ2FpbnN0IHRoZSB0YWfigJlzIGZhY3RzXG4gICBy
980
- ZXN1bHRzIGluIHRydWUuIE5vdGUgdGhhdCB0YWcgbWF0Y2hpbmcgaXMgY2Fz
981
- ZSBzZW5zaXRpdmUuXG4gICBcbiAgIEZvciBleGFtcGxlLCBoZXJlIGlzIGEg
982
- dGFnIHJ1bGU6XG4gICBcbiAgICAgICBbXCJvclwiLFxuICAgICAgICBbXCI9
983
- XCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBcImRlOmVhOmRiOmVl
984
- OmYwOjAwXCJdXG4gICAgICAgIFtcIj1cIiwgW1wiZmFjdFwiLCBcIm1hY2Fk
985
- ZHJlc3NcIl0sIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1dXG4gICBcbiAgIFRo
986
- ZSB0YWcgY291bGQgYWxzbyBiZSB3cml0dGVuIGxpa2UgdGhpczpcbiAgIFxu
987
- ICAgICAgIFtcImluXCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBc
988
- ImRlOmVhOmRiOmVlOmYwOjAwXCIsIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1c
989
- biAgIFxuICAgVGhlIHN5bnRheCBmb3IgcnVsZSBleHByZXNzaW9ucyBpcyBk
990
- ZWZpbmVkIGluXG4gICBgbGliL3Jhem9yL21hdGNoZXIucmJgLiBFeHByZXNz
991
- aW9ucyBhcmUgb2YgdGhlIGZvcm0gYFtvcCBhcmcxIGFyZzIgLi4gYXJnbl1g
992
- XG4gICB3aGVyZSBvcCBpcyBvbmUgb2YgdGhlIG9wZXJhdG9ycyBiZWxvdywg
993
- YW5kIGFyZzEgdGhyb3VnaCBhcmduIGFyZSB0aGVcbiAgIGFyZ3VtZW50cyBm
994
- b3IgdGhlIG9wZXJhdG9yLiBJZiB0aGV5IGFyZSBleHByZXNzaW9ucyB0aGVt
995
- c2VsdmVzLCB0aGV5IHdpbGxcbiAgIGJlIGV2YWx1YXRlZCBiZWZvcmUgb3Ag
996
- aXMgZXZhbHVhdGVkXG4gICAtIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVk
997
- XG4gICAtIEl0IG11c3QgYmUgb2YgdHlwZSBhcnJheS5cblxuXG5cbiMgRVhB
998
- TVBMRVNcbiAgQ3JlYXRlIGEgc2ltcGxlIHRhZzpcbiAgXG4gIHtcbiAgICBc
999
- Im5hbWVcIjogXCJzbWFsbFwiLFxuICAgIFwicnVsZVwiOiBbXCI9XCIsIFtc
1000
- ImZhY3RcIiwgXCJwcm9jZXNzb3Jjb3VudFwiXSwgXCIyXCJdXG4gIH1cblxu
1001
- In0sInNjaGVtYSI6eyJuYW1lIjp7InR5cGUiOiJzdHJpbmcifSwicnVsZSI6
1002
- eyJ0eXBlIjoiYXJyYXkifX19
736
+ eyJuYW1lIjoiY3JlYXRlLXRhZyIsImhlbHAiOnsic3VtbWFyeSI6IkNyZWF0
737
+ ZSBhIG5ldyB0YWciLCJkZXNjcmlwdGlvbiI6IkNyZWF0ZSBhIG5ldyB0YWcs
738
+ IGFuZCBzZXQgdGhlIHJ1bGUgaXQgd2lsbCB1c2UgdG8gbWF0Y2ggb24gZmFj
739
+ dHMgYW5kIG5vZGVcbm1ldGFkYXRhLiIsInNjaGVtYSI6IiMgQWNjZXNzIENv
740
+ bnRyb2xcblxuVGhpcyBjb21tYW5kJ3MgYWNjZXNzIGNvbnRyb2wgcGF0dGVy
741
+ bjogYGNvbW1hbmRzOmNyZWF0ZS10YWc6JXtuYW1lfWBcblxuV29yZHMgc3Vy
742
+ cm91bmRlZCBieSBgJXsuLi59YCBhcmUgc3Vic3RpdHV0aW9ucyBmcm9tIHRo
743
+ ZSBpbnB1dCBkYXRhOiB0eXBpY2FsbHlcbnRoZSBuYW1lIG9mIHRoZSBvYmpl
744
+ Y3QgYmVpbmcgbW9kaWZpZWQsIG9yIHNvbWUgb3RoZXIgY3JpdGljYWwgZGV0
745
+ YWlsLCB0aGVzZVxuYWxsb3cgcm9sZXMgdG8gYmUgZ3JhbnRlZCBwYXJ0aWFs
746
+ IGFjY2VzcyB0byBtb2RpZnkgdGhlIHN5c3RlbS5cblxuRm9yIG1vcmUgZGV0
747
+ YWlsIG9uIGhvdyB0aGUgcGVybWlzc2lvbiBzdHJpbmdzIGFyZSBzdHJ1Y3R1
748
+ cmVkIGFuZCB3b3JrLCB5b3UgY2FuXG5zZWUgdGhlIFtTaGlybyBQZXJtaXNz
749
+ aW9ucyBkb2N1bWVudGF0aW9uXVtzaGlyb10uICBUaGF0IHBhdHRlcm4gaXMg
750
+ ZXhwYW5kZWRcbmFuZCB0aGVuIGEgcGVybWlzc2lvbiBjaGVjayBhcHBsaWVk
751
+ IHRvIGl0LCBiZWZvcmUgdGhlIGNvbW1hbmQgaXMgYXV0aG9yaXplZC5cblxu
752
+ VGhlc2UgY2hlY2tzIG9ubHkgYXBwbHkgaWYgc2VjdXJpdHkgaXMgZW5hYmxl
753
+ ZCBpbiB0aGUgUmF6b3IgY29uZmlndXJhdGlvblxuZmlsZTsgb24gdGhpcyBz
754
+ ZXJ2ZXIgc2VjdXJpdHkgaXMgY3VycmVudGx5IGRpc2FibGVkLlxuXG5bc2hp
755
+ cm9dOiBodHRwOi8vc2hpcm8uYXBhY2hlLm9yZy9wZXJtaXNzaW9ucy5odG1s
756
+ XG5cbiMgQXR0cmlidXRlc1xuXG4gKiBuYW1lXG4gICAtIFRoZSBuYW1lIG9m
757
+ IHRoZSB0YWcuXG4gICAtIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVkLlxu
758
+ ICAgLSBJdCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLlxuICAgLSBJdCBtdXN0
759
+ IGJlIGJldHdlZW4gMSBhbmQgSW5maW5pdHkgaW4gbGVuZ3RoLlxuXG4gKiBy
760
+ dWxlXG4gICAtIFRoZSB0YWcgbWF0Y2hlcyBhIG5vZGUgaWYgZXZhbHVhdGlu
761
+ ZyB0aGlzIHJ1biBhZ2FpbnN0IHRoZSB0YWfigJlzIGZhY3RzXG4gICAgIHJl
762
+ c3VsdHMgaW4gdHJ1ZS4gTm90ZSB0aGF0IHRhZyBtYXRjaGluZyBpcyBjYXNl
763
+ IHNlbnNpdGl2ZS5cbiAgICAgXG4gICAgIEZvciBleGFtcGxlLCBoZXJlIGlz
764
+ IGEgdGFnIHJ1bGU6XG4gICAgIFxuICAgICAgICAgW1wib3JcIixcbiAgICAg
765
+ ICAgICBbXCI9XCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBcImRl
766
+ OmVhOmRiOmVlOmYwOjAwXCJdXG4gICAgICAgICAgW1wiPVwiLCBbXCJmYWN0
767
+ XCIsIFwibWFjYWRkcmVzc1wiXSwgXCJkZTplYTpkYjplZTpmMDowMVwiXV1c
768
+ biAgICAgXG4gICAgIFRoZSB0YWcgY291bGQgYWxzbyBiZSB3cml0dGVuIGxp
769
+ a2UgdGhpczpcbiAgICAgXG4gICAgICAgICBbXCJpblwiLCBbXCJmYWN0XCIs
770
+ IFwibWFjYWRkcmVzc1wiXSwgXCJkZTplYTpkYjplZTpmMDowMFwiLCBcImRl
771
+ OmVhOmRiOmVlOmYwOjAxXCJdXG4gICAgIFxuICAgICBUaGUgc3ludGF4IGZv
772
+ ciBydWxlIGV4cHJlc3Npb25zIGlzIGRlZmluZWQgaW4gYGxpYi9yYXpvci9t
773
+ YXRjaGVyLnJiYC5cbiAgICAgRXhwcmVzc2lvbnMgYXJlIG9mIHRoZSBmb3Jt
774
+ IGBbb3AgYXJnMSBhcmcyIC4uIGFyZ25dYFxuICAgICB3aGVyZSBvcCBpcyBv
775
+ bmUgb2YgdGhlIG9wZXJhdG9ycyBiZWxvdywgYW5kIGFyZzEgdGhyb3VnaCBh
776
+ cmduIGFyZSB0aGVcbiAgICAgYXJndW1lbnRzIGZvciB0aGUgb3BlcmF0b3Iu
777
+ IElmIHRoZXkgYXJlIGV4cHJlc3Npb25zIHRoZW1zZWx2ZXMsIHRoZXkgd2ls
778
+ bFxuICAgICBiZSBldmFsdWF0ZWQgYmVmb3JlIGBvcGAgaXMgZXZhbHVhdGVk
779
+ LlxuICAgLSBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJlZC5cbiAgIC0gSXQg
780
+ bXVzdCBiZSBvZiB0eXBlIGFycmF5LlxuIiwiZXhhbXBsZXMiOnsiYXBpIjoi
781
+ Q3JlYXRlIGEgc2ltcGxlIHRhZzpcblxue1xuICBcIm5hbWVcIjogXCJzbWFs
782
+ bFwiLFxuICBcInJ1bGVcIjogW1wiPVwiLCBbXCJmYWN0XCIsIFwicHJvY2Vz
783
+ c29yY291bnRcIl0sIFwiMlwiXVxufSIsImNsaSI6IkNyZWF0ZSBhIHNpbXBs
784
+ ZSB0YWc6XG5cbnJhem9yIGNyZWF0ZS10YWcgLS1uYW1lIHNtYWxsIC0tcnVs
785
+ ZSAnW1wiPVwiLCBbXCJmYWN0XCIsIFwicHJvY2Vzc29yY291bnRcIl0sIFwi
786
+ MlwiXScifSwiZnVsbCI6IiMgU1lOT1BTSVNcbkNyZWF0ZSBhIG5ldyB0YWdc
787
+ blxuIyBERVNDUklQVElPTlxuQ3JlYXRlIGEgbmV3IHRhZywgYW5kIHNldCB0
788
+ aGUgcnVsZSBpdCB3aWxsIHVzZSB0byBtYXRjaCBvbiBmYWN0cyBhbmQgbm9k
789
+ ZVxubWV0YWRhdGEuXG4jIEFjY2VzcyBDb250cm9sXG5cblRoaXMgY29tbWFu
790
+ ZCdzIGFjY2VzcyBjb250cm9sIHBhdHRlcm46IGBjb21tYW5kczpjcmVhdGUt
791
+ dGFnOiV7bmFtZX1gXG5cbldvcmRzIHN1cnJvdW5kZWQgYnkgYCV7Li4ufWAg
792
+ YXJlIHN1YnN0aXR1dGlvbnMgZnJvbSB0aGUgaW5wdXQgZGF0YTogdHlwaWNh
793
+ bGx5XG50aGUgbmFtZSBvZiB0aGUgb2JqZWN0IGJlaW5nIG1vZGlmaWVkLCBv
794
+ ciBzb21lIG90aGVyIGNyaXRpY2FsIGRldGFpbCwgdGhlc2VcbmFsbG93IHJv
795
+ bGVzIHRvIGJlIGdyYW50ZWQgcGFydGlhbCBhY2Nlc3MgdG8gbW9kaWZ5IHRo
796
+ ZSBzeXN0ZW0uXG5cbkZvciBtb3JlIGRldGFpbCBvbiBob3cgdGhlIHBlcm1p
797
+ c3Npb24gc3RyaW5ncyBhcmUgc3RydWN0dXJlZCBhbmQgd29yaywgeW91IGNh
798
+ blxuc2VlIHRoZSBbU2hpcm8gUGVybWlzc2lvbnMgZG9jdW1lbnRhdGlvbl1b
799
+ c2hpcm9dLiAgVGhhdCBwYXR0ZXJuIGlzIGV4cGFuZGVkXG5hbmQgdGhlbiBh
800
+ IHBlcm1pc3Npb24gY2hlY2sgYXBwbGllZCB0byBpdCwgYmVmb3JlIHRoZSBj
801
+ b21tYW5kIGlzIGF1dGhvcml6ZWQuXG5cblRoZXNlIGNoZWNrcyBvbmx5IGFw
802
+ cGx5IGlmIHNlY3VyaXR5IGlzIGVuYWJsZWQgaW4gdGhlIFJhem9yIGNvbmZp
803
+ Z3VyYXRpb25cbmZpbGU7IG9uIHRoaXMgc2VydmVyIHNlY3VyaXR5IGlzIGN1
804
+ cnJlbnRseSBkaXNhYmxlZC5cblxuW3NoaXJvXTogaHR0cDovL3NoaXJvLmFw
805
+ YWNoZS5vcmcvcGVybWlzc2lvbnMuaHRtbFxuXG4jIEF0dHJpYnV0ZXNcblxu
806
+ ICogbmFtZVxuICAgLSBUaGUgbmFtZSBvZiB0aGUgdGFnLlxuICAgLSBUaGlz
807
+ IGF0dHJpYnV0ZSBpcyByZXF1aXJlZC5cbiAgIC0gSXQgbXVzdCBiZSBvZiB0
808
+ eXBlIHN0cmluZy5cbiAgIC0gSXQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIElu
809
+ ZmluaXR5IGluIGxlbmd0aC5cblxuICogcnVsZVxuICAgLSBUaGUgdGFnIG1h
810
+ dGNoZXMgYSBub2RlIGlmIGV2YWx1YXRpbmcgdGhpcyBydW4gYWdhaW5zdCB0
811
+ aGUgdGFn4oCZcyBmYWN0c1xuICAgICByZXN1bHRzIGluIHRydWUuIE5vdGUg
812
+ dGhhdCB0YWcgbWF0Y2hpbmcgaXMgY2FzZSBzZW5zaXRpdmUuXG4gICAgIFxu
813
+ ICAgICBGb3IgZXhhbXBsZSwgaGVyZSBpcyBhIHRhZyBydWxlOlxuICAgICBc
814
+ biAgICAgICAgIFtcIm9yXCIsXG4gICAgICAgICAgW1wiPVwiLCBbXCJmYWN0
815
+ XCIsIFwibWFjYWRkcmVzc1wiXSwgXCJkZTplYTpkYjplZTpmMDowMFwiXVxu
816
+ ICAgICAgICAgIFtcIj1cIiwgW1wiZmFjdFwiLCBcIm1hY2FkZHJlc3NcIl0s
817
+ IFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1dXG4gICAgIFxuICAgICBUaGUgdGFn
818
+ IGNvdWxkIGFsc28gYmUgd3JpdHRlbiBsaWtlIHRoaXM6XG4gICAgIFxuICAg
819
+ ICAgICAgW1wiaW5cIiwgW1wiZmFjdFwiLCBcIm1hY2FkZHJlc3NcIl0sIFwi
820
+ ZGU6ZWE6ZGI6ZWU6ZjA6MDBcIiwgXCJkZTplYTpkYjplZTpmMDowMVwiXVxu
821
+ ICAgICBcbiAgICAgVGhlIHN5bnRheCBmb3IgcnVsZSBleHByZXNzaW9ucyBp
822
+ cyBkZWZpbmVkIGluIGBsaWIvcmF6b3IvbWF0Y2hlci5yYmAuXG4gICAgIEV4
823
+ cHJlc3Npb25zIGFyZSBvZiB0aGUgZm9ybSBgW29wIGFyZzEgYXJnMiAuLiBh
824
+ cmduXWBcbiAgICAgd2hlcmUgb3AgaXMgb25lIG9mIHRoZSBvcGVyYXRvcnMg
825
+ YmVsb3csIGFuZCBhcmcxIHRocm91Z2ggYXJnbiBhcmUgdGhlXG4gICAgIGFy
826
+ Z3VtZW50cyBmb3IgdGhlIG9wZXJhdG9yLiBJZiB0aGV5IGFyZSBleHByZXNz
827
+ aW9ucyB0aGVtc2VsdmVzLCB0aGV5IHdpbGxcbiAgICAgYmUgZXZhbHVhdGVk
828
+ IGJlZm9yZSBgb3BgIGlzIGV2YWx1YXRlZC5cbiAgIC0gVGhpcyBhdHRyaWJ1
829
+ dGUgaXMgcmVxdWlyZWQuXG4gICAtIEl0IG11c3QgYmUgb2YgdHlwZSBhcnJh
830
+ eS5cblxuIyBFWEFNUExFU1xuXG4gIENyZWF0ZSBhIHNpbXBsZSB0YWc6XG4g
831
+ IFxuICB7XG4gICAgXCJuYW1lXCI6IFwic21hbGxcIixcbiAgICBcInJ1bGVc
832
+ IjogW1wiPVwiLCBbXCJmYWN0XCIsIFwicHJvY2Vzc29yY291bnRcIl0sIFwi
833
+ MlwiXVxuICB9XG4ifSwic2NoZW1hIjp7Im5hbWUiOnsidHlwZSI6InN0cmlu
834
+ ZyJ9LCJydWxlIjp7InR5cGUiOiJhcnJheSJ9fX0=
1003
835
  http_version:
1004
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
1005
- - request:
1006
- method: get
1007
- uri: http://localhost:8080/api/commands/create-tag
1008
- body:
1009
- encoding: US-ASCII
1010
- string: ''
1011
- headers:
1012
- Accept:
1013
- - application/json
1014
- Accept-Encoding:
1015
- - gzip, deflate
1016
- User-Agent:
1017
- - Ruby
1018
- response:
1019
- status:
1020
- code: 200
1021
- message: OK
1022
- headers:
1023
- Server:
1024
- - Apache-Coyote/1.1
1025
- Etag:
1026
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1027
- X-Content-Type-Options:
1028
- - nosniff
1029
- Content-Type:
1030
- - application/json;charset=utf-8
1031
- Content-Length:
1032
- - '2178'
1033
- Date:
1034
- - Fri, 16 May 2014 22:18:22 GMT
1035
- body:
1036
- encoding: ASCII-8BIT
1037
- string: !binary |-
1038
- eyJuYW1lIjoiY3JlYXRlLXRhZyIsImhlbHAiOnsiZnVsbCI6IiMgU1lOT1BT
1039
- SVNcbkNyZWF0ZSBhIG5ldyB0YWdcblxuIyBERVNDUklQVElPTlxuQ3JlYXRl
1040
- IGEgbmV3IHRhZywgYW5kIHNldCB0aGUgcnVsZSBpdCB3aWxsIHVzZSB0byBt
1041
- YXRjaCBvbiBmYWN0cyBhbmQgbm9kZVxubWV0YWRhdGEuXG5cblxuIyBBY2Nl
1042
- c3MgQ29udHJvbFxuXG5UaGlzIGNvbW1hbmQncyBhY2Nlc3MgY29udHJvbCBw
1043
- YXR0ZXJuOiBgY29tbWFuZHM6Y3JlYXRlLXRhZzole25hbWV9YFxuXG5Xb3Jk
1044
- cyBzdXJyb3VuZGVkIGJ5IGAley4uLn1gIGFyZSBzdWJzdGl0dXRpb25zIGZy
1045
- b20gdGhlIGlucHV0IGRhdGE6IHR5cGljYWxseVxudGhlIG5hbWUgb2YgdGhl
1046
- IG9iamVjdCBiZWluZyBtb2RpZmllZCwgb3Igc29tZSBvdGhlciBjcml0aWNh
1047
- bCBkZXRhaWwsIHRoZXNlXG5hbGxvdyByb2xlcyB0byBiZSBncmFudGVkIHBh
1048
- cnRpYWwgYWNjZXNzIHRvIG1vZGlmeSB0aGUgc3lzdGVtLlxuXG5Gb3IgbW9y
1049
- ZSBkZXRhaWwgb24gaG93IHRoZSBwZXJtaXNzaW9uIHN0cmluZ3MgYXJlIHN0
1050
- cnVjdHVyZWQgYW5kIHdvcmssIHlvdSBjYW5cbnNlZSB0aGUgW1NoaXJvIFBl
1051
- cm1pc3Npb25zIGRvY3VtZW50YXRpb25dW3NoaXJvXS4gIFRoYXQgcGF0dGVy
1052
- biBpcyBleHBhbmRlZFxuYW5kIHRoZW4gYSBwZXJtaXNzaW9uIGNoZWNrIGFw
1053
- cGxpZWQgdG8gaXQsIGJlZm9yZSB0aGUgY29tbWFuZCBpcyBhdXRob3JpemVk
1054
- LlxuXG5UaGVzZSBjaGVja3Mgb25seSBhcHBseSBpZiBzZWN1cml0eSBpcyBl
1055
- bmFibGVkIGluIHRoZSBSYXpvciBjb25maWd1cmF0aW9uXG5maWxlOyBvbiB0
1056
- aGlzIHNlcnZlciBzZWN1cml0eSBpcyBjdXJyZW50bHkgZGlzYWJsZWQuXG5c
1057
- bltzaGlyb106IGh0dHA6Ly9zaGlyby5hcGFjaGUub3JnL3Blcm1pc3Npb25z
1058
- Lmh0bWxcblxuIyBBdHRyaWJ1dGVzXG5cbiAqIG5hbWVcbiAgIC0gVGhlIG5h
1059
- bWUgb2YgdGhlIHRhZ1xuICAgLSBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJl
1060
- ZFxuICAgLSBJdCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLlxuICAgLSBJdCBt
1061
- dXN0IGJlIGJldHdlZW4gMSBhbmQgSW5maW5pdHkgaW4gbGVuZ3RoLlxuXG4g
1062
- KiBydWxlXG4gICAtIFRoZSB0YWcgbWF0Y2hlcyBhIG5vZGUgaWYgZXZhbHVh
1063
- dGluZyB0aGlzIHJ1biBhZ2FpbnN0IHRoZSB0YWfigJlzIGZhY3RzXG4gICBy
1064
- ZXN1bHRzIGluIHRydWUuIE5vdGUgdGhhdCB0YWcgbWF0Y2hpbmcgaXMgY2Fz
1065
- ZSBzZW5zaXRpdmUuXG4gICBcbiAgIEZvciBleGFtcGxlLCBoZXJlIGlzIGEg
1066
- dGFnIHJ1bGU6XG4gICBcbiAgICAgICBbXCJvclwiLFxuICAgICAgICBbXCI9
1067
- XCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBcImRlOmVhOmRiOmVl
1068
- OmYwOjAwXCJdXG4gICAgICAgIFtcIj1cIiwgW1wiZmFjdFwiLCBcIm1hY2Fk
1069
- ZHJlc3NcIl0sIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1dXG4gICBcbiAgIFRo
1070
- ZSB0YWcgY291bGQgYWxzbyBiZSB3cml0dGVuIGxpa2UgdGhpczpcbiAgIFxu
1071
- ICAgICAgIFtcImluXCIsIFtcImZhY3RcIiwgXCJtYWNhZGRyZXNzXCJdLCBc
1072
- ImRlOmVhOmRiOmVlOmYwOjAwXCIsIFwiZGU6ZWE6ZGI6ZWU6ZjA6MDFcIl1c
1073
- biAgIFxuICAgVGhlIHN5bnRheCBmb3IgcnVsZSBleHByZXNzaW9ucyBpcyBk
1074
- ZWZpbmVkIGluXG4gICBgbGliL3Jhem9yL21hdGNoZXIucmJgLiBFeHByZXNz
1075
- aW9ucyBhcmUgb2YgdGhlIGZvcm0gYFtvcCBhcmcxIGFyZzIgLi4gYXJnbl1g
1076
- XG4gICB3aGVyZSBvcCBpcyBvbmUgb2YgdGhlIG9wZXJhdG9ycyBiZWxvdywg
1077
- YW5kIGFyZzEgdGhyb3VnaCBhcmduIGFyZSB0aGVcbiAgIGFyZ3VtZW50cyBm
1078
- b3IgdGhlIG9wZXJhdG9yLiBJZiB0aGV5IGFyZSBleHByZXNzaW9ucyB0aGVt
1079
- c2VsdmVzLCB0aGV5IHdpbGxcbiAgIGJlIGV2YWx1YXRlZCBiZWZvcmUgb3Ag
1080
- aXMgZXZhbHVhdGVkXG4gICAtIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVk
1081
- XG4gICAtIEl0IG11c3QgYmUgb2YgdHlwZSBhcnJheS5cblxuXG5cbiMgRVhB
1082
- TVBMRVNcbiAgQ3JlYXRlIGEgc2ltcGxlIHRhZzpcbiAgXG4gIHtcbiAgICBc
1083
- Im5hbWVcIjogXCJzbWFsbFwiLFxuICAgIFwicnVsZVwiOiBbXCI9XCIsIFtc
1084
- ImZhY3RcIiwgXCJwcm9jZXNzb3Jjb3VudFwiXSwgXCIyXCJdXG4gIH1cblxu
1085
- In0sInNjaGVtYSI6eyJuYW1lIjp7InR5cGUiOiJzdHJpbmcifSwicnVsZSI6
1086
- eyJ0eXBlIjoiYXJyYXkifX19
1087
- http_version:
1088
- recorded_at: Fri, 16 May 2014 22:18:22 GMT
836
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
1089
837
  - request:
1090
838
  method: post
1091
- uri: http://localhost:8080/api/commands/create-tag
839
+ uri: http://localhost:8150/api/commands/create-tag
1092
840
  body:
1093
841
  encoding: UTF-8
1094
842
  string: '{"name":"tag2","rule":["=",["fact","processorcount"],"2"]}'
@@ -1117,15 +865,15 @@ http_interactions:
1117
865
  Content-Length:
1118
866
  - '199'
1119
867
  Date:
1120
- - Fri, 16 May 2014 22:18:22 GMT
868
+ - Mon, 09 Mar 2015 19:53:33 GMT
1121
869
  body:
1122
870
  encoding: US-ASCII
1123
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8080/api/collections/tags/tag2","name":"tag2","command":"http://localhost:8080/api/collections/commands/4"}'
871
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8150/api/collections/tags/tag2","name":"tag2","command":"http://localhost:8150/api/collections/commands/4"}'
1124
872
  http_version:
1125
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
873
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
1126
874
  - request:
1127
875
  method: get
1128
- uri: http://localhost:8080/api/collections/tags/tag2
876
+ uri: http://localhost:8150/api/collections/tags/tag2
1129
877
  body:
1130
878
  encoding: US-ASCII
1131
879
  string: ''
@@ -1150,15 +898,15 @@ http_interactions:
1150
898
  Content-Length:
1151
899
  - '382'
1152
900
  Date:
1153
- - Fri, 16 May 2014 22:18:22 GMT
901
+ - Mon, 09 Mar 2015 19:53:33 GMT
1154
902
  body:
1155
903
  encoding: US-ASCII
1156
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8080/api/collections/tags/tag2","name":"tag2","rule":["=",["fact","processorcount"],"2"],"nodes":{"id":"http://localhost:8080/api/collections/tags/tag2/nodes","count":0,"name":"nodes"},"policies":{"id":"http://localhost:8080/api/collections/tags/tag2/policies","count":0,"name":"policies"}}'
904
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8150/api/collections/tags/tag2","name":"tag2","rule":["=",["fact","processorcount"],"2"],"nodes":{"id":"http://localhost:8150/api/collections/tags/tag2/nodes","count":0,"name":"nodes"},"policies":{"id":"http://localhost:8150/api/collections/tags/tag2/policies","count":0,"name":"policies"}}'
1157
905
  http_version:
1158
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
906
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
1159
907
  - request:
1160
908
  method: get
1161
- uri: http://localhost:8080/api
909
+ uri: http://localhost:8150/api
1162
910
  body:
1163
911
  encoding: US-ASCII
1164
912
  string: ''
@@ -1181,17 +929,17 @@ http_interactions:
1181
929
  Content-Type:
1182
930
  - application/json;charset=utf-8
1183
931
  Content-Length:
1184
- - '4982'
932
+ - '5650'
1185
933
  Date:
1186
- - Fri, 16 May 2014 22:18:22 GMT
934
+ - Mon, 09 Mar 2015 19:53:33 GMT
1187
935
  body:
1188
936
  encoding: US-ASCII
1189
- string: '{"commands":[{"name":"add-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/add-policy-tag","id":"http://localhost:8080/api/commands/add-policy-tag"},{"name":"create-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/create-broker","id":"http://localhost:8080/api/commands/create-broker"},{"name":"create-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/create-policy","id":"http://localhost:8080/api/commands/create-policy"},{"name":"create-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/create-repo","id":"http://localhost:8080/api/commands/create-repo"},{"name":"create-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/create-tag","id":"http://localhost:8080/api/commands/create-tag"},{"name":"create-task","rel":"http://api.puppetlabs.com/razor/v1/commands/create-task","id":"http://localhost:8080/api/commands/create-task"},{"name":"delete-broker","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-broker","id":"http://localhost:8080/api/commands/delete-broker"},{"name":"delete-node","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-node","id":"http://localhost:8080/api/commands/delete-node"},{"name":"delete-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-policy","id":"http://localhost:8080/api/commands/delete-policy"},{"name":"delete-repo","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-repo","id":"http://localhost:8080/api/commands/delete-repo"},{"name":"delete-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/delete-tag","id":"http://localhost:8080/api/commands/delete-tag"},{"name":"disable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/disable-policy","id":"http://localhost:8080/api/commands/disable-policy"},{"name":"enable-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/enable-policy","id":"http://localhost:8080/api/commands/enable-policy"},{"name":"modify-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/modify-node-metadata","id":"http://localhost:8080/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:8080/api/commands/modify-policy-max-count"},{"name":"move-policy","rel":"http://api.puppetlabs.com/razor/v1/commands/move-policy","id":"http://localhost:8080/api/commands/move-policy"},{"name":"reboot-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reboot-node","id":"http://localhost:8080/api/commands/reboot-node"},{"name":"register-node","rel":"http://api.puppetlabs.com/razor/v1/commands/register-node","id":"http://localhost:8080/api/commands/register-node"},{"name":"reinstall-node","rel":"http://api.puppetlabs.com/razor/v1/commands/reinstall-node","id":"http://localhost:8080/api/commands/reinstall-node"},{"name":"remove-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-node-metadata","id":"http://localhost:8080/api/commands/remove-node-metadata"},{"name":"remove-policy-tag","rel":"http://api.puppetlabs.com/razor/v1/commands/remove-policy-tag","id":"http://localhost:8080/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:8080/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:8080/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:8080/api/commands/set-node-ipmi-credentials"},{"name":"update-node-metadata","rel":"http://api.puppetlabs.com/razor/v1/commands/update-node-metadata","id":"http://localhost:8080/api/commands/update-node-metadata"},{"name":"update-tag-rule","rel":"http://api.puppetlabs.com/razor/v1/commands/update-tag-rule","id":"http://localhost:8080/api/commands/update-tag-rule"}],"collections":[{"name":"brokers","rel":"http://api.puppetlabs.com/razor/v1/collections/brokers","id":"http://localhost:8080/api/collections/brokers"},{"name":"repos","rel":"http://api.puppetlabs.com/razor/v1/collections/repos","id":"http://localhost:8080/api/collections/repos"},{"name":"tags","rel":"http://api.puppetlabs.com/razor/v1/collections/tags","id":"http://localhost:8080/api/collections/tags"},{"name":"policies","rel":"http://api.puppetlabs.com/razor/v1/collections/policies","id":"http://localhost:8080/api/collections/policies"},{"name":"nodes","rel":"http://api.puppetlabs.com/razor/v1/collections/nodes","id":"http://localhost:8080/api/collections/nodes"},{"name":"tasks","rel":"http://api.puppetlabs.com/razor/v1/collections/tasks","id":"http://localhost:8080/api/collections/tasks"},{"name":"commands","rel":"http://api.puppetlabs.com/razor/v1/collections/commands","id":"http://localhost:8080/api/collections/commands"}],"version":{"server":"v0.14.1-113-g8b33d83-dirty"}}'
937
+ 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"}}'
1190
938
  http_version:
1191
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
939
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
1192
940
  - request:
1193
941
  method: get
1194
- uri: http://localhost:8080/api/commands/create-policy
942
+ uri: http://localhost:8150/api/commands/create-policy
1195
943
  body:
1196
944
  encoding: US-ASCII
1197
945
  string: ''
@@ -1210,24 +958,24 @@ http_interactions:
1210
958
  Server:
1211
959
  - Apache-Coyote/1.1
1212
960
  Etag:
1213
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
961
+ - '"server-version-v0.16.1-18-gd3acc7a-dirty"'
1214
962
  X-Content-Type-Options:
1215
963
  - nosniff
1216
964
  Content-Type:
1217
965
  - application/json;charset=utf-8
1218
966
  Content-Length:
1219
- - '5306'
967
+ - '11193'
1220
968
  Date:
1221
- - Fri, 16 May 2014 22:18:22 GMT
969
+ - Mon, 09 Mar 2015 19:53:33 GMT
1222
970
  body:
1223
971
  encoding: US-ASCII
1224
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1225
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1226
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1227
- overall list of policies is ordered, and policies are considered in that\norder.
1228
- When a new policy is created, the entry `before` or `after` can be\nused to
1229
- put the new policy into the table before or after another\npolicy. If neither
1230
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
972
+ string: '{"name":"create-policy","help":{"summary":"Create a new policy","description":"Policies
973
+ tie together the rules, as tags, with the task and repo containing\nthe OS
974
+ to install, and the broker for post-install configuration.\n\nThe overall
975
+ list of policies is ordered, and policies are considered in that\norder. When
976
+ a new policy is created, the entry `before` or `after` can be\nused to put
977
+ the new policy into the table before or after another\npolicy. If neither
978
+ `before` or `after` are specified, the policy is\nappended to the policy table.","schema":"#
1231
979
  Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1232
980
  surrounded by `%{...}` are substitutions from the input data: typically\nthe
1233
981
  name of the object being modified, or some other critical detail, these\nallow
@@ -1238,647 +986,62 @@ http_interactions:
1238
986
  apply if security is enabled in the Razor configuration\nfile; on this server
1239
987
  security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1240
988
  Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1241
- is required\n - It must be of type string.\n - It must be between 1 and
989
+ is required.\n - It must be of type string.\n - It must be between 1 and
1242
990
  Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1243
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1244
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1245
- are performed using `${...}` syntax, and the available\n substitution names
1246
- on your server are:\n \n - id -- the internal node ID number\n - This
1247
- attribute is required\n - It must be of type string.\n - It must be between
1248
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1249
- newly installed systems. This is passed directly\n to the individual task,
1250
- rather than \"understood\" by the server, so the\n valid values are dependent
1251
- on the individual task capabilities.\n - This attribute is required\n -
1252
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1253
- * enabled\n - Is this policy enabled when first created?\n - It must be
1254
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1255
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1256
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1257
- the policy to create this policy before in the policy list.\n - It must
1258
- be of type string.\n - If present, after must not be present.\n - It must
1259
- match the name of an existing policy.\n\n * after\n - The name of the policy
1260
- to create this policy after in the policy list.\n - It must be of type string.\n -
1261
- If present, before must not be present.\n - It must match the name of an
1262
- existing policy.\n\n * tags\n - The array of names of tags that are used
1263
- for matching nodes to this policy.\n \n When a node has all these tags
1264
- matched on it, it will be a candidate\n for binding to this policy.\n -
1265
- It must be of type array.\n \n - This value must be an array.\n -
1266
- \n - This must be an array.\n - All elements must be of type string.\n -
1267
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1268
- The name of the repository containing the OS to be installed by this policy.\n This
1269
- should match the task assigned, or bad things will happen.\n - This attribute
1270
- is required\n - It must be of type string.\n - It must match the name
1271
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1272
- the node is fully installed, and is ready\n to hand off to the final configuration
1273
- management system. If you have no\n ongoing configuration management, the
1274
- supplied `noop` broker will do nothing.\n \n Please note that this is
1275
- a broker created with the `create-broker` command,\n which is distinct from
1276
- the broker types found on disk.\n - This attribute is required\n - It
1277
- must be of type string.\n - It must match the name of an existing broker.\n\n
991
+ installed nodes. This is filled\n in on a per-node basis, and then supplied
992
+ to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
993
+ are performed using `${...}` syntax, and the available\n substitution
994
+ names on your server are:\n \n - id -- the internal node ID number\n -
995
+ This attribute is required.\n - It must be of type string.\n - It must
996
+ be between 1 and Infinity in length.\n\n * root_password\n - The root password
997
+ for newly installed systems. This is passed directly\n to the individual
998
+ task, rather than \"understood\" by the server, so the\n valid values
999
+ are dependent on the individual task capabilities.\n - This attribute is
1000
+ required.\n - It must be of type string.\n - It must be between 1 and
1001
+ Infinity in length.\n\n * enabled\n - Is this policy enabled when first
1002
+ created?\n - It must be of type boolean.\n\n * max_count\n - The maximum
1003
+ number of nodes that can bind to this policy.\n If omitted, the policy
1004
+ is ''unlimited'', and no maximum is applied.\n - It must be of type number.\n\n
1005
+ * before\n - The name of the policy to create this policy before in the
1006
+ policy list.\n - It must be of type string.\n - If present, after must
1007
+ not be present.\n - It must match the name of an existing policy.\n\n *
1008
+ after\n - The name of the policy to create this policy after in the policy
1009
+ list.\n - It must be of type string.\n - If present, before must not be
1010
+ present.\n - It must match the name of an existing policy.\n\n * tags\n -
1011
+ The names of tags that are used for matching nodes to this policy.\n \n When
1012
+ a node has all these tags matched on it, it will be a candidate\n for
1013
+ binding to this policy.\n - It must be of type array.\n - All elements
1014
+ must be of type string.\n - All elements must match the name of an existing
1015
+ tag.\n\n * repo\n - The name of the repository containing the OS to be installed
1016
+ by this policy.\n This should match the task assigned, or bad things will
1017
+ happen.\n - This attribute is required.\n - It must be of type string.\n -
1018
+ It must match the name of an existing repo.\n\n * broker\n - The name of
1019
+ the broker to use when the node is fully installed, and is ready\n to
1020
+ hand off to the final configuration management system. If you have no\n ongoing
1021
+ configuration management, the supplied `noop` broker will do nothing.\n \n Please
1022
+ note that this is a broker created with the `create-broker` command,\n which
1023
+ is distinct from the broker types found on disk.\n - This attribute is required.\n -
1024
+ It must be of type string.\n - It must match the name of an existing broker.\n\n
1278
1025
  * task\n - The name of the task used to install nodes that match this policy. This
1279
- must\n match the selected repo, as it references files contained within
1280
- that repository.\n - This attribute is required\n - It must be of type
1281
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1282
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1283
- http_version:
1284
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1285
- - request:
1286
- method: get
1287
- uri: http://localhost:8080/api/commands/create-policy
1288
- body:
1289
- encoding: US-ASCII
1290
- string: ''
1291
- headers:
1292
- Accept:
1293
- - application/json
1294
- Accept-Encoding:
1295
- - gzip, deflate
1296
- User-Agent:
1297
- - Ruby
1298
- response:
1299
- status:
1300
- code: 200
1301
- message: OK
1302
- headers:
1303
- Server:
1304
- - Apache-Coyote/1.1
1305
- Etag:
1306
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1307
- X-Content-Type-Options:
1308
- - nosniff
1309
- Content-Type:
1310
- - application/json;charset=utf-8
1311
- Content-Length:
1312
- - '5306'
1313
- Date:
1314
- - Fri, 16 May 2014 22:18:22 GMT
1315
- body:
1316
- encoding: US-ASCII
1317
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1318
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1319
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1320
- overall list of policies is ordered, and policies are considered in that\norder.
1321
- When a new policy is created, the entry `before` or `after` can be\nused to
1322
- put the new policy into the table before or after another\npolicy. If neither
1323
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1324
- Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1325
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
1326
- name of the object being modified, or some other critical detail, these\nallow
1327
- roles to be granted partial access to modify the system.\n\nFor more detail
1328
- on how the permission strings are structured and work, you can\nsee the [Shiro
1329
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
1330
- check applied to it, before the command is authorized.\n\nThese checks only
1331
- apply if security is enabled in the Razor configuration\nfile; on this server
1332
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1333
- Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1334
- is required\n - It must be of type string.\n - It must be between 1 and
1335
- Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1336
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1337
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1338
- are performed using `${...}` syntax, and the available\n substitution names
1339
- on your server are:\n \n - id -- the internal node ID number\n - This
1340
- attribute is required\n - It must be of type string.\n - It must be between
1341
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1342
- newly installed systems. This is passed directly\n to the individual task,
1343
- rather than \"understood\" by the server, so the\n valid values are dependent
1344
- on the individual task capabilities.\n - This attribute is required\n -
1345
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1346
- * enabled\n - Is this policy enabled when first created?\n - It must be
1347
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1348
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1349
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1350
- the policy to create this policy before in the policy list.\n - It must
1351
- be of type string.\n - If present, after must not be present.\n - It must
1352
- match the name of an existing policy.\n\n * after\n - The name of the policy
1353
- to create this policy after in the policy list.\n - It must be of type string.\n -
1354
- If present, before must not be present.\n - It must match the name of an
1355
- existing policy.\n\n * tags\n - The array of names of tags that are used
1356
- for matching nodes to this policy.\n \n When a node has all these tags
1357
- matched on it, it will be a candidate\n for binding to this policy.\n -
1358
- It must be of type array.\n \n - This value must be an array.\n -
1359
- \n - This must be an array.\n - All elements must be of type string.\n -
1360
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1361
- The name of the repository containing the OS to be installed by this policy.\n This
1362
- should match the task assigned, or bad things will happen.\n - This attribute
1363
- is required\n - It must be of type string.\n - It must match the name
1364
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1365
- the node is fully installed, and is ready\n to hand off to the final configuration
1366
- management system. If you have no\n ongoing configuration management, the
1367
- supplied `noop` broker will do nothing.\n \n Please note that this is
1368
- a broker created with the `create-broker` command,\n which is distinct from
1369
- the broker types found on disk.\n - This attribute is required\n - It
1370
- must be of type string.\n - It must match the name of an existing broker.\n\n
1371
- * task\n - The name of the task used to install nodes that match this policy. This
1372
- must\n match the selected repo, as it references files contained within
1373
- that repository.\n - This attribute is required\n - It must be of type
1374
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1375
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1376
- http_version:
1377
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1378
- - request:
1379
- method: get
1380
- uri: http://localhost:8080/api/commands/create-policy
1381
- body:
1382
- encoding: US-ASCII
1383
- string: ''
1384
- headers:
1385
- Accept:
1386
- - application/json
1387
- Accept-Encoding:
1388
- - gzip, deflate
1389
- User-Agent:
1390
- - Ruby
1391
- response:
1392
- status:
1393
- code: 200
1394
- message: OK
1395
- headers:
1396
- Server:
1397
- - Apache-Coyote/1.1
1398
- Etag:
1399
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1400
- X-Content-Type-Options:
1401
- - nosniff
1402
- Content-Type:
1403
- - application/json;charset=utf-8
1404
- Content-Length:
1405
- - '5306'
1406
- Date:
1407
- - Fri, 16 May 2014 22:18:22 GMT
1408
- body:
1409
- encoding: US-ASCII
1410
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1411
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1412
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1413
- overall list of policies is ordered, and policies are considered in that\norder.
1414
- When a new policy is created, the entry `before` or `after` can be\nused to
1415
- put the new policy into the table before or after another\npolicy. If neither
1416
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1417
- Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1418
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
1419
- name of the object being modified, or some other critical detail, these\nallow
1420
- roles to be granted partial access to modify the system.\n\nFor more detail
1421
- on how the permission strings are structured and work, you can\nsee the [Shiro
1422
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
1423
- check applied to it, before the command is authorized.\n\nThese checks only
1424
- apply if security is enabled in the Razor configuration\nfile; on this server
1425
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1426
- Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1427
- is required\n - It must be of type string.\n - It must be between 1 and
1428
- Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1429
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1430
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1431
- are performed using `${...}` syntax, and the available\n substitution names
1432
- on your server are:\n \n - id -- the internal node ID number\n - This
1433
- attribute is required\n - It must be of type string.\n - It must be between
1434
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1435
- newly installed systems. This is passed directly\n to the individual task,
1436
- rather than \"understood\" by the server, so the\n valid values are dependent
1437
- on the individual task capabilities.\n - This attribute is required\n -
1438
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1439
- * enabled\n - Is this policy enabled when first created?\n - It must be
1440
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1441
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1442
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1443
- the policy to create this policy before in the policy list.\n - It must
1444
- be of type string.\n - If present, after must not be present.\n - It must
1445
- match the name of an existing policy.\n\n * after\n - The name of the policy
1446
- to create this policy after in the policy list.\n - It must be of type string.\n -
1447
- If present, before must not be present.\n - It must match the name of an
1448
- existing policy.\n\n * tags\n - The array of names of tags that are used
1449
- for matching nodes to this policy.\n \n When a node has all these tags
1450
- matched on it, it will be a candidate\n for binding to this policy.\n -
1451
- It must be of type array.\n \n - This value must be an array.\n -
1452
- \n - This must be an array.\n - All elements must be of type string.\n -
1453
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1454
- The name of the repository containing the OS to be installed by this policy.\n This
1455
- should match the task assigned, or bad things will happen.\n - This attribute
1456
- is required\n - It must be of type string.\n - It must match the name
1457
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1458
- the node is fully installed, and is ready\n to hand off to the final configuration
1459
- management system. If you have no\n ongoing configuration management, the
1460
- supplied `noop` broker will do nothing.\n \n Please note that this is
1461
- a broker created with the `create-broker` command,\n which is distinct from
1462
- the broker types found on disk.\n - This attribute is required\n - It
1463
- must be of type string.\n - It must match the name of an existing broker.\n\n
1464
- * task\n - The name of the task used to install nodes that match this policy. This
1465
- must\n match the selected repo, as it references files contained within
1466
- that repository.\n - This attribute is required\n - It must be of type
1467
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1468
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1469
- http_version:
1470
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1471
- - request:
1472
- method: get
1473
- uri: http://localhost:8080/api/commands/create-policy
1474
- body:
1475
- encoding: US-ASCII
1476
- string: ''
1477
- headers:
1478
- Accept:
1479
- - application/json
1480
- Accept-Encoding:
1481
- - gzip, deflate
1482
- User-Agent:
1483
- - Ruby
1484
- response:
1485
- status:
1486
- code: 200
1487
- message: OK
1488
- headers:
1489
- Server:
1490
- - Apache-Coyote/1.1
1491
- Etag:
1492
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1493
- X-Content-Type-Options:
1494
- - nosniff
1495
- Content-Type:
1496
- - application/json;charset=utf-8
1497
- Content-Length:
1498
- - '5306'
1499
- Date:
1500
- - Fri, 16 May 2014 22:18:22 GMT
1501
- body:
1502
- encoding: US-ASCII
1503
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1504
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1505
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1506
- overall list of policies is ordered, and policies are considered in that\norder.
1507
- When a new policy is created, the entry `before` or `after` can be\nused to
1508
- put the new policy into the table before or after another\npolicy. If neither
1509
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1510
- Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1511
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
1512
- name of the object being modified, or some other critical detail, these\nallow
1513
- roles to be granted partial access to modify the system.\n\nFor more detail
1514
- on how the permission strings are structured and work, you can\nsee the [Shiro
1515
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
1516
- check applied to it, before the command is authorized.\n\nThese checks only
1517
- apply if security is enabled in the Razor configuration\nfile; on this server
1518
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1519
- Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1520
- is required\n - It must be of type string.\n - It must be between 1 and
1521
- Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1522
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1523
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1524
- are performed using `${...}` syntax, and the available\n substitution names
1525
- on your server are:\n \n - id -- the internal node ID number\n - This
1526
- attribute is required\n - It must be of type string.\n - It must be between
1527
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1528
- newly installed systems. This is passed directly\n to the individual task,
1529
- rather than \"understood\" by the server, so the\n valid values are dependent
1530
- on the individual task capabilities.\n - This attribute is required\n -
1531
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1532
- * enabled\n - Is this policy enabled when first created?\n - It must be
1533
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1534
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1535
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1536
- the policy to create this policy before in the policy list.\n - It must
1537
- be of type string.\n - If present, after must not be present.\n - It must
1538
- match the name of an existing policy.\n\n * after\n - The name of the policy
1539
- to create this policy after in the policy list.\n - It must be of type string.\n -
1540
- If present, before must not be present.\n - It must match the name of an
1541
- existing policy.\n\n * tags\n - The array of names of tags that are used
1542
- for matching nodes to this policy.\n \n When a node has all these tags
1543
- matched on it, it will be a candidate\n for binding to this policy.\n -
1544
- It must be of type array.\n \n - This value must be an array.\n -
1545
- \n - This must be an array.\n - All elements must be of type string.\n -
1546
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1547
- The name of the repository containing the OS to be installed by this policy.\n This
1548
- should match the task assigned, or bad things will happen.\n - This attribute
1549
- is required\n - It must be of type string.\n - It must match the name
1550
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1551
- the node is fully installed, and is ready\n to hand off to the final configuration
1552
- management system. If you have no\n ongoing configuration management, the
1553
- supplied `noop` broker will do nothing.\n \n Please note that this is
1554
- a broker created with the `create-broker` command,\n which is distinct from
1555
- the broker types found on disk.\n - This attribute is required\n - It
1556
- must be of type string.\n - It must match the name of an existing broker.\n\n
1557
- * task\n - The name of the task used to install nodes that match this policy. This
1558
- must\n match the selected repo, as it references files contained within
1559
- that repository.\n - This attribute is required\n - It must be of type
1560
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1561
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1562
- http_version:
1563
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1564
- - request:
1565
- method: get
1566
- uri: http://localhost:8080/api/commands/create-policy
1567
- body:
1568
- encoding: US-ASCII
1569
- string: ''
1570
- headers:
1571
- Accept:
1572
- - application/json
1573
- Accept-Encoding:
1574
- - gzip, deflate
1575
- User-Agent:
1576
- - Ruby
1577
- response:
1578
- status:
1579
- code: 200
1580
- message: OK
1581
- headers:
1582
- Server:
1583
- - Apache-Coyote/1.1
1584
- Etag:
1585
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1586
- X-Content-Type-Options:
1587
- - nosniff
1588
- Content-Type:
1589
- - application/json;charset=utf-8
1590
- Content-Length:
1591
- - '5306'
1592
- Date:
1593
- - Fri, 16 May 2014 22:18:22 GMT
1594
- body:
1595
- encoding: US-ASCII
1596
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1597
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1598
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1599
- overall list of policies is ordered, and policies are considered in that\norder.
1600
- When a new policy is created, the entry `before` or `after` can be\nused to
1601
- put the new policy into the table before or after another\npolicy. If neither
1602
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1603
- Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1604
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
1605
- name of the object being modified, or some other critical detail, these\nallow
1606
- roles to be granted partial access to modify the system.\n\nFor more detail
1607
- on how the permission strings are structured and work, you can\nsee the [Shiro
1608
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
1609
- check applied to it, before the command is authorized.\n\nThese checks only
1610
- apply if security is enabled in the Razor configuration\nfile; on this server
1611
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1612
- Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1613
- is required\n - It must be of type string.\n - It must be between 1 and
1614
- Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1615
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1616
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1617
- are performed using `${...}` syntax, and the available\n substitution names
1618
- on your server are:\n \n - id -- the internal node ID number\n - This
1619
- attribute is required\n - It must be of type string.\n - It must be between
1620
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1621
- newly installed systems. This is passed directly\n to the individual task,
1622
- rather than \"understood\" by the server, so the\n valid values are dependent
1623
- on the individual task capabilities.\n - This attribute is required\n -
1624
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1625
- * enabled\n - Is this policy enabled when first created?\n - It must be
1626
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1627
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1628
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1629
- the policy to create this policy before in the policy list.\n - It must
1630
- be of type string.\n - If present, after must not be present.\n - It must
1631
- match the name of an existing policy.\n\n * after\n - The name of the policy
1632
- to create this policy after in the policy list.\n - It must be of type string.\n -
1633
- If present, before must not be present.\n - It must match the name of an
1634
- existing policy.\n\n * tags\n - The array of names of tags that are used
1635
- for matching nodes to this policy.\n \n When a node has all these tags
1636
- matched on it, it will be a candidate\n for binding to this policy.\n -
1637
- It must be of type array.\n \n - This value must be an array.\n -
1638
- \n - This must be an array.\n - All elements must be of type string.\n -
1639
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1640
- The name of the repository containing the OS to be installed by this policy.\n This
1641
- should match the task assigned, or bad things will happen.\n - This attribute
1642
- is required\n - It must be of type string.\n - It must match the name
1643
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1644
- the node is fully installed, and is ready\n to hand off to the final configuration
1645
- management system. If you have no\n ongoing configuration management, the
1646
- supplied `noop` broker will do nothing.\n \n Please note that this is
1647
- a broker created with the `create-broker` command,\n which is distinct from
1648
- the broker types found on disk.\n - This attribute is required\n - It
1649
- must be of type string.\n - It must match the name of an existing broker.\n\n
1650
- * task\n - The name of the task used to install nodes that match this policy. This
1651
- must\n match the selected repo, as it references files contained within
1652
- that repository.\n - This attribute is required\n - It must be of type
1653
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1654
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1655
- http_version:
1656
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1657
- - request:
1658
- method: get
1659
- uri: http://localhost:8080/api/commands/create-policy
1660
- body:
1661
- encoding: US-ASCII
1662
- string: ''
1663
- headers:
1664
- Accept:
1665
- - application/json
1666
- Accept-Encoding:
1667
- - gzip, deflate
1668
- User-Agent:
1669
- - Ruby
1670
- response:
1671
- status:
1672
- code: 200
1673
- message: OK
1674
- headers:
1675
- Server:
1676
- - Apache-Coyote/1.1
1677
- Etag:
1678
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1679
- X-Content-Type-Options:
1680
- - nosniff
1681
- Content-Type:
1682
- - application/json;charset=utf-8
1683
- Content-Length:
1684
- - '5306'
1685
- Date:
1686
- - Fri, 16 May 2014 22:18:22 GMT
1687
- body:
1688
- encoding: US-ASCII
1689
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1690
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1691
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1692
- overall list of policies is ordered, and policies are considered in that\norder.
1693
- When a new policy is created, the entry `before` or `after` can be\nused to
1694
- put the new policy into the table before or after another\npolicy. If neither
1695
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1696
- Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1697
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
1698
- name of the object being modified, or some other critical detail, these\nallow
1699
- roles to be granted partial access to modify the system.\n\nFor more detail
1700
- on how the permission strings are structured and work, you can\nsee the [Shiro
1701
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
1702
- check applied to it, before the command is authorized.\n\nThese checks only
1703
- apply if security is enabled in the Razor configuration\nfile; on this server
1704
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1705
- Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1706
- is required\n - It must be of type string.\n - It must be between 1 and
1707
- Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1708
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1709
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1710
- are performed using `${...}` syntax, and the available\n substitution names
1711
- on your server are:\n \n - id -- the internal node ID number\n - This
1712
- attribute is required\n - It must be of type string.\n - It must be between
1713
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1714
- newly installed systems. This is passed directly\n to the individual task,
1715
- rather than \"understood\" by the server, so the\n valid values are dependent
1716
- on the individual task capabilities.\n - This attribute is required\n -
1717
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1718
- * enabled\n - Is this policy enabled when first created?\n - It must be
1719
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1720
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1721
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1722
- the policy to create this policy before in the policy list.\n - It must
1723
- be of type string.\n - If present, after must not be present.\n - It must
1724
- match the name of an existing policy.\n\n * after\n - The name of the policy
1725
- to create this policy after in the policy list.\n - It must be of type string.\n -
1726
- If present, before must not be present.\n - It must match the name of an
1727
- existing policy.\n\n * tags\n - The array of names of tags that are used
1728
- for matching nodes to this policy.\n \n When a node has all these tags
1729
- matched on it, it will be a candidate\n for binding to this policy.\n -
1730
- It must be of type array.\n \n - This value must be an array.\n -
1731
- \n - This must be an array.\n - All elements must be of type string.\n -
1732
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1733
- The name of the repository containing the OS to be installed by this policy.\n This
1734
- should match the task assigned, or bad things will happen.\n - This attribute
1735
- is required\n - It must be of type string.\n - It must match the name
1736
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1737
- the node is fully installed, and is ready\n to hand off to the final configuration
1738
- management system. If you have no\n ongoing configuration management, the
1739
- supplied `noop` broker will do nothing.\n \n Please note that this is
1740
- a broker created with the `create-broker` command,\n which is distinct from
1741
- the broker types found on disk.\n - This attribute is required\n - It
1742
- must be of type string.\n - It must match the name of an existing broker.\n\n
1743
- * task\n - The name of the task used to install nodes that match this policy. This
1744
- must\n match the selected repo, as it references files contained within
1745
- that repository.\n - This attribute is required\n - It must be of type
1746
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1747
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1748
- http_version:
1749
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1750
- - request:
1751
- method: get
1752
- uri: http://localhost:8080/api/commands/create-policy
1753
- body:
1754
- encoding: US-ASCII
1755
- string: ''
1756
- headers:
1757
- Accept:
1758
- - application/json
1759
- Accept-Encoding:
1760
- - gzip, deflate
1761
- User-Agent:
1762
- - Ruby
1763
- response:
1764
- status:
1765
- code: 200
1766
- message: OK
1767
- headers:
1768
- Server:
1769
- - Apache-Coyote/1.1
1770
- Etag:
1771
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1772
- X-Content-Type-Options:
1773
- - nosniff
1774
- Content-Type:
1775
- - application/json;charset=utf-8
1776
- Content-Length:
1777
- - '5306'
1778
- Date:
1779
- - Fri, 16 May 2014 22:18:22 GMT
1780
- body:
1781
- encoding: US-ASCII
1782
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1783
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1784
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1785
- overall list of policies is ordered, and policies are considered in that\norder.
1786
- When a new policy is created, the entry `before` or `after` can be\nused to
1787
- put the new policy into the table before or after another\npolicy. If neither
1788
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1789
- Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1790
- surrounded by `%{...}` are substitutions from the input data: typically\nthe
1791
- name of the object being modified, or some other critical detail, these\nallow
1792
- roles to be granted partial access to modify the system.\n\nFor more detail
1793
- on how the permission strings are structured and work, you can\nsee the [Shiro
1794
- Permissions documentation][shiro]. That pattern is expanded\nand then a permission
1795
- check applied to it, before the command is authorized.\n\nThese checks only
1796
- apply if security is enabled in the Razor configuration\nfile; on this server
1797
- security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1798
- Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1799
- is required\n - It must be of type string.\n - It must be between 1 and
1800
- Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1801
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1802
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1803
- are performed using `${...}` syntax, and the available\n substitution names
1804
- on your server are:\n \n - id -- the internal node ID number\n - This
1805
- attribute is required\n - It must be of type string.\n - It must be between
1806
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1807
- newly installed systems. This is passed directly\n to the individual task,
1808
- rather than \"understood\" by the server, so the\n valid values are dependent
1809
- on the individual task capabilities.\n - This attribute is required\n -
1810
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1811
- * enabled\n - Is this policy enabled when first created?\n - It must be
1812
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1813
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1814
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1815
- the policy to create this policy before in the policy list.\n - It must
1816
- be of type string.\n - If present, after must not be present.\n - It must
1817
- match the name of an existing policy.\n\n * after\n - The name of the policy
1818
- to create this policy after in the policy list.\n - It must be of type string.\n -
1819
- If present, before must not be present.\n - It must match the name of an
1820
- existing policy.\n\n * tags\n - The array of names of tags that are used
1821
- for matching nodes to this policy.\n \n When a node has all these tags
1822
- matched on it, it will be a candidate\n for binding to this policy.\n -
1823
- It must be of type array.\n \n - This value must be an array.\n -
1824
- \n - This must be an array.\n - All elements must be of type string.\n -
1825
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1826
- The name of the repository containing the OS to be installed by this policy.\n This
1827
- should match the task assigned, or bad things will happen.\n - This attribute
1828
- is required\n - It must be of type string.\n - It must match the name
1829
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1830
- the node is fully installed, and is ready\n to hand off to the final configuration
1831
- management system. If you have no\n ongoing configuration management, the
1832
- supplied `noop` broker will do nothing.\n \n Please note that this is
1833
- a broker created with the `create-broker` command,\n which is distinct from
1834
- the broker types found on disk.\n - This attribute is required\n - It
1835
- must be of type string.\n - It must match the name of an existing broker.\n\n
1836
- * task\n - The name of the task used to install nodes that match this policy. This
1837
- must\n match the selected repo, as it references files contained within
1838
- that repository.\n - This attribute is required\n - It must be of type
1839
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1840
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1841
- http_version:
1842
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1843
- - request:
1844
- method: get
1845
- uri: http://localhost:8080/api/commands/create-policy
1846
- body:
1847
- encoding: US-ASCII
1848
- string: ''
1849
- headers:
1850
- Accept:
1851
- - application/json
1852
- Accept-Encoding:
1853
- - gzip, deflate
1854
- User-Agent:
1855
- - Ruby
1856
- response:
1857
- status:
1858
- code: 200
1859
- message: OK
1860
- headers:
1861
- Server:
1862
- - Apache-Coyote/1.1
1863
- Etag:
1864
- - '"server-version-v0.14.1-113-g8b33d83-dirty"'
1865
- X-Content-Type-Options:
1866
- - nosniff
1867
- Content-Type:
1868
- - application/json;charset=utf-8
1869
- Content-Length:
1870
- - '5306'
1871
- Date:
1872
- - Fri, 16 May 2014 22:18:22 GMT
1873
- body:
1874
- encoding: US-ASCII
1875
- string: '{"name":"create-policy","help":{"full":"# SYNOPSIS\nCreate a new policy\n\n#
1876
- DESCRIPTION\nPolicies tie together the rules, as tags, with the task and repo
1877
- containing\nthe OS to install, and the broker for post-install configuration.\n\nThe
1878
- overall list of policies is ordered, and policies are considered in that\norder.
1879
- When a new policy is created, the entry `before` or `after` can be\nused to
1880
- put the new policy into the table before or after another\npolicy. If neither
1881
- `before` or `after` are specified, the policy is\nappended to the policy table.\n\n\n#
1026
+ must\n match the selected repo, as it references files contained within
1027
+ that repository.\n - This attribute is required.\n - It must be of type
1028
+ string.\n\n * node_metadata\n - Allows a policy to apply metadata to a node
1029
+ when it binds. This is NON\n AUTHORITATIVE in that it will not replace
1030
+ existing metadata on the node\n with the same keys it will only add keys
1031
+ that are missing.\n - It must be of type object.\n","examples":{"api":"A
1032
+ sample policy installing CentOS 6.4:\n\n{\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root_password\":
1033
+ \"secret\",\n \"max_count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"],\n \"node_metadata\":
1034
+ {\"key\": \"value\"}\n}","cli":"A sample policy installing CentOS 6.4:\n\nrazor
1035
+ create-policy --name centos-for-small \\\n --repo centos-6.4 --task centos
1036
+ --broker noop \\\n --enabled --hostname \"host${id}.example.com\" \\\n --root-password
1037
+ secret --max-count 20 \\\n --before \"other policy\" --tag small --node-metadata
1038
+ key=value"},"full":"# SYNOPSIS\nCreate a new policy\n\n# DESCRIPTION\nPolicies
1039
+ tie together the rules, as tags, with the task and repo containing\nthe OS
1040
+ to install, and the broker for post-install configuration.\n\nThe overall
1041
+ list of policies is ordered, and policies are considered in that\norder. When
1042
+ a new policy is created, the entry `before` or `after` can be\nused to put
1043
+ the new policy into the table before or after another\npolicy. If neither
1044
+ `before` or `after` are specified, the policy is\nappended to the policy table.\n#
1882
1045
  Access Control\n\nThis command''s access control pattern: `commands:create-policy:%{name}`\n\nWords
1883
1046
  surrounded by `%{...}` are substitutions from the input data: typically\nthe
1884
1047
  name of the object being modified, or some other critical detail, these\nallow
@@ -1889,56 +1052,60 @@ http_interactions:
1889
1052
  apply if security is enabled in the Razor configuration\nfile; on this server
1890
1053
  security is currently disabled.\n\n[shiro]: http://shiro.apache.org/permissions.html\n\n#
1891
1054
  Attributes\n\n * name\n - The name of the policy to create.\n - This attribute
1892
- is required\n - It must be of type string.\n - It must be between 1 and
1055
+ is required.\n - It must be of type string.\n - It must be between 1 and
1893
1056
  Infinity in length.\n\n * hostname\n - The hostname pattern to use for newly
1894
- installed nodes. This is filled\n in on a per-node basis, and then supplied
1895
- to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1896
- are performed using `${...}` syntax, and the available\n substitution names
1897
- on your server are:\n \n - id -- the internal node ID number\n - This
1898
- attribute is required\n - It must be of type string.\n - It must be between
1899
- 1 and Infinity in length.\n\n * root-password\n - The root password for
1900
- newly installed systems. This is passed directly\n to the individual task,
1901
- rather than \"understood\" by the server, so the\n valid values are dependent
1902
- on the individual task capabilities.\n - This attribute is required\n -
1903
- It must be of type string.\n - It must be between 1 and Infinity in length.\n\n
1904
- * enabled\n - Is this policy enabled when first created?\n - It must be
1905
- of type boolean.\n\n * max-count\n - The maximum number of nodes that can
1906
- bind to this policy.\n If omitted, the policy is ''unlimited'', and no maximum
1907
- is applied.\n - It must be of type number.\n\n * before\n - The name of
1908
- the policy to create this policy before in the policy list.\n - It must
1909
- be of type string.\n - If present, after must not be present.\n - It must
1910
- match the name of an existing policy.\n\n * after\n - The name of the policy
1911
- to create this policy after in the policy list.\n - It must be of type string.\n -
1912
- If present, before must not be present.\n - It must match the name of an
1913
- existing policy.\n\n * tags\n - The array of names of tags that are used
1914
- for matching nodes to this policy.\n \n When a node has all these tags
1915
- matched on it, it will be a candidate\n for binding to this policy.\n -
1916
- It must be of type array.\n \n - This value must be an array.\n -
1917
- \n - This must be an array.\n - All elements must be of type string.\n -
1918
- All elements must match the name of an existing tag.\n \n \n\n * repo\n -
1919
- The name of the repository containing the OS to be installed by this policy.\n This
1920
- should match the task assigned, or bad things will happen.\n - This attribute
1921
- is required\n - It must be of type string.\n - It must match the name
1922
- of an existing repo.\n\n * broker\n - The name of the broker to use when
1923
- the node is fully installed, and is ready\n to hand off to the final configuration
1924
- management system. If you have no\n ongoing configuration management, the
1925
- supplied `noop` broker will do nothing.\n \n Please note that this is
1926
- a broker created with the `create-broker` command,\n which is distinct from
1927
- the broker types found on disk.\n - This attribute is required\n - It
1928
- must be of type string.\n - It must match the name of an existing broker.\n\n
1057
+ installed nodes. This is filled\n in on a per-node basis, and then supplied
1058
+ to the task to be configured\n appropriately on the newly installed node.\n \n Substitutions
1059
+ are performed using `${...}` syntax, and the available\n substitution
1060
+ names on your server are:\n \n - id -- the internal node ID number\n -
1061
+ This attribute is required.\n - It must be of type string.\n - It must
1062
+ be between 1 and Infinity in length.\n\n * root_password\n - The root password
1063
+ for newly installed systems. This is passed directly\n to the individual
1064
+ task, rather than \"understood\" by the server, so the\n valid values
1065
+ are dependent on the individual task capabilities.\n - This attribute is
1066
+ required.\n - It must be of type string.\n - It must be between 1 and
1067
+ Infinity in length.\n\n * enabled\n - Is this policy enabled when first
1068
+ created?\n - It must be of type boolean.\n\n * max_count\n - The maximum
1069
+ number of nodes that can bind to this policy.\n If omitted, the policy
1070
+ is ''unlimited'', and no maximum is applied.\n - It must be of type number.\n\n
1071
+ * before\n - The name of the policy to create this policy before in the
1072
+ policy list.\n - It must be of type string.\n - If present, after must
1073
+ not be present.\n - It must match the name of an existing policy.\n\n *
1074
+ after\n - The name of the policy to create this policy after in the policy
1075
+ list.\n - It must be of type string.\n - If present, before must not be
1076
+ present.\n - It must match the name of an existing policy.\n\n * tags\n -
1077
+ The names of tags that are used for matching nodes to this policy.\n \n When
1078
+ a node has all these tags matched on it, it will be a candidate\n for
1079
+ binding to this policy.\n - It must be of type array.\n - All elements
1080
+ must be of type string.\n - All elements must match the name of an existing
1081
+ tag.\n\n * repo\n - The name of the repository containing the OS to be installed
1082
+ by this policy.\n This should match the task assigned, or bad things will
1083
+ happen.\n - This attribute is required.\n - It must be of type string.\n -
1084
+ It must match the name of an existing repo.\n\n * broker\n - The name of
1085
+ the broker to use when the node is fully installed, and is ready\n to
1086
+ hand off to the final configuration management system. If you have no\n ongoing
1087
+ configuration management, the supplied `noop` broker will do nothing.\n \n Please
1088
+ note that this is a broker created with the `create-broker` command,\n which
1089
+ is distinct from the broker types found on disk.\n - This attribute is required.\n -
1090
+ It must be of type string.\n - It must match the name of an existing broker.\n\n
1929
1091
  * task\n - The name of the task used to install nodes that match this policy. This
1930
- must\n match the selected repo, as it references files contained within
1931
- that repository.\n - This attribute is required\n - It must be of type
1932
- string.\n\n\n\n# EXAMPLES\n A sample policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root-password\":
1933
- \"secret\",\n \"max-count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"]\n }\n\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root-password":{"type":"string"},"enabled":{"type":"boolean"},"max-count":{"type":"number"},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array"},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"}}}'
1092
+ must\n match the selected repo, as it references files contained within
1093
+ that repository.\n - This attribute is required.\n - It must be of type
1094
+ string.\n\n * node_metadata\n - Allows a policy to apply metadata to a node
1095
+ when it binds. This is NON\n AUTHORITATIVE in that it will not replace
1096
+ existing metadata on the node\n with the same keys it will only add keys
1097
+ that are missing.\n - It must be of type object.\n\n# EXAMPLES\n\n A sample
1098
+ policy installing CentOS 6.4:\n \n {\n \"name\": \"centos-for-small\",\n \"repo\": \"centos-6.4\",\n \"task\": \"centos\",\n \"broker\": \"noop\",\n \"enabled\": true,\n \"hostname\": \"host${id}.example.com\",\n \"root_password\":
1099
+ \"secret\",\n \"max_count\": 20,\n \"before\": \"other policy\",\n \"tags\": [\"small\"],\n \"node_metadata\":
1100
+ {\"key\": \"value\"}\n }\n"},"schema":{"name":{"type":"string"},"hostname":{"type":"string"},"root_password":{"type":"string","aliases":["root-password"]},"enabled":{"type":"boolean"},"max_count":{"type":"number","aliases":["max-count"]},"before":{"type":"string"},"after":{"type":"string"},"tags":{"type":"array","aliases":["tag"]},"repo":{"type":"string"},"broker":{"type":"string"},"task":{"type":"string"},"node_metadata":{"type":"object","aliases":["node-metadata"]}}}'
1934
1101
  http_version:
1935
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1102
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
1936
1103
  - request:
1937
1104
  method: post
1938
- uri: http://localhost:8080/api/commands/create-policy
1105
+ uri: http://localhost:8150/api/commands/create-policy
1939
1106
  body:
1940
1107
  encoding: UTF-8
1941
- string: '{"name":"test","hostname":"abc.com","root-password":"abc","task":"noop","repo":"name","broker":"puppet","tags":["tag1","tag2"]}'
1108
+ string: '{"name":"test","hostname":"abc.com","root_password":"abc","task":"noop","repo":"name","broker":"puppet","tags":["tag1","tag2"]}'
1942
1109
  headers:
1943
1110
  Accept:
1944
1111
  - application/json
@@ -1964,15 +1131,15 @@ http_interactions:
1964
1131
  Content-Length:
1965
1132
  - '207'
1966
1133
  Date:
1967
- - Fri, 16 May 2014 22:18:22 GMT
1134
+ - Mon, 09 Mar 2015 19:53:33 GMT
1968
1135
  body:
1969
1136
  encoding: US-ASCII
1970
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/policies/member","id":"http://localhost:8080/api/collections/policies/test","name":"test","command":"http://localhost:8080/api/collections/commands/5"}'
1137
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/policies/member","id":"http://localhost:8150/api/collections/policies/test","name":"test","command":"http://localhost:8150/api/collections/commands/5"}'
1971
1138
  http_version:
1972
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1139
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
1973
1140
  - request:
1974
1141
  method: get
1975
- uri: http://localhost:8080/api/collections/policies/test
1142
+ uri: http://localhost:8150/api/collections/policies/test
1976
1143
  body:
1977
1144
  encoding: US-ASCII
1978
1145
  string: ''
@@ -1997,10 +1164,10 @@ http_interactions:
1997
1164
  Content-Length:
1998
1165
  - '1071'
1999
1166
  Date:
2000
- - Fri, 16 May 2014 22:18:22 GMT
1167
+ - Mon, 09 Mar 2015 19:53:33 GMT
2001
1168
  body:
2002
1169
  encoding: US-ASCII
2003
- string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/policies/member","id":"http://localhost:8080/api/collections/policies/test","name":"test","repo":{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8080/api/collections/repos/name","name":"name"},"task":{"spec":"http://api.puppetlabs.com/razor/v1/collections/tasks/member","id":"http://localhost:8080/api/collections/tasks/noop","name":"noop"},"broker":{"spec":"http://api.puppetlabs.com/razor/v1/collections/brokers/member","id":"http://localhost:8080/api/collections/brokers/puppet","name":"puppet"},"enabled":true,"configuration":{"hostname_pattern":"abc.com","root_password":"abc"},"tags":[{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8080/api/collections/tags/tag1","name":"tag1"},{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8080/api/collections/tags/tag2","name":"tag2"}],"nodes":{"id":"http://localhost:8080/api/collections/policies/test/nodes","count":0,"name":"nodes"}}'
1170
+ string: '{"spec":"http://api.puppetlabs.com/razor/v1/collections/policies/member","id":"http://localhost:8150/api/collections/policies/test","name":"test","repo":{"spec":"http://api.puppetlabs.com/razor/v1/collections/repos/member","id":"http://localhost:8150/api/collections/repos/name","name":"name"},"task":{"spec":"http://api.puppetlabs.com/razor/v1/collections/tasks/member","id":"http://localhost:8150/api/collections/tasks/noop","name":"noop"},"broker":{"spec":"http://api.puppetlabs.com/razor/v1/collections/brokers/member","id":"http://localhost:8150/api/collections/brokers/puppet","name":"puppet"},"enabled":true,"configuration":{"hostname_pattern":"abc.com","root_password":"abc"},"tags":[{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8150/api/collections/tags/tag1","name":"tag1"},{"spec":"http://api.puppetlabs.com/razor/v1/collections/tags/member","id":"http://localhost:8150/api/collections/tags/tag2","name":"tag2"}],"nodes":{"id":"http://localhost:8150/api/collections/policies/test/nodes","count":0,"name":"nodes"}}'
2004
1171
  http_version:
2005
- recorded_at: Fri, 16 May 2014 22:18:23 GMT
1172
+ recorded_at: Mon, 09 Mar 2015 19:53:33 GMT
2006
1173
  recorded_with: VCR 2.5.0