Class: Actions::Katello::Repository::UploadFiles

Inherits:
EntryAction
  • Object
show all
Defined in:
app/lib/actions/katello/repository/upload_files.rb

Instance Method Summary collapse

Instance Method Details

#finalizeObject



42
43
44
# File 'app/lib/actions/katello/repository/upload_files.rb', line 42

def finalize
  delete_tmp_files(input[:tmp_files])
end

#humanized_nameObject



38
39
40
# File 'app/lib/actions/katello/repository/upload_files.rb', line 38

def humanized_name
  _("Upload into")
end

#plan(repository, files) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/lib/actions/katello/repository/upload_files.rb', line 8

def plan(repository, files)
  action_subject(repository)
  tmp_files = prepare_tmp_files(files)
  sequence do
    concurrence do
      tmp_files.each do |file|
        sequence do
          upload_request = plan_action(Pulp::Repository::CreateUploadRequest)
          plan_action(Pulp::Repository::UploadFile,
                      upload_id: upload_request.output[:upload_id],
                      file: file[:path])
          plan_action(Pulp::Repository::ImportUpload,
                      pulp_id: repository.pulp_id,
                      unit_type_id: repository.unit_type_id,
                      unit_key: unit_key(file, repository),
                      upload_id: upload_request.output[:upload_id])
          plan_action(Pulp::Repository::DeleteUploadRequest,
                      upload_id: upload_request.output[:upload_id])
        end
      end
    end
    plan_action(FinishUpload, repository)
    plan_self(tmp_files: tmp_files)
  end
ensure
  # Delete tmp files when some exception occurred. Would be
  # nice to have other ways to do that: https://github.com/Dynflow/dynflow/issues/130
  delete_tmp_files(tmp_files) if $ERROR_INFO && tmp_files
end