)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4c2f985c73ef9dfb8f3e609cb05c6f11a2141a05","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Giridhar Jayavelu \u003cgjayavelu@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-28 14:54:04 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Derive resource quota from Flavor\u0027s extra_spec when attaching interface to an instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admins can create flavor with quota:vif_reservation, quota:vif_limit,"},{"line_number":10,"context_line":"quota:vif_shares_level, quota:vif_shares_share."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba3cc151_0c0454c4","line":7,"updated":"2015-07-05 07:52:02.000000000","message":"Can you please prefix this with VMware:\n\nPlease see https://wiki.openstack.org/wiki/GitCommitMessages\nfor some hints on how to do the commit messages","commit_id":"f8ed776fbeb5824ba2d5cd7f1d20e302a9381ede"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"e5673767a6c667f1fb78a6a59d9c403592b12ff5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Giridhar Jayavelu \u003cgjayavelu@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-16 04:45:19 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Derive resource quota from Flavor\u0027s extra_spec when attaching interface to an instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admins can create flavor with quota:vif_reservation, quota:vif_limit,"},{"line_number":10,"context_line":"quota:vif_shares_level, quota:vif_shares_share."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_858608b8","line":7,"updated":"2015-07-19 02:33:07.000000000","message":"commit message title is too long.  \n\nsee https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"f5f1bb14b4ce4696d59df3f3bb8ca1db0328b300"},{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"1dc0463b323bd8dd377122e4d5894ce062d15ad2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Giridhar Jayavelu \u003cgjayavelu@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-16 04:45:19 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Derive resource quota from Flavor\u0027s extra_spec when attaching interface to an instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admins can create flavor with quota:vif_reservation, quota:vif_limit,"},{"line_number":10,"context_line":"quota:vif_shares_level, quota:vif_shares_share."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_b9136100","line":7,"in_reply_to":"3a50d1a3_858608b8","updated":"2015-07-29 08:04:18.000000000","message":"Eric,\nThanks for the review. sorry I missed to see the comments earlier.\nfixed the length.","commit_id":"f5f1bb14b4ce4696d59df3f3bb8ca1db0328b300"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"e5673767a6c667f1fb78a6a59d9c403592b12ff5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Given that, this patch adds ability to derive the resource attributes"},{"line_number":14,"context_line":"from flavor while attaching an interface to an instance."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This is part of the blueprint: vmware-limits"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib090ac3d1e007ab33a2ff5ff37f731e40c113621"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_459000ed","line":16,"updated":"2015-07-19 02:33:07.000000000","message":"Implements: blueprint vmware-limits\n\nsee https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"f5f1bb14b4ce4696d59df3f3bb8ca1db0328b300"}],"nova/tests/unit/virt/vmwareapi/test_driver_api.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4c2f985c73ef9dfb8f3e609cb05c6f11a2141a05","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            node \u003d self.node_name"},{"line_number":339,"context_line":"        if not uuid:"},{"line_number":340,"context_line":"            uuid \u003d uuidutils.generate_uuid()"},{"line_number":341,"context_line":"        if type_data is None:"},{"line_number":342,"context_line":"            self.type_data \u003d self._get_instance_type_by_name(instance_type)"},{"line_number":343,"context_line":"        else:"},{"line_number":344,"context_line":"            self.type_data \u003d type_data"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_cc0d0cea","line":341,"updated":"2015-07-05 07:52:02.000000000","message":"any reason why we are not using the instance_type_updates?","commit_id":"f8ed776fbeb5824ba2d5cd7f1d20e302a9381ede"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a6c9bc5f113caa64126871a218423b2839752c3","unresolved":false,"context_lines":[{"line_number":2153,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2154,"context_line":"        self._create_vm(instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2155,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2156,"context_line":"        self._attach_interface(vif)"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"    def test_create_instance_with_invalid_shares(self):"},{"line_number":2159,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_4cbc0ddc","line":2156,"updated":"2016-06-30 17:55:55.000000000","message":"How is this actually verifying the vif limits were applied?","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"},{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"ed24ee88e5fca1a7a0d5ad0ff1d513e7735976f9","unresolved":false,"context_lines":[{"line_number":2153,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2154,"context_line":"        self._create_vm(instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2155,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2156,"context_line":"        self._attach_interface(vif)"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"    def test_create_instance_with_invalid_shares(self):"},{"line_number":2159,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_ba74bf67","line":2156,"in_reply_to":"3aaa91ec_4cbc0ddc","updated":"2016-06-30 18:41:46.000000000","message":"The intention was to validate if the vifs can be attached with limits as well. \n_validate_interfaces() ensures that the number of vifs also match.\n\nWe could get the vm configuration and check if the vif limits values are matching, but that would be redundant with \ntest_get_network_attach_config_spec_dvs_with_limits under tests/unit/virt/vmwareapi/test_vm_util.py\n\nPlease let me know if still find this test redundant or require to do the validation similar to test_vm_util.py","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"},{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"63322bd66a4ef4af9d7207c36dbd994f0bfe3f6e","unresolved":false,"context_lines":[{"line_number":2153,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2154,"context_line":"        self._create_vm(instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2155,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2156,"context_line":"        self._attach_interface(vif)"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"    def test_create_instance_with_invalid_shares(self):"},{"line_number":2159,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_00ac848a","line":2156,"in_reply_to":"3aaa91ec_ba74bf67","updated":"2016-06-30 19:09:26.000000000","message":"I\u0027ll add validation for get_network_attach_config_spec() call.","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3e12963d2259630838b64993e2de0d5026e57608","unresolved":false,"context_lines":[{"line_number":2145,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2146,"context_line":"        self._attach_interface(vif)"},{"line_number":2147,"context_line":""},{"line_number":2148,"context_line":"    def test_attach_interface_with_limits(self):"},{"line_number":2149,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"},{"line_number":2150,"context_line":"                              \u0027quota:vif_shares_level\u0027: \u0027custom\u0027,"},{"line_number":2151,"context_line":"                              \u0027quota:vif_shares_share\u0027: 40,"},{"line_number":2152,"context_line":"                              \u0027quota:vif_limits\u0027: 1000,"},{"line_number":2153,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2154,"context_line":"        self._create_vm(instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2155,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2156,"context_line":"        self._attach_interface(vif)"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"    def test_create_instance_with_invalid_shares(self):"},{"line_number":2159,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"},{"line_number":2160,"context_line":"                              \u0027quota:vif_shares_level\u0027: \u0027high\u0027,"},{"line_number":2161,"context_line":"                              \u0027quota:vif_shares_share\u0027: 40,"},{"line_number":2162,"context_line":"                              \u0027quota:vif_limits\u0027: 1000,"},{"line_number":2163,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2164,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":2165,"context_line":"            self._create_vm, instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2166,"context_line":""},{"line_number":2167,"context_line":"    def test_attach_interface_with_exception(self):"},{"line_number":2168,"context_line":"        self._create_vm()"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_0f6157d3","line":2165,"range":{"start_line":2148,"start_character":4,"end_line":2165,"end_character":70},"updated":"2016-06-30 18:08:19.000000000","message":"These tests don\u0027t test anything. I removed the change in vmops and these tests didn\u0027t fail.","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"},{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"ed24ee88e5fca1a7a0d5ad0ff1d513e7735976f9","unresolved":false,"context_lines":[{"line_number":2145,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2146,"context_line":"        self._attach_interface(vif)"},{"line_number":2147,"context_line":""},{"line_number":2148,"context_line":"    def test_attach_interface_with_limits(self):"},{"line_number":2149,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"},{"line_number":2150,"context_line":"                              \u0027quota:vif_shares_level\u0027: \u0027custom\u0027,"},{"line_number":2151,"context_line":"                              \u0027quota:vif_shares_share\u0027: 40,"},{"line_number":2152,"context_line":"                              \u0027quota:vif_limits\u0027: 1000,"},{"line_number":2153,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2154,"context_line":"        self._create_vm(instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2155,"context_line":"        vif \u003d self._create_vif()"},{"line_number":2156,"context_line":"        self._attach_interface(vif)"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"    def test_create_instance_with_invalid_shares(self):"},{"line_number":2159,"context_line":"        flavor_extra_specs \u003d {\u0027extra_specs\u0027: {"},{"line_number":2160,"context_line":"                              \u0027quota:vif_shares_level\u0027: \u0027high\u0027,"},{"line_number":2161,"context_line":"                              \u0027quota:vif_shares_share\u0027: 40,"},{"line_number":2162,"context_line":"                              \u0027quota:vif_limits\u0027: 1000,"},{"line_number":2163,"context_line":"                              \u0027quota:vif_reservation\u0027: 100}}"},{"line_number":2164,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":2165,"context_line":"            self._create_vm, instance_type_updates\u003dflavor_extra_specs)"},{"line_number":2166,"context_line":""},{"line_number":2167,"context_line":"    def test_attach_interface_with_exception(self):"},{"line_number":2168,"context_line":"        self._create_vm()"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_ba415fab","line":2165,"range":{"start_line":2148,"start_character":4,"end_line":2165,"end_character":70},"in_reply_to":"3aaa91ec_0f6157d3","updated":"2016-06-30 18:41:46.000000000","message":"agree. this is actually redundant. test_extra_specs_vif_shares_with_invalid_level in test_vm_util.py already covers it.","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"}],"nova/tests/unit/virt/vmwareapi/test_vmops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0328aacb0c693230326f76e795c9aa819896f5ac","unresolved":false,"context_lines":[{"line_number":2627,"context_line":"                                    utils.is_neutron(),"},{"line_number":2628,"context_line":"                                    self._network_values)"},{"line_number":2629,"context_line":"        vif_limits \u003d vm_util.Limits(shares_level\u003d\u0027custom\u0027,"},{"line_number":2630,"context_line":"                                       shares_share\u003d40)"},{"line_number":2631,"context_line":"        extra_specs \u003d vm_util.ExtraSpecs(vif_limits\u003dvif_limits)"},{"line_number":2632,"context_line":"        mock_extra_specs.return_value \u003d extra_specs"},{"line_number":2633,"context_line":"        self._vmops.attach_interface(self._instance, self._image_meta,"}],"source_content_type":"text/x-python","patch_set":16,"id":"3aaa91ec_c16f1b90","line":2630,"updated":"2016-06-30 21:32:29.000000000","message":"alignment nit here","commit_id":"fac4c3cbf9e38855cae3b17723717b26578e06bf"}],"nova/virt/vmwareapi/vm_util.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3e12963d2259630838b64993e2de0d5026e57608","unresolved":false,"context_lines":[{"line_number":479,"context_line":"                                   vif_limits\u003dNone):"},{"line_number":480,"context_line":"    \"\"\"Builds the vif attach config spec.\"\"\""},{"line_number":481,"context_line":"    config_spec \u003d client_factory.create(\u0027ns0:VirtualMachineConfigSpec\u0027)"},{"line_number":482,"context_line":"    vif_spec \u003d _create_vif_spec(client_factory, vif_info, vif_limits)"},{"line_number":483,"context_line":"    config_spec.deviceChange \u003d [vif_spec]"},{"line_number":484,"context_line":"    if vif_info[\u0027iface_id\u0027] is not None:"},{"line_number":485,"context_line":"        config_spec.extraConfig \u003d [_iface_id_option_value(client_factory,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_ef168b47","line":482,"range":{"start_line":482,"start_character":58,"end_line":482,"end_character":68},"updated":"2016-06-30 18:08:19.000000000","message":"I removed this and the only test that failed was:\n\nnova.tests.unit.virt.vmwareapi.test_vm_util.VMwareVMUtilTestCase.test_get_network_attach_config_spec_dvs_with_limits\n\nSo it appears that for the most part the vmops and driver API tests are completely redundant.","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b4c4aba5ed1fa7b6c7b874097eb095aa09f894b0","unresolved":false,"context_lines":[{"line_number":1619,"context_line":"            if (hasattr(extra_specs, \u0027vif_limits\u0027) and"},{"line_number":1620,"context_line":"                    extra_specs.vif_limits.has_limits()):"},{"line_number":1621,"context_line":"                vif_limits \u003d extra_specs.vif_limits"},{"line_number":1622,"context_line":"                vif_limits.validate()"},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"            attach_config_spec \u003d vm_util.get_network_attach_config_spec("},{"line_number":1625,"context_line":"                                        client_factory, vif_info, port_index,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_cecb8b49","line":1622,"updated":"2015-06-27 06:44:20.000000000","message":"the vif limits are validate in _get_extra specs. you do not need this. i am not sure that we need lines 1618 - 1622","commit_id":"633b6b6d4859b483db99e39b67828e6368c92b66"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b4c4aba5ed1fa7b6c7b874097eb095aa09f894b0","unresolved":false,"context_lines":[{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"            attach_config_spec \u003d vm_util.get_network_attach_config_spec("},{"line_number":1625,"context_line":"                                        client_factory, vif_info, port_index,"},{"line_number":1626,"context_line":"                                        vif_limits)"},{"line_number":1627,"context_line":"            LOG.debug(\"Reconfiguring VM to attach interface\","},{"line_number":1628,"context_line":"                      instance\u003dinstance)"},{"line_number":1629,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_6eda7f19","line":1626,"updated":"2015-06-27 06:44:20.000000000","message":"you can pass extra_specs.vif_limits here","commit_id":"633b6b6d4859b483db99e39b67828e6368c92b66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a61e6cc6b0ce8e048291a4c618ed849c3a22ae5","unresolved":false,"context_lines":[{"line_number":1762,"context_line":"            client_factory \u003d self._session.vim.client.factory"},{"line_number":1763,"context_line":"            extra_specs \u003d self._get_extra_specs(instance.flavor)"},{"line_number":1764,"context_line":""},{"line_number":1765,"context_line":"            attach_config_spec \u003d vm_util.get_network_attach_config_spec("},{"line_number":1766,"context_line":"                                        client_factory, vif_info, port_index,"},{"line_number":1767,"context_line":"                                        extra_specs.vif_limits)"},{"line_number":1768,"context_line":"            LOG.debug(\"Reconfiguring VM to attach interface\","}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_a9ac83ed","line":1765,"updated":"2016-06-30 17:27:23.000000000","message":"So this is only supported when attaching a new virtual interface? We can\u0027t do this when booting a server?","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3e12963d2259630838b64993e2de0d5026e57608","unresolved":false,"context_lines":[{"line_number":1764,"context_line":""},{"line_number":1765,"context_line":"            attach_config_spec \u003d vm_util.get_network_attach_config_spec("},{"line_number":1766,"context_line":"                                        client_factory, vif_info, port_index,"},{"line_number":1767,"context_line":"                                        extra_specs.vif_limits)"},{"line_number":1768,"context_line":"            LOG.debug(\"Reconfiguring VM to attach interface\","},{"line_number":1769,"context_line":"                      instance\u003dinstance)"},{"line_number":1770,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_cf6aafb2","line":1767,"range":{"start_line":1767,"start_character":40,"end_line":1767,"end_character":62},"updated":"2016-06-30 18:08:19.000000000","message":"I removed this and the only thing that failed was:\n\nnova.tests.unit.virt.vmwareapi.test_vmops.VMwareVMOpsTestCase.test_attach_interface\n\nSo the driver API tests aren\u0027t testing anything.","commit_id":"e97927e40bb9bd3c402071b301c8e8644288dc29"}]}
