Skip to content

Commit

Permalink
Added support for fetching configuration scripts
Browse files Browse the repository at this point in the history
The Ansible Tower Job Template and Ansible Workflows can now be fetched
using the REST API.
  • Loading branch information
mkanoor committed Jul 24, 2018
1 parent 65178b7 commit caa34a5
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 0 deletions.
4 changes: 4 additions & 0 deletions app/controllers/api/configuration_scripts_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module Api
class ConfigurationScriptsController < BaseController
end
end
14 changes: 14 additions & 0 deletions config/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -688,6 +688,20 @@
:delete:
- :name: delete
:identifier: condition_delete
:configuration_scripts:
:description: Configuration Scripts
:options:
- :collection
:verbs: *g
:klass: ConfigurationScript
:collection_actions:
:get:
- :name: read
:identifier: configuration_script_view
:resource_actions:
:get:
- :name: read
:identifier: configuration_script_view
:configuration_script_payloads:
:description: Configuration Script Payloads
:options:
Expand Down
51 changes: 51 additions & 0 deletions spec/requests/configuration_scripts_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
RSpec.describe 'Configuration Scripts API' do
describe 'GET /api/configuration_scripts' do
it 'lists all the configuration scripts with an appropriate role' do
script = FactoryGirl.create(:configuration_script)
api_basic_authorize collection_action_identifier(:configuration_scripts, :read, :get)

get(api_configuration_scripts_url)

expected = {
'count' => 1,
'subcount' => 1,
'name' => 'configuration_scripts',
'resources' => [
hash_including('href' => api_configuration_script_url(nil, script))
]
}
expect(response.parsed_body).to include(expected)
expect(response).to have_http_status(:ok)
end

it 'forbids access to configuration scripts without an appropriate role' do
api_basic_authorize

get(api_configuration_scripts_url)

expect(response).to have_http_status(:forbidden)
end
end

describe 'GET /api/configuration_scripts/:id' do
it 'will show an ansible script with an appropriate role' do
script = FactoryGirl.create(:configuration_script)
api_basic_authorize action_identifier(:configuration_scripts, :read, :resource_actions, :get)

get(api_configuration_script_url(nil, script))

expect(response.parsed_body)
.to include('href' => api_configuration_script_url(nil, script))
expect(response).to have_http_status(:ok)
end

it 'forbids access to an ansible script without an appropriate role' do
script = FactoryGirl.create(:configuration_script)
api_basic_authorize

get(api_configuration_script_url(nil, script))

expect(response).to have_http_status(:forbidden)
end
end
end

0 comments on commit caa34a5

Please sign in to comment.