)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch adds a new parameter ``--reason`` to ``openstack server lock``"},{"line_number":10,"context_line":"command and ``--locked`` filtering parameter to ``openstack server list``"},{"line_number":11,"context_line":"command. This can help users to provide a reason when locking the server"},{"line_number":12,"context_line":"and to filter instances based on their locked or value from 2.73"},{"line_number":13,"context_line":"microversion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements blueprint add-locked-reason"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfbec78f_db0b3327","line":12,"range":{"start_line":12,"start_character":46,"end_line":12,"end_character":48},"updated":"2019-05-15 12:54:19.000000000","message":"nix?","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch adds a new parameter ``--reason`` to ``openstack server lock``"},{"line_number":10,"context_line":"command and ``--locked`` filtering parameter to ``openstack server list``"},{"line_number":11,"context_line":"command. This can help users to provide a reason when locking the server"},{"line_number":12,"context_line":"and to filter instances based on their locked or value from 2.73"},{"line_number":13,"context_line":"microversion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements blueprint add-locked-reason"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfbec78f_23e901b6","line":12,"range":{"start_line":12,"start_character":46,"end_line":12,"end_character":48},"in_reply_to":"dfbec78f_db0b3327","updated":"2019-05-15 19:07:21.000000000","message":"Done","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c367db28760639fbd97f00f971f77635ca57cd50","unresolved":false,"context_lines":[{"line_number":13,"context_line":"microversion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements blueprint add-locked-reason"},{"line_number":16,"context_line":"Depends-On: https://review.opendev.org/#/c/648662/"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib2714f98b24d47e570da8a6c231e765acd2ff595"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfbec78f_071717a6","line":16,"updated":"2019-05-16 13:52:11.000000000","message":"You should depend on the upper-constraints change now:\n\nhttps://review.opendev.org/#/c/659461/\n\nAnd also bump the minimum required version of python-novaclient in osc to 14.0.0.","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e5cf04fa8ce6fda177e3bc54599dd0f827123541","unresolved":false,"context_lines":[{"line_number":13,"context_line":"microversion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements blueprint add-locked-reason"},{"line_number":16,"context_line":"Depends-On: https://review.opendev.org/#/c/648662/"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib2714f98b24d47e570da8a6c231e765acd2ff595"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_883bec9a","line":16,"in_reply_to":"dfbec78f_071717a6","updated":"2019-05-17 10:40:34.000000000","message":"Done","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"}],"lower-constraints.txt":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"905d3e50590a897e256ed8f0810ea5ca643f8246","unresolved":false,"context_lines":[{"line_number":100,"context_line":"python-mistralclient\u003d\u003d3.1.0"},{"line_number":101,"context_line":"python-muranoclient\u003d\u003d0.8.2"},{"line_number":102,"context_line":"python-neutronclient\u003d\u003d6.7.0"},{"line_number":103,"context_line":"python-novaclient\u003d\u003d14.0.0"},{"line_number":104,"context_line":"python-octaviaclient\u003d\u003d1.3.0"},{"line_number":105,"context_line":"python-rsdclient\u003d\u003d0.1.0"},{"line_number":106,"context_line":"python-saharaclient\u003d\u003d1.4.0"}],"source_content_type":"text/plain","patch_set":6,"id":"bfb3d3c7_ee55c91e","line":103,"updated":"2019-05-17 18:48:33.000000000","message":"You also need to update requirements.txt:\n\nhttps://github.com/openstack/python-openstackclient/blob/master/requirements.txt#L16","commit_id":"fce3fc892aef37caf23c91378c2fe94a255a5294"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"8507f6ffe1ce1981984f11e55f08c58182a636e7","unresolved":false,"context_lines":[{"line_number":100,"context_line":"python-mistralclient\u003d\u003d3.1.0"},{"line_number":101,"context_line":"python-muranoclient\u003d\u003d0.8.2"},{"line_number":102,"context_line":"python-neutronclient\u003d\u003d6.7.0"},{"line_number":103,"context_line":"python-novaclient\u003d\u003d14.0.0"},{"line_number":104,"context_line":"python-octaviaclient\u003d\u003d1.3.0"},{"line_number":105,"context_line":"python-rsdclient\u003d\u003d0.1.0"},{"line_number":106,"context_line":"python-saharaclient\u003d\u003d1.4.0"}],"source_content_type":"text/plain","patch_set":6,"id":"bfb3d3c7_cc59aa5a","line":103,"in_reply_to":"bfb3d3c7_ee55c91e","updated":"2019-05-22 14:23:59.000000000","message":"Done","commit_id":"fce3fc892aef37caf23c91378c2fe94a255a5294"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1142,"context_line":"            default\u003dNone,"},{"line_number":1143,"context_line":"            help\u003d_(\"Display servers based on their locked value. A value must \""},{"line_number":1144,"context_line":"                   \"be specified; eg. \u0027true\u0027 will list only locked servers \""},{"line_number":1145,"context_line":"                   \"and \u0027false\u0027 will list only unlocked servers. Supported \""},{"line_number":1146,"context_line":"                   \"from \u00272.73\u0027 API version.\")"},{"line_number":1147,"context_line":"        )"},{"line_number":1148,"context_line":"        return parser"},{"line_number":1149,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_9616f248","line":1146,"range":{"start_line":1145,"start_character":65,"end_line":1146,"end_character":45},"updated":"2019-05-15 12:54:19.000000000","message":"In OSC terms I would say,\n\n\"Requires ``--os-compute-api-version`` 2.73 or greater.\"","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1142,"context_line":"            default\u003dNone,"},{"line_number":1143,"context_line":"            help\u003d_(\"Display servers based on their locked value. A value must \""},{"line_number":1144,"context_line":"                   \"be specified; eg. \u0027true\u0027 will list only locked servers \""},{"line_number":1145,"context_line":"                   \"and \u0027false\u0027 will list only unlocked servers. Supported \""},{"line_number":1146,"context_line":"                   \"from \u00272.73\u0027 API version.\")"},{"line_number":1147,"context_line":"        )"},{"line_number":1148,"context_line":"        return parser"},{"line_number":1149,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_630cd9a4","line":1146,"range":{"start_line":1145,"start_character":65,"end_line":1146,"end_character":45},"in_reply_to":"dfbec78f_9616f248","updated":"2019-05-15 19:07:21.000000000","message":"Done","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        support_locked \u003d (compute_client.api_version \u003e\u003d"},{"line_number":1203,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1204,"context_line":"        if support_locked and parsed_args.locked:"},{"line_number":1205,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1206,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1207,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_f6208e9d","line":1204,"updated":"2019-05-15 12:54:19.000000000","message":"Likely missing an else here aren\u0027t you? If they specified the locked filter option but didn\u0027t use \u003e\u003d2.73 we should raise. OSC doesn\u0027t handle this natively in the arg parsing like novaclient does.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60fc8fcac2cce097e6e88e4ad5273c1669196804","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        support_locked \u003d (compute_client.api_version \u003e\u003d"},{"line_number":1203,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1204,"context_line":"        if support_locked and parsed_args.locked:"},{"line_number":1205,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1206,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1207,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_a76acb16","line":1204,"in_reply_to":"dfbec78f_231021a8","updated":"2019-05-16 14:00:02.000000000","message":"The API allowed locked as a filter before 2.73 but it just ignored it, right? However, the command line didn\u0027t, so now the user is opting into filtering based on the locked value and that requires a minimum microversion so I think we should be explicit.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e5cf04fa8ce6fda177e3bc54599dd0f827123541","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        support_locked \u003d (compute_client.api_version \u003e\u003d"},{"line_number":1203,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1204,"context_line":"        if support_locked and parsed_args.locked:"},{"line_number":1205,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1206,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1207,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bfb3d3c7_4813b40e","line":1204,"in_reply_to":"dfbec78f_a76acb16","updated":"2019-05-17 10:40:34.000000000","message":"ack, agreed it should be done this way (but when I looked at the past history of when some of the options were added/change I got confused.)","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        support_locked \u003d (compute_client.api_version \u003e\u003d"},{"line_number":1203,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1204,"context_line":"        if support_locked and parsed_args.locked:"},{"line_number":1205,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1206,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1207,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_231021a8","line":1204,"in_reply_to":"dfbec78f_f6208e9d","updated":"2019-05-15 19:07:21.000000000","message":"hmm, I was confused with this since we sort of allow \"locked\" as a filter and it would just get ignored. At least this is what is done with the ip6 filter for the non-admins. Its not like we validate the version, so I thought for the list stuff this was different.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1391,"context_line":"            \u0027--reason\u0027,"},{"line_number":1392,"context_line":"            metavar\u003d\u0027\u003creason\u003e\u0027,"},{"line_number":1393,"context_line":"            default\u003dNone,"},{"line_number":1394,"context_line":"            help\u003d_(\"Reason for locking the server(s). Supported \""},{"line_number":1395,"context_line":"                   \"from \u00272.73\u0027 API version.\")"},{"line_number":1396,"context_line":"        )"},{"line_number":1397,"context_line":"        return parser"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_162442ae","line":1395,"range":{"start_line":1394,"start_character":54,"end_line":1395,"end_character":46},"updated":"2019-05-15 12:54:19.000000000","message":"same","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1391,"context_line":"            \u0027--reason\u0027,"},{"line_number":1392,"context_line":"            metavar\u003d\u0027\u003creason\u003e\u0027,"},{"line_number":1393,"context_line":"            default\u003dNone,"},{"line_number":1394,"context_line":"            help\u003d_(\"Reason for locking the server(s). Supported \""},{"line_number":1395,"context_line":"                   \"from \u00272.73\u0027 API version.\")"},{"line_number":1396,"context_line":"        )"},{"line_number":1397,"context_line":"        return parser"},{"line_number":1398,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_a31bb1c7","line":1395,"range":{"start_line":1394,"start_character":54,"end_line":1395,"end_character":46},"in_reply_to":"dfbec78f_162442ae","updated":"2019-05-15 19:07:21.000000000","message":"Done","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1399,"context_line":"    def take_action(self, parsed_args):"},{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_d63eaab6","line":1402,"range":{"start_line":1402,"start_character":8,"end_line":1402,"end_character":15},"updated":"2019-05-15 12:54:19.000000000","message":"nit: maybe rename this to \"support_reason\"?","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1399,"context_line":"    def take_action(self, parsed_args):"},{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_0334fd48","line":1402,"range":{"start_line":1402,"start_character":8,"end_line":1402,"end_character":15},"in_reply_to":"dfbec78f_d63eaab6","updated":"2019-05-15 19:07:21.000000000","message":"hehe, \"support_reason\" was the exact name I had! I had to pep8 stlyify the line since it exceed 80 chars and I didn\u0027t like the look, so I changed it to something that would fit it correctly and was hoping no-one would notice (but I forgot you had eagle eyes) :D .","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1406,"context_line":"        for server in parsed_args.server:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_1659a233","line":1403,"updated":"2019-05-15 12:54:19.000000000","message":"This is the kind of validation I was talking about above.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1406,"context_line":"        for server in parsed_args.server:"},{"line_number":1407,"context_line":"            if allowed:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_56539a17","line":1404,"range":{"start_line":1404,"start_character":63,"end_line":1404,"end_character":71},"updated":"2019-05-15 12:54:19.000000000","message":"for what? mention the --reason option otherwise this doesn\u0027t really have context.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1406,"context_line":"        for server in parsed_args.server:"},{"line_number":1407,"context_line":"            if allowed:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_76349ede","line":1404,"range":{"start_line":1404,"start_character":54,"end_line":1404,"end_character":59},"updated":"2019-05-15 12:54:19.000000000","message":"nit: greater","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1406,"context_line":"        for server in parsed_args.server:"},{"line_number":1407,"context_line":"            if allowed:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_de9a3cb7","line":1404,"range":{"start_line":1404,"start_character":63,"end_line":1404,"end_character":71},"in_reply_to":"dfbec78f_56539a17","updated":"2019-05-15 19:07:21.000000000","message":"Done","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1401,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":1402,"context_line":"        allowed \u003d compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.73\u0027)"},{"line_number":1403,"context_line":"        if not allowed and parsed_args.reason:"},{"line_number":1404,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or later is required\u0027)"},{"line_number":1405,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1406,"context_line":"        for server in parsed_args.server:"},{"line_number":1407,"context_line":"            if allowed:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_3e803846","line":1404,"range":{"start_line":1404,"start_character":54,"end_line":1404,"end_character":59},"in_reply_to":"dfbec78f_76349ede","updated":"2019-05-15 19:07:21.000000000","message":"Done","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"                utils.find_resource("},{"line_number":1409,"context_line":"                    compute_client.servers,"},{"line_number":1410,"context_line":"                    server,"},{"line_number":1411,"context_line":"                ).lock(reason\u003dparsed_args.reason)"},{"line_number":1412,"context_line":"            else:"},{"line_number":1413,"context_line":"                utils.find_resource("},{"line_number":1414,"context_line":"                    compute_client.servers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_36794693","line":1411,"range":{"start_line":1411,"start_character":17,"end_line":1411,"end_character":49},"updated":"2019-05-15 12:54:19.000000000","message":"This won\u0027t work without https://review.opendev.org/#/c/648659/ which isn\u0027t released yet, so we need to do a release of that first and then bump the required version of novaclient on osc for this change.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"                utils.find_resource("},{"line_number":1409,"context_line":"                    compute_client.servers,"},{"line_number":1410,"context_line":"                    server,"},{"line_number":1411,"context_line":"                ).lock(reason\u003dparsed_args.reason)"},{"line_number":1412,"context_line":"            else:"},{"line_number":1413,"context_line":"                utils.find_resource("},{"line_number":1414,"context_line":"                    compute_client.servers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_83fc6d3e","line":1411,"range":{"start_line":1411,"start_character":17,"end_line":1411,"end_character":49},"in_reply_to":"dfbec78f_36794693","updated":"2019-05-15 19:07:21.000000000","message":"ack, this is new knowledge for me :) I thought they were magically connected to take the latest something from novaclient.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60fc8fcac2cce097e6e88e4ad5273c1669196804","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"                utils.find_resource("},{"line_number":1409,"context_line":"                    compute_client.servers,"},{"line_number":1410,"context_line":"                    server,"},{"line_number":1411,"context_line":"                ).lock(reason\u003dparsed_args.reason)"},{"line_number":1412,"context_line":"            else:"},{"line_number":1413,"context_line":"                utils.find_resource("},{"line_number":1414,"context_line":"                    compute_client.servers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfbec78f_a7016b3a","line":1411,"range":{"start_line":1411,"start_character":17,"end_line":1411,"end_character":49},"in_reply_to":"dfbec78f_83fc6d3e","updated":"2019-05-16 14:00:02.000000000","message":"Nope - if you had functional tests on this change that used devstack this would fail.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60fc8fcac2cce097e6e88e4ad5273c1669196804","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"        )"},{"line_number":1139,"context_line":"        parser.add_argument("},{"line_number":1140,"context_line":"            \u0027--locked\u0027,"},{"line_number":1141,"context_line":"            metavar\u003d\u0027\u003clocked\u003e\u0027,"},{"line_number":1142,"context_line":"            default\u003dNone,"},{"line_number":1143,"context_line":"            help\u003d_(\"Display servers based on their locked value. A value must \""},{"line_number":1144,"context_line":"                   \"be specified; eg. \u0027true\u0027 will list only locked servers \""},{"line_number":1145,"context_line":"                   \"and \u0027false\u0027 will list only unlocked servers. Requires \""}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_47e3cfa4","line":1142,"range":{"start_line":1141,"start_character":12,"end_line":1142,"end_character":25},"updated":"2019-05-16 14:00:02.000000000","message":"Open question, but dtroyer might have a preference for using a boolean option with separate options like:\n\n* --locked (-\u003elocked, store_true)\n* --unlocked (-\u003elocked, store_false)\n\nThose would have to be in a mutually exclusive option group though so you can\u0027t specify both since they would set a value for the same metavar/dest. Anyway, it\u0027s just a thought, I know nova CLI is doing it the way you have it here but I just thought about this and it would clear up some confusion over specifying a value for what appears at first to be a boolean option.","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e5cf04fa8ce6fda177e3bc54599dd0f827123541","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"        )"},{"line_number":1139,"context_line":"        parser.add_argument("},{"line_number":1140,"context_line":"            \u0027--locked\u0027,"},{"line_number":1141,"context_line":"            metavar\u003d\u0027\u003clocked\u003e\u0027,"},{"line_number":1142,"context_line":"            default\u003dNone,"},{"line_number":1143,"context_line":"            help\u003d_(\"Display servers based on their locked value. A value must \""},{"line_number":1144,"context_line":"                   \"be specified; eg. \u0027true\u0027 will list only locked servers \""},{"line_number":1145,"context_line":"                   \"and \u0027false\u0027 will list only unlocked servers. Requires \""}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_48af3494","line":1142,"range":{"start_line":1141,"start_character":12,"end_line":1142,"end_character":25},"in_reply_to":"dfbec78f_42473dbd","updated":"2019-05-17 10:40:34.000000000","message":"Done, however I am going to default is None for both options to make it less confusing.","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"846ceb4e6db034d7d7311e57c0ba2f6c62af4b86","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"        )"},{"line_number":1139,"context_line":"        parser.add_argument("},{"line_number":1140,"context_line":"            \u0027--locked\u0027,"},{"line_number":1141,"context_line":"            metavar\u003d\u0027\u003clocked\u003e\u0027,"},{"line_number":1142,"context_line":"            default\u003dNone,"},{"line_number":1143,"context_line":"            help\u003d_(\"Display servers based on their locked value. A value must \""},{"line_number":1144,"context_line":"                   \"be specified; eg. \u0027true\u0027 will list only locked servers \""},{"line_number":1145,"context_line":"                   \"and \u0027false\u0027 will list only unlocked servers. Requires \""}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_42473dbd","line":1142,"range":{"start_line":1141,"start_character":12,"end_line":1142,"end_character":25},"in_reply_to":"dfbec78f_47e3cfa4","updated":"2019-05-16 14:39:00.000000000","message":"I have a strong preference for using a pair of mutex options for booleans as well as some enums.  And we have a specific pattern for doing those that guards against differing API behaviours (this makes cargo-culting the pattern safe).  See https://docs.openstack.org/python-openstackclient/latest/contributor/command-options.html#boolean-options","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"60fc8fcac2cce097e6e88e4ad5273c1669196804","unresolved":false,"context_lines":[{"line_number":1203,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1204,"context_line":"        if not support_locked and parsed_args.locked:"},{"line_number":1205,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1206,"context_line":"                    \u0027support the locked option.\u0027)"},{"line_number":1207,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1208,"context_line":"        elif support_locked:"},{"line_number":1209,"context_line":"            # Only from 2.73 where locked is None or not."}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_47750ff9","line":1206,"range":{"start_line":1206,"start_character":40,"end_line":1206,"end_character":46},"updated":"2019-05-16 14:00:02.000000000","message":"nit: I would say \"filter\" or \"filter option\" here since yes it\u0027s an argparse option but it\u0027s really a filtering mechanism.","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e5cf04fa8ce6fda177e3bc54599dd0f827123541","unresolved":false,"context_lines":[{"line_number":1203,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1204,"context_line":"        if not support_locked and parsed_args.locked:"},{"line_number":1205,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1206,"context_line":"                    \u0027support the locked option.\u0027)"},{"line_number":1207,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1208,"context_line":"        elif support_locked:"},{"line_number":1209,"context_line":"            # Only from 2.73 where locked is None or not."}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_2859a0fd","line":1206,"range":{"start_line":1206,"start_character":40,"end_line":1206,"end_character":46},"in_reply_to":"dfbec78f_47750ff9","updated":"2019-05-17 10:40:34.000000000","message":"Done","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"3e07727aa736d29f49d8dd314eab1a98d1043717","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"                    \u0027support the (un)locked filter option.\u0027)"},{"line_number":1213,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1214,"context_line":"        elif support_locked:"},{"line_number":1215,"context_line":"            # Only from 2.73."},{"line_number":1216,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1217,"context_line":"            search_opts[\u0027unlocked\u0027] \u003d parsed_args.unlocked"},{"line_number":1218,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"        if search_opts[\u0027changes-since\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_23f541cc","line":1217,"range":{"start_line":1215,"start_character":12,"end_line":1217,"end_character":58},"updated":"2019-05-17 10:48:41.000000000","message":"dammit! this is not what I wanted.","commit_id":"00ea9877f4f64906dbbd411a6b524b0e6801e25d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"757d84369b3484a8cb1faac0180d245dd8a48311","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"                    \u0027support the (un)locked filter option.\u0027)"},{"line_number":1213,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1214,"context_line":"        elif support_locked:"},{"line_number":1215,"context_line":"            # Only from 2.73."},{"line_number":1216,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1217,"context_line":"            search_opts[\u0027unlocked\u0027] \u003d parsed_args.unlocked"},{"line_number":1218,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"        if search_opts[\u0027changes-since\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_e3a88978","line":1217,"range":{"start_line":1215,"start_character":12,"end_line":1217,"end_character":58},"in_reply_to":"bfb3d3c7_23f541cc","updated":"2019-05-17 11:19:42.000000000","message":"What I want to do is\n\n if parsed_args.locked:\n     search_opts[\u0027locked\u0027] \u003d True\n if parsed_args.unlocked:\n     search_opts[\u0027unlocked\u0027] \u003d False\n\nBut unfortunately because of the way novaclient is designed to ignore non-true search param values, the \"--unlocked\" fails. (https://github.com/openstack/python-novaclient/blob/8c3311eefe0ff94a3184d3a7caca89ae1310e934/novaclient/v2/servers.py#L867). I will again need to update novaclient to fix this up before moving along. Also for the other falsely defined parameters like \"deleted\" looks like we do a special setting on the server side (https://github.com/openstack/nova/blob/ed5b7c7fc311c2af8c8be09044bb2723141f6f0d/nova/api/openstack/compute/servers.py#L254)\n\nNote that since we force a value for nova list --locked \u0027f\u0027 or \u0027off\u0027 or whatever, it takes this as a string.","commit_id":"00ea9877f4f64906dbbd411a6b524b0e6801e25d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"70dead0bd8ef79c11f1d706e97986764e0ae60b8","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"                    \u0027support the (un)locked filter option.\u0027)"},{"line_number":1213,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1214,"context_line":"        elif support_locked:"},{"line_number":1215,"context_line":"            # Only from 2.73."},{"line_number":1216,"context_line":"            search_opts[\u0027locked\u0027] \u003d parsed_args.locked"},{"line_number":1217,"context_line":"            search_opts[\u0027unlocked\u0027] \u003d parsed_args.unlocked"},{"line_number":1218,"context_line":"        LOG.debug(\u0027search options: %s\u0027, search_opts)"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"        if search_opts[\u0027changes-since\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_c3e305a4","line":1217,"range":{"start_line":1215,"start_character":12,"end_line":1217,"end_character":58},"in_reply_to":"bfb3d3c7_e3a88978","updated":"2019-05-17 11:42:50.000000000","message":"I am going to have to handle this explicitly for locked alone because apparently we always ignore the default values for all-tenants and deleted, so I will have to change a bunch of tests if I globally change it to send all non-None values.","commit_id":"00ea9877f4f64906dbbd411a6b524b0e6801e25d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"        lock_group.add_argument("},{"line_number":1141,"context_line":"            \u0027--locked\u0027,"},{"line_number":1142,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1143,"context_line":"            default\u003dNone,"},{"line_number":1144,"context_line":"            help\u003d_(\u0027Display locked servers. \u0027"},{"line_number":1145,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1146,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_f8fd7908","line":1143,"updated":"2019-06-18 18:10:00.000000000","message":"Seems kind of weird to default a boolean to None, should this default to False? Seeing as how it\u0027s used below it probably doesn\u0027t make a difference.","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"        lock_group.add_argument("},{"line_number":1141,"context_line":"            \u0027--locked\u0027,"},{"line_number":1142,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1143,"context_line":"            default\u003dNone,"},{"line_number":1144,"context_line":"            help\u003d_(\u0027Display locked servers. \u0027"},{"line_number":1145,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1146,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_fb26c968","line":1143,"in_reply_to":"9fb8cfa7_f8fd7908","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"            \u0027--locked\u0027,"},{"line_number":1142,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1143,"context_line":"            default\u003dNone,"},{"line_number":1144,"context_line":"            help\u003d_(\u0027Display locked servers. \u0027"},{"line_number":1145,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1146,"context_line":"        )"},{"line_number":1147,"context_line":"        lock_group.add_argument("}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_d80c353d","line":1144,"range":{"start_line":1144,"start_character":20,"end_line":1144,"end_character":42},"updated":"2019-06-18 18:10:00.000000000","message":"nit: \"Only display locked servers.\"","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"            \u0027--locked\u0027,"},{"line_number":1142,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1143,"context_line":"            default\u003dNone,"},{"line_number":1144,"context_line":"            help\u003d_(\u0027Display locked servers. \u0027"},{"line_number":1145,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1146,"context_line":"        )"},{"line_number":1147,"context_line":"        lock_group.add_argument("}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_1b2cfd45","line":1144,"range":{"start_line":1144,"start_character":20,"end_line":1144,"end_character":42},"in_reply_to":"9fb8cfa7_d80c353d","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1142,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1143,"context_line":"            default\u003dNone,"},{"line_number":1144,"context_line":"            help\u003d_(\u0027Display locked servers. \u0027"},{"line_number":1145,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1146,"context_line":"        )"},{"line_number":1147,"context_line":"        lock_group.add_argument("},{"line_number":1148,"context_line":"            \u0027--unlocked\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_783ae9cd","line":1145,"range":{"start_line":1145,"start_character":29,"end_line":1145,"end_character":49},"updated":"2019-06-18 18:10:00.000000000","message":"Put this in double back-ticks like --ip6.\n\nAlso, it\u0027s --os-compute-api-version.","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1142,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1143,"context_line":"            default\u003dNone,"},{"line_number":1144,"context_line":"            help\u003d_(\u0027Display locked servers. \u0027"},{"line_number":1145,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1146,"context_line":"        )"},{"line_number":1147,"context_line":"        lock_group.add_argument("},{"line_number":1148,"context_line":"            \u0027--unlocked\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_bb20514b","line":1145,"range":{"start_line":1145,"start_character":29,"end_line":1145,"end_character":49},"in_reply_to":"9fb8cfa7_783ae9cd","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"            \u0027--unlocked\u0027,"},{"line_number":1149,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1150,"context_line":"            default\u003dNone,"},{"line_number":1151,"context_line":"            help\u003d_(\u0027Display unlocked servers. \u0027"},{"line_number":1152,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1153,"context_line":"        )"},{"line_number":1154,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_58184574","line":1151,"range":{"start_line":1151,"start_character":20,"end_line":1151,"end_character":45},"updated":"2019-06-18 18:10:00.000000000","message":"Only display unlocked servers.","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"            \u0027--unlocked\u0027,"},{"line_number":1149,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1150,"context_line":"            default\u003dNone,"},{"line_number":1151,"context_line":"            help\u003d_(\u0027Display unlocked servers. \u0027"},{"line_number":1152,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1153,"context_line":"        )"},{"line_number":1154,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_db1d0510","line":1151,"range":{"start_line":1151,"start_character":20,"end_line":1151,"end_character":45},"in_reply_to":"9fb8cfa7_58184574","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1150,"context_line":"            default\u003dNone,"},{"line_number":1151,"context_line":"            help\u003d_(\u0027Display unlocked servers. \u0027"},{"line_number":1152,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1153,"context_line":"        )"},{"line_number":1154,"context_line":"        return parser"},{"line_number":1155,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_383471de","line":1152,"range":{"start_line":1152,"start_character":29,"end_line":1152,"end_character":49},"updated":"2019-06-18 18:10:00.000000000","message":"same as above","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1149,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":1150,"context_line":"            default\u003dNone,"},{"line_number":1151,"context_line":"            help\u003d_(\u0027Display unlocked servers. \u0027"},{"line_number":1152,"context_line":"                   \u0027Requires --os-compute-version 2.73 or greater.\u0027),"},{"line_number":1153,"context_line":"        )"},{"line_number":1154,"context_line":"        return parser"},{"line_number":1155,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_7b1ad917","line":1152,"range":{"start_line":1152,"start_character":29,"end_line":1152,"end_character":49},"in_reply_to":"9fb8cfa7_383471de","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1209,"context_line":"                          api_versions.APIVersion(\u00272.73\u0027))"},{"line_number":1210,"context_line":"        if not support_locked and (parsed_args.locked or parsed_args.unlocked):"},{"line_number":1211,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1212,"context_line":"                    \u0027support the (un)locked filter option.\u0027)"},{"line_number":1213,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1214,"context_line":"        elif support_locked:"},{"line_number":1215,"context_line":"            # Only from 2.73."}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_583125ec","line":1212,"range":{"start_line":1212,"start_character":21,"end_line":1212,"end_character":28},"updated":"2019-06-18 18:10:00.000000000","message":"use","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1213,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1214,"context_line":"        elif support_locked:"},{"line_number":1215,"context_line":"            # Only from 2.73."},{"line_number":1216,"context_line":"            search_opts[\u0027locked\u0027] \u003d None"},{"line_number":1217,"context_line":"            if parsed_args.locked:"},{"line_number":1218,"context_line":"                search_opts[\u0027locked\u0027] \u003d True"},{"line_number":1219,"context_line":"            if parsed_args.unlocked:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_b86e21c7","line":1216,"range":{"start_line":1216,"start_character":12,"end_line":1216,"end_character":40},"updated":"2019-06-18 18:10:00.000000000","message":"Why even have this? If they don\u0027t specify --locked or --unlock then we just shouldn\u0027t pass the filter parameter. I think None would result in a ValueError in the API but it looks like python-novaclient is actually filtering this out first.","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1213,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1214,"context_line":"        elif support_locked:"},{"line_number":1215,"context_line":"            # Only from 2.73."},{"line_number":1216,"context_line":"            search_opts[\u0027locked\u0027] \u003d None"},{"line_number":1217,"context_line":"            if parsed_args.locked:"},{"line_number":1218,"context_line":"                search_opts[\u0027locked\u0027] \u003d True"},{"line_number":1219,"context_line":"            if parsed_args.unlocked:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_7bc89973","line":1216,"range":{"start_line":1216,"start_character":12,"end_line":1216,"end_character":40},"in_reply_to":"9fb8cfa7_b86e21c7","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1407,"context_line":"            metavar\u003d\u0027\u003creason\u003e\u0027,"},{"line_number":1408,"context_line":"            default\u003dNone,"},{"line_number":1409,"context_line":"            help\u003d_(\"Reason for locking the server(s). Requires \""},{"line_number":1410,"context_line":"                   \"--os-compute-version 2.73 or greater.\")"},{"line_number":1411,"context_line":"        )"},{"line_number":1412,"context_line":"        return parser"},{"line_number":1413,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_f8825952","line":1410,"range":{"start_line":1410,"start_character":20,"end_line":1410,"end_character":40},"updated":"2019-06-18 18:10:00.000000000","message":"same as above","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1407,"context_line":"            metavar\u003d\u0027\u003creason\u003e\u0027,"},{"line_number":1408,"context_line":"            default\u003dNone,"},{"line_number":1409,"context_line":"            help\u003d_(\"Reason for locking the server(s). Requires \""},{"line_number":1410,"context_line":"                   \"--os-compute-version 2.73 or greater.\")"},{"line_number":1411,"context_line":"        )"},{"line_number":1412,"context_line":"        return parser"},{"line_number":1413,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_1b887d1d","line":1410,"range":{"start_line":1410,"start_character":20,"end_line":1410,"end_character":40},"in_reply_to":"9fb8cfa7_f8825952","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"            \u00272.73\u0027)"},{"line_number":1419,"context_line":"        if not support_reason and parsed_args.reason:"},{"line_number":1420,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1421,"context_line":"                    \u0027support the reason option.\u0027)"},{"line_number":1422,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1423,"context_line":"        for server in parsed_args.server:"},{"line_number":1424,"context_line":"            if support_reason:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_98931da4","line":1421,"range":{"start_line":1421,"start_character":33,"end_line":1421,"end_character":39},"updated":"2019-06-18 18:10:00.000000000","message":"--reason","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"            \u00272.73\u0027)"},{"line_number":1419,"context_line":"        if not support_reason and parsed_args.reason:"},{"line_number":1420,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1421,"context_line":"                    \u0027support the reason option.\u0027)"},{"line_number":1422,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1423,"context_line":"        for server in parsed_args.server:"},{"line_number":1424,"context_line":"            if support_reason:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_78966997","line":1421,"range":{"start_line":1421,"start_character":21,"end_line":1421,"end_character":28},"updated":"2019-06-18 18:10:00.000000000","message":"use","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"            \u00272.73\u0027)"},{"line_number":1419,"context_line":"        if not support_reason and parsed_args.reason:"},{"line_number":1420,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1421,"context_line":"                    \u0027support the reason option.\u0027)"},{"line_number":1422,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1423,"context_line":"        for server in parsed_args.server:"},{"line_number":1424,"context_line":"            if support_reason:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_bb7cd120","line":1421,"range":{"start_line":1421,"start_character":21,"end_line":1421,"end_character":28},"in_reply_to":"9fb8cfa7_78966997","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"            \u00272.73\u0027)"},{"line_number":1419,"context_line":"        if not support_reason and parsed_args.reason:"},{"line_number":1420,"context_line":"            msg \u003d _(\u0027--os-compute-api-version 2.73 or greater is required to \u0027"},{"line_number":1421,"context_line":"                    \u0027support the reason option.\u0027)"},{"line_number":1422,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1423,"context_line":"        for server in parsed_args.server:"},{"line_number":1424,"context_line":"            if support_reason:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_db79852f","line":1421,"range":{"start_line":1421,"start_character":33,"end_line":1421,"end_character":39},"in_reply_to":"9fb8cfa7_98931da4","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"                    \u0027support the reason option.\u0027)"},{"line_number":1422,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1423,"context_line":"        for server in parsed_args.server:"},{"line_number":1424,"context_line":"            if support_reason:"},{"line_number":1425,"context_line":"                utils.find_resource("},{"line_number":1426,"context_line":"                    compute_client.servers,"},{"line_number":1427,"context_line":"                    server,"},{"line_number":1428,"context_line":"                ).lock(reason\u003dparsed_args.reason)"},{"line_number":1429,"context_line":"            else:"},{"line_number":1430,"context_line":"                utils.find_resource("},{"line_number":1431,"context_line":"                    compute_client.servers,"},{"line_number":1432,"context_line":"                    server,"},{"line_number":1433,"context_line":"                ).lock()"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":""},{"line_number":1436,"context_line":"# FIXME(dtroyer): Here is what I want, how with argparse/cliff?"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_b8caa19e","line":1433,"range":{"start_line":1424,"start_character":12,"end_line":1433,"end_character":24},"updated":"2019-06-18 18:10:00.000000000","message":"Couldn\u0027t this be simplified to something like:\n\nserver \u003d utils.find_resource(\n    compute_client.servers, server)\nkwargs \u003d {\u0027reason\u0027: parsed_args.reason} if parsed_args.reason else {}\nserver.lock(**kwargs)","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"                    \u0027support the reason option.\u0027)"},{"line_number":1422,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1423,"context_line":"        for server in parsed_args.server:"},{"line_number":1424,"context_line":"            if support_reason:"},{"line_number":1425,"context_line":"                utils.find_resource("},{"line_number":1426,"context_line":"                    compute_client.servers,"},{"line_number":1427,"context_line":"                    server,"},{"line_number":1428,"context_line":"                ).lock(reason\u003dparsed_args.reason)"},{"line_number":1429,"context_line":"            else:"},{"line_number":1430,"context_line":"                utils.find_resource("},{"line_number":1431,"context_line":"                    compute_client.servers,"},{"line_number":1432,"context_line":"                    server,"},{"line_number":1433,"context_line":"                ).lock()"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":""},{"line_number":1436,"context_line":"# FIXME(dtroyer): Here is what I want, how with argparse/cliff?"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_3b78e1f6","line":1433,"range":{"start_line":1424,"start_character":12,"end_line":1433,"end_character":24},"in_reply_to":"9fb8cfa7_b8caa19e","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"efb99e94a0b907e85917e319402fdd516db563af","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1422,"context_line":"        for server in parsed_args.server:"},{"line_number":1423,"context_line":"            serv \u003d utils.find_resource(compute_client.servers, server)"},{"line_number":1424,"context_line":"            (serv.lock(reason\u003dparsed_args.reason) if support_reason"},{"line_number":1425,"context_line":"                else serv.lock())"},{"line_number":1426,"context_line":""},{"line_number":1427,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9fb8cfa7_2a4ba987","line":1424,"updated":"2019-06-19 13:52:14.000000000","message":"Hmm, just because the user is using a microversion that supports using --reason doesn\u0027t mean they provided a reason, so this would pass reason\u003dNone to novaclient, but that\u0027s the default on the kwarg anyway so I guess this is fine.","commit_id":"51747fa19c2c0d9932e0dc8e143e9938fd7626aa"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"067ec586d15abecee501b865770d87c5e9194f86","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1422,"context_line":"        for server in parsed_args.server:"},{"line_number":1423,"context_line":"            serv \u003d utils.find_resource(compute_client.servers, server)"},{"line_number":1424,"context_line":"            (serv.lock(reason\u003dparsed_args.reason) if support_reason"},{"line_number":1425,"context_line":"                else serv.lock())"},{"line_number":1426,"context_line":""},{"line_number":1427,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9fb8cfa7_f89d5866","line":1424,"in_reply_to":"9fb8cfa7_2a4ba987","updated":"2019-06-20 07:24:07.000000000","message":"yes","commit_id":"51747fa19c2c0d9932e0dc8e143e9938fd7626aa"}],"releasenotes/notes/bp-add-locked-reason-425efd2def1144f1.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server and a ``locked``"},{"line_number":5,"context_line":"    filtering option to ``openstack server list`` command which enables users"},{"line_number":6,"context_line":"    to filter servers based on their ``locked`` value in microversion 2.73."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_56a15af7","line":4,"range":{"start_line":4,"start_character":68,"end_line":4,"end_character":74},"updated":"2019-05-15 12:54:19.000000000","message":"--locked","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server and a ``locked``"},{"line_number":5,"context_line":"    filtering option to ``openstack server list`` command which enables users"},{"line_number":6,"context_line":"    to filter servers based on their ``locked`` value in microversion 2.73."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_be8bc865","line":4,"range":{"start_line":4,"start_character":68,"end_line":4,"end_character":74},"in_reply_to":"dfbec78f_56a15af7","updated":"2019-05-15 19:07:21.000000000","message":"Done","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83fe3b5e136976a4c59069d4eda1d958aa76dceb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server and a ``locked``"},{"line_number":5,"context_line":"    filtering option to ``openstack server list`` command which enables users"},{"line_number":6,"context_line":"    to filter servers based on their ``locked`` value in microversion 2.73."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_96b27248","line":6,"range":{"start_line":6,"start_character":53,"end_line":6,"end_character":74},"updated":"2019-05-15 12:54:19.000000000","message":"nit: this is a run-on sentence, maybe better to end at \"value.\" and then say, \"Both require ``--os-compute-api-version`` 2.73 or greater.\"","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"15670f7fb63abed53c3a051a3e244bee869f5c3f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server and a ``locked``"},{"line_number":5,"context_line":"    filtering option to ``openstack server list`` command which enables users"},{"line_number":6,"context_line":"    to filter servers based on their ``locked`` value in microversion 2.73."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfbec78f_1ecbf4a4","line":6,"range":{"start_line":6,"start_character":53,"end_line":6,"end_character":74},"in_reply_to":"dfbec78f_96b27248","updated":"2019-05-15 19:07:21.000000000","message":"\u003e nit: this is a run-on sentence, maybe better to end at \"value.\" and\n \u003e then say, \"Both require ``--os-compute-api-version`` 2.73 or\n \u003e greater.\"\n\noh thanks, so its a run-on if we stop with something like \"in something\".. hmm oh yea when I re-read I understand that it does feel like there is more coming than needed in this sentence.","commit_id":"e4aa24eaf8cad815d926744aa6abfa4fd4aa9b22"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"846ceb4e6db034d7d7311e57c0ba2f6c62af4b86","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    enables users to specify a reason when locking a server and a ``--locked``"},{"line_number":5,"context_line":"    filtering option to ``openstack server list`` command which enables users"},{"line_number":6,"context_line":"    to filter servers based on their ``locked`` value. Both require"},{"line_number":7,"context_line":"    ``--os-compute-api-version`` 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"dfbec78f_227fa9e0","line":7,"updated":"2019-05-16 14:39:00.000000000","message":"Please split this into two entries here, one for each command that is being changed.","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"e5cf04fa8ce6fda177e3bc54599dd0f827123541","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    enables users to specify a reason when locking a server and a ``--locked``"},{"line_number":5,"context_line":"    filtering option to ``openstack server list`` command which enables users"},{"line_number":6,"context_line":"    to filter servers based on their ``locked`` value. Both require"},{"line_number":7,"context_line":"    ``--os-compute-api-version`` 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_c3bea5fe","line":7,"in_reply_to":"dfbec78f_227fa9e0","updated":"2019-05-17 10:40:34.000000000","message":"Done","commit_id":"37bd4b467a7af4fdc2aa5851cc9d0c8be0ddd9a6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_986f9d91","line":3,"range":{"start_line":3,"start_character":32,"end_line":3,"end_character":34},"updated":"2019-06-18 18:10:00.000000000","message":"to the","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_3bc6a118","line":3,"range":{"start_line":3,"start_character":32,"end_line":3,"end_character":34},"in_reply_to":"9fb8cfa7_986f9d91","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_18096ddc","line":5,"range":{"start_line":5,"start_character":13,"end_line":5,"end_character":36},"updated":"2019-06-18 18:10:00.000000000","message":"``--os-compute-api-version``","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_5bcb551d","line":5,"range":{"start_line":5,"start_character":13,"end_line":5,"end_character":36},"in_reply_to":"9fb8cfa7_18096ddc","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_78f749d6","line":6,"range":{"start_line":6,"start_character":42,"end_line":6,"end_character":44},"updated":"2019-06-18 18:10:00.000000000","message":"to the","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Added a ``--reason`` option to ``openstack server lock`` command that"},{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_fbcfa926","line":6,"range":{"start_line":6,"start_character":42,"end_line":6,"end_character":44},"in_reply_to":"9fb8cfa7_78f749d6","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_3801d1b0","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":33},"updated":"2019-06-18 18:10:00.000000000","message":"display only","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    enables users to specify a reason when locking a server. Note that it"},{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_1bd5ddb9","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":33},"in_reply_to":"9fb8cfa7_3801d1b0","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_58fe05af","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":27},"updated":"2019-06-18 18:10:00.000000000","message":"same","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    requires –os-compute-api-version 2.73 or greater."},{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_bbd931f5","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":27},"in_reply_to":"9fb8cfa7_58fe05af","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_f82c994b","line":9,"range":{"start_line":9,"start_character":45,"end_line":9,"end_character":47},"updated":"2019-06-18 18:10:00.000000000","message":"to the","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  - Added a ``--locked`` filtering option to ``openstack server list`` command"},{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_dbd665c4","line":9,"range":{"start_line":9,"start_character":45,"end_line":9,"end_character":47},"in_reply_to":"9fb8cfa7_f82c994b","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_d82bd52d","line":10,"range":{"start_line":10,"start_character":35,"end_line":10,"end_character":41},"updated":"2019-06-18 18:10:00.000000000","message":"display only","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    which enables users to filter locked servers. Note that it requires"},{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_7be3b9a5","line":10,"range":{"start_line":10,"start_character":35,"end_line":10,"end_character":41},"in_reply_to":"9fb8cfa7_d82bd52d","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cfd49faac7f766647063175710bcac118f785b8","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_5817e5ee","line":11,"range":{"start_line":11,"start_character":13,"end_line":11,"end_character":36},"updated":"2019-06-18 18:10:00.000000000","message":"same","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"22318a305d0fdb79c75a9cdbb1112d5b7fd56fa2","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    –os-compute-api-version 2.73 or greater."},{"line_number":9,"context_line":"  - Added an ``--unlocked`` filtering option to ``openstack server list``"},{"line_number":10,"context_line":"    command which enables users to filter unlocked servers. Note that it"},{"line_number":11,"context_line":"    requires –os-compute-api-version 2.73 or greater."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fb8cfa7_9be0ed98","line":11,"range":{"start_line":11,"start_character":13,"end_line":11,"end_character":36},"in_reply_to":"9fb8cfa7_5817e5ee","updated":"2019-06-19 08:41:00.000000000","message":"Done","commit_id":"fe60891e757e5bab2b51dea04be74d3d589f86f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c25cbe3b4bf764990f532c0c9ca68c10571d2207","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - Add ``--unlocked`` option to the ``server list`` command list only unlocked"},{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":" [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/python-openstackclient/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fb8cfa7_a58c7e7f","line":12,"updated":"2019-06-21 15:45:26.000000000","message":"The intend here might screw up the formatting?","commit_id":"2c3deab8daf3eac06b70898f9ffc2f74b59322e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c25cbe3b4bf764990f532c0c9ca68c10571d2207","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - Add ``--unlocked`` option to the ``server list`` command list only unlocked"},{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":" [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/python-openstackclient/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fb8cfa7_25f64efb","line":12,"range":{"start_line":12,"start_character":32,"end_line":12,"end_character":111},"updated":"2019-06-21 15:45:26.000000000","message":"This blueprint URL doesn\u0027t exist - it\u0027s really for the nova blueprint:\n\nhttps://blueprints.launchpad.net/nova/+spec/add-locked-reason","commit_id":"2c3deab8daf3eac06b70898f9ffc2f74b59322e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c25cbe3b4bf764990f532c0c9ca68c10571d2207","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":" [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/python-openstackclient/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fb8cfa7_e592769f","line":13,"updated":"2019-06-21 15:45:26.000000000","message":"Oops whitespace issue here.","commit_id":"2c3deab8daf3eac06b70898f9ffc2f74b59322e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e17bd64627d818bccbeaa3964fd45d08b1e6b50","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - Add ``--unlocked`` option to the ``server list`` command list only unlocked"},{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":"    [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/nova/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"9fb8cfa7_d4aa8183","line":12,"updated":"2019-06-21 18:12:05.000000000","message":"I\u0027m not sure why this is nested under the last item - I guess so it shows up with at least one of the items - but then shouldn\u0027t it be with all of them?","commit_id":"187be0ac22be5d2d1c42d45e9299e62cfc3796ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"19493e3d9f0ca4c8c489e204be641cd870474ac1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - Add ``--unlocked`` option to the ``server list`` command list only unlocked"},{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":"    [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/nova/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"9fb8cfa7_59f002ca","line":12,"in_reply_to":"9fb8cfa7_778cf77e","updated":"2019-06-22 13:27:38.000000000","message":"Yeah it looks OK:\n\nhttp://logs.openstack.org/24/659124/13/check/build-openstack-releasenotes/5c868e2/html/unreleased.html#relnotes-3-19-0-2\n\nDuplicating the blueprint link per item is probably good yeah.","commit_id":"187be0ac22be5d2d1c42d45e9299e62cfc3796ae"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3ccd048a9e0180db1b1ddb5bf3f4751308de2489","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - Add ``--unlocked`` option to the ``server list`` command list only unlocked"},{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":"    [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/nova/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"9fb8cfa7_778cf77e","line":12,"in_reply_to":"9fb8cfa7_d4aa8183","updated":"2019-06-21 19:07:50.000000000","message":"I think the link should be duplicated with each item?  This is how it passed for me, at this point I\u0027m going to merge it and fix it later, I\u0027d like to get these 4 in before starting on the breakage with the osc4 stuff.","commit_id":"187be0ac22be5d2d1c42d45e9299e62cfc3796ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e17bd64627d818bccbeaa3964fd45d08b1e6b50","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    servers."},{"line_number":11,"context_line":"    Requires ``–os-compute-api-version`` 2.73 or greater."},{"line_number":12,"context_line":"    [Blueprint `add-locked-reason \u003chttps://blueprints.launchpad.net/nova/+spec/add-locked-reason\u003e`_]"},{"line_number":13,"context_line":" "}],"source_content_type":"text/x-yaml","patch_set":13,"id":"9fb8cfa7_b48fcd2c","line":13,"updated":"2019-06-21 18:12:05.000000000","message":"whitespace damage (not sure it matters)","commit_id":"187be0ac22be5d2d1c42d45e9299e62cfc3796ae"}],"requirements.txt":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0c918639fd570ad074af7952d5af6fa4d9c7ddd7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":14,"context_line":"python-glanceclient\u003e\u003d2.8.0 # Apache-2.0"},{"line_number":15,"context_line":"python-keystoneclient\u003e\u003d3.17.0 # Apache-2.0"},{"line_number":16,"context_line":"python-novaclient\u003e\u003d14.0.0 # Apache-2.0"},{"line_number":17,"context_line":"python-cinderclient\u003e\u003d3.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"bfb3d3c7_1ef4a485","line":16,"range":{"start_line":16,"start_character":19,"end_line":16,"end_character":25},"updated":"2019-05-23 21:56:58.000000000","message":"This will need to be 14.1.0, your depends-on in the commit message should be dependent on the requirements change to bump upper-constraints (after the release happens). As such you should probably WIP this change until that\u0027s all in line.","commit_id":"3cc030047c030c8b5e985b6031a68b6a6a7e4d8f"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"a9de2b12a37a100f388ee4837b25e08a2c514baf","unresolved":false,"context_lines":[{"line_number":13,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":14,"context_line":"python-glanceclient\u003e\u003d2.8.0 # Apache-2.0"},{"line_number":15,"context_line":"python-keystoneclient\u003e\u003d3.17.0 # Apache-2.0"},{"line_number":16,"context_line":"python-novaclient\u003e\u003d14.0.0 # Apache-2.0"},{"line_number":17,"context_line":"python-cinderclient\u003e\u003d3.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"bfb3d3c7_41c0f82a","line":16,"range":{"start_line":16,"start_character":19,"end_line":16,"end_character":25},"in_reply_to":"bfb3d3c7_1ef4a485","updated":"2019-05-24 09:11:19.000000000","message":"yea yea you are right, I was absent-minded","commit_id":"3cc030047c030c8b5e985b6031a68b6a6a7e4d8f"}]}
