)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67011582659b98b895845a8a4167743cc4d9227e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sidharth Surana \u003cssurana@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-03 17:32:03 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modifies the logic to search the vsphere vm for a given"},{"line_number":8,"context_line":"instance. The change now makes use of the config.extraConfig"},{"line_number":9,"context_line":"property to search for the instance."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F98GY%3D","line":7,"updated":"2013-12-04 08:51:58.000000000","message":"Please prefix this with VMware:\nThe reviewers are very picky about this","commit_id":"c8ce936eab9f492020dd21317c8cff9a82da018e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"28d8568315e7ae2638191064bcc08a2d37ee12fb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sidharth Surana \u003cssurana@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-04 17:52:15 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modifies the logic to search the vsphere vm for a given"},{"line_number":8,"context_line":"instance. The change now makes use of the config.extraConfig"},{"line_number":9,"context_line":"property to search for the instance."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F914E%3D","line":7,"updated":"2013-12-05 11:05:20.000000000","message":"Please see: https://wiki.openstack.org/wiki/GitCommitMessages\nIn general you should have a one line header - prefixed by the driver name\nThen a description","commit_id":"f276f7e1782ed2a3fab8104f0185c17bdbe33bea"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"28d8568315e7ae2638191064bcc08a2d37ee12fb","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        vm_ref \u003d vm_util.get_vm_ref_from_extraconfig(self.conn._session,"},{"line_number":396,"context_line":"                                                     self.instance[\u0027uuid\u0027])"},{"line_number":397,"context_line":"        self.assertIsNotNone(vm_ref, \u0027VM Reference cannot be none\u0027)"},{"line_number":398,"context_line":"        \"\"\"Disrupt the fake Virtual Machine object so that extraConfig"},{"line_number":399,"context_line":"        cannot be matched."},{"line_number":400,"context_line":"        \"\"\""},{"line_number":401,"context_line":"        fake_vm \u003d vmwareapi_fake._get_objects(\"VirtualMachine\").objects[0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9130%3D","line":398,"updated":"2013-12-05 11:05:20.000000000","message":"Please use # for the comment.","commit_id":"f276f7e1782ed2a3fab8104f0185c17bdbe33bea"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"28d8568315e7ae2638191064bcc08a2d37ee12fb","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        for optionValue in fake_optionvalue:"},{"line_number":404,"context_line":"            if optionValue.key \u003d\u003d \"nvp.vm-uuid\":"},{"line_number":405,"context_line":"                optionValue.value \u003d \"\""},{"line_number":406,"context_line":"        \"\"\"We should not get a Virtual Machine through extraConfig.\"\"\""},{"line_number":407,"context_line":"        vm_ref \u003d vm_util.get_vm_ref_from_extraconfig(self.conn._session,"},{"line_number":408,"context_line":"                                                     self.instance[\u0027uuid\u0027])"},{"line_number":409,"context_line":"        self.assertIsNone(vm_ref, \u0027VM Reference should be none\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F913s%3D","line":406,"updated":"2013-12-05 11:05:20.000000000","message":"Ditto","commit_id":"f276f7e1782ed2a3fab8104f0185c17bdbe33bea"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"28d9e9b43f7f1139823ba50f8eb49a14191fe61f","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        #cannot be matched."},{"line_number":401,"context_line":"        fake_vm \u003d vmwareapi_fake._get_objects(\"VirtualMachine\").objects[0]"},{"line_number":402,"context_line":"        fake_vm.get(\"config.extraConfig[\\\"nvp.vm-uuid\\\"]\").value \u003d \"\""},{"line_number":403,"context_line":"        #We should not get a Virtual Machine through extraConfig."},{"line_number":404,"context_line":"        vm_ref \u003d vm_util.get_vm_ref_from_extraconfig(self.conn._session,"},{"line_number":405,"context_line":"                                                     self.instance[\u0027uuid\u0027])"},{"line_number":406,"context_line":"        self.assertIsNone(vm_ref, \u0027VM Reference should be none\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9a6g%3D","line":403,"updated":"2013-12-11 17:53:00.000000000","message":"please consider: [\u0027config.extraConfig[\"nvp.vm-uuid\"]\u0027]","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"d4fb52bce9228aa4558a890dbbd4c4ed5b9715b0","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        #cannot be matched."},{"line_number":401,"context_line":"        fake_vm \u003d vmwareapi_fake._get_objects(\"VirtualMachine\").objects[0]"},{"line_number":402,"context_line":"        fake_vm.get(\"config.extraConfig[\\\"nvp.vm-uuid\\\"]\").value \u003d \"\""},{"line_number":403,"context_line":"        #We should not get a Virtual Machine through extraConfig."},{"line_number":404,"context_line":"        vm_ref \u003d vm_util.get_vm_ref_from_extraconfig(self.conn._session,"},{"line_number":405,"context_line":"                                                     self.instance[\u0027uuid\u0027])"},{"line_number":406,"context_line":"        self.assertIsNone(vm_ref, \u0027VM Reference should be none\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9aAo%3D","line":403,"in_reply_to":"AAAATn%2F9a6g%3D","updated":"2013-12-11 21:03:11.000000000","message":"Done","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"28d9e9b43f7f1139823ba50f8eb49a14191fe61f","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        self._create_vm()"},{"line_number":413,"context_line":"        vms \u003d self.conn._session._call_method(vim_util, \"get_objects\","},{"line_number":414,"context_line":"                \"VirtualMachine\", [\"config.extraConfig[\\\"nvp.vm-uuid\\\"]\"])"},{"line_number":415,"context_line":"        vm_ref \u003d vm_util._get_object_for_extraconfig_optionvalue(vms,"},{"line_number":416,"context_line":"                                                    self.instance[\"uuid\"])"},{"line_number":417,"context_line":"        self.assertIsNotNone(vm_ref, \u0027VM Reference cannot be none\u0027)"},{"line_number":418,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9a6U%3D","line":415,"updated":"2013-12-11 17:53:00.000000000","message":"ditto","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"d4fb52bce9228aa4558a890dbbd4c4ed5b9715b0","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        self._create_vm()"},{"line_number":413,"context_line":"        vms \u003d self.conn._session._call_method(vim_util, \"get_objects\","},{"line_number":414,"context_line":"                \"VirtualMachine\", [\"config.extraConfig[\\\"nvp.vm-uuid\\\"]\"])"},{"line_number":415,"context_line":"        vm_ref \u003d vm_util._get_object_for_extraconfig_optionvalue(vms,"},{"line_number":416,"context_line":"                                                    self.instance[\"uuid\"])"},{"line_number":417,"context_line":"        self.assertIsNotNone(vm_ref, \u0027VM Reference cannot be none\u0027)"},{"line_number":418,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9aAk%3D","line":415,"in_reply_to":"AAAATn%2F9a6U%3D","updated":"2013-12-11 21:03:11.000000000","message":"Done","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b1747597f382ff2b32d2ac2953214135b69845e0","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        vm_ref \u003d vm_util.get_vm_ref_from_extraconfig(self.conn._session,"},{"line_number":434,"context_line":"                                                     self.instance[\u0027uuid\u0027])"},{"line_number":435,"context_line":"        self.assertIsNotNone(vm_ref, \u0027VM Reference cannot be none\u0027)"},{"line_number":436,"context_line":"        #Disrupt the fake Virtual Machine object so that extraConfig"},{"line_number":437,"context_line":"        #cannot be matched."},{"line_number":438,"context_line":"        fake_vm \u003d vmwareapi_fake._get_objects(\"VirtualMachine\").objects[0]"},{"line_number":439,"context_line":"        fake_vm.get(\u0027config.extraConfig[\"nvp.vm-uuid\"]\u0027).value \u003d \"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9XyQ%3D","line":436,"updated":"2013-12-12 06:13:06.000000000","message":"supernit: space after #, and a couple of lines below too.","commit_id":"42e7f8780f07310944961c674ed1a6d9b7ee5c60"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"7f23883b51fcbd2e2fcccaef2b4598385493784d","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        vm_ref \u003d vm_util.get_vm_ref_from_extraconfig(self.conn._session,"},{"line_number":434,"context_line":"                                                     self.instance[\u0027uuid\u0027])"},{"line_number":435,"context_line":"        self.assertIsNotNone(vm_ref, \u0027VM Reference cannot be none\u0027)"},{"line_number":436,"context_line":"        #Disrupt the fake Virtual Machine object so that extraConfig"},{"line_number":437,"context_line":"        #cannot be matched."},{"line_number":438,"context_line":"        fake_vm \u003d vmwareapi_fake._get_objects(\"VirtualMachine\").objects[0]"},{"line_number":439,"context_line":"        fake_vm.get(\u0027config.extraConfig[\"nvp.vm-uuid\"]\u0027).value \u003d \"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9NnE%3D","line":436,"in_reply_to":"AAAATn%2F9XyQ%3D","updated":"2013-12-13 23:38:55.000000000","message":"Done","commit_id":"42e7f8780f07310944961c674ed1a6d9b7ee5c60"}],"nova/virt/vmwareapi/fake.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67011582659b98b895845a8a4167743cc4d9227e","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        self.set(\"summary.config.numCpu\", kwargs.get(\"numCpu\", 1))"},{"line_number":330,"context_line":"        self.set(\"summary.config.memorySizeMB\", kwargs.get(\"mem\", 1))"},{"line_number":331,"context_line":"        self.set(\"config.hardware.device\", kwargs.get(\"virtual_device\", None))"},{"line_number":332,"context_line":"        exconfig_do \u003d kwargs.get(\"extra_config\", None)"},{"line_number":333,"context_line":"        self.set(\"config.extraConfig\","},{"line_number":334,"context_line":"                 _convert_to_array_of_opt_val(exconfig_do))"},{"line_number":335,"context_line":"        self.set(\u0027runtime.host\u0027, kwargs.get(\"runtime_host\", None))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F98Fs%3D","line":332,"updated":"2013-12-04 08:51:58.000000000","message":"by default the get returns None. you do not need to add this","commit_id":"c8ce936eab9f492020dd21317c8cff9a82da018e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"28d8568315e7ae2638191064bcc08a2d37ee12fb","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        self.set(\"summary.config.numCpu\", kwargs.get(\"numCpu\", 1))"},{"line_number":330,"context_line":"        self.set(\"summary.config.memorySizeMB\", kwargs.get(\"mem\", 1))"},{"line_number":331,"context_line":"        self.set(\"config.hardware.device\", kwargs.get(\"virtual_device\", None))"},{"line_number":332,"context_line":"        exconfig_do \u003d kwargs.get(\"extra_config\", None)"},{"line_number":333,"context_line":"        self.set(\"config.extraConfig\","},{"line_number":334,"context_line":"                 _convert_to_array_of_opt_val(exconfig_do))"},{"line_number":335,"context_line":"        self.set(\u0027runtime.host\u0027, kwargs.get(\"runtime_host\", None))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9124%3D","line":332,"updated":"2013-12-05 11:05:20.000000000","message":"By default the get returns None. You do not need it here. I Understand that there are places where this is done but we should remove those in another patch set","commit_id":"f276f7e1782ed2a3fab8104f0185c17bdbe33bea"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"28d9e9b43f7f1139823ba50f8eb49a14191fe61f","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                 _convert_to_array_of_opt_val(exconfig_do))"},{"line_number":335,"context_line":"        if exconfig_do:"},{"line_number":336,"context_line":"            for optval in exconfig_do:"},{"line_number":337,"context_line":"                self.set(\"config.extraConfig[\\\"%s\\\"]\" % optval.key, optval)"},{"line_number":338,"context_line":"        self.set(\u0027runtime.host\u0027, kwargs.get(\"runtime_host\", None))"},{"line_number":339,"context_line":"        self.device \u003d kwargs.get(\"virtual_device\")"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9a7U%3D","line":337,"updated":"2013-12-11 17:53:00.000000000","message":"please consider: [\u0027config.extraConfig[\"%s\"]\u0027]","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"d4fb52bce9228aa4558a890dbbd4c4ed5b9715b0","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                 _convert_to_array_of_opt_val(exconfig_do))"},{"line_number":335,"context_line":"        if exconfig_do:"},{"line_number":336,"context_line":"            for optval in exconfig_do:"},{"line_number":337,"context_line":"                self.set(\"config.extraConfig[\\\"%s\\\"]\" % optval.key, optval)"},{"line_number":338,"context_line":"        self.set(\u0027runtime.host\u0027, kwargs.get(\"runtime_host\", None))"},{"line_number":339,"context_line":"        self.device \u003d kwargs.get(\"virtual_device\")"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9aAc%3D","line":337,"in_reply_to":"AAAATn%2F9a7U%3D","updated":"2013-12-11 21:03:11.000000000","message":"Done","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"7a5cb3e0d18d6d2aebe061ec5c784d86b862d0eb","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def _convert_to_array_of_opt_val(mors):"},{"line_number":105,"context_line":"    \"\"\"Wraps the given array into a DataObject.\"\"\""},{"line_number":106,"context_line":"    array_of_mors \u003d DataObject()"},{"line_number":107,"context_line":"    array_of_mors.OptionValue \u003d mors"},{"line_number":108,"context_line":"    return array_of_mors"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9V7M%3D","line":106,"updated":"2013-12-12 13:47:14.000000000","message":"rename to array_of_optv or something like this","commit_id":"42e7f8780f07310944961c674ed1a6d9b7ee5c60"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"7f23883b51fcbd2e2fcccaef2b4598385493784d","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def _convert_to_array_of_opt_val(mors):"},{"line_number":105,"context_line":"    \"\"\"Wraps the given array into a DataObject.\"\"\""},{"line_number":106,"context_line":"    array_of_mors \u003d DataObject()"},{"line_number":107,"context_line":"    array_of_mors.OptionValue \u003d mors"},{"line_number":108,"context_line":"    return array_of_mors"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9NnA%3D","line":106,"in_reply_to":"AAAATn%2F9V7M%3D","updated":"2013-12-13 23:38:55.000000000","message":"Done","commit_id":"42e7f8780f07310944961c674ed1a6d9b7ee5c60"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"2b6c44cdd1bb70cfaa5ddc4ed791aab92afcec31","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    return array_of_mors"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def _convert_to_array_of_opt_val(mors):"},{"line_number":105,"context_line":"    \"\"\"Wraps the given array into a DataObject.\"\"\""},{"line_number":106,"context_line":"    array_of_optv \u003d DataObject()"},{"line_number":107,"context_line":"    array_of_optv.OptionValue \u003d mors"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9J5M%3D","line":104,"updated":"2013-12-16 08:44:28.000000000","message":"do we really expect managed object refs (mors) here?","commit_id":"7944ec3e1abebccbc662ea24654e28933233acb7"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"14891b9213024c08fbc191d7c6a13d688382138e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    return array_of_mors"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def _convert_to_array_of_opt_val(mors):"},{"line_number":105,"context_line":"    \"\"\"Wraps the given array into a DataObject.\"\"\""},{"line_number":106,"context_line":"    array_of_optv \u003d DataObject()"},{"line_number":107,"context_line":"    array_of_optv.OptionValue \u003d mors"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9Gx0%3D","line":104,"in_reply_to":"AAAATn%2F9J5M%3D","updated":"2013-12-16 18:53:13.000000000","message":"Done","commit_id":"7944ec3e1abebccbc662ea24654e28933233acb7"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"2b6c44cdd1bb70cfaa5ddc4ed791aab92afcec31","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        self.set(\"summary.config.numCpu\", kwargs.get(\"numCpu\", 1))"},{"line_number":340,"context_line":"        self.set(\"summary.config.memorySizeMB\", kwargs.get(\"mem\", 1))"},{"line_number":341,"context_line":"        self.set(\"config.hardware.device\", kwargs.get(\"virtual_device\", None))"},{"line_number":342,"context_line":"        exconfig_do \u003d kwargs.get(\"extra_config\", None)"},{"line_number":343,"context_line":"        self.set(\"config.extraConfig\","},{"line_number":344,"context_line":"                 _convert_to_array_of_opt_val(exconfig_do))"},{"line_number":345,"context_line":"        if exconfig_do:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9J4A%3D","line":342,"updated":"2013-12-16 08:44:28.000000000","message":"I\u0027d suggest to factor out extraConfig creation (lines 342-347) in a separate method","commit_id":"7944ec3e1abebccbc662ea24654e28933233acb7"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"14891b9213024c08fbc191d7c6a13d688382138e","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        self.set(\"summary.config.numCpu\", kwargs.get(\"numCpu\", 1))"},{"line_number":340,"context_line":"        self.set(\"summary.config.memorySizeMB\", kwargs.get(\"mem\", 1))"},{"line_number":341,"context_line":"        self.set(\"config.hardware.device\", kwargs.get(\"virtual_device\", None))"},{"line_number":342,"context_line":"        exconfig_do \u003d kwargs.get(\"extra_config\", None)"},{"line_number":343,"context_line":"        self.set(\"config.extraConfig\","},{"line_number":344,"context_line":"                 _convert_to_array_of_opt_val(exconfig_do))"},{"line_number":345,"context_line":"        if exconfig_do:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9Guk%3D","line":342,"in_reply_to":"AAAATn%2F9J4A%3D","updated":"2013-12-16 18:53:13.000000000","message":"I am more inclined towards keeping it here, just because the _init_ method really does the \"set\"s of all supported properties. Thus having it here IMHO makes it easier for anyone looking into the code be able to see all the properties that are set without tracking down multiple methods. \n\nHaving said that, if some one else also disagrees then I will consider re-factoring it.","commit_id":"7944ec3e1abebccbc662ea24654e28933233acb7"}],"nova/virt/vmwareapi/vm_util.py":[{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"3ec7500e74dff00215348768d45e101c24565084","unresolved":false,"context_lines":[{"line_number":622,"context_line":"                    for optionValue in options:"},{"line_number":623,"context_line":"                        if optionValue.key \u003d\u003d option:"},{"line_number":624,"context_line":"                            if optionValue.value \u003d\u003d value:"},{"line_number":625,"context_line":"                                return object.obj"},{"line_number":626,"context_line":"                            else:"},{"line_number":627,"context_line":"                                break"},{"line_number":628,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BDjI%3D","line":625,"updated":"2013-12-03 01:05:01.000000000","message":"this could be more pythonic \n\ni.e.\n\nobject.obj \u003d optionvalue.obj if optonvalue.key \u003d\u003d option and optonvalue.value \u003d\u003d value)","commit_id":"116de294f6a090f5496d3cd6209bee0bef9f196c"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"3ec7500e74dff00215348768d45e101c24565084","unresolved":false,"context_lines":[{"line_number":686,"context_line":"    LOG.debug(_(\"vm_ref returned by get_vm_ref_from_extraconfig %s\") % vm_ref)"},{"line_number":687,"context_line":"    if not vm_ref:"},{"line_number":688,"context_line":"        \"\"\"Get reference to the VM through uuid or vm name.\"\"\""},{"line_number":689,"context_line":"        vm_ref \u003d get_vm_ref_from_uuid(session, instance[\u0027uuid\u0027])"},{"line_number":690,"context_line":"    if not vm_ref:"},{"line_number":691,"context_line":"        vm_ref \u003d get_vm_ref_from_name(session, instance[\u0027name\u0027])"},{"line_number":692,"context_line":"    if vm_ref is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BDj4%3D","line":689,"updated":"2013-12-03 01:05:01.000000000","message":"lets add logging here as this is not the expected result","commit_id":"116de294f6a090f5496d3cd6209bee0bef9f196c"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"3ec7500e74dff00215348768d45e101c24565084","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        \"\"\"Get reference to the VM through uuid or vm name.\"\"\""},{"line_number":689,"context_line":"        vm_ref \u003d get_vm_ref_from_uuid(session, instance[\u0027uuid\u0027])"},{"line_number":690,"context_line":"    if not vm_ref:"},{"line_number":691,"context_line":"        vm_ref \u003d get_vm_ref_from_name(session, instance[\u0027name\u0027])"},{"line_number":692,"context_line":"    if vm_ref is None:"},{"line_number":693,"context_line":"        raise exception.InstanceNotFound(instance_id\u003dinstance[\u0027uuid\u0027])"},{"line_number":694,"context_line":"    return vm_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BDj0%3D","line":691,"updated":"2013-12-03 01:05:01.000000000","message":"and here too","commit_id":"116de294f6a090f5496d3cd6209bee0bef9f196c"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67011582659b98b895845a8a4167743cc4d9227e","unresolved":false,"context_lines":[{"line_number":614,"context_line":""},{"line_number":615,"context_line":"def _get_object_for_optionvalue(results, value, option\u003d\"nvp.vm-uuid\"):"},{"line_number":616,"context_line":"    for object in results.objects:"},{"line_number":617,"context_line":"        if object.propSet:"},{"line_number":618,"context_line":"            for propset in object.propSet:"},{"line_number":619,"context_line":"                if propset.name \u003d\u003d \"config.extraConfig\":"},{"line_number":620,"context_line":"                    extra_config \u003d propset.val"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F98D0%3D","line":617,"updated":"2013-12-04 08:51:58.000000000","message":"the propSet may not exist in the object. This will cause an exception\nThis should be:\nif hasattr(object, \u0027propSet\u0027):","commit_id":"c8ce936eab9f492020dd21317c8cff9a82da018e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67011582659b98b895845a8a4167743cc4d9227e","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                            if optionValue.value \u003d\u003d value:"},{"line_number":625,"context_line":"                                return object.obj"},{"line_number":626,"context_line":"                            else:"},{"line_number":627,"context_line":"                                break"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"def _get_object_from_results(session, results, value, func):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F98Dw%3D","line":627,"updated":"2013-12-04 08:51:58.000000000","message":"this just breaks from the first loop and not the second. This should be return None","commit_id":"c8ce936eab9f492020dd21317c8cff9a82da018e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67011582659b98b895845a8a4167743cc4d9227e","unresolved":false,"context_lines":[{"line_number":679,"context_line":""},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"def get_vm_ref(session, instance):"},{"line_number":682,"context_line":"    \"\"\""},{"line_number":683,"context_line":"    Get reference to the VM through maching UUID with the"},{"line_number":684,"context_line":"    config.extraConfig[\u0027nvp.vm-uuid\u0027] property"},{"line_number":685,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F98Eo%3D","line":682,"updated":"2013-12-04 08:51:58.000000000","message":"Please see http://www.python.org/dev/peps/pep-0257/\nThis should be:\n\"\"\"Get refe...","commit_id":"c8ce936eab9f492020dd21317c8cff9a82da018e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"67011582659b98b895845a8a4167743cc4d9227e","unresolved":false,"context_lines":[{"line_number":683,"context_line":"    Get reference to the VM through maching UUID with the"},{"line_number":684,"context_line":"    config.extraConfig[\u0027nvp.vm-uuid\u0027] property"},{"line_number":685,"context_line":"    \"\"\""},{"line_number":686,"context_line":"    vm_ref \u003d get_vm_ref_from_extraconfig(session, instance[\u0027uuid\u0027])"},{"line_number":687,"context_line":"    if not vm_ref:"},{"line_number":688,"context_line":"        LOG.debug(_(\"vm ref not found using extraConfig, checking\""},{"line_number":689,"context_line":"                    \" UUID as vm name match\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F98EU%3D","line":686,"updated":"2013-12-04 08:51:58.000000000","message":"I think that we should only use this if there is no match for the uuid and the name. My two cents is that we should use it in the worst case and not the first check.","commit_id":"c8ce936eab9f492020dd21317c8cff9a82da018e"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"a0195caef89efb2c38edda1f61e698b1f0c0ec31","unresolved":false,"context_lines":[{"line_number":625,"context_line":"                                return object.obj"},{"line_number":626,"context_line":"                            else:"},{"line_number":627,"context_line":"                                break"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"def _get_object_from_results(session, results, value, func):"},{"line_number":631,"context_line":"    while results:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F90DQ%3D","line":628,"updated":"2013-12-05 16:44:14.000000000","message":"This method concerns me. \n\nFirst, the level of nesting flags it for me as causing potential maintenance problems this is 6 levels of context in 10 lines of code. That\u0027s very dense.\n\nSecond it is making several layers of decisions and appears to be hard coded to \"config.extraConfig\" which is no where mentioned in its name or documentation so to understand you must *read* the method. \n\nThird, you should be able to test this method in isolation as a \u0027unit\u0027 which would document the anticipated data structures for results and value.\n\nI\u0027m not feeling strongly negative on this method, but I\u0027m also not very strongly positive on it either.","commit_id":"f276f7e1782ed2a3fab8104f0185c17bdbe33bea"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"41b657f1e575abd1103355493f32138f72550279","unresolved":false,"context_lines":[{"line_number":673,"context_line":"def get_vm_ref_from_extraconfig(session, instance_uuid):"},{"line_number":674,"context_line":"    \"\"\"Get reference to the VM with the uuid specified.\"\"\""},{"line_number":675,"context_line":"    vms \u003d session._call_method(vim_util, \"get_objects\","},{"line_number":676,"context_line":"                \"VirtualMachine\", [\"config.extraConfig\"])"},{"line_number":677,"context_line":"    return _get_object_from_results(session, vms, instance_uuid,"},{"line_number":678,"context_line":"                                    _get_object_for_optionvalue)"},{"line_number":679,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F91bY%3D","line":676,"updated":"2013-12-05 12:57:46.000000000","message":"Please see bug https://bugs.launchpad.net/nova/+bug/1257726 there is a nice suggestion there","commit_id":"f276f7e1782ed2a3fab8104f0185c17bdbe33bea"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"f4e66c1c75c83b3d586afcfc054d36c305c08544","unresolved":false,"context_lines":[{"line_number":612,"context_line":"            return object.obj"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"def _get_object_for_extraconfig_optionvalue(results, value):"},{"line_number":616,"context_line":"    for object in results.objects:"},{"line_number":617,"context_line":"        if hasattr(object, \"propSet\") and object.propSet:"},{"line_number":618,"context_line":"            if object.propSet[0].val.value \u003d\u003d value:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9a14%3D","line":615,"updated":"2013-12-11 18:10:31.000000000","message":"bad method name - this method doesn\u0027t do anything specific to extra config options","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"8c05e95997952dd72bfbb527c5ff0df8aaf6f771","unresolved":false,"context_lines":[{"line_number":612,"context_line":"            return object.obj"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"def _get_object_for_extraconfig_optionvalue(results, value):"},{"line_number":616,"context_line":"    for object in results.objects:"},{"line_number":617,"context_line":"        if hasattr(object, \"propSet\") and object.propSet:"},{"line_number":618,"context_line":"            if object.propSet[0].val.value \u003d\u003d value:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9XsI%3D","line":615,"in_reply_to":"AAAATn%2F9Z%2FE%3D","updated":"2013-12-12 06:12:14.000000000","message":"perhaps _get_object_for_option_value()?\nthis can be use to pull out the right object for any OptionValue, regardless of whether it came as an element of extraConfig or not.","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"d4fb52bce9228aa4558a890dbbd4c4ed5b9715b0","unresolved":false,"context_lines":[{"line_number":612,"context_line":"            return object.obj"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"def _get_object_for_extraconfig_optionvalue(results, value):"},{"line_number":616,"context_line":"    for object in results.objects:"},{"line_number":617,"context_line":"        if hasattr(object, \"propSet\") and object.propSet:"},{"line_number":618,"context_line":"            if object.propSet[0].val.value \u003d\u003d value:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9Z%2FE%3D","line":615,"in_reply_to":"AAAATn%2F9a14%3D","updated":"2013-12-11 21:03:11.000000000","message":"Well it does. The \"results\" in this case contain the property extraConfig, with value of type \"OptionValue\" instead of the primitive String type property values that are covered by the other method above this one named \"_get_object_for_value\"\n\nI am open to suggestion as to what might be a better name for this method, in case you have some suggestions.","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5f660d6f66a47dec292add060977ec238d560ea4","unresolved":false,"context_lines":[{"line_number":665,"context_line":"def get_vm_ref_from_extraconfig(session, instance_uuid):"},{"line_number":666,"context_line":"    \"\"\"Get reference to the VM with the uuid specified.\"\"\""},{"line_number":667,"context_line":"    vms \u003d session._call_method(vim_util, \"get_objects\","},{"line_number":668,"context_line":"                \"VirtualMachine\", [\"config.extraConfig[\\\"nvp.vm-uuid\\\"]\"])"},{"line_number":669,"context_line":"    return _get_object_from_results(session, vms, instance_uuid,"},{"line_number":670,"context_line":"                                    _get_object_for_extraconfig_optionvalue)"},{"line_number":671,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9d30%3D","line":668,"updated":"2013-12-11 08:01:01.000000000","message":"please consider:\n[\u0027config.extraConfig[\"nvp.vm-uuid\"]\u0027]","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"d4fb52bce9228aa4558a890dbbd4c4ed5b9715b0","unresolved":false,"context_lines":[{"line_number":665,"context_line":"def get_vm_ref_from_extraconfig(session, instance_uuid):"},{"line_number":666,"context_line":"    \"\"\"Get reference to the VM with the uuid specified.\"\"\""},{"line_number":667,"context_line":"    vms \u003d session._call_method(vim_util, \"get_objects\","},{"line_number":668,"context_line":"                \"VirtualMachine\", [\"config.extraConfig[\\\"nvp.vm-uuid\\\"]\"])"},{"line_number":669,"context_line":"    return _get_object_from_results(session, vms, instance_uuid,"},{"line_number":670,"context_line":"                                    _get_object_for_extraconfig_optionvalue)"},{"line_number":671,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9aAU%3D","line":668,"in_reply_to":"AAAATn%2F9d30%3D","updated":"2013-12-11 21:03:11.000000000","message":"Done","commit_id":"8f097fff1524d37c7a2fd27a681c88599ad78671"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"7a5cb3e0d18d6d2aebe061ec5c784d86b862d0eb","unresolved":false,"context_lines":[{"line_number":612,"context_line":"            return object.obj"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"def _get_object_for_extraconfig_optionvalue(results, value):"},{"line_number":616,"context_line":"    for object in results.objects:"},{"line_number":617,"context_line":"        if hasattr(object, \"propSet\") and object.propSet:"},{"line_number":618,"context_line":"            if object.propSet[0].val.value \u003d\u003d value:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9V3E%3D","line":615,"updated":"2013-12-12 13:47:14.000000000","message":"rename to _get_object_for_optionvalue as Vui suggested on the previous patch","commit_id":"42e7f8780f07310944961c674ed1a6d9b7ee5c60"},{"author":{"_account_id":7693,"name":"Sidharth Surana","email":"ssurana@vmware.com","username":"ssurana"},"change_message_id":"7f23883b51fcbd2e2fcccaef2b4598385493784d","unresolved":false,"context_lines":[{"line_number":612,"context_line":"            return object.obj"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"def _get_object_for_extraconfig_optionvalue(results, value):"},{"line_number":616,"context_line":"    for object in results.objects:"},{"line_number":617,"context_line":"        if hasattr(object, \"propSet\") and object.propSet:"},{"line_number":618,"context_line":"            if object.propSet[0].val.value \u003d\u003d value:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9Nm8%3D","line":615,"in_reply_to":"AAAATn%2F9V3E%3D","updated":"2013-12-13 23:38:55.000000000","message":"Done","commit_id":"42e7f8780f07310944961c674ed1a6d9b7ee5c60"}]}
