)]}'
{"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":"fe9632a88bcc79cdabdb9e8df475a53f9981a3de","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        :returns: Serialized object as a dictionary."},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        if \u0027uri\u0027 in kwargs:"},{"line_number":100,"context_line":"            uri \u003d kwargs[\u0027uri\u0027]"},{"line_number":101,"context_line":"        else:"},{"line_number":102,"context_line":"            uri \u003d self._get_uri(resource, uuid, params\u003dparams)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9a061dce_c8fff732","line":100,"updated":"2016-04-04 19:48:14.000000000","message":"This uri override exists here, but not in _create_request or _delete_request. It would be nice to make everything consistent (and documented), although I don\u0027t mind leaving it and updating this later as we need it.","commit_id":"28dce3a55d0cc93975033dd2555cbbb551cea7e4"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"642c68e79b5ef60138c5702f9fc12b98f20111c0","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        :returns: Serialized object as a dictionary."},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        if \u0027uri\u0027 in kwargs:"},{"line_number":100,"context_line":"            uri \u003d kwargs[\u0027uri\u0027]"},{"line_number":101,"context_line":"        else:"},{"line_number":102,"context_line":"            uri \u003d self._get_uri(resource, uuid, params\u003dparams)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9a061dce_bda0d0a0","line":100,"in_reply_to":"9a061dce_5cb9e8e8","updated":"2016-04-05 15:42:23.000000000","message":"I don\u0027t think we need it. All we had before was: https://github.com/openstack/designate/blob/master/functionaltests/common/client.py#L212-L242, which added query params and generalized construction of the url.","commit_id":"28dce3a55d0cc93975033dd2555cbbb551cea7e4"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8f5a037e0baffcdc8ce60985075114841c580fa5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        :returns: Serialized object as a dictionary."},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        if \u0027uri\u0027 in kwargs:"},{"line_number":100,"context_line":"            uri \u003d kwargs[\u0027uri\u0027]"},{"line_number":101,"context_line":"        else:"},{"line_number":102,"context_line":"            uri \u003d self._get_uri(resource, uuid, params\u003dparams)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9a061dce_5cb9e8e8","line":100,"in_reply_to":"9a061dce_c8fff732","updated":"2016-04-04 20:32:42.000000000","message":"Actually, this was on my remove list. It was a copy and paste from another projects base ;)\n\nThough, there is some form of URL override needed which yu added to the existing tests a while back. I\u0027ll need to refresh my memory on what exactly that was :)","commit_id":"28dce3a55d0cc93975033dd2555cbbb551cea7e4"}],"designate_tempest_plugin/services/dns/json/dns_client.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        try:"},{"line_number":32,"context_line":"            return f(*args, **kwargs)"},{"line_number":33,"context_line":"        except ignored_errors:"},{"line_number":34,"context_line":"            # Silently ignore errors"},{"line_number":35,"context_line":"            pass"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_12af7c7e","line":34,"updated":"2016-04-01 21:16:57.000000000","message":"It would be good to have a LOG.debug statement here.","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        try:"},{"line_number":32,"context_line":"            return f(*args, **kwargs)"},{"line_number":33,"context_line":"        except ignored_errors:"},{"line_number":34,"context_line":"            # Silently ignore errors"},{"line_number":35,"context_line":"            pass"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_c429bb8b","line":34,"in_reply_to":"ba0121b8_12af7c7e","updated":"2016-04-02 14:00:15.000000000","message":"Done","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                                           res\u003dresource_name,"},{"line_number":59,"context_line":"                                           uuid\u003d\u0027/%s\u0027 % uuid if uuid else \u0027\u0027)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _create_request(self, resource, object_dict):"},{"line_number":62,"context_line":"        \"\"\"Create an object of the specified type."},{"line_number":63,"context_line":"        :param resource: The name of the REST resource, e.g., \u0027zones\u0027."},{"line_number":64,"context_line":"        :param object_dict: A Python dict that represents an object of the"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_92c38c38","line":61,"updated":"2016-04-01 21:16:57.000000000","message":"Could we make these \"public\" methods (remove the leading underscore)?\n\nThat would give tests the ability to pass in any kind of data (empty body, sql injection, etc) without needing to have highly configurable create_zone() and create_recordset() methods.","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                                           res\u003dresource_name,"},{"line_number":59,"context_line":"                                           uuid\u003d\u0027/%s\u0027 % uuid if uuid else \u0027\u0027)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _create_request(self, resource, object_dict):"},{"line_number":62,"context_line":"        \"\"\"Create an object of the specified type."},{"line_number":63,"context_line":"        :param resource: The name of the REST resource, e.g., \u0027zones\u0027."},{"line_number":64,"context_line":"        :param object_dict: A Python dict that represents an object of the"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_e472ffaf","line":61,"in_reply_to":"ba0121b8_92c38c38","updated":"2016-04-02 14:00:15.000000000","message":"I think, for those kind of tests, we would just use client.get/post/put/etc directly rather than these helpers?\n\nThese serve to help cover the 90% use case, avoiding some repetitive code :)","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        uri \u003d self._get_uri(resource)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        resp, body \u003d self.post(uri, body\u003dbody)"},{"line_number":73,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return resp, self.deserialize(body)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_d2db4420","line":73,"updated":"2016-04-01 21:16:57.000000000","message":"I would rather not have these checks in the client. There are plenty of negative tests where we expect failure (e.g. testing api validation).\n\nAlthough, I think the request will throw an exception on 4xx/5xx statuses before getting here so it might be okay, but there is still the issue where some async creates return 202 (zones/recordsets) and others return 201 (tlds/blacklists).","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        uri \u003d self._get_uri(resource)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        resp, body \u003d self.post(uri, body\u003dbody)"},{"line_number":73,"context_line":"        self.expected_success(201, resp[\u0027status\u0027])"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return resp, self.deserialize(body)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_a46127d6","line":73,"in_reply_to":"ba0121b8_d2db4420","updated":"2016-04-02 14:00:15.000000000","message":"Re 201/202 - Whoops. Added.\n\nRe the checks, I believe it will never run for occasions like a validation error or other negative tests as an exception will be raised by the tempest rest client, but does provide a base \"every create request must be a 201 or 202\" check for free, even if we do assert the specific code we want in the test :)","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"}],"designate_tempest_plugin/services/dns/v2/json/dns_client.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    uri_prefix \u003d \u0027v2\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    @dns_client.handle_errors"},{"line_number":23,"context_line":"    def create_zone(self, **kwargs):"},{"line_number":24,"context_line":"        \"\"\"Create a zone with the specified parameters."},{"line_number":25,"context_line":"        :param name: The name of the zone."},{"line_number":26,"context_line":"            Default: example.org."}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_323ba03a","line":23,"updated":"2016-04-01 21:16:57.000000000","message":"So with this we have:\n\n    DnsClient._create_request() # base client\n    DnsClient.create_zone() # v2 client\n    BaseDnsTest.create_zone() # base test class\n\nWould it would be terrible to remove the v2 client and just have request-specific methods (create_zone, show_zone, etc) live in one place, on BaseDnsTest?","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    uri_prefix \u003d \u0027v2\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    @dns_client.handle_errors"},{"line_number":23,"context_line":"    def create_zone(self, **kwargs):"},{"line_number":24,"context_line":"        \"\"\"Create a zone with the specified parameters."},{"line_number":25,"context_line":"        :param name: The name of the zone."},{"line_number":26,"context_line":"            Default: example.org."}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_64aeefe8","line":23,"in_reply_to":"ba0121b8_323ba03a","updated":"2016-04-02 14:00:15.000000000","message":"Yea, there\u0027s some sort of onion going on alright ;)\n\nThe pattern is (mostly) robbed from tempest itself, where it\u0027s used for - for example - Neutron\u0027s tests may need to grab a DnsClient instance for validating the Neutron+Designate integration.\n\nI\u0027ve moved the bulk of the code into DnsClient, but, tracking creations for cleanup needs to happen in the tests. It feels like we\u0027re stuck having the 2x for create/delete methods.","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"}],"designate_tempest_plugin/tests/api/v2/base.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"            return resp, body"},{"line_number":39,"context_line":"        return wrapper"},{"line_number":40,"context_line":"    return decorator"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class BaseDnsTest(test.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_b215f09c","line":40,"updated":"2016-04-01 21:16:57.000000000","message":"Is the plan to use this decorator to manage resource cleanup instead of fixtures? If so, then I think I am +1 on it.\n\nAlthough, I think it should somehow make use of the addCleanup() method.","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"            return resp, body"},{"line_number":39,"context_line":"        return wrapper"},{"line_number":40,"context_line":"    return decorator"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class BaseDnsTest(test.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_e4e79f44","line":40,"in_reply_to":"ba0121b8_b215f09c","updated":"2016-04-02 14:00:15.000000000","message":"Yea, it seems like a somewhat cleaner way of hiding resource cleanup, so as to make it harder to anyone to ever forget..\n\nRe addCleanup: It\u0027s actually already a test cleanup, tempest itself registers test.resource_cleanup().","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"}],"designate_tempest_plugin/tests/api/v2/test_zones.py":[{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @test.idempotent_id(\u00279d2e20fc-e56f-4a62-9c61-9752a9ec615c\u0027)"},{"line_number":31,"context_line":"    def test_create_zone(self):"},{"line_number":32,"context_line":"        # Create a Zone"},{"line_number":33,"context_line":"        _, zone \u003d self.create_zone()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # Ensure we respond with CREATE+PENDING"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_f20f6886","line":32,"updated":"2016-04-01 21:16:57.000000000","message":"Can we turn these comments into log statements?","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @test.idempotent_id(\u00279d2e20fc-e56f-4a62-9c61-9752a9ec615c\u0027)"},{"line_number":31,"context_line":"    def test_create_zone(self):"},{"line_number":32,"context_line":"        # Create a Zone"},{"line_number":33,"context_line":"        _, zone \u003d self.create_zone()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # Ensure we respond with CREATE+PENDING"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_04f733f6","line":32,"in_reply_to":"ba0121b8_f20f6886","updated":"2016-04-02 14:00:15.000000000","message":"Done","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"cdc3afa110a16bc311fd0d2711455fcfe05e0c28","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        _, body \u003d self.client.show_zone(zone[\u0027id\u0027])"},{"line_number":45,"context_line":"        self._assertExpected(zone, body)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.idempotent_id(\u0027a4791906-6cd6-4d27-9f15-32273db8bb3d\u0027)"},{"line_number":48,"context_line":"    def test_delete_zone(self):"},{"line_number":49,"context_line":"        # Create a Zone"},{"line_number":50,"context_line":"        _, zone \u003d self.create_zone()"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_921f0cb7","line":47,"updated":"2016-04-01 21:16:57.000000000","message":"It looks like these ids get added as attrs, and to the docstring. Do they just let you easily filter out this particular test from the test runner or logs?","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6fee4406879633b5b6be812e264648899bedf2fb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        _, body \u003d self.client.show_zone(zone[\u0027id\u0027])"},{"line_number":45,"context_line":"        self._assertExpected(zone, body)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.idempotent_id(\u0027a4791906-6cd6-4d27-9f15-32273db8bb3d\u0027)"},{"line_number":48,"context_line":"    def test_delete_zone(self):"},{"line_number":49,"context_line":"        # Create a Zone"},{"line_number":50,"context_line":"        _, zone \u003d self.create_zone()"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_24f23707","line":47,"in_reply_to":"ba0121b8_921f0cb7","updated":"2016-04-02 14:00:15.000000000","message":"The allow tests to be renamed without loosing history of the test - e.g. if you\u0027re been tracking runtime of domain creation over time, you would have \"lost\" data during the domain -\u003e zone rename.\n\nhttp://docs.openstack.org/developer/tempest/HACKING.html#test-identification-with-idempotent-id","commit_id":"6db70203d577c891dfdf6d36e7ff2a994393ee1b"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"cbb9b80e14c32e590b9ecbf2f60b19642f296014","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        LOG.info(\u0027Fetch the zone as an admin\u0027)"},{"line_number":89,"context_line":"        _, body \u003d self.adm_client.show_zone("},{"line_number":90,"context_line":"            zone[\u0027id\u0027], params\u003d{\u0027all_tenants\u0027: True})"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        LOG.info(\u0027Ensure the fetched response matches the created zone\u0027)"},{"line_number":93,"context_line":"        self._assertExpected(zone, body)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_dd998921","line":90,"updated":"2016-04-04 14:01:03.000000000","message":"\"all_projects\"","commit_id":"ef9dadeda7c508b3152552fbc37d8716e1786e3d"},{"author":{"_account_id":11662,"name":"Paul Glass","email":"paul.glass@rackspace.com","username":"pglass"},"change_message_id":"fe9632a88bcc79cdabdb9e8df475a53f9981a3de","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        super(ZonesAdminTest, cls).setup_clients()"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        cls.client \u003d cls.os.zones_client"},{"line_number":87,"context_line":"        cls.adm_client \u003d cls.os_adm.zones_client"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @test.idempotent_id(\u00276477f92d-70ba-46eb-bd6c-fc50c405e222\u0027)"},{"line_number":90,"context_line":"    def test_get_other_tenant_zone(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a061dce_7c6e6cca","line":87,"updated":"2016-04-04 19:48:14.000000000","message":"Could we just call this \"cls.admin_client\"?","commit_id":"28dce3a55d0cc93975033dd2555cbbb551cea7e4"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"8f5a037e0baffcdc8ce60985075114841c580fa5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        super(ZonesAdminTest, cls).setup_clients()"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        cls.client \u003d cls.os.zones_client"},{"line_number":87,"context_line":"        cls.adm_client \u003d cls.os_adm.zones_client"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @test.idempotent_id(\u00276477f92d-70ba-46eb-bd6c-fc50c405e222\u0027)"},{"line_number":90,"context_line":"    def test_get_other_tenant_zone(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a061dce_1c949035","line":87,"in_reply_to":"9a061dce_7c6e6cca","updated":"2016-04-04 20:32:42.000000000","message":"Yea, this is one of those annoying things. \"admin\" creds clients end up in cls.os_adm.* - so it was a coin toss to choose the name. I went for \"adm\", but I\u0027ll change it.","commit_id":"28dce3a55d0cc93975033dd2555cbbb551cea7e4"}],"designate_tempest_tests/plugin.py":[{"author":{"_account_id":15171,"name":"Eric Larson","email":"eric.larson@rackspace.com","username":"elarson"},"change_message_id":"a723ef0a0efd4edce958b48dead372968fc49f8d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_623399f6","line":15,"updated":"2016-02-24 17:22:04.000000000","message":"Fwiw, the copyright statment typically includes the company / user as well the author. For example:\n\n```\n# Copyright 2015 Hewlett-Packard Development Company, L.P.\n#\n# Author: Federico Ceratto \u003cfederico.ceratto@hpe.com\u003e\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\"); you may\n# not use this file except in compliance with the License. You may obtain\n# a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n# License for the specific language governing permissions and limitations\n# under the License.\n```\n\nThat said, I\u0027m saying this for consistency sake. I\u0027m curious if there are more critical legal bits by adding \"All Rights Reserved\" and leaving out the author.","commit_id":"b631a9da0a0aa62645d499fa79c2c3e252499931"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"55e6e8210e388cc9ead257eec1ee6730f8a6162c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_327975f7","line":15,"in_reply_to":"bae84128_623399f6","updated":"2016-02-27 12:16:45.000000000","message":"@Eric: Re the notice headers HP\u0027s (current) policy is to use:\n\n    # Copyright 2015 Hewlett-Packard Development Company, L.P.\n\nand optionally an author name... We don\u0027t use \"All Rights Reserved\", as given the CLA it\u0027s apparantly meaningless.\n\nBUT, it\u0027s up to the submitting company / person to do what they want.. \n\nThat said, Just say \"Copyright, All Rights Reserved\" feels very unusual, either a company name or persons name (if an individual owns the copyright) should be here.","commit_id":"b631a9da0a0aa62645d499fa79c2c3e252499931"}]}
