Пример #1
0
    def on_get(self, req, resp):
        start_time = time.time()

        metadata = etree.Element("ResponseMetadata")
        etree.SubElement(metadata, "RequestId").text = str(uuid.uuid4())

        owner = os.environ['REMOTE_USER']

        action = req.get_param("Action")
        if action == "CreateDomain":
            domain_name = req.get_param("DomainName")

            backend.create_domain(owner, domain_name)

            resp.status = falcon.HTTP_200  # This is the default status
            dom = etree.Element("CreateDomainResponse")
        elif action == "DeleteDomain":
            domain_name = req.get_param("DomainName")

            backend.delete_domain(owner, domain_name)

            resp.status = falcon.HTTP_200  # This is the default status
            dom = etree.Element("DeleteDomainResponse")
        elif action == "ListDomains":
            resp.status = falcon.HTTP_200
            dom = etree.Element("ListDomainsResponse")

            result = etree.SubElement(dom, "ListDomainsResult")
            for name in backend.list_domains(owner):
                domain_name = etree.SubElement(result, "DomainName")
                domain_name.text = name
        elif action == "DeleteAttributes":
            domain_name = req.get_param("DomainName")
            item_name = req.get_param("ItemName")

            deletions = utils.extract_deletions_from_query_params(req)
            expectations = utils.extract_expectations_from_query_params(req)

            backend.delete_attributes(owner, domain_name, item_name, deletions)

            resp.status = falcon.HTTP_200
            dom = etree.Element("DeleteAttributesResponse")
        elif action == "PutAttributes":
            domain_name = req.get_param("DomainName")
            item_name = req.get_param("ItemName")

            additions, replacements = utils.extract_additions_and_replacements_from_query_params(req)
            expectations = utils.extract_expectations_from_query_params(req)

            try:
                backend.put_attributes(owner, domain_name, item_name, additions,
                                       replacements, expectations)
                resp.status = falcon.HTTP_200
                dom = etree.Element("PutAttributesResponse")
            except basicdb.exceptions.APIException, e:
                resp.status = e.http_status
                dom = etree.Element(e.root_element)
Пример #2
0
    def test_extract_expectations_from_query_params(self):
        request = self._create_request({'Expected.1.Name': 'attr1',
                                        'Expected.1.Value': 'attr1val1',
                                        'Expected.3.Name': 'attr3',
                                        'Expected.3.Exists': 'true',
                                        'Expected.6.Name': 'attr6',
                                        'Expected.6.Exists': 'false'})

        expectations = utils.extract_expectations_from_query_params(request)

        self.assertEquals(expectations, set([('attr1', 'attr1val1'),
                                             ('attr3', True),
                                             ('attr6', False)]))
Пример #3
0
    def test_extract_expectations_from_query_params(self):
        request = self._create_request({
            'Expected.1.Name': 'attr1',
            'Expected.1.Value': 'attr1val1',
            'Expected.3.Name': 'attr3',
            'Expected.3.Exists': 'true',
            'Expected.6.Name': 'attr6',
            'Expected.6.Exists': 'false'
        })

        expectations = utils.extract_expectations_from_query_params(request)

        self.assertEquals(
            expectations,
            set([('attr1', 'attr1val1'), ('attr3', True), ('attr6', False)]))