foreman/app/controllers/api/v2/hostgroup_classes_controller.rb @ 9d43fc71
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
|