)]}'
{"designate_tempest_plugin/clients.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        params.update(self.default_params)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        self.zones_client \u003d ZonesClient(self.auth_provider, **params)"},{"line_number":39,"context_line":"        self.zones_import_client \u003d ZonesImportClient(self.auth_provider,"},{"line_number":40,"context_line":"                                                     **params)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_12288f99","line":39,"range":{"start_line":39,"start_character":13,"end_line":39,"end_character":32},"updated":"2016-04-14 12:33:13.000000000","message":"This should be `self.zone_imports_client \u003d ZoneImportsClient(..)`","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"c71f19e9585bd788e46228b641edf3acc7412be6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        params.update(self.default_params)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        self.zones_client \u003d ZonesClient(self.auth_provider, **params)"},{"line_number":39,"context_line":"        self.zones_import_client \u003d ZonesImportClient(self.auth_provider,"},{"line_number":40,"context_line":"                                                     **params)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_a77e8e67","line":39,"range":{"start_line":39,"start_character":13,"end_line":39,"end_character":32},"in_reply_to":"5a18252c_12288f99","updated":"2016-04-15 01:47:23.000000000","message":"Done.","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"}],"designate_tempest_plugin/data_utils.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def random_string(prefix\u003d\u0027rand\u0027, n\u003d8, suffix\u003d\u0027\u0027):"},{"line_number":20,"context_line":"    \"\"\"Return a string containing random digits"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    :param prefix: the exact text to start the string. Defaults to \"rand\""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_c9208a9e","line":19,"updated":"2016-04-12 21:53:54.000000000","message":"Since other functions here and in tempest\u0027s data_utils are called \u0027rand_*\u0027, let\u0027s be consistent and call this rand_string.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    return data_utils.rand_int_id(start, end)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def random_zonefile_data(name\u003dNone, ttl\u003dNone):"},{"line_number":56,"context_line":"    \"\"\"Generate random zone data, with optional overrides"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    :return: A ZoneModel"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_49359ad8","line":55,"updated":"2016-04-12 21:53:54.000000000","message":"Let\u0027s also call this `rand_zonefile`, to be consistent with the rest of the module.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    zone_base \u003d (\u0027$ORIGIN \u0026\\n\u0026 # IN SOA ns.\u0026 nsadmin.\u0026 # # # # #\\n\u0027"},{"line_number":61,"context_line":"                 \u0027\u0026 # IN NS ns.\u0026\\n\u0026 # IN MX 10 mail.\u0026\\nns.\u0026 360 IN A 1.0.0.1\u0027)"},{"line_number":62,"context_line":"    if name is None:"},{"line_number":63,"context_line":"        name \u003d random_string(prefix\u003d\u0027testdomain\u0027, suffix\u003d\u0027.com.\u0027)"},{"line_number":64,"context_line":"    if ttl is None:"},{"line_number":65,"context_line":"        ttl \u003d str(random.randint(1200, 8400))"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_49baba24","line":63,"updated":"2016-04-12 21:53:54.000000000","message":"Use `rand_zone_name()` to generate this.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    if name is None:"},{"line_number":63,"context_line":"        name \u003d random_string(prefix\u003d\u0027testdomain\u0027, suffix\u003d\u0027.com.\u0027)"},{"line_number":64,"context_line":"    if ttl is None:"},{"line_number":65,"context_line":"        ttl \u003d str(random.randint(1200, 8400))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    return zone_base.replace(\u0027\u0026\u0027, name).replace(\u0027#\u0027, ttl)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_c96ecac8","line":65,"updated":"2016-04-12 21:53:54.000000000","message":"Use the `rand_ttl()` function to generate this.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    return rand_string(prefix\u003d\u0027testdomain\u0027, suffix\u003d\u0027.com.\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def rand_string(prefix\u003d\u0027rand\u0027, n\u003d8, suffix\u003d\u0027\u0027):"},{"line_number":28,"context_line":"    \"\"\"Return a string containing random digits"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    :param prefix: the exact text to start the string. Defaults to \"rand\""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_957649a2","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":15},"updated":"2016-04-14 12:33:13.000000000","message":"This looks really similar to tempests rand_name method[1]\n\nWe should likely just use that directly instead of creating our own\n\n[1] https://github.com/openstack/tempest/blob/master/tempest/lib/common/utils/data_utils.py#L41","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"c71f19e9585bd788e46228b641edf3acc7412be6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    return rand_string(prefix\u003d\u0027testdomain\u0027, suffix\u003d\u0027.com.\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def rand_string(prefix\u003d\u0027rand\u0027, n\u003d8, suffix\u003d\u0027\u0027):"},{"line_number":28,"context_line":"    \"\"\"Return a string containing random digits"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    :param prefix: the exact text to start the string. Defaults to \"rand\""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_e794068c","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":15},"in_reply_to":"5a18252c_957649a2","updated":"2016-04-15 01:47:23.000000000","message":"Yea, we can use that, we need to add suffix also due to zone name format.\nDone","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"}],"designate_tempest_plugin/services/dns/json/base.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"6d70419f76d27d3d2b6420498a4fe887bce44663","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _list_request(self, resource, params\u003dNone):"},{"line_number":109,"context_line":"        \"\"\"Gets a specific object of the specified type."},{"line_number":110,"context_line":"        :param uuid: Unique identifier of the object in UUID format."},{"line_number":111,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":112,"context_line":"                       include in the request URI."},{"line_number":113,"context_line":"        :returns: Serialized object as a dictionary."}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_b558ce33","line":110,"updated":"2016-04-13 18:28:25.000000000","message":"This was changed to `param uuid` but there is not a uuid parameter for this function","commit_id":"8c88305aaa1aa2293dbdcabc4e381edfccb6f0ca"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"6d70419f76d27d3d2b6420498a4fe887bce44663","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        return resp, self.deserialize(body)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _update_request(self, resource, uuid, object_dict, params\u003dNone):"},{"line_number":124,"context_line":"        \"\"\"Gets a specific object of the specified type."},{"line_number":125,"context_line":"        :param uuid: Unique identifier of the object in UUID format."},{"line_number":126,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":127,"context_line":"                       include in the request URI."}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_1500a2a9","line":124,"updated":"2016-04-13 18:28:25.000000000","message":"This documentation is not correct. _update_request() does an update, not a get.","commit_id":"8c88305aaa1aa2293dbdcabc4e381edfccb6f0ca"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"6d70419f76d27d3d2b6420498a4fe887bce44663","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        resp, body \u003d self.delete(uri)"},{"line_number":150,"context_line":"        self.expected_success([202, 204], resp[\u0027status\u0027])"},{"line_number":151,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_55997a1e","line":151,"updated":"2016-04-13 18:28:25.000000000","message":"This is causing a test to fail - http://logs.openstack.org/80/304380/5/check/gate-designate-dsvm-powerdns/1471c76/logs/testr_results.html.gz\n\nWe want to deserialize the response if it was a 202, and return the plain body if it was a 204.","commit_id":"8c88305aaa1aa2293dbdcabc4e381edfccb6f0ca"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                                  uuid\u003duuid,"},{"line_number":72,"context_line":"                                  params\u003dparams)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _create_request(self, resource, object_dict, headers\u003dNone, params\u003dNone,"},{"line_number":75,"context_line":"         extra_headers\u003dFalse):"},{"line_number":76,"context_line":"        \"\"\"Create an object of the specified type."},{"line_number":77,"context_line":"        :param resource: The name of the REST resource, e.g., \u0027zones\u0027."}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_d5f1e102","line":74,"range":{"start_line":74,"start_character":53,"end_line":74,"end_character":67},"updated":"2016-04-14 12:33:13.000000000","message":"Can we put headers after params? We use params much more often than custom headers","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"c71f19e9585bd788e46228b641edf3acc7412be6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                                  uuid\u003duuid,"},{"line_number":72,"context_line":"                                  params\u003dparams)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _create_request(self, resource, object_dict, headers\u003dNone, params\u003dNone,"},{"line_number":75,"context_line":"         extra_headers\u003dFalse):"},{"line_number":76,"context_line":"        \"\"\"Create an object of the specified type."},{"line_number":77,"context_line":"        :param resource: The name of the REST resource, e.g., \u0027zones\u0027."}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_278b9e69","line":74,"range":{"start_line":74,"start_character":53,"end_line":74,"end_character":67},"in_reply_to":"5a18252c_d5f1e102","updated":"2016-04-15 01:47:23.000000000","message":"Done","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                            specified type."},{"line_number":80,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":81,"context_line":"                       include in the request URI."},{"line_number":82,"context_line":"        :returns: A tuple with the server response and the deserialized created"},{"line_number":83,"context_line":"                 object."},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        body \u003d self.serialize(object_dict)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_950769c9","line":82,"updated":"2016-04-14 12:33:13.000000000","message":"Can we add docs here for headers and extra_headers? Copying from the tempest docs, something like:\n\n    headers (dict) – The headers to use for the request\n    extra_headers (bool) – Boolean value than indicates if the headers returned by the get_headers() method are to be used but additional headers are needed in the request pass them in as a dict.","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"c71f19e9585bd788e46228b641edf3acc7412be6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                            specified type."},{"line_number":80,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":81,"context_line":"                       include in the request URI."},{"line_number":82,"context_line":"        :returns: A tuple with the server response and the deserialized created"},{"line_number":83,"context_line":"                 object."},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        body \u003d self.serialize(object_dict)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_87ec322b","line":82,"in_reply_to":"5a18252c_950769c9","updated":"2016-04-15 01:47:23.000000000","message":"Done","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"}],"designate_tempest_plugin/services/dns/v2/json/zone_imports_client.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"ba40def22ec075c5eda8b88e02dd12b48c7d5842","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Create Zone Import should Return a HTTP 201"},{"line_number":38,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if wait_until:"},{"line_number":41,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_c1ed3127","line":38,"updated":"2016-04-15 14:30:15.000000000","message":"This should be a 202.","commit_id":"37259d395602a14ac405b30a7bf30f5c69ab6d8a"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"70982a8f5040630e93fa5dca46693b0e54270b4f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Create Zone Import should Return a HTTP 201"},{"line_number":38,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if wait_until:"},{"line_number":41,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_bd5f680d","line":38,"in_reply_to":"1a122d0e_04a0cdf3","updated":"2016-04-15 19:11:38.000000000","message":"It turns out that resp[\u0027status\u0027] is a string...\n\n    2016-04-15 13:56:50,796 65854 INFO     [designate_tempest_plugin.services.dns.v2.json.zone_imports_client] CREATE_ZONE_IMPORT: resp[\u0027status\u0027] \u003d \u0027202\u0027 (type\u003d\u003ctype \u0027str\u0027\u003e)\n\nexpected_success() only does the check if the actual code is \u003c 400: https://github.com/openstack/tempest/blob/78f3ff08ca5d952bba4c6cc139c23389a583d2e2/tempest/lib/common/rest_client.py#L235\n\nSo it asserts nothing, because:\n\n    \u003e\u003e\u003e \u0027200\u0027 \u003c 400\n    False","commit_id":"37259d395602a14ac405b30a7bf30f5c69ab6d8a"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"ae82f72282485a0c300f3f296ab0696aa5a36a4b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Create Zone Import should Return a HTTP 201"},{"line_number":38,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if wait_until:"},{"line_number":41,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_9e4d2b75","line":38,"in_reply_to":"1a122d0e_a023b704","updated":"2016-04-18 01:20:38.000000000","message":"ops Nice catch. Thanks Paul, Kiall. Done.\n\nI will fix those in other places too but in separately.","commit_id":"37259d395602a14ac405b30a7bf30f5c69ab6d8a"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"00587abec62d4d9323716c81351f0ae7da4db7a8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Create Zone Import should Return a HTTP 201"},{"line_number":38,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if wait_until:"},{"line_number":41,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_a023b704","line":38,"in_reply_to":"1a122d0e_bd5f680d","updated":"2016-04-16 11:27:13.000000000","message":"Nice catch Paul, I was eyeballing the code for longer than I care to admit and didn\u0027t see that :(","commit_id":"37259d395602a14ac405b30a7bf30f5c69ab6d8a"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"ab8a7ca42e3b738dcce3744fcd2354553226cf94","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Create Zone Import should Return a HTTP 201"},{"line_number":38,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if wait_until:"},{"line_number":41,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a122d0e_04a0cdf3","line":38,"in_reply_to":"1a122d0e_c1ed3127","updated":"2016-04-15 17:47:11.000000000","message":"Okay - Why is this passing - clearly we\u0027re doing something wrong somewhere if it\u0027s passing :)","commit_id":"37259d395602a14ac405b30a7bf30f5c69ab6d8a"}],"designate_tempest_plugin/services/dns/v2/json/zones_import_client.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class ZonesImportClient(base.DnsClientV2Base):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    @base.handle_errors"},{"line_number":22,"context_line":"    def create_zone_import(self, zonefile_data, params\u003dNone, wait_until\u003dNone):"},{"line_number":23,"context_line":"        headers \u003d {\u0027Content-Type\u0027: \u0027text/dns\u0027}"},{"line_number":24,"context_line":"        zone_data \u003d zonefile_data or dns_data_utils.random_zonefile_data()"},{"line_number":25,"context_line":"        resp, body \u003d self._create_request("}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_6917b6a3","line":22,"range":{"start_line":22,"start_character":33,"end_line":22,"end_character":46},"updated":"2016-04-12 21:53:54.000000000","message":"This should be `zonefile_data\u003dNone`, since this function falls back to randomly generated data if this isn\u0027t specified.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cf2d073b4623159dd0d32a267778003154afb52c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def create_zone_import(self, zonefile_data\u003dNone,"},{"line_number":24,"context_line":"                           params\u003dNone, wait_until\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Create a zone import."},{"line_number":26,"context_line":"        :param zonefile_data: ."},{"line_number":27,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":28,"context_line":"                       include in the request URI."},{"line_number":29,"context_line":"        :return: Serialized imported zone as a dictionary."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_5f850305","line":26,"range":{"start_line":26,"start_character":30,"end_line":26,"end_character":31},"updated":"2016-04-14 05:47:05.000000000","message":"add some description here","commit_id":"4f4be0269b7d48c666c08a35f975d99b6f0a1596"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2a20fdd7d59c0e89220104f627a901bf1af7aec4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        resp, body \u003d self._create_request("},{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":"        if wait_until:"},{"line_number":37,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        return resp, body"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_1a19d9d7","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":47},"updated":"2016-04-14 06:38:07.000000000","message":"There is no such method, you need to add in waiters","commit_id":"4f4be0269b7d48c666c08a35f975d99b6f0a1596"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cf2d073b4623159dd0d32a267778003154afb52c","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @base.handle_errors"},{"line_number":53,"context_line":"    def list_zone_imports(self, params\u003dNone):"},{"line_number":54,"context_line":"        \"\"\"Gets a specific zone."},{"line_number":55,"context_line":"        :param uuid: Unique identifier of the zone in UUID format."},{"line_number":56,"context_line":"        :param params: A Python dict that represents the query paramaters to"},{"line_number":57,"context_line":"                       include in the request URI."},{"line_number":58,"context_line":"        :return: Serialized imported zones as a list."},{"line_number":59,"context_line":"        \"\"\""},{"line_number":60,"context_line":"        return self._list_request("}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_9f7b1b28","line":57,"range":{"start_line":54,"start_character":0,"end_line":57,"end_character":50},"updated":"2016-04-14 05:47:05.000000000","message":"Need to correct this","commit_id":"4f4be0269b7d48c666c08a35f975d99b6f0a1596"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from designate_tempest_plugin.services.dns.v2.json import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ZonesImportClient(base.DnsClientV2Base):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    @base.handle_errors"},{"line_number":23,"context_line":"    def create_zone_import(self, zonefile_data\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_4b024eb5","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":23},"updated":"2016-04-14 12:33:13.000000000","message":"This should be ZoneImportsClient (and the file called zone_imports_client.py)","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        headers \u003d {\u0027Content-Type\u0027: \u0027text/dns\u0027}"},{"line_number":33,"context_line":"        zone_data \u003d zonefile_data or dns_data_utils.rand_zonefile_data()"},{"line_number":34,"context_line":"        resp, body \u003d self._create_request("},{"line_number":35,"context_line":"            \u0027zones/tasks/imports\u0027, zone_data, headers\u003dheaders)"},{"line_number":36,"context_line":"        if wait_until:"},{"line_number":37,"context_line":"            waiters.wait_for_zone_import_status(self, body[\u0027id\u0027], wait_until)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_55c31138","line":35,"range":{"start_line":35,"start_character":46,"end_line":35,"end_character":62},"updated":"2016-04-14 12:33:13.000000000","message":"After this, before the waiter, can we add a ..\n\n    # Create Zone Import should Return a HTTP 201\n    self.expected_success(201, resp[\u0027status\u0027])\n\nThis matches the changes I\u0027m making in I3f0efe61452186c7399fd6196ff3509872c77a80","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        :return: A tuple with the server response and the response body."},{"line_number":69,"context_line":"        \"\"\""},{"line_number":70,"context_line":"        return self._delete_request("},{"line_number":71,"context_line":"            \u0027zones/tasks/imports\u0027, uuid, params\u003dparams)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_750bad8e","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":12},"updated":"2016-04-14 12:33:13.000000000","message":"Can we add a:\n\n    # Delete Zone Import should Return a HTTP 204\n    self.expected_success(204, resp[\u0027status\u0027])\n\nThis matches the changes I\u0027m making in I3f0efe61452186c7399fd6196ff3509872c77a80","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"}],"designate_tempest_plugin/tests/api/v2/test_zones_imports.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class BaseZonesImportTest(base.BaseDnsTest):"},{"line_number":27,"context_line":"    def _assertExpected(self, expected, actual):"},{"line_number":28,"context_line":"        for key, value in six.iteritems(expected):"},{"line_number":29,"context_line":"            if key not in (\u0027created_at\u0027, \u0027updated_at\u0027, \u0027version\u0027, \u0027links\u0027,"},{"line_number":30,"context_line":"                           \u0027status\u0027, \u0027action\u0027):"},{"line_number":31,"context_line":"                self.assertIn(key, actual)"},{"line_number":32,"context_line":"                self.assertEqual(value, actual[key], key)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ZonesImportTest(BaseZonesImportTest):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_690a16d4","line":32,"range":{"start_line":26,"start_character":0,"end_line":32,"end_character":57},"updated":"2016-04-12 21:53:54.000000000","message":"This is identical to the BaseZonesTest class https://github.com/openstack/designate-tempest-plugin/blob/master/designate_tempest_plugin/tests/api/v2/test_zones.py#L25\n\nWe should just reuse the BaseZonesTest (either directly or through subclassing - `class BaseZonesImportTest(BaseZonesTest): pass`).\n\nAlso, zone import responses don\u0027t have an `action` field, so we need another `_assertExceptedImport` method to be consistent in how we\u0027re checking for things.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":44,"context_line":"    def test_create_zone_import(self):"},{"line_number":45,"context_line":"        LOG.info(\u0027Create a zone\u0027)"},{"line_number":46,"context_line":"        _, zone \u003d self.zone_client.create_zone()"},{"line_number":47,"context_line":"        self.addCleanup(self.zone_client.delete_zone, zone[\u0027id\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        LOG.info(\u0027Ensure we respond with CREATE+PENDING\u0027)"},{"line_number":50,"context_line":"        self.assertEqual(\u0027CREATE\u0027, zone[\u0027action\u0027])"},{"line_number":51,"context_line":"        self.assertEqual(\u0027PENDING\u0027, zone[\u0027status\u0027])"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        waiters.wait_for_zone_status("},{"line_number":54,"context_line":"            self.zone_client, zone[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        LOG.info(\u0027Create a zone import\u0027)"},{"line_number":57,"context_line":"        _, zone \u003d self.client.create_zone_import("}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_e9790631","line":54,"range":{"start_line":45,"start_character":8,"end_line":54,"end_character":51},"updated":"2016-04-12 21:53:54.000000000","message":"We don\u0027t need to create an extra zone here.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self._assertExpected(zone, body)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":73,"context_line":"    def test_show_zone_import(self):"},{"line_number":74,"context_line":"        LOG.info(\u0027Create a zone\u0027)"},{"line_number":75,"context_line":"        _, zone \u003d self.zone_client.create_zone()"},{"line_number":76,"context_line":"        self.addCleanup(self.zone_client.delete_zone, zone[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_0996024c","line":73,"updated":"2016-04-12 21:53:54.000000000","message":"This test case can be removed. Since we already fetch and verify a zone import during the `test_create_zone_import` test above, this is just redundant code.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        _, zone \u003d self.client.create_zone_import(zone[\u0027id\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        LOG.info(\u0027Ensure we respond with CREATE+PENDING\u0027)"},{"line_number":89,"context_line":"        self.assertEqual(\u0027CREATE\u0027, zone[\u0027action\u0027])"},{"line_number":90,"context_line":"        self.assertEqual(\u0027PENDING\u0027, zone[\u0027status\u0027])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        waiters.wait_for_zone_status("}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_c9e7eae2","line":89,"updated":"2016-04-12 21:53:54.000000000","message":"Zone imports don\u0027t have an \"action\" field.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":102,"context_line":"    def test_delete_zone_import(self):"},{"line_number":103,"context_line":"        LOG.info(\u0027Create a zone\u0027)"},{"line_number":104,"context_line":"        _, zone \u003d self.zone_client.create_zone(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":105,"context_line":"        self.addCleanup(self.zone_client.delete_zone, zone[\u0027id\u0027],"},{"line_number":106,"context_line":"                        ignore_errors\u003dlib_exc.NotFound)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        _, zone \u003d self.client.create_zone_import(zone[\u0027id\u0027],"},{"line_number":109,"context_line":"                                                 wait_until\u003d\u0027COMPLETE\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_a99eee53","line":106,"range":{"start_line":103,"start_character":8,"end_line":106,"end_character":55},"updated":"2016-04-12 21:53:54.000000000","message":"Same as above - don\u0027t need to crate a zone for this.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        _, zone \u003d self.client.create_zone_import(zone[\u0027id\u0027],"},{"line_number":109,"context_line":"                                                 wait_until\u003d\u0027COMPLETE\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        LOG.info(\u0027Delete the zone\u0027)"},{"line_number":112,"context_line":"        _, body \u003d self.client.delete_zone_import(zone[\u0027id\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        LOG.info(\u0027Ensure we respond with DELETE+PENDING\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_c9b08ae0","line":111,"updated":"2016-04-12 21:53:54.000000000","message":"should be: \"Delete the zone import\"","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        _, body \u003d self.client.delete_zone_import(zone[\u0027id\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        LOG.info(\u0027Ensure we respond with DELETE+PENDING\u0027)"},{"line_number":115,"context_line":"        self.assertEqual(\u0027DELETE\u0027, body[\u0027action\u0027])"},{"line_number":116,"context_line":"        self.assertEqual(\u0027PENDING\u0027, body[\u0027status\u0027])"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        waiters.wait_for_zone_404(self.client, zone[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_49c59a3a","line":115,"updated":"2016-04-12 21:53:54.000000000","message":"Zone imports don\u0027t have an action field.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"8a3b9067557ca2a577f8fa046b4905a2de2db302","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":121,"context_line":"    def test_list_zones_imports(self):"},{"line_number":122,"context_line":"        LOG.info(\u0027Create a zone\u0027)"},{"line_number":123,"context_line":"        _, zone \u003d self.zone_client.create_zone()"},{"line_number":124,"context_line":"        self.addCleanup(self.zone_client.delete_zone, zone[\u0027id\u0027])"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        LOG.info(\u0027Ensure we respond with CREATE+PENDING\u0027)"},{"line_number":127,"context_line":"        self.assertEqual(\u0027CREATE\u0027, zone[\u0027action\u0027])"},{"line_number":128,"context_line":"        self.assertEqual(\u0027PENDING\u0027, zone[\u0027status\u0027])"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        waiters.wait_for_zone_status("},{"line_number":131,"context_line":"            self.zone_client, zone[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        _, zone \u003d self.client.create_zone_import(wait_until\u003d\u0027COMPLETE\u0027)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_29abfe75","line":131,"range":{"start_line":122,"start_character":8,"end_line":131,"end_character":51},"updated":"2016-04-12 21:53:54.000000000","message":"Same as above - don\u0027t create this zone.","commit_id":"54b458cf6a7cc4a202d090f347c0b82dfd68a944"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2a20fdd7d59c0e89220104f627a901bf1af7aec4","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class BaseZonesImportTest(base.BaseDnsTest):"},{"line_number":26,"context_line":"    def _assertExpected_import(self, expected, actual):"},{"line_number":27,"context_line":"        for key, value in six.iteritems(expected):"},{"line_number":28,"context_line":"            if key not in (\u0027created_at\u0027, \u0027updated_at\u0027, \u0027version\u0027, \u0027links\u0027,"},{"line_number":29,"context_line":"                           \u0027status\u0027, \u0027message\u0027):"},{"line_number":30,"context_line":"                self.assertIn(key, actual)"},{"line_number":31,"context_line":"                self.assertEqual(value, actual[key], key)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ZonesImportTest(BaseZonesImportTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_5aa2314c","line":31,"range":{"start_line":26,"start_character":0,"end_line":31,"end_character":57},"updated":"2016-04-14 06:38:07.000000000","message":"Similar function in https://github.com/openstack/designate-tempest-plugin/blob/master/designate_tempest_plugin/tests/api/v2/test_zones.py#L26\n\nMove this to base class and use in all tests wherever needed.\n\nhere base.BaseDnsTest\n\n    def _assertExpected_import(self, expected, actual):\n        for key, value in six.iteritems(expected):\n            if key not in self.excluded_keys:\n                self.assertIn(key, actual)\n                self.assertEqual(value, actual[key], key)\n\nthen-\n\nclass ZonesImportTest(BaseZonesImportTest):\n    excluded_keys \u003d (\u0027created_at\u0027, \u0027updated_at\u0027, \u0027version\u0027, \u0027links\u0027, \u0027status\u0027, \u0027message\u0027)\n\nAfter that you do not need BaseZonesImportTest.\n\nBut do it in separate patch for more clear review.","commit_id":"4f4be0269b7d48c666c08a35f975d99b6f0a1596"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":36,"context_line":"    @test.idempotent_id(\u00272e2d907d-0609-405b-9c96-3cb2b87e3dce\u0027)"},{"line_number":37,"context_line":"    def test_create_show_zone_import(self):"},{"line_number":38,"context_line":"        LOG.info(\u0027Create a zone import\u0027)"},{"line_number":39,"context_line":"        _, zone_import \u003d self.client.create_zone_import()"},{"line_number":40,"context_line":"        self.addCleanup(self.client.delete_zone_import, zone_import[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_8b3906a7","line":37,"range":{"start_line":37,"start_character":4,"end_line":37,"end_character":43},"updated":"2016-04-14 12:33:13.000000000","message":"In I3f0efe61452186c7399fd6196ff3509872c77a80, I split this test (for Zones) into two - one for create - and only create, and one for showing (which has an implicit create). Can we do the same here?","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"c71f19e9585bd788e46228b641edf3acc7412be6","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":36,"context_line":"    @test.idempotent_id(\u00272e2d907d-0609-405b-9c96-3cb2b87e3dce\u0027)"},{"line_number":37,"context_line":"    def test_create_show_zone_import(self):"},{"line_number":38,"context_line":"        LOG.info(\u0027Create a zone import\u0027)"},{"line_number":39,"context_line":"        _, zone_import \u003d self.client.create_zone_import()"},{"line_number":40,"context_line":"        self.addCleanup(self.client.delete_zone_import, zone_import[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_a7f5eeed","line":37,"range":{"start_line":37,"start_character":4,"end_line":37,"end_character":43},"in_reply_to":"5a18252c_8b3906a7","updated":"2016-04-15 01:47:23.000000000","message":"Done","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5b7470afd851bd401d50c6a27eca04c9705f9463","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        LOG.info(\u0027Ensure we respond with PENDING\u0027)"},{"line_number":43,"context_line":"        self.assertEqual(\u0027PENDING\u0027, zone_import[\u0027status\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        LOG.info(\u0027Re-Fetch the imported zone\u0027)"},{"line_number":46,"context_line":"        resp, body \u003d self.client.show_zone_import(zone_import[\u0027id\u0027])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        LOG.info(\u0027Ensure the fetched response matches the expected one\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_f56cdd36","line":45,"range":{"start_line":45,"start_character":18,"end_line":45,"end_character":44},"updated":"2016-04-14 12:33:13.000000000","message":"Re-Fetch the zone import","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"},{"author":{"_account_id":15699,"name":"sonu","email":"sonu.bhumca11@gmail.com","username":"sonu.kumar"},"change_message_id":"c71f19e9585bd788e46228b641edf3acc7412be6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        LOG.info(\u0027Ensure we respond with PENDING\u0027)"},{"line_number":43,"context_line":"        self.assertEqual(\u0027PENDING\u0027, zone_import[\u0027status\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        LOG.info(\u0027Re-Fetch the imported zone\u0027)"},{"line_number":46,"context_line":"        resp, body \u003d self.client.show_zone_import(zone_import[\u0027id\u0027])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        LOG.info(\u0027Ensure the fetched response matches the expected one\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_07e1422d","line":45,"range":{"start_line":45,"start_character":18,"end_line":45,"end_character":44},"in_reply_to":"5a18252c_f56cdd36","updated":"2016-04-15 01:47:23.000000000","message":"Done","commit_id":"b92a61269cf48ed2d001867f26ff3f1c9dffe5eb"}]}
