blob: 93c75780350942385e0685e41ddb65a2ff80f9e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
require 'json'
require 'chef_zero/endpoints/cookbooks_base'
module ChefZero
module Endpoints
# /environments/NAME/roles/NAME
# /roles/NAME/environments/NAME
class EnvironmentRoleEndpoint < CookbooksBase
def get(request)
# 404 if environment does not exist
if request.rest_path[2] == 'environments'
environment_path = request.rest_path[0..1] + request.rest_path[2..3]
role_path = request.rest_path[0..1] + request.rest_path[4..5]
else
environment_path = request.rest_path[0..1] + request.rest_path[4..5]
role_path = request.rest_path[0..1] + request.rest_path[2..3]
end
# Verify that the environment exists
get_data(request, environment_path)
role = JSON.parse(get_data(request, role_path), :create_additions => false)
environment_name = environment_path[3]
if environment_name == '_default'
run_list = role['run_list']
else
if role['env_run_lists']
run_list = role['env_run_lists'][environment_name]
else
run_list = nil
end
end
json_response(200, { 'run_list' => run_list })
end
end
end
end
|