)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"ad76ea4543d957e1615716c568436c4723b2f37c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the version is a tuple. This in turn causes setting"},{"line_number":12,"context_line":"the vm_device_id to fail."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixes bug 1260178"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I6b1353cdb7cc856b34f02e3d3679c142ba032533"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9RLs%3D","line":14,"updated":"2013-12-13 10:00:23.000000000","message":"We no longer using old external bug link tag, instead we are using the new syntax, you can refer it here https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9d5a4dc397a52942c8d1e8dd45c97f9dd8d4c9d9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the version is a tuple. This in turn causes setting"},{"line_number":12,"context_line":"the vm_device_id to fail."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixes bug 1260178"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I6b1353cdb7cc856b34f02e3d3679c142ba032533"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9Q3k%3D","line":14,"in_reply_to":"AAAATn%2F9RLs%3D","updated":"2013-12-13 11:03:31.000000000","message":"Yeah, we should use this now:\nCloses-Bug: #1234567","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2ee4848e8267ee39871b3f47635f2dad38690a70","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Setting the xen vm device id on vm record"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, while setting the device_id, the hypervisor"},{"line_number":10,"context_line":"version is being incorrecty handled since the method"},{"line_number":11,"context_line":"get_major_minor_version expects either an int, float,"},{"line_number":12,"context_line":"or string format. However, the xen hypervisor"},{"line_number":13,"context_line":"version is stored in the session product_version as a tuple."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F8%2BqA%3D","line":10,"updated":"2013-12-18 06:11:57.000000000","message":"s/incorrecty/incorrectly","commit_id":"e419cd2eb216beff51f3550b3972ff38ad89dfc4"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2ee4848e8267ee39871b3f47635f2dad38690a70","unresolved":false,"context_lines":[{"line_number":11,"context_line":"get_major_minor_version expects either an int, float,"},{"line_number":12,"context_line":"or string format. However, the xen hypervisor"},{"line_number":13,"context_line":"version is stored in the session product_version as a tuple."},{"line_number":14,"context_line":"This fix correcty uses the version to set the appropriate"},{"line_number":15,"context_line":"device_id on the vm record. Also, removing the method"},{"line_number":16,"context_line":"get_major_minor_version as it is not needed anymore."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F8%2Bp4%3D","line":14,"updated":"2013-12-18 06:11:57.000000000","message":"s/correcty/correctly","commit_id":"e419cd2eb216beff51f3550b3972ff38ad89dfc4"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"2ee4848e8267ee39871b3f47635f2dad38690a70","unresolved":false,"context_lines":[{"line_number":15,"context_line":"device_id on the vm record. Also, removing the method"},{"line_number":16,"context_line":"get_major_minor_version as it is not needed anymore."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Fixes bug 1260178"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I6b1353cdb7cc856b34f02e3d3679c142ba032533"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F8%2Bp0%3D","line":18,"updated":"2013-12-18 06:11:57.000000000","message":"Closes-bug: #","commit_id":"e419cd2eb216beff51f3550b3972ff38ad89dfc4"}],"nova/tests/test_utils.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9d5a4dc397a52942c8d1e8dd45c97f9dd8d4c9d9","unresolved":false,"context_lines":[{"line_number":922,"context_line":"    def test_get_major_minor_version_from_tuple(self):"},{"line_number":923,"context_line":"        self.assertEqual(utils.get_major_minor_version((6, )), 6)"},{"line_number":924,"context_line":"        self.assertEqual(utils.get_major_minor_version((6, 2)), 6.2)"},{"line_number":925,"context_line":"        self.assertEqual(utils.get_major_minor_version((6, 1, 2)), 6.1)"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"    def test_get_major_minor_version_raises_exception(self):"},{"line_number":928,"context_line":"        exc \u003d self.assertRaises(exception.NovaException,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Q10%3D","line":925,"updated":"2013-12-13 11:03:31.000000000","message":"you should probably test the error case here, (\u00275a\u0027, \u00276b\u0027).\n\nalso maybe test with strings, like (\u00276\u0027, \u00272\u0027)?","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"}],"nova/utils.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"ad76ea4543d957e1615716c568436c4723b2f37c","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"            major_minor_versions \u003d version.split(\".\")[0:2]"},{"line_number":1043,"context_line":"            version_as_float \u003d float(\".\".join(major_minor_versions))"},{"line_number":1044,"context_line":"            return version_as_float"},{"line_number":1045,"context_line":"        if type(version) \u003d\u003d tuple:"},{"line_number":1046,"context_line":"            version_as_float \u003d float(\u0027.\u0027.join(str(v) for v in version[0:2]))"},{"line_number":1047,"context_line":"            return version_as_float"},{"line_number":1048,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9RH4%3D","line":1045,"updated":"2013-12-13 10:00:23.000000000","message":"This seems isn\u0027t the right way to go, this is a common method, so it\u0027s not the place to deal with the different behavior of the different driver IMHO, thus transform it in get_vm_device_id(session, image_meta) will be make more sense for this case.","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9d5a4dc397a52942c8d1e8dd45c97f9dd8d4c9d9","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"            major_minor_versions \u003d version.split(\".\")[0:2]"},{"line_number":1043,"context_line":"            version_as_float \u003d float(\".\".join(major_minor_versions))"},{"line_number":1044,"context_line":"            return version_as_float"},{"line_number":1045,"context_line":"        if type(version) \u003d\u003d tuple:"},{"line_number":1046,"context_line":"            version_as_float \u003d float(\u0027.\u0027.join(str(v) for v in version[0:2]))"},{"line_number":1047,"context_line":"            return version_as_float"},{"line_number":1048,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Q3Q%3D","line":1045,"in_reply_to":"AAAATn%2F9RH4%3D","updated":"2013-12-13 11:03:31.000000000","message":"Someone else might need this too, so it seems OK to me.","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9d5a4dc397a52942c8d1e8dd45c97f9dd8d4c9d9","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"            version_as_float \u003d float(\".\".join(major_minor_versions))"},{"line_number":1044,"context_line":"            return version_as_float"},{"line_number":1045,"context_line":"        if type(version) \u003d\u003d tuple:"},{"line_number":1046,"context_line":"            version_as_float \u003d float(\u0027.\u0027.join(str(v) for v in version[0:2]))"},{"line_number":1047,"context_line":"            return version_as_float"},{"line_number":1048,"context_line":"    except Exception:"},{"line_number":1049,"context_line":"        raise exception.NovaException(_(\"Version %s invalid\") % version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Q28%3D","line":1046,"updated":"2013-12-13 11:03:31.000000000","message":"I would be tempted to pull out version[0:2] into its own variable, but this is fine.","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"},{"author":{"_account_id":7532,"name":"Aditi Raveesh","email":"aditi.raveesh@gmail.com","username":"aditiraveesh"},"change_message_id":"205583b77ee0d74df9bfd9ce6809cb6d49fa8c5a","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"            version_as_float \u003d float(\".\".join(major_minor_versions))"},{"line_number":1044,"context_line":"            return version_as_float"},{"line_number":1045,"context_line":"        if type(version) \u003d\u003d tuple:"},{"line_number":1046,"context_line":"            version_as_float \u003d float(\u0027.\u0027.join(str(v) for v in version[0:2]))"},{"line_number":1047,"context_line":"            return version_as_float"},{"line_number":1048,"context_line":"    except Exception:"},{"line_number":1049,"context_line":"        raise exception.NovaException(_(\"Version %s invalid\") % version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9QxI%3D","line":1046,"in_reply_to":"AAAATn%2F9Q28%3D","updated":"2013-12-13 11:26:18.000000000","message":"One other way would be to have a method in client/session.py. This method could check whether the version is lesser or greater than the one required. We would not need the utils method at all then.","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"644d6c53198ec15c0d80e5f39ea2d17f7652085a","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"            version_as_float \u003d float(\".\".join(major_minor_versions))"},{"line_number":1044,"context_line":"            return version_as_float"},{"line_number":1045,"context_line":"        if type(version) \u003d\u003d tuple:"},{"line_number":1046,"context_line":"            version_as_float \u003d float(\u0027.\u0027.join(str(v) for v in version[0:2]))"},{"line_number":1047,"context_line":"            return version_as_float"},{"line_number":1048,"context_line":"    except Exception:"},{"line_number":1049,"context_line":"        raise exception.NovaException(_(\"Version %s invalid\") % version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Hgw%3D","line":1046,"in_reply_to":"AAAATn%2F9QxI%3D","updated":"2013-12-16 16:45:22.000000000","message":"I agree that it could be handled within the xenapi driver and not put an ugly is-tuple check here.","commit_id":"29d62b2b1b35f2c555c6560c92f2cde2afc4c39b"}]}
