Beispiel #1
0
def trigger_launch():
    aws_id, aws_key = util.read_aws_credential()
    aws_creds = {'aws_access_key_id': aws_id, 'aws_secret_access_key': aws_key}
    sqs = boto.sqs.connect_to_region(config.aws_region, **aws_creds)
    req_q = sqs.get_queue("%s_request" % config.controller)
    notify_q = sqs.get_queue("notify_%s" % config.controller)
    for q in [req_q, notify_q]:
        q.set_message_class(JSONMessage)
    msg = JSONMessage()
    msg.set_body({
        'launch-fp-as': '*****@*****.**',
        'launch-refrtok': '<redacted>',
        'launch-serial': 1
    })
    print "Sending request..."
    req_q.write(msg)
    return  # Comment out to wait for response!
    print "Awaiting response..."
    while True:
        msg = notify_q.read()
        if msg is not None:
            print "Got message: %r" % msg.get_body()
            notify_q.delete_message(msg)
            return
        sys.stdout.write(".")
        sys.stdout.flush()
Beispiel #2
0
def push(body, queue='pi-status'):
    '''
    Create a JSON-encoded boto-style Message object and write it to the queue.
    '''
    sqs = SQSConnection()
    sqs_queue = sqs.create_queue(queue)

    message = JSONMessage(body=body)
    sqs_queue.write(message)
def send_message(d):
    aws_id, aws_key = util.read_aws_credential()
    aws_creds = {'aws_access_key_id': aws_id, 'aws_secret_access_key': aws_key}
    sqs = boto.sqs.connect_to_region(config.aws_region, **aws_creds)
    req_q = sqs.get_queue("%s_request" % config.controller)
    req_q.set_message_class(JSONMessage)
    msg = JSONMessage()
    msg.set_body(d)
    print "Sending request..."
    req_q.write(msg)
    print "Sent."
Beispiel #4
0
def report_error_to_controller(error):
    sqs = boto.sqs.connect_to_region(AWS_REGION, **aws_creds)
    ctrl_notify_q = sqs.get_queue("notify_%s" % CONTROLLER)
    msg = JSONMessage()
    # DRY: SQSChecker at lantern-controller.
    msg.set_body({'fp-alarm': error,
                  'instance-id': INSTANCEID,
                  'ip': IP,
                  'port': PORT,
                  'send-email': True})
    ctrl_notify_q.write(msg)
def report(failures):
    fps_str = '\n' + '\n'.join(sorted(failures))
    log.warn("Fallbacks failed to proxy: %s" % fps_str)
    sqs = boto.sqs.connect_to_region(AWS_REGION, **aws_creds)
    report_q = sqs.get_queue("notify_%s" % CONTROLLER)
    msg = JSONMessage()
    msg.set_body({
        'fp-alarm': "Fallbacks not proxying",
        'subject': "ALARM: fallback(s) failing to proxy",
        'send-email': True,
        'ip': fps_str,
        # These fields are expected by the controller, but they
        # make no sense in this case.
        'user': "******",
        'instance-id': 'unavailable',
        'port': "n/a"
    })
    report_q.write(msg)
Beispiel #6
0
 def send_message(self, message):
     # dart always uses the JSONMessage format
     self.queue.write(JSONMessage(self.queue, message))
Beispiel #7
0
 def write_event(self, event_content):
     self._get_queue().write(JSONMessage(body=event_content))
Beispiel #8
0
    def get_queue_attributes(self):
        return {'MessageRetentionPeriod': 4 * 24 * 3600}

    def get_wait_time(self):
        return 0


SAMPLE_JSON_SQS_MSG = JSONMessage(
    body={
        'start_date': '2014-02-02',
        'end_date': '2014-02-06',
        'script_start_date_arg': '2014-02-02',
        'script_end_date_arg': '2014-02-06',
        'step': 1,
        'log_name': 'log',
        'log_schema_version': 'version',
        'hash_key': SAMPLE_RECORD_ET_STATUS_SCHEDULED['hash_key'],
        'redshift_id': 'some-id',
        'redshift_host': 'host',
        'redshift_port': 'port',
        'redshift_schema': 'rs_namespace',
        's3_path': 's3_path',
        'uuid': 'uuid',
        'additional_arguments': {},
    })

SUCCESS_RECORD = {
    'status': 'success',
    'start_time': 4,
    'end_time': 5,
    'date': '2014-02-02',
    'error_info': {}