)]}'
{"designate/api/v2/controllers/rest.py":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"a104195fba1832cf43c9757b8c10ca87f2b72b38","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        for k in accepted_filters:"},{"line_number":99,"context_line":"            if k in params:"},{"line_number":100,"context_line":"                criterion[k] \u003d params[k]"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        return criterion"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_027d82b1","line":100,"updated":"2014-08-27 17:10:16.000000000","message":"If there is an incorrect filter, should we return an error?","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"designate/api/v2/controllers/zones/tasks/transfer_accepts.py":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"a104195fba1832cf43c9757b8c10ca87f2b72b38","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    SORT_KEYS \u003d [\u0027created_at\u0027, \u0027id\u0027, \u0027updated_at\u0027]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @pecan.expose(template\u003d\u0027json:\u0027, content_type\u003d\u0027application/json\u0027)"},{"line_number":37,"context_line":"    @utils.validate_uuid(\u0027transfer_request_id\u0027)"},{"line_number":38,"context_line":"    def get_one(self, transfer_accept_id):"},{"line_number":39,"context_line":"        \"\"\"Get transfer_accepts\"\"\""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_27ab7d1f","line":37,"updated":"2014-08-27 17:10:16.000000000","message":"This should be transfer_accept_id","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"bc38bf836c7971c02cb34b4d2e637321e75beac9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    SORT_KEYS \u003d [\u0027created_at\u0027, \u0027id\u0027, \u0027updated_at\u0027]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @pecan.expose(template\u003d\u0027json:\u0027, content_type\u003d\u0027application/json\u0027)"},{"line_number":37,"context_line":"    @utils.validate_uuid(\u0027transfer_request_id\u0027)"},{"line_number":38,"context_line":"    def get_one(self, transfer_accept_id):"},{"line_number":39,"context_line":"        \"\"\"Get transfer_accepts\"\"\""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_1e632ade","line":37,"in_reply_to":"1abeadc6_27ab7d1f","updated":"2014-10-13 14:01:40.000000000","message":"Done","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"designate/api/v2/controllers/zones/tasks/transfer_requests.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"aae5594b7d25c0e50294f914b7f79aa0728cc87a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        marker, limit, sort_key, sort_dir \u003d self._get_paging_params(params)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        # Extract any filter params."},{"line_number":68,"context_line":"        accepted_filters \u003d (\u0027status\u0027)"},{"line_number":69,"context_line":"        criterion \u003d dict((k, params[k]) for k in accepted_filters"},{"line_number":70,"context_line":"                         if k in params)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_9a92629d","line":68,"updated":"2014-07-21 13:35:43.000000000","message":"This needs to be a tuple, meaning we need to change to:\n\n    accepted_filters \u003d (\u0027status\u0027, )\n\nwithout the comma, this \"single entry\" tuple will evaluate to:\n\n    accepted_filters \u003d \u0027status\u0027\n\nThe end result will be accepting \"?s\u003dbla\" as a valid filter, which will be passed down to the Storage layer before causing an exception.","commit_id":"6461615e23beffea41c47b39cfd341a3a2a9be70"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        zone \u003d self.central_api.get_domain(elevated_context,"},{"line_number":51,"context_line":"                                           transfer_request.domain_id)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        transfer_request.domain_name \u003d zone.name"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        return self._view.show(context, request, transfer_request)"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_62528a37","line":53,"updated":"2014-08-01 00:01:41.000000000","message":"This should really be moved to the storage layer.\n\nIf my SQLA Core change[1] lands first, we should update this 2 query construct to use a JOIN.\n\n[1]: https://review.openstack.org/#/c/109833","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            zone \u003d self.central_api.get_domain(elevated_context,"},{"line_number":77,"context_line":"                                               zone_transfer_request.domain_id)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            zone_transfer_request.domain_name \u003d zone.name"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return self._view.list(context, request, zone_transfer_requests)"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_824f9e8b","line":79,"updated":"2014-08-01 00:01:41.000000000","message":"Same as above","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        zone \u003d self.central_api.get_domain(elevated_context,"},{"line_number":108,"context_line":"                                           zone_transfer_request.domain_id)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        zone_transfer_request.domain_name \u003d zone.name"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        response.headers[\u0027Location\u0027] \u003d self._view._get_resource_href("},{"line_number":113,"context_line":"            request,"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_a22f42a6","line":110,"updated":"2014-08-01 00:01:41.000000000","message":"Same as above.","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        zone \u003d self.central_api.get_domain(elevated_context,"},{"line_number":155,"context_line":"                                           zt_request.domain_id)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        zt_request.domain_name \u003d zone.name"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        return self._view.show(context, request, zt_request)"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_e235baf6","line":157,"updated":"2014-08-01 00:01:41.000000000","message":"Same as above.","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"}],"designate/api/v2/views/zone_transfer_accepts.py":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"a104195fba1832cf43c9757b8c10ca87f2b72b38","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Author: Graham Hayes \u003cgraham.hayes@hp.com\u003e"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_7a88a822","line":1,"updated":"2014-08-27 17:10:16.000000000","message":"Similar to controllers, could the views be under views/zones/tasks","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"bc38bf836c7971c02cb34b4d2e637321e75beac9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Author: Graham Hayes \u003cgraham.hayes@hp.com\u003e"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_3e554ec6","line":1,"in_reply_to":"1abeadc6_7a88a822","updated":"2014-10-13 14:01:40.000000000","message":"Done","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"designate/central/rpcapi.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        4.0 - Create methods now accept designate objects"},{"line_number":44,"context_line":"        4.1 - Added Zone Transfer Methods"},{"line_number":45,"context_line":"    \"\"\""},{"line_number":46,"context_line":"    RPC_API_VERSION \u003d \u00274.1\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def __init__(self, topic\u003dNone):"},{"line_number":49,"context_line":"        topic \u003d topic if topic else cfg.CONF.central_topic"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_9ddabde7","line":46,"updated":"2014-10-13 16:34:24.000000000","message":"This line needs to remain set to 4.0","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        4.0 - Create methods now accept designate objects"},{"line_number":44,"context_line":"        4.1 - Added Zone Transfer Methods"},{"line_number":45,"context_line":"    \"\"\""},{"line_number":46,"context_line":"    RPC_API_VERSION \u003d \u00274.1\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def __init__(self, topic\u003dNone):"},{"line_number":49,"context_line":"        topic \u003d topic if topic else cfg.CONF.central_topic"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_e526ae67","line":46,"in_reply_to":"baa201ad_9ddabde7","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        topic \u003d topic if topic else cfg.CONF.central_topic"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        target \u003d messaging.Target(topic\u003dtopic, version\u003dself.RPC_API_VERSION)"},{"line_number":52,"context_line":"        self.client \u003d rpc.get_client(target, version_cap\u003d\u00274.1\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    # Misc Methods"},{"line_number":55,"context_line":"    def get_absolute_limits(self, context):"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_7dd439bd","line":52,"updated":"2014-10-13 16:34:24.000000000","message":"This should stay as 4.1 (Just in case you think the comment above applies here too!)","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        topic \u003d topic if topic else cfg.CONF.central_topic"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        target \u003d messaging.Target(topic\u003dtopic, version\u003dself.RPC_API_VERSION)"},{"line_number":52,"context_line":"        self.client \u003d rpc.get_client(target, version_cap\u003d\u00274.1\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    # Misc Methods"},{"line_number":55,"context_line":"    def get_absolute_limits(self, context):"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_052ad22b","line":52,"in_reply_to":"baa201ad_7dd439bd","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":376,"context_line":"    def create_zone_transfer_request(self, context, zone_transfer_request):"},{"line_number":377,"context_line":"        LOG.info(_LI(\"create_zone_transfer_request: \\"},{"line_number":378,"context_line":"                     Calling central\u0027s create_zone_transfer_request.\"))"},{"line_number":379,"context_line":"        return self.client.call(context, \u0027create_zone_transfer_request\u0027,"},{"line_number":380,"context_line":"                                zone_transfer_request\u003dzone_transfer_request)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def get_zone_transfer_request(self, context, zone_transfer_request_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_1d4a4d83","line":379,"updated":"2014-10-13 16:34:24.000000000","message":"All the new methods should be adjusted to something like :\n\n     def new_method(self, context, some_arg):\n         LOG.info( ... )\n         cctxt \u003d self.client.prepare(version\u003d\u00274.1\u0027)\n         return cctxt.call(context, \u0027new_method\u0027, some_arg\u003dsome_arg)\n\nwhere cctxt is the oslo.messaging \"call context\" - which used to say \"this method was added in 4.1\"","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":376,"context_line":"    def create_zone_transfer_request(self, context, zone_transfer_request):"},{"line_number":377,"context_line":"        LOG.info(_LI(\"create_zone_transfer_request: \\"},{"line_number":378,"context_line":"                     Calling central\u0027s create_zone_transfer_request.\"))"},{"line_number":379,"context_line":"        return self.client.call(context, \u0027create_zone_transfer_request\u0027,"},{"line_number":380,"context_line":"                                zone_transfer_request\u003dzone_transfer_request)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def get_zone_transfer_request(self, context, zone_transfer_request_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_2520b648","line":379,"in_reply_to":"baa201ad_1d4a4d83","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"}],"designate/central/service.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":"    # Zone Transfers"},{"line_number":1547,"context_line":"    @transaction"},{"line_number":1548,"context_line":"    def _transfer_key_generator(self, size\u003d8):"},{"line_number":1549,"context_line":"        chars \u003d string.ascii_uppercase + string.digits"},{"line_number":1550,"context_line":"        return \u0027\u0027.join(random.choice(chars) for _ in range(size))"},{"line_number":1551,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_220a5227","line":1548,"updated":"2014-08-01 00:01:41.000000000","message":"This method should not be wrapped in @transaction","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":1595,"context_line":"                \u0027target_tenant_id\u0027: zone_transfer_request.target_tenant_id,"},{"line_number":1596,"context_line":"                \u0027tenant_id\u0027: zone_transfer_request.tenant_id,"},{"line_number":1597,"context_line":"            }"},{"line_number":1598,"context_line":"            policy.check(\u0027get_scoped_zone_transfer_request\u0027, context, target)"},{"line_number":1599,"context_line":"        else:"},{"line_number":1600,"context_line":"            target \u003d {"},{"line_number":1601,"context_line":"                \u0027tenant_id\u0027: zone_transfer_request.tenant_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_dd03370a","line":1598,"updated":"2014-08-01 00:01:41.000000000","message":"IMO, the policy names should go from most -\u003e least specific..\n\ne.g.\n\nget_zone_transfer_request\nget_zone_transfer_request_scoped\n\nvs\n\nget_zone_transfer_request\nget_scoped_zone_transfer_request","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":1651,"context_line":"        self.notifier.info(context, \u0027dns.zone_transfer_request.delete\u0027,"},{"line_number":1652,"context_line":"                           request)"},{"line_number":1653,"context_line":""},{"line_number":1654,"context_line":"    @transaction"},{"line_number":1655,"context_line":"    def _transfer_domain(self, context, domain_id, tenant_id):"},{"line_number":1656,"context_line":"        self.storage.transfer_zone_ownership(context, domain_id, tenant_id)"},{"line_number":1657,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_fd1f1b58","line":1654,"updated":"2014-08-01 00:01:41.000000000","message":"Internal methods shouldn\u0027t be wrapped in @transaction","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":1655,"context_line":"    def _transfer_domain(self, context, domain_id, tenant_id):"},{"line_number":1656,"context_line":"        self.storage.transfer_zone_ownership(context, domain_id, tenant_id)"},{"line_number":1657,"context_line":""},{"line_number":1658,"context_line":"    def create_zone_transfer_accept(self, context, zone_transfer_accept):"},{"line_number":1659,"context_line":"        elevated_context \u003d context.elevated()"},{"line_number":1660,"context_line":"        elevated_context.all_tenants \u003d True"},{"line_number":1661,"context_line":"        zone_transfer_request \u003d self.get_zone_transfer_request("}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_5d2e478e","line":1658,"updated":"2014-08-01 00:01:41.000000000","message":"External methods which change data should be wrapped in @transaction","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":1735,"context_line":"        policy.check(\u0027find_zone_transfer_accept\u0027, context)"},{"line_number":1736,"context_line":"        return self.storage.find_zone_transfer_accept(context, criterion)"},{"line_number":1737,"context_line":""},{"line_number":1738,"context_line":"    def update_zone_transfer_accept(self, context, zone_transfer_accept):"},{"line_number":1739,"context_line":"        target \u003d {"},{"line_number":1740,"context_line":"            \u0027tenant_id\u0027: zone_transfer_accept.tenant_id"},{"line_number":1741,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_7d2b0b7c","line":1738,"updated":"2014-08-01 00:01:41.000000000","message":"External methods which change data should be wrapped in @transaction","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"        return accept"},{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"    def delete_zone_transfer_accept(self, context, zone_transfer_accept_id):"},{"line_number":1752,"context_line":"        # Get zone transfer accept"},{"line_number":1753,"context_line":"        zt_accept \u003d self.storage.get_zone_transfer_accept("},{"line_number":1754,"context_line":"            context, zone_transfer_accept_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_9d4b7f5e","line":1751,"updated":"2014-08-01 00:01:41.000000000","message":"External methods which change data should be wrapped in @transaction","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"5d54e62e37e42c0bdf767766c6b42bf4e93cf0c2","unresolved":false,"context_lines":[{"line_number":1660,"context_line":"            created_zone_transfer_request \u003d \\"},{"line_number":1661,"context_line":"                self.storage.create_zone_transfer_request("},{"line_number":1662,"context_line":"                    context, zone_transfer_request)"},{"line_number":1663,"context_line":""},{"line_number":1664,"context_line":"            self.notifier.info(context, \u0027dns.zone_transfer_request.create\u0027,"},{"line_number":1665,"context_line":"                               created_zone_transfer_request)"},{"line_number":1666,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_5b6ac9b3","line":1663,"updated":"2014-08-20 20:36:21.000000000","message":"Do we need to out indent starting here?","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"bc38bf836c7971c02cb34b4d2e637321e75beac9","unresolved":false,"context_lines":[{"line_number":1660,"context_line":"            created_zone_transfer_request \u003d \\"},{"line_number":1661,"context_line":"                self.storage.create_zone_transfer_request("},{"line_number":1662,"context_line":"                    context, zone_transfer_request)"},{"line_number":1663,"context_line":""},{"line_number":1664,"context_line":"            self.notifier.info(context, \u0027dns.zone_transfer_request.create\u0027,"},{"line_number":1665,"context_line":"                               created_zone_transfer_request)"},{"line_number":1666,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_feae66e6","line":1663,"in_reply_to":"1abeadc6_5b6ac9b3","updated":"2014-10-13 14:01:40.000000000","message":"nope, this is as expected ;)","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":1817,"context_line":""},{"line_number":1818,"context_line":"            return created_zone_transfer_request"},{"line_number":1819,"context_line":"        else:"},{"line_number":1820,"context_line":"            raise exceptions.DuplicateZoneTransferRequest()"},{"line_number":1821,"context_line":""},{"line_number":1822,"context_line":"    def get_zone_transfer_request(self, context, zone_transfer_request_id):"},{"line_number":1823,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_e04a4054","line":1820,"updated":"2014-10-13 16:34:24.000000000","message":"The try/except/else here seems confusing, why is \"self.storage.create_zone_transfer_request\" not raising the Duplicate like all our other create / update methods?","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":1817,"context_line":""},{"line_number":1818,"context_line":"            return created_zone_transfer_request"},{"line_number":1819,"context_line":"        else:"},{"line_number":1820,"context_line":"            raise exceptions.DuplicateZoneTransferRequest()"},{"line_number":1821,"context_line":""},{"line_number":1822,"context_line":"    def get_zone_transfer_request(self, context, zone_transfer_request_id):"},{"line_number":1823,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_fc6d6b05","line":1820,"in_reply_to":"baa201ad_e04a4054","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"            target \u003d {"},{"line_number":1840,"context_line":"                \u0027tenant_id\u0027: zone_transfer_request.tenant_id"},{"line_number":1841,"context_line":"            }"},{"line_number":1842,"context_line":"            policy.check(\u0027get_zone_transfer_request\u0027, context, target)"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":"        return zone_transfer_request"},{"line_number":1845,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_202c484a","line":1842,"updated":"2014-10-13 16:34:24.000000000","message":"I believe this if/else around the policy check can be avoided by using this policy instead, and always passing the target_tenant_id:\n\n    \"get_zone_transfer_request\": \"rule:admin_or_owner or target_tenant_id:%(tenant_id)s\"\n\nThis would need testing validating though..","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":1846,"context_line":"    def find_zone_transfer_requests(self, context, criterion\u003dNone, marker\u003dNone,"},{"line_number":1847,"context_line":"                                    limit\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":1848,"context_line":""},{"line_number":1849,"context_line":"        policy.check(\u0027find_zone_transfer_requests\u0027, context)"},{"line_number":1850,"context_line":""},{"line_number":1851,"context_line":"        requests \u003d self.storage.find_zone_transfer_requests("},{"line_number":1852,"context_line":"            context, criterion,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_a0c3d888","line":1849,"updated":"2014-10-13 16:34:24.000000000","message":"On our other find_*() methods, pass `{\u0027tenant_id\u0027: context.tenant}` to the policy check as the target, as the storage later will enforce this ... We should probably match that here + below..","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":1846,"context_line":"    def find_zone_transfer_requests(self, context, criterion\u003dNone, marker\u003dNone,"},{"line_number":1847,"context_line":"                                    limit\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":1848,"context_line":""},{"line_number":1849,"context_line":"        policy.check(\u0027find_zone_transfer_requests\u0027, context)"},{"line_number":1850,"context_line":""},{"line_number":1851,"context_line":"        requests \u003d self.storage.find_zone_transfer_requests("},{"line_number":1852,"context_line":"            context, criterion,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_bf4d9574","line":1849,"in_reply_to":"baa201ad_a0c3d888","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":1921,"context_line":"            }"},{"line_number":1922,"context_line":"            policy.check(\u0027create_zone_transfer_accept_scoped\u0027, context, target)"},{"line_number":1923,"context_line":"        else:"},{"line_number":1924,"context_line":"            policy.check(\u0027create_zone_transfer_accept\u0027, context)"},{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        if zone_transfer_accept.tenant_id is None:"},{"line_number":1927,"context_line":"            zone_transfer_accept.tenant_id \u003d context.tenant"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_60b490f2","line":1924,"updated":"2014-10-13 16:34:24.000000000","message":"Similar to the policy check above, I believe we can get rid of the if/else and just use a single policy.","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":1969,"context_line":"        chars \u003d string.ascii_uppercase + string.digits"},{"line_number":1970,"context_line":"        return \u0027\u0027.join(random.choice(chars) for _ in range(size))"},{"line_number":1971,"context_line":""},{"line_number":1972,"context_line":"    @synchronized_domain()"},{"line_number":1973,"context_line":"    @transaction"},{"line_number":1974,"context_line":"    def create_zone_transfer_request(self, context, zone_transfer_request):"},{"line_number":1975,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"5a890539_736cc108","line":1972,"updated":"2014-11-18 14:54:04.000000000","message":"I don\u0027t think we need this here?","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":2034,"context_line":"        policy.check(\u0027find_zone_transfer_request\u0027, context, target)"},{"line_number":2035,"context_line":"        return self.storage.find_zone_transfer_requests(context, criterion)"},{"line_number":2036,"context_line":""},{"line_number":2037,"context_line":"    @synchronized_domain()"},{"line_number":2038,"context_line":"    @transaction"},{"line_number":2039,"context_line":"    def update_zone_transfer_request(self, context, zone_transfer_request):"},{"line_number":2040,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"5a890539_936f6dfb","line":2037,"updated":"2014-11-18 14:54:04.000000000","message":"Or here...","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":2052,"context_line":"                           zone_transfer_request)"},{"line_number":2053,"context_line":"        return request"},{"line_number":2054,"context_line":""},{"line_number":2055,"context_line":"    @synchronized_domain()"},{"line_number":2056,"context_line":"    @transaction"},{"line_number":2057,"context_line":"    def delete_zone_transfer_request(self, context, zone_transfer_request_id):"},{"line_number":2058,"context_line":"        # Get zone transfer request"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a890539_b379c9c9","line":2055,"updated":"2014-11-18 14:54:04.000000000","message":"Or here...","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":2151,"context_line":"        policy.check(\u0027find_zone_transfer_accept\u0027, context)"},{"line_number":2152,"context_line":"        return self.storage.find_zone_transfer_accept(context, criterion)"},{"line_number":2153,"context_line":""},{"line_number":2154,"context_line":"    @synchronized_domain()"},{"line_number":2155,"context_line":"    @transaction"},{"line_number":2156,"context_line":"    def update_zone_transfer_accept(self, context, zone_transfer_accept):"},{"line_number":2157,"context_line":"        target \u003d {"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a890539_93468d79","line":2154,"updated":"2014-11-18 14:54:04.000000000","message":"Or this...","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"d2f6205f5a9ff4f1338e775db36c5b2dd42d889c","unresolved":false,"context_lines":[{"line_number":2092,"context_line":""},{"line_number":2093,"context_line":"    @notification(\u0027dns.zone_transfer_accept.create\u0027)"},{"line_number":2094,"context_line":"    @transaction"},{"line_number":2095,"context_line":"    def create_zone_transfer_accept(self, context, zone_transfer_accept):"},{"line_number":2096,"context_line":"        elevated_context \u003d context.elevated()"},{"line_number":2097,"context_line":"        elevated_context.all_tenants \u003d True"},{"line_number":2098,"context_line":"        zone_transfer_request \u003d self.get_zone_transfer_request("}],"source_content_type":"text/x-python","patch_set":21,"id":"5a890539_d250a6d6","line":2095,"updated":"2014-11-21 16:37:43.000000000","message":"Since this method modifies the domain, shouldn\u0027t it have the @synchronized_domain() decorator?","commit_id":"be27456560f92df80134d0d7237baaad39bbb75b"}],"designate/exceptions.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8030d352ce48e12ac41a7415cc65eb75a05e46e9","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    expected \u003d True"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class InvaildZoneTransferKey(Forbidden):"},{"line_number":175,"context_line":"    error_type \u003d \u0027invalid_key\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_7d594b28","line":174,"updated":"2014-08-01 00:01:41.000000000","message":"\"Invalid\" kinda feels like malformed data (i.e. a 400), maybe \"Incorrect\" is a better word to use here?","commit_id":"3c923647b704d42c02df1fa6a7e0e41c36b67136"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class Forbidden(Base):"},{"line_number":173,"context_line":"    expected \u003d True"},{"line_number":174,"context_line":"    error_code \u003d 403"},{"line_number":175,"context_line":"    error_type \u003d \u0027forbidden\u0027"},{"line_number":176,"context_line":"    expected \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_7d86f9dc","line":173,"updated":"2014-10-13 16:34:24.000000000","message":"Doubling up on expected\u003dTrue - already in place 3 lines down","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class Forbidden(Base):"},{"line_number":173,"context_line":"    expected \u003d True"},{"line_number":174,"context_line":"    error_code \u003d 403"},{"line_number":175,"context_line":"    error_type \u003d \u0027forbidden\u0027"},{"line_number":176,"context_line":"    expected \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_1f7221ad","line":173,"in_reply_to":"baa201ad_7d86f9dc","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"}],"designate/objects/zone_transfer_accept.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"a565ab07d473f667433da44e50c7333dd50d71d2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class ZoneTransferAccept(base.DictObjectMixin, base.PersistentObjectMixin,"},{"line_number":20,"context_line":"                         base.DesignateObject):"},{"line_number":21,"context_line":"    FIELDS \u003d [\u0027zone_transfer_request_id\u0027, \u0027tenant_id\u0027, \u0027status\u0027,"},{"line_number":22,"context_line":"              \u0027key\u0027, \u0027domain_id\u0027]"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ZoneTransferAcceptList(base.ListObjectMixin, base.DesignateObject):"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_2f9cf00e","line":22,"updated":"2014-10-21 16:42:37.000000000","message":"We\u0027ll want to update these and others per https://review.openstack.org/127845","commit_id":"cecc06814ea5a8ba10e8e7cfe6a173fddec50164"}],"designate/objects/zone_transfer_request.py":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"d2f6205f5a9ff4f1338e775db36c5b2dd42d889c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        \u0027created_at\u0027: {},"},{"line_number":30,"context_line":"        \u0027domain_name\u0027: {},"},{"line_number":31,"context_line":"        \u0027updated_at\u0027: {},"},{"line_number":32,"context_line":"        \u0027version\u0027: {},"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5a890539_493fadd6","line":32,"updated":"2014-11-21 16:37:43.000000000","message":"The id, created_at, updated_at and version are already there in base.PersistentObjectMixin","commit_id":"be27456560f92df80134d0d7237baaad39bbb75b"}],"designate/resources/schemas/v2/transfer_accept.json":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"a104195fba1832cf43c9757b8c10ca87f2b72b38","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                    \"type\": \"string\","},{"line_number":27,"context_line":"                    \"description\": \"Request identifier\","},{"line_number":28,"context_line":"                    \"pattern\": \"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$\","},{"line_number":29,"context_line":"                    \"readOnly\": true"},{"line_number":30,"context_line":"                },"},{"line_number":31,"context_line":"                \"key\": {"},{"line_number":32,"context_line":"                    \"type\": \"string\","}],"source_content_type":"application/json","patch_set":9,"id":"1abeadc6_567ca0eb","line":29,"updated":"2014-08-27 17:10:16.000000000","message":"If zone_transfer_request_id is in the input, can it be specified as \"readOnly\"?","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"bc38bf836c7971c02cb34b4d2e637321e75beac9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                    \"type\": \"string\","},{"line_number":27,"context_line":"                    \"description\": \"Request identifier\","},{"line_number":28,"context_line":"                    \"pattern\": \"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$\","},{"line_number":29,"context_line":"                    \"readOnly\": true"},{"line_number":30,"context_line":"                },"},{"line_number":31,"context_line":"                \"key\": {"},{"line_number":32,"context_line":"                    \"type\": \"string\","}],"source_content_type":"application/json","patch_set":9,"id":"baa201ad_be7cde73","line":29,"in_reply_to":"1abeadc6_567ca0eb","updated":"2014-10-13 14:01:40.000000000","message":"Done","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"a565ab07d473f667433da44e50c7333dd50d71d2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"                \"id\": {"},{"line_number":20,"context_line":"                    \"type\": \"string\","},{"line_number":21,"context_line":"                    \"description\": \"Zone Transfer Request identifier\","},{"line_number":22,"context_line":"                    \"pattern\": \"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$\","},{"line_number":23,"context_line":"                    \"readOnly\": true"},{"line_number":24,"context_line":"                },"},{"line_number":25,"context_line":"                \"zone_transfer_request_id\": {"}],"source_content_type":"application/json","patch_set":12,"id":"baa201ad_0ff00c66","line":22,"updated":"2014-10-21 16:42:37.000000000","message":"We should swap this and the other UUID checks for  \"format\": \"uuid\" now that https://review.openstack.org/128291 has merged","commit_id":"cecc06814ea5a8ba10e8e7cfe6a173fddec50164"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"d2f6205f5a9ff4f1338e775db36c5b2dd42d889c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"            \"properties\": {"},{"line_number":19,"context_line":"                \"id\": {"},{"line_number":20,"context_line":"                    \"type\": \"string\","},{"line_number":21,"context_line":"                    \"description\": \"Zone Transfer Request identifier\","},{"line_number":22,"context_line":"                    \"pattern\": \"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$\","},{"line_number":23,"context_line":"                    \"readOnly\": true"},{"line_number":24,"context_line":"                },"}],"source_content_type":"application/json","patch_set":21,"id":"5a890539_0c869365","line":21,"updated":"2014-11-21 16:37:43.000000000","message":"This should be Zone Transfer Accept identifier","commit_id":"be27456560f92df80134d0d7237baaad39bbb75b"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"d2f6205f5a9ff4f1338e775db36c5b2dd42d889c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                \"status\": {"},{"line_number":36,"context_line":"                    \"type\": \"string\","},{"line_number":37,"context_line":"                    \"description\": \"Zone Status\","},{"line_number":38,"context_line":"                    \"enum\": [\"ACTIVE\", \"PENDING\", \"DELETED\", \"ERROR\", \"COMPLETE\"],"},{"line_number":39,"context_line":"                    \"readOnly\": true"},{"line_number":40,"context_line":"                },"},{"line_number":41,"context_line":"                \"created_at\": {"}],"source_content_type":"application/json","patch_set":21,"id":"5a890539_2ccb4fa6","line":38,"updated":"2014-11-21 16:37:43.000000000","message":"What is the difference between ACTIVE and PENDING?","commit_id":"be27456560f92df80134d0d7237baaad39bbb75b"}],"designate/resources/schemas/v2/transfer_accepts.json":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"a104195fba1832cf43c9757b8c10ca87f2b72b38","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    \"description\": \"Zone Transfer Accept\","},{"line_number":8,"context_line":"    \"additionalProperties\": false,"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    \"required\": [\"transfer_accept\"],"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    \"properties\": {"},{"line_number":13,"context_line":"        \"transfer_accepts\": {"}],"source_content_type":"application/json","patch_set":9,"id":"1abeadc6_f6c76c62","line":10,"updated":"2014-08-27 17:10:16.000000000","message":"This should be transfer_accepts","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"9464719634d96c773aa02ee94ef24996b53cbb59","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        \"transfer_accepts\": {"},{"line_number":14,"context_line":"            \"type\": \"array\","},{"line_number":15,"context_line":"            \"description\": \"Zone Transfer Requests\","},{"line_number":16,"context_line":"            \"items\": {\"$ref\": \"tld#/properties/transfer_accept\"}"},{"line_number":17,"context_line":"        },"},{"line_number":18,"context_line":"        \"links\": {"},{"line_number":19,"context_line":"            \"type\": \"object\","}],"source_content_type":"application/json","patch_set":9,"id":"1abeadc6_5b783c8f","line":16,"updated":"2014-08-20 16:48:12.000000000","message":"copy-paste gone bad - \"tld\"\n\"items\": {\"$ref\": \"transfer_accept#/properties/transfer_accept\"}","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"designate/resources/schemas/v2/transfer_request.json":[{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"d2f6205f5a9ff4f1338e775db36c5b2dd42d889c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                },"},{"line_number":37,"context_line":"                \"target_project_id\": {"},{"line_number":38,"context_line":"                    \"type\": [\"string\", \"null\"],"},{"line_number":39,"context_line":"                    \"description\": \"Tenant identifier\","},{"line_number":40,"context_line":"                    \"maxLength\": 160"},{"line_number":41,"context_line":"                },"},{"line_number":42,"context_line":"                \"project_id\": {"}],"source_content_type":"application/json","patch_set":21,"id":"5a890539_6cd1d7fa","line":39,"updated":"2014-11-21 16:37:43.000000000","message":"Can you update the description to something like what you have in the spec - \"Restrict this share request to the specified project\"","commit_id":"be27456560f92df80134d0d7237baaad39bbb75b"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"d2f6205f5a9ff4f1338e775db36c5b2dd42d889c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                \"project_id\": {"},{"line_number":43,"context_line":"                    \"type\": [\"string\", \"null\"],"},{"line_number":44,"context_line":"                    \"description\": \"Project identifier\","},{"line_number":45,"context_line":"                    \"maxLength\": 36,"},{"line_number":46,"context_line":"                    \"immutable\": true"},{"line_number":47,"context_line":"                },"},{"line_number":48,"context_line":"                \"description\": {"}],"source_content_type":"application/json","patch_set":21,"id":"5a890539_2cb18fe1","line":45,"updated":"2014-11-21 16:37:43.000000000","message":"The maxLength of target_project_id and project_id are different. Shouldn\u0027t they be the same?","commit_id":"be27456560f92df80134d0d7237baaad39bbb75b"}],"designate/resources/schemas/v2/transfer_requests.json":[{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"9464719634d96c773aa02ee94ef24996b53cbb59","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        \"transfer_request\": {"},{"line_number":14,"context_line":"            \"type\": \"array\","},{"line_number":15,"context_line":"            \"description\": \"Zone Transfer Requests\","},{"line_number":16,"context_line":"            \"items\": {\"$ref\": \"tld#/properties/transfer_request\"}"},{"line_number":17,"context_line":"        },"},{"line_number":18,"context_line":"        \"links\": {"},{"line_number":19,"context_line":"            \"type\": \"object\","}],"source_content_type":"application/json","patch_set":9,"id":"1abeadc6_5bd4bc46","line":16,"updated":"2014-08-20 16:48:12.000000000","message":"copy-paste gone bad - tld\nshould be: \"items\": {\"$ref\": \"transfer_request#/properties/transfer_request\"}","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"designate/storage/impl_sqlalchemy/__init__.py":[{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"9464719634d96c773aa02ee94ef24996b53cbb59","unresolved":false,"context_lines":[{"line_number":836,"context_line":"            \u0027status\u0027: status,"},{"line_number":837,"context_line":"            \u0027rtt\u0027: \"%f\" % (time.time() - start_time)"},{"line_number":838,"context_line":"        }"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"    # Zone Transfer Methods"},{"line_number":841,"context_line":"    def _find_zone_transfer_request(self, context, criterion, one\u003dFalse,"},{"line_number":842,"context_line":"                                    marker\u003dNone, limit\u003dNone, sort_key\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_bb3f9024","line":839,"updated":"2014-08-20 16:48:12.000000000","message":"These methods depend on models from impl_sqlalchemy. The models will be replaced with Tables when https://review.openstack.org/#/c/109833/ is merged and would have to be retrofitted.","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"bc38bf836c7971c02cb34b4d2e637321e75beac9","unresolved":false,"context_lines":[{"line_number":836,"context_line":"            \u0027status\u0027: status,"},{"line_number":837,"context_line":"            \u0027rtt\u0027: \"%f\" % (time.time() - start_time)"},{"line_number":838,"context_line":"        }"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"    # Zone Transfer Methods"},{"line_number":841,"context_line":"    def _find_zone_transfer_request(self, context, criterion, one\u003dFalse,"},{"line_number":842,"context_line":"                                    marker\u003dNone, limit\u003dNone, sort_key\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_fedca676","line":839,"in_reply_to":"1abeadc6_bb3f9024","updated":"2014-10-13 14:01:40.000000000","message":"Done - yup, this was a fun rebase :(","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":806,"context_line":"            tables.domains,"},{"line_number":807,"context_line":"            tables.zone_transfer_requests.c.domain_id \u003d\u003d tables.domains.c.id)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"        query \u003d select([table, tables.domains.c.name]).select_from(ljoin)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        sort_key \u003d sort_key or \u0027created_at\u0027"},{"line_number":812,"context_line":"        sort_dir \u003d sort_dir or \u0027asc\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_80b334e8","line":809,"updated":"2014-10-13 16:34:24.000000000","message":"As near as I can tell, the body of this method has been copied + pasted due to the JOIN? If that\u0027s the only reason, you can just pass the query above to the _find method and avoid the duplication. If there\u0027s a second reason for the copy and paste, we should add support for that usecase to the base methods. This code below will fall out of sync with the _find method very quickly... See _find_recordsets for an example.","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":806,"context_line":"            tables.domains,"},{"line_number":807,"context_line":"            tables.zone_transfer_requests.c.domain_id \u003d\u003d tables.domains.c.id)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"        query \u003d select([table, tables.domains.c.name]).select_from(ljoin)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        sort_key \u003d sort_key or \u0027created_at\u0027"},{"line_number":812,"context_line":"        sort_dir \u003d sort_dir or \u0027asc\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_651abe18","line":809,"in_reply_to":"baa201ad_80b334e8","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":904,"context_line":"            context,"},{"line_number":905,"context_line":"            request.domain_id,"},{"line_number":906,"context_line":"            all_tenants\u003dTrue"},{"line_number":907,"context_line":"        )"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        return _set_object_from_model(objects.ZoneTransferRequest(), request)"},{"line_number":910,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_60d1f0cc","line":907,"updated":"2014-10-13 16:34:24.000000000","message":"Wouldn\u0027t it be better to move the domain name lookup into the  _find_zone_transfer_request method, so all the get/find methods share it? e.g. find_zone_transfer_requests above will currently be missing the domain name","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":904,"context_line":"            context,"},{"line_number":905,"context_line":"            request.domain_id,"},{"line_number":906,"context_line":"            all_tenants\u003dTrue"},{"line_number":907,"context_line":"        )"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        return _set_object_from_model(objects.ZoneTransferRequest(), request)"},{"line_number":910,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_8515e2e6","line":907,"in_reply_to":"baa201ad_60d1f0cc","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":906,"context_line":"            all_tenants\u003dTrue"},{"line_number":907,"context_line":"        )"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        return _set_object_from_model(objects.ZoneTransferRequest(), request)"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"    def find_zone_transfer_request(self, context, criterion):"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_2079a8fc","line":909,"updated":"2014-10-13 16:34:24.000000000","message":"I\u0027m not sure I see why we\u0027re creating a second object / using _set_object_from_model here and in the method below? Isn\u0027t self._find_zone_transfer_requests already returning a ZoneTransferRequest instance?","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":906,"context_line":"            all_tenants\u003dTrue"},{"line_number":907,"context_line":"        )"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        return _set_object_from_model(objects.ZoneTransferRequest(), request)"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"    def find_zone_transfer_request(self, context, criterion):"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_a5d3c636","line":909,"in_reply_to":"baa201ad_2079a8fc","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"        zone_transfer_request \u003d self._find_zone_transfer_requests(context,"},{"line_number":914,"context_line":"                                                                 criterion,"},{"line_number":915,"context_line":"                                                                 one\u003dTrue)"},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"        zone_transfer_request.domain_name \u003d self._get_domain_name("},{"line_number":918,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_80a25449","line":915,"updated":"2014-10-13 16:34:24.000000000","message":"This looks like pep8 *should* have failed, but didn\u0027t .. Both lines above should be indented 1 more space..","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":997,"context_line":"            {\u0027id\u0027: zone_transfer_accept_id},"},{"line_number":998,"context_line":"            one\u003dTrue)"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        return _set_object_from_model(objects.ZoneTransferRequest(), accept)"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"    def find_zone_transfer_accept(self, context, criterion):"},{"line_number":1003,"context_line":"        zone_transfer_accept \u003d self._find_zone_transfer_accept(context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_606d7004","line":1000,"updated":"2014-10-13 16:34:24.000000000","message":"Any reason we\u0027re building a new ZoneTransferRequest here rather than using the one  returned by _find_zone_transfer_accept?","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":997,"context_line":"            {\u0027id\u0027: zone_transfer_accept_id},"},{"line_number":998,"context_line":"            one\u003dTrue)"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        return _set_object_from_model(objects.ZoneTransferRequest(), accept)"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"    def find_zone_transfer_accept(self, context, criterion):"},{"line_number":1003,"context_line":"        zone_transfer_accept \u003d self._find_zone_transfer_accept(context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_85ec02f5","line":1000,"in_reply_to":"baa201ad_606d7004","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"                                                               one\u003dTrue)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        return [_set_object_from_model(objects.ZoneTransferAccept(), zta)"},{"line_number":1008,"context_line":"                for zta in zone_transfer_accept]"},{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"    def update_zone_transfer_accept(self, context, zone_transfer_accept):"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_a05d984a","line":1008,"updated":"2014-10-13 16:34:24.000000000","message":"This is the find (singular) - We should just directly return the object returned from elf._find_zone_transfer_accept above.","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"                                                               one\u003dTrue)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        return [_set_object_from_model(objects.ZoneTransferAccept(), zta)"},{"line_number":1008,"context_line":"                for zta in zone_transfer_accept]"},{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"    def update_zone_transfer_accept(self, context, zone_transfer_accept):"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_a5bae6de","line":1008,"in_reply_to":"baa201ad_a05d984a","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"a565ab07d473f667433da44e50c7333dd50d71d2","unresolved":false,"context_lines":[{"line_number":804,"context_line":""},{"line_number":805,"context_line":"        # (self, context, table, cls, list_cls, exc_notfound, criterion,"},{"line_number":806,"context_line":"        #       one\u003dFalse, marker\u003dNone, limit\u003dNone, sort_key\u003dNone,"},{"line_number":807,"context_line":"        #       sort_dir\u003dNone, query\u003dNone, apply_tenant_criteria\u003dTrue):"},{"line_number":808,"context_line":"        table \u003d tables.zone_transfer_requests"},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        ljoin \u003d tables.zone_transfer_requests.join("}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_109dae59","line":807,"updated":"2014-10-21 16:42:37.000000000","message":"Looks like a leftover","commit_id":"cecc06814ea5a8ba10e8e7cfe6a173fddec50164"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":729,"context_line":""},{"line_number":730,"context_line":"        # (self, context, table, cls, list_cls, exc_notfound, criterion,"},{"line_number":731,"context_line":"        #       one\u003dFalse, marker\u003dNone, limit\u003dNone, sort_key\u003dNone,"},{"line_number":732,"context_line":"        #       sort_dir\u003dNone, query\u003dNone, apply_tenant_criteria\u003dTrue):"},{"line_number":733,"context_line":"        table \u003d tables.zone_transfer_requests"},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"        ljoin \u003d tables.zone_transfer_requests.join("}],"source_content_type":"text/x-python","patch_set":18,"id":"5a890539_269e75b9","line":732,"updated":"2014-11-18 14:54:04.000000000","message":"If theres another patchset, remove this please","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":888,"context_line":"            zone_transfer_accept,"},{"line_number":889,"context_line":"            exceptions.ZoneTransferAcceptNotFound)"},{"line_number":890,"context_line":""},{"line_number":891,"context_line":"    def transfer_zone_ownership(self, context, domain_id, tenant_id):"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"        domains_query \u003d tables.domains.update()\\"},{"line_number":894,"context_line":"            .where(tables.domains.c.id \u003d\u003d domain_id)\\"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a890539_467f01e0","line":891,"updated":"2014-11-18 14:54:04.000000000","message":"This seems a little out of place here as all the other storage methods are simple CRUD over a resource.. Maybe, this can be merged into the update_domain method?\n\ne.g. if the tenant_id of a domain has been changed, issue the additional two queries to update the rest?","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"}],"designate/storage/impl_sqlalchemy/migrate_repo/versions/041_add_zone_ownership_transfers_tables.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":28,"context_line":"zone_transfer_requests \u003d Table("},{"line_number":29,"context_line":"    \u0027zone_transfer_requests\u0027,"},{"line_number":30,"context_line":"    meta,"},{"line_number":31,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid,"},{"line_number":32,"context_line":"           primary_key\u003dTrue),"},{"line_number":33,"context_line":"    Column(\u0027domain_id\u0027, UUID, ForeignKey(\u0027domains.id\u0027), nullable\u003dFalse),"},{"line_number":34,"context_line":"    Column(\u0027key\u0027, String(255), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_a3120256","line":31,"updated":"2014-10-13 16:34:24.000000000","message":"All the \"default\u003d..\"\u0027s lines in here can be removed, they don\u0027t actually make up part of the schema itself - and the other migrations don\u0027t include them.","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"zone_transfer_requests \u003d Table("},{"line_number":29,"context_line":"    \u0027zone_transfer_requests\u0027,"},{"line_number":30,"context_line":"    meta,"},{"line_number":31,"context_line":"    Column(\u0027id\u0027, UUID(), default\u003dutils.generate_uuid,"},{"line_number":32,"context_line":"           primary_key\u003dTrue),"},{"line_number":33,"context_line":"    Column(\u0027domain_id\u0027, UUID, ForeignKey(\u0027domains.id\u0027), nullable\u003dFalse),"},{"line_number":34,"context_line":"    Column(\u0027key\u0027, String(255), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_05b812e4","line":31,"in_reply_to":"baa201ad_a3120256","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"}],"designate/storage/impl_sqlalchemy/migrate_repo/versions/046_add_zone_ownership_transfers_tables.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"5a890539_e6754dfa","updated":"2014-11-18 14:54:04.000000000","message":"Migration #46 is in use...","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"}],"designate/storage/impl_sqlalchemy/models.py":[{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"9464719634d96c773aa02ee94ef24996b53cbb59","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    pattern \u003d Column(String(255), nullable\u003dFalse, unique\u003dTrue)"},{"line_number":198,"context_line":"    description \u003d Column(Unicode(160), nullable\u003dTrue)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"class ZoneTransferRequest(Base):"},{"line_number":202,"context_line":"    __tablename__ \u003d \u0027zone_transfer_requests\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_cfc4b742","line":199,"updated":"2014-08-20 16:48:12.000000000","message":"Is this whole module (models.py) overcome by https://review.openstack.org/#/c/109833/? Moving from SqlAlchemy ORM to  Core?","commit_id":"f15649606009612663d78ad63f534973f0ba9945"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"bc38bf836c7971c02cb34b4d2e637321e75beac9","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    pattern \u003d Column(String(255), nullable\u003dFalse, unique\u003dTrue)"},{"line_number":198,"context_line":"    description \u003d Column(Unicode(160), nullable\u003dTrue)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"class ZoneTransferRequest(Base):"},{"line_number":202,"context_line":"    __tablename__ \u003d \u0027zone_transfer_requests\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_beca1e9f","line":199,"in_reply_to":"1abeadc6_cfc4b742","updated":"2014-10-13 14:01:40.000000000","message":"yup","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"designate/tests/__init__.py":[{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"9464719634d96c773aa02ee94ef24996b53cbb59","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        values \u003d self.get_recordset_fixture(domain[\u0027name\u0027], type\u003dtype,"},{"line_number":513,"context_line":"                                            fixture\u003dfixture,"},{"line_number":514,"context_line":"                                            values\u003dkwargs)"},{"line_number":515,"context_line":"        LOG.error(\u0027RS Values: %s\u0027, values)"},{"line_number":516,"context_line":"        return self.central_service.create_recordset("},{"line_number":517,"context_line":"            context, domain[\u0027id\u0027], recordset\u003dobjects.RecordSet(**values))"},{"line_number":518,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7ac7a964_eb0087ac","line":515,"updated":"2014-08-20 16:48:12.000000000","message":"Why is this LOG.error?","commit_id":"f15649606009612663d78ad63f534973f0ba9945"}],"doc/source/rest/v2/zones.rst":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    To import a zonefile, set the Content-type to** text/dns** . The"},{"line_number":289,"context_line":"    **zoneextractor.py** tool in the **contrib** folder can generate zonefiles"},{"line_number":290,"context_line":"    that are suitable for Designate (without any**$INCLUDE**statements for"},{"line_number":291,"context_line":"    example)."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    **Example request:**"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baa201ad_8edc4576","line":290,"updated":"2014-10-13 16:34:24.000000000","message":"Looks like these two might be rebase artifacts?","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    To import a zonefile, set the Content-type to** text/dns** . The"},{"line_number":289,"context_line":"    **zoneextractor.py** tool in the **contrib** folder can generate zonefiles"},{"line_number":290,"context_line":"    that are suitable for Designate (without any**$INCLUDE**statements for"},{"line_number":291,"context_line":"    example)."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    **Example request:**"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baa201ad_25cef683","line":290,"in_reply_to":"baa201ad_8edc4576","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"7e2434cec539af628fbff040f3b798994c62c231","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":".. http:get:: /zones/(uuid:id)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    To export a zone in zonefile format, set the**Accept**header to **text/dns** ."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    **Example request**"},{"line_number":345,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baa201ad_4eca5da2","line":342,"updated":"2014-10-13 16:34:24.000000000","message":"Likely more rebase artifacts.","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"80c40287e770c987c040a61b4f217bd343ca85f6","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":".. http:get:: /zones/(uuid:id)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    To export a zone in zonefile format, set the**Accept**header to **text/dns** ."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    **Example request**"},{"line_number":345,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baa201ad_45c93a78","line":342,"in_reply_to":"baa201ad_4eca5da2","updated":"2014-10-14 14:11:09.000000000","message":"Done","commit_id":"b44d35064e8b2909090345b995d703b0bbfbbc94"}],"etc/designate/policy.json":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    \"target\": \"tenant:%(target_tenant_id)s\","},{"line_number":82,"context_line":"    \"owner_or_target\":\"rule:target or rule:owner\","},{"line_number":83,"context_line":"    \"admin_or_owner_or_target\":\"rule:owner_or_target or rule:admin\","},{"line_number":84,"context_line":"    \"admin_or_target\":\"rule:admin or rule:target\","},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    \"create_zone_transfer_request\": \"rule:admin_or_owner\","},{"line_number":87,"context_line":"    \"get_zone_transfer_request\": \"rule:admin_or_owner or tenant:%(target_tenant_id)s or None:%(target_tenant_id)s\","}],"source_content_type":"application/json","patch_set":18,"id":"5a890539_86a1e947","line":84,"updated":"2014-11-18 14:54:04.000000000","message":"Can we move the generic entries towards the top?","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"9315ea950bc64f513c28cc1cf9e44eedf807fb19","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    \"find_zone_transfer_request\": \"@\","},{"line_number":91,"context_line":"    \"update_zone_transfer_request\": \"rule:admin_or_owner\","},{"line_number":92,"context_line":"    \"delete_zone_transfer_request\": \"rule:admin_or_owner\","},{"line_number":93,"context_line":"    \"create_zone_transfer_accept\": \"rule:admin_or_owner or tenant:%(target_tenant_id)s or None:%(target_tenant_id)s\","},{"line_number":94,"context_line":"    \"get_zone_transfer_accept\": \"rule:admin_or_owner\","},{"line_number":95,"context_line":"    \"find_zone_transfer_accepts\": \"rule:admin\","},{"line_number":96,"context_line":"    \"find_zone_transfer_accept\": \"rule:admin\","}],"source_content_type":"application/json","patch_set":18,"id":"5a890539_46c2a1e9","line":93,"updated":"2014-11-18 14:54:04.000000000","message":"Can we add a split/blank line between the request / accept entries.","commit_id":"2c0907585e79cc1c8c9311fd2092fe5baf802a43"}]}
