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
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())
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
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
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())
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
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
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
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') ]
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)
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)
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
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)
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()
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
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()
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)
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()
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()
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
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)
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
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()
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
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)])
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
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
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
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
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)