class ForemanSalt::Api::V2::SaltStatesController
def action_permission
def action_permission case params[:action] when 'import' :import else super end end
def controller_permission
def controller_permission 'salt_modules' end
def create
def create @salt_state = SaltModule.new(salt_module_params) process_response @salt_state.save end
def destroy
def destroy process_response @salt_state.destroy end
def find_environment
def find_environment return unless params[:salt_environment_id] @salt_environment = ForemanSalt::SaltEnvironment.friendly.find(params[:salt_environment_id]) raise _('Could not find salt environment with id %s') % params[:salt_environment_id] unless @salt_environment end
def import
def import states = fetch_states_from_proxy(@proxy, params[:salt_environments]) unless params[:dryrun] states[:changes].each do |environment, state| add_to_environment(state[:add], environment) if state[:add].present? && (params[:actions].blank? || params[:actions].include?('add')) if state[:remove].present? && (params[:actions].blank? || params[:actions].include?('remove')) remove_from_environment(state[:remove], environment) end end clean_orphans end render plain: states.to_json end
def index
def index @salt_states = if @salt_environment resource_scope_for_index.joins(:salt_environments) .where('salt_module_environments.salt_environment_id' => @salt_environment) else resource_scope_for_index end @subtotal = @salt_states.count end
def resource_class
def resource_class ForemanSalt::SaltModule end
def show
def show end