def test_upload_documents_with_auth(self): layer1 = CloudSearchConnection( aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key', sign_request=True) domain = Domain(layer1=layer1, data=json.loads(self.domain_status)) document_service = domain.get_document_service() response = { 'status': 'success', 'adds': 1, 'deletes': 0, } document = { "id": "1234", "title": "Title 1", "category": ["cat_a", "cat_b", "cat_c"] } self.set_http_response(status_code=200, body=json.dumps(response)) document_service.domain_connection = self.service_connection document_service.add("1234", document) resp = document_service.commit() headers = self.actual_request.headers self.assertIsNotNone(headers.get('Authorization'))
def test_upload_documents_with_auth(self): layer1 = CloudSearchConnection(aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key', sign_request=True) domain = Domain(layer1=layer1, data=json.loads(self.domain_status)) document_service = domain.get_document_service() response = { 'status': 'success', 'adds': 1, 'deletes': 0, } document = { "id": "1234", "title": "Title 1", "category": ["cat_a", "cat_b", "cat_c"] } self.set_http_response(status_code=200, body=json.dumps(response)) document_service.domain_connection = self.service_connection document_service.add("1234", document) resp = document_service.commit() headers = self.actual_request.headers self.assertIsNotNone(headers.get('Authorization'))
def test_get_document_service(self): layer1 = CloudSearchConnection(aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key', sign_request=True) domain = Domain(layer1=layer1, data=json.loads(self.domain_status)) document_service = domain.get_document_service() self.assertEqual(document_service.sign_request, True)
def test_get_document_service(self): layer1 = CloudSearchConnection( aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key', sign_request=True) domain = Domain(layer1=layer1, data=json.loads(self.domain_status)) document_service = domain.get_document_service() self.assertEqual(document_service.sign_request, True)
def test_cloudsearch_documentservice_creation(self): self.set_http_response(status_code=200) api_response = self.service_connection.create_domain('demo') domain = Domain( self, api_response['CreateDomainResponse']['CreateDomainResult'] ['DomainStatus']) document = domain.get_document_service() self.assertEqual(document.endpoint, "doc-demo.us-east-1.cloudsearch.amazonaws.com")
def test_cloudsearch_documentservice_creation(self): self.set_http_response(status_code=200) api_response = self.service_connection.create_domain('demo') domain = Domain(self, api_response['CreateDomainResponse'] ['CreateDomainResult'] ['DomainStatus']) document = domain.get_document_service() self.assertEqual( document.endpoint, "doc-demo.us-east-1.cloudsearch.amazonaws.com")
def get_connection(): conn = boto.cloudsearch2.connect_to_region( region_name='us-east-1', aws_access_key_id='AKIASDF5LFVUHMR6IU4T', aws_secret_access_key='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') domain_data = conn.describe_domains('cs-products') domain_data = (domain_data['DescribeDomainsResponse'] ['DescribeDomainsResult']['DomainStatusList']) domain = Domain(conn, domain_data[0]) doc_service = domain.get_document_service() return domain, doc_service, conn
def test_cloudsearch_connect_result_details(self): """Check that the domain information is correctly returned from AWS""" self.set_http_response(status_code=200) api_response = self.service_connection.create_domain('demo') domain = Domain( self, api_response['CreateDomainResponse']['CreateDomainResult'] ['DomainStatus']) self.assertEqual(domain.id, "1234567890/demo") self.assertEqual(domain.name, "demo")
def create_domain(self, domain_name): """ Create a new CloudSearch domain and return the corresponding object. :return: Domain object, or None if the domain isn't found :rtype: :class:`boto.cloudsearch2.domain.Domain` """ data = self.layer1.create_domain(domain_name) return Domain( self.layer1, data['CreateDomainResponse']['CreateDomainResult']['DomainStatus'])
def test_proxy(self): conn = self.service_connection conn.proxy = "127.0.0.1" conn.proxy_user = "******" conn.proxy_pass="******" conn.proxy_port="8180" conn.use_proxy = True domain = Domain(conn, DEMO_DOMAIN_DATA) service = DocumentServiceConnection(domain=domain) self.assertEqual(service.proxy, {'http': 'http://john.doe:[email protected]:8180'})
def list_domains(self, domain_names=None): """ Return a list of objects for each domain defined in the current account. :rtype: list of :class:`boto.cloudsearch2.domain.Domain` """ domain_data = self.layer1.describe_domains(domain_names) domain_data = (domain_data['DescribeDomainsResponse'] ['DescribeDomainsResult']['DomainStatusList']) return [Domain(self.layer1, data) for data in domain_data]
def test_cloudsearch_connect_result_statuses(self): """Check that domain statuses are correctly returned from AWS""" self.set_http_response(status_code=200) api_response = self.service_connection.create_domain('demo') domain = Domain( self, api_response['CreateDomainResponse']['CreateDomainResult'] ['DomainStatus']) self.assertEqual(domain.created, True) self.assertEqual(domain.processing, False) self.assertEqual(domain.requires_index_documents, False) self.assertEqual(domain.deleted, False)
def test_search_with_auth(self): layer1 = CloudSearchConnection( aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key', sign_request=True) domain = Domain(layer1=layer1, data=json.loads(self.domain_status)) search_service = domain.get_search_service() response = { 'rank': '-text_relevance', 'match-expr': "Test", 'hits': { 'found': 30, 'start': 0, 'hit': { 'id': '12341', 'fields': { 'title': 'Document 1', 'rank': 1 } } }, 'status': { 'rid': 'b7c167f6c2da6d93531b9a7b314ad030b3a74803b4b7797edb905ba5a6a08', 'time-ms': 2, 'cpu-time-ms': 0 } } self.set_http_response(status_code=200, body=json.dumps(response).encode('utf-8')) search_service.domain_connection = self.service_connection resp = search_service.search() headers = self.actual_request.headers self.assertIsNotNone(headers.get('Authorization'))
def test_search_with_auth(self): layer1 = CloudSearchConnection(aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key', sign_request=True) domain = Domain(layer1=layer1, data=json.loads(self.domain_status)) search_service = domain.get_search_service() response = { 'rank': '-text_relevance', 'match-expr': "Test", 'hits': { 'found': 30, 'start': 0, 'hit': { 'id': '12341', 'fields': { 'title': 'Document 1', 'rank': 1 } } }, 'status': { 'rid': 'b7c167f6c2da6d93531b9a7b314ad030b3a74803b4b7797edb905ba5a6a08', 'time-ms': 2, 'cpu-time-ms': 0 } } self.set_http_response(status_code=200, body=json.dumps(response).encode('utf-8')) search_service.domain_connection = self.service_connection resp = search_service.search() headers = self.actual_request.headers self.assertIsNotNone(headers.get('Authorization'))
def test_cloudsearch_connect_result_endpoints(self): """Check that endpoints & ARNs are correctly returned from AWS""" self.set_http_response(status_code=200) api_response = self.service_connection.create_domain('demo') domain = Domain( self, api_response['CreateDomainResponse']['CreateDomainResult'] ['DomainStatus']) self.assertEqual(domain.doc_service_endpoint, "doc-demo.us-east-1.cloudsearch.amazonaws.com") self.assertEqual(domain.service_arn, "arn:aws:cs:us-east-1:1234567890:domain/demo") self.assertEqual(domain.search_service_endpoint, "search-demo.us-east-1.cloudsearch.amazonaws.com")
def query_by_structured(cs_comain, search_term, limit=10, return_fields=['_score'], region='ap-southeast-2'): cs_conn = boto.cloudsearch2.connect_to_region(region) desc_res = cs_conn.describe_domains([cs_comain]) desc = desc_res['DescribeDomainsResponse']['DescribeDomainsResult'][ 'DomainStatusList'] _domain = Domain(cs_conn, desc[0]) search_conn = boto.cloudsearch2.search.SearchConnection(_domain) search_q = search_conn.build_query(q=search_term, parser='structured', return_fields=return_fields, start=0, size=(limit if limit else 10)) results = search_conn.get_all_hits(search_q) # Returns a generator return list(results)
from boto.cloudsearch2.domain import Domain import boto.cloudsearch2 import boto3 import sys import config as c conn = boto.cloudsearch2.connect_to_region("us-east-1", aws_access_key_id=c.aws_access_key_id, aws_secret_access_key=c.aws_secret_access_key) domain_data = conn.describe_domains('sonos-companion') domain_data = (domain_data['DescribeDomainsResponse'] ['DescribeDomainsResult'] ['DomainStatusList']) domain = Domain(conn, domain_data[0]) print(domain) dynamodb = boto3.resource('dynamodb', region_name='us-east-1') table = dynamodb.Table('amazon_music') results = table.scan() items = results['Items'] n = 0 while True: cur_items = items[n:n+100] if not cur_items: break doc_service = domain.get_document_service()
from boto.cloudsearch2.domain import Domain import boto.cloudsearch2 import boto3 import sys import config as c conn = boto.cloudsearch2.connect_to_region( "us-east-1", aws_access_key_id=c.aws_access_key_id, aws_secret_access_key=c.aws_secret_access_key) domain_data = conn.describe_domains('sonos-companion') domain_data = (domain_data['DescribeDomainsResponse']['DescribeDomainsResult'] ['DomainStatusList']) domain = Domain(conn, domain_data[0]) print(domain) dynamodb = boto3.resource('dynamodb', region_name='us-east-1') table = dynamodb.Table('amazon_music') results = table.scan() items = results['Items'] n = 0 while True: cur_items = items[n:n + 100] if not cur_items: break doc_service = domain.get_document_service()