Files
dvc/dvc/command/test.py
T
Earl Hathaway 677ce3a8e2 default storagepath in global rather than data
remove aws creds from dvc.conf; instead, look in: look for creds path in dvc.conf, default to ~/.aws/credentials
warn if aws creds are specified but we fall back anyway
clean up config.get_cloud -> config.cloud
sanity check the config: complain in nicer way if cloud, aws creds, or various other requirements aren't set
2017-04-17 23:15:14 -07:00

59 lines
1.7 KiB
Python

import os
import sys
from pathlib import Path
from google.cloud import storage
from dvc.command.base import CmdBase
from dvc.logger import Logger
from dvc.config import Config
from dvc.runtime import Runtime
from dvc.settings import SettingsError
class CmdTest(CmdBase):
def __init__(self, settings):
super(CmdTest, self).__init__(settings)
def define_args(self, parser):
self.set_skip_git_actions(parser)
def run(self):
cloud = self.settings._config.cloud
assert cloud in ['amazon', 'google'], 'unknown cloud: %s' % cloud
if cloud == 'amazon':
print 'TODO'
sys.exit(-1)
elif cloud == 'google':
Logger.info('testing gcloud')
if self.settings._config.gc_project_name == '':
Logger.error('Please specify the google cloud project name in dvc.conf')
raise SettingsError('must specify GC ProjectName')
try:
client = storage.Client(project=self.settings._config.gc_project_name)
except:
Logger.error('initializing storage.Client raised')
raise
sb = self.config.storage_bucket
if sb == '':
Logger.error('Please specificy a bucket for google cloud in dvc.conf')
sys.exit(-1)
bucket = client.bucket(sb)
if not bucket.exists():
Logger.error('google cloud storage: bucket %s doesn\'t exist' % sb)
sys.exit(-1)
Logger.info('bucket %s visible: google cloud seems to be configured correctly' % sb)
sys.exit(0)
if __name__ == '__main__':
Runtime.run(CmdTest, False)