)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"927eb5af87687995f906f2ccf454cb32249bb89d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Max Grishkin \u003cmgrishkin@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-05-11 12:00:20 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reworked scenario tests to use their own non-default security groups"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If82c681b4a7f62808f46b03c57d113f8f5c97f6f"},{"line_number":10,"context_line":"Closes-Bug: #1247060"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7adec928_af000c02","line":7,"updated":"2014-05-14 13:59:43.000000000","message":"Please, provide the commit message according to https://wiki.openstack.org/wiki/Gerrit_Workflow#Committing_Changes\n\nThis line has more 50 characters.","commit_id":"57569a860295b42d381e90b2e22e2c0a8f78db81"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"92afc423bb23b5065b0c3d428aeb1bcc62b2eb87","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Max Grishkin \u003cmgrishkin@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-05-11 12:00:20 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reworked scenario tests to use their own non-default security groups"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If82c681b4a7f62808f46b03c57d113f8f5c97f6f"},{"line_number":10,"context_line":"Closes-Bug: #1247060"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7adec928_1273e7b1","line":7,"in_reply_to":"7adec928_af000c02","updated":"2014-05-14 14:56:49.000000000","message":"Don\u0027t pay attention to the comment above. This is recommendation but not strict rule.\nAnyway, please, provide more info in the commit message.","commit_id":"57569a860295b42d381e90b2e22e2c0a8f78db81"}],"tempest/scenario/manager.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7d88314aea2ae910756367e8e58ddc2ba50ed637","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"    def _create_security_group_nova(self, client\u003dNone,"},{"line_number":287,"context_line":"                                    namestart\u003d\u0027secgroup-smoke-\u0027,"},{"line_number":288,"context_line":"                                    tenant_id\u003dNone):"},{"line_number":289,"context_line":"        if client is None:"},{"line_number":290,"context_line":"            client \u003d self.compute_client"},{"line_number":291,"context_line":"        # Create security group"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_d4424267","line":288,"updated":"2014-06-03 13:46:25.000000000","message":"tenant_id appears to be unused here?","commit_id":"94250b372246680bd8d3b8cfd37bf7792ec00bff"},{"author":{"_account_id":8075,"name":"Grishkin","email":"MGrishkin@GMail.com","username":"Grishkin"},"change_message_id":"1a0022f02a7a09aa1a01600552af562f1563a668","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"    def _create_security_group_nova(self, client\u003dNone,"},{"line_number":287,"context_line":"                                    namestart\u003d\u0027secgroup-smoke-\u0027,"},{"line_number":288,"context_line":"                                    tenant_id\u003dNone):"},{"line_number":289,"context_line":"        if client is None:"},{"line_number":290,"context_line":"            client \u003d self.compute_client"},{"line_number":291,"context_line":"        # Create security group"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_f9072a16","line":288,"in_reply_to":"1ae5cdf2_d4424267","updated":"2014-06-03 20:28:38.000000000","message":"Done","commit_id":"94250b372246680bd8d3b8cfd37bf7792ec00bff"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"02341cfefe394b88dd0676c6ad5b649f465636f6","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    def _create_security_group_nova(self, client\u003dNone,"},{"line_number":287,"context_line":"                                    namestart\u003d\u0027secgroup-smoke-\u0027,"},{"line_number":288,"context_line":"                                    tenant_id\u003dNone):"},{"line_number":289,"context_line":"        if client is None:"},{"line_number":290,"context_line":"            client \u003d self.compute_client"},{"line_number":291,"context_line":"        # Create security group"},{"line_number":292,"context_line":"        sg_name \u003d data_utils.rand_name(namestart)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7adec928_89cf2cb3","line":289,"updated":"2014-05-21 10:45:46.000000000","message":"Maybe it is better check\n\n    if not client:\n    ...\n\nIf client is blank line, empty list/dict (\"\", [], {}) accidentally, \"if\" statement will not be executed.","commit_id":"94250b372246680bd8d3b8cfd37bf7792ec00bff"},{"author":{"_account_id":8075,"name":"Grishkin","email":"MGrishkin@GMail.com","username":"Grishkin"},"change_message_id":"07fb77708e52511b8d9913d1eea56f3b83a979c9","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    def _create_security_group_nova(self, client\u003dNone,"},{"line_number":287,"context_line":"                                    namestart\u003d\u0027secgroup-smoke-\u0027,"},{"line_number":288,"context_line":"                                    tenant_id\u003dNone):"},{"line_number":289,"context_line":"        if client is None:"},{"line_number":290,"context_line":"            client \u003d self.compute_client"},{"line_number":291,"context_line":"        # Create security group"},{"line_number":292,"context_line":"        sg_name \u003d data_utils.rand_name(namestart)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7adec928_89547e22","line":289,"in_reply_to":"7adec928_09722ee5","updated":"2014-05-21 18:19:41.000000000","message":"Done","commit_id":"94250b372246680bd8d3b8cfd37bf7792ec00bff"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a7fa5e2337ced7d55fd64e541270f4d980cae18b","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    def _create_security_group_nova(self, client\u003dNone,"},{"line_number":287,"context_line":"                                    namestart\u003d\u0027secgroup-smoke-\u0027,"},{"line_number":288,"context_line":"                                    tenant_id\u003dNone):"},{"line_number":289,"context_line":"        if client is None:"},{"line_number":290,"context_line":"            client \u003d self.compute_client"},{"line_number":291,"context_line":"        # Create security group"},{"line_number":292,"context_line":"        sg_name \u003d data_utils.rand_name(namestart)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7adec928_13a41756","line":289,"in_reply_to":"7adec928_89547e22","updated":"2014-05-21 22:08:24.000000000","message":"OK.","commit_id":"94250b372246680bd8d3b8cfd37bf7792ec00bff"},{"author":{"_account_id":8075,"name":"Grishkin","email":"MGrishkin@GMail.com","username":"Grishkin"},"change_message_id":"c27b59c3c57f733df014bc65b9e911400411ccb5","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    def _create_security_group_nova(self, client\u003dNone,"},{"line_number":287,"context_line":"                                    namestart\u003d\u0027secgroup-smoke-\u0027,"},{"line_number":288,"context_line":"                                    tenant_id\u003dNone):"},{"line_number":289,"context_line":"        if client is None:"},{"line_number":290,"context_line":"            client \u003d self.compute_client"},{"line_number":291,"context_line":"        # Create security group"},{"line_number":292,"context_line":"        sg_name \u003d data_utils.rand_name(namestart)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7adec928_09722ee5","line":289,"in_reply_to":"7adec928_89cf2cb3","updated":"2014-05-21 18:18:45.000000000","message":"Passing here something else then None or valid compute client is an erroneous usage of this method, so making this error to pass silently is probably not a good idea. After all, passing None as a default argument value and then checking by \"is None\" is a common pattern: example code in official Python tutorial uses \"is None\" approach and, for example, pep8 script is written in the same style.","commit_id":"94250b372246680bd8d3b8cfd37bf7792ec00bff"}],"tempest/scenario/test_snapshot_pattern.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"5fd53e13804017328c2429f9683fdbd74d2d122c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        # prepare for booting a instance"},{"line_number":76,"context_line":"        self._add_keypair()"},{"line_number":77,"context_line":"        self.security_group \u003d self._create_security_group_nova("},{"line_number":78,"context_line":"            tenant_id\u003dself.tenant_id)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # boot a instance and create a timestamp file in it"},{"line_number":81,"context_line":"        server \u003d self._boot_image(CONF.compute.image_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2F79s%3D","line":78,"updated":"2014-04-16 11:58:58.000000000","message":"Isn\u0027t  the return value \"self.security_group\" unnecessary ?","commit_id":"b96c176f88d79baddb571315b83756d5ee5b4539"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"afc8ac96f96b0c942e18ae9c919fb49e644905be","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        # prepare for booting a instance"},{"line_number":76,"context_line":"        self._add_keypair()"},{"line_number":77,"context_line":"        self.security_group \u003d self._create_security_group_nova("},{"line_number":78,"context_line":"            tenant_id\u003dself.tenant_id)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # boot a instance and create a timestamp file in it"},{"line_number":81,"context_line":"        server \u003d self._boot_image(CONF.compute.image_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2F7vY%3D","line":78,"in_reply_to":"AAAAXH%2F%2F70A%3D","updated":"2014-04-16 12:25:21.000000000","message":"Ah, I see. That\u0027s my mistake, sorry.","commit_id":"b96c176f88d79baddb571315b83756d5ee5b4539"},{"author":{"_account_id":8075,"name":"Grishkin","email":"MGrishkin@GMail.com","username":"Grishkin"},"change_message_id":"4a92b73265759f663b492b768dbcacb839e024cb","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        # prepare for booting a instance"},{"line_number":76,"context_line":"        self._add_keypair()"},{"line_number":77,"context_line":"        self.security_group \u003d self._create_security_group_nova("},{"line_number":78,"context_line":"            tenant_id\u003dself.tenant_id)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # boot a instance and create a timestamp file in it"},{"line_number":81,"context_line":"        server \u003d self._boot_image(CONF.compute.image_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2F70A%3D","line":78,"in_reply_to":"AAAAXH%2F%2F79s%3D","updated":"2014-04-16 12:19:37.000000000","message":"self.security_group is used in _boot_image.","commit_id":"b96c176f88d79baddb571315b83756d5ee5b4539"}]}
