)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"05b634e850734135992b934f47c89038e204f617","unresolved":false,"context_lines":[{"line_number":9,"context_line":"set/unset comamnd classes should inherit from cliff.Command class."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie28711ac8823dc9eb13cf83877864ca436b928bc"},{"line_number":12,"context_line":"Partial-Bug: 1546065"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bae84128_0074d765","line":12,"updated":"2016-02-22 13:57:11.000000000","message":"Doesn\u0027t this patch set close the bug?","commit_id":"e4ad64c06f5567afa2ec71a589e6e915daa21aac"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f58a3a6d6d3cd6ca1b4588f0c9f7bc05f8534201","unresolved":false,"context_lines":[{"line_number":9,"context_line":"set/unset comamnd classes should inherit from cliff.Command class."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie28711ac8823dc9eb13cf83877864ca436b928bc"},{"line_number":12,"context_line":"Partial-Bug: 1546065"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bae84128_e673cc7e","line":12,"in_reply_to":"bae84128_0074d765","updated":"2016-02-22 14:18:23.000000000","message":"Ignore this comment.","commit_id":"e4ad64c06f5567afa2ec71a589e6e915daa21aac"}],"functional/tests/network/v2/test_security_group.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"b8091714c20390ce1da50bb8f84fc8e5e90e9442","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        raw_output \u003d self.openstack(\u0027security group list\u0027 + opts)"},{"line_number":45,"context_line":"        self.assertIn(self.NAME, raw_output)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def test_security_group_set(cls):"},{"line_number":49,"context_line":"        raw_output \u003d cls.openstack(\u0027security group set --description NSA \u0027 +"},{"line_number":50,"context_line":"                                   cls.NAME)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_b0e38ad8","line":47,"updated":"2016-02-17 14:24:56.000000000","message":"I don\u0027t think you need to change this to a class method.  Can\u0027t you use self.assertEqual() to compare the raw_output?","commit_id":"31e1cd493a56df8db1df0973188c85e85868eb43"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"45654ab21dc7cbaf19bba80dd3ef9fc5d6bee108","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        raw_output \u003d self.openstack(\u0027security group list\u0027 + opts)"},{"line_number":45,"context_line":"        self.assertIn(self.NAME, raw_output)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def test_security_group_set(cls):"},{"line_number":49,"context_line":"        raw_output \u003d cls.openstack(\u0027security group set --description NSA \u0027 +"},{"line_number":50,"context_line":"                                   cls.NAME)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_a7dae514","line":47,"in_reply_to":"dae33548_55aac719","updated":"2016-02-18 15:45:58.000000000","message":"tests_network and test_router do not use class method for their \"set\" tests.  I think class methods are often used for to setup and cleanup and not the tests themselves.","commit_id":"31e1cd493a56df8db1df0973188c85e85868eb43"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"cdeccd2d4ae218d86269b7608d64db1461ec6efc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        raw_output \u003d self.openstack(\u0027security group list\u0027 + opts)"},{"line_number":45,"context_line":"        self.assertIn(self.NAME, raw_output)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def test_security_group_set(cls):"},{"line_number":49,"context_line":"        raw_output \u003d cls.openstack(\u0027security group set --description NSA \u0027 +"},{"line_number":50,"context_line":"                                   cls.NAME)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_dbe7eb44","line":47,"in_reply_to":"dae33548_a7dae514","updated":"2016-02-19 02:36:57.000000000","message":"OK. I didn\u0027t notice that. :)\n\nFollowed.","commit_id":"31e1cd493a56df8db1df0973188c85e85868eb43"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"710558a9597b2be7e292af8534e6edea20191e7b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        raw_output \u003d self.openstack(\u0027security group list\u0027 + opts)"},{"line_number":45,"context_line":"        self.assertIn(self.NAME, raw_output)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def test_security_group_set(cls):"},{"line_number":49,"context_line":"        raw_output \u003d cls.openstack(\u0027security group set --description NSA \u0027 +"},{"line_number":50,"context_line":"                                   cls.NAME)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_55aac719","line":47,"in_reply_to":"dae33548_b0e38ad8","updated":"2016-02-18 06:12:39.000000000","message":"I think it is OK to use assertEqual, but not a classmethod. I was just following the original code style. It seems that all commands without any output are asserted by cls.assertOutput().\n\nShall we follow the style in this patch ? If we need to change it, I think we need to change them all.","commit_id":"31e1cd493a56df8db1df0973188c85e85868eb43"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"9f08010ade18712e313563eb0b17ea1021fb0031","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertIn(self.NAME, raw_output)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_security_group_set(self):"},{"line_number":48,"context_line":"        raw_output \u003d self.openstack("},{"line_number":49,"context_line":"            \u0027security group set --description NSA \u0027 + self.NAME"},{"line_number":50,"context_line":"        )"},{"line_number":51,"context_line":"        self.assertEqual(\u0027\u0027, raw_output)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_1588f421","line":48,"updated":"2016-02-19 13:42:37.000000000","message":"Similar to https://review.openstack.org/#/c/280663/, I think the set should not be verified with a show.","commit_id":"2888b81079ab264001bc42a73e04953ef738b833"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d3b470d824db9c6d571beef3a6ac7ab43ee82f9f","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        opts \u003d self.get_show_opts([\u0027description\u0027])"},{"line_number":54,"context_line":"        raw_output \u003d self.openstack(\u0027security group show \u0027 + self.NAME + opts)"},{"line_number":55,"context_line":"        self.assertEqual(u\"NSA\\n\", raw_output)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_security_group_show(self):"},{"line_number":58,"context_line":"        opts \u003d self.get_show_opts(self.FIELDS)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_8013c7b7","line":55,"updated":"2016-02-22 14:05:13.000000000","message":"I just noticed, but why is this string prefixed with \u0027u\u0027?  Is it really necessary?","commit_id":"e4ad64c06f5567afa2ec71a589e6e915daa21aac"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"5f0fdebba29b14f977eb09930ccc085e176bcb4a","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        opts \u003d self.get_show_opts([\u0027description\u0027])"},{"line_number":54,"context_line":"        raw_output \u003d self.openstack(\u0027security group show \u0027 + self.NAME + opts)"},{"line_number":55,"context_line":"        self.assertEqual(u\"NSA\\n\", raw_output)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_security_group_show(self):"},{"line_number":58,"context_line":"        opts \u003d self.get_show_opts(self.FIELDS)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_a6a0a444","line":55,"in_reply_to":"bae84128_8013c7b7","updated":"2016-02-22 14:28:12.000000000","message":"No, not necessary. I just copied the output of the commands...\n\nLet\u0027s remove all of them.","commit_id":"e4ad64c06f5567afa2ec71a589e6e915daa21aac"}],"openstackclient/compute/v2/security_group.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"45654ab21dc7cbaf19bba80dd3ef9fc5d6bee108","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                ) for s in rules))"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class SetSecurityGroup(command.Command):"},{"line_number":293,"context_line":"    \"\"\"Set security group properties\"\"\""},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_0737514d","line":292,"updated":"2016-02-18 15:45:58.000000000","message":"Similar to https://review.openstack.org/#/c/280663/, a release note for the behavior change is probably a good idea.","commit_id":"31e1cd493a56df8db1df0973188c85e85868eb43"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"09af015ff9d4b5978f759d36052c2b9b4e8360e8","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                ) for s in rules))"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class SetSecurityGroup(command.Command):"},{"line_number":293,"context_line":"    \"\"\"Set security group properties\"\"\""},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_5bc3db8a","line":292,"in_reply_to":"dae33548_0737514d","updated":"2016-02-19 02:37:35.000000000","message":"Done","commit_id":"31e1cd493a56df8db1df0973188c85e85868eb43"}],"releasenotes/notes/bug-1546065-41d09ffbd8606513.yaml":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"5a3050b3c2c783a2be671a50aa68c8f61a1b19d6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Command ``flavor set/unset`` now outputs nothing."},{"line_number":4,"context_line":"    [Bug `1546065 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1546065\u003e`_]"},{"line_number":5,"context_line":"  - Command ``security group set`` now outputs nothing."},{"line_number":6,"context_line":"    [Bug `1546065 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1546065\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bae84128_37d15158","line":5,"updated":"2016-02-22 18:34:52.000000000","message":"The command no longer accepts the display arguments.  Also, http://docs.openstack.org/developer/python-openstackclient/backwards-incompatible.html should probably be followed and updated given that \"image set commands will no longer return the modified resource\" is included in the list.","commit_id":"50f69f1122c03e8368f688f33a17e635ad1b9a16"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"cb1072a3f4f810b1c8fa9547fa9096ec1b4df1d5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Command ``flavor set/unset`` now outputs nothing."},{"line_number":4,"context_line":"    [Bug `1546065 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1546065\u003e`_]"},{"line_number":5,"context_line":"  - Command ``security group set`` now outputs nothing."},{"line_number":6,"context_line":"    [Bug `1546065 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1546065\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bae84128_fc533e37","line":5,"in_reply_to":"bae84128_37d15158","updated":"2016-02-23 03:12:10.000000000","message":"OK, followed. I always miss this kind of doc now and then. :)","commit_id":"50f69f1122c03e8368f688f33a17e635ad1b9a16"}]}
