Project

General

Profile

Download (1.81 KB) Statistics
| Branch: | Tag: | Revision:
aa2cd9f2 Joseph Mitchell Magen
module Api
module V2
class HostgroupClassesController < V2::BaseController
include Api::Version2

df6a9f34 Dominic Cleal
before_action :find_hostgroup, :only => [:index, :create, :destroy]
aa2cd9f2 Joseph Mitchell Magen
2656873b Martin Bačovský
api :GET, "/hostgroups/:hostgroup_id/puppetclass_ids/", N_("List all Puppet class IDs for host group")
aa2cd9f2 Joseph Mitchell Magen
def index
9d43fc71 Michael Moll
render :json => { root_node_name => HostgroupClass.where(:hostgroup_id => @hostgroup.id).pluck('puppetclass_id') }
aa2cd9f2 Joseph Mitchell Magen
end

2656873b Martin Bačovský
api :POST, "/hostgroups/:hostgroup_id/puppetclass_ids", N_("Add a Puppet class to host group")
param :hostgroup_id, String, :required => true, :desc => N_("ID of host group")
param :puppetclass_id, String, :required => true, :desc => N_("ID of Puppet class")
aa2cd9f2 Joseph Mitchell Magen
def create
8b737c9c Joseph Magen
@hostgroup_class = HostgroupClass.create!(:hostgroup_id => @hostgroup.id, :puppetclass_id => params[:puppetclass_id].to_i)
aa2cd9f2 Joseph Mitchell Magen
render :json => {:hostgroup_id => @hostgroup_class.hostgroup_id, :puppetclass_id => @hostgroup_class.puppetclass_id}
end

2656873b Martin Bačovský
api :DELETE, "/hostgroups/:hostgroup_id/puppetclass_ids/:id/", N_("Remove a Puppet class from host group")
param :hostgroup_id, String, :required => true, :desc => N_("ID of host group")
param :id, String, :required => true, :desc => N_("ID of Puppet class")
aa2cd9f2 Joseph Mitchell Magen
def destroy
8b737c9c Joseph Magen
@hostgroup_class = HostgroupClass.where(:hostgroup_id => @hostgroup.id, :puppetclass_id => params[:id])
aa2cd9f2 Joseph Mitchell Magen
process_response @hostgroup_class.destroy_all
end

private

8b737c9c Joseph Magen
def find_hostgroup
e263719a David Davis
if params[:hostgroup_id].blank?
not_found
return false
end
8b737c9c Joseph Magen
@hostgroup = Hostgroup.find(params[:hostgroup_id]) if Hostgroup.respond_to?(:authorized) &&
Hostgroup.authorized("view_hostgroup", Hostgroup)
aa2cd9f2 Joseph Mitchell Magen
end
end
end
2656873b Martin Bačovský
end