Class: Debci::Runner::Debci

Inherits:
Base
  • Object
show all
Defined in:
lib/debci/runner/debci.rb

Instance Attribute Summary

Attributes inherited from Base

#job

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Debci::Runner::Base

Instance Method Details

#enqueue_parametersObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/debci/runner/debci.rb', line 18

def enqueue_parameters
  parameters = ['run-id:%s' % job.id]
  if job.trigger
    parameters << "trigger:#{CGI.escape(job.trigger)}"
  end
  Array(job.pin_packages).each do |pin|
    *pkgs, suite = pin
    parameters << "pin-packages:#{suite}=#{pkgs.join(',')}"
  end
  Array(job.extra_apt_sources).each do |name|
    src = ::Debci.extra_apt_sources_list.find(name)
    parameters << "extra-apt-source:#{Base64.strict_encode64(src.entry)}"
    parameters << "signing-key:#{Base64.strict_encode64(src.signing_key)}" if src.signing_key
  end
  if job.autopkgtest
    parameters << "autopkgtest:#{job.autopkgtest}"
  end
  parameters << "backend:#{job.backend}"
  parameters
end

#select_backendObject



7
8
9
# File 'lib/debci/runner/debci.rb', line 7

def select_backend
  ::Debci::Backend.select(job.preferred_backend, job.arch)
end

#submitObject



11
12
13
14
15
16
# File 'lib/debci/runner/debci.rb', line 11

def submit
  queue = ::Debci::AMQP.get_queue(job.arch, job.selected_backend)
  parameters = enqueue_parameters
  message = [job.package.name, job.suite, *parameters].join(" ")
  queue.publish(message, priority: job.priority)
end