)]}'
{"oslo/vmware/image_transfer.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":412,"context_line":"    LOG.debug(\"Downloading image: %s from image service as a flat file.\","},{"line_number":413,"context_line":"              image_id)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    # NODE(arnaud): backward compatibility check"},{"line_number":416,"context_line":"    ds_name \u003d kwargs.get(\u0027datastore_name\u0027)"},{"line_number":417,"context_line":"    if ds_name is not None:"},{"line_number":418,"context_line":"        kwargs[\u0027datastore\u0027] \u003d ds_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_914afd81","line":415,"updated":"2014-08-18 12:47:48.000000000","message":"NOTE?","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":412,"context_line":"    LOG.debug(\"Downloading image: %s from image service as a flat file.\","},{"line_number":413,"context_line":"              image_id)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    # NODE(arnaud): backward compatibility check"},{"line_number":416,"context_line":"    ds_name \u003d kwargs.get(\u0027datastore_name\u0027)"},{"line_number":417,"context_line":"    if ds_name is not None:"},{"line_number":418,"context_line":"        kwargs[\u0027datastore\u0027] \u003d ds_name"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_9874c3d0","line":415,"in_reply_to":"1abeadc6_914afd81","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                                              file_size,"},{"line_number":431,"context_line":"                                              session\u003dkwargs.get(\u0027session\u0027),"},{"line_number":432,"context_line":"                                              bypass_vcenter\u003d("},{"line_number":433,"context_line":"                                              kwargs.get(\u0027bypass_vcenter\u0027)))"},{"line_number":434,"context_line":"    _start_transfer(context,"},{"line_number":435,"context_line":"                    timeout_secs,"},{"line_number":436,"context_line":"                    read_handle,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_27dacb78","line":433,"updated":"2014-08-18 12:47:48.000000000","message":"bypass_vc \u003d False\nif kwargs.get(\u0027bypass_vcenter\u0027):\n   if  kwargs.get(\u0027session\u0027) is None:\n      # raise\n   if ds_name is None:\n      # raise\n   bypass_vc \u003d self._is_bypass_vcenter_supported(vc_version)\n\nand pass bypass_vc","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                                              file_size,"},{"line_number":431,"context_line":"                                              session\u003dkwargs.get(\u0027session\u0027),"},{"line_number":432,"context_line":"                                              bypass_vcenter\u003d("},{"line_number":433,"context_line":"                                              kwargs.get(\u0027bypass_vcenter\u0027)))"},{"line_number":434,"context_line":"    _start_transfer(context,"},{"line_number":435,"context_line":"                    timeout_secs,"},{"line_number":436,"context_line":"                    read_handle,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_9e866bb8","line":433,"in_reply_to":"1abeadc6_27dacb78","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"fd2c44b4c10ecff2fa76dadd5a421078782319c7","unresolved":false,"context_lines":[{"line_number":418,"context_line":"    file_size \u003d int(kwargs.get(\u0027image_size\u0027))"},{"line_number":419,"context_line":"    # NOTE(arnaud): backward compability check. going forward a Datastore"},{"line_number":420,"context_line":"    # object is expected."},{"line_number":421,"context_line":"    if kwargs.get(\u0027datastore\u0027):"},{"line_number":422,"context_line":"        write_handle \u003d rw_handles.BypassFileWriteHandle("},{"line_number":423,"context_line":"            kwargs.get(\u0027host\u0027), kwargs.get(\u0027port\u0027),"},{"line_number":424,"context_line":"            kwargs.get(\u0027data_center_name\u0027), kwargs.get(\u0027datastore\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_2bb88875","line":421,"updated":"2014-08-19 22:49:58.000000000","message":"If in the future a Datastore is passed, does that always mean we bypass?\nPerhaps we should check that session is valid too/instead.","commit_id":"980ce42378dd6a854521c32347705ea71c7b683f"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"f97ccae9c825735bc0a18a498980deae3e566a6e","unresolved":false,"context_lines":[{"line_number":418,"context_line":"    file_size \u003d int(kwargs.get(\u0027image_size\u0027))"},{"line_number":419,"context_line":"    # NOTE(arnaud): backward compability check. going forward a Datastore"},{"line_number":420,"context_line":"    # object is expected."},{"line_number":421,"context_line":"    if kwargs.get(\u0027datastore\u0027):"},{"line_number":422,"context_line":"        write_handle \u003d rw_handles.BypassFileWriteHandle("},{"line_number":423,"context_line":"            kwargs.get(\u0027host\u0027), kwargs.get(\u0027port\u0027),"},{"line_number":424,"context_line":"            kwargs.get(\u0027data_center_name\u0027), kwargs.get(\u0027datastore\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_be4a14aa","line":421,"in_reply_to":"1abeadc6_2bb88875","updated":"2014-08-19 23:21:21.000000000","message":"Done","commit_id":"980ce42378dd6a854521c32347705ea71c7b683f"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d8740202ea9e660e20ce791efc1f42573b6193fa","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    read_iter \u003d image_service.download(context, image_id)"},{"line_number":417,"context_line":"    read_handle \u003d rw_handles.ImageReadHandle(read_iter)"},{"line_number":418,"context_line":"    file_size \u003d int(kwargs.get(\u0027image_size\u0027))"},{"line_number":419,"context_line":"    # NOTE(arnaud): backward compability check. going forward a Datastore"},{"line_number":420,"context_line":"    # object is expected."},{"line_number":421,"context_line":"    if kwargs.get(\u0027bypass_vcenter\u0027):"},{"line_number":422,"context_line":"        write_handle \u003d rw_handles.BypassFileWriteHandle("}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_fe9ee8b7","line":419,"updated":"2014-08-22 09:10:55.000000000","message":"typo: compatibility","commit_id":"14728b50ec471325bc4c74966fc4f9fb80f91f4f"}],"oslo/vmware/objects/datastore.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"22a881063f54bad1899f0b265f03d93b31653830","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :return: the host URL to perform the xfer and the cookie associated"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        hosts \u003d self.get_connected_hosts(session)"},{"line_number":131,"context_line":"        ind \u003d random.randrange(0, len(hosts))"},{"line_number":132,"context_line":"        host_name \u003d session.invoke_api(vim_util, \u0027get_object_property\u0027,"},{"line_number":133,"context_line":"                                       session.vim,"},{"line_number":134,"context_line":"                                       hosts[ind], \u0027name\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_0b1de30f","line":131,"updated":"2014-08-18 08:47:54.000000000","message":"should this not be len(hosts)-1?\n\nthis could lead to IndexError: list index out of range","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :return: the host URL to perform the xfer and the cookie associated"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        hosts \u003d self.get_connected_hosts(session)"},{"line_number":131,"context_line":"        ind \u003d random.randrange(0, len(hosts))"},{"line_number":132,"context_line":"        host_name \u003d session.invoke_api(vim_util, \u0027get_object_property\u0027,"},{"line_number":133,"context_line":"                                       session.vim,"},{"line_number":134,"context_line":"                                       hosts[ind], \u0027name\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_2493a9a4","line":131,"in_reply_to":"1abeadc6_0b1de30f","updated":"2014-08-18 12:47:48.000000000","message":"I think it selects from the range(0, len(hosts)) which is [0,1,..,len(hosts)-1]","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :return: the host URL to perform the xfer and the cookie associated"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        hosts \u003d self.get_connected_hosts(session)"},{"line_number":131,"context_line":"        ind \u003d random.randrange(0, len(hosts))"},{"line_number":132,"context_line":"        host_name \u003d session.invoke_api(vim_util, \u0027get_object_property\u0027,"},{"line_number":133,"context_line":"                                       session.vim,"},{"line_number":134,"context_line":"                                       hosts[ind], \u0027name\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_1bc4045e","line":131,"in_reply_to":"1abeadc6_2493a9a4","updated":"2014-08-19 19:01:18.000000000","message":"Vipin is correct. \n\nx \u003d [1,2]\nrandom.randrange(0, len(x)) will return 0 or 1","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        param_list \u003d {\u0027dcPath\u0027: constants.ESX_DATACENTER_PATH,"},{"line_number":136,"context_line":"                      \u0027dsName\u0027: self.name}"},{"line_number":137,"context_line":"        host_url \u003d \u0027%s://%s\u0027 % (scheme, host_name)"},{"line_number":138,"context_line":"        host_url \u003d \u0027%s/folder/%s\u0027 % (host_url, file_path)"},{"line_number":139,"context_line":"        host_url \u003d host_url + \u0027?\u0027 + urllib.urlencode(param_list)"},{"line_number":140,"context_line":"        client_factory \u003d session.vim.client.factory"},{"line_number":141,"context_line":"        spec \u003d vim_util.get_http_service_request_spec(client_factory,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_c482f5ff","line":138,"updated":"2014-08-18 12:47:48.000000000","message":"Will the API create the folders in the path if non-existing?","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        param_list \u003d {\u0027dcPath\u0027: constants.ESX_DATACENTER_PATH,"},{"line_number":136,"context_line":"                      \u0027dsName\u0027: self.name}"},{"line_number":137,"context_line":"        host_url \u003d \u0027%s://%s\u0027 % (scheme, host_name)"},{"line_number":138,"context_line":"        host_url \u003d \u0027%s/folder/%s\u0027 % (host_url, file_path)"},{"line_number":139,"context_line":"        host_url \u003d host_url + \u0027?\u0027 + urllib.urlencode(param_list)"},{"line_number":140,"context_line":"        client_factory \u003d session.vim.client.factory"},{"line_number":141,"context_line":"        spec \u003d vim_util.get_http_service_request_spec(client_factory,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_de90e3ee","line":138,"in_reply_to":"1abeadc6_c482f5ff","updated":"2014-08-19 19:01:18.000000000","message":"yes","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d8740202ea9e660e20ce791efc1f42573b6193fa","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        :return: list of HostSystem managed object references"},{"line_number":94,"context_line":"        \"\"\""},{"line_number":95,"context_line":"        hosts \u003d []"},{"line_number":96,"context_line":"        summary \u003d self.get_summary(session)"},{"line_number":97,"context_line":"        if not summary.accessible:"},{"line_number":98,"context_line":"            return hosts"},{"line_number":99,"context_line":"        host_mounts \u003d session.invoke_api(vim_util, \u0027get_object_property\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_5e7fdc65","line":96,"updated":"2014-08-22 09:10:55.000000000","message":"this is bugfix and should be in a separate patch","commit_id":"14728b50ec471325bc4c74966fc4f9fb80f91f4f"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d8740202ea9e660e20ce791efc1f42573b6193fa","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        :param session: a VMwareAPISession object"},{"line_number":128,"context_line":"        :param method: HTTP method (GET, POST, PUT)"},{"line_number":129,"context_line":"        :param file_path: path of the file in the datastore"},{"line_number":130,"context_line":"        :return: the host URL to perform the xfer and the cookie associated"},{"line_number":131,"context_line":"        \"\"\""},{"line_number":132,"context_line":"        hosts \u003d self.get_connected_hosts(session)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_de4f6c32","line":129,"updated":"2014-08-22 09:10:55.000000000","message":"the scheme param is missing","commit_id":"14728b50ec471325bc4c74966fc4f9fb80f91f4f"}],"oslo/vmware/rw_handles.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        :param scheme: protocol-- http or https"},{"line_number":168,"context_line":"        :raises: VimConnectionException, ValueError"},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        # NOTE(arnaud): backward compatibility assumption: if session is"},{"line_number":171,"context_line":"        # provided, the datastore param is a string and not a Datastore object"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            if session is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_07c4ef90","line":170,"updated":"2014-08-18 12:47:48.000000000","message":"if session is not...","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        :param scheme: protocol-- http or https"},{"line_number":168,"context_line":"        :raises: VimConnectionException, ValueError"},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        # NOTE(arnaud): backward compatibility assumption: if session is"},{"line_number":171,"context_line":"        # provided, the datastore param is a string and not a Datastore object"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            if session is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_9ead8b34","line":170,"in_reply_to":"1abeadc6_07c4ef90","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        # NOTE(arnaud): backward compatibility assumption: if session is"},{"line_number":171,"context_line":"        # provided, the datastore param is a string and not a Datastore object"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            if session is not None:"},{"line_number":174,"context_line":"                datastore_name \u003d datastore.name"},{"line_number":175,"context_line":"                if not bypass_vcenter:"},{"line_number":176,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_479fc75f","line":173,"updated":"2014-08-18 12:47:48.000000000","message":"Based on my comment in image_transfer, we can use the bypass_vc flag to branch.","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        # NOTE(arnaud): backward compatibility assumption: if session is"},{"line_number":171,"context_line":"        # provided, the datastore param is a string and not a Datastore object"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            if session is not None:"},{"line_number":174,"context_line":"                datastore_name \u003d datastore.name"},{"line_number":175,"context_line":"                if not bypass_vcenter:"},{"line_number":176,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_dea7034e","line":173,"in_reply_to":"1abeadc6_479fc75f","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"22a881063f54bad1899f0b265f03d93b31653830","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            if session is not None:"},{"line_number":174,"context_line":"                datastore_name \u003d datastore.name"},{"line_number":175,"context_line":"                if not bypass_vcenter:"},{"line_number":176,"context_line":"                    raise"},{"line_number":177,"context_line":"                if type(datastore) !\u003d datastore_obj.Datastore:"},{"line_number":178,"context_line":"                    datastore \u003d datastore_obj.Datastore("},{"line_number":179,"context_line":"                        datastore.ref, datastore.name, datastore.capacity,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_ebcd0788","line":176,"updated":"2014-08-18 08:47:54.000000000","message":"question - is there a specific exception that we want to raise here?","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            if session is not None:"},{"line_number":174,"context_line":"                datastore_name \u003d datastore.name"},{"line_number":175,"context_line":"                if not bypass_vcenter:"},{"line_number":176,"context_line":"                    raise"},{"line_number":177,"context_line":"                if type(datastore) !\u003d datastore_obj.Datastore:"},{"line_number":178,"context_line":"                    datastore \u003d datastore_obj.Datastore("},{"line_number":179,"context_line":"                        datastore.ref, datastore.name, datastore.capacity,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_3f852bd0","line":176,"in_reply_to":"1abeadc6_ebcd0788","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                                                               file_path,"},{"line_number":184,"context_line":"                                                               scheme)"},{"line_number":185,"context_line":"                if self._url is None or cookies is None:"},{"line_number":186,"context_line":"                    raise"},{"line_number":187,"context_line":"            else:"},{"line_number":188,"context_line":"                datastore_name \u003d datastore"},{"line_number":189,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_0726af16","line":186,"updated":"2014-08-18 12:47:48.000000000","message":"You can raise a sub-class of ImageTransferException or ImageTransferException with a suitable message.","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                                                               file_path,"},{"line_number":184,"context_line":"                                                               scheme)"},{"line_number":185,"context_line":"                if self._url is None or cookies is None:"},{"line_number":186,"context_line":"                    raise"},{"line_number":187,"context_line":"            else:"},{"line_number":188,"context_line":"                datastore_name \u003d datastore"},{"line_number":189,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_1f7eafe4","line":186,"in_reply_to":"1abeadc6_0726af16","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"37bdc546779371cffd3a9f39abe13fe1038a2146","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                datastore_name \u003d datastore"},{"line_number":189,"context_line":"                raise"},{"line_number":190,"context_line":"        except Exception:"},{"line_number":191,"context_line":"            LOG.warn(_LW(\"Failed to get a transfer ticket to bypass vCenter.\"))"},{"line_number":192,"context_line":"            soap_url \u003d self._get_soap_url(scheme, host, port)"},{"line_number":193,"context_line":"            param_list \u003d {\u0027dcPath\u0027: data_center_name, \u0027dsName\u0027: datastore_name}"},{"line_number":194,"context_line":"            self._url \u003d \u0027%s/folder/%s\u0027 % (soap_url, file_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_a7e25bd3","line":191,"updated":"2014-08-18 12:47:48.000000000","message":"Do we really need to use exception for flow control?","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"7b320fb6a666fb289aa661873ba4124bcc71beb4","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                datastore_name \u003d datastore"},{"line_number":189,"context_line":"                raise"},{"line_number":190,"context_line":"        except Exception:"},{"line_number":191,"context_line":"            LOG.warn(_LW(\"Failed to get a transfer ticket to bypass vCenter.\"))"},{"line_number":192,"context_line":"            soap_url \u003d self._get_soap_url(scheme, host, port)"},{"line_number":193,"context_line":"            param_list \u003d {\u0027dcPath\u0027: data_center_name, \u0027dsName\u0027: datastore_name}"},{"line_number":194,"context_line":"            self._url \u003d \u0027%s/folder/%s\u0027 % (soap_url, file_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_5f8827e7","line":191,"in_reply_to":"1abeadc6_a7e25bd3","updated":"2014-08-19 19:01:18.000000000","message":"Done","commit_id":"a51aa67899b40d30ba8f016a8334f2e3a65eb823"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d8740202ea9e660e20ce791efc1f42573b6193fa","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        :param port: port for connection"},{"line_number":160,"context_line":"        :param data_center_name: name of the data center in the case of a VC"},{"line_number":161,"context_line":"                                 server"},{"line_number":162,"context_line":"        :param datastore: the Datastore where the file is stored"},{"line_number":163,"context_line":"        :param cookies: cookies to build the vim cookie header"},{"line_number":164,"context_line":"        :param file_path: datastore path where the file is written"},{"line_number":165,"context_line":"        :param file_size: size of the file in bytes"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_5e127c09","line":162,"updated":"2014-08-22 09:10:55.000000000","message":"doesn\u0027t match the argument name","commit_id":"14728b50ec471325bc4c74966fc4f9fb80f91f4f"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"d8740202ea9e660e20ce791efc1f42573b6193fa","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        return \"File write handle for %s\" % self._url"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class BypassFileWriteHandle(FileWriteHandle):"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def __init__(self, host, port, data_center_name, datastore, cookies,"},{"line_number":255,"context_line":"                 file_path, file_size, session, scheme\u003d\u0027https\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_597ff665","line":252,"updated":"2014-08-22 09:10:55.000000000","message":"we should use a factory method which returns the proper implementation of FileHandle, not a sub-class\n\ncreating the connection in the constructor is a design mistake that we need to fix; we should either allow clients to inject the connection themselves or provide a factory method that returns file handle (actually we can do both)","commit_id":"14728b50ec471325bc4c74966fc4f9fb80f91f4f"}]}
