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

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

Instance Method Summary collapse

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



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

def create
  @salt_state = SaltModule.new(params[:state])
  process_response @salt_state.save
end

#destroyObject



44
45
46
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 44

def destroy
  process_response @salt_state.destroy
end

#importObject



53
54
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 53

def import
  states = fetch_states_from_proxy(@proxy, params[:salt_environments])

  unless params[:dryrun]
    states[:changes].each do |environment, state|
      if state[:add].present? && (params[:actions].blank? || params[:actions].include?('add'))
        add_to_environment(state[:add], environment)
      end

      if state[:remove].present? && (params[:actions].blank? || params[:actions].include?('remove'))
        remove_from_environment(state[:remove], environment)
      end
    end
    clean_orphans
  end
  render :text => states.to_json
end

#indexObject



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

def index
  if @salt_environment
    @salt_states = resource_scope_for_index.joins(:salt_environments).where('salt_module_environments.salt_environment_id' => @salt_environment)
  else
    @salt_states = 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



26
27
# File 'app/controllers/foreman_salt/api/v2/salt_states_controller.rb', line 26

def show
end