Module: SQS::Job::Policy

Defined in:
lib/sqs/job/policy.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.private_variable_name(queue_name) ⇒ Object



42
43
44
# File 'lib/sqs/job/policy.rb', line 42

def private_variable_name queue_name
  [ queue_name, "signing-key/private" ].join('/')
end

.public_variable_name(queue_name) ⇒ Object



38
39
40
# File 'lib/sqs/job/policy.rb', line 38

def public_variable_name queue_name
  [ queue_name, "signing-key/public" ].join('/')
end

Instance Method Details

#can_process_job(queue_name, aws_credentials) ⇒ Object



30
31
32
33
34
35
# File 'lib/sqs/job/policy.rb', line 30

def can_process_job queue_name, aws_credentials
  can "execute", variable(SQS::Job::Policy.private_variable_name(queue_name))
  aws_credentials.each do |var|
    can "execute", var
  end
end

#can_submit_job(queue_name, aws_credentials) ⇒ Object



23
24
25
26
27
28
# File 'lib/sqs/job/policy.rb', line 23

def can_submit_job queue_name, aws_credentials
  can "execute", variable(SQS::Job::Policy.public_variable_name(queue_name))
  aws_credentials.each do |var|
    can "execute", var
  end
end

#create_signing_key_variables(queue_name) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sqs/job/policy.rb', line 3

def create_signing_key_variables queue_name
  options = {
    'mime_type' => 'application/x-pem-file'
  }
  public_key =  variable(SQS::Job::Policy.public_variable_name(queue_name),  options).tap do |v|
    v.resource.annotations['kind'] = "RSA public key"
  end
  private_key = variable(SQS::Job::Policy.private_variable_name(queue_name), options).tap do |v|
    v.resource.annotations['kind'] = "RSA private key"
  end
  [ public_key, private_key ].tap do |vars|
    vars.each do |var|
      options.each do |k,v|
        var.resource.annotations[k] = v
      end
      var.resource.annotations['facility'] = 'sqs/job'
    end
  end
end