forked from cerc-io/stack-orchestrator
		
	
							parent
							
								
									2c930bdbc3
								
							
						
					
					
						commit
						50d17c3282
					
				| @ -63,7 +63,8 @@ class package_registry_stack(base_stack): | ||||
|                 self.url = "http://gitea.local:3000/api/packages/cerc-io/npm/" | ||||
|             else: | ||||
|                 # If not, print a message about how to start it and return fail to the caller | ||||
|                 print("ERROR: The package-registry stack is not running, and no external registry specified with CERC_NPM_REGISTRY_URL") | ||||
|                 print("ERROR: The package-registry stack is not running, and no external registry " | ||||
|                       "specified with CERC_NPM_REGISTRY_URL") | ||||
|                 print("ERROR: Start the local package registry with: laconic-so --stack package-registry deploy-system up") | ||||
|                 return False | ||||
|         return True | ||||
| @ -75,5 +76,7 @@ class package_registry_stack(base_stack): | ||||
| def get_npm_registry_url(): | ||||
|     # If an auth token is not defined, we assume the default should be the cerc registry | ||||
|     # If an auth token is defined, we assume the local gitea should be used. | ||||
|     default_npm_registry_url = "http://gitea.local:3000/api/packages/cerc-io/npm/" if config("CERC_NPM_AUTH_TOKEN", default=None) else "https://git.vdb.to/api/packages/cerc-io/npm/" | ||||
|     default_npm_registry_url = "http://gitea.local:3000/api/packages/cerc-io/npm/" if config( | ||||
|         "CERC_NPM_AUTH_TOKEN", default=None | ||||
|         ) else "https://git.vdb.to/api/packages/cerc-io/npm/" | ||||
|     return config("CERC_NPM_REGISTRY_URL", default=default_npm_registry_url) | ||||
|  | ||||
| @ -30,10 +30,12 @@ from app.util import include_exclude_check, get_parsed_stack_config | ||||
| 
 | ||||
| builder_js_image_name = "cerc/builder-js:local" | ||||
| 
 | ||||
| 
 | ||||
| @click.command() | ||||
| @click.option('--include', help="only build these packages") | ||||
| @click.option('--exclude', help="don\'t build these packages") | ||||
| @click.option("--force-rebuild", is_flag=True, default=False, help="Override existing target package version check -- force rebuild") | ||||
| @click.option("--force-rebuild", is_flag=True, default=False, | ||||
|               help="Override existing target package version check -- force rebuild") | ||||
| @click.option("--extra-build-args", help="Supply extra arguments to build") | ||||
| @click.pass_context | ||||
| def command(ctx, include, exclude, force_rebuild, extra_build_args): | ||||
| @ -122,7 +124,7 @@ def command(ctx, include, exclude, force_rebuild, extra_build_args): | ||||
|             # envs = {"CERC_NPM_AUTH_TOKEN": npm_registry_url_token} | ({"CERC_SCRIPT_DEBUG": "true"} if debug else {}) | ||||
|             # but that isn't available in Python 3.8 (default in Ubuntu 20) so for now we use dict.update: | ||||
|             envs = {"CERC_NPM_AUTH_TOKEN": npm_registry_url_token, | ||||
|                     "LACONIC_HOSTED_CONFIG_FILE": "config-hosted.yml" # Convention used by our web app packages | ||||
|                     "LACONIC_HOSTED_CONFIG_FILE": "config-hosted.yml"  # Convention used by our web app packages | ||||
|                     } | ||||
|             envs.update({"CERC_SCRIPT_DEBUG": "true"} if debug else {}) | ||||
|             envs.update({"CERC_FORCE_REBUILD": "true"} if force_rebuild else {}) | ||||
|  | ||||
| @ -101,7 +101,8 @@ if __name__ == "__main__": | ||||
|             if args.ssh_host: | ||||
|                 dst_dbport = random.randint(11000, 12000) | ||||
|                 print( | ||||
|                     f"Establishing SSH tunnel from 127.0.0.1:{dst_dbport} to {args.ssh_host}->{args.dst_dbhost}:{args.dst_dbport}... ", | ||||
|                     f"Establishing SSH tunnel from 127.0.0.1:{dst_dbport} to " | ||||
|                     "{args.ssh_host}->{args.dst_dbhost}:{args.dst_dbport}... ", | ||||
|                     end="", | ||||
|                 ) | ||||
|                 with Connection( | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| from web3.auto import w3 | ||||
| import json | ||||
| import ruamel.yaml as yaml | ||||
| import sys | ||||
| 
 | ||||
|  | ||||
| @ -15,6 +15,7 @@ | ||||
| 
 | ||||
| from secrets import token_hex | ||||
| 
 | ||||
| 
 | ||||
| def init(ctx): | ||||
|     return None | ||||
| 
 | ||||
|  | ||||
| @ -140,8 +140,8 @@ def exec_operation(ctx, extra_args): | ||||
|             print(f"Running compose exec {service_name} {command_to_exec}") | ||||
|         try: | ||||
|             ctx.obj.docker.compose.execute(service_name, command_to_exec, envs=container_exec_env) | ||||
|         except DockerException as error: | ||||
|             print(f"container command returned error exit status") | ||||
|         except DockerException: | ||||
|             print("container command returned error exit status") | ||||
| 
 | ||||
| 
 | ||||
| def logs_operation(ctx, tail: int, follow: bool, extra_args: str): | ||||
|  | ||||
| @ -19,6 +19,7 @@ from pathlib import Path | ||||
| from python_on_whales import DockerClient | ||||
| from app.command_types import CommandOptions | ||||
| 
 | ||||
| 
 | ||||
| @dataclass | ||||
| class ClusterContext: | ||||
|     options: CommandOptions  # TODO: this should be in its own object not stuffed in here | ||||
| @ -64,4 +65,4 @@ class LaconicStackSetupCommand: | ||||
| 
 | ||||
| @dataclass | ||||
| class LaconicStackCreateCommand: | ||||
|     network_dir: str | ||||
|     network_dir: str | ||||
|  | ||||
| @ -19,7 +19,7 @@ from app.deploy_types import DeployCommandContext, VolumeMapping | ||||
| from app.util import get_parsed_stack_config, get_yaml, get_compose_file_dir | ||||
| 
 | ||||
| 
 | ||||
| def _container_image_from_service(stack :str, service: str): | ||||
| def _container_image_from_service(stack: str, service: str): | ||||
|     # Parse the compose files looking for the image name of the specified service | ||||
|     image_name = None | ||||
|     parsed_stack = get_parsed_stack_config(stack) | ||||
|  | ||||
| @ -17,8 +17,8 @@ import click | ||||
| from dataclasses import dataclass | ||||
| from pathlib import Path | ||||
| import sys | ||||
| from app.deploy import up_operation, down_operation, ps_operation, port_operation, exec_operation, logs_operation, create_deploy_context | ||||
| from app.util import global_options | ||||
| from app.deploy import up_operation, down_operation, ps_operation, port_operation | ||||
| from app.deploy import exec_operation, logs_operation, create_deploy_context | ||||
| 
 | ||||
| 
 | ||||
| @dataclass | ||||
|  | ||||
| @ -41,7 +41,7 @@ def _get_ports(stack): | ||||
|             for svc_name, svc in parsed_pod_file["services"].items(): | ||||
|                 if "ports" in svc: | ||||
|                     # Ports can appear as strings or numbers.  We normalize them as strings. | ||||
|                     ports[svc_name] = [ str(x) for x in svc["ports"] ] | ||||
|                     ports[svc_name] = [str(x) for x in svc["ports"]] | ||||
|     return ports | ||||
| 
 | ||||
| 
 | ||||
| @ -178,7 +178,7 @@ def _get_mapped_ports(stack: str, map_recipe: str): | ||||
|                     ports_array = ports[service] | ||||
|                     for x in range(0, len(ports_array)): | ||||
|                         orig_port = ports_array[x] | ||||
|                         random_port = random.randint(20000,50000) # Beware: we're relying on luck to not collide | ||||
|                         random_port = random.randint(20000, 50000)  # Beware: we're relying on luck to not collide | ||||
|                         if map_recipe == "any-variable-random": | ||||
|                             # This is the default so take no action | ||||
|                             pass | ||||
| @ -202,11 +202,11 @@ def _get_mapped_ports(stack: str, map_recipe: str): | ||||
|     return ports | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @click.command() | ||||
| @click.option("--output", required=True, help="Write yaml spec file here") | ||||
| @click.option("--map-ports-to-host", required=False, | ||||
|               help="Map ports to the host as one of: any-variable-random (default), localhost-same, any-same, localhost-fixed-random, any-fixed-random") | ||||
|               help="Map ports to the host as one of: any-variable-random (default), " | ||||
|               "localhost-same, any-same, localhost-fixed-random, any-fixed-random") | ||||
| @click.pass_context | ||||
| def init(ctx, output, map_ports_to_host): | ||||
|     yaml = get_yaml() | ||||
|  | ||||
| @ -76,7 +76,7 @@ def _get_repo_current_branch_or_tag(full_filesystem_repo_path): | ||||
|     try: | ||||
|         current_repo_branch_or_tag = git.Repo(full_filesystem_repo_path).active_branch.name | ||||
|         is_branch = True | ||||
|     except TypeError as error: | ||||
|     except TypeError: | ||||
|         # This means that the current ref is not a branch, so possibly a tag | ||||
|         # Let's try to get the tag | ||||
|         current_repo_branch_or_tag = git.Repo(full_filesystem_repo_path).git.describe("--tags", "--exact-match") | ||||
| @ -96,7 +96,9 @@ def process_repo(verbose, quiet, dry_run, pull, check_only, git_ssh, dev_root_pa | ||||
|     repoName = repo_path.split("/")[-1] | ||||
|     full_filesystem_repo_path = os.path.join(dev_root_path, repoName) | ||||
|     is_present = os.path.isdir(full_filesystem_repo_path) | ||||
|     (current_repo_branch_or_tag, is_branch) = _get_repo_current_branch_or_tag(full_filesystem_repo_path) if is_present else (None, None) | ||||
|     (current_repo_branch_or_tag, is_branch) = _get_repo_current_branch_or_tag( | ||||
|         full_filesystem_repo_path | ||||
|         ) if is_present else (None, None) | ||||
|     if not quiet: | ||||
|         present_text = f"already exists active {'branch' if is_branch else 'tag'}: {current_repo_branch_or_tag}" if is_present \ | ||||
|             else 'Needs to be fetched' | ||||
| @ -116,7 +118,7 @@ def process_repo(verbose, quiet, dry_run, pull, check_only, git_ssh, dev_root_pa | ||||
|                         origin = git_repo.remotes.origin | ||||
|                         origin.pull(progress=None if quiet else GitProgress()) | ||||
|                     else: | ||||
|                         print(f"skipping pull because this repo checked out a tag") | ||||
|                         print("skipping pull because this repo checked out a tag") | ||||
|                 else: | ||||
|                     print("(git pull skipped)") | ||||
|     if not is_present: | ||||
| @ -143,7 +145,10 @@ def process_repo(verbose, quiet, dry_run, pull, check_only, git_ssh, dev_root_pa | ||||
|         branch_to_checkout = repo_branch | ||||
| 
 | ||||
|     if branch_to_checkout: | ||||
|         if current_repo_branch_or_tag is None or (current_repo_branch_or_tag and (current_repo_branch_or_tag != branch_to_checkout)): | ||||
|         if current_repo_branch_or_tag is None or ( | ||||
|             current_repo_branch_or_tag and ( | ||||
|                 current_repo_branch_or_tag != branch_to_checkout) | ||||
|                 ): | ||||
|             if not quiet: | ||||
|                 print(f"switching to branch {branch_to_checkout} in repo {repo_path}") | ||||
|             git_repo = git.Repo(full_filesystem_repo_path) | ||||
|  | ||||
| @ -16,6 +16,7 @@ | ||||
| import click | ||||
| import importlib.resources | ||||
| 
 | ||||
| 
 | ||||
| @click.command() | ||||
| @click.pass_context | ||||
| def command(ctx): | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user