Skip to content

Commit

Permalink
Infra split network start and open (#3566)
Browse files Browse the repository at this point in the history
  • Loading branch information
jumaffre authored Feb 18, 2022
1 parent f1ac915 commit d7e1277
Show file tree
Hide file tree
Showing 31 changed files with 59 additions and 52 deletions.
2 changes: 1 addition & 1 deletion tests/code_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

test_verify_quotes(network, args)
test_add_node_with_bad_code(network, args)
Expand Down
2 changes: 1 addition & 1 deletion tests/committable.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def run(args):
with infra.network.network(
hosts, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
primary, backups = network.find_nodes()

# Suspend three of the backups to prevent commit
Expand Down
2 changes: 1 addition & 1 deletion tests/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def run(args):
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
check = infra.checker.Checker()
network.start_and_join(args)
network.start_and_open(args)
primary, _ = network.find_nodes()

caps = interface_caps(primary.local_node_id)
Expand Down
4 changes: 2 additions & 2 deletions tests/e2e_batched.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

network = test(network, args, batch_size=1)
network = test(network, args, batch_size=10)
Expand Down Expand Up @@ -94,7 +94,7 @@ def run_to_destruction(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

LOG.warning("About to issue transactions until destruction")
try:
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e_common_endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

network = test_primary(network, args)
network = test_network_node_info(network, args)
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -1317,7 +1317,7 @@ def additional_interfaces(local_node_id):
pdb=args.pdb,
txs=txs,
) as network:
network.start_and_join(args)
network.start_and_open(args)

network = test(network, args)
network = test_illegal(network, args)
Expand Down
4 changes: 2 additions & 2 deletions tests/e2e_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ def run_file_operations(args):
) as network:

args.common_read_only_ledger_dir = tmp_dir
network.start_and_join(args)
network.start_and_open(args)

test_save_committed_ledger_files(network, args)
test_parse_snapshot_file(network, args)
Expand All @@ -140,7 +140,7 @@ def run_tls_san_checks(args):
pdb=args.pdb,
) as network:
args.common_read_only_ledger_dir = None # Reset from previous test
network.start_and_join(args)
network.start_and_open(args)

LOG.info("Check SAN value in TLS certificate")
dummy_san = "*.dummy.com"
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e_suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def run(args):
)

if not args.dry_run:
network.start_and_join(args)
network.start_and_open(args)

LOG.info(f"Running {len(chosen_suite)} tests for {args.test_duration} seconds")

Expand Down
2 changes: 1 addition & 1 deletion tests/e2e_tutorial.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def run(args):
) as network:
for node in network.nodes:
node.curl = True
network.start_and_join(args)
network.start_and_open(args)
primary, _ = network.find_primary()

uncommitted_ledger_dir, committed_ledger_dirs = list(primary.get_ledger())
Expand Down
2 changes: 1 addition & 1 deletion tests/election.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def run(args):
) as network:
check = infra.checker.Checker()

network.start_and_join(args)
network.start_and_open(args)
current_view = None
primary, current_view = network.find_primary()

Expand Down
4 changes: 2 additions & 2 deletions tests/governance.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ def gov(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network.consortium.set_authenticate_session(args.authenticate_session)
test_create_endpoint(network, args)
test_consensus_status(network, args)
Expand All @@ -415,7 +415,7 @@ def js_gov(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
governance_js.test_proposal_validation(network, args)
governance_js.test_proposal_storage(network, args)
governance_js.test_proposal_withdrawal(network, args)
Expand Down
2 changes: 1 addition & 1 deletion tests/governance_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ def run(args):
pdb=args.pdb,
txs=txs,
) as network:
network.start_and_join(args)
network.start_and_open(args)
primary, _ = network.find_primary()

ledger_directories = primary.remote.ledger_paths()
Expand Down
2 changes: 1 addition & 1 deletion tests/historical_query_perf.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

network = test_historical_query_range(network, args)

Expand Down
2 changes: 1 addition & 1 deletion tests/infra/consortium.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ def make_proposal(self, proposal_name, **kwargs):
return f"@{proposal_output_path}", f"@{ballot_output_path}"

def activate(self, remote_node):
for m in self.members:
for m in [m for m in self.members if not m.is_retired]:
m.ack(remote_node)

def generate_and_propose_new_member(
Expand Down
17 changes: 12 additions & 5 deletions tests/infra/network.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ def _setup_common_folder(self, constitution):
infra.proc.ccall(*cmd).returncode == 0
), f"Could not symlink {self.KEY_GEN} to {self.common_dir}"

def start_and_join(self, args, **kwargs):
def start(self, args, **kwargs):
"""
Starts a CCF network.
:param args: command line arguments to configure the CCF nodes.
Expand Down Expand Up @@ -416,15 +416,12 @@ def start_and_join(self, args, **kwargs):
authenticate_session=not args.disable_member_session_auth,
reconfiguration_type=args.reconfiguration_type,
)
initial_users = [
f"user{user_id}" for user_id in list(range(max(0, args.initial_user_count)))
]
self.create_users(initial_users, args.participants_curve)

primary = self._start_all_nodes(args, **kwargs)
self.wait_for_all_nodes_to_commit(primary=primary)
LOG.success("All nodes joined network")

def open(self, args):
self.consortium.activate(self.find_random_node())

if args.js_app_bundle:
Expand All @@ -440,6 +437,11 @@ def start_and_join(self, args, **kwargs):
if self.jwt_issuer:
self.jwt_issuer.register(self)

initial_users = [
f"user{user_id}" for user_id in list(range(max(0, args.initial_user_count)))
]
self.create_users(initial_users, args.participants_curve)

self.consortium.add_users_and_transition_service_to_open(
self.find_random_node(), initial_users
)
Expand All @@ -450,6 +452,10 @@ def start_and_join(self, args, **kwargs):
)
LOG.success("***** Network is now open *****")

def start_and_open(self, args, **kwargs):
self.start(args, **kwargs)
self.open(args)

def start_in_recovery(
self,
args,
Expand Down Expand Up @@ -507,6 +513,7 @@ def recover(self, args):
Recovers a CCF network previously started in recovery mode.
:param args: command line arguments to configure the CCF nodes.
"""
self.consortium.activate(self.find_random_node())
self.consortium.check_for_service(
self.find_random_node(), status=ServiceStatus.OPENING
)
Expand Down
2 changes: 1 addition & 1 deletion tests/infra/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def run(get_command, args):
with infra.network.network(
hosts, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
primary, backups = network.find_nodes()

command_args = get_command_args(args, get_command)
Expand Down
10 changes: 5 additions & 5 deletions tests/js-custom-authorization/custom_authorization.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_custom_auth(network, args)


Expand Down Expand Up @@ -80,7 +80,7 @@ def run_limits(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_stack_size_limit(network, args)
network = test_heap_size_limit(network, args)

Expand Down Expand Up @@ -214,7 +214,7 @@ def run_authn(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_jwt_auth(network, args)
network = test_multi_auth(network, args)
network = test_role_based_access(network, args)
Expand Down Expand Up @@ -371,7 +371,7 @@ def run_content_types(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_content_types(network, args)
network = test_accept_header(network, args)
network = test_supported_methods(network, args)
Expand Down Expand Up @@ -459,7 +459,7 @@ def run_request_object(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_request_object_api(network, args)


Expand Down
2 changes: 1 addition & 1 deletion tests/js-launch-host-process/host_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_host_process_launch(network, args)
network = test_host_process_launch_many(network, args)

Expand Down
2 changes: 1 addition & 1 deletion tests/js-modules/modules.py
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
network = test_module_import(network, args)
network = test_dynamic_module_import(network, args)
network = test_bytecode_cache(network, args)
Expand Down
6 changes: 3 additions & 3 deletions tests/jwt_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ def run_auto(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
test_jwt_endpoint(network, args)
test_jwt_without_key_policy(network, args)
if args.enclave_type != "virtual":
Expand All @@ -520,7 +520,7 @@ def run_manual(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
test_jwt_key_initial_refresh(network, args)

# Check that initial refresh also works on backups
Expand All @@ -534,7 +534,7 @@ def run_ca_cert(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)
ca_certs.test_cert_store(network, args)


Expand Down
4 changes: 2 additions & 2 deletions tests/lts_compatibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ def run_code_upgrade_from(
jwt_issuer=jwt_issuer,
version=from_version,
) as network:
network.start_and_join(args, node_container_image=from_container_image)
network.start_and_open(args, node_container_image=from_container_image)

old_nodes = network.get_joined_nodes()
primary, _ = network.find_primary()
Expand Down Expand Up @@ -433,7 +433,7 @@ def run_ledger_compatibility_since_first(args, local_branch, use_snapshot):
if idx == 0:
LOG.info(f"Starting new service (version: {version})")
network = infra.network.Network(**network_args)
network.start_and_join(args)
network.start_and_open(args)
else:
LOG.info(f"Recovering service (new version: {version})")
network = infra.network.Network(
Expand Down
2 changes: 1 addition & 1 deletion tests/memberclient.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ def run(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

network = test_missing_signature_header(network, args)
network = test_corrupted_signature(network, args)
Expand Down
8 changes: 4 additions & 4 deletions tests/membership.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def service_startups(args):
args.initial_operator_count = 1
with infra.network.network(args.nodes, args.binary_dir, pdb=args.pdb) as network:
try:
network.start_and_join(args)
network.start_and_open(args)
assert False, "Service cannot be opened with no recovery members"
except AssertionError:
primary, _ = network.find_primary()
Expand All @@ -141,7 +141,7 @@ def service_startups(args):
args.initial_recovery_member_count = 1
args.initial_operator_count = 2
with infra.network.network(args.nodes, args.binary_dir, pdb=args.pdb) as network:
network.start_and_join(args)
network.start_and_open(args)

LOG.info(
"Starting service with a recovery operator member, a recovery non-operator member and a non-recovery non-operator member"
Expand All @@ -150,7 +150,7 @@ def service_startups(args):
args.initial_recovery_member_count = 2
args.initial_operator_count = 1
with infra.network.network(args.nodes, args.binary_dir, pdb=args.pdb) as network:
network.start_and_join(args)
network.start_and_open(args)


def recovery_shares_scenario(args):
Expand All @@ -163,7 +163,7 @@ def recovery_shares_scenario(args):
with infra.network.network(
args.nodes, args.binary_dir, args.debug_nodes, args.perf_nodes, pdb=args.pdb
) as network:
network.start_and_join(args)
network.start_and_open(args)

# Membership changes trigger re-sharing and re-keying and are
# only supported with CFT
Expand Down
4 changes: 2 additions & 2 deletions tests/partitions_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ def run_2tx_reconfig_tests(args):
pdb=local_args.pdb,
init_partitioner=True,
) as network:
network.start_and_join(local_args)
network.start_and_open(local_args)

test_learner_does_not_take_part(network, local_args)

Expand All @@ -324,7 +324,7 @@ def run(args):
txs=txs,
init_partitioner=True,
) as network:
network.start_and_join(args)
network.start_and_open(args)

test_invalid_partitions(network, args)
test_partition_majority(network, args)
Expand Down
Loading

0 comments on commit d7e1277

Please sign in to comment.