summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints/node_endpoint.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef_zero/endpoints/node_endpoint.rb')
-rw-r--r--lib/chef_zero/endpoints/node_endpoint.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/chef_zero/endpoints/node_endpoint.rb b/lib/chef_zero/endpoints/node_endpoint.rb
index 223ec9f..f2bb8ba 100644
--- a/lib/chef_zero/endpoints/node_endpoint.rb
+++ b/lib/chef_zero/endpoints/node_endpoint.rb
@@ -6,6 +6,20 @@ module ChefZero
module Endpoints
# /nodes/ID
class NodeEndpoint < RestObjectEndpoint
+ def put(request)
+ data = parse_json(request.body)
+
+ if data.has_key?("policy_name") && policy_name_invalid?(data["policy_name"])
+ return error(400, "Field 'policy_name' invalid", :pretty => false)
+ end
+
+ if data.has_key?("policy_group") && policy_name_invalid?(data["policy_group"])
+ return error(400, "Field 'policy_group' invalid", :pretty => false)
+ end
+
+ super(request)
+ end
+
def populate_defaults(request, response_json)
node = FFI_Yajl::Parser.parse(response_json, :create_additions => false)
node = ChefData::DataNormalizer.normalize_node(node, request.rest_path[3])