)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"b22da835b13259088d749d90e85a1e9e22c5e7b0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add `latest` to baremetal-api-version"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is still no option to use `latest` keyword in"},{"line_number":10,"context_line":"`--os-baremetalapi-version` parameter."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id98d1ab4b6dd1fdfb41d3a4fdd384baf75e69d6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a3c09a3_e5de316c","line":9,"updated":"2017-01-16 13:32:13.000000000","message":"using latest with openstack client is not the same as using latest with ironic CLI.\n\nIn case of ironic CLI latest will be passed in request headers -H \"X-OpenStack-Ironic-API-Version: latest\" \n\nBut in case of OSC, we will past latest known API version for osc plugin. \n\nSeems osc_lib doesn\u0027t support setting latest version, not sure why might be ask about it in community, I can\u0027t find osc plugin that uses latest already.\n\nEven we want to add latest to ironic OSC this patch should require release notes and unittests.","commit_id":"a6dd533ff3cf58052aa9ea000a88586a014633c0"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"333f17874a73be59534d1e059b8fbc467ad42d6f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add `latest` to baremetal-api-version"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is still no option to use `latest` keyword in"},{"line_number":10,"context_line":"`--os-baremetalapi-version` parameter."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id98d1ab4b6dd1fdfb41d3a4fdd384baf75e69d6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a3c09a3_9ffa12bc","line":9,"in_reply_to":"7a3c09a3_e5de316c","updated":"2017-01-16 16:36:12.000000000","message":"yes, you are right. Checked it again on my local env, the `latest` does not work directly with osc. Uploaded new version, will test again, thanks!","commit_id":"a6dd533ff3cf58052aa9ea000a88586a014633c0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"77b29971e7938f688c25ed88ae38e8dc5b934dd0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Galyna Zholtkevych \u003cgzholtkevych@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-24 15:16:21 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add `latest` to baremetal-api-version"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is still no option to use `latest` keyword in"},{"line_number":10,"context_line":"`--os-baremetal-api-version` parameter."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a3905b3_3b2a792d","line":7,"updated":"2017-01-24 23:01:38.000000000","message":"Maybe \u0027Support --os-baremetal-api-version\u003dlatest\u0027?","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Galyna Zholtkevych \u003cgzholtkevych@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-24 15:16:21 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add `latest` to baremetal-api-version"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is still no option to use `latest` keyword in"},{"line_number":10,"context_line":"`--os-baremetal-api-version` parameter."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a3905b3_5d6c8208","line":7,"in_reply_to":"5a3905b3_3b2a792d","updated":"2017-01-25 11:58:10.000000000","message":"yes, but without \u0027\u003d\u0027 to not break consistency","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"77b29971e7938f688c25ed88ae38e8dc5b934dd0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"`--os-baremetal-api-version` parameter."},{"line_number":11,"context_line":"OSC plugin parser does not accept this keyword."},{"line_number":12,"context_line":"Replacing typed by a user `latest` to OSC latest"},{"line_number":13,"context_line":"known version."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Id98d1ab4b6dd1fdfb41d3a4fdd384baf75e69d6f"},{"line_number":16,"context_line":"Closes-Bug: #1657502"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a3905b3_db9fb563","line":13,"updated":"2017-01-24 23:01:38.000000000","message":"Maybe replace this with something similar to the release notes.\n\nAlso, I think it is worth putting a note here that unlike the ironic CLI where \u0027latest\u0027 is passed in the request header to ironic, osc_lib doesn\u0027t support passing \u0027latest\u0027, so the latest known version is used in the request instead.","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"`--os-baremetal-api-version` parameter."},{"line_number":11,"context_line":"OSC plugin parser does not accept this keyword."},{"line_number":12,"context_line":"Replacing typed by a user `latest` to OSC latest"},{"line_number":13,"context_line":"known version."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Id98d1ab4b6dd1fdfb41d3a4fdd384baf75e69d6f"},{"line_number":16,"context_line":"Closes-Bug: #1657502"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a3905b3_30befdd4","line":13,"in_reply_to":"5a3905b3_db9fb563","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"}],"ironicclient/osc/plugin.py":[{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"1b26b37b2147e8b1d9570d0715763e302f5e81fe","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ReplaceLatestVersion(argparse.Action):"},{"line_number":74,"context_line":"    \"\"\"\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_7e5b0f55","line":74,"updated":"2017-01-19 10:01:32.000000000","message":"Empty docstring? )","commit_id":"7422df68f58b0bcc9cc421200399af757f2545e3"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"db9991edc6e675910d5cba04b7a9e1658ad58330","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ReplaceLatestVersion(argparse.Action):"},{"line_number":74,"context_line":"    \"\"\"\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_013c6c92","line":74,"in_reply_to":"5a3905b3_7e5b0f55","updated":"2017-01-19 12:10:01.000000000","message":"Forgot about this :)","commit_id":"7422df68f58b0bcc9cc421200399af757f2545e3"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ea1b9a542bf59c7928498cf53bcd0338c6557cf6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            \u0027OS_BAREMETAL_API_VERSION\u0027,"},{"line_number":61,"context_line":"            default\u003dhttp.DEFAULT_VER),"},{"line_number":62,"context_line":"        choices\u003dsorted("},{"line_number":63,"context_line":"            API_VERSIONS.keys(),"},{"line_number":64,"context_line":"            key\u003dlambda k: list(map(int, k.split(\u0027.\u0027)))) + [\u0027latest\u0027],"},{"line_number":65,"context_line":"        action\u003dReplaceLatestVersion,"},{"line_number":66,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_56df4139","line":63,"updated":"2017-01-24 12:10:24.000000000","message":"nit: .keys() is not needed","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            \u0027OS_BAREMETAL_API_VERSION\u0027,"},{"line_number":61,"context_line":"            default\u003dhttp.DEFAULT_VER),"},{"line_number":62,"context_line":"        choices\u003dsorted("},{"line_number":63,"context_line":"            API_VERSIONS.keys(),"},{"line_number":64,"context_line":"            key\u003dlambda k: list(map(int, k.split(\u0027.\u0027)))) + [\u0027latest\u0027],"},{"line_number":65,"context_line":"        action\u003dReplaceLatestVersion,"},{"line_number":66,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_e706b584","line":63,"in_reply_to":"5a3905b3_56df4139","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ea1b9a542bf59c7928498cf53bcd0338c6557cf6","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            default\u003dhttp.DEFAULT_VER),"},{"line_number":62,"context_line":"        choices\u003dsorted("},{"line_number":63,"context_line":"            API_VERSIONS.keys(),"},{"line_number":64,"context_line":"            key\u003dlambda k: list(map(int, k.split(\u0027.\u0027)))) + [\u0027latest\u0027],"},{"line_number":65,"context_line":"        action\u003dReplaceLatestVersion,"},{"line_number":66,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"},{"line_number":67,"context_line":"             http.DEFAULT_VER +"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_76ea7ddc","line":64,"updated":"2017-01-24 12:10:24.000000000","message":"nit: I think the following reads much better:\n\n key\u003dlambda k: [int(x) for x in k.split(\u0027.\u0027)]","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            default\u003dhttp.DEFAULT_VER),"},{"line_number":62,"context_line":"        choices\u003dsorted("},{"line_number":63,"context_line":"            API_VERSIONS.keys(),"},{"line_number":64,"context_line":"            key\u003dlambda k: list(map(int, k.split(\u0027.\u0027)))) + [\u0027latest\u0027],"},{"line_number":65,"context_line":"        action\u003dReplaceLatestVersion,"},{"line_number":66,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"},{"line_number":67,"context_line":"             http.DEFAULT_VER +"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_c7d539e5","line":64,"in_reply_to":"5a3905b3_76ea7ddc","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ea1b9a542bf59c7928498cf53bcd0338c6557cf6","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ReplaceLatestVersion(argparse.Action):"},{"line_number":74,"context_line":"    \"\"\"Replaces ``latest`` keyword by valid string.\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_96e5290a","line":74,"updated":"2017-01-24 12:10:24.000000000","message":"I\u0027d ever just use plain \"quotes\". also s/valid string/last known version/","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22749,"name":"Vadim Hmyrov","email":"vhmyrov@mirantis.com","username":"vhmyrov"},"change_message_id":"f89cb21322662dbf22476fbae8a749b537220c86","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ReplaceLatestVersion(argparse.Action):"},{"line_number":74,"context_line":"    \"\"\"Replaces ``latest`` keyword by valid string.\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_a8bfb55e","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":26},"updated":"2017-01-20 10:49:18.000000000","message":"nit: I think single quotes (`) can be used here.","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ReplaceLatestVersion(argparse.Action):"},{"line_number":74,"context_line":"    \"\"\"Replaces ``latest`` keyword by valid string.\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_873df12c","line":74,"in_reply_to":"5a3905b3_96e5290a","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ReplaceLatestVersion(argparse.Action):"},{"line_number":74,"context_line":"    \"\"\"Replaces ``latest`` keyword by valid string.\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_a7482dcd","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":26},"in_reply_to":"5a3905b3_a8bfb55e","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ea1b9a542bf59c7928498cf53bcd0338c6557cf6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \"\"\"Replaces ``latest`` keyword by valid string.\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __call__(self, parser, namespace, values, option_string\u003dNone):"},{"line_number":80,"context_line":"        latest \u003d values \u003d\u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_b6f065ca","line":77,"updated":"2017-01-24 12:10:24.000000000","message":"__init__ is not needed, it\u0027s not doing anything","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \"\"\"Replaces ``latest`` keyword by valid string.\"\"\""},{"line_number":75,"context_line":"    def __init__(self, option_strings, dest, **kwargs):"},{"line_number":76,"context_line":"        super(ReplaceLatestVersion, self).__init__("},{"line_number":77,"context_line":"            option_strings, dest, **kwargs)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __call__(self, parser, namespace, values, option_string\u003dNone):"},{"line_number":80,"context_line":"        latest \u003d values \u003d\u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_470ea98c","line":77,"in_reply_to":"5a3905b3_b6f065ca","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ea1b9a542bf59c7928498cf53bcd0338c6557cf6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        if latest:"},{"line_number":82,"context_line":"            values \u003d \u00271.%d\u0027 % LAST_KNOWN_API_VERSION"},{"line_number":83,"context_line":"        LOG.debug(\u0027`latest` keyword is typed for version. Replacing by \u0027"},{"line_number":84,"context_line":"                  \u0027valid version string %s\u0027, values)"},{"line_number":85,"context_line":"        setattr(namespace, self.dest, values)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_d6eb31da","line":84,"updated":"2017-01-24 12:10:24.000000000","message":"s/valid version string/last known version/","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        if latest:"},{"line_number":82,"context_line":"            values \u003d \u00271.%d\u0027 % LAST_KNOWN_API_VERSION"},{"line_number":83,"context_line":"        LOG.debug(\u0027`latest` keyword is typed for version. Replacing by \u0027"},{"line_number":84,"context_line":"                  \u0027valid version string %s\u0027, values)"},{"line_number":85,"context_line":"        setattr(namespace, self.dest, values)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_077f41e0","line":84,"in_reply_to":"5a3905b3_d6eb31da","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8e536c9c02ce101c967bf9e501350bab06736180","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            API_VERSIONS,"},{"line_number":64,"context_line":"            key\u003dlambda k: [int(x) for x in k.split(\u0027.\u0027)]) + [\u0027latest\u0027],"},{"line_number":65,"context_line":"        action\u003dReplaceLatestVersion,"},{"line_number":66,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"},{"line_number":67,"context_line":"             http.DEFAULT_VER +"},{"line_number":68,"context_line":"             \u0027 (Env: OS_BAREMETAL_API_VERSION)\u0027,"},{"line_number":69,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_94024e6e","line":66,"range":{"start_line":66,"start_character":14,"end_line":66,"end_character":35},"updated":"2017-01-25 08:59:24.000000000","message":"I\u0027d also add a comment on the caveat you describe in the commit message here, maybe also specifying LAST_KNOWN_API_VERSION too.","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            API_VERSIONS,"},{"line_number":64,"context_line":"            key\u003dlambda k: [int(x) for x in k.split(\u0027.\u0027)]) + [\u0027latest\u0027],"},{"line_number":65,"context_line":"        action\u003dReplaceLatestVersion,"},{"line_number":66,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"},{"line_number":67,"context_line":"             http.DEFAULT_VER +"},{"line_number":68,"context_line":"             \u0027 (Env: OS_BAREMETAL_API_VERSION)\u0027,"},{"line_number":69,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_60f27871","line":66,"range":{"start_line":66,"start_character":14,"end_line":66,"end_character":35},"in_reply_to":"5a3905b3_94024e6e","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        latest \u003d values \u003d\u003d \u0027latest\u0027"},{"line_number":77,"context_line":"        if latest:"},{"line_number":78,"context_line":"            values \u003d \u00271.%d\u0027 % LAST_KNOWN_API_VERSION"},{"line_number":79,"context_line":"        LOG.debug(\u0027`latest` keyword is typed for version. Replacing by \u0027"},{"line_number":80,"context_line":"                  \u0027last known version %s\u0027, values)"},{"line_number":81,"context_line":"        setattr(namespace, self.dest, values)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_0cd58ab8","line":79,"updated":"2017-01-24 22:57:56.000000000","message":"I think you mean that \u0027latest\u0027 was specified as the value for the API version. (It isn\u0027t necessarily true that it was \u0027typed\u0027 -- you mean a person typed that string, I think).\n\nHow about \"Replacing \u0027latest\u0027 API version with the latest known version \u0027%s\u0027 \".","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        latest \u003d values \u003d\u003d \u0027latest\u0027"},{"line_number":77,"context_line":"        if latest:"},{"line_number":78,"context_line":"            values \u003d \u00271.%d\u0027 % LAST_KNOWN_API_VERSION"},{"line_number":79,"context_line":"        LOG.debug(\u0027`latest` keyword is typed for version. Replacing by \u0027"},{"line_number":80,"context_line":"                  \u0027last known version %s\u0027, values)"},{"line_number":81,"context_line":"        setattr(namespace, self.dest, values)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_e08588ad","line":79,"in_reply_to":"5a3905b3_0cd58ab8","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"             http.DEFAULT_VER +"},{"line_number":74,"context_line":"             \u0027 (Env: OS_BAREMETAL_API_VERSION).\u0027"},{"line_number":75,"context_line":"             \u0027If `latest` is specified the latest known api version \u0027"},{"line_number":76,"context_line":"             \u0027will be picked.\u0027,"},{"line_number":77,"context_line":"    )"},{"line_number":78,"context_line":"    return parser"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_606c5a9d","line":76,"updated":"2017-01-25 15:37:09.000000000","message":"That\u0027s a bit awkward. How about \"\u0027latest\u0027 is the latest known API version\u0027.","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"447fdd55d94704d5fd468dcbd2c4372f8d18f712","unresolved":false,"context_lines":[{"line_number":73,"context_line":"             http.DEFAULT_VER +"},{"line_number":74,"context_line":"             \u0027 (Env: OS_BAREMETAL_API_VERSION).\u0027"},{"line_number":75,"context_line":"             \u0027If `latest` is specified the latest known api version \u0027"},{"line_number":76,"context_line":"             \u0027will be picked.\u0027,"},{"line_number":77,"context_line":"    )"},{"line_number":78,"context_line":"    return parser"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_02dd5342","line":76,"in_reply_to":"3a461143_606c5a9d","updated":"2017-01-25 17:15:53.000000000","message":"Done","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"83387e8c17ba422709b0102eb815995648deba73","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        help\u003d\u0027Baremetal API version, default\u003d\u0027 +"},{"line_number":73,"context_line":"             http.DEFAULT_VER +"},{"line_number":74,"context_line":"             \u0027 (Env: OS_BAREMETAL_API_VERSION). \u0027"},{"line_number":75,"context_line":"             \u0027\"latest\" is the latest known API version\u0027,"},{"line_number":76,"context_line":"    )"},{"line_number":77,"context_line":"    return parser"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_3d96f094","line":75,"updated":"2017-01-25 17:30:57.000000000","message":"nit. missing a period at the end.","commit_id":"be5c99cd11b5690bec1b34e9edc5b4bc496d7158"}],"ironicclient/tests/unit/osc/test_plugin.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#   Copyright 2016 Intel Corporation"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_bb5e6a77","line":2,"updated":"2017-01-24 22:57:56.000000000","message":"?","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#   under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import argparse"},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from osc_lib.tests import utils as oscutils"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_fbe632af","line":17,"updated":"2017-01-24 22:57:56.000000000","message":"this is a standard library, should put a blank line after this.","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#   under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import argparse"},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from osc_lib.tests import utils as oscutils"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_209070ec","line":17,"in_reply_to":"5a3905b3_fbe632af","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8e536c9c02ce101c967bf9e501350bab06736180","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from ironicclient.osc import plugin"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestClient(oscutils.TestCommand):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @mock.patch.object(argparse.ArgumentParser, \u0027add_argument\u0027)"},{"line_number":27,"context_line":"    def test_build_parser_latest_version(self, mock_add_argument):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_77a40408","line":24,"updated":"2017-01-25 08:59:24.000000000","message":"Could you also add a test that is going to actually check the logic in this newly added action? To ensure that it actually replaces latest with some version?","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from ironicclient.osc import plugin"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestClient(oscutils.TestCommand):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @mock.patch.object(argparse.ArgumentParser, \u0027add_argument\u0027)"},{"line_number":27,"context_line":"    def test_build_parser_latest_version(self, mock_add_argument):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_90cdf188","line":24,"in_reply_to":"5a3905b3_77a40408","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class TestClient(oscutils.TestCommand):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @mock.patch.object(argparse.ArgumentParser, \u0027add_argument\u0027)"},{"line_number":27,"context_line":"    def test_build_parser_latest_version(self, mock_add_argument):"},{"line_number":28,"context_line":"        parser \u003d argparse.ArgumentParser()"},{"line_number":29,"context_line":"        mock_add_argument.reset_mock()"},{"line_number":30,"context_line":"        plugin.build_option_parser(parser)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_7b9242f8","line":27,"updated":"2017-01-24 22:57:56.000000000","message":"nit test_build_option_parser... (because the method name is \u0027build_option_parser\u0027.)","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class TestClient(oscutils.TestCommand):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @mock.patch.object(argparse.ArgumentParser, \u0027add_argument\u0027)"},{"line_number":27,"context_line":"    def test_build_parser_latest_version(self, mock_add_argument):"},{"line_number":28,"context_line":"        parser \u003d argparse.ArgumentParser()"},{"line_number":29,"context_line":"        mock_add_argument.reset_mock()"},{"line_number":30,"context_line":"        plugin.build_option_parser(parser)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_267ec8ae","line":27,"in_reply_to":"5a3905b3_7b9242f8","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_add_argument.assert_called_once_with("},{"line_number":33,"context_line":"            mock.ANY, action\u003dplugin.ReplaceLatestVersion, choices\u003dmock.ANY,"},{"line_number":34,"context_line":"            default\u003dmock.ANY, help\u003dmock.ANY, metavar\u003dmock.ANY)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_make_client_latest_version_float(self):"},{"line_number":37,"context_line":"        instance \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_fb77119d","line":34,"updated":"2017-01-24 22:57:56.000000000","message":"We should be able to replace most/all of these mock.ANY with some useful info.","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_add_argument.assert_called_once_with("},{"line_number":33,"context_line":"            mock.ANY, action\u003dplugin.ReplaceLatestVersion, choices\u003dmock.ANY,"},{"line_number":34,"context_line":"            default\u003dmock.ANY, help\u003dmock.ANY, metavar\u003dmock.ANY)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_make_client_latest_version_float(self):"},{"line_number":37,"context_line":"        instance \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_0681cc8f","line":34,"in_reply_to":"5a3905b3_fb77119d","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_make_client_latest_version_float(self):"},{"line_number":37,"context_line":"        instance \u003d mock.MagicMock()"},{"line_number":38,"context_line":"        instance._api_version \u003d {\u0027baremetal\u0027: \u00271.2\u0027}"},{"line_number":39,"context_line":"        plugin.make_client(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_5bae65e8","line":39,"updated":"2017-01-24 22:57:56.000000000","message":"It seems like this test isn\u0027t finished. What exactly are you testing?","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_make_client_latest_version_float(self):"},{"line_number":37,"context_line":"        instance \u003d mock.MagicMock()"},{"line_number":38,"context_line":"        instance._api_version \u003d {\u0027baremetal\u0027: \u00271.2\u0027}"},{"line_number":39,"context_line":"        plugin.make_client(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_269088ec","line":39,"in_reply_to":"5a3905b3_5bae65e8","updated":"2017-01-25 11:58:10.000000000","message":"Just rebased patch, got that this test is at master, so will not finish it","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            interface\u003dinstance.interface)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class BuildParserTest(testtools.TestCase):"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @mock.patch.object(argparse.ArgumentParser, \u0027add_argument\u0027)"},{"line_number":43,"context_line":"    def test_build_option_parser(self, mock_add_argument):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_40ff5e34","line":40,"updated":"2017-01-25 15:37:09.000000000","message":"nit s/BuildParser/BuildOptionParser/","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"447fdd55d94704d5fd468dcbd2c4372f8d18f712","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            interface\u003dinstance.interface)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class BuildParserTest(testtools.TestCase):"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @mock.patch.object(argparse.ArgumentParser, \u0027add_argument\u0027)"},{"line_number":43,"context_line":"    def test_build_option_parser(self, mock_add_argument):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_a2bb9f0d","line":40,"in_reply_to":"3a461143_40ff5e34","updated":"2017-01-25 17:15:53.000000000","message":"Done","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        mock_add_argument.assert_called_once_with("},{"line_number":50,"context_line":"            \u0027--os-baremetal-api-version\u0027, action\u003dplugin.ReplaceLatestVersion,"},{"line_number":51,"context_line":"            choices\u003dversion_list,"},{"line_number":52,"context_line":"            default\u003d\u00271.9\u0027, help\u003dmock.ANY, metavar\u003d\u0027\u003cbaremetal-api-version\u003e\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ReplaceLatestVersionTest(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_e0592a90","line":52,"updated":"2017-01-25 15:37:09.000000000","message":"nit: it is probably OK to hardcode this because I don\u0027t think it will change often, but if you use http.DEFAULT_VER then when that value changes, this test would be good still.","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"447fdd55d94704d5fd468dcbd2c4372f8d18f712","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        mock_add_argument.assert_called_once_with("},{"line_number":50,"context_line":"            \u0027--os-baremetal-api-version\u0027, action\u003dplugin.ReplaceLatestVersion,"},{"line_number":51,"context_line":"            choices\u003dversion_list,"},{"line_number":52,"context_line":"            default\u003d\u00271.9\u0027, help\u003dmock.ANY, metavar\u003d\u0027\u003cbaremetal-api-version\u003e\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ReplaceLatestVersionTest(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_c236ebb3","line":52,"in_reply_to":"3a461143_e0592a90","updated":"2017-01-25 17:15:53.000000000","message":"Done","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        action \u003d plugin.ReplaceLatestVersion([\u0027--os-baremetal-api-version\u0027],"},{"line_number":64,"context_line":"                                             \u0027os_baremetal_api_version\u0027)"},{"line_number":65,"context_line":"        action.__call__(parser, namespace, \u0027latest\u0027)"},{"line_number":66,"context_line":"        self.assertEqual(namespace.os_baremetal_api_version, latest)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_46a05691","line":65,"updated":"2017-01-25 15:37:09.000000000","message":"i took a look to see what typical values might be for this call and I got:\nArgumentParser(..), Namespace(os_baremetal_api_version\u003d\u00271.9\u0027), values:  \u0027latest\u0027, option_string: \u0027--os-baremetal-api-version\u0027\n\nSo this test should probably be updated to reflect that.\n\nI am actually wondering whether it is worth having a separate test that mocks the __call__, to show what the arguments are.\n\nEg, something like (because this is how I figured out what the parameters were):\n\n    @mock.patch.object(plugin.ReplaceLatestVersion, \u0027__call__\u0027)\n    def test_call__call__(self, mock_call):\n        parser \u003d argparse.ArgumentParser()\n        plugin.build_option_parser(parser)\n        namespace \u003d argparse.Namespace(os_baremetal_api_version\u003d\u00271.9\u0027)\n        parser.parse_known_args([\u0027--os-baremetal-api-version\u0027, \u0027latest\u0027])        mock_call.assert_called_once_with(parser, namespace, \u0027latest\u0027, \u0027--os-baremetal-api-version\u0027)","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"447fdd55d94704d5fd468dcbd2c4372f8d18f712","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        action \u003d plugin.ReplaceLatestVersion([\u0027--os-baremetal-api-version\u0027],"},{"line_number":64,"context_line":"                                             \u0027os_baremetal_api_version\u0027)"},{"line_number":65,"context_line":"        action.__call__(parser, namespace, \u0027latest\u0027)"},{"line_number":66,"context_line":"        self.assertEqual(namespace.os_baremetal_api_version, latest)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_22816f4b","line":65,"in_reply_to":"3a461143_46a05691","updated":"2017-01-25 17:15:53.000000000","message":"Done","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3a461143_86d87e1f","line":67,"updated":"2017-01-25 15:37:09.000000000","message":"i think we want a test that shows what happens if \u0027latest\u0027 is specified and another test with a value that isn\u0027t \u0027latest\u0027.","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"447fdd55d94704d5fd468dcbd2c4372f8d18f712","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3a461143_82906397","line":67,"in_reply_to":"3a461143_86d87e1f","updated":"2017-01-25 17:15:53.000000000","message":"Done","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"}],"releasenotes/notes/latest-baremetal-api-version-a20e3099e3b97a1b.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ea1b9a542bf59c7928498cf53bcd0338c6557cf6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Added option `latest` to available parameters"},{"line_number":4,"context_line":"    for os_baremetal_api_version."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a3905b3_f6bcaddd","line":4,"updated":"2017-01-24 12:10:24.000000000","message":"let\u0027s better describe the user-visible effect: \"Allow latest to be passed to --os-baremetal-api-version argument\"","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Added option `latest` to available parameters"},{"line_number":4,"context_line":"    for os_baremetal_api_version."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a3905b3_a7b3cc4b","line":4,"in_reply_to":"5a3905b3_d14fbb31","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69daddaf79fbdd88cbc49b8bf4e00dea394b893b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Added option `latest` to available parameters"},{"line_number":4,"context_line":"    for os_baremetal_api_version."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a3905b3_c784585f","line":4,"in_reply_to":"5a3905b3_f6bcaddd","updated":"2017-01-24 13:17:53.000000000","message":"Done","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"8d263a996432142f3412e4b7a3efb5019adec647","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Added option `latest` to available parameters"},{"line_number":4,"context_line":"    for os_baremetal_api_version."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a3905b3_d14fbb31","line":4,"in_reply_to":"5a3905b3_f6bcaddd","updated":"2017-01-24 12:31:19.000000000","message":"I would also specify here, that by using \u0027latest\u0027 with OSC will pick OSC latest known api version, instead of MAX available ironic API version.","commit_id":"8220100a23cbbfe3a0abe10d05d50750101b99a6"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3f696df180cb146a360b45ab4c2c4f269746c7d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5a3905b3_7b3322f7","line":6,"updated":"2017-01-24 22:57:56.000000000","message":"I think this is a feature (and I just updated the bug to reflect that).\n\nHow about \u0027For OSC commands, the --os-baremetal-api-version optional argument (or OS_BAREMETAL_API_VERSION environment variable) can have the value \u0027latest\u0027. If set to \u0027latest\u0027, the latest known API version will be used in requests to the Bare Metal service.\u0027","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"4a3d5b0bbf19da2c5d029ea904a891aad6f7ed5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5a3905b3_70e165fe","line":6,"in_reply_to":"5a3905b3_7b3322f7","updated":"2017-01-25 11:58:10.000000000","message":"Done","commit_id":"64cbec4d61b8f653adcd46cabac0c9e948c7ef93"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Allow latest to be passed to"},{"line_number":4,"context_line":"    --os-baremetal-api-version. This"},{"line_number":5,"context_line":"    will pick OSC latest known api version."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3a461143_736c2f9d","line":2,"updated":"2017-01-25 15:37:09.000000000","message":"s/fixes/features/","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90e3c60fcbabbadd63c9552fe1c64a9c0843fa2f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Allow latest to be passed to"},{"line_number":4,"context_line":"    --os-baremetal-api-version. This"},{"line_number":5,"context_line":"    will pick OSC latest known api version."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3a461143_93699b8e","line":5,"updated":"2017-01-25 15:37:09.000000000","message":"I made some suggestions in the previous revision?","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"447fdd55d94704d5fd468dcbd2c4372f8d18f712","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Allow latest to be passed to"},{"line_number":4,"context_line":"    --os-baremetal-api-version. This"},{"line_number":5,"context_line":"    will pick OSC latest known api version."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3a461143_c2042bc8","line":5,"in_reply_to":"3a461143_93699b8e","updated":"2017-01-25 17:15:53.000000000","message":"Done","commit_id":"231d41cc25a01525419d9baa551fc45a6e8110f2"}]}
