)]}'
{"nova/tests/unit/virt/test_configdrive.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"54814c5362327b508a47d5b4898f20784d6986b3","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class ConfigDriveTestCase(test.NoDBTestCase):"},{"line_number":23,"context_line":"    def test_valid_string_values(self):"},{"line_number":24,"context_line":"        instance \u003d objects.Instance("},{"line_number":25,"context_line":"            config_drive\u003dNone,"},{"line_number":26,"context_line":"            system_metadata\u003d{}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_899afb6c","side":"PARENT","line":23,"updated":"2015-10-21 19:58:12.000000000","message":"because it\u0027s bool now , do we really need those test? or at least consider the name change?","commit_id":"542552754d8da0a97cde32f07a777179c4be608f"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"389eef5f64cef92a39ce61c2c6078bb95224c03b","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.assertTrue(configdrive.required_by(instance))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_false(self):"},{"line_number":58,"context_line":"        self.flags(force_config_drive\u003dFalse)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        instance \u003d objects.Instance("}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_c6564706","line":57,"updated":"2015-10-27 15:05:21.000000000","message":"Agree with Matt Riedemann.\nDo we have test_true ...or true_test? :)","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"607c78f9f260bda0e95ed5db467ebf546398cbca","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.assertTrue(configdrive.required_by(instance))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_false(self):"},{"line_number":58,"context_line":"        self.flags(force_config_drive\u003dFalse)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        instance \u003d objects.Instance("}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_b436a7b2","line":57,"updated":"2015-10-26 20:22:42.000000000","message":"Seems the name of this test could be a bit more clear.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d78654b4673ca4c9f3378dd69ceda390cd07470d","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.assertTrue(configdrive.required_by(instance))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_false(self):"},{"line_number":58,"context_line":"        self.flags(force_config_drive\u003dFalse)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        instance \u003d objects.Instance("}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_54be5800","line":57,"in_reply_to":"1a26ad4f_c6564706","updated":"2015-10-27 19:04:14.000000000","message":"It doesn\u0027t actually matter, seeing as we remove these tests in the next patch but I fixed it anyway :)","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"}],"nova/virt/configdrive.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"54814c5362327b508a47d5b4898f20784d6986b3","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":180,"context_line":"            strutils.bool_from_string(CONF.force_config_drive) or"},{"line_number":181,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":182,"context_line":"            )"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_c9a23399","line":180,"updated":"2015-10-21 19:58:12.000000000","message":"maybe we don\u0027t need this bool_from_string ?","commit_id":"d2e75ce8b28ce0d8fd26d3caa2c99ec464d3c661"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"607c78f9f260bda0e95ed5db467ebf546398cbca","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027iso9660\u0027,"},{"line_number":37,"context_line":"               choices\u003d(\u0027iso9660\u0027, \u0027vfat\u0027),"},{"line_number":38,"context_line":"               help\u003d\u0027Config drive format.\u0027),"},{"line_number":39,"context_line":"    cfg.BoolOpt(\u0027force_config_drive\u0027,"},{"line_number":40,"context_line":"                help\u003d\u0027Force injection to take place on a config drive\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027mkisofs_cmd\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027genisoimage\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_b4cf87b2","line":39,"updated":"2015-10-26 20:22:42.000000000","message":"We should set the default to False.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a8e1f10050a059b048be3bb17a8bd55f9c6c5e4a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027iso9660\u0027,"},{"line_number":37,"context_line":"               choices\u003d(\u0027iso9660\u0027, \u0027vfat\u0027),"},{"line_number":38,"context_line":"               help\u003d\u0027Config drive format.\u0027),"},{"line_number":39,"context_line":"    cfg.BoolOpt(\u0027force_config_drive\u0027,"},{"line_number":40,"context_line":"                help\u003d\u0027Force injection to take place on a config drive\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027mkisofs_cmd\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027genisoimage\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_b46fac91","line":39,"in_reply_to":"1a26ad4f_74bb540f","updated":"2015-10-27 19:05:21.000000000","message":"Although I\u0027m not sure if I should - there wasn\u0027t a default before?","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"43dbece9abe8e26902f508a354906301a55b09c2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027iso9660\u0027,"},{"line_number":37,"context_line":"               choices\u003d(\u0027iso9660\u0027, \u0027vfat\u0027),"},{"line_number":38,"context_line":"               help\u003d\u0027Config drive format.\u0027),"},{"line_number":39,"context_line":"    cfg.BoolOpt(\u0027force_config_drive\u0027,"},{"line_number":40,"context_line":"                help\u003d\u0027Force injection to take place on a config drive\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027mkisofs_cmd\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027genisoimage\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_94263015","line":39,"in_reply_to":"1a26ad4f_b46fac91","updated":"2015-10-27 19:28:20.000000000","message":"The default before would have been None since that is the StrOpt default.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d78654b4673ca4c9f3378dd69ceda390cd07470d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027iso9660\u0027,"},{"line_number":37,"context_line":"               choices\u003d(\u0027iso9660\u0027, \u0027vfat\u0027),"},{"line_number":38,"context_line":"               help\u003d\u0027Config drive format.\u0027),"},{"line_number":39,"context_line":"    cfg.BoolOpt(\u0027force_config_drive\u0027,"},{"line_number":40,"context_line":"                help\u003d\u0027Force injection to take place on a config drive\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027mkisofs_cmd\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027genisoimage\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_74bb540f","line":39,"in_reply_to":"3a29b11f_b4cf87b2","updated":"2015-10-27 19:04:14.000000000","message":"Done","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"57cecd1a208f3878a58495f75c8887a403b6bc8d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"img_config_drive\","},{"line_number":176,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":179,"context_line":"            CONF.force_config_drive or"},{"line_number":180,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":181,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_94136b0d","line":178,"updated":"2015-10-26 20:26:51.000000000","message":"instance.config_drive is still a nullable string:\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/instance.py#L145\n\nSo when upgrading to this we could have entries in the database with \u0027always\u0027 as the value, which would still equate to True here so that is not a problem in this code.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"43dbece9abe8e26902f508a354906301a55b09c2","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"img_config_drive\","},{"line_number":176,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":179,"context_line":"            CONF.force_config_drive or"},{"line_number":180,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":181,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_542098f7","line":178,"in_reply_to":"1a26ad4f_391dd573","updated":"2015-10-27 19:28:20.000000000","message":"Will need to talk to some people probably after the summit, alaski said he thought this was probably a good candidate for online data migration.  I\u0027d try and sync up with dansmith after the summit about this though.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d78654b4673ca4c9f3378dd69ceda390cd07470d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"img_config_drive\","},{"line_number":176,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":179,"context_line":"            CONF.force_config_drive or"},{"line_number":180,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":181,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_391dd573","line":178,"in_reply_to":"3a29b11f_14175bee","updated":"2015-10-27 19:04:14.000000000","message":"I have no idea. Would appreciate your input here.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4fe47455f1d5bc0f2b3e286865de2ff2429cfa76","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"img_config_drive\","},{"line_number":176,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":179,"context_line":"            CONF.force_config_drive or"},{"line_number":180,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":181,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_14175bee","line":178,"in_reply_to":"3a29b11f_94136b0d","updated":"2015-10-26 20:33:07.000000000","message":"I\u0027m wondering if we should be doing an online data migration on first access of this attribute in the Instance object such that if the value is not a strict boolean, we convert it.","commit_id":"f435fd344a1748920a1f63755f8c59a0cddfdd03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d2a866997b9697aface4e797afd70b0d924ec82","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":180,"context_line":"            CONF.force_config_drive or"},{"line_number":181,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":182,"context_line":"            )"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a26ad4f_f48764d5","line":180,"updated":"2015-10-27 19:29:54.000000000","message":"I\u0027d like to talk to dansmith about whether or not we should be doing an online data migration with this change such that on first access of instance.config_drive we convert truthy string things to booleans.","commit_id":"fdd3b7bd92c1d9f500f67ec8a7f6c717dfddc0e3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4dc86d7eb18bc6c356989c6b38bea97312554f1c","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":180,"context_line":"            CONF.force_config_drive or"},{"line_number":181,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":182,"context_line":"            )"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_69f2bb9c","line":180,"in_reply_to":"1a26ad4f_7fe48d3a","updated":"2015-11-03 20:41:54.000000000","message":"Well, we\u0027re treating it like a boolean now anyway, right?\n\nChanging the type of the column is a pretty intense operation if we do it in place, and if we don\u0027t it means creating a new column and migrating things over.\n\nIt would be easier to change the type on the instance object and just consider !\u003dNULL to be true I think. Might want to just ensure that config_drive is always a consistent value in InstanceV2 and save the actual type change for InstanceV3.","commit_id":"fdd3b7bd92c1d9f500f67ec8a7f6c717dfddc0e3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5219b54f449bf5381a6c8f32a21414dedc9f23f1","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    return (instance.get(\u0027config_drive\u0027) or"},{"line_number":180,"context_line":"            CONF.force_config_drive or"},{"line_number":181,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":182,"context_line":"            )"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a26ad4f_7fe48d3a","line":180,"in_reply_to":"1a26ad4f_f48764d5","updated":"2015-10-27 19:57:53.000000000","message":"Agreed. I\u0027ve just fixed the issues that I could","commit_id":"fdd3b7bd92c1d9f500f67ec8a7f6c717dfddc0e3"}]}
