Ejemplo n.º 1
0
 def startElement(self, name, attrs, connection):
     if name == 'Instances':
         self.instances = ResultSet([('member', Instance)])
         return self.instances
     elif name == 'LoadBalancerNames':
         return self.load_balancers
     elif name == 'AvailabilityZones':
         return self.availability_zones
     elif name == 'EnabledMetrics':
         self.enabled_metrics = ResultSet([('member', EnabledMetric)])
         return self.enabled_metrics
     elif name == 'SuspendedProcesses':
         self.suspended_processes = ResultSet([('member', SuspendedProcess)])
         return self.suspended_processes
     elif name == 'Tags':
         self.tags = ResultSet([('member', Tag)])
         return self.tags
     else:
         return
Ejemplo n.º 2
0
    def test_get_stacks_correctly_aggregates_paged_results(
            self, cloudformation_mock):
        stacks_1 = [Mock(spec=Stack), Mock(spec=Stack)]
        stacks_2 = [Mock(spec=Stack), Mock(spec=Stack)]

        result_1 = ResultSet()
        result_1.extend(stacks_1)
        result_1.next_token = "my-next-token"

        result_2 = ResultSet()
        result_2.extend(stacks_2)
        result_2.next_token = None

        cloudformation_mock.connect_to_region.return_value.describe_stacks.side_effect = [
            result_1, result_2
        ]

        cfn = CloudFormation()
        self.assertListEqual(stacks_1 + stacks_2, cfn.get_stacks())
Ejemplo n.º 3
0
 def delete_message(self, message):
     path = '%s/%s' % (self.id, message.id)
     response = self.connection.make_request('DELETE', path)
     body = response.read()
     if response.status >= 300:
         raise SQSError(response.status, response.reason, body)
     rs = ResultSet()
     h = XmlHandler(rs, self.connection)
     xml.sax.parseString(body, h)
     return rs
Ejemplo n.º 4
0
 def startElement(self, name, attrs, connection):
     if name == 'SecurityGroups':
         return self.security_groups
     elif name == 'BlockDeviceMappings':
         self.block_device_mappings = ResultSet([('member',
                                                  BlockDeviceMapping)])
         return self.block_device_mappings
     elif name == 'InstanceMonitoring':
         self.instance_monitoring = InstanceMonitoring(self)
         return self.instance_monitoring
Ejemplo n.º 5
0
    def test_get_stacks_correctly_calls_aws_api(self, cloudformation_mock):
        stacks = [Mock(spec=Stack), Mock(spec=Stack)]

        result = ResultSet()
        result.extend(stacks)
        result.next_token = None
        cloudformation_mock.connect_to_region.return_value.describe_stacks.return_value = result

        cfn = CloudFormation()
        self.assertListEqual(stacks, cfn.get_stacks())
Ejemplo n.º 6
0
 def startElement(self, name, attrs, connection):
     retval = super(NetworkInterface,
                    self).startElement(name, attrs, connection)
     if retval is not None:
         return retval
     if name == 'groupSet':
         self.groups = ResultSet([('item', Group)])
         return self.groups
     elif name == 'attachment':
         self.attachment = Attachment()
         return self.attachment
     elif name == 'association':
         self.association = Association()
         return self.association
     elif name == 'privateIpAddressesSet':
         self.private_ip_addresses = ResultSet([('item', PrivateIPAddress)])
         return self.private_ip_addresses
     else:
         return None
Ejemplo n.º 7
0
 def startElement(self, name, attrs, connection):
     if name == 'Instances':
         self.instances = ResultSet([('member', Instance)])
         return self.instances
     elif name == 'LoadBalancerNames':
         return self.load_balancers
     elif name == 'AvailabilityZones':
         return self.availability_zones
     else:
         return
Ejemplo n.º 8
0
 def get_all_buckets(self, headers=None):
     response = self.make_request('GET', headers=headers)
     body = response.read()
     if response.status > 300:
         raise self.provider.storage_response_error(
             response.status, response.reason, body)
     rs = ResultSet([('Bucket', self.bucket_class)])
     h = handler.XmlHandler(rs, self)
     xml.sax.parseString(body, h)
     return rs
Ejemplo n.º 9
0
    def test_resultset_two_next(self):
        e1 = Mock()
        e2 = Mock()
        rs1 = ResultSet()
        rs1.append(e1)
        rs1.append(e2)
        rs1.next_token = 't1'

        e3 = Mock()
        e4 = Mock()
        rs2 = ResultSet()
        rs2.append(e3)
        rs2.append(e4)
        rs2.next_token = 't2'

        e5 = Mock()
        e6 = Mock()
        rs3 = ResultSet()
        rs3.append(e5)
        rs3.append(e6)

        func = Mock()

        results = [rs2, rs3]

        def se_invoke(f, *args, **argv):
            return results.pop(0)

        with patch('%s.invoke_with_throttling_retries' % pbm) as mock_invoke:
            mock_invoke.side_effect = se_invoke
            res = _paginate_resultset(rs1, func, 'foo', bar='barval')
        assert isinstance(res, ResultSet)
        assert len(res) == 6
        assert res[0] == e1
        assert res[1] == e2
        assert res[2] == e3
        assert res[3] == e4
        assert res[4] == e5
        assert res[5] == e6
        assert mock_invoke.mock_calls == [
            call(func, 'foo', bar='barval', next_token='t1'),
            call(func, 'foo', bar='barval', next_token='t2')
        ]
Ejemplo n.º 10
0
 def got_all_buckets(response):
     body = response.read()
     if response.status > 300:
         raise self.provider.storage_response_error(
             response.status, response.reason, body)
     rs = ResultSet([('Bucket', self.bucket_class)])
     h = handler.XmlHandler(rs, self)
     xml.sax.parseString(body, h)
     if callable(callback):
         callback(rs)
Ejemplo n.º 11
0
 def endElement(self, name, value, connection):
     # the answer consists of embedded XML, so it needs to be parsed independantly
     if name == 'Answer':
         answer_rs = ResultSet([('Answer', QuestionFormAnswer)])
         h = handler.XmlHandler(answer_rs, connection)
         value = connection.get_utf8_value(value)
         xml.sax.parseString(value, h)
         self.answers.append(answer_rs)
     else:
         super(Assignment, self).endElement(name, value, connection)
Ejemplo n.º 12
0
 def startElement(self, name, attrs, connection):
     if name == 'Endpoint':
         self._in_endpoint = True
     elif name == 'DBParameterGroups':
         self.parameter_groups = ResultSet([('DBParameterGroup',
                                             ParameterGroup)])
         return self.parameter_groups
     elif name == 'DBSecurityGroups':
         self.security_groups = ResultSet([('DBSecurityGroup',
                                            DBSecurityGroup)])
         return self.security_groups
     elif name == 'PendingModifiedValues':
         self.pending_modified_values = PendingModifiedValues()
         return self.pending_modified_values
     elif name == 'ReadReplicaDBInstanceIdentifiers':
         self.read_replica_dbinstance_identifiers = \
                 ReadReplicaDBInstanceIdentifiers()
         return self.read_replica_dbinstance_identifiers
     return None
Ejemplo n.º 13
0
    def pay(self,
            transactionAmount,
            senderTokenId,
            chargeFeeTo="Recipient",
            callerReference=None,
            senderReference=None,
            recipientReference=None,
            senderDescription=None,
            recipientDescription=None,
            callerDescription=None,
            metadata=None,
            transactionDate=None,
            reserve=False):
        """
        Make a payment transaction. You must specify the amount.
        This can also perform a Reserve request if 'reserve' is set to True.
        """
        params = {}
        params['SenderTokenId'] = senderTokenId
        params['TransactionAmount.Amount'] = str(transactionAmount)
        params['TransactionAmount.CurrencyCode'] = "USD"
        params['ChargeFeeTo'] = chargeFeeTo

        params['RecipientTokenId'] = boto.config.get("FPS", "recipient_token")
        params['CallerTokenId'] = boto.config.get("FPS", "caller_token")
        if (transactionDate != None):
            params['TransactionDate'] = transactionDate
        if (senderReference != None):
            params['SenderReference'] = senderReference
        if (recipientReference != None):
            params['RecipientReference'] = recipientReference
        if (senderDescription != None):
            params['SenderDescription'] = senderDescription
        if (recipientDescription != None):
            params['RecipientDescription'] = recipientDescription
        if (callerDescription != None):
            params['CallerDescription'] = callerDescription
        if (metadata != None):
            params['MetaData'] = metadata
        if (callerReference == None):
            callerReference = uuid.uuid4()
        params['CallerReference'] = callerReference

        if reserve:
            response = self.make_request("Reserve", params)
        else:
            response = self.make_request("Pay", params)
        body = response.read()
        if (response.status == 200):
            rs = ResultSet()
            h = handler.XmlHandler(rs, self)
            xml.sax.parseString(body, h)
            return rs
        else:
            raise FPSResponseError(response.status, response.reason, body)
Ejemplo n.º 14
0
    def test_set_rest_notification(self, with_mock):
        url = 'https://url-of-notification-route'
        hit_type_id = 'fake hittype id'
        with_mock.mturk.configure_mock(
            **{
                'set_rest_notification.return_value': ResultSet(),
            })

        with_mock.set_rest_notification(url, hit_type_id)

        with_mock.mturk.set_rest_notification.assert_called_once()
Ejemplo n.º 15
0
 def _get_all_objects(self, resource, tags):
     if not tags:
         tags=[('DistributionSummary', DistributionSummary)]
     response = self.make_request('GET', '/%s/%s' % (self.Version, resource))
     body = response.read()
     if response.status >= 300:
         raise CloudFrontServerError(response.status, response.reason, body)
     rs = ResultSet(tags)
     h = handler.XmlHandler(rs, self)
     xml.sax.parseString(body, h)
     return rs
Ejemplo n.º 16
0
 def dispose_hit(self, hit_id=None):
     with open(os.path.join(self.output_dir, "hit" + str(hit_id) + ".json"),
               'r') as f:
         hit = json.load(f)
     hit['status'] = 'Disposed'
     with open(
             os.path.join(self.output_dir,
                          "hit" + str(hit['mturk_id']) + ".json"),
             'w') as f:
         json.dump(hit, f)
     return ResultSet()
Ejemplo n.º 17
0
 def set_queue_attribute(self, queue_url, attribute, value):
     params = {'Attribute': attribute, 'Value': value}
     response = self.make_request('SetQueueAttributes', params, queue_url)
     body = response.read()
     if response.status == 200:
         rs = ResultSet()
         h = handler.XmlHandler(rs, self)
         xml.sax.parseString(body, h)
         return rs.status
     else:
         raise SQSError(response.status, response.reason, body)
Ejemplo n.º 18
0
 def expire_hit(self, hit_id=None):
     with open(os.path.join(self.output_dir, "hit" + str(hit_id) + ".json"),
               'r') as f:
         hit = json.load(f)
     hit['lifetime'] = 0
     with open(
             os.path.join(self.output_dir,
                          "hit" + str(hit['mturk_id']) + ".json"),
             'w') as f:
         json.dump(hit, f)
     return ResultSet()
Ejemplo n.º 19
0
 def set_reviewing(self, revert=False):
     with open(os.path.join(self.output_dir, "hit" + str(hit_id) + ".json"),
               'r') as f:
         hit = json.load(f)
     hit['status'] = 'Reviewable' if revert else 'Reviewing'
     with open(
             os.path.join(self.output_dir,
                          "hit" + str(hit['mturk_id']) + ".json"),
             'w') as f:
         json.dump(hit, f)
     return ResultSet()
Ejemplo n.º 20
0
 def startElement(self, name, attrs, connection):
     if name == 'Status':
         self.status = ClusterStatus()
         return self.status
     elif name == 'EC2InstanceAttributes':
         self.ec2instanceattributes = Ec2InstanceAttributes()
         return self.ec2instanceattributes
     elif name == 'Applications':
         self.applications = ResultSet([('member', Application)])
     else:
         return None
Ejemplo n.º 21
0
 def endElement(self, name, value, connection):
     # the answer consists of embedded XML, so it needs to be parsed independantly
     if name == 'Answer':
         answer_rs = ResultSet([('Answer', QuestionFormAnswer),])
         h = handler.XmlHandler(answer_rs, connection)
         # need to convert from unicode to string for sax
         value = str(value)
         xml.sax.parseString(value, h)
         self.answers.append(answer_rs)
     else:
         BaseAutoResultElement.endElement(self, name, value, connection)
Ejemplo n.º 22
0
 def startElement(self, name, attrs, connection):
     if name == 'groupSet':
         self.groups = ResultSet([('item', Group)])
         return self.groups
     elif name == 'monitoring':
         self._in_monitoring_element = True
     elif name == 'blockDeviceMapping':
         self.block_device_mapping = BlockDeviceMapping()
         return self.block_device_mapping
     else:
         return None
Ejemplo n.º 23
0
    def test_create_hit_calls_underlying_mturk_method(self, with_mock):
        with_mock.mturk.configure_mock(
            **{
                'register_hit_type.return_value': fake_hit_type_response(),
                'set_rest_notification.return_value': ResultSet(),
                'create_hit.return_value': fake_hit_response(),
            })

        with_mock.create_hit(**standard_hit_config())

        with_mock.mturk.create_hit.assert_called_once()
Ejemplo n.º 24
0
 def get_all_buckets(self, headers=None, show_accessible=None):
     query_args = 'show-accessible=%s' % ('1' if show_accessible else '0')
     response = self.make_request('GET', headers=headers, query_args=query_args)
     body = response.read()
     if response.status > 300:
         raise self.provider.storage_response_error(
             response.status, response.reason, body)
     rs = ResultSet([('Bucket', self.bucket_class)])
     h = handler.XmlHandler(rs, self)
     xml.sax.parseString(body, h)
     return rs
Ejemplo n.º 25
0
    def __init__(self, connection=None):
        """
        Represents a reference quota

        :ivar reference: Reference for the quota.
            resource id if its a resource specific quota, otherwise 'global'.
        :ivar list quotas: list of quotas.
        """
        super(ReferenceQuota, self).__init__(connection)
        self.reference = None
        self.quotas = ResultSet([('item', QuotaList)])
Ejemplo n.º 26
0
 def startElement(self, name, attrs, connection):
     if name == 'HealthCheck':
         self.health_check = HealthCheck(self)
         return self.health_check
     elif name == 'ListenerDescriptions':
         self.listeners = ResultSet([('member', Listener)])
         return self.listeners
     elif name == 'AvailabilityZones':
         return self.availability_zones
     elif name == 'Instances':
         self.instances = ResultSet([('member', InstanceInfo)])
         return self.instances
     elif name == 'Policies':
         self.policies = Policies(self)
         return self.policies
     elif name == 'SourceSecurityGroup':
         self.source_security_group = SecurityGroup()
         return self.source_security_group
     else:
         return None
Ejemplo n.º 27
0
 def get_all_buckets(self, headers=None):
     response = self.make_request('GET')
     body = response.read()
     if response.status > 300:
         raise S3ResponseError(response.status,
                               response.reason,
                               body,
                               headers=headers)
     rs = ResultSet([('Bucket', Bucket)])
     h = handler.XmlHandler(rs, self)
     xml.sax.parseString(body, h)
     return rs
Ejemplo n.º 28
0
 def startElement(self, name, attrs, connection):
     retval = TaggedEC2Object.startElement(self, name, attrs, connection)
     if retval is not None:
         return retval
     if name == 'groupSet':
         self.groups = ResultSet([('item', Group)])
         return self.groups
     elif name == 'attachment':
         self.attachment = Attachment()
         return self.attachment
     else:
         return None
Ejemplo n.º 29
0
 def startElement(self, name, attrs, connection):
     retval = TaggedEC2Object.startElement(self, name, attrs, connection)
     if retval is not None:
         return retval
     if name == 'attachmentSet':
         self.attach_data = AttachmentSet()
         return self.attach_data
     elif name == 'tagSet':
         self.tags = ResultSet([('item', Tag)])
         return self.tags
     else:
         return None
Ejemplo n.º 30
0
 def change_message_visibility(self, queue_url, message_id, vtimeout):
     params = {'MessageId': message_id, 'VisibilityTimeout': vtimeout}
     response = self.make_request('ChangeMessageVisibility', params,
                                  queue_url)
     body = response.read()
     if response.status == 200:
         rs = ResultSet()
         h = handler.XmlHandler(rs, self)
         xml.sax.parseString(body, h)
         return rs.status
     else:
         raise SQSError(response.status, response.reason, body)