def select_configuration_questionaire(system_folders): """Asks which configuration the user want to use It shows only configurations that are in the default folder. """ configs, f = ServerContext.available_configurations(system_folders) # each collection (file) can contain multiple configs. (e.g. test, # dev) choices = [] for config_collection in configs: envs = config_collection.available_environments for env in envs: choices.append(q.Choice( title=f"{config_collection.name:25} {env}", value=(config_collection.name, env))) if not choices: raise Exception("No configurations could be found!") # pop the question name, env = q.select("Select the configuration you want to use:", choices=choices).ask() return name, env
def cli_server_configuration_list(): """Print the available configurations.""" client = docker.from_env() check_if_docker_deamon_is_running(client) running_server = client.containers.list( filters={"label": f"{APPNAME}-type=server"}) running_node_names = [] for node in running_server: running_node_names.append(node.name) header = \ "\nName"+(21*" ") + \ "Environments"+(20*" ") + \ "Status"+(10*" ") + \ "System/User" click.echo(header) click.echo("-" * len(header)) running = Fore.GREEN + "Online" + Style.RESET_ALL stopped = Fore.RED + "Offline" + Style.RESET_ALL # system folders configs, f1 = ServerContext.available_configurations(system_folders=True) for config in configs: status = running if f"{APPNAME}-{config.name}-system-server" in \ running_node_names else stopped click.echo(f"{config.name:25}" f"{str(config.available_environments):32}" f"{status:25} System ") # user folders configs, f2 = ServerContext.available_configurations(system_folders=False) for config in configs: status = running if f"{APPNAME}-{config.name}-user-server" in \ running_node_names else stopped click.echo(f"{config.name:25}" f"{str(config.available_environments):32}" f"{status:25} User ") click.echo("-" * 85) if len(f1) + len(f2): warning( f"{Fore.RED}Failed imports: {len(f1)+len(f2)}{Style.RESET_ALL}")
def cli_server_configuration_list(): """Print the available configurations.""" click.echo("\nName"+(21*" ")+"Environments"+(21*" ")+"System/User") click.echo("-"*70) sys_configs, f1 = ServerContext.available_configurations( system_folders=True) for config in sys_configs: click.echo(f"{config.name:25}{str(config.available_environments):32} System ") usr_configs, f2 = ServerContext.available_configurations(system_folders=False) for config in usr_configs: click.echo(f"{config.name:25}{str(config.available_environments):32} User ") click.echo("-"*70) if len(f1)+len(f2): warning( f"{Fore.YELLOW}Number of failed imports: " f"{len(f1)+len(f2)}{Style.RESET_ALL}" )