def create(deployment_yaml, output, wait): yatai_client = YataiClient() platform_name = deployment_yaml.get('spec', {}).get('operator') deployment_name = deployment_yaml.get('name') track_cli('deploy-create', platform_name) try: with Spinner('Creating deployment '): result = yatai_client.deployment.create(deployment_yaml, wait) if result.status.status_code != status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( result.status ) track_cli( 'deploy-create-failure', platform_name, {'error_code': error_code, 'error_message': error_message}, ) _echo( f'Failed to create deployment {deployment_name} ' f'{error_code}:{error_message}', CLI_COLOR_ERROR, ) return track_cli('deploy-create-success', platform_name) _echo( f'Successfully created deployment {deployment_name}', CLI_COLOR_SUCCESS, ) _print_deployment_info(result.deployment, output) except BentoMLException as e: _echo( f'Failed to create deployment {deployment_name} {str(e)}', CLI_COLOR_ERROR, )
def get(name, namespace, output): yatai_client = YataiClient() track_cli('deploy-get') get_result = yatai_client.deployment.get(namespace, name) if get_result.status.status_code != status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( get_result.status ) _echo( f'Failed to get deployment {name}. ' f'{error_code}:{error_message}', CLI_COLOR_ERROR, ) return describe_result = yatai_client.deployment.describe( namespace=namespace, name=name ) if describe_result.status.status_code != status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( describe_result.status ) _echo( f'Failed to retrieve the latest status for deployment' f' {name}. {error_code}:{error_message}', CLI_COLOR_ERROR, ) return get_result.deployment.state.CopyFrom(describe_result.state) _print_deployment_info(get_result.deployment, output)
def create(deployment_yaml, output, wait): yatai_client = get_default_yatai_client() deployment_name = deployment_yaml.get('name') with Spinner('Creating deployment '): result = yatai_client.deployment.create(deployment_yaml, wait) if result.status.status_code != yatai_proto.status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( result.status) raise CLIException(f'{error_code}:{error_message}') _echo( f'Successfully created deployment {deployment_name}', CLI_COLOR_SUCCESS, ) _print_deployment_info(result.deployment, output)
def apply(deployment_yaml, output, wait): deployment_name = deployment_yaml.get('name') yatai_client = YataiClient() with Spinner('Applying deployment'): result = yatai_client.deployment.apply(deployment_yaml, wait) if result.status.status_code != status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( result.status) raise CLIException(f'{error_code}:{error_message}') _echo( f'Successfully applied deployment {deployment_name}', CLI_COLOR_SUCCESS, ) _print_deployment_info(result.deployment, output)
def get(name, namespace, output): yatai_client = get_default_yatai_client() get_result = yatai_client.deployment.get(namespace, name) if get_result.status.status_code != yatai_proto.status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( get_result.status) raise CLIException(f'{error_code}:{error_message}') describe_result = yatai_client.deployment.describe(namespace=namespace, name=name) if describe_result.status.status_code != yatai_proto.status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( describe_result.status) raise CLIException(f'{error_code}:{error_message}') get_result.deployment.state.CopyFrom(describe_result.state) _print_deployment_info(get_result.deployment, output)
def apply(deployment_yaml, output, wait): track_cli('deploy-apply', deployment_yaml.get('spec', {}).get('operator')) platform_name = deployment_yaml.get('spec', {}).get('operator') deployment_name = deployment_yaml.get('name') try: yatai_client = YataiClient() with Spinner('Applying deployment'): result = yatai_client.deployment.apply(deployment_yaml, wait) if result.status.status_code != status_pb2.Status.OK: error_code, error_message = status_pb_to_error_code_and_message( result.status) track_cli( 'deploy-apply-failure', platform_name, { 'error_code': error_code, 'error_message': error_message }, ) _echo( f'Failed to apply deployment {deployment_name} ' f'{error_code}:{error_message}', CLI_COLOR_ERROR, ) return track_cli('deploy-create-success', platform_name) _echo( f'Successfully applied deployment {deployment_name}', CLI_COLOR_SUCCESS, ) _print_deployment_info(result.deployment, output) except BentoMLException as e: track_cli( 'deploy-apply-failure', platform_name, {'error_message': str(e)}, ) _echo( 'Failed to apply deployment {name}. Error message: {message}'. format(name=deployment_yaml.get('name'), message=e))