)]}'
{"novaclient/v2/servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5858894a344824ac6ff1d41d842815a9a03c1981","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        trusted_certs_microversion \u003d api_versions.APIVersion(\"2.63\")"},{"line_number":1303,"context_line":"        if (trusted_image_certificates and"},{"line_number":1304,"context_line":"                self.api_version \u003c trusted_certs_microversion):"},{"line_number":1305,"context_line":"            raise exceptions.UnsupportedAttribute("},{"line_number":1306,"context_line":"                \"trusted_image_certificate_id \""},{"line_number":1307,"context_line":"                \"or OS_TRUSTED_IMAGE_CERTIFICATE_IDS\","},{"line_number":1308,"context_line":"                \"2.63\")"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        boot_kwargs \u003d dict("},{"line_number":1311,"context_line":"            meta\u003dmeta, files\u003dfiles, userdata\u003duserdata,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6835f044","line":1308,"range":{"start_line":1305,"start_character":12,"end_line":1308,"end_character":23},"updated":"2018-06-19 15:30:41.000000000","message":"This looks a bit weird to me if I\u0027m not using the CLI and just using the python API bindings directly, where the kwarg is \"trusted_image_certificates\".","commit_id":"27bf6cf779f963a0319ceee93a6314eee99b5e1f"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"649f191c43d7b3a49da0754503217bbf9488cfaa","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        trusted_certs_microversion \u003d api_versions.APIVersion(\"2.63\")"},{"line_number":1303,"context_line":"        if (trusted_image_certificates and"},{"line_number":1304,"context_line":"                self.api_version \u003c trusted_certs_microversion):"},{"line_number":1305,"context_line":"            raise exceptions.UnsupportedAttribute("},{"line_number":1306,"context_line":"                \"trusted_image_certificate_id \""},{"line_number":1307,"context_line":"                \"or OS_TRUSTED_IMAGE_CERTIFICATE_IDS\","},{"line_number":1308,"context_line":"                \"2.63\")"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        boot_kwargs \u003d dict("},{"line_number":1311,"context_line":"            meta\u003dmeta, files\u003dfiles, userdata\u003duserdata,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6883b0cc","line":1308,"range":{"start_line":1305,"start_character":12,"end_line":1308,"end_character":23},"in_reply_to":"5f7c97a3_6835f044","updated":"2018-06-19 15:33:24.000000000","message":"Should it say \"trusted_image_certificates or OS_TRUSTED_IMAGE_CERTIFICATE_IDS\" instead?\n\nOr should the environment variable be checked and the exception text only change if the environment variable is set?","commit_id":"27bf6cf779f963a0319ceee93a6314eee99b5e1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c4244046b41081caf157ff62805741d05c8a3205","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        trusted_certs_microversion \u003d api_versions.APIVersion(\"2.63\")"},{"line_number":1303,"context_line":"        if (trusted_image_certificates and"},{"line_number":1304,"context_line":"                self.api_version \u003c trusted_certs_microversion):"},{"line_number":1305,"context_line":"            raise exceptions.UnsupportedAttribute("},{"line_number":1306,"context_line":"                \"trusted_image_certificate_id \""},{"line_number":1307,"context_line":"                \"or OS_TRUSTED_IMAGE_CERTIFICATE_IDS\","},{"line_number":1308,"context_line":"                \"2.63\")"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        boot_kwargs \u003d dict("},{"line_number":1311,"context_line":"            meta\u003dmeta, files\u003dfiles, userdata\u003duserdata,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_c3a9877c","line":1308,"range":{"start_line":1305,"start_character":12,"end_line":1308,"end_character":23},"in_reply_to":"5f7c97a3_6883b0cc","updated":"2018-06-19 16:04:30.000000000","message":"Well, or should this not change in the python API binding code at all and it should be something validated in the shell code, since that\u0027s really where this is coming from.\n\nNormally, in the shell if you specified --trusted-image-certificate-id but not using 2.63, then it\u0027s going to blow up because the --trusted-image-certificate-id option isn\u0027t available before 2.63. The issue is the environment variable is used, if set, regardless of version and only fails in the python API binding code. So what you should probably do instead is add a version check here:\n\nhttps://review.openstack.org/#/c/500396/50/novaclient/v2/shell.py@517\n\nSimilar to what we have in the rebuild CLI validation:\n\nhttps://review.openstack.org/#/c/500396/50/novaclient/v2/shell.py@1926\n\nAlthough you could argue ^ for rebuild is also a confusing error message (if the boot one is confusing that is). I don\u0027t particularly think this is all that confusing, and the rebuild check in the shell is probably not even needed since it\u0027ll raise the same thing from the python API binding code (I didn\u0027t think about that when I wrote it).\n\nTo summarize, I\u0027d say we either:\n\n1. don\u0027t change anything - I don\u0027t consider it an issue worth changing, but Takashi does\n\n2. don\u0027t do this change in the python API binding code but instead use a different error message in the shell code, but be consistent between boot and rebuild in the shell if we do","commit_id":"27bf6cf779f963a0319ceee93a6314eee99b5e1f"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"1dc774324d231f0db4a881fdef3ec3109dc836b3","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        trusted_certs_microversion \u003d api_versions.APIVersion(\"2.63\")"},{"line_number":1303,"context_line":"        if (trusted_image_certificates and"},{"line_number":1304,"context_line":"                self.api_version \u003c trusted_certs_microversion):"},{"line_number":1305,"context_line":"            raise exceptions.UnsupportedAttribute("},{"line_number":1306,"context_line":"                \"trusted_image_certificate_id \""},{"line_number":1307,"context_line":"                \"or OS_TRUSTED_IMAGE_CERTIFICATE_IDS\","},{"line_number":1308,"context_line":"                \"2.63\")"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        boot_kwargs \u003d dict("},{"line_number":1311,"context_line":"            meta\u003dmeta, files\u003dfiles, userdata\u003duserdata,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_1c5c867b","line":1308,"range":{"start_line":1305,"start_character":12,"end_line":1308,"end_character":23},"in_reply_to":"5f7c97a3_9b33eff6","updated":"2018-06-21 20:20:25.000000000","message":"Done.  Thank you for the suggestions!","commit_id":"27bf6cf779f963a0319ceee93a6314eee99b5e1f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"56387741cd6a77e39037b74969f472fa6833ec1e","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"        trusted_certs_microversion \u003d api_versions.APIVersion(\"2.63\")"},{"line_number":1303,"context_line":"        if (trusted_image_certificates and"},{"line_number":1304,"context_line":"                self.api_version \u003c trusted_certs_microversion):"},{"line_number":1305,"context_line":"            raise exceptions.UnsupportedAttribute("},{"line_number":1306,"context_line":"                \"trusted_image_certificate_id \""},{"line_number":1307,"context_line":"                \"or OS_TRUSTED_IMAGE_CERTIFICATE_IDS\","},{"line_number":1308,"context_line":"                \"2.63\")"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        boot_kwargs \u003d dict("},{"line_number":1311,"context_line":"            meta\u003dmeta, files\u003dfiles, userdata\u003duserdata,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_9b33eff6","line":1308,"range":{"start_line":1305,"start_character":12,"end_line":1308,"end_character":23},"in_reply_to":"5f7c97a3_c3a9877c","updated":"2018-06-19 23:47:44.000000000","message":"\u003e 2. don\u0027t do this change in the python API binding code but instead\n \u003e use a different error message in the shell code, but be consistent\n \u003e between boot and rebuild in the shell if we do\n\n+1","commit_id":"27bf6cf779f963a0319ceee93a6314eee99b5e1f"}]}
