Class: ForemanSalt::Api::V2::SaltStatesController

Inherits:
BaseController
  • Object
show all
Includes:
Concerns::SaltModuleParameters, StateImporter
Defined in:
app/controllers/foreman_salt/api/v2/salt_states_controller.rb

Instance Method Summary collapse

Methods included from Concerns::SaltModuleParameters

#salt_module_params

Instance Method Details

#action_permissionObject



79
80
81
82
83
84
85
86
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 79

def action_permission
  case params[:action]
  when 'import'
    :import
  else
    super
  end
end

#controller_permissionObject



71
72
73
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 71

def controller_permission
  'salt_modules'
end

#createObject



39
40
41
42
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 39

def create
  @salt_state = SaltModule.new(salt_module_params)
  process_response @salt_state.save
end

#destroyObject



46
47
48
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 46

def destroy
  process_response @salt_state.destroy
end

#importObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 55

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

#indexObject



15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 15

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

#resource_classObject



75
76
77
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 75

def resource_class
  ForemanSalt::SaltModule
end

#showObject



28
29
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 28

def show
end