def create(deployment_path: str, **kwargs): # Late import. import yaml from maro.cli.grass.executors.grass_azure_executor import GrassAzureExecutor from maro.cli.grass.executors.grass_local_executor import GrassLocalExecutor from maro.cli.grass.executors.grass_on_premises_executor import GrassOnPremisesExecutor from maro.utils.exception.cli_exception import BadRequestError, FileOperationError, InvalidDeploymentTemplateError try: with open(deployment_path, "r") as fr: create_deployment = yaml.safe_load(fr) if create_deployment["mode"] == "grass/azure": GrassAzureExecutor.create(create_deployment=create_deployment) elif create_deployment["mode"] == "grass/on-premises": GrassOnPremisesExecutor.create(create_deployment=create_deployment) elif create_deployment["mode"] == "grass/local": executor = GrassLocalExecutor( cluster_name=create_deployment["name"], cluster_details=create_deployment) executor.create() else: raise BadRequestError( f"Unsupported operation in mode '{create_deployment['mode']}'." ) except KeyError as e: raise InvalidDeploymentTemplateError(f"Missing key '{e.args[0]}'.") except FileNotFoundError: raise FileOperationError("Invalid template file path.")
def create(deployment_path: str, **kwargs): with open(deployment_path, 'r') as fr: create_deployment = yaml.safe_load(fr) try: if create_deployment['mode'] == 'grass': if create_deployment['cloud']['infra'] == 'azure': GrassAzureExecutor.build_cluster_details( create_deployment=create_deployment) executor = GrassAzureExecutor( cluster_name=create_deployment['name']) executor.create() else: raise ParsingError( f"Deployment is broken: Invalid infra: {create_deployment['cloud']['infra']}" ) else: raise ParsingError( f"Deployment is broken: Invalid mode: {create_deployment['mode']}" ) except KeyError as e: raise ParsingError(f"Deployment is broken: Missing key: '{e.args[0]}'")
def create(deployment_path: str, **kwargs): try: with open(deployment_path, "r") as fr: create_deployment = yaml.safe_load(fr) if create_deployment["mode"] == "grass/azure": GrassAzureExecutor.build_cluster_details( create_deployment=create_deployment) executor = GrassAzureExecutor( cluster_name=create_deployment["name"]) executor.create() elif create_deployment["mode"] == "grass/on-premises": GrassOnPremisesExecutor.build_cluster_details( create_deployment=create_deployment) executor = GrassOnPremisesExecutor( cluster_name=create_deployment["name"]) executor.create() else: raise BadRequestError( f"Unsupported command in mode '{create_deployment['mode']}'.") except KeyError as e: raise InvalidDeploymentTemplateError(f"Missing key '{e.args[0]}'.") except FileNotFoundError: raise FileOperationError("Invalid template file path.")