Commit 0c1f5036 authored by Victor Colombo's avatar Victor Colombo Committed by GitHub

Merge pull request #46 from kurtosis-tech/vcolombo/refactor-exec

Refactor exec command
parents 87c0eeaa 421be647
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
### Breaking changes ### Breaking changes
- Updated `struct` to `PortSpec` for declaring port definitions - Updated `struct` to `PortSpec` for declaring port definitions
### Changes
- Change `exec` syntax
# 0.0.5 # 0.0.5
### Fixes ### Fixes
......
...@@ -48,7 +48,7 @@ def get_config(config_files_artifact_uuid): ...@@ -48,7 +48,7 @@ def get_config(config_files_artifact_uuid):
image = IMAGE_NAME, image = IMAGE_NAME,
ports = USED_PORTS, ports = USED_PORTS,
files = { files = {
config_files_artifact_uuid: FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE, FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE: config_files_artifact_uuid,
}, },
cmd = ["--config-path", config_file_path] cmd = ["--config-path", config_file_path]
) )
......
...@@ -57,8 +57,8 @@ def get_config(grafana_config_artifacts_uuid, grafana_dashboards_artifacts_uuid) ...@@ -57,8 +57,8 @@ def get_config(grafana_config_artifacts_uuid, grafana_dashboards_artifacts_uuid)
ports = USED_PORTS, ports = USED_PORTS,
env_vars = {CONFIG_DIRPATH_ENV_VAR: GRAFANA_CONFIG_DIRPATH_ON_SERVICE}, env_vars = {CONFIG_DIRPATH_ENV_VAR: GRAFANA_CONFIG_DIRPATH_ON_SERVICE},
files = { files = {
grafana_config_artifacts_uuid : GRAFANA_CONFIG_DIRPATH_ON_SERVICE, GRAFANA_CONFIG_DIRPATH_ON_SERVICE: grafana_config_artifacts_uuid,
grafana_dashboards_artifacts_uuid: GRAFANA_DASHBOARDS_DIRPATH_ON_SERVICE GRAFANA_DASHBOARDS_DIRPATH_ON_SERVICE: grafana_dashboards_artifacts_uuid
} }
) )
......
...@@ -227,7 +227,7 @@ def get_beacon_config( ...@@ -227,7 +227,7 @@ def get_beacon_config(
ports = BEACON_USED_PORTS, ports = BEACON_USED_PORTS,
cmd = cmd, cmd = cmd,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNTPOINT_ON_CLIENTS GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: genesis_data.files_artifact_uuid
}, },
env_vars = { env_vars = {
RUST_BACKTRACE_ENVVAR_NAME: RUST_FULL_BACKTRACE_KEYWORD RUST_BACKTRACE_ENVVAR_NAME: RUST_FULL_BACKTRACE_KEYWORD
...@@ -288,8 +288,8 @@ def get_validator_config( ...@@ -288,8 +288,8 @@ def get_validator_config(
ports = VALIDATOR_USED_PORTS, ports = VALIDATOR_USED_PORTS,
cmd = cmd, cmd = cmd,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNTPOINT_ON_CLIENTS, GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: genesis_data.files_artifact_uuid,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS, VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS: node_keystore_files.files_artifact_uuid,
}, },
env_vars = { env_vars = {
RUST_BACKTRACE_ENVVAR_NAME: RUST_FULL_BACKTRACE_KEYWORD RUST_BACKTRACE_ENVVAR_NAME: RUST_FULL_BACKTRACE_KEYWORD
......
...@@ -203,7 +203,7 @@ def get_beacon_config( ...@@ -203,7 +203,7 @@ def get_beacon_config(
ports = USED_PORTS, ports = USED_PORTS,
cmd = cmd, cmd = cmd,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
) )
...@@ -255,8 +255,8 @@ def get_validator_config( ...@@ -255,8 +255,8 @@ def get_validator_config(
ports = USED_PORTS, ports = USED_PORTS,
cmd = cmd, cmd = cmd,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: node_keystore_files.files_artifact_uuid,
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
) )
......
...@@ -211,8 +211,8 @@ def get_config( ...@@ -211,8 +211,8 @@ def get_config(
cmd = [cmd_str], cmd = [cmd_str],
entrypoint = ENTRYPOINT_ARGS, entrypoint = ENTRYPOINT_ARGS,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNTPOINT_ON_CLIENT, GENESIS_DATA_MOUNTPOINT_ON_CLIENT: genesis_data.files_artifact_uuid,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT: node_keystore_files.files_artifact_uuid
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
) )
......
...@@ -220,7 +220,7 @@ def get_beacon_config( ...@@ -220,7 +220,7 @@ def get_beacon_config(
ports = BEACON_NODE_USED_PORTS, ports = BEACON_NODE_USED_PORTS,
cmd = cmd, cmd = cmd,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
) )
...@@ -278,9 +278,9 @@ def get_validator_config( ...@@ -278,9 +278,9 @@ def get_validator_config(
ports = VALIDATOR_NODE_USED_PORTS, ports = VALIDATOR_NODE_USED_PORTS,
cmd = cmd, cmd = cmd,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: node_keystore_files.files_artifact_uuid,
prysm_password_artifact_uuid: PRYSM_PASSWORD_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, PRYSM_PASSWORD_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: prysm_password_artifact_uuid,
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
) )
......
...@@ -213,8 +213,8 @@ def get_config( ...@@ -213,8 +213,8 @@ def get_config(
cmd = [cmd_str], cmd = [cmd_str],
entrypoint = ENTRYPOINT_ARGS, entrypoint = ENTRYPOINT_ARGS,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER, GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER: node_keystore_files.files_artifact_uuid,
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
) )
......
...@@ -122,7 +122,7 @@ def get_config(network_id, genesis_data, image, existing_el_clients, log_level, ...@@ -122,7 +122,7 @@ def get_config(network_id, genesis_data, image, existing_el_clients, log_level,
ports = USED_PORTS, ports = USED_PORTS,
cmd = [launch_node_command_str], cmd = [launch_node_command_str],
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER: genesis_data.files_artifact_uuid
}, },
entrypoint = ENTRYPOINT_ARGS, entrypoint = ENTRYPOINT_ARGS,
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
......
...@@ -123,7 +123,7 @@ def get_config(network_id, genesis_data, image, existing_el_clients, verbosity_l ...@@ -123,7 +123,7 @@ def get_config(network_id, genesis_data, image, existing_el_clients, verbosity_l
ports = USED_PORTS, ports = USED_PORTS,
cmd = [command_arg_str], cmd = [command_arg_str],
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH GENESIS_DATA_MOUNT_DIRPATH: genesis_data.files_artifact_uuid
}, },
entrypoint = ENTRYPOINT_ARGS, entrypoint = ENTRYPOINT_ARGS,
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
......
...@@ -170,8 +170,8 @@ def get_config(network_id, genesis_data, prefunded_geth_keys_artifact_uuid, pref ...@@ -170,8 +170,8 @@ def get_config(network_id, genesis_data, prefunded_geth_keys_artifact_uuid, pref
ports = USED_PORTS, ports = USED_PORTS,
cmd = [command_str], cmd = [command_str],
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH, GENESIS_DATA_MOUNT_DIRPATH: genesis_data.files_artifact_uuid,
prefunded_geth_keys_artifact_uuid: PREFUNDED_KEYS_MOUNT_DIRPATH PREFUNDED_KEYS_MOUNT_DIRPATH: prefunded_geth_keys_artifact_uuid
}, },
entrypoint = ENTRYPOINT_ARGS, entrypoint = ENTRYPOINT_ARGS,
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
......
...@@ -117,7 +117,7 @@ def get_config(genesis_data, image, existing_el_clients, log_level, extra_params ...@@ -117,7 +117,7 @@ def get_config(genesis_data, image, existing_el_clients, log_level, extra_params
ports = USED_PORTS, ports = USED_PORTS,
cmd = command_args, cmd = command_args,
files = { files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH GENESIS_DATA_MOUNT_DIRPATH: genesis_data.files_artifact_uuid,
}, },
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER, private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER,
) )
......
...@@ -60,8 +60,8 @@ def generate_cl_genesis_data( ...@@ -60,8 +60,8 @@ def generate_cl_genesis_data(
# TODO(old) Make this the actual data generator - comment copied from the original module # TODO(old) Make this the actual data generator - comment copied from the original module
launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator( launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{ {
genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR, CONFIG_DIRPATH_ON_GENERATOR: genesis_generation_config_artifact_uuid,
el_genesis_data.files_artifact_uuid: EL_GENESIS_DIRPATH_ON_GENERATOR, EL_GENESIS_DIRPATH_ON_GENERATOR: el_genesis_data.files_artifact_uuid,
}, },
) )
...@@ -81,7 +81,8 @@ def generate_cl_genesis_data( ...@@ -81,7 +81,8 @@ def generate_cl_genesis_data(
(" && ").join(all_dirpath_creation_commands), (" && ").join(all_dirpath_creation_commands),
] ]
exec(launcher_service_id, dir_creation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) dir_creation_cmd_result = exec(struct(service_id=launcher_service_id, command=dir_creation_cmd))
assert(dir_creation_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
# Copy files to output # Copy files to output
...@@ -97,7 +98,8 @@ def generate_cl_genesis_data( ...@@ -97,7 +98,8 @@ def generate_cl_genesis_data(
filepath_on_generator, filepath_on_generator,
OUTPUT_DIRPATH_ON_GENERATOR, OUTPUT_DIRPATH_ON_GENERATOR,
] ]
exec(launcher_service_id, cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) cmd_result = exec(struct(service_id=launcher_service_id, command=cmd))
assert(cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
# Generate files that need dynamic content # Generate files that need dynamic content
content_to_write_to_output_filename = { content_to_write_to_output_filename = {
...@@ -114,7 +116,8 @@ def generate_cl_genesis_data( ...@@ -114,7 +116,8 @@ def generate_cl_genesis_data(
destFilepath, destFilepath,
) )
] ]
exec(launcher_service_id, cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) cmd_result = exec(struct(service_id=launcher_service_id, command=cmd))
assert(cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cl_genesis_generation_cmd = [ cl_genesis_generation_cmd = [
...@@ -127,7 +130,8 @@ def generate_cl_genesis_data( ...@@ -127,7 +130,8 @@ def generate_cl_genesis_data(
"--state-output", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_STATE_FILENAME) "--state-output", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_STATE_FILENAME)
] ]
exec(launcher_service_id, cl_genesis_generation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) genesis_generation_result = exec(struct(service_id=launcher_service_id, command=cl_genesis_generation_cmd))
assert(genesis_generation_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cl_genesis_data_artifact_uuid = store_service_files(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR) cl_genesis_data_artifact_uuid = store_service_files(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR)
......
...@@ -64,7 +64,8 @@ def generate_cl_validator_keystores( ...@@ -64,7 +64,8 @@ def generate_cl_validator_keystores(
command_str = " && ".join(all_sub_command_strs) command_str = " && ".join(all_sub_command_strs)
exec(service_id, ["sh", "-c", command_str], SUCCESSFUL_EXEC_CMD_EXIT_CODE) command_result = exec(struct(service_id=service_id, command=["sh", "-c", command_str]))
assert(command_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
# Store outputs into files artifacts # Store outputs into files artifacts
keystore_files = [] keystore_files = []
...@@ -94,7 +95,8 @@ def generate_cl_validator_keystores( ...@@ -94,7 +95,8 @@ def generate_cl_validator_keystores(
PRYSM_PASSWORD_FILEPATH_ON_GENERATOR, PRYSM_PASSWORD_FILEPATH_ON_GENERATOR,
), ),
] ]
exec(service_id, write_prysm_password_file_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) write_prysm_password_file_cmd_result = exec(struct(service_id=service_id, command=write_prysm_password_file_cmd))
assert(write_prysm_password_file_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
prysm_password_artifact_uuid = store_service_files(service_id, PRYSM_PASSWORD_FILEPATH_ON_GENERATOR) prysm_password_artifact_uuid = store_service_files(service_id, PRYSM_PASSWORD_FILEPATH_ON_GENERATOR)
......
...@@ -53,7 +53,7 @@ def generate_el_genesis_data( ...@@ -53,7 +53,7 @@ def generate_el_genesis_data(
# TODO(old) Make this the actual data generator - comment copied from the original module # TODO(old) Make this the actual data generator - comment copied from the original module
launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator( launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{ {
genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR, CONFIG_DIRPATH_ON_GENERATOR: genesis_generation_config_artifact_uuid,
}, },
) )
...@@ -78,7 +78,8 @@ def generate_el_genesis_data( ...@@ -78,7 +78,8 @@ def generate_el_genesis_data(
] ]
exec(launcher_service_id, dir_creation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) dir_creation_cmd_result = exec(struct(service_id=launcher_service_id, command=dir_creation_cmd))
assert(dir_creation_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_config_filepath_on_generator = shared_utils.path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_FILENAME) genesis_config_filepath_on_generator = shared_utils.path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_FILENAME)
genesis_filename_to_relative_filepath_in_artifact = {} genesis_filename_to_relative_filepath_in_artifact = {}
...@@ -93,7 +94,9 @@ def generate_el_genesis_data( ...@@ -93,7 +94,9 @@ def generate_el_genesis_data(
" ".join(cmd) " ".join(cmd)
] ]
exec(launcher_service_id, cmd_to_execute, SUCCESSFUL_EXEC_CMD_EXIT_CODE) cmd_to_execute_result = exec(struct(service_id=launcher_service_id, command=cmd_to_execute))
assert(cmd_to_execute_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_filename_to_relative_filepath_in_artifact[output_filename] = shared_utils.path_join( genesis_filename_to_relative_filepath_in_artifact[output_filename] = shared_utils.path_join(
shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR), shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR),
...@@ -110,7 +113,8 @@ def generate_el_genesis_data( ...@@ -110,7 +113,8 @@ def generate_el_genesis_data(
) )
] ]
exec(launcher_service_id, jwt_secret_generation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE) jwt_secret_generation_cmd_result = exec(struct(service_id=launcher_service_id, command=jwt_secret_generation_cmd))
assert(jwt_secret_generation_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
elGenesisDataArtifactUuid = store_service_files(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR) elGenesisDataArtifactUuid = store_service_files(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR)
......
...@@ -42,7 +42,7 @@ def get_config(config_files_artifact_uuid): ...@@ -42,7 +42,7 @@ def get_config(config_files_artifact_uuid):
image = IMAGE_NAME, image = IMAGE_NAME,
ports = USED_PORTS, ports = USED_PORTS,
files = { files = {
config_files_artifact_uuid : CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS: config_files_artifact_uuid
}, },
cmd = [ cmd = [
# You can check all the cli flags starting the container and going to the flags section # You can check all the cli flags starting the container and going to the flags section
......
...@@ -19,7 +19,8 @@ def run_synchronous_testnet_verification(params, el_client_contexts, cl_client_c ...@@ -19,7 +19,8 @@ def run_synchronous_testnet_verification(params, el_client_contexts, cl_client_c
add_service(SERVICE_ID, config) add_service(SERVICE_ID, config)
command = get_cmd(params, el_client_contexts, cl_client_contexts, True) command = get_cmd(params, el_client_contexts, cl_client_contexts, True)
exec(SERVICE_ID, command) exec_result = exec(struct(service_id=SERVICE_ID, command=command))
assert(exec_result["code"], "==", 0)
def get_cmd(params, el_client_contexts, cl_client_contexts, add_binary_name): def get_cmd(params, el_client_contexts, cl_client_contexts, add_binary_name):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment