)]}'
{"openstackclient/compute/v2/server.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"03d418934f27783f96d81a14373926ef8c123ffc","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"            nargs\u003d\u0027*\u0027,"},{"line_number":1600,"context_line":"            metavar\u003d\u0027-- \u003cstandard ssh args\u003e\u0027,"},{"line_number":1601,"context_line":"            help\u003d(\u0027Any argument or option that ssh allows. \u0027"},{"line_number":1602,"context_line":"                  \u0027Use -- once between openstack client args and ssh args.\u0027)"},{"line_number":1603,"context_line":"        )"},{"line_number":1604,"context_line":"        return parser"},{"line_number":1605,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_9ce4d6e1","line":1602,"range":{"start_line":1602,"start_character":65,"end_line":1602,"end_character":68},"updated":"2016-11-26 11:58:02.000000000","message":"SSH*","commit_id":"0ee6b1b52a5c851f8bcc87b592401fe4d619efaa"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"03d418934f27783f96d81a14373926ef8c123ffc","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"            nargs\u003d\u0027*\u0027,"},{"line_number":1600,"context_line":"            metavar\u003d\u0027-- \u003cstandard ssh args\u003e\u0027,"},{"line_number":1601,"context_line":"            help\u003d(\u0027Any argument or option that ssh allows. \u0027"},{"line_number":1602,"context_line":"                  \u0027Use -- once between openstack client args and ssh args.\u0027)"},{"line_number":1603,"context_line":"        )"},{"line_number":1604,"context_line":"        return parser"},{"line_number":1605,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_7cdffa0c","line":1602,"range":{"start_line":1602,"start_character":39,"end_line":1602,"end_character":55},"updated":"2016-11-26 11:58:02.000000000","message":"openstackclient*","commit_id":"0ee6b1b52a5c851f8bcc87b592401fe4d619efaa"},{"author":{"_account_id":7217,"name":"Hugh Saunders","email":"hugh@wherenow.org","username":"hughsaunders"},"change_message_id":"4f5f2f4d1b3c965384cd2c54de49e9e438095373","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"            nargs\u003d\u0027*\u0027,"},{"line_number":1600,"context_line":"            metavar\u003d\u0027-- \u003cstandard ssh args\u003e\u0027,"},{"line_number":1601,"context_line":"            help\u003d(\u0027Any argument or option that ssh allows. \u0027"},{"line_number":1602,"context_line":"                  \u0027Use -- once between openstack client args and ssh args.\u0027)"},{"line_number":1603,"context_line":"        )"},{"line_number":1604,"context_line":"        return parser"},{"line_number":1605,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_5653cd38","line":1602,"range":{"start_line":1602,"start_character":39,"end_line":1602,"end_character":55},"in_reply_to":"5a74a57a_7cdffa0c","updated":"2016-11-28 16:39:16.000000000","message":"Done","commit_id":"0ee6b1b52a5c851f8bcc87b592401fe4d619efaa"},{"author":{"_account_id":7217,"name":"Hugh Saunders","email":"hugh@wherenow.org","username":"hughsaunders"},"change_message_id":"4f5f2f4d1b3c965384cd2c54de49e9e438095373","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"            nargs\u003d\u0027*\u0027,"},{"line_number":1600,"context_line":"            metavar\u003d\u0027-- \u003cstandard ssh args\u003e\u0027,"},{"line_number":1601,"context_line":"            help\u003d(\u0027Any argument or option that ssh allows. \u0027"},{"line_number":1602,"context_line":"                  \u0027Use -- once between openstack client args and ssh args.\u0027)"},{"line_number":1603,"context_line":"        )"},{"line_number":1604,"context_line":"        return parser"},{"line_number":1605,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_165dd546","line":1602,"range":{"start_line":1602,"start_character":65,"end_line":1602,"end_character":68},"in_reply_to":"5a74a57a_9ce4d6e1","updated":"2016-11-28 16:39:16.000000000","message":"Done","commit_id":"0ee6b1b52a5c851f8bcc87b592401fe4d619efaa"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"659eeae14901b089fe4d79e2eb5b587b8e8f0b33","unresolved":false,"context_lines":[{"line_number":2550,"context_line":"            metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":2551,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":2552,"context_line":"        )"},{"line_number":2553,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2554,"context_line":"        parser.add_argument("},{"line_number":2555,"context_line":"            \u0027--login\u0027,"},{"line_number":2556,"context_line":"            metavar\u003d\u0027\u003clogin-name\u003e\u0027,"},{"line_number":2557,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2558,"context_line":"        )"},{"line_number":2559,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2560,"context_line":"        parser.add_argument("},{"line_number":2561,"context_line":"            \u0027-l\u0027,"},{"line_number":2562,"context_line":"            dest\u003d\u0027login\u0027,"},{"line_number":2563,"context_line":"            metavar\u003d\u0027\u003clogin-name\u003e\u0027,"},{"line_number":2564,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2565,"context_line":"        )"},{"line_number":2566,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2567,"context_line":"        parser.add_argument("},{"line_number":2568,"context_line":"            \u0027--port\u0027,"},{"line_number":2569,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":2570,"context_line":"            type\u003dint,"},{"line_number":2571,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2572,"context_line":"        )"},{"line_number":2573,"context_line":"        parser.add_argument("},{"line_number":2574,"context_line":"            \u0027-p\u0027,"},{"line_number":2575,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":2576,"context_line":"            dest\u003d\u0027port\u0027,"},{"line_number":2577,"context_line":"            type\u003dint,"},{"line_number":2578,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2579,"context_line":"        )"},{"line_number":2580,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2581,"context_line":"        parser.add_argument("},{"line_number":2582,"context_line":"            \u0027--identity\u0027,"},{"line_number":2583,"context_line":"            metavar\u003d\u0027\u003ckeyfile\u003e\u0027,"},{"line_number":2584,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2585,"context_line":"        )"},{"line_number":2586,"context_line":"        parser.add_argument("},{"line_number":2587,"context_line":"            \u0027-i\u0027,"},{"line_number":2588,"context_line":"            metavar\u003d\u0027\u003cfilename\u003e\u0027,"},{"line_number":2589,"context_line":"            dest\u003d\u0027identity\u0027,"},{"line_number":2590,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2591,"context_line":"        )"},{"line_number":2592,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2593,"context_line":"        parser.add_argument("},{"line_number":2594,"context_line":"            \u0027--option\u0027,"},{"line_number":2595,"context_line":"            metavar\u003d\u0027\u003cconfig-options\u003e\u0027,"},{"line_number":2596,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2597,"context_line":"        )"},{"line_number":2598,"context_line":"        parser.add_argument("},{"line_number":2599,"context_line":"            \u0027-o\u0027,"},{"line_number":2600,"context_line":"            metavar\u003d\u0027\u003coption\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_49fc7a70","line":2597,"range":{"start_line":2553,"start_character":8,"end_line":2597,"end_character":9},"updated":"2020-01-23 14:30:46.000000000","message":"(I thinking out loud) it could be worth to move to oslo.config instead of using argparse directly here (by \"here\" I mean in this module and in general in OSC).\n\nI\u0027m a new comer on python-openstackclient so I\u0027ve seen any reasons to don\u0027t use oslo.config here?\n\noslo.config could allow us to handle CLI and it could also help us to manage deprecations more properly [1].\n\n[1] https://docs.openstack.org/oslo.config/latest/reference/deprecating.html","commit_id":"5b7a72d3159853626248c1695e3acd592b8a94fd"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"10293b57679a51324b7ed9170e2e1f3779595ff2","unresolved":false,"context_lines":[{"line_number":2550,"context_line":"            metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":2551,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":2552,"context_line":"        )"},{"line_number":2553,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2554,"context_line":"        parser.add_argument("},{"line_number":2555,"context_line":"            \u0027--login\u0027,"},{"line_number":2556,"context_line":"            metavar\u003d\u0027\u003clogin-name\u003e\u0027,"},{"line_number":2557,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2558,"context_line":"        )"},{"line_number":2559,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2560,"context_line":"        parser.add_argument("},{"line_number":2561,"context_line":"            \u0027-l\u0027,"},{"line_number":2562,"context_line":"            dest\u003d\u0027login\u0027,"},{"line_number":2563,"context_line":"            metavar\u003d\u0027\u003clogin-name\u003e\u0027,"},{"line_number":2564,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2565,"context_line":"        )"},{"line_number":2566,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2567,"context_line":"        parser.add_argument("},{"line_number":2568,"context_line":"            \u0027--port\u0027,"},{"line_number":2569,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":2570,"context_line":"            type\u003dint,"},{"line_number":2571,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2572,"context_line":"        )"},{"line_number":2573,"context_line":"        parser.add_argument("},{"line_number":2574,"context_line":"            \u0027-p\u0027,"},{"line_number":2575,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":2576,"context_line":"            dest\u003d\u0027port\u0027,"},{"line_number":2577,"context_line":"            type\u003dint,"},{"line_number":2578,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2579,"context_line":"        )"},{"line_number":2580,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2581,"context_line":"        parser.add_argument("},{"line_number":2582,"context_line":"            \u0027--identity\u0027,"},{"line_number":2583,"context_line":"            metavar\u003d\u0027\u003ckeyfile\u003e\u0027,"},{"line_number":2584,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2585,"context_line":"        )"},{"line_number":2586,"context_line":"        parser.add_argument("},{"line_number":2587,"context_line":"            \u0027-i\u0027,"},{"line_number":2588,"context_line":"            metavar\u003d\u0027\u003cfilename\u003e\u0027,"},{"line_number":2589,"context_line":"            dest\u003d\u0027identity\u0027,"},{"line_number":2590,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2591,"context_line":"        )"},{"line_number":2592,"context_line":"        # Deprecated during the Usurri cycle"},{"line_number":2593,"context_line":"        parser.add_argument("},{"line_number":2594,"context_line":"            \u0027--option\u0027,"},{"line_number":2595,"context_line":"            metavar\u003d\u0027\u003cconfig-options\u003e\u0027,"},{"line_number":2596,"context_line":"            help\u003dargparse.SUPPRESS,"},{"line_number":2597,"context_line":"        )"},{"line_number":2598,"context_line":"        parser.add_argument("},{"line_number":2599,"context_line":"            \u0027-o\u0027,"},{"line_number":2600,"context_line":"            metavar\u003d\u0027\u003coption\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_89f03268","line":2597,"range":{"start_line":2553,"start_character":8,"end_line":2597,"end_character":9},"in_reply_to":"3fa7e38b_49fc7a70","updated":"2020-01-23 14:33:13.000000000","message":"\u003e (I thinking out loud) it could be worth to move to oslo.config\n \u003e instead of using argparse directly here (by \"here\" I mean in this\n \u003e module and in general in OSC).\n \u003e \n \u003e I\u0027m a new comer on python-openstackclient so I\u0027ve seen any reasons\n \u003e to don\u0027t use oslo.config here?\n\nErrata: I\u0027m a new comer on python-openstackclient so I don\u0027t have project\u0027s history in mind so have you seen any reasons to don\u0027t use oslo.config here?\n\n \u003e \n \u003e oslo.config could allow us to handle CLI and it could also help us\n \u003e to manage deprecations more properly [1].\n \u003e \n \u003e [1] https://docs.openstack.org/oslo.config/latest/reference/deprecating.html","commit_id":"5b7a72d3159853626248c1695e3acd592b8a94fd"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"659eeae14901b089fe4d79e2eb5b587b8e8f0b33","unresolved":false,"context_lines":[{"line_number":2690,"context_line":"        ip_address \u003d _get_ip_address(server.addresses,"},{"line_number":2691,"context_line":"                                     parsed_args.address_type,"},{"line_number":2692,"context_line":"                                     ip_address_family)"},{"line_number":2693,"context_line":"        if deprecated_args:"},{"line_number":2694,"context_line":"            LOG.warning(_(\u0027The ssh options have been deprecated. The \u0027"},{"line_number":2695,"context_line":"                          \u0027ssh equivalent options can be used instead \u0027"},{"line_number":2696,"context_line":"                          \u0027as arguments after \"--\" on the command line.\u0027))"},{"line_number":2697,"context_line":"        cmd \u003d \"ssh {ip} {dep_args} {args}\".format("},{"line_number":2698,"context_line":"            ip\u003dip_address,"},{"line_number":2699,"context_line":"            dep_args\u003d\" \".join(deprecated_args),"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_0920c2f7","line":2696,"range":{"start_line":2693,"start_character":8,"end_line":2696,"end_character":74},"updated":"2020-01-23 14:30:46.000000000","message":"What do you think about introducing debtcollector [1] here?\n\n[1] https://docs.openstack.org/debtcollector/latest/reference/index.html#module-debtcollector","commit_id":"5b7a72d3159853626248c1695e3acd592b8a94fd"}],"releasenotes/notes/pass_ssh_args-cf26a2ce26ccddaf.yaml":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9a9ab5e07c4ba7f09de3d79fabd9eff85e6b1e0c","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    that mirror SSH options are deprecated."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"deprecations:"},{"line_number":9,"context_line":"  - Openstackclient options that mirror ssh"},{"line_number":10,"context_line":"    options are deprecated (``--login, -l, --port, --identity,``"},{"line_number":11,"context_line":"    ``--option, -o, -vz``). The ssh equivalent of each deprecated option can"},{"line_number":12,"context_line":"    be used instead. For example ``openstack server ssh instance -- -l user -i key``"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3a71b18c_d653dc37","line":9,"updated":"2020-01-13 17:35:15.000000000","message":"OpenStackClient","commit_id":"0b12315e23b3f85345a6828cafcc71421d17db55"}]}
