)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"27f655820e4b7cbb4ca1eba02683b446164994cb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     M V P Nitesh \u003cm.nitesh@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-17 17:55:11 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Can add description for role creation in OSC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now user can add the description when user create\u0027s the role using OSC"},{"line_number":10,"context_line":"``openstack role create`` command. User can add the description by adding"},{"line_number":11,"context_line":"`--description \u003cDescription\u003e` to OSC ``openstack role create`` command."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I230af9cc833af13064636b5d9a7ce6334c3f6e9a"},{"line_number":14,"context_line":"Closes-Bug: #1669080"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f1a1f67_09c30b5f","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":71},"updated":"2017-07-17 13:19:54.000000000","message":"i\u0027d phrase this in the context of keystone, not OSC.","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"36bd8296b700d59bc22b8c0d6ed28abc076de505","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now user can add the description when user create\u0027s the role using OSC"},{"line_number":10,"context_line":"``openstack role create`` command. User can add the description by adding"},{"line_number":11,"context_line":"`--description \u003cDescription\u003e` to OSC ``openstack role create`` command."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I230af9cc833af13064636b5d9a7ce6334c3f6e9a"},{"line_number":14,"context_line":"Closes-Bug: #1669080"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f1a1f67_21813bc4","line":11,"in_reply_to":"1f1a1f67_09c30b5f","updated":"2017-07-17 15:52:09.000000000","message":"++ \n\nThis could be phrased so that folks know keystone now supports descriptions for roles. Subsequent patches to the clients (OSC) will elaborate on the client support bits.","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"}],"api-ref/source/v3/parameters.yaml":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"ec61051a75543d0370a3cfbda76b5e68eecceaa7","unresolved":false,"context_lines":[{"line_number":1307,"context_line":"  type: string"},{"line_number":1308,"context_line":"role_description_response_body:"},{"line_number":1309,"context_line":"  description: |"},{"line_number":1310,"context_line":"    Add description about the role."},{"line_number":1311,"context_line":"  in: body"},{"line_number":1312,"context_line":"  required: false"},{"line_number":1313,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df3967d1_5ccd402f","line":1310,"range":{"start_line":1310,"start_character":4,"end_line":1310,"end_character":7},"updated":"2017-08-03 18:55:03.000000000","message":"nit: \"Add\" is unnecessary and inconsistent with the other parameters. Just say \"The role description\". Same above.","commit_id":"03a5a514d71352cd4e1d41d820e6a9154de98426"},{"author":{"_account_id":20401,"name":"M V P Nitesh","email":"parimalanitesh@gmail.com","username":"mvpnitesh"},"change_message_id":"d7b68e8f032494dd76e2514e8c22a6e16710d148","unresolved":false,"context_lines":[{"line_number":1307,"context_line":"  type: string"},{"line_number":1308,"context_line":"role_description_response_body:"},{"line_number":1309,"context_line":"  description: |"},{"line_number":1310,"context_line":"    Add description about the role."},{"line_number":1311,"context_line":"  in: body"},{"line_number":1312,"context_line":"  required: false"},{"line_number":1313,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"df3967d1_7cefcde8","line":1310,"range":{"start_line":1310,"start_character":4,"end_line":1310,"end_character":7},"in_reply_to":"df3967d1_5ccd402f","updated":"2017-08-04 12:12:32.000000000","message":"Done","commit_id":"03a5a514d71352cd4e1d41d820e6a9154de98426"}],"keystone/assignment/schema.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ea24abd0d751beb1e5ff488453860338919763d8","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"_role_properties \u003d {"},{"line_number":33,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":34,"context_line":"    \u0027description\u0027: parameter_types.description"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"role_create \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_57c47040","line":34,"updated":"2017-07-20 20:08:03.000000000","message":"We have a separate module dedicated to testing the schemas we define for create and update. There are some examples you can use to build out tests for this, too [0].\n\n[0] https://github.com/openstack/keystone/blob/025e844fc485c23be1de033473f3cadd7486b642/keystone/tests/unit/test_validation.py#L354-L366","commit_id":"8c3491ae25efcc0117b030ffbd747ec3cb533033"}],"keystone/common/sql/contract_repo/versions/034_contract_add_role_description_to_role_table.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"cb1203b7c961f24e8aeda80a55f6aa68a0933179","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"def upgrade(migrate_engine):"},{"line_number":15,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_112469ae","line":15,"updated":"2018-08-23 06:42:09.000000000","message":"034 is already used for other migration. So please change the number to a newest one.","commit_id":"e4cb2935c53f99e713fa82b5773ea19ce47d7841"}],"keystone/common/sql/data_migration_repo/versions/034_migrate_add_role_description_to_role_table.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"cb1203b7c961f24e8aeda80a55f6aa68a0933179","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"def upgrade(migrate_engine):"},{"line_number":15,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_b13c95c8","line":15,"updated":"2018-08-23 06:42:09.000000000","message":"ditto","commit_id":"e4cb2935c53f99e713fa82b5773ea19ce47d7841"}],"keystone/common/sql/expand_repo/versions/034_expand_add_role_description_to_role_table.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"cb1203b7c961f24e8aeda80a55f6aa68a0933179","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import sqlalchemy as sql"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"def upgrade(migrate_engine):"},{"line_number":17,"context_line":"    meta \u003d sql.MetaData()"},{"line_number":18,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_d13911d7","line":16,"updated":"2018-08-23 06:42:09.000000000","message":"ditto","commit_id":"e4cb2935c53f99e713fa82b5773ea19ce47d7841"}],"keystone/tests/unit/assignment/test_core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"36bd8296b700d59bc22b8c0d6ed28abc076de505","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    def test_get_role_returns_not_found(self):"},{"line_number":26,"context_line":"        self.assertRaises(exception.RoleNotFound,"},{"line_number":27,"context_line":"                          self.role_api.get_role,"},{"line_number":28,"context_line":"                          uuid.uuid4().hex)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_create_duplicate_role_name_fails(self):"},{"line_number":31,"context_line":"        role_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f1a1f67_21393bf1","side":"PARENT","line":28,"updated":"2017-07-17 15:52:09.000000000","message":"I agree with all of Steve\u0027s comments. Since `description` is an option attribute, it doesn\u0027t need to be included in all tests. An additional test case that ensures the description is set on a role would suffice.","commit_id":"b3fc06c9ef6a0a3d317f414962bab3d309c2e6c0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"27f655820e4b7cbb4ca1eba02683b446164994cb","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                          self.role_api.get_role,"},{"line_number":28,"context_line":"                          uuid.uuid4().hex)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_create_duplicate_role_name_fails(self):"},{"line_number":31,"context_line":"        role_id \u003d uuid.uuid4().hex"},{"line_number":32,"context_line":"        role \u003d unit.new_role_ref(id\u003drole_id, name\u003d\u0027fake1name\u0027,"},{"line_number":33,"context_line":"                                 description\u003d\u0027test_description\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f1a1f67_89c4bb92","line":30,"range":{"start_line":30,"start_character":8,"end_line":30,"end_character":45},"updated":"2017-07-17 13:19:54.000000000","message":"this test shouldn\u0027t change","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"27f655820e4b7cbb4ca1eba02683b446164994cb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                          new_role_id,"},{"line_number":40,"context_line":"                          role)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_rename_duplicate_role_name_fails(self):"},{"line_number":43,"context_line":"        role_id1 \u003d uuid.uuid4().hex"},{"line_number":44,"context_line":"        role_id2 \u003d uuid.uuid4().hex"},{"line_number":45,"context_line":"        role1 \u003d unit.new_role_ref(id\u003drole_id1, name\u003d\u0027fake1name\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f1a1f67_49ba230a","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":45},"updated":"2017-07-17 13:19:54.000000000","message":"this test shouldn\u0027t change","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"27f655820e4b7cbb4ca1eba02683b446164994cb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self.assertDictEqual(role, role_ref_dict)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        role[\u0027name\u0027] \u003d uuid.uuid4().hex"},{"line_number":65,"context_line":"        role[\u0027description\u0027] \u003d \u0027test_description\u0027"},{"line_number":66,"context_line":"        updated_role_ref \u003d self.role_api.update_role(role[\u0027id\u0027], role)"},{"line_number":67,"context_line":"        role_ref \u003d self.role_api.get_role(role[\u0027id\u0027])"},{"line_number":68,"context_line":"        role_ref_dict \u003d {x: role_ref[x] for x in role_ref}"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f1a1f67_09d9cb7d","line":65,"range":{"start_line":65,"start_character":30,"end_line":65,"end_character":48},"updated":"2017-07-17 13:19:54.000000000","message":"use uuid.uuid4().hex here instead","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"27f655820e4b7cbb4ca1eba02683b446164994cb","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.assertEqual(expected_role_ids, role_ids)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @unit.skip_if_cache_disabled(\u0027role\u0027)"},{"line_number":92,"context_line":"    def test_cache_layer_role_crud(self):"},{"line_number":93,"context_line":"        role \u003d unit.new_role_ref()"},{"line_number":94,"context_line":"        role_id \u003d role[\u0027id\u0027]"},{"line_number":95,"context_line":"        # Create role"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f1a1f67_293927a3","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":34},"updated":"2017-07-17 13:19:54.000000000","message":"this test shouldn\u0027t change","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ea24abd0d751beb1e5ff488453860338919763d8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertDictEqual(role, role_ref_dict)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        role[\u0027name\u0027] \u003d uuid.uuid4().hex"},{"line_number":62,"context_line":"        role[\u0027description\u0027] \u003d uuid.uuid4().hex"},{"line_number":63,"context_line":"        updated_role_ref \u003d self.role_api.update_role(role[\u0027id\u0027], role)"},{"line_number":64,"context_line":"        role_ref \u003d self.role_api.get_role(role[\u0027id\u0027])"},{"line_number":65,"context_line":"        role_ref_dict \u003d {x: role_ref[x] for x in role_ref}"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_f7093c95","line":62,"updated":"2017-07-20 20:08:03.000000000","message":"We could probably elaborate on this a little bit and create a dedicated test for this. Some that tests descriptions can be created for role as asserts the value is what it should be. We can do the same thing for role updates.","commit_id":"8c3491ae25efcc0117b030ffbd747ec3cb533033"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"ec61051a75543d0370a3cfbda76b5e68eecceaa7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                          self.role_api.get_role,"},{"line_number":71,"context_line":"                          role[\u0027id\u0027])"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_role_crud_with_description(self):"},{"line_number":74,"context_line":"        role \u003d unit.new_role_ref()"},{"line_number":75,"context_line":"        self.role_api.create_role(role[\u0027id\u0027], role)"},{"line_number":76,"context_line":"        role_ref \u003d self.role_api.get_role(role[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_df95a288","line":73,"updated":"2017-08-03 18:55:03.000000000","message":"I would like to see that creating a role without a description or removing the description of a role still works. This isn\u0027t tested since new_role_ref now always includes a description on the returned ref.","commit_id":"03a5a514d71352cd4e1d41d820e6a9154de98426"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"e4ef981ae85a63f9d10416e1b1cb22dfaaf9bcdd","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                          self.role_api.get_role,"},{"line_number":71,"context_line":"                          role[\u0027id\u0027])"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_role_crud_with_description(self):"},{"line_number":74,"context_line":"        role \u003d unit.new_role_ref()"},{"line_number":75,"context_line":"        self.role_api.create_role(role[\u0027id\u0027], role)"},{"line_number":76,"context_line":"        role_ref \u003d self.role_api.get_role(role[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_aecdf385","line":73,"in_reply_to":"df3967d1_9ce4b10e","updated":"2017-08-04 15:27:23.000000000","message":"In `tests/unit/core.py`, you have updated new_role_ref to always have description in the returned dictionary. That means that the function in line 54 is actually creating a role with a description. Therefore the test above is a subset of this one.","commit_id":"03a5a514d71352cd4e1d41d820e6a9154de98426"},{"author":{"_account_id":20401,"name":"M V P Nitesh","email":"parimalanitesh@gmail.com","username":"mvpnitesh"},"change_message_id":"d7b68e8f032494dd76e2514e8c22a6e16710d148","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                          self.role_api.get_role,"},{"line_number":71,"context_line":"                          role[\u0027id\u0027])"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_role_crud_with_description(self):"},{"line_number":74,"context_line":"        role \u003d unit.new_role_ref()"},{"line_number":75,"context_line":"        self.role_api.create_role(role[\u0027id\u0027], role)"},{"line_number":76,"context_line":"        role_ref \u003d self.role_api.get_role(role[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_9ce4b10e","line":73,"in_reply_to":"df3967d1_df95a288","updated":"2017-08-04 12:12:32.000000000","message":"At line 54 (def test_role_crud(self):) in the same file we are creating a role without description, i guess that is what you are looking for. If not let me know i\u0027ll add a 2 more test cases 1) for creating a role with out description 2) to remove the description of a role","commit_id":"03a5a514d71352cd4e1d41d820e6a9154de98426"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"cb1203b7c961f24e8aeda80a55f6aa68a0933179","unresolved":false,"context_lines":[{"line_number":2713,"context_line":"        }"},{"line_number":2714,"context_line":"        limit_table.insert().values(limit_without_region).execute()"},{"line_number":2715,"context_line":""},{"line_number":2716,"context_line":"    def test_migration_034_adds_description_to_role(self):"},{"line_number":2717,"context_line":"        self.expand(33)"},{"line_number":2718,"context_line":"        self.migrate(33)"},{"line_number":2719,"context_line":"        self.contract(33)"},{"line_number":2720,"context_line":""},{"line_number":2721,"context_line":"        role_table_name \u003d \u0027role\u0027"},{"line_number":2722,"context_line":"        self.assertTableColumns("},{"line_number":2723,"context_line":"            role_table_name,"},{"line_number":2724,"context_line":"            [\u0027id\u0027, \u0027name\u0027, \u0027domain_id\u0027, \u0027extra\u0027]"},{"line_number":2725,"context_line":"        )"},{"line_number":2726,"context_line":""},{"line_number":2727,"context_line":"        self.expand(34)"},{"line_number":2728,"context_line":"        self.migrate(34)"},{"line_number":2729,"context_line":"        self.contract(34)"},{"line_number":2730,"context_line":""},{"line_number":2731,"context_line":"        self.assertTableColumns("},{"line_number":2732,"context_line":"            role_table_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_317725a3","line":2729,"range":{"start_line":2716,"start_character":0,"end_line":2729,"end_character":25},"updated":"2018-08-23 06:42:09.000000000","message":"the test should be updated as well once using a new version","commit_id":"e4cb2935c53f99e713fa82b5773ea19ce47d7841"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"5e7572e40784f9222cf1414fee2c17db223df82d","unresolved":false,"context_lines":[{"line_number":3141,"context_line":"        self.assertTrue(self.does_fk_exist(\u0027limit\u0027, \u0027registered_limit_id\u0027))"},{"line_number":3142,"context_line":""},{"line_number":3143,"context_line":"    def test_migration_049_adds_description_to_role(self):"},{"line_number":3144,"context_line":"        self.expand(33)"},{"line_number":3145,"context_line":"        self.migrate(33)"},{"line_number":3146,"context_line":"        self.contract(33)"},{"line_number":3147,"context_line":""},{"line_number":3148,"context_line":"        role_table_name \u003d \u0027role\u0027"},{"line_number":3149,"context_line":"        self.assertTableColumns("}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_47d9c354","line":3146,"range":{"start_line":3144,"start_character":0,"end_line":3146,"end_character":25},"updated":"2018-08-23 08:41:11.000000000","message":"048 here","commit_id":"523febc66fbd35f2c3004e279da5d7e2aae67a7b"},{"author":{"_account_id":25695,"name":"Deepak Mourya","email":"deepakmoriya7@gmail.com","username":"deepak_mourya"},"change_message_id":"35babe21981229c2f81d5aa31bd970bbb74639e2","unresolved":false,"context_lines":[{"line_number":3141,"context_line":"        self.assertTrue(self.does_fk_exist(\u0027limit\u0027, \u0027registered_limit_id\u0027))"},{"line_number":3142,"context_line":""},{"line_number":3143,"context_line":"    def test_migration_049_adds_description_to_role(self):"},{"line_number":3144,"context_line":"        self.expand(33)"},{"line_number":3145,"context_line":"        self.migrate(33)"},{"line_number":3146,"context_line":"        self.contract(33)"},{"line_number":3147,"context_line":""},{"line_number":3148,"context_line":"        role_table_name \u003d \u0027role\u0027"},{"line_number":3149,"context_line":"        self.assertTableColumns("}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_079bcb65","line":3146,"range":{"start_line":3144,"start_character":0,"end_line":3146,"end_character":25},"in_reply_to":"3f79a3b5_47d9c354","updated":"2018-09-06 05:10:28.000000000","message":"Done","commit_id":"523febc66fbd35f2c3004e279da5d7e2aae67a7b"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"5e7572e40784f9222cf1414fee2c17db223df82d","unresolved":false,"context_lines":[{"line_number":3151,"context_line":"            [\u0027id\u0027, \u0027name\u0027, \u0027domain_id\u0027, \u0027extra\u0027]"},{"line_number":3152,"context_line":"        )"},{"line_number":3153,"context_line":""},{"line_number":3154,"context_line":"        self.expand(34)"},{"line_number":3155,"context_line":"        self.migrate(34)"},{"line_number":3156,"context_line":"        self.contract(34)"},{"line_number":3157,"context_line":""},{"line_number":3158,"context_line":"        self.assertTableColumns("},{"line_number":3159,"context_line":"            role_table_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_c7e4f30f","line":3156,"range":{"start_line":3154,"start_character":0,"end_line":3156,"end_character":25},"updated":"2018-08-23 08:41:11.000000000","message":"then upgrade to 049","commit_id":"523febc66fbd35f2c3004e279da5d7e2aae67a7b"},{"author":{"_account_id":25695,"name":"Deepak Mourya","email":"deepakmoriya7@gmail.com","username":"deepak_mourya"},"change_message_id":"35babe21981229c2f81d5aa31bd970bbb74639e2","unresolved":false,"context_lines":[{"line_number":3151,"context_line":"            [\u0027id\u0027, \u0027name\u0027, \u0027domain_id\u0027, \u0027extra\u0027]"},{"line_number":3152,"context_line":"        )"},{"line_number":3153,"context_line":""},{"line_number":3154,"context_line":"        self.expand(34)"},{"line_number":3155,"context_line":"        self.migrate(34)"},{"line_number":3156,"context_line":"        self.contract(34)"},{"line_number":3157,"context_line":""},{"line_number":3158,"context_line":"        self.assertTableColumns("},{"line_number":3159,"context_line":"            role_table_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_c7a07393","line":3156,"range":{"start_line":3154,"start_character":0,"end_line":3156,"end_character":25},"in_reply_to":"3f79a3b5_c7e4f30f","updated":"2018-09-06 05:10:28.000000000","message":"Done","commit_id":"523febc66fbd35f2c3004e279da5d7e2aae67a7b"}],"releasenotes/notes/add-description-to-role-88ab5bb8a96cc002.yaml":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"992b614744b2d3a76ba7de8a47b531db91dd2a76","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1669080 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1669080\u003e`_]"},{"line_number":5,"context_line":"    Added support for a ``description`` attribute for V3 Identity Roles, see"},{"line_number":6,"context_line":"    API docs for details."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3f79a3b5_907ac121","line":4,"updated":"2018-09-04 15:25:57.000000000","message":"If you happen to need to respin this for some other reason, I would link the keystone bug instead of the openstackclient bug: https://bugs.launchpad.net/keystone/+bug/1669080","commit_id":"97d06d0ffa00dd8d6372154ece0c18b9a6f83c75"},{"author":{"_account_id":25695,"name":"Deepak Mourya","email":"deepakmoriya7@gmail.com","username":"deepak_mourya"},"change_message_id":"35babe21981229c2f81d5aa31bd970bbb74639e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1669080 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1669080\u003e`_]"},{"line_number":5,"context_line":"    Added support for a ``description`` attribute for V3 Identity Roles, see"},{"line_number":6,"context_line":"    API docs for details."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3f79a3b5_b03b0f9a","line":4,"in_reply_to":"3f79a3b5_907ac121","updated":"2018-09-06 05:10:28.000000000","message":"Done","commit_id":"97d06d0ffa00dd8d6372154ece0c18b9a6f83c75"}],"releasenotes/notes/add-description-to-role-cb7ec3b490528165.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"27f655820e4b7cbb4ca1eba02683b446164994cb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now user can add the description when user"},{"line_number":5,"context_line":"    create\u0027s the role using OSC ``openstack role create``"},{"line_number":6,"context_line":"    command. User can add the description by adding"},{"line_number":7,"context_line":"    `--description \u003cDescription\u003e` to OSC"},{"line_number":8,"context_line":"    ``openstack role create`` command."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f1a1f67_09daeb4a","line":8,"range":{"start_line":4,"start_character":4,"end_line":8,"end_character":38},"updated":"2017-07-17 13:19:54.000000000","message":"I\u0027d phrase this in the context of a keystone operator... something like:\n\n\"Added support for a ``description`` attribute for V3 Identity Roles, must run database migration 110 or greater, see API docs for details.\"","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"36bd8296b700d59bc22b8c0d6ed28abc076de505","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    create\u0027s the role using OSC ``openstack role create``"},{"line_number":6,"context_line":"    command. User can add the description by adding"},{"line_number":7,"context_line":"    `--description \u003cDescription\u003e` to OSC"},{"line_number":8,"context_line":"    ``openstack role create`` command."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f1a1f67_b4110755","line":8,"in_reply_to":"1f1a1f67_09daeb4a","updated":"2017-07-17 15:52:09.000000000","message":"++ \n\nThis should also link to the bug report so that operators can find additional context. Documentation on how to do that can be found in our contributor guide:\n\nhttps://docs.openstack.org/keystone/latest/devref/development_best_practices.html","commit_id":"2049a45710b8251edc24ec3c03d367b336e72166"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"ccff42ba7742529b63528cd88a5967d7a22cf878","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1669080 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1669080\u003e`_]"},{"line_number":5,"context_line":"    Added support for a ``description`` attribute for V3 Identity Roles, must run"},{"line_number":6,"context_line":"    database migration 110 or greater, see API docs for details."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f1a1f67_91a159fb","line":6,"range":{"start_line":5,"start_character":73,"end_line":6,"end_character":64},"updated":"2017-07-18 13:37:34.000000000","message":"It is not necessary to mention the migration number.","commit_id":"8c3491ae25efcc0117b030ffbd747ec3cb533033"},{"author":{"_account_id":20401,"name":"M V P Nitesh","email":"parimalanitesh@gmail.com","username":"mvpnitesh"},"change_message_id":"48b4b61f9cdf7d5d734c02b5b054f2c01a3043d0","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1669080 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1669080\u003e`_]"},{"line_number":5,"context_line":"    Added support for a ``description`` attribute for V3 Identity Roles, must run"},{"line_number":6,"context_line":"    database migration 110 or greater, see API docs for details."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f1a1f67_06373501","line":6,"range":{"start_line":5,"start_character":73,"end_line":6,"end_character":64},"in_reply_to":"1f1a1f67_91a159fb","updated":"2017-07-19 04:50:20.000000000","message":"According to the Steve\u0027s comment for patch 1 i\u0027ve added this statement. I guess it is necessary.","commit_id":"8c3491ae25efcc0117b030ffbd747ec3cb533033"}]}
