)]}'
{"nova/virt/vmwareapi/driver.py":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":744,"context_line":"        \"\"\"Create the PBM Object instance.\"\"\""},{"line_number":745,"context_line":"        if CONF.vmware.pbm_wsdl_location:"},{"line_number":746,"context_line":"            pbm_url \u003d self.vim.get_soap_url(self._scheme,"},{"line_number":747,"context_line":"                                            self._host_ip) + \u0027/pbm\u0027"},{"line_number":748,"context_line":"            return pbm.PBMClient(self.vim, pbm_url,"},{"line_number":749,"context_line":"                                 CONF.vmware.pbm_wsdl_location)"},{"line_number":750,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByDk%3D","line":747,"updated":"2014-01-22 07:36:26.000000000","message":"This needs to be get_soap_url(self._scheme, self._host_ip).replace(\u0027/sdk\u0027,\u0027/pbm\u0027) or constructed in a different way so that pbm_url \u003d https://\u003cvc_ip\u003e/pbm.\n\nCurrently, this is https://\u003cvc_ip\u003e/sdk/pbm","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":744,"context_line":"        \"\"\"Create the PBM Object instance.\"\"\""},{"line_number":745,"context_line":"        if CONF.vmware.pbm_wsdl_location:"},{"line_number":746,"context_line":"            pbm_url \u003d self.vim.get_soap_url(self._scheme,"},{"line_number":747,"context_line":"                                            self._host_ip) + \u0027/pbm\u0027"},{"line_number":748,"context_line":"            return pbm.PBMClient(self.vim, pbm_url,"},{"line_number":749,"context_line":"                                 CONF.vmware.pbm_wsdl_location)"},{"line_number":750,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxok%3D","line":747,"in_reply_to":"AAAAUH%2F%2ByDk%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":779,"context_line":"                        LOG.debug(excep)"},{"line_number":780,"context_line":"                self._session \u003d session"},{"line_number":781,"context_line":"                self._pbm \u003d self._get_pbm_object()"},{"line_number":782,"context_line":"                if self._pbm:"},{"line_number":783,"context_line":"                    self._pbm.set_cookie()"},{"line_number":784,"context_line":"                return"},{"line_number":785,"context_line":"            except Exception as excep:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByDA%3D","line":782,"updated":"2014-01-22 07:36:26.000000000","message":"L782 - L784: This will not work, as self._pbm will rather invoke the vim_request_handler in__getattr__ method of Vim Object with no arguments. This can be modified to :-\nif CONF.vmware.pbm_wsdl_location:\n                    self.pbm \u003d self._get_pbm_object()\n                    self.pbm.set_cookie()\nreturn","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":779,"context_line":"                        LOG.debug(excep)"},{"line_number":780,"context_line":"                self._session \u003d session"},{"line_number":781,"context_line":"                self._pbm \u003d self._get_pbm_object()"},{"line_number":782,"context_line":"                if self._pbm:"},{"line_number":783,"context_line":"                    self._pbm.set_cookie()"},{"line_number":784,"context_line":"                return"},{"line_number":785,"context_line":"            except Exception as excep:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxmc%3D","line":782,"in_reply_to":"AAAAUH%2F%2BxyU%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"2d3bd2f4e254be939828ee26045b55eea544d7c3","unresolved":false,"context_lines":[{"line_number":779,"context_line":"                        LOG.debug(excep)"},{"line_number":780,"context_line":"                self._session \u003d session"},{"line_number":781,"context_line":"                self._pbm \u003d self._get_pbm_object()"},{"line_number":782,"context_line":"                if self._pbm:"},{"line_number":783,"context_line":"                    self._pbm.set_cookie()"},{"line_number":784,"context_line":"                return"},{"line_number":785,"context_line":"            except Exception as excep:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BxyU%3D","line":782,"in_reply_to":"AAAAUH%2F%2ByDA%3D","updated":"2014-01-22 08:43:52.000000000","message":"The only difference I see is that, pbm() is a method in cinder implementation with @property decorator, which can explain the behavior.","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"a848843a05b21a397145f6a58de3b91cb764dd45","unresolved":false,"context_lines":[{"line_number":879,"context_line":"                    # vim object"},{"line_number":880,"context_line":"                    if retry_count \u003e 0:"},{"line_number":881,"context_line":"                        args \u003d args[1:]"},{"line_number":882,"context_line":"                    args \u003d [self.vim] + args"},{"line_number":883,"context_line":"                retry_count +\u003d 1"},{"line_number":884,"context_line":"                temp_module \u003d module"},{"line_number":885,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1ae5cdf2_03e977b6","line":882,"updated":"2014-06-13 14:14:04.000000000","message":"the retry mechanism won\u0027t work for PBM because we always call VIM","commit_id":"fba2ac94b8d0b24e6e97d23a6be50542354b85b9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"132602f39e04a20b532b876368e2eeddb268959b","unresolved":false,"context_lines":[{"line_number":879,"context_line":"                    # vim object"},{"line_number":880,"context_line":"                    if retry_count \u003e 0:"},{"line_number":881,"context_line":"                        args \u003d args[1:]"},{"line_number":882,"context_line":"                    args \u003d [self.vim] + args"},{"line_number":883,"context_line":"                retry_count +\u003d 1"},{"line_number":884,"context_line":"                temp_module \u003d module"},{"line_number":885,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1ae5cdf2_6a012b04","line":882,"in_reply_to":"1ae5cdf2_03e977b6","updated":"2014-06-13 14:30:56.000000000","message":"line 873 should deal with that","commit_id":"fba2ac94b8d0b24e6e97d23a6be50542354b85b9"}],"nova/virt/vmwareapi/pbm.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"c3a84b3a85b70684ab9a089b569c5b95f1958103","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 VMware, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FneU%3D","line":1,"updated":"2014-02-11 23:43:59.000000000","message":"please rename the file to spbm.py","commit_id":"67e28fab3f4b2b5ca7f25153ddf53a4ae3630397"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"137c6b1b932b5f135f09ca3910434f6ae4902bf0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 VMware, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FbZg%3D","line":1,"in_reply_to":"AAAAUX%2F%2FneU%3D","updated":"2014-02-13 09:25:18.000000000","message":"Following the comments below I am not sure if this is required. What do you think?","commit_id":"67e28fab3f4b2b5ca7f25153ddf53a4ae3630397"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"c3a84b3a85b70684ab9a089b569c5b95f1958103","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":"SERVICE_INSTANCE \u003d \u0027ServiceInstance\u0027"},{"line_number":29,"context_line":"SERVICE_TYPE \u003d \u0027PbmServiceInstance\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class PBMClient(vim_module.Vim):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FneM%3D","line":29,"updated":"2014-02-11 23:43:59.000000000","message":"SpbmServiceInstance","commit_id":"67e28fab3f4b2b5ca7f25153ddf53a4ae3630397"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"137c6b1b932b5f135f09ca3910434f6ae4902bf0","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":"SERVICE_INSTANCE \u003d \u0027ServiceInstance\u0027"},{"line_number":29,"context_line":"SERVICE_TYPE \u003d \u0027PbmServiceInstance\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class PBMClient(vim_module.Vim):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FbZ4%3D","line":29,"in_reply_to":"AAAAUX%2F%2FneM%3D","updated":"2014-02-13 09:25:18.000000000","message":"The external user facing API is called PbmServiceInstance. Please see: http://pubs.vmware.com/vsphere-55/index.jsp?topic\u003d%2Fcom.vmware.vspsdk.apiref.doc%2Fright-pane.html\nWe are unable to change this","commit_id":"67e28fab3f4b2b5ca7f25153ddf53a4ae3630397"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"c3a84b3a85b70684ab9a089b569c5b95f1958103","unresolved":false,"context_lines":[{"line_number":29,"context_line":"SERVICE_TYPE \u003d \u0027PbmServiceInstance\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class PBMClient(vim_module.Vim):"},{"line_number":33,"context_line":"    \"\"\"Sets up a client to interact with the vSphere PBM APIs."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    This client piggy backs on Vim object\u0027s authenticated cookie to invoke"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2Fnec%3D","line":32,"updated":"2014-02-11 23:43:59.000000000","message":"Please rename this to SPBMClient.\nPBM is another feature. We do not want to talk of PBM here.\nThis might be extremely confusing.\n\nThanks","commit_id":"67e28fab3f4b2b5ca7f25153ddf53a4ae3630397"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1533afca42c8deea3d3ec1d84b71802be5437416","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self._sc \u003d self._client.service.PbmRetrieveServiceContent(si_moref)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @staticmethod"},{"line_number":65,"context_line":"    def _copy_client_cookie(vimSession, pbmClient):"},{"line_number":66,"context_line":"        \"\"\"Copy the vim session cookie to pbm client soap header."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        :param vimSession: an vim session authenticated with VC/ESX"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2F4YE%3D","line":65,"updated":"2014-03-04 09:41:18.000000000","message":"Why is this static?\n\ndef _copy_client_cookie(self, vimSession):","commit_id":"42fcf4f268fcc4319579ca30f8a59b894fe674b2"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1533afca42c8deea3d3ec1d84b71802be5437416","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        pbmClient.set_options(soapheaders\u003dvcc)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @staticmethod"},{"line_number":76,"context_line":"    def _get_vc_session_cookie(vimSession):"},{"line_number":77,"context_line":"        \"\"\"Look for vmware_soap_session cookie in vimSession.\"\"\""},{"line_number":78,"context_line":"        cookies \u003d vimSession.client.options.transport.cookiejar"},{"line_number":79,"context_line":"        for c in cookies:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2F4Ro%3D","line":76,"updated":"2014-03-04 09:41:18.000000000","message":"This should be a method on Vim: get_session_cookie()","commit_id":"42fcf4f268fcc4319579ca30f8a59b894fe674b2"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1533afca42c8deea3d3ec1d84b71802be5437416","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def set_cookie(self):"},{"line_number":92,"context_line":"        \"\"\"Set the authenticated vim session cookie in this pbm client.\"\"\""},{"line_number":93,"context_line":"        PBMClient._copy_client_cookie(self._vimSession, self.client)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2F4bU%3D","line":93,"updated":"2014-03-04 09:41:18.000000000","message":"There\u0027s an architectural problem here. self._vimSession may have expired and been replaced since it was passed in at object creation. Also, it may expire or fail during the operation, and there\u0027s no mechanism to refresh it. This needs a rethink.","commit_id":"42fcf4f268fcc4319579ca30f8a59b894fe674b2"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"a848843a05b21a397145f6a58de3b91cb764dd45","unresolved":false,"context_lines":[{"line_number":33,"context_line":"SERVICE_TYPE \u003d \u0027PbmServiceInstance\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class PBMClient(vim_module.Vim):"},{"line_number":37,"context_line":"    \"\"\"Sets up a client to interact with the vSphere PBM APIs."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    This client piggy backs on Vim object\u0027s authenticated cookie to invoke"}],"source_content_type":"text/x-python","patch_set":19,"id":"1ae5cdf2_47eaaad8","line":36,"updated":"2014-06-13 14:14:04.000000000","message":"I think that inheriting from Vim is a design mistake. The PBM managed objects in vSphere are completely unrelated to VIM managed objects and this will create a lot of confusion.\n\nI think we should factor out the call mechanism and reuse it in both Vim and Pbm.","commit_id":"fba2ac94b8d0b24e6e97d23a6be50542354b85b9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"132602f39e04a20b532b876368e2eeddb268959b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"SERVICE_TYPE \u003d \u0027PbmServiceInstance\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class PBMClient(vim_module.Vim):"},{"line_number":37,"context_line":"    \"\"\"Sets up a client to interact with the vSphere PBM APIs."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    This client piggy backs on Vim object\u0027s authenticated cookie to invoke"}],"source_content_type":"text/x-python","patch_set":19,"id":"1ae5cdf2_ea145b45","line":36,"in_reply_to":"1ae5cdf2_47eaaad8","updated":"2014-06-13 14:30:56.000000000","message":"good point.","commit_id":"fba2ac94b8d0b24e6e97d23a6be50542354b85b9"}],"nova/virt/vmwareapi/pbm_util.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1533afca42c8deea3d3ec1d84b71802be5437416","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    profile_manager \u003d pbm.service_content.profileManager"},{"line_number":33,"context_line":"    res_type \u003d pbm.client.factory.create(\u0027ns0:PbmProfileResourceType\u0027)"},{"line_number":34,"context_line":"    res_type.resourceType \u003d \u0027STORAGE\u0027"},{"line_number":35,"context_line":"    profileIds \u003d session._call_method(pbm, \u0027PbmQueryProfile\u0027,"},{"line_number":36,"context_line":"                                      profile_manager,"},{"line_number":37,"context_line":"                                      resourceType\u003dres_type)"},{"line_number":38,"context_line":"    LOG.debug(_(\"Got profile IDs: %s\"), profileIds)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2F4UY%3D","line":35,"updated":"2014-03-04 09:41:18.000000000","message":"Work through this:\n\n* pbm is a reference to the current pbm object creation by VMwareAPISession\n* We do session._call_method(pbm, ...) and the session fails\n* _call_method() catches the failure and creates a new vim and a new pbm\n* _call_method() re-executes with the *same* pbm we originally passed in\n\nAs it happens, this is also a bug anywhere we do session._call_method(vim, ...), because the vim object will not be replaced.\n\nHowever, with pbm the situation is more complex. We have a dependency relationship between vim and pbm which is not modelled by the data structure. Currently we\u0027re relying on the caller to work out under what circumstances the current reference to a pbm object should be discarded as being out of date. This strongly suggests to me that we should be doing one of the following:\n\n* The pbm object becomes persistent, and updates itself as necessary\n* The pbm object should never be exposed to the user\n\nAnything else adds a usage complexity which invites a family of hard to spot bugs.\n\nKnowing full well how popular this is likely to be, I think we need to take the time to fix this properly for Vim first before adding pbm.","commit_id":"42fcf4f268fcc4319579ca30f8a59b894fe674b2"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"a848843a05b21a397145f6a58de3b91cb764dd45","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    profileIds \u003d session._call_method(session._pbm, \u0027PbmQueryProfile\u0027,"},{"line_number":36,"context_line":"                                      profile_manager,"},{"line_number":37,"context_line":"                                      resourceType\u003dres_type)"},{"line_number":38,"context_line":"    LOG.debug(_(\"Got profile IDs: %s\"), profileIds)"},{"line_number":39,"context_line":"    return session._call_method(session._pbm, \u0027PbmRetrieveContent\u0027,"},{"line_number":40,"context_line":"                                profile_manager,"},{"line_number":41,"context_line":"                                profileIds\u003dprofileIds)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1ae5cdf2_07cb4272","line":38,"updated":"2014-06-13 14:14:04.000000000","message":"nit: we shouldn\u0027t translate debug logs","commit_id":"fba2ac94b8d0b24e6e97d23a6be50542354b85b9"}],"nova/virt/vmwareapi/vim.py":[{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"84e94fbe1e7018eb5bef3d36cc69d95d493f4bc8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    def retrieve_service_content(self):"},{"line_number":121,"context_line":"        return self.RetrieveServiceContent(\"ServiceInstance\")"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @staticmethod"},{"line_number":124,"context_line":"    def get_wsdl_url(protocol, host_name):"},{"line_number":125,"context_line":"        \"\"\""},{"line_number":126,"context_line":"        allows override of the wsdl location, making this static"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAU3%2F%2FZa8%3D","side":"PARENT","line":123,"updated":"2014-02-26 21:18:18.000000000","message":"why remove this?","commit_id":"b40f2d79aa07cdc970184c5e8611e450737fa9eb"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"886eb8f3d445c2ddac92482770168d6838e7a118","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    def retrieve_service_content(self):"},{"line_number":121,"context_line":"        return self.RetrieveServiceContent(\"ServiceInstance\")"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @staticmethod"},{"line_number":124,"context_line":"    def get_wsdl_url(protocol, host_name):"},{"line_number":125,"context_line":"        \"\"\""},{"line_number":126,"context_line":"        allows override of the wsdl location, making this static"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2F8v8%3D","side":"PARENT","line":123,"in_reply_to":"AAAAU3%2F%2FZa8%3D","updated":"2014-03-03 08:37:31.000000000","message":"it was removed as it is no longer static with this change set. tgis is used with the spbm code too","commit_id":"b40f2d79aa07cdc970184c5e8611e450737fa9eb"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"84e94fbe1e7018eb5bef3d36cc69d95d493f4bc8","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        # calculate default WSDL location if no override supplied"},{"line_number":140,"context_line":"        return Vim.get_soap_url(protocol, host_name) + \"/vimService.wsdl\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @staticmethod"},{"line_number":143,"context_line":"    def get_soap_url(protocol, host_name):"},{"line_number":144,"context_line":"        \"\"\""},{"line_number":145,"context_line":"        Calculates the location of the SOAP services"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAU3%2F%2FZbg%3D","side":"PARENT","line":142,"updated":"2014-02-26 21:18:18.000000000","message":"why remove this?","commit_id":"b40f2d79aa07cdc970184c5e8611e450737fa9eb"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"886eb8f3d445c2ddac92482770168d6838e7a118","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        # calculate default WSDL location if no override supplied"},{"line_number":140,"context_line":"        return Vim.get_soap_url(protocol, host_name) + \"/vimService.wsdl\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @staticmethod"},{"line_number":143,"context_line":"    def get_soap_url(protocol, host_name):"},{"line_number":144,"context_line":"        \"\"\""},{"line_number":145,"context_line":"        Calculates the location of the SOAP services"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2F8v4%3D","side":"PARENT","line":142,"in_reply_to":"AAAAU3%2F%2FZbg%3D","updated":"2014-03-03 08:37:31.000000000","message":"ditto","commit_id":"b40f2d79aa07cdc970184c5e8611e450737fa9eb"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"84e94fbe1e7018eb5bef3d36cc69d95d493f4bc8","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        if utils.is_valid_ipv6(host_name):"},{"line_number":152,"context_line":"            return \u0027%s://[%s]/%s\u0027 % (protocol, host_name, path)"},{"line_number":153,"context_line":"        return \u0027%s://%s/%s\u0027 % (protocol, host_name, path)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def get_service_content(self):"},{"line_number":156,"context_line":"        \"\"\"Gets the service content object.\"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAU3%2F%2FZYk%3D","line":153,"updated":"2014-02-26 21:18:18.000000000","message":"this is a good change, but I don\u0027t understand why it\u0027s linked to the change above. You can add the sdk parameter without removing the static method decorators. Explaining this would really help me out.\n\nThanks.","commit_id":"b4f4cad1589c033e3082ab3e1e5df46239ceedc4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"886eb8f3d445c2ddac92482770168d6838e7a118","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        if utils.is_valid_ipv6(host_name):"},{"line_number":152,"context_line":"            return \u0027%s://[%s]/%s\u0027 % (protocol, host_name, path)"},{"line_number":153,"context_line":"        return \u0027%s://%s/%s\u0027 % (protocol, host_name, path)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def get_service_content(self):"},{"line_number":156,"context_line":"        \"\"\"Gets the service content object.\"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2F8vU%3D","line":153,"in_reply_to":"AAAAU3%2F%2FZYk%3D","updated":"2014-03-03 08:37:31.000000000","message":"the path for the spbm is different. the purpose of this change was to reuse code and not have to duplicate it, hence the variable path parameter","commit_id":"b4f4cad1589c033e3082ab3e1e5df46239ceedc4"}],"nova/virt/vmwareapi/volume_util.py":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"be3cf5dc7558a896b43a9f83cdec26cd1bcdeada","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        return -1"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"def get_all_profiles(session):"},{"line_number":179,"context_line":"    \"\"\"Get all profiles defined in current VC."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    :return: PbmProfile data objects from VC"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B0nM%3D","line":178,"updated":"2014-01-21 18:49:21.000000000","message":"would it be better to move this to a new file pbm_util ? In that case, we can use these methods in vm_util. Currently, it\u0027s not possible due to circular dependency.","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        return -1"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"def get_all_profiles(session):"},{"line_number":179,"context_line":"    \"\"\"Get all profiles defined in current VC."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    :return: PbmProfile data objects from VC"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxj4%3D","line":178,"in_reply_to":"AAAAUH%2F%2B0nM%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    :return: PbmProfile data objects from VC"},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":"    LOG.debug(_(\"Get all profiles defined in current VC.\"))"},{"line_number":184,"context_line":"    pbm \u003d session.pbm"},{"line_number":185,"context_line":"    profile_manager \u003d pbm.service_content.profileManager"},{"line_number":186,"context_line":"    res_type \u003d pbm.client.factory.create(\u0027ns0:PbmProfileResourceType\u0027)"},{"line_number":187,"context_line":"    res_type.resourceType \u003d \u0027STORAGE\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByB0%3D","line":184,"updated":"2014-01-22 07:36:26.000000000","message":"This should be session._pbm","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    :return: PbmProfile data objects from VC"},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":"    LOG.debug(_(\"Get all profiles defined in current VC.\"))"},{"line_number":184,"context_line":"    pbm \u003d session.pbm"},{"line_number":185,"context_line":"    profile_manager \u003d pbm.service_content.profileManager"},{"line_number":186,"context_line":"    res_type \u003d pbm.client.factory.create(\u0027ns0:PbmProfileResourceType\u0027)"},{"line_number":187,"context_line":"    res_type.resourceType \u003d \u0027STORAGE\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxj0%3D","line":184,"in_reply_to":"AAAAUH%2F%2ByB0%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    profile_manager \u003d pbm.service_content.profileManager"},{"line_number":186,"context_line":"    res_type \u003d pbm.client.factory.create(\u0027ns0:PbmProfileResourceType\u0027)"},{"line_number":187,"context_line":"    res_type.resourceType \u003d \u0027STORAGE\u0027"},{"line_number":188,"context_line":"    profileIds \u003d session.invoke_api(pbm, \u0027PbmQueryProfile\u0027,"},{"line_number":189,"context_line":"                                    profile_manager,"},{"line_number":190,"context_line":"                                    resourceType\u003dres_type)"},{"line_number":191,"context_line":"    LOG.info(_(\"Got profile IDs: %s\"), profileIds)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByBw%3D","line":188,"updated":"2014-01-22 07:36:26.000000000","message":"This should be session._call_method instead of invoke_api","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    profile_manager \u003d pbm.service_content.profileManager"},{"line_number":186,"context_line":"    res_type \u003d pbm.client.factory.create(\u0027ns0:PbmProfileResourceType\u0027)"},{"line_number":187,"context_line":"    res_type.resourceType \u003d \u0027STORAGE\u0027"},{"line_number":188,"context_line":"    profileIds \u003d session.invoke_api(pbm, \u0027PbmQueryProfile\u0027,"},{"line_number":189,"context_line":"                                    profile_manager,"},{"line_number":190,"context_line":"                                    resourceType\u003dres_type)"},{"line_number":191,"context_line":"    LOG.info(_(\"Got profile IDs: %s\"), profileIds)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxjw%3D","line":188,"in_reply_to":"AAAAUH%2F%2ByBw%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                    profile_manager,"},{"line_number":190,"context_line":"                                    resourceType\u003dres_type)"},{"line_number":191,"context_line":"    LOG.info(_(\"Got profile IDs: %s\"), profileIds)"},{"line_number":192,"context_line":"    return session.invoke_api(pbm, \u0027PbmRetrieveContent\u0027,"},{"line_number":193,"context_line":"                              profile_manager,"},{"line_number":194,"context_line":"                              profileIds\u003dprofileIds)"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByBs%3D","line":192,"updated":"2014-01-22 07:36:26.000000000","message":"session._call_method","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                    profile_manager,"},{"line_number":190,"context_line":"                                    resourceType\u003dres_type)"},{"line_number":191,"context_line":"    LOG.info(_(\"Got profile IDs: %s\"), profileIds)"},{"line_number":192,"context_line":"    return session.invoke_api(pbm, \u0027PbmRetrieveContent\u0027,"},{"line_number":193,"context_line":"                              profile_manager,"},{"line_number":194,"context_line":"                              profileIds\u003dprofileIds)"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxjo%3D","line":192,"in_reply_to":"AAAAUH%2F%2ByBs%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    LOG.debug(_(\"Filtering hubs %(hubs)s that match profile \""},{"line_number":220,"context_line":"                \"%(profile)s.\"), {\u0027hubs\u0027: hubs, \u0027profile\u0027: profileId})"},{"line_number":221,"context_line":"    pbm \u003d session.pbm"},{"line_number":222,"context_line":"    placement_solver \u003d pbm.service_content.placementSolver"},{"line_number":223,"context_line":"    filtered_hubs \u003d session.invoke_api(pbm, \u0027PbmQueryMatchingHub\u0027,"},{"line_number":224,"context_line":"                                       placement_solver,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByBk%3D","line":221,"updated":"2014-01-22 07:36:26.000000000","message":"session._pbm","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    LOG.debug(_(\"Filtering hubs %(hubs)s that match profile \""},{"line_number":220,"context_line":"                \"%(profile)s.\"), {\u0027hubs\u0027: hubs, \u0027profile\u0027: profileId})"},{"line_number":221,"context_line":"    pbm \u003d session.pbm"},{"line_number":222,"context_line":"    placement_solver \u003d pbm.service_content.placementSolver"},{"line_number":223,"context_line":"    filtered_hubs \u003d session.invoke_api(pbm, \u0027PbmQueryMatchingHub\u0027,"},{"line_number":224,"context_line":"                                       placement_solver,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Bxjg%3D","line":221,"in_reply_to":"AAAAUH%2F%2ByBk%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"e9b7ee08283d4bec963b2512f96f52a71348afd2","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                \"%(profile)s.\"), {\u0027hubs\u0027: hubs, \u0027profile\u0027: profileId})"},{"line_number":221,"context_line":"    pbm \u003d session.pbm"},{"line_number":222,"context_line":"    placement_solver \u003d pbm.service_content.placementSolver"},{"line_number":223,"context_line":"    filtered_hubs \u003d session.invoke_api(pbm, \u0027PbmQueryMatchingHub\u0027,"},{"line_number":224,"context_line":"                                       placement_solver,"},{"line_number":225,"context_line":"                                       hubsToSearch\u003dhubs,"},{"line_number":226,"context_line":"                                       profile\u003dprofileId)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2ByBo%3D","line":223,"updated":"2014-01-22 07:36:26.000000000","message":"session._call_method","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9999634b7a2a918fe5205e0c7804fdd02e07f875","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                \"%(profile)s.\"), {\u0027hubs\u0027: hubs, \u0027profile\u0027: profileId})"},{"line_number":221,"context_line":"    pbm \u003d session.pbm"},{"line_number":222,"context_line":"    placement_solver \u003d pbm.service_content.placementSolver"},{"line_number":223,"context_line":"    filtered_hubs \u003d session.invoke_api(pbm, \u0027PbmQueryMatchingHub\u0027,"},{"line_number":224,"context_line":"                                       placement_solver,"},{"line_number":225,"context_line":"                                       hubsToSearch\u003dhubs,"},{"line_number":226,"context_line":"                                       profile\u003dprofileId)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BxjY%3D","line":223,"in_reply_to":"AAAAUH%2F%2ByBo%3D","updated":"2014-01-22 09:26:02.000000000","message":"Done","commit_id":"fd0cbb3d78e104ab50d56558b5f41ab6f9765894"}]}
