Beispiel #1
0
    def get_listener_credentials(self,
                                 stack_name,
                                 listener_id=None,
                                 request_credentials=None):
        """
        Calls GetListenerCredentials and returns a Credentials object

        Throws an IOError on failure.
        """
        log.debug("Get listener credentials for listener %s in stack %s",
                  listener_id, stack_name)

        params = {
            "Action": "GetListenerCredentials",
            "StackName": stack_name,
            "ContentType": "JSON"
        }

        if not self.using_instance_identity:
            params["ListenerId"] = listener_id

        resp = self._call(params, request_credentials=request_credentials)
        body = util.json_from_response(resp)['GetListenerCredentialsResponse'][
            'GetListenerCredentialsResult']['Credentials']
        return Credentials(
            body['AccessKeyId'], body['SecretAccessKey'], body['SessionToken'],
            datetime.datetime.utcfromtimestamp(body['Expiration']))
Beispiel #2
0
    def elect_command_leader(self,
                             stack_name,
                             command_name,
                             invocation_id,
                             listener_id=None,
                             request_credentials=None):
        """
        Calls ElectCommandLeader and returns the listener id of the leader

        Throws an IOError on failure.
        """
        log.debug(
            "Attempting to elect '%s' as leader for stack: %s, command: %s, invocation: %s",
            listener_id, stack_name, command_name, invocation_id)

        params = {
            "Action": "ElectCommandLeader",
            "CommandName": command_name,
            "InvocationId": invocation_id,
            "StackName": stack_name,
            "ContentType": "JSON"
        }

        if not self.using_instance_identity:
            params["ListenerId"] = listener_id

        result_data = util.json_from_response(
            self._call(params, request_credentials=request_credentials))

        return result_data['ElectCommandLeaderResponse'][
            'ElectCommandLeaderResult']['ListenerId']
Beispiel #3
0
    def _extract_json_message(resp):
        try:
            eDoc = util.json_from_response(resp)['Error']
            code = eDoc['Code']
            message = eDoc['Message']
            error_type = eDoc['Type']

            return AwsQueryError(resp.status_code, code, error_type, message)
        except (TypeError, AttributeError, KeyError, ValueError):
            return AwsQueryError(resp.status_code, 'Unknown', 'Receiver', resp.text)
    def _extract_json_message(resp):
        try:
            eDoc = util.json_from_response(resp)['Error']
            code = eDoc['Code']
            message = eDoc['Message']
            error_type = eDoc['Type']

            return AwsQueryError(resp.status_code, code, error_type, message)
        except (TypeError, AttributeError, KeyError, ValueError):
            return AwsQueryError(resp.status_code, 'Unknown', 'Receiver', resp.text)
Beispiel #5
0
    def __init__(self, resp):

        detail = util.json_from_response(resp)['DescribeStackResourceResponse']['DescribeStackResourceResult']['StackResourceDetail']

        self._description = detail.get('Description')
        self._lastUpdated = datetime.datetime.utcfromtimestamp(detail['LastUpdatedTimestamp'])
        self._logicalResourceId = detail['LogicalResourceId']
        _rawMetadata = detail.get('Metadata')
        self._metadata = json.loads(_rawMetadata) if _rawMetadata else None

        self._physicalResourceId = detail.get('PhysicalResourceId')
        self._resourceType = detail['ResourceType']
        self._resourceStatus = detail['ResourceStatus']
        self._resourceStatusReason = detail.get('ResourceStatusReason')
        self._stackId = detail.get('StackId')
        self._stackName = detail.get('StackName')
    def __init__(self, resp):
        detail = util.json_from_response(resp)['DescribeStackResourceResponse']['DescribeStackResourceResult']['StackResourceDetail']

        self._description = detail.get('Description')
        self._lastUpdated = datetime.datetime.utcfromtimestamp(detail['LastUpdatedTimestamp'])
        self._logicalResourceId = detail['LogicalResourceId']

        _rawMetadata = detail.get('Metadata')
        self._metadata = json.loads(_rawMetadata) if _rawMetadata else None

        self._physicalResourceId = detail.get('PhysicalResourceId')
        self._resourceType = detail['ResourceType']
        self._resourceStatus = detail['ResourceStatus']
        self._resourceStatusReason = detail.get('ResourceStatusReason')
        self._stackId = detail.get('StackId')
        self._stackName = detail.get('StackName')
Beispiel #7
0
    def get_listener_credentials(self, stack_name, listener_id=None, request_credentials=None):
        """
        Calls GetListenerCredentials and returns a Credentials object

        Throws an IOError on failure.
        """
        log.debug("Get listener credentials for listener %s in stack %s", listener_id, stack_name)

        params = {"Action" : "GetListenerCredentials",
                  "StackName" : stack_name,
                  "ContentType" : "JSON"}

        if not self.using_instance_identity:
            params["ListenerId"] = listener_id

        resp = self._call(params, request_credentials = request_credentials)
        body = util.json_from_response(resp)['GetListenerCredentialsResponse']['GetListenerCredentialsResult']['Credentials']
        return Credentials(body['AccessKeyId'],
            body['SecretAccessKey'],
            body['SessionToken'],
            datetime.datetime.utcfromtimestamp(body['Expiration']))
Beispiel #8
0
    def elect_command_leader(self, stack_name, command_name, invocation_id, listener_id=None, request_credentials=None):
        """
        Calls ElectCommandLeader and returns the listener id of the leader

        Throws an IOError on failure.
        """
        log.debug("Attempting to elect '%s' as leader for stack: %s, command: %s, invocation: %s",
                  listener_id, stack_name, command_name, invocation_id)

        params = {"Action" : "ElectCommandLeader",
                  "CommandName" : command_name,
                  "InvocationId" : invocation_id,
                  "StackName" : stack_name,
                  "ContentType" : "JSON"}

        if not self.using_instance_identity:
            params["ListenerId"] = listener_id

        result_data = util.json_from_response(self._call(params, request_credentials = request_credentials))

        return result_data['ElectCommandLeaderResponse']['ElectCommandLeaderResult']['ListenerId']
Beispiel #9
0
 def __init__(self, resp):
     result = util.json_from_response(resp)['RegisterListenerResponse']['RegisterListenerResult']
     self._queue_url = result['QueueUrl']
Beispiel #10
0
 def __init__(self, resp):
     result = util.json_from_response(resp)['RegisterListenerResponse']['RegisterListenerResult']
     self._queue_url = result['QueueUrl']
Beispiel #11
0
 def from_response(cls, resp):
     body = util.json_from_response(resp)['GetListenerCredentialsResponse']['GetListenerCredentialsResult']['Credentials']
     return Credentials(body['AccessKeyId'],
                        body['SecretAccessKey'],
                        body['SessionToken'],
                        datetime.datetime.utcfromtimestamp(body['Expiration']))