)]}'
{"keystone/assignment/backends/sql.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"85865dde92209e6aeeedd4bd930beea5b346ba6c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    role_id\u003drole_id,"},{"line_number":127,"context_line":"                    inherited\u003dinherited_to_projects))"},{"line_number":128,"context_line":"        except sql.DBDuplicateEntry:  # nosec"},{"line_number":129,"context_line":"            # The v3 grant APIs are silent if the assignment already exists"},{"line_number":130,"context_line":"            pass"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def list_grant_role_ids(self, user_id\u003dNone, group_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_904af853","line":129,"updated":"2015-09-30 14:35:24.000000000","message":"nit: collapse these lines so that the comment looks like it\u0027s part of the # nosec.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7f93d67466c764caf6bf3b85f19847d7d23d15d8","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    role_id\u003drole_id,"},{"line_number":127,"context_line":"                    inherited\u003dinherited_to_projects))"},{"line_number":128,"context_line":"        except sql.DBDuplicateEntry:  # nosec"},{"line_number":129,"context_line":"            # The v3 grant APIs are silent if the assignment already exists"},{"line_number":130,"context_line":"            pass"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def list_grant_role_ids(self, user_id\u003dNone, group_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_3e53a418","line":129,"in_reply_to":"9a1a9d01_904af853","updated":"2015-09-30 23:53:35.000000000","message":"This makes the code hard to follow when there\u0027s multiple exceptions so I\u0027m going to leave this the way it is.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"}],"keystone/assignment/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c6311ba68d1588b78990efe810ecdbc3f2d9a44b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                role_list \u003d self._roles_from_role_dicts("},{"line_number":113,"context_line":"                    metadata_ref.get(\u0027roles\u0027, {}), False)"},{"line_number":114,"context_line":"            except exception.MetadataNotFound:"},{"line_number":115,"context_line":"                pass"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            if CONF.os_inherit.enabled:"},{"line_number":118,"context_line":"                # Now get any inherited roles for the owning domain"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_b1f27005","side":"PARENT","line":115,"updated":"2015-09-24 15:23:59.000000000","message":"This should have a comment justifying why the exception is being swallowed by the except block justifying why it should be ignored by bandit.","commit_id":"be0a827a48f15bdc1c303d200a3eb00879f542b4"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4efdf10908034bdc336c2b0b30091fb636817248","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                role_list \u003d self._roles_from_role_dicts("},{"line_number":113,"context_line":"                    metadata_ref.get(\u0027roles\u0027, {}), False)"},{"line_number":114,"context_line":"            except exception.MetadataNotFound:"},{"line_number":115,"context_line":"                pass"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            if CONF.os_inherit.enabled:"},{"line_number":118,"context_line":"                # Now get any inherited roles for the owning domain"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_0f6aa21a","side":"PARENT","line":115,"in_reply_to":"9a1a9d01_b1f27005","updated":"2015-09-28 19:02:54.000000000","message":"Done","commit_id":"be0a827a48f15bdc1c303d200a3eb00879f542b4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c6311ba68d1588b78990efe810ecdbc3f2d9a44b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                    role_list +\u003d self._roles_from_role_dicts("},{"line_number":123,"context_line":"                        metadata_ref.get(\u0027roles\u0027, {}), True)"},{"line_number":124,"context_line":"                except (exception.MetadataNotFound, exception.NotImplemented):"},{"line_number":125,"context_line":"                    pass"},{"line_number":126,"context_line":"                # As well inherited roles from parent projects"},{"line_number":127,"context_line":"                for p in self.resource_api.list_project_parents("},{"line_number":128,"context_line":"                        project_ref[\u0027id\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_f136a8b3","side":"PARENT","line":125,"updated":"2015-09-24 15:23:59.000000000","message":"same","commit_id":"be0a827a48f15bdc1c303d200a3eb00879f542b4"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4efdf10908034bdc336c2b0b30091fb636817248","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                    role_list +\u003d self._roles_from_role_dicts("},{"line_number":123,"context_line":"                        metadata_ref.get(\u0027roles\u0027, {}), True)"},{"line_number":124,"context_line":"                except (exception.MetadataNotFound, exception.NotImplemented):"},{"line_number":125,"context_line":"                    pass"},{"line_number":126,"context_line":"                # As well inherited roles from parent projects"},{"line_number":127,"context_line":"                for p in self.resource_api.list_project_parents("},{"line_number":128,"context_line":"                        project_ref[\u0027id\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_af7856f3","side":"PARENT","line":125,"in_reply_to":"9a1a9d01_f136a8b3","updated":"2015-09-28 19:02:54.000000000","message":"Done","commit_id":"be0a827a48f15bdc1c303d200a3eb00879f542b4"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"85865dde92209e6aeeedd4bd930beea5b346ba6c","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                role_list \u003d self._roles_from_role_dicts("},{"line_number":113,"context_line":"                    metadata_ref.get(\u0027roles\u0027, {}), False)"},{"line_number":114,"context_line":"            except exception.MetadataNotFound:  # nosec"},{"line_number":115,"context_line":"                # No metadata so no roles."},{"line_number":116,"context_line":"                pass"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            if CONF.os_inherit.enabled:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_106d88cb","line":115,"updated":"2015-09-30 14:35:24.000000000","message":"same comment applies here if possible.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                                                      domain_id\u003ddomain_id)"},{"line_number":162,"context_line":"                    role_list +\u003d self._roles_from_role_dicts("},{"line_number":163,"context_line":"                        metadata_ref.get(\u0027roles\u0027, {}), False)"},{"line_number":164,"context_line":"                except (exception.MetadataNotFound,  # nosec"},{"line_number":165,"context_line":"                        exception.NotImplemented):"},{"line_number":166,"context_line":"                    # MetadataNotFound implies no group grant, so skip."},{"line_number":167,"context_line":"                    # Ignore NotImplemented since not all backends support"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_7d01b805","line":164,"updated":"2015-10-04 02:39:08.000000000","message":"(nit) Shouldn\u0027t we be grouping the comment below with this one for consistency ? As the one just above ...","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"10bdb5c4d6a35738e6cefbf38f6f4a5c7060d1c7","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                                                      domain_id\u003ddomain_id)"},{"line_number":162,"context_line":"                    role_list +\u003d self._roles_from_role_dicts("},{"line_number":163,"context_line":"                        metadata_ref.get(\u0027roles\u0027, {}), False)"},{"line_number":164,"context_line":"                except (exception.MetadataNotFound,  # nosec"},{"line_number":165,"context_line":"                        exception.NotImplemented):"},{"line_number":166,"context_line":"                    # MetadataNotFound implies no group grant, so skip."},{"line_number":167,"context_line":"                    # Ignore NotImplemented since not all backends support"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_0b78a3f1","line":164,"in_reply_to":"9a1a9d01_7d01b805","updated":"2015-10-06 13:48:22.000000000","message":"I think it looks fine the way it is.","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            try:"},{"line_number":175,"context_line":"                metadata_ref \u003d self._get_metadata(user_id\u003duser_id,"},{"line_number":176,"context_line":"                                                  domain_id\u003ddomain_id)"},{"line_number":177,"context_line":"            except (exception.MetadataNotFound,  # nosec"},{"line_number":178,"context_line":"                    exception.NotImplemented):"},{"line_number":179,"context_line":"                # MetadataNotFound implies no user grants."},{"line_number":180,"context_line":"                # Ignore NotImplemented since not all backends support"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_10ff4302","line":177,"updated":"2015-10-04 02:39:08.000000000","message":"Same as above","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"}],"keystone/assignment/role_backends/ldap.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"19701d2273aac246b8cef31c0d5b64755878c2fe","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.role.check_allow_create()"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            self.get_role(role_id)"},{"line_number":58,"context_line":"        except exception.NotFound:  # nosec"},{"line_number":59,"context_line":"            pass"},{"line_number":60,"context_line":"        else:"},{"line_number":61,"context_line":"            msg \u003d _(\u0027Duplicate ID, %s.\u0027) % role_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_ff55b7c5","line":58,"updated":"2015-09-22 13:12:57.000000000","message":"do reasons need to be included with these?","commit_id":"25196f05858ef3915535b1045cf809236052e1f6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7e8dd846708a22f66f242cc4086bb869a1b8f4f0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.role.check_allow_create()"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            self.get_role(role_id)"},{"line_number":58,"context_line":"        except exception.NotFound:  # nosec"},{"line_number":59,"context_line":"            pass"},{"line_number":60,"context_line":"        else:"},{"line_number":61,"context_line":"            msg \u003d _(\u0027Duplicate ID, %s.\u0027) % role_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_aae33fd7","line":58,"in_reply_to":"ba15a1d1_ff55b7c5","updated":"2015-09-23 16:37:47.000000000","message":"Done","commit_id":"25196f05858ef3915535b1045cf809236052e1f6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"85865dde92209e6aeeedd4bd930beea5b346ba6c","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            self.get_role(role_id)"},{"line_number":58,"context_line":"        except exception.NotFound:  # nosec"},{"line_number":59,"context_line":"            # The role doesn\u0027t already exist, good."},{"line_number":60,"context_line":"            pass"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            msg \u003d _(\u0027Duplicate ID, %s.\u0027) % role_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_10c908ac","line":59,"updated":"2015-09-30 14:35:24.000000000","message":"why does keystone consider this good? a comment adding why would be nice.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7f93d67466c764caf6bf3b85f19847d7d23d15d8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            self.get_role(role_id)"},{"line_number":58,"context_line":"        except exception.NotFound:  # nosec"},{"line_number":59,"context_line":"            # The role doesn\u0027t already exist, good."},{"line_number":60,"context_line":"            pass"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            msg \u003d _(\u0027Duplicate ID, %s.\u0027) % role_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_83005d03","line":59,"in_reply_to":"9a1a9d01_10c908ac","updated":"2015-09-30 23:53:35.000000000","message":"Does this only apply to this one or does it apply to all of these where nosec is used? I don\u0027t want to go adding paragraphs of extra explanation to all of these only to find it out was only these 2 where it\u0027s needed. This code was pretty self-explanatory to begin with and there were no comments explaining it before.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"85865dde92209e6aeeedd4bd930beea5b346ba6c","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            self.role.get_by_name(role[\u0027name\u0027])"},{"line_number":67,"context_line":"        except exception.NotFound:  # nosec"},{"line_number":68,"context_line":"            # Another role with the same name doesn\u0027t exist, good."},{"line_number":69,"context_line":"            pass"},{"line_number":70,"context_line":"        else:"},{"line_number":71,"context_line":"            msg \u003d _(\u0027Duplicate name, %s.\u0027) % role[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_f0c25484","line":68,"updated":"2015-09-30 14:35:24.000000000","message":"same comments apply here.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"}],"keystone/auth/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"85865dde92209e6aeeedd4bd930beea5b346ba6c","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            try:"},{"line_number":582,"context_line":"                user_refs \u003d self.assignment_api.list_projects_for_user(user_id)"},{"line_number":583,"context_line":"            except exception.UserNotFound:  # nosec"},{"line_number":584,"context_line":"                # federated users have an id but they don\u0027t link to anything"},{"line_number":585,"context_line":"                pass"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        group_ids \u003d auth_context.get(\u0027group_ids\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_10dca844","line":584,"updated":"2015-09-30 14:35:24.000000000","message":"collapse these comments to be on the same line. this comment applies to all changes in this patch.","commit_id":"6f7884c75bbdf49f6cd70b707544f353b9adda00"}],"keystone/common/ldap/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"19701d2273aac246b8cef31c0d5b64755878c2fe","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    try:"},{"line_number":115,"context_line":"        return LDAP_VALUES[val]"},{"line_number":116,"context_line":"    except KeyError:  # nosec"},{"line_number":117,"context_line":"        pass"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        return int(val)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_3ffa4fbe","line":116,"updated":"2015-09-22 13:12:57.000000000","message":"do we need to include a comment here? same for all occurrences in this file.","commit_id":"25196f05858ef3915535b1045cf809236052e1f6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7e8dd846708a22f66f242cc4086bb869a1b8f4f0","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    try:"},{"line_number":115,"context_line":"        return LDAP_VALUES[val]"},{"line_number":116,"context_line":"    except KeyError:  # nosec"},{"line_number":117,"context_line":"        pass"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        return int(val)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_ea1297b3","line":116,"in_reply_to":"ba15a1d1_3ffa4fbe","updated":"2015-09-23 16:37:47.000000000","message":"Done","commit_id":"25196f05858ef3915535b1045cf809236052e1f6"}],"keystone/common/sql/migration_helpers.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        # Register the repo with the version control API"},{"line_number":178,"context_line":"        # If it already knows about the repo, it will throw"},{"line_number":179,"context_line":"        # an exception that we can safely ignore"},{"line_number":180,"context_line":"        except exceptions.DatabaseAlreadyControlledError:  # nosec"},{"line_number":181,"context_line":"            pass"},{"line_number":182,"context_line":"    except exception.MigrationNotProvided as e:"},{"line_number":183,"context_line":"        print(e)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_9d5e0c44","line":180,"updated":"2015-10-04 02:39:08.000000000","message":"(nit) Maybe we should move below part of the comment above saying why we are just passing here ?","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"10bdb5c4d6a35738e6cefbf38f6f4a5c7060d1c7","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        # Register the repo with the version control API"},{"line_number":178,"context_line":"        # If it already knows about the repo, it will throw"},{"line_number":179,"context_line":"        # an exception that we can safely ignore"},{"line_number":180,"context_line":"        except exceptions.DatabaseAlreadyControlledError:  # nosec"},{"line_number":181,"context_line":"            pass"},{"line_number":182,"context_line":"    except exception.MigrationNotProvided as e:"},{"line_number":183,"context_line":"        print(e)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_2b4c7fc6","line":180,"in_reply_to":"9a1a9d01_9d5e0c44","updated":"2015-10-06 13:48:22.000000000","message":"I think this is fine the way it is.","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"}],"keystone/contrib/federation/utils.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"9ae0a1699c7559b8544fceb3646efbde22074720","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        try:"},{"line_number":205,"context_line":"            remote_id_parameter \u003d CONF[protocol][\u0027remote_id_attribute\u0027]"},{"line_number":206,"context_line":"        except AttributeError:  # nosec"},{"line_number":207,"context_line":"            # Not remote ID attr, will be logged and use the default instead."},{"line_number":208,"context_line":"            pass"},{"line_number":209,"context_line":"    if not remote_id_parameter:"},{"line_number":210,"context_line":"        LOG.debug(\u0027Cannot find \"remote_id_attribute\" in configuration \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_b2ae007f","line":207,"updated":"2015-10-01 08:11:57.000000000","message":"nit: Did you mean \"No remote ID attr...\" ?","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"10bdb5c4d6a35738e6cefbf38f6f4a5c7060d1c7","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        try:"},{"line_number":205,"context_line":"            remote_id_parameter \u003d CONF[protocol][\u0027remote_id_attribute\u0027]"},{"line_number":206,"context_line":"        except AttributeError:  # nosec"},{"line_number":207,"context_line":"            # Not remote ID attr, will be logged and use the default instead."},{"line_number":208,"context_line":"            pass"},{"line_number":209,"context_line":"    if not remote_id_parameter:"},{"line_number":210,"context_line":"        LOG.debug(\u0027Cannot find \"remote_id_attribute\" in configuration \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_6b527769","line":207,"in_reply_to":"9a1a9d01_b2ae007f","updated":"2015-10-06 13:48:22.000000000","message":"Done","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"}],"keystone/identity/core.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        user_ref.pop(\u0027domains\u0027, None)"},{"line_number":70,"context_line":"        try:"},{"line_number":71,"context_line":"            user_ref[\u0027extra\u0027].pop(\u0027password\u0027, None)"},{"line_number":72,"context_line":"            user_ref[\u0027extra\u0027].pop(\u0027tenants\u0027, None)"},{"line_number":73,"context_line":"        except KeyError:  # nosec"},{"line_number":74,"context_line":"            # ok to not have extra in the user_ref."},{"line_number":75,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_dd6c840a","line":72,"updated":"2015-10-04 02:39:08.000000000","message":"Hmm, interesting. In the case the line above raises KeyError, \u0027tenants\u0027 would still be returned inside \u0027extra\u0027. Maybe a bug ?","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"10bdb5c4d6a35738e6cefbf38f6f4a5c7060d1c7","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        user_ref.pop(\u0027domains\u0027, None)"},{"line_number":70,"context_line":"        try:"},{"line_number":71,"context_line":"            user_ref[\u0027extra\u0027].pop(\u0027password\u0027, None)"},{"line_number":72,"context_line":"            user_ref[\u0027extra\u0027].pop(\u0027tenants\u0027, None)"},{"line_number":73,"context_line":"        except KeyError:  # nosec"},{"line_number":74,"context_line":"            # ok to not have extra in the user_ref."},{"line_number":75,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_ebcc4737","line":72,"in_reply_to":"9a1a9d01_dd6c840a","updated":"2015-10-06 13:48:22.000000000","message":"KeyError would happen if there\u0027s no extra so this line wouldn\u0027t be reached.","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"}],"keystone/models/token_model.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            elif \u0027user\u0027 in self:"},{"line_number":118,"context_line":"                return \"Default\""},{"line_number":119,"context_line":"        except KeyError:  # nosec"},{"line_number":120,"context_line":"            # Do not raise KeyError, raise UnexpectedError"},{"line_number":121,"context_line":"            pass"},{"line_number":122,"context_line":"        raise exception.UnexpectedError()"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_5daab41a","line":120,"updated":"2015-10-04 02:39:08.000000000","message":"We could simply raise the exception inside the except block","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"10bdb5c4d6a35738e6cefbf38f6f4a5c7060d1c7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            elif \u0027user\u0027 in self:"},{"line_number":118,"context_line":"                return \"Default\""},{"line_number":119,"context_line":"        except KeyError:  # nosec"},{"line_number":120,"context_line":"            # Do not raise KeyError, raise UnexpectedError"},{"line_number":121,"context_line":"            pass"},{"line_number":122,"context_line":"        raise exception.UnexpectedError()"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_ebf3e771","line":120,"in_reply_to":"9a1a9d01_5daab41a","updated":"2015-10-06 13:48:22.000000000","message":"sure, but that\u0027s not how the developer decided to write the code so I don\u0027t want to change it in this commit.","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            elif \u0027user\u0027 in self:"},{"line_number":130,"context_line":"                return CONF.identity.default_domain_id"},{"line_number":131,"context_line":"        except KeyError:  # nosec"},{"line_number":132,"context_line":"            # Do not raise KeyError, raise UnexpectedError"},{"line_number":133,"context_line":"            pass"},{"line_number":134,"context_line":"        raise exception.UnexpectedError()"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_7da53845","line":132,"updated":"2015-10-04 02:39:08.000000000","message":"Same as above","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            elif \u0027tenant\u0027 in self[\u0027token\u0027]:"},{"line_number":186,"context_line":"                return CONF.identity.default_domain_id"},{"line_number":187,"context_line":"        except KeyError:  # nosec"},{"line_number":188,"context_line":"            # Do not raise KeyError, raise UnexpectedError"},{"line_number":189,"context_line":"            pass"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        raise exception.UnexpectedError()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_1d63dc1b","line":188,"updated":"2015-10-04 02:39:08.000000000","message":"Same as above","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            if \u0027tenant\u0027 in self[\u0027token\u0027]:"},{"line_number":199,"context_line":"                return \u0027Default\u0027"},{"line_number":200,"context_line":"        except KeyError:  # nosec"},{"line_number":201,"context_line":"            # Do not raise KeyError, raise UnexpectedError"},{"line_number":202,"context_line":"            pass"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        raise exception.UnexpectedError()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_3d66e029","line":201,"updated":"2015-10-04 02:39:08.000000000","message":"Same as above","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"}],"keystone/resource/config_backends/sql.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a491d9ed06579cfc2f8eff4d87d42929613febc5","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                session.add(ref)"},{"line_number":132,"context_line":"            return True"},{"line_number":133,"context_line":"        except sql.DBDuplicateEntry:  # nosec"},{"line_number":134,"context_line":"            # Continue on and return False to indicate failure."},{"line_number":135,"context_line":"            pass"},{"line_number":136,"context_line":"        return False"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_bdabd01d","line":134,"updated":"2015-10-04 02:39:08.000000000","message":"(nit) We could simply return false inside the except block","commit_id":"299e33a5acf729424d09c8f366e6e93997616b80"}]}
