)]}'
{"openstackclient/compute/v2/server.py":[{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"1f193405fde8155955ccde20c6dbc4715f4d07b8","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        )"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"class AddTag(command.Command):"},{"line_number":422,"context_line":"    _description \u003d _(\"Add single tag to a server\")"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_b05e0a10","line":421,"range":{"start_line":421,"start_character":6,"end_line":421,"end_character":12},"updated":"2018-05-23 02:45:54.000000000","message":"You had already added this similiar operation in CreateServer. Do we still need this?","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":26311,"name":"tianhui","email":"tianhui@awcloud.com","username":"tianhui"},"change_message_id":"85112f25b654f53c2093457390726b62759acc8f","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        )"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"class AddTag(command.Command):"},{"line_number":422,"context_line":"    _description \u003d _(\"Add single tag to a server\")"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_30f67afb","line":421,"range":{"start_line":421,"start_character":6,"end_line":421,"end_character":12},"in_reply_to":"5f7c97a3_b05e0a10","updated":"2018-05-23 02:54:06.000000000","message":"We can add tags in a created server, and also add tags in a creating server","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"1f193405fde8155955ccde20c6dbc4715f4d07b8","unresolved":false,"context_lines":[{"line_number":442,"context_line":"            compute_client.servers, parsed_args.server)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        if parsed_args.tag:"},{"line_number":445,"context_line":"            tag_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":446,"context_line":"            if server.api_version \u003c tag_microversion:"},{"line_number":447,"context_line":"                msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":448,"context_line":"                raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_f00d6235","line":445,"range":{"start_line":445,"start_character":56,"end_line":445,"end_character":60},"updated":"2018-05-23 02:45:54.000000000","message":"2.52?","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":26311,"name":"tianhui","email":"tianhui@awcloud.com","username":"tianhui"},"change_message_id":"85112f25b654f53c2093457390726b62759acc8f","unresolved":false,"context_lines":[{"line_number":442,"context_line":"            compute_client.servers, parsed_args.server)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        if parsed_args.tag:"},{"line_number":445,"context_line":"            tag_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":446,"context_line":"            if server.api_version \u003c tag_microversion:"},{"line_number":447,"context_line":"                msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":448,"context_line":"                raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_d0c5c68f","line":445,"range":{"start_line":445,"start_character":56,"end_line":445,"end_character":60},"in_reply_to":"5f7c97a3_f00d6235","updated":"2018-05-23 02:54:06.000000000","message":"Adding tags in a created server is 2.26, and in a creating server is 2.52","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"229b82c04a032ad447ebb1c135a632487890a70a","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            if server.api_version \u003c tag_microversion:"},{"line_number":447,"context_line":"                msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":448,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":449,"context_line":"            server.add_tag(tag\u003dparsed_args.tag)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class SetTags(command.Command):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_90ac2e8d","line":449,"range":{"start_line":449,"start_character":12,"end_line":449,"end_character":47},"updated":"2018-05-23 03:33:58.000000000","message":"there should be some format checking for \u0027tag\u0027","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"1f193405fde8155955ccde20c6dbc4715f4d07b8","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            server.add_tag(tag\u003dparsed_args.tag)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class SetTags(command.Command):"},{"line_number":453,"context_line":"    _description \u003d _(\"Set list of tags to a server\")"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_509bf6c7","line":452,"range":{"start_line":452,"start_character":6,"end_line":452,"end_character":13},"updated":"2018-05-23 02:45:54.000000000","message":"ditto","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"1f193405fde8155955ccde20c6dbc4715f4d07b8","unresolved":false,"context_lines":[{"line_number":474,"context_line":"            compute_client.servers, parsed_args.server)"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        if parsed_args.tags:"},{"line_number":477,"context_line":"            tags_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":478,"context_line":"            if server.api_version \u003c tags_microversion:"},{"line_number":479,"context_line":"                msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":480,"context_line":"                raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_901c2e6b","line":477,"range":{"start_line":477,"start_character":57,"end_line":477,"end_character":61},"updated":"2018-05-23 02:45:54.000000000","message":"ditto","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"229b82c04a032ad447ebb1c135a632487890a70a","unresolved":false,"context_lines":[{"line_number":478,"context_line":"            if server.api_version \u003c tags_microversion:"},{"line_number":479,"context_line":"                msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":480,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":481,"context_line":"            server.set_tags(tags\u003dparsed_args.tags.split(\u0027,\u0027))"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"class CreateServer(command.ShowOne):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_90daee14","line":481,"range":{"start_line":481,"start_character":12,"end_line":481,"end_character":61},"updated":"2018-05-23 03:33:58.000000000","message":"ditto","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"229b82c04a032ad447ebb1c135a632487890a70a","unresolved":false,"context_lines":[{"line_number":933,"context_line":"            scheduler_hints\u003dhints,"},{"line_number":934,"context_line":"            config_drive\u003dconfig_drive)"},{"line_number":935,"context_line":""},{"line_number":936,"context_line":"        if parsed_args.tags:"},{"line_number":937,"context_line":"            tag_list \u003d parsed_args.tags.split(\u0027,\u0027)"},{"line_number":938,"context_line":"            boot_kwargs[\u0027tags\u0027] \u003d tag_list"},{"line_number":939,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_b0a7eaa7","line":936,"updated":"2018-05-23 03:33:58.000000000","message":"ditto","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"229b82c04a032ad447ebb1c135a632487890a70a","unresolved":false,"context_lines":[{"line_number":1818,"context_line":"        )"},{"line_number":1819,"context_line":""},{"line_number":1820,"context_line":""},{"line_number":1821,"context_line":"class RemoveTag(command.Command):"},{"line_number":1822,"context_line":"    _description \u003d _(\"Remove all tags from server\")"},{"line_number":1823,"context_line":""},{"line_number":1824,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_30eafaab","line":1821,"updated":"2018-05-23 03:33:58.000000000","message":"please also add a way to remove a specific tag","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"1f193405fde8155955ccde20c6dbc4715f4d07b8","unresolved":false,"context_lines":[{"line_number":2005,"context_line":"            ).resume()"},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":""},{"line_number":2008,"context_line":"class SetServer(command.Command):"},{"line_number":2009,"context_line":"    _description \u003d _(\"Set server properties\")"},{"line_number":2010,"context_line":""},{"line_number":2011,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_70795291","line":2008,"range":{"start_line":2008,"start_character":6,"end_line":2008,"end_character":15},"updated":"2018-05-23 02:45:54.000000000","message":"How about also add tags set operation here?","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":26311,"name":"tianhui","email":"tianhui@awcloud.com","username":"tianhui"},"change_message_id":"bb4944c0d38ec3a313433ba9245e533ce211c49f","unresolved":false,"context_lines":[{"line_number":2005,"context_line":"            ).resume()"},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":""},{"line_number":2008,"context_line":"class SetServer(command.Command):"},{"line_number":2009,"context_line":"    _description \u003d _(\"Set server properties\")"},{"line_number":2010,"context_line":""},{"line_number":2011,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_f01c8214","line":2008,"range":{"start_line":2008,"start_character":6,"end_line":2008,"end_character":15},"in_reply_to":"5f7c97a3_70795291","updated":"2018-05-23 03:09:05.000000000","message":"There are \"server-tag-set\" and \"server-tag-add\" two methods, if I use \"--tags\", which method should be used","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"1f193405fde8155955ccde20c6dbc4715f4d07b8","unresolved":false,"context_lines":[{"line_number":2407,"context_line":"        ).unrescue()"},{"line_number":2408,"context_line":""},{"line_number":2409,"context_line":""},{"line_number":2410,"context_line":"class UnsetServer(command.Command):"},{"line_number":2411,"context_line":"    _description \u003d _(\"Unset server properties\")"},{"line_number":2412,"context_line":""},{"line_number":2413,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_d06946be","line":2410,"range":{"start_line":2410,"start_character":6,"end_line":2410,"end_character":17},"updated":"2018-05-23 02:45:54.000000000","message":"Why not unset tag property here?","commit_id":"1192bc46523773087b8a751c65796741973df9bd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":419,"context_line":""},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"class AddTag(command.Command):"},{"line_number":422,"context_line":"    _description \u003d _(\"Add single tag to a server\")"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def get_parser(self, prog_name):"},{"line_number":425,"context_line":"        parser \u003d super(AddTag, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_70f17f95","line":422,"updated":"2018-06-06 01:09:34.000000000","message":"Mention that --os-compute-api-version \u003e\u003d 2.26 is required.","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        if parsed_args.tag:"},{"line_number":445,"context_line":"            tag_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":446,"context_line":"            if server.api_version \u003c tag_microversion:"},{"line_number":447,"context_line":"                msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":448,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":449,"context_line":"            server.add_tag(tag\u003dparsed_args.tag)"},{"line_number":450,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b0f7178d","line":447,"range":{"start_line":447,"start_character":50,"end_line":447,"end_character":54},"updated":"2018-06-06 01:09:34.000000000","message":"The user shouldn\u0027t know about nova, they know about the compute API, but I\u0027d re-word this as something like (and below for the other commands):\n\n\"--os-compute-api-version 2.26 or later is required\"","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class SetTags(command.Command):"},{"line_number":453,"context_line":"    _description \u003d _(\"Set list of tags to a server\")"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def get_parser(self, prog_name):"},{"line_number":456,"context_line":"        parser \u003d super(SetTags, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_502ec3fa","line":453,"range":{"start_line":453,"start_character":39,"end_line":453,"end_character":41},"updated":"2018-06-06 01:09:34.000000000","message":"on\n\nshould probably also point out this is a complete overwrite of the tags","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class SetTags(command.Command):"},{"line_number":453,"context_line":"    _description \u003d _(\"Set list of tags to a server\")"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def get_parser(self, prog_name):"},{"line_number":456,"context_line":"        parser \u003d super(SetTags, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_3029c7f1","line":453,"updated":"2018-06-06 01:09:34.000000000","message":"same","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":462,"context_line":"        parser.add_argument("},{"line_number":463,"context_line":"            \u0027tags\u0027,"},{"line_number":464,"context_line":"            metavar\u003d\"\u003ctags\u003e\","},{"line_number":465,"context_line":"            help\u003d_(\u0027Tags for the server. Tags must be separated\u0027"},{"line_number":466,"context_line":"                   \u0027by commas: \u003ctag1,tag2\u003e\u0027),"},{"line_number":467,"context_line":"        )"},{"line_number":468,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_d039733f","line":465,"range":{"start_line":465,"start_character":63,"end_line":465,"end_character":64},"updated":"2018-06-06 01:09:34.000000000","message":"need a space","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        parser.add_argument("},{"line_number":662,"context_line":"            \u0027--tags\u0027,"},{"line_number":663,"context_line":"            metavar\u003d\"\u003ctags\u003e\","},{"line_number":664,"context_line":"            help\u003d_(\u0027Tags for the server. Tags must be separated\u0027"},{"line_number":665,"context_line":"                   \u0027by commas: --tags \u003ctag1,tag2\u003e\u0027),"},{"line_number":666,"context_line":"        )"},{"line_number":667,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_301227b6","line":664,"updated":"2018-06-06 01:09:34.000000000","message":"need to point out that --os-compute-api-version \u003e\u003d 2.52 is required for this","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":774,"context_line":"        if parsed_args.tags:"},{"line_number":775,"context_line":"            tags_microversion \u003d api_versions.APIVersion(\"2.52\")"},{"line_number":776,"context_line":"            if compute_client.api_version \u003c tags_microversion:"},{"line_number":777,"context_line":"                msg \u003d _(\"Description is not supported for nova api version \""},{"line_number":778,"context_line":"                        \"\u003c 2.52\")"},{"line_number":779,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":780,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_10112bad","line":777,"range":{"start_line":777,"start_character":25,"end_line":777,"end_character":36},"updated":"2018-06-06 01:09:34.000000000","message":"Wrong field","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":1040,"context_line":"                    raise SystemExit"},{"line_number":1041,"context_line":""},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"class ListTag(command.Command):"},{"line_number":1044,"context_line":"    _description \u003d _(\"Get list of tags from an instance.\")"},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_d022d301","line":1043,"range":{"start_line":1043,"start_character":6,"end_line":1043,"end_character":13},"updated":"2018-06-06 01:09:34.000000000","message":"ListTags?","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":1041,"context_line":""},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"class ListTag(command.Command):"},{"line_number":1044,"context_line":"    _description \u003d _(\"Get list of tags from an instance.\")"},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"    def get_parser(self, prog_name):"},{"line_number":1047,"context_line":"        parser \u003d super(ListTag, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b025d70c","line":1044,"updated":"2018-06-06 01:09:34.000000000","message":"same, mention the required version","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"        server \u003d utils.find_resource("},{"line_number":1059,"context_line":"            compute_client.servers, parsed_args.server)"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"        tag_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":1062,"context_line":"        if server.api_version \u003c tag_microversion:"},{"line_number":1063,"context_line":"            msg \u003d _(\"Tag is not supported for nova api version \u003c 2.26\")"},{"line_number":1064,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_701f3fb7","line":1061,"updated":"2018-06-06 01:09:34.000000000","message":"osc-placement has a nice version check utility, we should use something like that throughout these tag commands:\n\nhttps://github.com/openstack/osc-placement/blob/master/osc_placement/resources/resource_class.py#L36","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"87bedb6b072a6ba6f6758d2013dad5a7fa2d5418","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            compute_client.servers, parsed_args.server)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        if parsed_args.tag:"},{"line_number":446,"context_line":"            tag_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":447,"context_line":"            if server.api_version \u003c tag_microversion:"},{"line_number":448,"context_line":"                msg \u003d _(\"--os-compute-api-version 2.26 or later is required\")"},{"line_number":449,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":450,"context_line":"            server.add_tag(tag\u003dparsed_args.tag)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_b5f4e188","line":447,"range":{"start_line":446,"start_character":11,"end_line":447,"end_character":53},"updated":"2018-06-06 08:50:41.000000000","message":"nit, why cannot merge these two lines?","commit_id":"93b12bf7aa189f9be652a5bca5f936619408ff90"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"87bedb6b072a6ba6f6758d2013dad5a7fa2d5418","unresolved":false,"context_lines":[{"line_number":476,"context_line":"            compute_client.servers, parsed_args.server)"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        if parsed_args.tags:"},{"line_number":479,"context_line":"            tags_microversion \u003d api_versions.APIVersion(\"2.26\")"},{"line_number":480,"context_line":"            if server.api_version \u003c tags_microversion:"},{"line_number":481,"context_line":"                msg \u003d _(\"--os-compute-api-version 2.26 or later is required\")"},{"line_number":482,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":483,"context_line":"            server.set_tags(tags\u003dparsed_args.tags.split(\u0027,\u0027))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_75ee49b5","line":480,"range":{"start_line":479,"start_character":12,"end_line":480,"end_character":54},"updated":"2018-06-06 08:50:41.000000000","message":"ditto","commit_id":"93b12bf7aa189f9be652a5bca5f936619408ff90"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53036801c3db53fdd52f3cf37f2e123e866b5d94","unresolved":false,"context_lines":[{"line_number":2057,"context_line":"            action\u003d\"store_true\","},{"line_number":2058,"context_line":"            help\u003d_(\u0027Set new root password (interactive only)\u0027),"},{"line_number":2059,"context_line":"        )"},{"line_number":2060,"context_line":"        parser.add_argument("},{"line_number":2061,"context_line":"            \"--property\","},{"line_number":2062,"context_line":"            metavar\u003d\"\u003ckey\u003dvalue\u003e\","},{"line_number":2063,"context_line":"            action\u003dparseractions.KeyValueAction,"}],"source_content_type":"text/x-python","patch_set":18,"id":"5f7c97a3_a5b5eaee","line":2060,"updated":"2018-06-13 15:28:48.000000000","message":"i think we want to add tags like we add properties, see here","commit_id":"cd7bd3bc618cf8eb4facefe63df7d9760a9865e0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53036801c3db53fdd52f3cf37f2e123e866b5d94","unresolved":false,"context_lines":[{"line_number":2449,"context_line":"            metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":2450,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":2451,"context_line":"        )"},{"line_number":2452,"context_line":"        parser.add_argument("},{"line_number":2453,"context_line":"            \u0027--property\u0027,"},{"line_number":2454,"context_line":"            metavar\u003d\u0027\u003ckey\u003e\u0027,"},{"line_number":2455,"context_line":"            action\u003d\u0027append\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"5f7c97a3_e5a442bb","line":2452,"updated":"2018-06-13 15:28:48.000000000","message":"we can remove tags the same way we remove properties","commit_id":"cd7bd3bc618cf8eb4facefe63df7d9760a9865e0"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"51697d239973f94f77b38bd68672339835cf42dc","unresolved":false,"context_lines":[{"line_number":596,"context_line":"            help\u003d_(\u0027Wait for build to complete\u0027),"},{"line_number":597,"context_line":"        )"},{"line_number":598,"context_line":"        parser.add_argument("},{"line_number":599,"context_line":"            \u0027--tags\u0027,"},{"line_number":600,"context_line":"            metavar\u003d\"\u003ctags\u003e\","},{"line_number":601,"context_line":"            help\u003d_(\u0027Tags for the server. Tags must be separated \u0027"},{"line_number":602,"context_line":"                   \u0027by commas: --tags \u003ctag1,tag2\u003e. \u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f79a3b5_f7a50148","line":599,"range":{"start_line":599,"start_character":15,"end_line":599,"end_character":19},"updated":"2018-08-14 16:03:29.000000000","message":"This should be a single --tag option that can be set multiple times just like --property.","commit_id":"f3c7ace4828dbfca1c76908579a4540fc0493831"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"51697d239973f94f77b38bd68672339835cf42dc","unresolved":false,"context_lines":[{"line_number":2029,"context_line":"                   \"versions \u00272.26\u0027 - \u00272.latest\u0027\"),"},{"line_number":2030,"context_line":"        )"},{"line_number":2031,"context_line":"        parser.add_argument("},{"line_number":2032,"context_line":"            \u0027--tags\u0027,"},{"line_number":2033,"context_line":"            metavar\u003d\"\u003ctags\u003e\","},{"line_number":2034,"context_line":"            help\u003d_(\"Tags for the server. Tags must be separated \""},{"line_number":2035,"context_line":"                   \"by commas: \u003ctag1,tag2\u003e. (Supported by API \""}],"source_content_type":"text/x-python","patch_set":26,"id":"3f79a3b5_1778bdc1","line":2032,"range":{"start_line":2032,"start_character":15,"end_line":2032,"end_character":19},"updated":"2018-08-14 16:03:29.000000000","message":"only use --tag","commit_id":"f3c7ace4828dbfca1c76908579a4540fc0493831"},{"author":{"_account_id":26311,"name":"tianhui","email":"tianhui@awcloud.com","username":"tianhui"},"change_message_id":"ad77ac4ed5ad90057d88005e15955821a18f641e","unresolved":false,"context_lines":[{"line_number":2029,"context_line":"                   \"versions \u00272.26\u0027 - \u00272.latest\u0027\"),"},{"line_number":2030,"context_line":"        )"},{"line_number":2031,"context_line":"        parser.add_argument("},{"line_number":2032,"context_line":"            \u0027--tags\u0027,"},{"line_number":2033,"context_line":"            metavar\u003d\"\u003ctags\u003e\","},{"line_number":2034,"context_line":"            help\u003d_(\"Tags for the server. Tags must be separated \""},{"line_number":2035,"context_line":"                   \"by commas: \u003ctag1,tag2\u003e. (Supported by API \""}],"source_content_type":"text/x-python","patch_set":26,"id":"3f79a3b5_af0cf093","line":2032,"range":{"start_line":2032,"start_character":15,"end_line":2032,"end_character":19},"in_reply_to":"3f79a3b5_1778bdc1","updated":"2018-08-15 11:04:03.000000000","message":"There are two methods for \"--tag\" and \"--tags\", if you need to add a tag to the server, you can use \"--tag\", and \"--tags\" is used for reset the server tags","commit_id":"f3c7ace4828dbfca1c76908579a4540fc0493831"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b4798884497a94d9b10781e5434fc3fc2fa8ccd","unresolved":false,"context_lines":[{"line_number":2029,"context_line":"                   \"versions \u00272.26\u0027 - \u00272.latest\u0027\"),"},{"line_number":2030,"context_line":"        )"},{"line_number":2031,"context_line":"        parser.add_argument("},{"line_number":2032,"context_line":"            \u0027--tags\u0027,"},{"line_number":2033,"context_line":"            metavar\u003d\"\u003ctags\u003e\","},{"line_number":2034,"context_line":"            help\u003d_(\"Tags for the server. Tags must be separated \""},{"line_number":2035,"context_line":"                   \"by commas: \u003ctag1,tag2\u003e. (Supported by API \""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_5157ef5a","line":2032,"range":{"start_line":2032,"start_character":15,"end_line":2032,"end_character":19},"in_reply_to":"3f79a3b5_af0cf093","updated":"2020-10-12 13:55:44.000000000","message":"Done","commit_id":"f3c7ace4828dbfca1c76908579a4540fc0493831"}],"openstackclient/tests/unit/compute/v2/test_server.py":[{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"c39f9e1ca92e554032abcf81257a4e88d5968713","unresolved":false,"context_lines":[{"line_number":460,"context_line":"            tag_list,"},{"line_number":461,"context_line":"        ]"},{"line_number":462,"context_line":"        verifylist \u003d ["},{"line_number":463,"context_line":"            (\u0027server\u0027, \u0027foo_vm\u0027 ),"},{"line_number":464,"context_line":"            (\u0027tags\u0027, tag_list)"},{"line_number":465,"context_line":"        ]"},{"line_number":466,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_718861c5","line":463,"range":{"start_line":463,"start_character":31,"end_line":463,"end_character":32},"updated":"2018-05-24 14:29:10.000000000","message":"whitespace","commit_id":"20d85d6b638e00f40b8eb50ce37b0781745c73e1"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"c39f9e1ca92e554032abcf81257a4e88d5968713","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            tag_list,"},{"line_number":487,"context_line":"        ]"},{"line_number":488,"context_line":"        verifylist \u003d ["},{"line_number":489,"context_line":"            (\u0027server\u0027, \u0027foo_vm\u0027 ),"},{"line_number":490,"context_line":"            (\u0027tags\u0027, tag_list)"},{"line_number":491,"context_line":"        ]"},{"line_number":492,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_9183bda9","line":489,"range":{"start_line":489,"start_character":31,"end_line":489,"end_character":32},"updated":"2018-05-24 14:29:10.000000000","message":"ditto","commit_id":"20d85d6b638e00f40b8eb50ce37b0781745c73e1"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"c39f9e1ca92e554032abcf81257a4e88d5968713","unresolved":false,"context_lines":[{"line_number":527,"context_line":"            \u0027tag1\u0027,"},{"line_number":528,"context_line":"        ]"},{"line_number":529,"context_line":"        verifylist \u003d ["},{"line_number":530,"context_line":"            (\u0027server\u0027, \u0027foo_vm\u0027 ),"},{"line_number":531,"context_line":"            (\u0027tag\u0027, \u0027tag1\u0027)"},{"line_number":532,"context_line":"        ]"},{"line_number":533,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_3192e9f7","line":530,"range":{"start_line":530,"start_character":31,"end_line":530,"end_character":32},"updated":"2018-05-24 14:29:10.000000000","message":"ditto","commit_id":"20d85d6b638e00f40b8eb50ce37b0781745c73e1"},{"author":{"_account_id":25562,"name":"Chen","email":"dstbtgagt@foxmail.com","username":"chenn2"},"change_message_id":"c39f9e1ca92e554032abcf81257a4e88d5968713","unresolved":false,"context_lines":[{"line_number":551,"context_line":"            \u0027tag1\u0027,"},{"line_number":552,"context_line":"        ]"},{"line_number":553,"context_line":"        verifylist \u003d ["},{"line_number":554,"context_line":"            (\u0027server\u0027, \u0027foo_vm\u0027 ),"},{"line_number":555,"context_line":"            (\u0027tag\u0027, \u0027tag1\u0027)"},{"line_number":556,"context_line":"        ]"},{"line_number":557,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_518d25d1","line":554,"range":{"start_line":554,"start_character":31,"end_line":554,"end_character":32},"updated":"2018-05-24 14:29:10.000000000","message":"ditto","commit_id":"20d85d6b638e00f40b8eb50ce37b0781745c73e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    def test_server_set_tags_newer(self):"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        # Set server with tags is not supported for nova api \u003e\u003d 2.26"},{"line_number":454,"context_line":"        self.fake_servers[0].api_version \u003d 2.26"},{"line_number":455,"context_line":"        self.fake_servers[0].set_tags \u003d mock.Mock()"},{"line_number":456,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_f096ef3e","line":453,"range":{"start_line":453,"start_character":34,"end_line":453,"end_character":37},"updated":"2018-06-06 01:09:34.000000000","message":"only","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        with mock.patch.object(novaclient.api_versions,"},{"line_number":495,"context_line":"                               \u0027APIVersion\u0027,"},{"line_number":496,"context_line":"                               return_value\u003d2.26):"},{"line_number":497,"context_line":"            self.assertRaises(exceptions.CommandError, self.cmd.take_action,"},{"line_number":498,"context_line":"                              parsed_args)"},{"line_number":499,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_70aadf71","line":496,"range":{"start_line":496,"start_character":46,"end_line":496,"end_character":48},"updated":"2018-06-06 01:09:34.000000000","message":"why wouldn\u0027t this be 2.25?","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def test_server_add_tag_older(self):"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"        # Add server with a tag is only supported for nova api \u003c 2.26"},{"line_number":547,"context_line":"        self.fake_servers[0].api_version \u003d 2.25"},{"line_number":548,"context_line":"        self.fake_servers[0].add_tag \u003d mock.Mock()"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_f0afcf7a","line":546,"range":{"start_line":546,"start_character":35,"end_line":546,"end_character":39},"updated":"2018-06-06 01:09:34.000000000","message":"not","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":1840,"context_line":"        # In base command class ShowOne in cliff, abstract method take_action()"},{"line_number":1841,"context_line":"        # returns a two-part tuple with a tuple of column names and a tuple of"},{"line_number":1842,"context_line":"        # data to be shown."},{"line_number":1843,"context_line":"        self.app.client_manager.compute.api_version \u003d 2.52"},{"line_number":1844,"context_line":"        with mock.patch.object(novaclient.api_versions,"},{"line_number":1845,"context_line":"                               \u0027APIVersion\u0027,"},{"line_number":1846,"context_line":"                               return_value\u003d2.52):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_90c0db2c","line":1843,"range":{"start_line":1843,"start_character":54,"end_line":1843,"end_character":58},"updated":"2018-06-06 01:09:34.000000000","message":"The release note should also explain that creating a server with --tags requires --os-compute-api-version 2.52 or newer.","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":2032,"context_line":""},{"line_number":2033,"context_line":"    def test_server_tag_list_newer(self):"},{"line_number":2034,"context_line":""},{"line_number":2035,"context_line":"        # List server tags is not supported for nova api \u003e\u003d 2.26"},{"line_number":2036,"context_line":"        self.fake_servers[0].api_version \u003d 2.26"},{"line_number":2037,"context_line":"        self.fake_servers[0].tag_list \u003d mock.Mock()"},{"line_number":2038,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_50e003cd","line":2035,"range":{"start_line":2035,"start_character":30,"end_line":2035,"end_character":33},"updated":"2018-06-06 01:09:34.000000000","message":"only","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":3075,"context_line":""},{"line_number":3076,"context_line":"    def test_server_remove_single_tag_newer(self):"},{"line_number":3077,"context_line":""},{"line_number":3078,"context_line":"        # Remove a server tag is not supported for nova api \u003e\u003d 2.26"},{"line_number":3079,"context_line":"        self.fake_servers[0].api_version \u003d 2.26"},{"line_number":3080,"context_line":"        self.fake_servers[0].delete_tag \u003d mock.Mock()"},{"line_number":3081,"context_line":"        arglist \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_10ea8bab","line":3078,"range":{"start_line":3078,"start_character":33,"end_line":3078,"end_character":36},"updated":"2018-06-06 01:09:34.000000000","message":"only","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":3118,"context_line":""},{"line_number":3119,"context_line":"    def test_server_remove_tags_newer(self):"},{"line_number":3120,"context_line":""},{"line_number":3121,"context_line":"        # Remove server tags is not supported for nova api \u003e\u003d 2.26"},{"line_number":3122,"context_line":"        self.fake_servers[0].api_version \u003d 2.26"},{"line_number":3123,"context_line":"        self.fake_servers[0].delete_all_tags \u003d mock.Mock()"},{"line_number":3124,"context_line":"        arglist \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_d0cbb347","line":3121,"range":{"start_line":3121,"start_character":32,"end_line":3121,"end_character":35},"updated":"2018-06-06 01:09:34.000000000","message":"only","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"87bedb6b072a6ba6f6758d2013dad5a7fa2d5418","unresolved":false,"context_lines":[{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        with mock.patch.object(novaclient.api_versions,"},{"line_number":495,"context_line":"                               \u0027APIVersion\u0027,"},{"line_number":496,"context_line":"                               return_value\u003d2.26):"},{"line_number":497,"context_line":"            self.assertRaises(exceptions.CommandError, self.cmd.take_action,"},{"line_number":498,"context_line":"                              parsed_args)"},{"line_number":499,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_d5807dc2","line":496,"updated":"2018-06-06 08:50:41.000000000","message":"is this 2.25?","commit_id":"93b12bf7aa189f9be652a5bca5f936619408ff90"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"87bedb6b072a6ba6f6758d2013dad5a7fa2d5418","unresolved":false,"context_lines":[{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        with mock.patch.object(novaclient.api_versions,"},{"line_number":561,"context_line":"                               \u0027APIVersion\u0027,"},{"line_number":562,"context_line":"                               return_value\u003d2.26):"},{"line_number":563,"context_line":"            self.assertRaises(exceptions.CommandError, self.cmd.take_action,"},{"line_number":564,"context_line":"                              parsed_args)"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_55746dfe","line":562,"range":{"start_line":562,"start_character":44,"end_line":562,"end_character":49},"updated":"2018-06-06 08:50:41.000000000","message":"ditto","commit_id":"93b12bf7aa189f9be652a5bca5f936619408ff90"}],"releasenotes/notes/server-add-tag-63f9cd01dbd82d1b.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd474b862064b383e8ec4b57850e47b93fbe79b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add supports tagging for server."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5f7c97a3_7075ff31","line":4,"updated":"2018-06-06 01:09:34.000000000","message":"You should provide more details for this, like the new commands that were added, and the minimum --os-compute-api-version to use these commands (2.26: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id23 )","commit_id":"d32be44da7a8dd88fbbe0a26d6c0951f639a5e61"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"87bedb6b072a6ba6f6758d2013dad5a7fa2d5418","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add supports tagging for server."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"5f7c97a3_15c5950a","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":36},"updated":"2018-06-06 08:50:41.000000000","message":"shouldn\u0027t be more clear about which cli added which param?","commit_id":"93b12bf7aa189f9be652a5bca5f936619408ff90"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53036801c3db53fdd52f3cf37f2e123e866b5d94","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Add ``server add tag``, ``server remove tag``, ``server set tags``"},{"line_number":4,"context_line":"    and ``server tag list`` commands. These commands will modify the"},{"line_number":5,"context_line":"    server tags when needed."},{"line_number":6,"context_line":"  - Add ``--tags`` option to ``server create`` command when create a"},{"line_number":7,"context_line":"    instance."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"5f7c97a3_059b7e72","line":6,"updated":"2018-06-13 15:28:48.000000000","message":"thanks for adding this","commit_id":"cd7bd3bc618cf8eb4facefe63df7d9760a9865e0"}],"setup.cfg":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53036801c3db53fdd52f3cf37f2e123e866b5d94","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    server_start \u003d openstackclient.compute.v2.server:StartServer"},{"line_number":136,"context_line":"    server_stop \u003d openstackclient.compute.v2.server:StopServer"},{"line_number":137,"context_line":"    server_suspend \u003d openstackclient.compute.v2.server:SuspendServer"},{"line_number":138,"context_line":"    server_tag_list \u003d openstackclient.compute.v2.server:ListTags"},{"line_number":139,"context_line":"    server_dump_create \u003d openstackclient.compute.v2.server:CreateServerDump"},{"line_number":140,"context_line":"    server_unlock \u003d openstackclient.compute.v2.server:UnlockServer"},{"line_number":141,"context_line":"    server_unpause \u003d openstackclient.compute.v2.server:UnpauseServer"}],"source_content_type":"text/x-ttcn-cfg","patch_set":18,"id":"5f7c97a3_e5d68227","line":138,"updated":"2018-06-13 15:28:48.000000000","message":"shouldn\u0027t this be `server list tags`? since all the others are add/remove/set tag...","commit_id":"cd7bd3bc618cf8eb4facefe63df7d9760a9865e0"}]}
