)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"6489b65dfd7728607295a3ffcb72a41af15b46b6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"VMware: spawn refactor - phase 1 - test for spawn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adding a test case for spawn to ensure all the correct methods are"},{"line_number":10,"context_line":"called.  This test will get further fleshed out with explicit"},{"line_number":11,"context_line":"assertions of behavior along with additional factoring pertaining to"},{"line_number":12,"context_line":"image handling and manipulation."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_b173664c","line":10,"updated":"2014-05-08 15:45:38.000000000","message":"Fleshed out sounds painful :) Do you mean \"flushed out\"?","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"e19cfe272cc4a4f0537e75df1085cc88a8e5f77e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"VMware: spawn refactor - phase 1 - test for spawn"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adding a test case for spawn to ensure all the correct methods are"},{"line_number":10,"context_line":"called.  This test will get further fleshed out with explicit"},{"line_number":11,"context_line":"assertions of behavior along with additional factoring pertaining to"},{"line_number":12,"context_line":"image handling and manipulation."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_897e3ead","line":10,"in_reply_to":"7adec928_b173664c","updated":"2014-05-08 17:50:57.000000000","message":"Gruesome as it sounds, I really mean to say that :-).\n(http://www.merriam-webster.com/top-ten-lists/top-10-commonly-confused-words-vol-2/flush-out-flesh-out.html)\nGranted, as part of the fleshing out process, I am sure some things will be flushed out too :-)","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"}],"nova/tests/virt/vmwareapi/test_vmops.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9d6f6d1f9a4f1d6d583a038db8f7c3af4d545f98","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self._virtapi \u003d mock.Mock()"},{"line_number":46,"context_line":"        self._vmops \u003d vmops.VMwareVMOps(self._session, self._virtapi, None)"},{"line_number":47,"context_line":"        self._instance \u003d {"},{"line_number":48,"context_line":"            \u0027name\u0027: \u0027fake_name\u0027,"},{"line_number":49,"context_line":"            \u0027uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":50,"context_line":"            \u0027vcpus\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_15097831","line":47,"updated":"2014-05-08 00:24:13.000000000","message":"we should make use of the instance object here.\n\n self.instance \u003d fake_instance.fake_instance_obj(\n                self.context, **values)\n\nplease see https://github.com/openstack/nova/blob/master/nova/tests/virt/vmwareapi/test_driver_api.py#L432","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fbdf68261b628a59ca2a92d37e29b9ffd2c5b686","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self._virtapi \u003d mock.Mock()"},{"line_number":46,"context_line":"        self._vmops \u003d vmops.VMwareVMOps(self._session, self._virtapi, None)"},{"line_number":47,"context_line":"        self._instance \u003d {"},{"line_number":48,"context_line":"            \u0027name\u0027: \u0027fake_name\u0027,"},{"line_number":49,"context_line":"            \u0027uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":50,"context_line":"            \u0027vcpus\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_6031180b","line":47,"in_reply_to":"7adec928_15097831","updated":"2014-05-08 01:30:15.000000000","message":"+1, the spawn method in the virt driver API is given instance objects now so we should test with them too.","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"3cd93e34411706303a59da7342f6bac45271725c","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self._virtapi \u003d mock.Mock()"},{"line_number":46,"context_line":"        self._vmops \u003d vmops.VMwareVMOps(self._session, self._virtapi, None)"},{"line_number":47,"context_line":"        self._instance \u003d {"},{"line_number":48,"context_line":"            \u0027name\u0027: \u0027fake_name\u0027,"},{"line_number":49,"context_line":"            \u0027uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":50,"context_line":"            \u0027vcpus\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_8204617f","line":47,"in_reply_to":"7adec928_15097831","updated":"2014-05-08 09:27:23.000000000","message":"Done","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"c4a905330511297382e3481412515262fd80ce2b","unresolved":false,"context_lines":[{"line_number":408,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.ds_util.mkdir\u0027)"},{"line_number":409,"context_line":"    def test_spawn(self,"},{"line_number":410,"context_line":"                   mock_get_res_pool_ref,"},{"line_number":411,"context_line":"                   mock_get_datastore_ref_and_name,"},{"line_number":412,"context_line":"                   mock_get_datacenter_ref_and_name,"},{"line_number":413,"context_line":"                   mock_mkdir):"},{"line_number":414,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_09b07c8a","line":411,"updated":"2014-05-08 07:47:18.000000000","message":"The mock params are built in the reverse order. Still trips me up sometimes. It doesn\u0027t matter as the test is written now, but it will when I update it to do more assertions on the mocked methods :-)","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"6cce9eece3ecdba85748e75819fe7cfdb67c0d60","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._vmops.spawn(self._context, self._instance, image,"},{"line_number":447,"context_line":"                              injected_files\u003dNone,"},{"line_number":448,"context_line":"                              admin_password\u003dNone,"},{"line_number":449,"context_line":"                              network_info\u003dNone"},{"line_number":450,"context_line":"            )"},{"line_number":451,"context_line":"            self.assertTrue(len(_fetch_image.mock_calls) \u003e 0)"},{"line_number":452,"context_line":"            self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_cf53026b","line":449,"updated":"2014-05-07 20:55:21.000000000","message":"Matt wanted 2 tests for spawn - 1 with power_on\u003dTrue and 1 with power_on\u003dFalse","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"3cd93e34411706303a59da7342f6bac45271725c","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._vmops.spawn(self._context, self._instance, image,"},{"line_number":447,"context_line":"                              injected_files\u003dNone,"},{"line_number":448,"context_line":"                              admin_password\u003dNone,"},{"line_number":449,"context_line":"                              network_info\u003dNone"},{"line_number":450,"context_line":"            )"},{"line_number":451,"context_line":"            self.assertTrue(len(_fetch_image.mock_calls) \u003e 0)"},{"line_number":452,"context_line":"            self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_a2095d97","line":449,"in_reply_to":"7adec928_cf53026b","updated":"2014-05-08 09:27:23.000000000","message":"Done","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fbdf68261b628a59ca2a92d37e29b9ffd2c5b686","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._vmops.spawn(self._context, self._instance, image,"},{"line_number":447,"context_line":"                              injected_files\u003dNone,"},{"line_number":448,"context_line":"                              admin_password\u003dNone,"},{"line_number":449,"context_line":"                              network_info\u003dNone"},{"line_number":450,"context_line":"            )"},{"line_number":451,"context_line":"            self.assertTrue(len(_fetch_image.mock_calls) \u003e 0)"},{"line_number":452,"context_line":"            self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_002214b9","line":449,"in_reply_to":"7adec928_cf53026b","updated":"2014-05-08 01:30:15.000000000","message":"Yup, suggest a common private test method with a power_on parameter to control the logic.","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"6cce9eece3ecdba85748e75819fe7cfdb67c0d60","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                              admin_password\u003dNone,"},{"line_number":449,"context_line":"                              network_info\u003dNone"},{"line_number":450,"context_line":"            )"},{"line_number":451,"context_line":"            self.assertTrue(len(_fetch_image.mock_calls) \u003e 0)"},{"line_number":452,"context_line":"            self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ef699e26","line":451,"updated":"2014-05-07 20:55:21.000000000","message":"should you be using assert_called_with instead in these 2 calls instead of just checking they were called?","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"3cd93e34411706303a59da7342f6bac45271725c","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                              admin_password\u003dNone,"},{"line_number":449,"context_line":"                              network_info\u003dNone"},{"line_number":450,"context_line":"            )"},{"line_number":451,"context_line":"            self.assertTrue(len(_fetch_image.mock_calls) \u003e 0)"},{"line_number":452,"context_line":"            self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c2fe696b","line":451,"in_reply_to":"7adec928_ef699e26","updated":"2014-05-08 09:27:23.000000000","message":"Done","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fbdf68261b628a59ca2a92d37e29b9ffd2c5b686","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                              admin_password\u003dNone,"},{"line_number":449,"context_line":"                              network_info\u003dNone"},{"line_number":450,"context_line":"            )"},{"line_number":451,"context_line":"            self.assertTrue(len(_fetch_image.mock_calls) \u003e 0)"},{"line_number":452,"context_line":"            self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_c0174c50","line":451,"in_reply_to":"7adec928_ef699e26","updated":"2014-05-08 01:30:15.000000000","message":"Yeah, although I\u0027m guessing that gets trickier with how the expected_methods are being used in a stack for mocking out _call_method.","commit_id":"5fa9e11c6f60992a2eb8735cf4c3b56661ed9d8c"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"bbd3a283404864d836da92290250200341b82020","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            \u0027node\u0027: \u0027respool-1001(MyResPoolName)\u0027"},{"line_number":61,"context_line":"        }"},{"line_number":62,"context_line":"        self._instance \u003d fake_instance.fake_instance_obj("},{"line_number":63,"context_line":"                         self._context, **values)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        self._ds_record \u003d vm_util.DSRecord("},{"line_number":66,"context_line":"                datastore\u003d\"fake_ds_ref\", name\u003d\"fake_ds\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_6bce4d5c","line":63,"updated":"2014-05-08 15:08:04.000000000","message":"nit: bad indentation","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"e19cfe272cc4a4f0537e75df1085cc88a8e5f77e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            \u0027node\u0027: \u0027respool-1001(MyResPoolName)\u0027"},{"line_number":61,"context_line":"        }"},{"line_number":62,"context_line":"        self._instance \u003d fake_instance.fake_instance_obj("},{"line_number":63,"context_line":"                         self._context, **values)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        self._ds_record \u003d vm_util.DSRecord("},{"line_number":66,"context_line":"                datastore\u003d\"fake_ds_ref\", name\u003d\"fake_ds\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_49c7d645","line":63,"in_reply_to":"7adec928_6bce4d5c","updated":"2014-05-08 17:50:57.000000000","message":"Done","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"bbd3a283404864d836da92290250200341b82020","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        self._ds_record \u003d vm_util.DSRecord("},{"line_number":66,"context_line":"                datastore\u003d\"fake_ds_ref\", name\u003d\"fake_ds\","},{"line_number":67,"context_line":"                capacity\u003d1000000, freespace\u003d1000000)"},{"line_number":68,"context_line":"        self._dc_info \u003d vmops.DcInfo("},{"line_number":69,"context_line":"                ref\u003d\"fake_dc_ref\", name\u003d\"fake_dc\","},{"line_number":70,"context_line":"                vmFolder\u003d\"fake_vm_folder\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_4bf8b17c","line":67,"updated":"2014-05-08 15:08:04.000000000","message":"nit: use the constants in the \u0027units\u0027 module","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"e19cfe272cc4a4f0537e75df1085cc88a8e5f77e","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        self._ds_record \u003d vm_util.DSRecord("},{"line_number":66,"context_line":"                datastore\u003d\"fake_ds_ref\", name\u003d\"fake_ds\","},{"line_number":67,"context_line":"                capacity\u003d1000000, freespace\u003d1000000)"},{"line_number":68,"context_line":"        self._dc_info \u003d vmops.DcInfo("},{"line_number":69,"context_line":"                ref\u003d\"fake_dc_ref\", name\u003d\"fake_dc\","},{"line_number":70,"context_line":"                vmFolder\u003d\"fake_vm_folder\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_69c49240","line":67,"in_reply_to":"7adec928_4bf8b17c","updated":"2014-05-08 17:50:57.000000000","message":"Done","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"6489b65dfd7728607295a3ffcb72a41af15b46b6","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        admin_password \u003d \"password\""},{"line_number":481,"context_line":"        network_info \u003d mock.Mock()"},{"line_number":482,"context_line":"        port \u003d mock.Mock()"},{"line_number":483,"context_line":"        network_info \u003d mock.Mock()"},{"line_number":484,"context_line":"        mock_get_vnc_port.return_value \u003d port"},{"line_number":485,"context_line":"        mock_get_datastore_ref_and_name.return_value \u003d self._ds_record"},{"line_number":486,"context_line":"        mock_get_datacenter_ref_and_name.return_value \u003d self._dc_info"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_5102223f","line":483,"updated":"2014-05-08 15:45:38.000000000","message":"Why is this declared twice?  See line 481 and 483.","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"e19cfe272cc4a4f0537e75df1085cc88a8e5f77e","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        admin_password \u003d \"password\""},{"line_number":481,"context_line":"        network_info \u003d mock.Mock()"},{"line_number":482,"context_line":"        port \u003d mock.Mock()"},{"line_number":483,"context_line":"        network_info \u003d mock.Mock()"},{"line_number":484,"context_line":"        mock_get_vnc_port.return_value \u003d port"},{"line_number":485,"context_line":"        mock_get_datastore_ref_and_name.return_value \u003d self._ds_record"},{"line_number":486,"context_line":"        mock_get_datacenter_ref_and_name.return_value \u003d self._dc_info"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_e9e7c2e2","line":483,"in_reply_to":"7adec928_5102223f","updated":"2014-05-08 17:50:57.000000000","message":"oops. thanks.","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"bbd3a283404864d836da92290250200341b82020","unresolved":false,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        with contextlib.nested("},{"line_number":493,"context_line":"                mock.patch.object(self._session, \u0027_wait_for_task\u0027),"},{"line_number":494,"context_line":"                mock.patch.object(self._session, \u0027_call_method\u0027,"},{"line_number":495,"context_line":"                                  fake_call_method),"},{"line_number":496,"context_line":"                mock.patch.object(uuidutils, \u0027generate_uuid\u0027,"},{"line_number":497,"context_line":"                                  return_value\u003d\"tmp-uuid\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_b6f99c4f","line":494,"updated":"2014-05-08 15:08:04.000000000","message":"call_mock \u003d mock.Mock(return_value\u003d\u0027fake_task\u0027)\n\nthen patch the _call_method with call_mock; at the end you can assert what methods are called and in what order by verifying call_mock.mock_calls; see:\n\nhttp://www.voidspace.org.uk/python/mock/mock.html#mock.Mock.mock_calls\n\nyou can factor out the last step (verifying mock_calls) in a separate method which would make the code more readable","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"e19cfe272cc4a4f0537e75df1085cc88a8e5f77e","unresolved":false,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        with contextlib.nested("},{"line_number":493,"context_line":"                mock.patch.object(self._session, \u0027_wait_for_task\u0027),"},{"line_number":494,"context_line":"                mock.patch.object(self._session, \u0027_call_method\u0027,"},{"line_number":495,"context_line":"                                  fake_call_method),"},{"line_number":496,"context_line":"                mock.patch.object(uuidutils, \u0027generate_uuid\u0027,"},{"line_number":497,"context_line":"                                  return_value\u003d\"tmp-uuid\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_89c1de30","line":494,"in_reply_to":"7adec928_b6f99c4f","updated":"2014-05-08 17:50:57.000000000","message":"good point, thanks.","commit_id":"fb1f08871c89a944dba8e1f493842a7f8c8fe430"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"cd5741bf3b85b316ab0f05824129d08a4f89ab46","unresolved":false,"context_lines":[{"line_number":428,"context_line":"    def test_finish_revert_migration_power_off(self):"},{"line_number":429,"context_line":"        self._test_finish_revert_migration(power_on\u003dFalse)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _verify_mock_call_method_calls(self, mock_call_method):"},{"line_number":432,"context_line":"        # More(vui): More explicit assertions of spawn() behavior"},{"line_number":433,"context_line":"        # are waiting on additional refactoring pertaining to image"},{"line_number":434,"context_line":"        # handling/manipulation. Till then, we continue to assert on the"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_ea1a456d","line":431,"updated":"2014-05-09 06:40:13.000000000","message":"nit: _verify_spawn_method_calls would be a better name for this","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"51cf25c25bddecbbd6e1b749902004c7e03dba85","unresolved":false,"context_lines":[{"line_number":428,"context_line":"    def test_finish_revert_migration_power_off(self):"},{"line_number":429,"context_line":"        self._test_finish_revert_migration(power_on\u003dFalse)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _verify_mock_call_method_calls(self, mock_call_method):"},{"line_number":432,"context_line":"        # More(vui): More explicit assertions of spawn() behavior"},{"line_number":433,"context_line":"        # are waiting on additional refactoring pertaining to image"},{"line_number":434,"context_line":"        # handling/manipulation. Till then, we continue to assert on the"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_0d66a851","line":431,"in_reply_to":"7adec928_ea1a456d","updated":"2014-05-09 13:13:23.000000000","message":"Done","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"cd5741bf3b85b316ab0f05824129d08a4f89ab46","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                return_value\u003d\"fake_vm_ref\")"},{"line_number":466,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.ds_util.mkdir\u0027)"},{"line_number":467,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vmops.VMwareVMOps._set_machine_id\u0027)"},{"line_number":468,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.get_vnc_port\u0027)"},{"line_number":469,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vmops.VMwareVMOps._set_vnc_config\u0027)"},{"line_number":470,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.power_on_instance\u0027)"},{"line_number":471,"context_line":"    def _test_spawn(self,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_aadafd75","line":468,"updated":"2014-05-09 06:40:13.000000000","message":"you can set a return_value (e.g. 5900) and delete couple of lines below","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"51cf25c25bddecbbd6e1b749902004c7e03dba85","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                return_value\u003d\"fake_vm_ref\")"},{"line_number":466,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.ds_util.mkdir\u0027)"},{"line_number":467,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vmops.VMwareVMOps._set_machine_id\u0027)"},{"line_number":468,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.get_vnc_port\u0027)"},{"line_number":469,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vmops.VMwareVMOps._set_vnc_config\u0027)"},{"line_number":470,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.power_on_instance\u0027)"},{"line_number":471,"context_line":"    def _test_spawn(self,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_b090ab96","line":468,"in_reply_to":"7adec928_aadafd75","updated":"2014-05-09 13:13:23.000000000","message":"Done","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"cd5741bf3b85b316ab0f05824129d08a4f89ab46","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            \u0027disk_format\u0027: \u0027vmdk\u0027,"},{"line_number":492,"context_line":"            \u0027size\u0027: 1 * units.Gi,"},{"line_number":493,"context_line":"        }"},{"line_number":494,"context_line":"        injected_files \u003d \"fake_files\""},{"line_number":495,"context_line":"        admin_password \u003d \"password\""},{"line_number":496,"context_line":"        port \u003d mock.Mock()"},{"line_number":497,"context_line":"        network_info \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_eae4053d","line":494,"updated":"2014-05-09 06:40:13.000000000","message":"nit: you can inline this in the spawn call","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"51cf25c25bddecbbd6e1b749902004c7e03dba85","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            \u0027disk_format\u0027: \u0027vmdk\u0027,"},{"line_number":492,"context_line":"            \u0027size\u0027: 1 * units.Gi,"},{"line_number":493,"context_line":"        }"},{"line_number":494,"context_line":"        injected_files \u003d \"fake_files\""},{"line_number":495,"context_line":"        admin_password \u003d \"password\""},{"line_number":496,"context_line":"        port \u003d mock.Mock()"},{"line_number":497,"context_line":"        network_info \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_90cbaf71","line":494,"in_reply_to":"7adec928_eae4053d","updated":"2014-05-09 13:13:23.000000000","message":"Done","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"cd5741bf3b85b316ab0f05824129d08a4f89ab46","unresolved":false,"context_lines":[{"line_number":492,"context_line":"            \u0027size\u0027: 1 * units.Gi,"},{"line_number":493,"context_line":"        }"},{"line_number":494,"context_line":"        injected_files \u003d \"fake_files\""},{"line_number":495,"context_line":"        admin_password \u003d \"password\""},{"line_number":496,"context_line":"        port \u003d mock.Mock()"},{"line_number":497,"context_line":"        network_info \u003d mock.Mock()"},{"line_number":498,"context_line":"        mock_get_vnc_port.return_value \u003d port"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_0ad13157","line":495,"updated":"2014-05-09 06:40:13.000000000","message":"nit: you can inline this in the spawn call","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"51cf25c25bddecbbd6e1b749902004c7e03dba85","unresolved":false,"context_lines":[{"line_number":492,"context_line":"            \u0027size\u0027: 1 * units.Gi,"},{"line_number":493,"context_line":"        }"},{"line_number":494,"context_line":"        injected_files \u003d \"fake_files\""},{"line_number":495,"context_line":"        admin_password \u003d \"password\""},{"line_number":496,"context_line":"        port \u003d mock.Mock()"},{"line_number":497,"context_line":"        network_info \u003d mock.Mock()"},{"line_number":498,"context_line":"        mock_get_vnc_port.return_value \u003d port"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_b0c8ab75","line":495,"in_reply_to":"7adec928_0ad13157","updated":"2014-05-09 13:13:23.000000000","message":"Done","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"cd5741bf3b85b316ab0f05824129d08a4f89ab46","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                    \"fake_uuid\","},{"line_number":528,"context_line":"                    \"fake_ds\","},{"line_number":529,"context_line":"                    [],"},{"line_number":530,"context_line":"                    \u0027otherGuest\u0027)"},{"line_number":531,"context_line":"            mock_create_vm.assert_called_once_with("},{"line_number":532,"context_line":"                    self._session,"},{"line_number":533,"context_line":"                    self._instance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_ea8de57c","line":530,"updated":"2014-05-09 06:40:13.000000000","message":"nit: single or double quotes for string literals? Not sure if consistency really matters here ...","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"51cf25c25bddecbbd6e1b749902004c7e03dba85","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                    \"fake_uuid\","},{"line_number":528,"context_line":"                    \"fake_ds\","},{"line_number":529,"context_line":"                    [],"},{"line_number":530,"context_line":"                    \u0027otherGuest\u0027)"},{"line_number":531,"context_line":"            mock_create_vm.assert_called_once_with("},{"line_number":532,"context_line":"                    self._session,"},{"line_number":533,"context_line":"                    self._instance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_10a79fbe","line":530,"in_reply_to":"7adec928_ea8de57c","updated":"2014-05-09 13:13:23.000000000","message":"Done","commit_id":"2134025f0b2862dc27fbc30677191ab72dc53458"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"89792bfcf93bf427711fcf76046069c7488da1b9","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def test_use_linked_clone_override_nf(self):"},{"line_number":146,"context_line":"        value \u003d vmops.VMwareVMOps.decide_linked_clone(None, False)"},{"line_number":147,"context_line":"        self.assertFalse(value, \u0027No overrides present but still overridden!\u0027)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_use_linked_clone_override_none_true(self):"},{"line_number":150,"context_line":"        value \u003d vmops.VMwareVMOps.decide_linked_clone(None, True)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_1092349f","line":147,"updated":"2014-05-09 21:11:42.000000000","message":"I don\u0027t see why any of this is necessary, it\u0027s an unrelated change for this and just clutters up the review.","commit_id":"22441c38d86267af6577e4a37c630bd16ab51fba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"89792bfcf93bf427711fcf76046069c7488da1b9","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        self._test_finish_revert_migration(power_on\u003dFalse)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _verify_spawn_method_calls(self, mock_call_method):"},{"line_number":432,"context_line":"        # More(vui): More explicit assertions of spawn() behavior"},{"line_number":433,"context_line":"        # are waiting on additional refactoring pertaining to image"},{"line_number":434,"context_line":"        # handling/manipulation. Till then, we continue to assert on the"},{"line_number":435,"context_line":"        # sequence of VIM operations invoked."}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_90ed6428","line":432,"updated":"2014-05-09 21:11:42.000000000","message":"What is \u0027More\u0027?  NOTE?  TODO?","commit_id":"22441c38d86267af6577e4a37c630bd16ab51fba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"89792bfcf93bf427711fcf76046069c7488da1b9","unresolved":false,"context_lines":[{"line_number":541,"context_line":"                self._session._get_vim().client.factory,"},{"line_number":542,"context_line":"                self._instance,"},{"line_number":543,"context_line":"                network_info)"},{"line_number":544,"context_line":"            if power_on:"},{"line_number":545,"context_line":"                mock_power_on_instance.assert_called_once_with("},{"line_number":546,"context_line":"                    self._session, self._instance, vm_ref\u003d\u0027fake_vm_ref\u0027)"},{"line_number":547,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_d0ce0cb4","line":544,"updated":"2014-05-09 21:11:42.000000000","message":"put a blank line above this","commit_id":"22441c38d86267af6577e4a37c630bd16ab51fba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"89792bfcf93bf427711fcf76046069c7488da1b9","unresolved":false,"context_lines":[{"line_number":567,"context_line":"                        self._ds_record.name,"},{"line_number":568,"context_line":"                        upload_file_name,"},{"line_number":569,"context_line":"                        cookies\u003d\u0027Fake-CookieJar\u0027)"},{"line_number":570,"context_line":"                self.assertTrue(len(_wait_for_task.mock_calls) \u003e 0)"},{"line_number":571,"context_line":"                self._verify_spawn_method_calls(_call_method)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    def test_spawn(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_b042600e","line":570,"updated":"2014-05-09 21:11:42.000000000","message":"Wouldn\u0027t it just be easier to do: self.assertTrue(_wait_for_task.called)?\n\nHow many times is this called?  Why not assert what it\u0027s called with?","commit_id":"22441c38d86267af6577e4a37c630bd16ab51fba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b254d7902d90c24fd945f6de5fd29971b06f10a3","unresolved":false,"context_lines":[{"line_number":537,"context_line":"            self.assertTrue(debug_mock.called)"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"    def _verify_spawn_method_calls(self, mock_call_method):"},{"line_number":540,"context_line":"        # More(vui): More explicit assertions of spawn() behavior"},{"line_number":541,"context_line":"        # are waiting on additional refactoring pertaining to image"},{"line_number":542,"context_line":"        # handling/manipulation. Till then, we continue to assert on the"},{"line_number":543,"context_line":"        # sequence of VIM operations invoked."}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_58d4ca46","line":540,"updated":"2014-06-02 15:30:41.000000000","message":"More should be a TODO, and I think that\u0027s probably referring to https://review.openstack.org/#/c/87002/ - right?","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vmops.VMwareVMOps._set_vnc_config\u0027)"},{"line_number":577,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.power_on_instance\u0027)"},{"line_number":578,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.copy_virtual_disk\u0027)"},{"line_number":579,"context_line":"    def _test_spawn(self,"},{"line_number":580,"context_line":"                   mock_copy_virtual_disk,"},{"line_number":581,"context_line":"                   mock_power_on_instance,"},{"line_number":582,"context_line":"                   mock_set_vnc_config,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_eae12dd1","line":579,"updated":"2014-05-29 17:05:01.000000000","message":"I don\u0027t see create_virtual_disk from https://review.openstack.org/#/c/86441/ handled at all - there is about 200 LOC in spawn around the disk handling, which is probably why this wasn\u0027t in here....\n\nI\u0027m not sure how that isn\u0027t covered though since by default block_device_info is None in here, which would mean ebs_root would be False in the code and should get down into the block that handles create_virtual_disk.\n\nAnyway, looks like a gap.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b254d7902d90c24fd945f6de5fd29971b06f10a3","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vmops.VMwareVMOps._set_vnc_config\u0027)"},{"line_number":577,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.power_on_instance\u0027)"},{"line_number":578,"context_line":"    @mock.patch(\u0027nova.virt.vmwareapi.vm_util.copy_virtual_disk\u0027)"},{"line_number":579,"context_line":"    def _test_spawn(self,"},{"line_number":580,"context_line":"                   mock_copy_virtual_disk,"},{"line_number":581,"context_line":"                   mock_power_on_instance,"},{"line_number":582,"context_line":"                   mock_set_vnc_config,"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_d8461a21","line":579,"in_reply_to":"3ae8d1ca_eae12dd1","updated":"2014-06-02 15:30:41.000000000","message":"Maybe add a TODO for phase 2 to add create_virtual_disk tests?","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":626,"context_line":"            mock_get_mo_id_for_instance.assert_called_once_with(self._instance)"},{"line_number":627,"context_line":"            mock_get_res_pool_ref.assert_called_once_with("},{"line_number":628,"context_line":"                    self._session, None, \u0027fake_node_mo_id\u0027)"},{"line_number":629,"context_line":"            mock_get_vif_info.assert_called_once_with("},{"line_number":630,"context_line":"                    self._session, None, False, network_model.VIF_MODEL_E1000,"},{"line_number":631,"context_line":"                    network_info)"},{"line_number":632,"context_line":"            mock_get_create_spec.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_6ac0bd7c","line":629,"updated":"2014-05-29 17:05:01.000000000","message":"https://review.openstack.org/#/c/81809/ is covered here.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                    \u0027fake_ds\u0027,"},{"line_number":637,"context_line":"                    [],"},{"line_number":638,"context_line":"                    \u0027otherGuest\u0027)"},{"line_number":639,"context_line":"            mock_create_vm.assert_called_once_with("},{"line_number":640,"context_line":"                    self._session,"},{"line_number":641,"context_line":"                    self._instance,"},{"line_number":642,"context_line":"                    \u0027fake_vm_folder\u0027,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_ea304da0","line":639,"updated":"2014-05-29 17:05:01.000000000","message":"https://review.openstack.org/#/c/81905/ is covered here.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":650,"context_line":"                self._session._get_vim().client.factory,"},{"line_number":651,"context_line":"                self._instance,"},{"line_number":652,"context_line":"                network_info)"},{"line_number":653,"context_line":"            if power_on:"},{"line_number":654,"context_line":"                mock_power_on_instance.assert_called_once_with("},{"line_number":655,"context_line":"                    self._session, self._instance, vm_ref\u003d\u0027fake_vm_ref\u0027)"},{"line_number":656,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_8a1b491a","line":653,"updated":"2014-05-29 17:05:01.000000000","message":"https://review.openstack.org/#/c/83207/ is covered here.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":668,"context_line":"            else:"},{"line_number":669,"context_line":"                upload_file_name \u003d \u0027vmware_temp/tmp-uuid/%s/%s-flat.vmdk\u0027 % ("},{"line_number":670,"context_line":"                        self._image_id, self._image_id)"},{"line_number":671,"context_line":"                _fetch_image.assert_called_once_with("},{"line_number":672,"context_line":"                        self._context,"},{"line_number":673,"context_line":"                        self._instance,"},{"line_number":674,"context_line":"                        self._session._host_ip,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_ea7dade8","line":671,"updated":"2014-05-29 17:05:01.000000000","message":"https://review.openstack.org/#/c/86442/ is covered here.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2bf3a3150d06189c86bca9e01a8de569b0a2d4e5","unresolved":false,"context_lines":[{"line_number":668,"context_line":"            else:"},{"line_number":669,"context_line":"                upload_file_name \u003d \u0027vmware_temp/tmp-uuid/%s/%s-flat.vmdk\u0027 % ("},{"line_number":670,"context_line":"                        self._image_id, self._image_id)"},{"line_number":671,"context_line":"                _fetch_image.assert_called_once_with("},{"line_number":672,"context_line":"                        self._context,"},{"line_number":673,"context_line":"                        self._instance,"},{"line_number":674,"context_line":"                        self._session._host_ip,"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_07e0d594","line":671,"in_reply_to":"1ae5cdf2_c372a548","updated":"2014-06-04 13:09:44.000000000","message":"No, it was my way of tracking that the patches in the blueprint phase 1 series before this are covered in this spawn test since that\u0027s what this change was created for.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"d9506ddf43e5875e7f1f848a4498de6637b430de","unresolved":false,"context_lines":[{"line_number":668,"context_line":"            else:"},{"line_number":669,"context_line":"                upload_file_name \u003d \u0027vmware_temp/tmp-uuid/%s/%s-flat.vmdk\u0027 % ("},{"line_number":670,"context_line":"                        self._image_id, self._image_id)"},{"line_number":671,"context_line":"                _fetch_image.assert_called_once_with("},{"line_number":672,"context_line":"                        self._context,"},{"line_number":673,"context_line":"                        self._instance,"},{"line_number":674,"context_line":"                        self._session._host_ip,"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_c372a548","line":671,"in_reply_to":"3ae8d1ca_ea7dade8","updated":"2014-06-02 22:01:19.000000000","message":"Matt, by this and several similar comments above, do you mean the other patches have covered the unit testing, so these assertions can be removed?","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":685,"context_line":"                dest_file \u003d unicode(\u0027[fake_ds] vmware_base/%s/%s.%d.vmdk\u0027 %"},{"line_number":686,"context_line":"                              (self._image_id, self._image_id,"},{"line_number":687,"context_line":"                              self._instance[\u0027root_gb\u0027]))"},{"line_number":688,"context_line":"                mock_copy_virtual_disk.assert_called_with(self._session,"},{"line_number":689,"context_line":"                                                          dc_ref,"},{"line_number":690,"context_line":"                                                          source_file,"},{"line_number":691,"context_line":"                                                          dest_file,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_0d5af3f2","line":688,"updated":"2014-05-29 17:05:01.000000000","message":"This covers https://review.openstack.org/#/c/86443/ at least in part, but copy_virtual_disk shows up in 3 places in the spawn method based on different logic, so we\u0027re still missing some coverage here...which goes back to what I\u0027m saying about create_virtual_disk above - there is a huge chunk of code with lots of complicated logic in the spawn method for dealing with disks and images which probably needs to be refactored in it\u0027s own right since trying to have conditional logic in the spawn tests here would get really really ugly...\n\nMaybe all of that disk/image logic needs to be part of a phase 2 push before we can get to phase 3 with oslo.vmware.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b254d7902d90c24fd945f6de5fd29971b06f10a3","unresolved":false,"context_lines":[{"line_number":685,"context_line":"                dest_file \u003d unicode(\u0027[fake_ds] vmware_base/%s/%s.%d.vmdk\u0027 %"},{"line_number":686,"context_line":"                              (self._image_id, self._image_id,"},{"line_number":687,"context_line":"                              self._instance[\u0027root_gb\u0027]))"},{"line_number":688,"context_line":"                mock_copy_virtual_disk.assert_called_with(self._session,"},{"line_number":689,"context_line":"                                                          dc_ref,"},{"line_number":690,"context_line":"                                                          source_file,"},{"line_number":691,"context_line":"                                                          dest_file,"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_78426611","line":688,"in_reply_to":"3ae8d1ca_0d5af3f2","updated":"2014-06-02 15:30:41.000000000","message":"Maybe add a TODO for phase 2 to flesh copy_virtual_disk tests out more?","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6df37a50eebc17232247c4fa5573563fc43fb06","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                                                          dc_ref,"},{"line_number":690,"context_line":"                                                          source_file,"},{"line_number":691,"context_line":"                                                          dest_file,"},{"line_number":692,"context_line":"                                                          mock.ANY)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_spawn(self):"},{"line_number":695,"context_line":"        self._test_spawn()"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ae8d1ca_ed2a277d","line":692,"updated":"2014-05-29 17:05:01.000000000","message":"Isn\u0027t this supposed to be a fake copy_spec?","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"d9506ddf43e5875e7f1f848a4498de6637b430de","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                                                          dc_ref,"},{"line_number":690,"context_line":"                                                          source_file,"},{"line_number":691,"context_line":"                                                          dest_file,"},{"line_number":692,"context_line":"                                                          mock.ANY)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_spawn(self):"},{"line_number":695,"context_line":"        self._test_spawn()"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_56fad1bd","line":692,"in_reply_to":"1ae5cdf2_3838de9f","updated":"2014-06-02 22:01:19.000000000","message":"Actually the VMwareVMOp.get_copy_virtual_disk_spec is overridden in \nVMwareVCVMOps to intentionally return None. On a related note, I think we should focus on testing the VMwareVCVMOps object since that\u0027s what the VC driver uses. This means updating line 54, and mocking\nVMwareVCVMOps.get_datacenter_ref_and_name instead. If we do this, we can validate that the 4th parameter of the mocked copy virtual disk call is None.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2bf3a3150d06189c86bca9e01a8de569b0a2d4e5","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                                                          dc_ref,"},{"line_number":690,"context_line":"                                                          source_file,"},{"line_number":691,"context_line":"                                                          dest_file,"},{"line_number":692,"context_line":"                                                          mock.ANY)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_spawn(self):"},{"line_number":695,"context_line":"        self._test_spawn()"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_078e15d0","line":692,"in_reply_to":"1ae5cdf2_56fad1bd","updated":"2014-06-04 13:09:44.000000000","message":"So add a TODO or are you going to make a change for this now?","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b254d7902d90c24fd945f6de5fd29971b06f10a3","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                                                          dc_ref,"},{"line_number":690,"context_line":"                                                          source_file,"},{"line_number":691,"context_line":"                                                          dest_file,"},{"line_number":692,"context_line":"                                                          mock.ANY)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_spawn(self):"},{"line_number":695,"context_line":"        self._test_spawn()"}],"source_content_type":"text/x-python","patch_set":24,"id":"1ae5cdf2_3838de9f","line":692,"in_reply_to":"3ae8d1ca_ed2a277d","updated":"2014-06-02 15:30:41.000000000","message":"Still wondering about this.","commit_id":"cb3a4079ef8dd11eb6b888cb58a4ace32622ae3a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e7687ceab45bdb98aebbe16b4af7032149f6a8f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self._instance \u003d fake_instance.fake_instance_obj("},{"line_number":67,"context_line":"                                 self._context, **values)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        fake_ds_ref \u003d vmwareapi_fake.ManagedObjectReference(\u0027fake-ds\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self._ds_record \u003d vm_util.DSRecord("},{"line_number":72,"context_line":"                datastore\u003dfake_ds_ref, name\u003d\u0027fake_ds\u0027,"}],"source_content_type":"text/x-python","patch_set":28,"id":"1ae5cdf2_29a728a8","line":69,"updated":"2014-06-05 23:18:06.000000000","message":"This was a change after the rebase, not sure why or if it\u0027s needed...","commit_id":"a982743e88b225fae357198ded13b640c64910b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83764b1840687f47a37ba29e321d5833b83adac2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self._instance \u003d fake_instance.fake_instance_obj("},{"line_number":67,"context_line":"                                 self._context, **values)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        fake_ds_ref \u003d vmwareapi_fake.ManagedObjectReference(\u0027fake-ds\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self._ds_record \u003d vm_util.DSRecord("},{"line_number":72,"context_line":"                datastore\u003dfake_ds_ref, name\u003d\u0027fake_ds\u0027,"}],"source_content_type":"text/x-python","patch_set":28,"id":"1ae5cdf2_291ac8c5","line":69,"in_reply_to":"1ae5cdf2_29a728a8","updated":"2014-06-05 23:27:01.000000000","message":"Because of this:\n\nhttps://review.openstack.org/#/c/97164/2/nova/virt/vmwareapi/vmops.py\n\nIt\u0027s used as an object in vmops now, so can\u0027t use the string like previous patch sets.","commit_id":"a982743e88b225fae357198ded13b640c64910b7"}]}
