)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"92c3c79e48669d141ffe0f05847d1b4fea9358a0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Maari Tamm \u003ctamm.maari@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-16 14:47:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add commands parser for:"},{"line_number":8,"context_line":"share set"},{"line_number":9,"context_line":"share unset"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_3df30eeb","line":7,"updated":"2019-12-16 23:55:31.000000000","message":"The title should be self-contained (in other words, here you depend on reading the body of the commit message to understand what\u0027s going on). I suggest something like \"Implements osc share set/unset commands\"","commit_id":"76c2ef60186d3177968525c8b48c4c3916cf5783"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"92c3c79e48669d141ffe0f05847d1b4fea9358a0","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-12-16 14:47:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add commands parser for:"},{"line_number":8,"context_line":"share set"},{"line_number":9,"context_line":"share unset"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Partially-implements: bp openstack-client-support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_7d22e656","line":8,"updated":"2019-12-16 23:55:31.000000000","message":"This is the body for the commit message. It\u0027s good, but it would be nice to see more info. Remember that developers will check this in the future if they need to understand design decisions we take now. Something like \"In this patch set we add the implementation for openstack share set and openstack share unset command. This commands are used to change share properties and replace the manila update and manila metadata commands\" may work better.","commit_id":"76c2ef60186d3177968525c8b48c4c3916cf5783"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"5536e4e7800f734a9d5f134fe4e07d5bd6036f62","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Maari Tamm \u003ctamm.maari@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-17 09:45:34 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements osc share set/unset commands"},{"line_number":8,"context_line":"In this patch set we add the implementation for openstack share set and openstack share unset command."},{"line_number":9,"context_line":"These commands are used to change share properties and replace the manila update and manila metadata commands."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_3d188acb","line":7,"updated":"2019-12-24 19:50:07.000000000","message":"Please insert a single blank line after the first line.","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"}],"manilaclient/osc/v2/share.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"29dde424746cfbe87c27570505f2474ed2d07fd8","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        )"},{"line_number":580,"context_line":"        parser.add_argument("},{"line_number":581,"context_line":"            \u0027--public\u0027,"},{"line_number":582,"context_line":"            default\u003dFalse,"},{"line_number":583,"context_line":"            help\u003d_(\u0027Level of visibility for share. \u0027"},{"line_number":584,"context_line":"                   \u0027Defines whether other tenants are able to see it or not.\u0027)"},{"line_number":585,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_ce717ead","line":582,"updated":"2019-12-25 18:57:19.000000000","message":"NIT add \"metavar\u003d\u0027\u003cpublic\u003e\u0027\"\n\nBtw, we introduced this in the share CRUD patch set, we need to fix it there as well.","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"29dde424746cfbe87c27570505f2474ed2d07fd8","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            \u0027--public\u0027,"},{"line_number":582,"context_line":"            default\u003dFalse,"},{"line_number":583,"context_line":"            help\u003d_(\u0027Level of visibility for share. \u0027"},{"line_number":584,"context_line":"                   \u0027Defines whether other tenants are able to see it or not.\u0027)"},{"line_number":585,"context_line":"        )"},{"line_number":586,"context_line":"        return parser"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_0e46b651","line":584,"updated":"2019-12-25 18:57:19.000000000","message":"NIT Add (Default\u003dFalse)","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"29dde424746cfbe87c27570505f2474ed2d07fd8","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        share_obj \u003d apiutils.find_resource(share_client.shares,"},{"line_number":591,"context_line":"                                           parsed_args.share)"},{"line_number":592,"context_line":"        result \u003d 0"},{"line_number":593,"context_line":"        if parsed_args.property:"},{"line_number":594,"context_line":"            try:"},{"line_number":595,"context_line":"                share_client.shares.set_metadata("},{"line_number":596,"context_line":"                    share_obj.id, parsed_args.property)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_0ee23631","line":593,"updated":"2019-12-25 18:57:19.000000000","message":"We should launch an error is there are no parsed_args. Check how we do this in manila client (manila update/manila metadata). What error we launch if we pass no arguments?","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"ff9fb705053650751cd3620f04ab0b7450fd289b","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        share_obj \u003d apiutils.find_resource(share_client.shares,"},{"line_number":591,"context_line":"                                           parsed_args.share)"},{"line_number":592,"context_line":"        result \u003d 0"},{"line_number":593,"context_line":"        if parsed_args.property:"},{"line_number":594,"context_line":"            try:"},{"line_number":595,"context_line":"                share_client.shares.set_metadata("},{"line_number":596,"context_line":"                    share_obj.id, parsed_args.property)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_b743326b","line":593,"in_reply_to":"3fa7e38b_0ee23631","updated":"2019-12-26 12:03:52.000000000","message":"Dismiss this comment, apparently in other clients we are not doing anything special. If in the future it turns out we want a more verbose client, we can add it, but for now this is ok.","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"29dde424746cfbe87c27570505f2474ed2d07fd8","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        share_obj \u003d apiutils.find_resource(share_client.shares,"},{"line_number":645,"context_line":"                                           parsed_args.share)"},{"line_number":646,"context_line":"        result \u003d 0"},{"line_number":647,"context_line":"        if parsed_args.property:"},{"line_number":648,"context_line":"            try:"},{"line_number":649,"context_line":"                share_client.shares.delete_metadata("},{"line_number":650,"context_line":"                    share_obj.id, parsed_args.property)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_2eddb26c","line":647,"updated":"2019-12-25 18:57:19.000000000","message":"Ditto. Return an error if we pass no parameters.","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"ff9fb705053650751cd3620f04ab0b7450fd289b","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        share_obj \u003d apiutils.find_resource(share_client.shares,"},{"line_number":645,"context_line":"                                           parsed_args.share)"},{"line_number":646,"context_line":"        result \u003d 0"},{"line_number":647,"context_line":"        if parsed_args.property:"},{"line_number":648,"context_line":"            try:"},{"line_number":649,"context_line":"                share_client.shares.delete_metadata("},{"line_number":650,"context_line":"                    share_obj.id, parsed_args.property)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_575c3e4b","line":647,"in_reply_to":"3fa7e38b_2eddb26c","updated":"2019-12-26 12:03:52.000000000","message":"Dismiss this as well.","commit_id":"20054d83b91ddc96a67cc55f9589a88c02c61589"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"04c076afa5a771c681c5de2bc1ee2f40f36cfec9","unresolved":false,"context_lines":[{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        kwargs \u003d {}"},{"line_number":606,"context_line":"        if parsed_args.name is not None:"},{"line_number":607,"context_line":"            kwargs[\u0027name\u0027] \u003d parsed_args.name"},{"line_number":608,"context_line":"        if parsed_args.description is not None:"},{"line_number":609,"context_line":"            kwargs[\u0027description\u0027] \u003d parsed_args.description"},{"line_number":610,"context_line":"        if parsed_args.public is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_5e6999f4","line":607,"range":{"start_line":607,"start_character":20,"end_line":607,"end_character":24},"updated":"2020-01-22 20:23:02.000000000","message":"I was able to rename the share after changing this key back to \u0027display_name\u0027.","commit_id":"9722e65c2792325ab49c874c4fe0004ab0de4467"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"04c076afa5a771c681c5de2bc1ee2f40f36cfec9","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        if parsed_args.name is not None:"},{"line_number":607,"context_line":"            kwargs[\u0027name\u0027] \u003d parsed_args.name"},{"line_number":608,"context_line":"        if parsed_args.description is not None:"},{"line_number":609,"context_line":"            kwargs[\u0027description\u0027] \u003d parsed_args.description"},{"line_number":610,"context_line":"        if parsed_args.public is not None:"},{"line_number":611,"context_line":"            kwargs[\u0027is_public\u0027] \u003d parsed_args.public"},{"line_number":612,"context_line":"        if kwargs:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_1e6fa1fa","line":609,"range":{"start_line":609,"start_character":20,"end_line":609,"end_character":31},"updated":"2020-01-22 20:23:02.000000000","message":"And change the share description after changing this key back to \u0027display_description\u0027.","commit_id":"9722e65c2792325ab49c874c4fe0004ab0de4467"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba124bdea10029ba8c18edeee754ab48d245e819","unresolved":false,"context_lines":[{"line_number":582,"context_line":"        parser.add_argument("},{"line_number":583,"context_line":"            \u0027--public\u0027,"},{"line_number":584,"context_line":"            metavar\u003d\u0027\u003cpublic\u003e\u0027,"},{"line_number":585,"context_line":"            default\u003dFalse,"},{"line_number":586,"context_line":"            help\u003d_(\u0027Level of visibility for share. \u0027"},{"line_number":587,"context_line":"                   \u0027Defines whether other tenants are able to see it or not. \u0027"},{"line_number":588,"context_line":"                   \u0027(Default \u003d False)\u0027)"},{"line_number":589,"context_line":"        )"},{"line_number":590,"context_line":"        return parser"},{"line_number":591,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_a18929c9","line":588,"range":{"start_line":585,"start_character":12,"end_line":588,"end_character":38},"updated":"2020-02-17 19:37:32.000000000","message":"There should be no default... Else, updating any of the other attributes (name, description, metadata) of a public share will render a public share to become private/non-public.","commit_id":"10bf611c523d6b507eca2b5d355409fb75b080c9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba124bdea10029ba8c18edeee754ab48d245e819","unresolved":false,"context_lines":[{"line_number":642,"context_line":"                   \u0027(repeat option to remove multiple properties)\u0027),"},{"line_number":643,"context_line":"        )"},{"line_number":644,"context_line":"        return parser"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    def take_action(self, parsed_args):"},{"line_number":647,"context_line":"        share_client \u003d self.app.client_manager.share"},{"line_number":648,"context_line":"        share_obj \u003d apiutils.find_resource(share_client.shares,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_e11ba182","line":645,"range":{"start_line":645,"start_character":0,"end_line":645,"end_character":0},"updated":"2020-02-17 19:37:32.000000000","message":"This command should allow unsetting name and description...","commit_id":"10bf611c523d6b507eca2b5d355409fb75b080c9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba124bdea10029ba8c18edeee754ab48d245e819","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        share_obj \u003d apiutils.find_resource(share_client.shares,"},{"line_number":649,"context_line":"                                           parsed_args.share)"},{"line_number":650,"context_line":"        result \u003d 0"},{"line_number":651,"context_line":"        if parsed_args.property:"},{"line_number":652,"context_line":"            try:"},{"line_number":653,"context_line":"                share_client.shares.delete_metadata("},{"line_number":654,"context_line":"                    share_obj.id, parsed_args.property)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_84fbdb12","line":651,"range":{"start_line":651,"start_character":9,"end_line":651,"end_character":31},"updated":"2020-02-17 19:37:32.000000000","message":"Need to loop through properties...","commit_id":"10bf611c523d6b507eca2b5d355409fb75b080c9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba124bdea10029ba8c18edeee754ab48d245e819","unresolved":false,"context_lines":[{"line_number":653,"context_line":"                share_client.shares.delete_metadata("},{"line_number":654,"context_line":"                    share_obj.id, parsed_args.property)"},{"line_number":655,"context_line":"            except Exception as e:"},{"line_number":656,"context_line":"                LOG.error(_(\"Failed to unset share property: %s\"), e)"},{"line_number":657,"context_line":"                result +\u003d 1"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        if result \u003e 0:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_4405e30e","line":656,"range":{"start_line":656,"start_character":59,"end_line":656,"end_character":60},"updated":"2020-02-17 19:37:32.000000000","message":"Add the property here in parenthesis; makes the error message clearer since the manila server may not include it in the error message:\n\n $ openstack  share unset transactions-share --property hhaahad --property ggiigid\n Failed to unset share property: Metadata item was not found (HTTP 404)  (Request-ID: req-05638193-7c23-48a5-840b-f573089f9532)\n One or more of the unset operations failed\n\n\nWith the name, I\u0027d be able to tell which specific metadata item can\u0027t be unset...","commit_id":"10bf611c523d6b507eca2b5d355409fb75b080c9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1aad443e718d33f25755640868645df1fe3d0705","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        result \u003d 0"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        if parsed_args.property:"},{"line_number":597,"context_line":"            for key, value in parsed_args.property.items():"},{"line_number":598,"context_line":"                try:"},{"line_number":599,"context_line":"                    share_client.shares.set_metadata("},{"line_number":600,"context_line":"                        share_obj.id, {key: value})"},{"line_number":601,"context_line":"                except Exception as e:"},{"line_number":602,"context_line":"                    LOG.error(_(\"Failed to set share property \""},{"line_number":603,"context_line":"                                \"\u0027%(key)s\u003d%(value)s\u0027: %(e)s\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_9130e2ec","line":600,"range":{"start_line":597,"start_character":12,"end_line":600,"end_character":51},"updated":"2020-02-18 21:45:16.000000000","message":"No need to loop through and set one item at a time, the API this invokes accepts a set of key-value pairs [1]\n\n[1] https://docs.openstack.org/api-ref/shared-file-system/?expanded\u003dset-share-metadata-detail#set-share-metadata","commit_id":"f95f57e8ed8e894af8239e69121774c222f4b762"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1aad443e718d33f25755640868645df1fe3d0705","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                    share_client.shares.set_metadata("},{"line_number":600,"context_line":"                        share_obj.id, {key: value})"},{"line_number":601,"context_line":"                except Exception as e:"},{"line_number":602,"context_line":"                    LOG.error(_(\"Failed to set share property \""},{"line_number":603,"context_line":"                                \"\u0027%(key)s\u003d%(value)s\u0027: %(e)s\"),"},{"line_number":604,"context_line":"                              {\u0027key\u0027: key, \u0027value\u0027: value, \u0027e\u0027: e})"},{"line_number":605,"context_line":"                    result +\u003d 1"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_f16d96ce","line":602,"range":{"start_line":602,"start_character":33,"end_line":602,"end_character":61},"updated":"2020-02-18 21:45:16.000000000","message":"When you fix the above, this can be:\n\nFailed to set share properties (%(properties)s): %(exception)s","commit_id":"f95f57e8ed8e894af8239e69121774c222f4b762"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"428911acadf4cde11af17f67a0a90bd50f610a61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"3fa7e38b_aedecd3a","updated":"2020-02-19 16:56:33.000000000","message":"Please see the unit test coverage report, some exception paths could be covered with unit tests so we don\u0027t have any surprises: \n\nhttps://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_d45/698848/11/check/openstack-tox-cover/d457169/cover/manilaclient_osc_v2_share_py.html","commit_id":"17298888570a40a65ea2ce4fbfc970642a77fc7d"}]}
