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