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'))
Example #2
0
    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'))
Example #3
0
    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)
Example #5
0
    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")
Example #7
0
def get_connection():
    conn = boto.cloudsearch2.connect_to_region(
        region_name='us-east-1',
        aws_access_key_id='AKIASDF5LFVUHMR6IU4T',
        aws_secret_access_key='heyhbU5cCdylEaYGZMOfuEP0uja9idkfplPdbiYy')

    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
Example #8
0
    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")
Example #9
0
 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'])
Example #10
0
    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'})
Example #11
0
    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]
Example #12
0
    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)
Example #13
0
    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'))
Example #14
0
    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'))
Example #15
0
    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")
Example #16
0
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()
Example #18
0
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()