Get rid of cloud gonfig check in runtime init

This commit is contained in:
Dmitry Petrov
2017-05-02 22:34:21 -07:00
parent 5b0aa00ca5
commit 6801c408c9
4 changed files with 31 additions and 13 deletions
+8
View File
@@ -58,6 +58,14 @@ class CmdDataSync(CmdBase):
Logger.info('Cannot perform the cmd since DVC is busy and locked. Please retry the cmd later.')
return 1
good = self.config.sanity_check()
if not good[0]:
Logger.error('config \'%s\' is not correctly setup. Please fix:' % Runtime.CONFIG)
for e in good[1]:
Logger.error(' ' + e)
return 1
try:
for target in self.parsed_args.targets:
data_item = self.settings.path_factory.data_item(target)
+6 -2
View File
@@ -93,7 +93,7 @@ class CmdDataRemove(CmdBase):
# it raises exception if not a symlink is provided
Logger.debug(u'[Cmd-Remove] Remove file {}.'.format(target))
data_item = self.settings.path_factory.data_item(target)
data_item = self.settings.path_factory.existing_data_item(target)
self._remove_cache_file(data_item)
self._remove_state_file(data_item)
@@ -120,7 +120,8 @@ class CmdDataRemove(CmdBase):
self._remove_dvc_path(data_item.cache, 'cache')
else:
if not self.parsed_args.keep_in_cache:
Logger.warn(u'[Cmd-Remove] Unable to find cache file for data item %s' % data_item.data.relative)
msg = u'[Cmd-Remove] Unable to find cache file {} for data item {}'
Logger.warn(msg.format(data_item.cache.relative, data_item.data.relative))
pass
def _remove_dvc_path(self, dvc_path, name):
@@ -132,6 +133,9 @@ class CmdDataRemove(CmdBase):
def remove_from_cloud(self, aws_file_name):
Logger.debug(u'[Cmd-Remove] Remove from cloud {}.'.format(aws_file_name))
if not self.config.aws_access_key_id or not self.config.aws_secret_access_key:
Logger.debug('[Cmd-Remove] Unable to check cache file in the cloud')
return
conn = S3Connection(self.config.aws_access_key_id, self.config.aws_secret_access_key)
bucket_name = self.config.storage_bucket
bucket = conn.lookup(bucket_name)
+17 -4
View File
@@ -35,6 +35,16 @@ class ConfigI(object):
def storage_prefix(self):
return ''
def sanity_check(self):
pass
def aws_access_key_id(self):
return None
@property
def aws_secret_access_key(self):
return None
class Config(ConfigI):
CONFIG = 'dvc.conf'
@@ -72,12 +82,16 @@ class Config(ConfigI):
def aws_access_key_id(self):
if not self._aws_creds:
self._aws_creds = self.get_aws_credentials()
if not self._aws_creds:
return None
return self._aws_creds[0]
@property
def aws_secret_access_key(self):
if not self._aws_creds:
self._aws_creds = get_aws_credentials()
self._aws_creds = self.get_aws_credentials()
if not self._aws_creds:
return None
return self._aws_creds[1]
@property
@@ -191,7 +205,6 @@ class Config(ConfigI):
return None
def sanity_check(self):
""" sanity check a config
@@ -221,12 +234,12 @@ class Config(ConfigI):
elif cloud == 'amazon':
creds = self.get_aws_credentials()
if creds is None:
errors.append('can\'t find aws credentials. TODO')
errors.append('can\'t find aws credentials.')
self._aws_creds = creds
elif cloud == 'google':
project = self._config['GC'].get('ProjectName', None)
if project is None or len(project) < 1:
errors.append('can\'t read google cloud project name. Please set ProjectName in section GC. TODO HOW FIND')
errors.append('can\'t read google cloud project name. Please set ProjectName in section GC.')
else:
errors.append('unknown Cloud %s' % cloud)
-7
View File
@@ -29,13 +29,6 @@ class Runtime(object):
if parse_config:
runtime_config = Config(Runtime.conf_file_path(runtime_git.git_dir))
good = runtime_config.sanity_check()
if good[0] == False:
Logger.error('config \'%s\' is not correctly setup. Please fix:' % Runtime.CONFIG)
for e in good[1]:
Logger.error(' ' + e)
sys.exit(-1)
else:
runtime_config = ConfigI()