From b15b36d95593034a58bc47d86069d8f73aec9b2e Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Mon, 17 Apr 2017 12:44:39 -0700 Subject: [PATCH] Fix cloud sync issue --- dvc/command/data_sync.py | 6 +++--- dvc/path/data_item.py | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dvc/command/data_sync.py b/dvc/command/data_sync.py index f840b8ceb..268b620e6 100644 --- a/dvc/command/data_sync.py +++ b/dvc/command/data_sync.py @@ -45,7 +45,7 @@ class CmdDataSync(CmdBase): def run(self): if System.islink(self.parsed_args.target): - data_item = self.settings.path_factory.existing_data_item(self.parsed_args.target) + data_item = self.settings.path_factory.data_item(self.parsed_args.target) return self.sync_symlink(data_item) if os.path.isdir(self.parsed_args.target): @@ -83,9 +83,9 @@ class CmdDataSync(CmdBase): """ sync from cloud, aws version """ bucket = self._get_bucket_aws() - - key_name = self.cache_file_key(item.cache.dvc) + key_name = self.cache_file_key(item.resolved_cache.dvc) key = bucket.get_key(key_name) + if not key: raise DataSyncError('File "{}" does not exist in the cloud'.format(key_name)) diff --git a/dvc/path/data_item.py b/dvc/path/data_item.py index 92c4d048e..6eaf4420f 100644 --- a/dvc/path/data_item.py +++ b/dvc/path/data_item.py @@ -86,6 +86,12 @@ class DataItem(object): cache_file = os.path.join(cache_dir, file_name) return Path(cache_file, self._git) + @cached_property + def resolved_cache(self): + resolved_cache = os.path.realpath(self._data.relative) + return Path(resolved_cache, self._git) + + @cached_property def data_dir_abs(self): return os.path.join(self._git.git_dir_abs, self._config.data_dir)