)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"20f9cded6ad084da9f58897ca52cfa9d4fe6d7f2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMware: unnecessary session reconnection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A error FAULT_NOT_AUTHENTICATED could imply that there is a problem"},{"line_number":10,"context_line":"with the backend or that no values were found (for example there are"},{"line_number":11,"context_line":"no running VMS). In the latter case the connection should not"},{"line_number":12,"context_line":"be restarted."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2Fvdo%3D","line":9,"updated":"2014-01-02 16:19:31.000000000","message":"An error","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"90169e58b5c574f9e82d9fbb9e446b135ffd03dd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMware: unnecessary session reconnection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A error FAULT_NOT_AUTHENTICATED could imply that there is a problem"},{"line_number":10,"context_line":"with the backend or that no values were found (for example there are"},{"line_number":11,"context_line":"no running VMS). In the latter case the connection should not"},{"line_number":12,"context_line":"be restarted."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2FvKo%3D","line":9,"in_reply_to":"AAAAT3%2F%2Fvdo%3D","updated":"2014-01-02 16:52:44.000000000","message":"Done","commit_id":"c639691172880da3cff376380710843d3198ac72"}],"nova/tests/virt/vmwareapi/test_error_util.py":[{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"8aaa5f0780e941b3fe6cd26103353ab2e6f52c75","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        except error_util.VimFaultException as e:"},{"line_number":39,"context_line":"            self.assertEqual(exp_fault_list, e.fault_list)"},{"line_number":40,"context_line":"        else:"},{"line_number":41,"context_line":"            self.fail(\"VimFaultException was not raised.\")"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_fault_checker_missing_props(self):"},{"line_number":44,"context_line":"        fake_objects \u003d fake.FakeRetrieveResult()"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FvsU%3D","side":"PARENT","line":41,"updated":"2014-01-08 23:11:59.000000000","message":"I suppose now we know. They really did try for a context manager and they couldn\u0027t/didn\u0027t pull it off. That explains a great many things.","commit_id":"a3d292fd2eefe4fd9020e29d26af9f733d272f19"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"20f9cded6ad084da9f58897ca52cfa9d4fe6d7f2","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               [error_util.FAULT_NOT_AUTHENTICATED],"},{"line_number":198,"context_line":"                               \"Session Invalid\")"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        self.stubs.Set(driver.VMwareAPISession, \u0027_is_vim_object\u0027,"},{"line_number":201,"context_line":"                       _fake_is_vim_object)"},{"line_number":202,"context_line":"        self.stubs.Set(driver.VMwareAPISession, \u0027_create_session\u0027,"},{"line_number":203,"context_line":"                       _fake_create_session)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2FvYw%3D","line":200,"updated":"2014-01-02 16:19:31.000000000","message":"From \"Common Review Checklist\" in https://wiki.openstack.org/wiki/ReviewChecklist, it is preferred to use mock for new test case.","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"90169e58b5c574f9e82d9fbb9e446b135ffd03dd","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               [error_util.FAULT_NOT_AUTHENTICATED],"},{"line_number":198,"context_line":"                               \"Session Invalid\")"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        self.stubs.Set(driver.VMwareAPISession, \u0027_is_vim_object\u0027,"},{"line_number":201,"context_line":"                       _fake_is_vim_object)"},{"line_number":202,"context_line":"        self.stubs.Set(driver.VMwareAPISession, \u0027_create_session\u0027,"},{"line_number":203,"context_line":"                       _fake_create_session)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2FvKg%3D","line":200,"in_reply_to":"AAAAT3%2F%2FvYw%3D","updated":"2014-01-02 16:52:44.000000000","message":"Done","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"57cf8c952a5f78cb840c226e5967f45a06cdc205","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import copy"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import contextlib"},{"line_number":27,"context_line":"import mock"},{"line_number":28,"context_line":"import mox"},{"line_number":29,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2FrRw%3D","line":26,"updated":"2014-01-03 17:07:39.000000000","message":"AFAIK, contextlib is in the standard python library","commit_id":"4a9fc931dcf2f1f33a7dca89d60ec15afa754e15"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3642d0e84e307e09e96995684c96e68e22c02810","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import copy"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import contextlib"},{"line_number":27,"context_line":"import mock"},{"line_number":28,"context_line":"import mox"},{"line_number":29,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2B5k%3D","line":26,"in_reply_to":"AAAAT3%2F%2FrRw%3D","updated":"2014-01-05 08:11:19.000000000","message":"correct. my bad","commit_id":"4a9fc931dcf2f1f33a7dca89d60ec15afa754e15"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"3055dcd640564f6f871784a87fd950ec009c2a20","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        ) as (_fake_vim, _fake_create):"},{"line_number":207,"context_line":"            api_session \u003d driver.VMwareAPISession()"},{"line_number":208,"context_line":"            api_session.count \u003d 0"},{"line_number":209,"context_line":"            args \u003d {}"},{"line_number":210,"context_line":"            kwargs \u003d {}"},{"line_number":211,"context_line":"            self.assertRaises(error_util.VimFaultException,"},{"line_number":212,"context_line":"                              api_session._call_method,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2F%2Bpc%3D","line":209,"updated":"2014-01-05 15:56:30.000000000","message":"args should be (), right?","commit_id":"9a3f13947f2e07e864aa16af0d093954931bd005"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"06d052ac16d7999604b9ffb2f1134fe5cafcf4f6","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        ) as (_fake_vim, _fake_create):"},{"line_number":207,"context_line":"            api_session \u003d driver.VMwareAPISession()"},{"line_number":208,"context_line":"            api_session.count \u003d 0"},{"line_number":209,"context_line":"            args \u003d {}"},{"line_number":210,"context_line":"            kwargs \u003d {}"},{"line_number":211,"context_line":"            self.assertRaises(error_util.VimFaultException,"},{"line_number":212,"context_line":"                              api_session._call_method,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2F%2BkI%3D","line":209,"in_reply_to":"AAAAUH%2F%2F%2Bpc%3D","updated":"2014-01-05 18:44:57.000000000","message":"Done","commit_id":"9a3f13947f2e07e864aa16af0d093954931bd005"}],"nova/virt/vmwareapi/driver.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"20f9cded6ad084da9f58897ca52cfa9d4fe6d7f2","unresolved":false,"context_lines":[{"line_number":790,"context_line":"        exc \u003d None"},{"line_number":791,"context_line":"        last_fault_list \u003d []"},{"line_number":792,"context_line":"        while True:"},{"line_number":793,"context_line":"            sleep \u003d True"},{"line_number":794,"context_line":"            try:"},{"line_number":795,"context_line":"                if not self._is_vim_object(module):"},{"line_number":796,"context_line":"                    # If it is not the first try, then get the latest"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2FvT8%3D","line":793,"updated":"2014-01-02 16:19:31.000000000","message":"The following logic is speeding up the create_session process, right? If right, then it is better to reflect this in commit message.","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4ed303fea7ff623f5be4ae4efaf33b8ea00642d8","unresolved":false,"context_lines":[{"line_number":790,"context_line":"        exc \u003d None"},{"line_number":791,"context_line":"        last_fault_list \u003d []"},{"line_number":792,"context_line":"        while True:"},{"line_number":793,"context_line":"            sleep \u003d True"},{"line_number":794,"context_line":"            try:"},{"line_number":795,"context_line":"                if not self._is_vim_object(module):"},{"line_number":796,"context_line":"                    # If it is not the first try, then get the latest"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2FsNQ%3D","line":793,"in_reply_to":"AAAAT3%2F%2Ft5U%3D","updated":"2014-01-03 12:08:14.000000000","message":"Sorry, my bad - it is on line 824","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"f14101b807fdc9f476d813f5705804592393bd0f","unresolved":false,"context_lines":[{"line_number":790,"context_line":"        exc \u003d None"},{"line_number":791,"context_line":"        last_fault_list \u003d []"},{"line_number":792,"context_line":"        while True:"},{"line_number":793,"context_line":"            sleep \u003d True"},{"line_number":794,"context_line":"            try:"},{"line_number":795,"context_line":"                if not self._is_vim_object(module):"},{"line_number":796,"context_line":"                    # If it is not the first try, then get the latest"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2Ft5U%3D","line":793,"in_reply_to":"AAAAT3%2F%2FvKI%3D","updated":"2014-01-02 23:44:11.000000000","message":"Thanks Gary, but I did not see a return [] in line 829. ;-(\n\nI see from line 819 ~ 824 , we need to compare two returns by different sessions to make sure the response is empty.","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"90169e58b5c574f9e82d9fbb9e446b135ffd03dd","unresolved":false,"context_lines":[{"line_number":790,"context_line":"        exc \u003d None"},{"line_number":791,"context_line":"        last_fault_list \u003d []"},{"line_number":792,"context_line":"        while True:"},{"line_number":793,"context_line":"            sleep \u003d True"},{"line_number":794,"context_line":"            try:"},{"line_number":795,"context_line":"                if not self._is_vim_object(module):"},{"line_number":796,"context_line":"                    # If it is not the first try, then get the latest"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2FvKI%3D","line":793,"in_reply_to":"AAAAT3%2F%2FvT8%3D","updated":"2014-01-02 16:52:44.000000000","message":"No. There are some cases that we need to return [] and not restart the connection - this is in line 829.Say for example when there are no VMs running on a host and the user does nova list.","commit_id":"c639691172880da3cff376380710843d3198ac72"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"63e882570572db3ca7709b28d7790299c704e53d","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                    # and after creating a new session, we get the same empty"},{"line_number":821,"context_line":"                    # response, then we are sure of the response being supposed"},{"line_number":822,"context_line":"                    # to be empty."},{"line_number":823,"context_line":"                    if error_util.FAULT_NOT_AUTHENTICATED in last_fault_list:"},{"line_number":824,"context_line":"                        return []"},{"line_number":825,"context_line":"                    last_fault_list \u003d excep.fault_list"},{"line_number":826,"context_line":"                    if retry_count \u003e 2:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2FtS8%3D","line":823,"updated":"2014-01-03 05:01:32.000000000","message":"When a real session related FAULT_NOT_AUTHENTICATED occurs, your change will return a empty response after two tries. This is because we are not re-creating the session in-between the first two tries. retry_count will never be more than 2.","commit_id":"d78996ce23c822e30ee34b937c2a97838d6e1306"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"57cf8c952a5f78cb840c226e5967f45a06cdc205","unresolved":false,"context_lines":[{"line_number":81,"context_line":"CONF \u003d cfg.CONF"},{"line_number":82,"context_line":"CONF.register_opts(vmwareapi_opts, \u0027vmware\u0027)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"TIME_BETWEEN_API_CALL_RETRIES \u003d 1.0"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class Failure(Exception):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2FrQ8%3D","line":84,"updated":"2014-01-03 17:07:39.000000000","message":"why do you need to change this from 2.0 to 1.0?","commit_id":"4a9fc931dcf2f1f33a7dca89d60ec15afa754e15"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3642d0e84e307e09e96995684c96e68e22c02810","unresolved":false,"context_lines":[{"line_number":81,"context_line":"CONF \u003d cfg.CONF"},{"line_number":82,"context_line":"CONF.register_opts(vmwareapi_opts, \u0027vmware\u0027)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"TIME_BETWEEN_API_CALL_RETRIES \u003d 1.0"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class Failure(Exception):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2B5g%3D","line":84,"in_reply_to":"AAAAT3%2F%2FrQ8%3D","updated":"2014-01-05 08:11:19.000000000","message":"this is the amount of time between retries. in my opinion 2 seconds is far too long. i think that we should maybe consider dropping it to 0.5. any thoughts on that?","commit_id":"4a9fc931dcf2f1f33a7dca89d60ec15afa754e15"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"3055dcd640564f6f871784a87fd950ec009c2a20","unresolved":false,"context_lines":[{"line_number":820,"context_line":"            time.sleep(TIME_BETWEEN_API_CALL_RETRIES)"},{"line_number":821,"context_line":""},{"line_number":822,"context_line":"        LOG.critical(_(\"In vmwareapi:_call_method, \""},{"line_number":823,"context_line":"                       \"got this exception: %s\"), exc)"},{"line_number":824,"context_line":"        raise"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"    def _get_vim(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2F%2BpU%3D","line":823,"updated":"2014-01-05 15:56:30.000000000","message":"This does not seems related to your patch, let us wait what others say for this.","commit_id":"9a3f13947f2e07e864aa16af0d093954931bd005"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"06d052ac16d7999604b9ffb2f1134fe5cafcf4f6","unresolved":false,"context_lines":[{"line_number":820,"context_line":"            time.sleep(TIME_BETWEEN_API_CALL_RETRIES)"},{"line_number":821,"context_line":""},{"line_number":822,"context_line":"        LOG.critical(_(\"In vmwareapi:_call_method, \""},{"line_number":823,"context_line":"                       \"got this exception: %s\"), exc)"},{"line_number":824,"context_line":"        raise"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"    def _get_vim(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2F%2BkA%3D","line":823,"in_reply_to":"AAAAUH%2F%2F%2BpU%3D","updated":"2014-01-05 18:44:57.000000000","message":"when i was testing got to this code hence i changed it. the , is preferred over the %\nthe code is invoked by the test i added","commit_id":"9a3f13947f2e07e864aa16af0d093954931bd005"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"e1d2ae6512f7059b63a6ca472e72c5fe2e2d70d0","unresolved":false,"context_lines":[{"line_number":750,"context_line":"                session \u003d self.vim.Login("},{"line_number":751,"context_line":"                               self.vim.get_service_content().sessionManager,"},{"line_number":752,"context_line":"                               userName\u003dself._host_username,"},{"line_number":753,"context_line":"                               password\u003dself._host_password)"},{"line_number":754,"context_line":"                self._session_id \u003d session.key"},{"line_number":755,"context_line":"                return"},{"line_number":756,"context_line":"            except Exception as excep:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2F2Sg%3D","line":753,"updated":"2014-01-07 18:44:56.000000000","message":"This is the right direction.","commit_id":"affff273967efdebdb05fdc4ccaa064ce60ef31b"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"8aaa5f0780e941b3fe6cd26103353ab2e6f52c75","unresolved":false,"context_lines":[{"line_number":816,"context_line":"                    # No re-trying for errors for API call has gone through"},{"line_number":817,"context_line":"                    # and is the caller\u0027s fault. Caller should handle these"},{"line_number":818,"context_line":"                    # errors. e.g, InvalidArgument fault."},{"line_number":819,"context_line":"                    break"},{"line_number":820,"context_line":"            except error_util.SessionOverLoadException as excep:"},{"line_number":821,"context_line":"                # For exceptions which may come because of session overload,"},{"line_number":822,"context_line":"                # we retry"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2Fvsw%3D","side":"PARENT","line":819,"updated":"2014-01-08 23:11:59.000000000","message":"good!","commit_id":"a3d292fd2eefe4fd9020e29d26af9f733d272f19"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"2aad187d2109737d2f2dde65ac502115069e44f2","unresolved":false,"context_lines":[{"line_number":744,"context_line":"                        # SessionIsActive, but that is an overhead because we"},{"line_number":745,"context_line":"                        # anyway would have to call TerminateSession."},{"line_number":746,"context_line":"                        LOG.debug(excep)"},{"line_number":747,"context_line":"                # Login and setup the session with the host for making"},{"line_number":748,"context_line":"                # API calls"},{"line_number":749,"context_line":"                self.vim \u003d self._get_vim_object()"},{"line_number":750,"context_line":"                session \u003d self.vim.Login("}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FiBo%3D","line":747,"updated":"2014-01-12 11:35:56.000000000","message":"Do we need to move this code down?\nBecause of this change, will the above TerminateSession call results in an exception, at least occasionally?\nThe doc says \"InvalidArgument--Thrown if a sessionId matches the current session. Use the logout method to terminate the current session.\"\n\nSo if we don\u0027t login before terminate, the session id for terminate is always the current session id (probably an expired one), right?","commit_id":"d227761989027a7a26204a963c9ffb3d73a13623"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"8aaa5f0780e941b3fe6cd26103353ab2e6f52c75","unresolved":false,"context_lines":[{"line_number":750,"context_line":"                session \u003d self.vim.Login("},{"line_number":751,"context_line":"                               self.vim.get_service_content().sessionManager,"},{"line_number":752,"context_line":"                               userName\u003dself._host_username,"},{"line_number":753,"context_line":"                               password\u003dself._host_password)"},{"line_number":754,"context_line":"                self._session_id \u003d session.key"},{"line_number":755,"context_line":"                return"},{"line_number":756,"context_line":"            except Exception as excep:"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2Fvs0%3D","line":753,"updated":"2014-01-08 23:11:59.000000000","message":"good.","commit_id":"d227761989027a7a26204a963c9ffb3d73a13623"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"149e5f450daa7aa28a63e37ea020f0e144c60fa4","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        \"\"\""},{"line_number":777,"context_line":"        args \u003d list(args)"},{"line_number":778,"context_line":"        retry_count \u003d 0"},{"line_number":779,"context_line":"        exc \u003d None"},{"line_number":780,"context_line":"        last_fault_list \u003d []"},{"line_number":781,"context_line":"        while True:"},{"line_number":782,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FsyQ%3D","line":779,"updated":"2014-01-09 13:52:14.000000000","message":"unused variable","commit_id":"d227761989027a7a26204a963c9ffb3d73a13623"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3ebf6dfde438cc5b60c7e4f5e0922e4c00f2f6c6","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        \"\"\""},{"line_number":777,"context_line":"        args \u003d list(args)"},{"line_number":778,"context_line":"        retry_count \u003d 0"},{"line_number":779,"context_line":"        exc \u003d None"},{"line_number":780,"context_line":"        last_fault_list \u003d []"},{"line_number":781,"context_line":"        while True:"},{"line_number":782,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FrFA%3D","line":779,"in_reply_to":"AAAAUH%2F%2FsyQ%3D","updated":"2014-01-09 19:25:14.000000000","message":"Done","commit_id":"d227761989027a7a26204a963c9ffb3d73a13623"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"25780d3f117e2d089513ab0a77d98a128448447c","unresolved":false,"context_lines":[{"line_number":805,"context_line":"            except error_util.SessionConnectionException as excep:"},{"line_number":806,"context_line":"                # For exceptions with connections we create the session"},{"line_number":807,"context_line":"                exc \u003d excep"},{"line_number":808,"context_line":"                self._create_session()"},{"line_number":809,"context_line":"            except Exception as excep:"},{"line_number":810,"context_line":"                # If it is a proper exception, say not having furnished"},{"line_number":811,"context_line":"                # proper data in the SOAP call or the retry limit having"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2FrCc%3D","line":808,"updated":"2014-01-09 19:34:07.000000000","message":"hmm... this monster *is* a gigantic retry.\n\nBut, I worry spawning new sessions right after a failure might cause timing problems. Put a sleep here?","commit_id":"a2b1ccd08a9b77f8478e49fc5fe3f7653f1ea501"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"384c7f78cd66b9d642a071ad27cdfe417ae096e6","unresolved":false,"context_lines":[{"line_number":805,"context_line":"            except error_util.SessionConnectionException as excep:"},{"line_number":806,"context_line":"                # For exceptions with connections we create the session"},{"line_number":807,"context_line":"                exc \u003d excep"},{"line_number":808,"context_line":"                self._create_session()"},{"line_number":809,"context_line":"            except Exception as excep:"},{"line_number":810,"context_line":"                # If it is a proper exception, say not having furnished"},{"line_number":811,"context_line":"                # proper data in the SOAP call or the retry limit having"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUH%2F%2FowE%3D","line":808,"in_reply_to":"AAAAUH%2F%2FrCc%3D","updated":"2014-01-10 08:25:35.000000000","message":"the create_session has its own retry mechanism - https://github.com/openstack/nova/blob/master/nova/virt/vmwareapi/driver.py#L761\ni do not think that we need to delay that.","commit_id":"a2b1ccd08a9b77f8478e49fc5fe3f7653f1ea501"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"b7d433d6a87db3db9cf16fc89476813099674903","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        self._host_password \u003d password"},{"line_number":715,"context_line":"        self._api_retry_count \u003d retry_count"},{"line_number":716,"context_line":"        self._scheme \u003d scheme"},{"line_number":717,"context_line":"        self._session \u003d None"},{"line_number":718,"context_line":"        self.vim \u003d None"},{"line_number":719,"context_line":"        self._create_session()"},{"line_number":720,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYdY%3D","line":717,"updated":"2014-01-14 11:50:26.000000000","message":"We can also use  self._host_username for the SessionIsActive call. In that case we don\u0027t have to save the session.","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"297ba6db1f63508d1868b71743d1fd53e1298d2d","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        self._host_password \u003d password"},{"line_number":715,"context_line":"        self._api_retry_count \u003d retry_count"},{"line_number":716,"context_line":"        self._scheme \u003d scheme"},{"line_number":717,"context_line":"        self._session \u003d None"},{"line_number":718,"context_line":"        self.vim \u003d None"},{"line_number":719,"context_line":"        self._create_session()"},{"line_number":720,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYWk%3D","line":717,"in_reply_to":"AAAAUH%2F%2FYdY%3D","updated":"2014-01-14 12:18:00.000000000","message":"Done","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"11b460b9356e2adefef956eeebb32743dcf670ad","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                            return []"},{"line_number":814,"context_line":"                    except Exception as e:"},{"line_number":815,"context_line":"                        LOG.debug(_(\"Unable to check if session is active!\"))"},{"line_number":816,"context_line":"                    last_fault_list \u003d excep.fault_list"},{"line_number":817,"context_line":"                    self._create_session()"},{"line_number":818,"context_line":"                else:"},{"line_number":819,"context_line":"                    # No re-trying for errors for API call has gone through"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYj0%3D","line":816,"updated":"2014-01-14 11:39:53.000000000","message":"unused variable last_fault_list?","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"297ba6db1f63508d1868b71743d1fd53e1298d2d","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                            return []"},{"line_number":814,"context_line":"                    except Exception as e:"},{"line_number":815,"context_line":"                        LOG.debug(_(\"Unable to check if session is active!\"))"},{"line_number":816,"context_line":"                    last_fault_list \u003d excep.fault_list"},{"line_number":817,"context_line":"                    self._create_session()"},{"line_number":818,"context_line":"                else:"},{"line_number":819,"context_line":"                    # No re-trying for errors for API call has gone through"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYWg%3D","line":816,"in_reply_to":"AAAAUH%2F%2FYj0%3D","updated":"2014-01-14 12:18:00.000000000","message":"Done","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"}],"nova/virt/vmwareapi/error_util.py":[{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"e1d2ae6512f7059b63a6ca472e72c5fe2e2d70d0","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            # not the case with a timed out idle session. It is as bad as a"},{"line_number":84,"context_line":"            # terminated session for we cannot use the session. So setting"},{"line_number":85,"context_line":"            # fault to NotAuthenticated fault."},{"line_number":86,"context_line":"            fault_list \u003d [\"NotAuthenticated\"]"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            for obj_cont in resp_obj.objects:"},{"line_number":89,"context_line":"                if hasattr(obj_cont, \"missingSet\"):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2F2SA%3D","side":"PARENT","line":86,"updated":"2014-01-07 18:44:56.000000000","message":"This never necessarily meant the user was logged out. It could have meant another type of error.","commit_id":"03b267f26c22d9c45f86f6c14fe16e84ad71f5df"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"e1d2ae6512f7059b63a6ca472e72c5fe2e2d70d0","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SessionConnectionException(VimException):"},{"line_number":48,"context_line":"    \"\"\"Session Connection Exception.\"\"\""},{"line_number":49,"context_line":"    pass"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class VimAttributeError(VimException):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2F2R8%3D","line":49,"updated":"2014-01-07 18:44:56.000000000","message":"Good.","commit_id":"affff273967efdebdb05fdc4ccaa064ce60ef31b"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"e1d2ae6512f7059b63a6ca472e72c5fe2e2d70d0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        fault_list \u003d []"},{"line_number":84,"context_line":"        if not resp_obj:"},{"line_number":85,"context_line":"            return"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            for obj_cont in resp_obj.objects:"},{"line_number":88,"context_line":"                if hasattr(obj_cont, \"missingSet\"):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2F2SQ%3D","line":85,"updated":"2014-01-07 18:44:56.000000000","message":"good. This is better.","commit_id":"affff273967efdebdb05fdc4ccaa064ce60ef31b"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"8aaa5f0780e941b3fe6cd26103353ab2e6f52c75","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            # not the case with a timed out idle session. It is as bad as a"},{"line_number":84,"context_line":"            # terminated session for we cannot use the session. So setting"},{"line_number":85,"context_line":"            # fault to NotAuthenticated fault."},{"line_number":86,"context_line":"            fault_list \u003d [\"NotAuthenticated\"]"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            for obj_cont in resp_obj.objects:"},{"line_number":89,"context_line":"                if hasattr(obj_cont, \"missingSet\"):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2Fvs4%3D","side":"PARENT","line":86,"updated":"2014-01-08 23:11:59.000000000","message":"good.","commit_id":"a3d292fd2eefe4fd9020e29d26af9f733d272f19"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"11b460b9356e2adefef956eeebb32743dcf670ad","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.openstack.common.gettextutils import _"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"FAULT_NOT_AUTHENTICATED \u003d \"NotAuthenticated\""},{"line_number":27,"context_line":"FAULT_ALREADY_EXISTS \u003d \"AlreadyExists\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYik%3D","line":26,"updated":"2014-01-14 11:39:53.000000000","message":"Are we using this somewhere?","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"11b460b9356e2adefef956eeebb32743dcf670ad","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            # the returnval field has the specifics about the error, but that\u0027s"},{"line_number":88,"context_line":"            # not the case with a timed out idle session. It is as bad as a"},{"line_number":89,"context_line":"            # terminated session for we cannot use the session. So setting"},{"line_number":90,"context_line":"            # fault to NotAuthenticated fault."},{"line_number":91,"context_line":"            fault_list \u003d [\"NotAuthenticated\"]"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            for obj_cont in resp_obj.objects:"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYjI%3D","line":90,"updated":"2014-01-14 11:39:53.000000000","message":"Use the constant FAULT_NOT_AUTHENTICATED, because that is what is referred in VMwareAPISession._call_method","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"297ba6db1f63508d1868b71743d1fd53e1298d2d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            # the returnval field has the specifics about the error, but that\u0027s"},{"line_number":88,"context_line":"            # not the case with a timed out idle session. It is as bad as a"},{"line_number":89,"context_line":"            # terminated session for we cannot use the session. So setting"},{"line_number":90,"context_line":"            # fault to NotAuthenticated fault."},{"line_number":91,"context_line":"            fault_list \u003d [\"NotAuthenticated\"]"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            for obj_cont in resp_obj.objects:"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2FYWs%3D","line":90,"in_reply_to":"AAAAUH%2F%2FYjI%3D","updated":"2014-01-14 12:18:00.000000000","message":"Done","commit_id":"c46474cbbcc2e8ef0870bc0d45052df6cc5e1d44"}],"nova/virt/vmwareapi/vim.py":[{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"e1d2ae6512f7059b63a6ca472e72c5fe2e2d70d0","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                # To check for the faults that are part of the message body"},{"line_number":181,"context_line":"                # and not returned as Fault object response from the ESX"},{"line_number":182,"context_line":"                # SOAP server"},{"line_number":183,"context_line":"                if (response and"},{"line_number":184,"context_line":"                        hasattr(error_util.FaultCheckers,"},{"line_number":185,"context_line":"                                attr_name.lower() + \"_fault_checker\")):"},{"line_number":186,"context_line":"                    fault_checker \u003d getattr(error_util.FaultCheckers,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2F2R0%3D","line":183,"updated":"2014-01-07 18:44:56.000000000","message":"better. Is there a response code we can get at?","commit_id":"affff273967efdebdb05fdc4ccaa064ce60ef31b"}]}
