def set(**kwargs): # pylint:disable=redefined-builtin """Set the global config values. Example: \b $ polyaxon config set --host=localhost """ try: _config = ClientConfigManager.get_config_or_default() except Exception as e: handle_cli_error(e, message="Polyaxon load configuration.") Printer.print_header( "You can reset your config by running: polyaxon config purge" ) sys.exit(1) for key, value in kwargs.items(): if value is not None: setattr(_config, key, value) ClientConfigManager.set_config(_config) Printer.print_success("Config was updated.") # Reset cli config CliConfigManager.purge()
def show(): """Show the current cli, client, and user configs.""" _config = ClientConfigManager.get_config_or_default() Printer.print_header("Client config:") dict_tabulate(_config.to_dict()) _config = CliConfigManager.get_config_or_default() if _config: Printer.print_header("CLI config:") if _config.current_version: click.echo("Version {}".format(_config.current_version)) else: Printer.print_warning("This cli is not configured.") if _config.installation: config_installation = dict_to_tabulate( _config.installation, humanize_values=True, exclude_attrs=["hmac", "auth", "host"], ) dict_tabulate(config_installation) else: Printer.print_warning( "This cli is not connected to a Polyaxon Host.") _config = UserConfigManager.get_config_or_default() if _config: Printer.print_header("User config:") config_user = dict_to_tabulate( _config.to_dict(), humanize_values=True, exclude_attrs=["theme"], ) dict_tabulate(config_user)
def port_forward(port, namespace, deployment_type, release_name): """If you deploy Polyaxon using ClusterIP, you can use this command to access the gateway through `localhost:port`. """ from polyaxon.deploy.operators.kubectl import KubectlOperator if not port and deployment_type in [ DeploymentTypes.MICRO_K8S, DeploymentTypes.MINIKUBE, ]: port = 31833 port = port or 8000 namespace = namespace or "polyaxon" release_name = release_name or "polyaxon" kubectl = KubectlOperator() args = [ "port-forward", "-n", namespace, "svc/{}-polyaxon-gateway".format(release_name), "{}:80".format(port), ] try: _config = ClientConfigManager.get_config_or_default() except Exception as e: handle_cli_error(e, message="Polyaxon load configuration.") Printer.print_header( "You can reset your config by running: polyaxon config purge") sys.exit(1) _config.host = "http://localhost:{}".format(port) ClientConfigManager.set_config(_config) CliConfigManager.purge() AuthConfigManager.purge() UserConfigManager.purge() Printer.print_header("Client configuration is updated!") Printer.print_success("Polyaxon will be available at: {}".format( _config.host)) stdout = kubectl.execute(args=args, is_json=False, stream=settings.CLIENT_CONFIG.debug) click.echo(stdout)
def get(keys): """Get the global config values by keys. Example: \b $ polyaxon config get host port """ _config = ClientConfigManager.get_config_or_default() if not keys: return print_values = {} for key in keys: if hasattr(_config, key): print_values[key] = getattr(_config, key) else: click.echo("Key `{}` is not recognised.".format(key)) dict_tabulate(print_values)
def get(keys): """Get the specific keys from the global configuration. Example: \b $ polyaxon config get host verify-ssl """ _config = ClientConfigManager.get_config_or_default() if not keys: return print_values = {} for key in keys: key = key.replace("-", "_") if hasattr(_config, key): print_values[key] = getattr(_config, key) else: click.echo("Key `{}` is not recognised.".format(key)) dict_tabulate(print_values)
def config(list): # pylint:disable=redefined-builtin """Set and get the global configurations.""" if list: _config = ClientConfigManager.get_config_or_default() Printer.print_header("Current config:") dict_tabulate(_config.to_dict())
def get_config_from_manager(): from polyaxon.managers.client import ClientConfigManager config = ClientConfigManager.get_config_or_default() config.token = AuthConfigManager.get_value("token") return config