summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints/containers_endpoint.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef_zero/endpoints/containers_endpoint.rb')
-rw-r--r--lib/chef_zero/endpoints/containers_endpoint.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/chef_zero/endpoints/containers_endpoint.rb b/lib/chef_zero/endpoints/containers_endpoint.rb
index 3f7af87..931fe6c 100644
--- a/lib/chef_zero/endpoints/containers_endpoint.rb
+++ b/lib/chef_zero/endpoints/containers_endpoint.rb
@@ -8,6 +8,19 @@ module ChefZero
def initialize(server)
super(server, %w(id containername))
end
+
+ # create a container.
+ # input: {"containername"=>"new-container", "containerpath"=>"/"}
+ def post(request)
+ data = parse_json(request.body)
+ # if they don't match, id wins.
+ container_name = data["id"] || data["containername"]
+ container_path_suffix = data["containerpath"].split("/").reject { |o| o.empty? }
+ container_data_path = request.rest_path + container_path_suffix
+ create_data(request, container_data_path, container_name, to_json({}), :create_dir)
+
+ json_response(201, { uri: build_uri(request.base_uri, request.rest_path + container_path_suffix + [container_name]) })
+ end
end
end
end