diff --git a/gradient/cli/experiments.py b/gradient/cli/experiments.py index 432f99a2..fb53e919 100644 --- a/gradient/cli/experiments.py +++ b/gradient/cli/experiments.py @@ -62,6 +62,7 @@ def common_experiments_create_options(f): "--workspace", "workspace", help="Path to workspace directory, archive, S3 or git repository", + default="none", cls=common.GradientOption, ), click.option( diff --git a/gradient/commands/experiments.py b/gradient/commands/experiments.py index 1781b8bd..724ef10f 100644 --- a/gradient/commands/experiments.py +++ b/gradient/commands/experiments.py @@ -5,6 +5,8 @@ import six import terminaltables from click import style +from halo import halo + from gradient import api_sdk, exceptions, TensorboardClient from gradient.api_sdk import constants, sdk_exceptions from gradient.api_sdk.config import config @@ -13,7 +15,6 @@ from gradient.commands.common import BaseCommand, ListCommandMixin, DetailsCommandMixin from gradient.logger import Logger from gradient.utils import get_terminal_lines, none_strings_to_none_objects -from halo import halo try: # Python 3 @@ -106,6 +107,10 @@ def get_instance_url(self, instance_id, project_id): def _handle_workspace(self, instance_dict): handler = self.workspace_handler.handle(instance_dict) + + if (instance_dict.get("cluster_id") or instance_dict.get("use_vpc")) and handler.lower() == "none": + raise click.UsageError('Missing option "--workspace" is required for VPC experiments') + instance_dict.pop("ignore_files", None) instance_dict.pop("workspace", None) instance_dict.pop("workspace_archive", None)