)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"411f5aa3c08e3f6a0e2172311fbad700cd084e60","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rui Chen \u003cchenrui.momo@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-25 15:04:30 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support X.latest format for OS_COMPUTE_API_VERSION"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OSC don\u0027t support to use \"X.latest\" format in order to talk with the"},{"line_number":10,"context_line":"latest nova microversion API, that is very helpful shortcut usage to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da0c15f0_e920014c","line":7,"updated":"2016-03-25 11:52:35.000000000","message":"I think a release note would be good to indicate this is now supported.","commit_id":"fa55997ebf5ecf923f8d2e85649aa96a3f766d8a"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"6ac24e5802c40a59628a1dd6fc963b56567e4f2f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rui Chen \u003cchenrui.momo@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-25 15:04:30 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support X.latest format for OS_COMPUTE_API_VERSION"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OSC don\u0027t support to use \"X.latest\" format in order to talk with the"},{"line_number":10,"context_line":"latest nova microversion API, that is very helpful shortcut usage to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a061dce_f9926f4a","line":7,"in_reply_to":"da0c15f0_e920014c","updated":"2016-04-06 02:15:06.000000000","message":"Done","commit_id":"fa55997ebf5ecf923f8d2e85649aa96a3f766d8a"}],"openstackclient/compute/client.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"411f5aa3c08e3f6a0e2172311fbad700cd084e60","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        version \u003d _compute_api_version"},{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        version \u003d instance._api_version[API_NAME]"},{"line_number":44,"context_line":"        from novaclient import api_versions"},{"line_number":45,"context_line":"        # convert to APIVersion object"},{"line_number":46,"context_line":"        version \u003d api_versions.get_api_version(version)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_c9f6ddd6","line":44,"updated":"2016-03-25 11:52:35.000000000","message":"The check_api_version method below wraps this in a try block.","commit_id":"fa55997ebf5ecf923f8d2e85649aa96a3f766d8a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"04c3dd559d76d88323cc39f30532bc58645c15db","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        version \u003d _compute_api_version"},{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        version \u003d instance._api_version[API_NAME]"},{"line_number":44,"context_line":"        from novaclient import api_versions"},{"line_number":45,"context_line":"        # convert to APIVersion object"},{"line_number":46,"context_line":"        version \u003d api_versions.get_api_version(version)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_d54d673f","line":44,"in_reply_to":"9a061dce_d378fe2d","updated":"2016-04-06 13:37:27.000000000","message":"Thanks for the clarification.  To avoid confusion, I suggest that you then remove the try block around the same import in the check_api_version method.","commit_id":"fa55997ebf5ecf923f8d2e85649aa96a3f766d8a"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"6ac24e5802c40a59628a1dd6fc963b56567e4f2f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        version \u003d _compute_api_version"},{"line_number":42,"context_line":"    else:"},{"line_number":43,"context_line":"        version \u003d instance._api_version[API_NAME]"},{"line_number":44,"context_line":"        from novaclient import api_versions"},{"line_number":45,"context_line":"        # convert to APIVersion object"},{"line_number":46,"context_line":"        version \u003d api_versions.get_api_version(version)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_d378fe2d","line":44,"in_reply_to":"da0c15f0_c9f6ddd6","updated":"2016-04-06 02:15:06.000000000","message":"I check the novaclient version is \"python-novaclient\u003e\u003d2.29.0\" in current requirements.txt, and \"api_versions\" module exist in novaclient 2.29.0, so I think that shouldn\u0027t issue ImportError.\n\nIn other side, for supporting \"X.latest\", we need to use api_versions.APIVersion.is_latest() method to convert \"2.latest\" to explicit version like \"2.15\" in the following logic, the explicit version is required by novaclient init, so I think we can\u0027t support \"X.latest\" when \"api_versions\" can\u0027t be imported.\n\nhttp://git.openstack.org/cgit/openstack/python-novaclient/tree/novaclient/client.py#n798","commit_id":"fa55997ebf5ecf923f8d2e85649aa96a3f766d8a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"b398b7b6453707d92fadebfbb2a8b761b60ecebb","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        import novaclient"},{"line_number":50,"context_line":"        # NOTE(RuiChen): executing version discovery make sense, but that need"},{"line_number":51,"context_line":"        #                an initialized REST client, it\u0027s not available now,"},{"line_number":52,"context_line":"        #                fallback to use the max version of novaclient side."},{"line_number":53,"context_line":"        version \u003d novaclient.API_MAX_VERSION"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    LOG.debug(\u0027Instantiating compute client for %s\u0027, version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_7250dad4","line":52,"updated":"2016-04-06 19:07:12.000000000","message":"We do have an initialized Session object here in instance.session.  Does discovery require the Nova client object or just a session?","commit_id":"2974eef14aaec4f3957902b5e02ee2a3a72db0c2"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"5ba61dfbf3111d04c607330da75afa8c67f01fa3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        import novaclient"},{"line_number":50,"context_line":"        # NOTE(RuiChen): executing version discovery make sense, but that need"},{"line_number":51,"context_line":"        #                an initialized REST client, it\u0027s not available now,"},{"line_number":52,"context_line":"        #                fallback to use the max version of novaclient side."},{"line_number":53,"context_line":"        version \u003d novaclient.API_MAX_VERSION"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    LOG.debug(\u0027Instantiating compute client for %s\u0027, version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_bba88178","line":52,"in_reply_to":"9a061dce_7250dad4","updated":"2016-04-07 02:04:27.000000000","message":"A complete nova client object is required at here to execute discovering, but we are initializing nova client in make_client().\n\nhttps://github.com/openstack/python-novaclient/blob/master/novaclient/api_versions.py#L256","commit_id":"2974eef14aaec4f3957902b5e02ee2a3a72db0c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f07cc981d36f0abad050c326b26361205b7168e8","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # Defer client imports until we actually need them"},{"line_number":104,"context_line":"    try:"},{"line_number":105,"context_line":"        from novaclient import api_versions"},{"line_number":106,"context_line":"    except ImportError:"},{"line_number":107,"context_line":"        # Retain previous behaviour"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_75129b0a","line":104,"updated":"2016-04-06 13:38:27.000000000","message":"Please remove this try block since it\u0027s no longer needed.","commit_id":"2974eef14aaec4f3957902b5e02ee2a3a72db0c2"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"5ba61dfbf3111d04c607330da75afa8c67f01fa3","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # Defer client imports until we actually need them"},{"line_number":104,"context_line":"    try:"},{"line_number":105,"context_line":"        from novaclient import api_versions"},{"line_number":106,"context_line":"    except ImportError:"},{"line_number":107,"context_line":"        # Retain previous behaviour"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_7bf8a9c3","line":104,"in_reply_to":"9a061dce_75129b0a","updated":"2016-04-07 02:04:27.000000000","message":"Done","commit_id":"2974eef14aaec4f3957902b5e02ee2a3a72db0c2"}]}
