)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"39264268afecd4954e195d9ab90d3f5d14aad41a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The patch also removes the test test_use_disk_format_none. This is no"},{"line_number":10,"context_line":"longer relevant."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib8fb12a90f62f56f81530483d03f1c36cc5d56de"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afb71cf_a27867f3","line":11,"updated":"2015-06-08 07:52:24.000000000","message":"This change has DocImpact because you are removing \u0027vmware_linked_clone\u0027 in favor of \u0027img_linked_clone\u0027","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8d2428d435b5c3735651ab541cfff6de85454fd6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The patch also removes the test test_use_disk_format_none. This is no"},{"line_number":10,"context_line":"longer relevant."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib8fb12a90f62f56f81530483d03f1c36cc5d56de"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afb71cf_1ec0b329","line":11,"in_reply_to":"3afb71cf_a27867f3","updated":"2015-06-08 09:06:49.000000000","message":"Done","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"}],"nova/tests/unit/virt/vmwareapi/test_images.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"64b944a3f38289dd11bf7e174db44ed85a1b62ff","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                     \"vmware_adaptertype\": constants.DEFAULT_ADAPTER_TYPE,"},{"line_number":234,"context_line":"                     \"vmware_disktype\": constants.DEFAULT_DISK_TYPE,"},{"line_number":235,"context_line":"                     \"hw_vif_model\": constants.DEFAULT_VIF_MODEL,"},{"line_number":236,"context_line":"                     \"vmware_linked_clone\": True}}"},{"line_number":237,"context_line":"        mdata \u003d objects.ImageMeta.from_dict(mdata)"},{"line_number":238,"context_line":"        img_props \u003d images.VMwareImage.from_image(image_id, mdata)"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_84733480","line":236,"updated":"2015-06-08 09:52:23.000000000","message":"not sure if we have to use the new property or not here","commit_id":"c6b657d59b5af5e1c369e84e1be7372e9727cf67"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"037b9df2e5485817b52252365b13cfbab7e82dba","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                     \"vmware_adaptertype\": constants.DEFAULT_ADAPTER_TYPE,"},{"line_number":234,"context_line":"                     \"vmware_disktype\": constants.DEFAULT_DISK_TYPE,"},{"line_number":235,"context_line":"                     \"hw_vif_model\": constants.DEFAULT_VIF_MODEL,"},{"line_number":236,"context_line":"                     \"vmware_linked_clone\": True}}"},{"line_number":237,"context_line":"        mdata \u003d objects.ImageMeta.from_dict(mdata)"},{"line_number":238,"context_line":"        img_props \u003d images.VMwareImage.from_image(image_id, mdata)"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_848a14be","line":236,"in_reply_to":"3afb71cf_84733480","updated":"2015-06-08 10:09:08.000000000","message":"End user is allowed to use old property names - so since the test case simulates the end user, this is ok.","commit_id":"c6b657d59b5af5e1c369e84e1be7372e9727cf67"}],"nova/virt/vmwareapi/images.py":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"768e594f8ef3bc2d800836719539a10c5f408c6d","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # calculate linked_clone flag, allow image properties to override the"},{"line_number":126,"context_line":"        # global property set in the configurations."},{"line_number":127,"context_line":"        if hasattr(properties, \u0027img_linked_clone\u0027):"},{"line_number":128,"context_line":"            image_linked_clone \u003d properties.img_linked_clone"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            image_linked_clone \u003d CONF.vmware.use_linked_clone"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_b6c0ad7d","line":127,"updated":"2015-06-08 04:04:14.000000000","message":"I think there is no need to change this as the class provides a get method like in dict.\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L385","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4daee0880486ee98758edbe11a9eb8a8bac6ba67","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # calculate linked_clone flag, allow image properties to override the"},{"line_number":126,"context_line":"        # global property set in the configurations."},{"line_number":127,"context_line":"        if hasattr(properties, \u0027img_linked_clone\u0027):"},{"line_number":128,"context_line":"            image_linked_clone \u003d properties.img_linked_clone"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            image_linked_clone \u003d CONF.vmware.use_linked_clone"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_871c5dc2","line":127,"in_reply_to":"3afb71cf_b6c0ad7d","updated":"2015-06-08 07:36:56.000000000","message":"Good catch!","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"768e594f8ef3bc2d800836719539a10c5f408c6d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        # catch any string values that need to be interpreted as boolean values"},{"line_number":133,"context_line":"        linked_clone \u003d strutils.bool_from_string(image_linked_clone)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        container_format \u003d hasattr(image_meta, \u0027container_format\u0027)"},{"line_number":136,"context_line":"        if container_format:"},{"line_number":137,"context_line":"            container_format \u003d image_meta.container_format"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_563859a0","line":135,"updated":"2015-06-08 04:04:14.000000000","message":"ditto","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4daee0880486ee98758edbe11a9eb8a8bac6ba67","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        # catch any string values that need to be interpreted as boolean values"},{"line_number":133,"context_line":"        linked_clone \u003d strutils.bool_from_string(image_linked_clone)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        container_format \u003d hasattr(image_meta, \u0027container_format\u0027)"},{"line_number":136,"context_line":"        if container_format:"},{"line_number":137,"context_line":"            container_format \u003d image_meta.container_format"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_87a69d51","line":135,"in_reply_to":"3afb71cf_563859a0","updated":"2015-06-08 07:36:56.000000000","message":"We are unable to do this as:\nAttributeError: \u0027ImageMeta\u0027 object has no attribute \u0027get\u0027","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"c18c4c97223b62ee9dbde6f9e94bcd139566a2f6","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        # catch any string values that need to be interpreted as boolean values"},{"line_number":133,"context_line":"        linked_clone \u003d strutils.bool_from_string(image_linked_clone)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        container_format \u003d hasattr(image_meta, \u0027container_format\u0027)"},{"line_number":136,"context_line":"        if container_format:"},{"line_number":137,"context_line":"            container_format \u003d image_meta.container_format"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_82a9eb7d","line":135,"in_reply_to":"3afb71cf_87a69d51","updated":"2015-06-08 07:51:27.000000000","message":"uh oh, I just saw that. Sorry!","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"768e594f8ef3bc2d800836719539a10c5f408c6d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            \u0027container_format\u0027: container_format"},{"line_number":143,"context_line":"        }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        if hasattr(image_meta, \u0027size\u0027):"},{"line_number":146,"context_line":"            props[\u0027file_size\u0027] \u003d image_meta.size"},{"line_number":147,"context_line":"        if hasattr(image_meta, \u0027disk_format\u0027):"},{"line_number":148,"context_line":"            props[\u0027file_type\u0027] \u003d image_meta.disk_format"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_765115d8","line":145,"updated":"2015-06-08 04:04:14.000000000","message":"Nit: may be we can use image_meta.obj_attr_is_set(\u0027size\u0027) ?","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4daee0880486ee98758edbe11a9eb8a8bac6ba67","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            \u0027container_format\u0027: container_format"},{"line_number":143,"context_line":"        }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        if hasattr(image_meta, \u0027size\u0027):"},{"line_number":146,"context_line":"            props[\u0027file_size\u0027] \u003d image_meta.size"},{"line_number":147,"context_line":"        if hasattr(image_meta, \u0027disk_format\u0027):"},{"line_number":148,"context_line":"            props[\u0027file_type\u0027] \u003d image_meta.disk_format"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_422ad37f","line":145,"in_reply_to":"3afb71cf_765115d8","updated":"2015-06-08 07:36:56.000000000","message":"Done","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"768e594f8ef3bc2d800836719539a10c5f408c6d","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        if hasattr(image_meta, \u0027size\u0027):"},{"line_number":146,"context_line":"            props[\u0027file_size\u0027] \u003d image_meta.size"},{"line_number":147,"context_line":"        if hasattr(image_meta, \u0027disk_format\u0027):"},{"line_number":148,"context_line":"            props[\u0027file_type\u0027] \u003d image_meta.disk_format"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        props_map \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_565f39e5","line":147,"updated":"2015-06-08 04:04:14.000000000","message":"Nit: may be we can use image_meta.obj_attr_is_set(\u0027size\u0027) ?","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4daee0880486ee98758edbe11a9eb8a8bac6ba67","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        if hasattr(image_meta, \u0027size\u0027):"},{"line_number":146,"context_line":"            props[\u0027file_size\u0027] \u003d image_meta.size"},{"line_number":147,"context_line":"        if hasattr(image_meta, \u0027disk_format\u0027):"},{"line_number":148,"context_line":"            props[\u0027file_type\u0027] \u003d image_meta.disk_format"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        props_map \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_222117a0","line":147,"in_reply_to":"3afb71cf_565f39e5","updated":"2015-06-08 07:36:56.000000000","message":"Done","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"768e594f8ef3bc2d800836719539a10c5f408c6d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        for k, v in six.iteritems(props_map):"},{"line_number":158,"context_line":"            if hasattr(properties, k):"},{"line_number":159,"context_line":"                props[v] \u003d getattr(properties, k)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        return cls(**props)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_7668f587","line":158,"updated":"2015-06-08 04:04:14.000000000","message":"Nit: may be we can use properties.obj_attr_is_set(k) ?","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4daee0880486ee98758edbe11a9eb8a8bac6ba67","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        for k, v in six.iteritems(props_map):"},{"line_number":158,"context_line":"            if hasattr(properties, k):"},{"line_number":159,"context_line":"                props[v] \u003d getattr(properties, k)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        return cls(**props)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_629cafc0","line":158,"in_reply_to":"3afb71cf_7668f587","updated":"2015-06-08 07:36:56.000000000","message":"Done","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"768e594f8ef3bc2d800836719539a10c5f408c6d","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        for k, v in six.iteritems(props_map):"},{"line_number":158,"context_line":"            if hasattr(properties, k):"},{"line_number":159,"context_line":"                props[v] \u003d getattr(properties, k)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        return cls(**props)"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_f612a508","line":159,"updated":"2015-06-08 04:04:14.000000000","message":"properties.get(k)","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4daee0880486ee98758edbe11a9eb8a8bac6ba67","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        for k, v in six.iteritems(props_map):"},{"line_number":158,"context_line":"            if hasattr(properties, k):"},{"line_number":159,"context_line":"                props[v] \u003d getattr(properties, k)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        return cls(**props)"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_429f73b4","line":159,"in_reply_to":"3afb71cf_f612a508","updated":"2015-06-08 07:36:56.000000000","message":"Done","commit_id":"a70d0eff245cfc228460d43667cae5adc58500bd"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"39264268afecd4954e195d9ab90d3f5d14aad41a","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\"Returns VMwareImage, the subset of properties the driver uses."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        :param image_id - image id of image"},{"line_number":115,"context_line":"        :param image_meta - image metadata we are working with"},{"line_number":116,"context_line":"        :return: vmware image object"},{"line_number":117,"context_line":"        :rtype: nova.virt.vmwareapi.images.VmwareImage"},{"line_number":118,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_e2277f10","line":115,"updated":"2015-06-08 07:52:24.000000000","message":"I think it\u0027s better to pass ImageMeta object instead of dict. The conversion from dict to ImageMeta should be done in vmops.","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7d41c58afd73b6f0f4dca157c432162a61cd44b7","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\"Returns VMwareImage, the subset of properties the driver uses."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        :param image_id - image id of image"},{"line_number":115,"context_line":"        :param image_meta - image metadata we are working with"},{"line_number":116,"context_line":"        :return: vmware image object"},{"line_number":117,"context_line":"        :rtype: nova.virt.vmwareapi.images.VmwareImage"},{"line_number":118,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_7868de87","line":115,"in_reply_to":"3afb71cf_e2277f10","updated":"2015-06-08 09:05:31.000000000","message":"Done","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0a5f62535f44abdb8182e89e710fa08016778b7a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        if image_meta is None:"},{"line_number":120,"context_line":"            image_meta \u003d {}"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(image_meta)"},{"line_number":123,"context_line":"        properties \u003d image_meta.properties"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # calculate linked_clone flag, allow image properties to override the"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_bedd1f44","line":122,"updated":"2015-06-08 09:01:56.000000000","message":"So when I converted the libvirt/xenapi drivers I put all the objects.ImageMeta.from_dict calls into the main driver.py in the top level driver API entry points eg\n\nhttps://review.openstack.org/#/c/188790/2/nova/virt/xenapi/driver.py\n\nThe idea behind doing it this way, is that when we then convert nova.compute.manager to supply an ImageMeta object directly, we can trivially just remove those calls from_dict calls from all the driver.py files","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8d2428d435b5c3735651ab541cfff6de85454fd6","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        if image_meta is None:"},{"line_number":120,"context_line":"            image_meta \u003d {}"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(image_meta)"},{"line_number":123,"context_line":"        properties \u003d image_meta.properties"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # calculate linked_clone flag, allow image properties to override the"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_9eea63ab","line":122,"in_reply_to":"3afb71cf_bedd1f44","updated":"2015-06-08 09:06:49.000000000","message":"Yes, i have done that. Please see Rado\u0027s comment above","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d878509d7debe9199441756ce37bf4999a07a6c5","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        props_map \u003d {"},{"line_number":145,"context_line":"            \u0027os_distro\u0027: \u0027os_type\u0027,"},{"line_number":146,"context_line":"            \u0027hw_scsi_model\u0027: \u0027adapter_type\u0027,"},{"line_number":147,"context_line":"            \u0027hw_disk_type\u0027: \u0027disk_type\u0027,"},{"line_number":148,"context_line":"            \u0027hw_vif_model\u0027: \u0027vif_model\u0027"},{"line_number":149,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_97e0d697","line":146,"updated":"2015-06-09 07:47:26.000000000","message":"The value for \u0027hw_scsi_model\u0027 is \u0027lsilogic\u0027 (lower case) which doesn\u0027t work for VMware because we expect \u0027lsiLogic\u0027 (capital L). This is defined here:\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/fields.py#L412","commit_id":"c6b657d59b5af5e1c369e84e1be7372e9727cf67"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ce963f2b78cc107c79b6a8a4ada0faa7b5f614d9","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        props_map \u003d {"},{"line_number":145,"context_line":"            \u0027os_distro\u0027: \u0027os_type\u0027,"},{"line_number":146,"context_line":"            \u0027hw_scsi_model\u0027: \u0027adapter_type\u0027,"},{"line_number":147,"context_line":"            \u0027hw_disk_type\u0027: \u0027disk_type\u0027,"},{"line_number":148,"context_line":"            \u0027hw_vif_model\u0027: \u0027vif_model\u0027"},{"line_number":149,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_4842bf69","line":146,"in_reply_to":"3afb71cf_97e0d697","updated":"2015-06-09 09:07:56.000000000","message":"We need some equivalent to the vm_utils.convert_vif_model() method that does the same for the adapter types I guess.","commit_id":"c6b657d59b5af5e1c369e84e1be7372e9727cf67"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"39264268afecd4954e195d9ab90d3f5d14aad41a","unresolved":false,"context_lines":[{"line_number":1593,"context_line":"    def attach_interface(self, instance, image_meta, vif):"},{"line_number":1594,"context_line":"        \"\"\"Attach an interface to the instance.\"\"\""},{"line_number":1595,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(image_meta)"},{"line_number":1596,"context_line":"        if hasattr(image_meta.properties, \u0027hw_vif_model\u0027):"},{"line_number":1597,"context_line":"            vif_model \u003d image_meta.properties.hw_vif_model"},{"line_number":1598,"context_line":"        else:"},{"line_number":1599,"context_line":"            vif_model \u003d constants.DEFAULT_VIF_MODEL"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_22e8f7b3","line":1596,"updated":"2015-06-08 07:52:24.000000000","message":"vif_model \u003d image_meta.properties.get(\u0027hw_vif_model\u0027, constants.DEFAULT_VIF_MODEL)","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7d41c58afd73b6f0f4dca157c432162a61cd44b7","unresolved":false,"context_lines":[{"line_number":1593,"context_line":"    def attach_interface(self, instance, image_meta, vif):"},{"line_number":1594,"context_line":"        \"\"\"Attach an interface to the instance.\"\"\""},{"line_number":1595,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(image_meta)"},{"line_number":1596,"context_line":"        if hasattr(image_meta.properties, \u0027hw_vif_model\u0027):"},{"line_number":1597,"context_line":"            vif_model \u003d image_meta.properties.hw_vif_model"},{"line_number":1598,"context_line":"        else:"},{"line_number":1599,"context_line":"            vif_model \u003d constants.DEFAULT_VIF_MODEL"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_3e048fbe","line":1596,"in_reply_to":"3afb71cf_22e8f7b3","updated":"2015-06-08 09:05:31.000000000","message":"Done","commit_id":"afe65d8228bce50c82328c6782cca1db5d2637f0"}]}
