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_deletions_from_query_params(self): request = self._create_request({'Attribute.1.Name': 'attr1', 'Attribute.1.Value': 'attr1val1', 'Attribute.3.Name': 'attr3', 'Attribute.3.Value': 'attr3val1', 'Attribute.6.Name': 'attr6', 'Attribute.12.Value': 'attr12val1', 'Attribute.7.Name': 'attr7', 'Attribute.7.Value': 'attr7val1', 'Attribute.7.Replace': 'true', 'Attribute.8.Foobar': 'blah'}) deletions = utils.extract_deletions_from_query_params(request) self.assertEquals(deletions, {'attr1': set(['attr1val1']), 'attr3': set(['attr3val1']), 'attr6': set([basicdb.AllAttributes]), 'attr7': set(['attr7val1'])})
def test_extract_deletions_from_query_params(self): request = self._create_request({ 'Attribute.1.Name': 'attr1', 'Attribute.1.Value': 'attr1val1', 'Attribute.3.Name': 'attr3', 'Attribute.3.Value': 'attr3val1', 'Attribute.6.Name': 'attr6', 'Attribute.12.Value': 'attr12val1', 'Attribute.7.Name': 'attr7', 'Attribute.7.Value': 'attr7val1', 'Attribute.7.Replace': 'true', 'Attribute.8.Foobar': 'blah' }) deletions = utils.extract_deletions_from_query_params(request) self.assertEquals( deletions, { 'attr1': set(['attr1val1']), 'attr3': set(['attr3val1']), 'attr6': set([basicdb.AllAttributes]), 'attr7': set(['attr7val1']) })