foreman/app/controllers/api/v2/hostgroups_controller.rb @ acfbc458
e1a1fa81 | Joseph Mitchell Magen | module Api
|
|
module V2
|
|||
dc38aad3 | Joseph Magen | class HostgroupsController < V2::BaseController
|
|
e1a1fa81 | Joseph Mitchell Magen | ||
include Api::Version2
|
|||
include Api::TaxonomyScope
|
|||
dc38aad3 | Joseph Magen | before_filter :find_resource, :only => %w{show update destroy}
|
|
api :GET, "/hostgroups/", "List all hostgroups."
|
|||
param :search, String, :desc => "filter results"
|
|||
param :order, String, :desc => "sort results"
|
|||
param :page, String, :desc => "paginate results"
|
|||
param :per_page, String, :desc => "number of entries per request"
|
|||
e1a1fa81 | Joseph Mitchell Magen | def index
|
|
acfbc458 | Marek Hulan | @hostgroups = Hostgroup.
|
|
authorized(:view_hostgroups).
|
|||
includes(:hostgroup_classes, :group_parameters).
|
|||
dc38aad3 | Joseph Magen | search_for(*search_options).paginate(paginate_options)
|
|
e1a1fa81 | Joseph Mitchell Magen | end
|
|
dc38aad3 | Joseph Magen | api :GET, "/hostgroups/:id/", "Show a hostgroup."
|
|
param :id, :identifier, :required => true
|
|||
e1a1fa81 | Joseph Mitchell Magen | def show
|
|
dc38aad3 | Joseph Magen | end
|
|
2be84f3d | Joseph Magen | def_param_group :hostgroup do
|
|
param :hostgroup, Hash, :action_aware => true do
|
|||
param :name, String, :required => true
|
|||
param :parent_id, :number
|
|||
param :environment_id, :number
|
|||
param :operatingsystem_id, :number
|
|||
param :architecture_id, :number
|
|||
param :medium_id, :number
|
|||
param :ptable_id, :number
|
|||
param :puppet_ca_proxy_id, :number
|
|||
param :subnet_id, :number
|
|||
param :domain_id, :number
|
|||
param :puppet_proxy_id, :number
|
|||
end
|
|||
dc38aad3 | Joseph Magen | end
|
|
2be84f3d | Joseph Magen | api :POST, "/hostgroups/", "Create an hostgroup."
|
|
param_group :hostgroup, :as => :create
|
|||
dc38aad3 | Joseph Magen | def create
|
|
@hostgroup = Hostgroup.new(params[:hostgroup])
|
|||
process_response @hostgroup.save
|
|||
end
|
|||
api :PUT, "/hostgroups/:id/", "Update an hostgroup."
|
|||
param :id, :identifier, :required => true
|
|||
2be84f3d | Joseph Magen | param_group :hostgroup
|
|
dc38aad3 | Joseph Magen | ||
def update
|
|||
process_response @hostgroup.update_attributes(params[:hostgroup])
|
|||
end
|
|||
api :DELETE, "/hostgroups/:id/", "Delete an hostgroup."
|
|||
param :id, :identifier, :required => true
|
|||
def destroy
|
|||
8c68024a | Daniel Lobato | if @hostgroup.has_children?
|
|
832c0925 | Joseph Magen | render :json => {'message'=> _("Cannot delete group %{current} because it has nested groups.") % { :current => @hostgroup.title } }, :status => :conflict
|
|
8c68024a | Daniel Lobato | else
|
|
process_response @hostgroup.destroy
|
|||
end
|
|||
e1a1fa81 | Joseph Mitchell Magen | end
|
|
end
|
|||
end
|
|||
end
|