Class: ForemanAnsibleDirector::Api::V2::LifecycleEnvironmentsController

Inherits:
AnsibleDirectorApiController show all
Includes:
Api::Version2
Defined in:
app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb

Instance Method Summary collapse

Methods inherited from AnsibleDirectorApiController

#find_organization

Instance Method Details

#assignObject

endregion



232
233
234
235
236
237
238
239
240
241
242
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 232

def assign
  if params[:id] == 'library'
    ::ForemanAnsibleDirector::LifecycleEnvironmentService.assign_library @target
  else
    lce = ::ForemanAnsibleDirector::LifecycleEnvironment.find_by(id: params[:id])
    ::ForemanAnsibleDirector::LifecycleEnvironmentService.assign(
      lce,
      @target
    )
  end
end

#contentObject

endregion



36
37
38
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 36

def content
  @full_content = Foreman::Cast.to_bool params[:full]
end

#createObject

endregion



75
76
77
78
79
80
81
82
83
84
85
86
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 75

def create
  permitted_params = lifecycle_environment_params
  position = permitted_params.delete(:position) || 0

  ::ForemanAnsibleDirector::LifecycleEnvironmentService.create_environment(
    lce_path: @lifecycle_environment_path,
    name: permitted_params[:name],
    description: permitted_params[:description],
    position: position,
    organization_id: @organization.id
  )
end

#destroyObject

endregion



247
248
249
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 247

def destroy
  ::ForemanAnsibleDirector::LifecycleEnvironmentService.destroy_environment @lifecycle_environment
end

#model_of_controllerObject



251
252
253
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 251

def model_of_controller
  resource_class
end

#resource_scopeObject



255
256
257
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 255

def resource_scope
  ::ForemanAnsibleDirector::LifecycleEnvironment.all
end

#showObject

endregion



19
20
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 19

def show
end

#updateObject

endregion



119
120
121
122
123
124
125
126
127
128
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 119

def update
  permitted_params = lifecycle_environment_update_params

  ::ForemanAnsibleDirector::LifecycleEnvironmentService.edit_environment(
    environment: @lifecycle_environment,
    name: permitted_params[:name],
    description: permitted_params[:description],
    execution_environment_id: permitted_params[:execution_environment_id]
  )
end

#update_contentObject

endregion



186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'app/controllers/foreman_ansible_director/api/v2/lifecycle_environments_controller.rb', line 186

def update_content
  content_params = content_assignments_params

  unless @lifecycle_environment.root?
    ancestor_names = @lifecycle_environment.ancestors.pluck(:name).join(', ')
    error_message = "LCE #{@lifecycle_environment.name} is not the head link in path " \
      "#{@lifecycle_environment_path.name}. It is preceded by #{ancestor_names}."

    render_error('custom_error',
      status: :unprocessable_entity,
      locals: { message: error_message })
    return
  end

  ::ForemanAnsibleDirector::LifecycleEnvironmentService.assign_content(
    @lifecycle_environment,
    content_params[:content_assignments],
    content_params[:execution_environment_id]
  )
end