diff --git a/Cargo.lock b/Cargo.lock index 1c5f1ed5299e..0c23415fc1e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15310,7 +15310,6 @@ dependencies = [ "ic-nns-test-utils", "ic-protobuf", "ic-registry-keys", - "ic-registry-nns-data-provider", "ic-registry-subnet-type", "ic-system-test-driver", "ic-types", @@ -16053,7 +16052,6 @@ dependencies = [ "ic-nns-governance-api", "ic-protobuf", "ic-registry-keys", - "ic-registry-nns-data-provider", "ic-registry-subnet-type", "ic-system-test-driver", "ic-types", diff --git a/rs/tests/README.md b/rs/tests/README.md index 9d18b5676e13..094165257b04 100644 --- a/rs/tests/README.md +++ b/rs/tests/README.md @@ -137,7 +137,7 @@ follows the hierarchical structure of the tests. For example: ├── api_test <<== POT name │ ├── setup <<== data related to the setup of this pot │ │ ├── ic_prep - │ │ │ ├── blessed_replica_versions.pb + │ │ │ ├── elected_replica_versions.pb │ │ │ <... etc. etc. ...> │ │ └── test.log <<== logs produced during the setup │ └── tests diff --git a/rs/tests/consensus/backup/common.rs b/rs/tests/consensus/backup/common.rs index 7a7f36a1d5ee..4a64cd571a8a 100644 --- a/rs/tests/consensus/backup/common.rs +++ b/rs/tests/consensus/backup/common.rs @@ -27,7 +27,7 @@ use ic_backup::{ config::{ColdStorage, Config, SubnetConfig}, }; use ic_base_types::SubnetId; -use ic_consensus_system_test_utils::upgrade::bless_replica_version; +use ic_consensus_system_test_utils::upgrade::elect_replica_version; use ic_consensus_system_test_utils::{ rw_message::install_nns_and_check_progress, ssh_access::{ @@ -103,12 +103,13 @@ pub fn test(env: TestEnv) { let binary_version = get_ic_build_version(); let target_version = get_guestos_update_img_version(); - // Bless target version + // Elect target version let sha256 = get_guestos_update_img_sha256(); let upgrade_url = get_guestos_update_img_url(); let guest_launch_measurements = get_guestos_update_launch_measurements(); - block_on(bless_replica_version( + block_on(elect_replica_version( &nns_node, + &env.topology_snapshot(), &target_version, &log, sha256, diff --git a/rs/tests/consensus/orchestrator/unstuck_subnet_test.rs b/rs/tests/consensus/orchestrator/unstuck_subnet_test.rs index f4054f407f43..124a559ceef7 100644 --- a/rs/tests/consensus/orchestrator/unstuck_subnet_test.rs +++ b/rs/tests/consensus/orchestrator/unstuck_subnet_test.rs @@ -16,7 +16,7 @@ end::catalog[] */ use anyhow::Result; use anyhow::bail; use ic_consensus_system_test_utils::upgrade::{ - bless_replica_version, deploy_guestos_to_all_subnet_nodes, get_assigned_replica_version, + deploy_guestos_to_all_subnet_nodes, elect_replica_version, get_assigned_replica_version, }; use ic_consensus_system_test_utils::{ rw_message::{ @@ -72,8 +72,9 @@ fn test(test_env: TestEnv) { let upgrade_url = get_guestos_initial_update_img_url(); let expected_sha256 = get_guestos_update_img_sha256(); let guest_launch_measurements = get_guestos_update_launch_measurements(); - block_on(bless_replica_version( + block_on(elect_replica_version( &nns_node, + &test_env.topology_snapshot(), &target_version, &logger, expected_sha256.clone(), diff --git a/rs/tests/consensus/subnet_recovery/utils.rs b/rs/tests/consensus/subnet_recovery/utils.rs index c0ac7ce8b3fe..c15deda64425 100644 --- a/rs/tests/consensus/subnet_recovery/utils.rs +++ b/rs/tests/consensus/subnet_recovery/utils.rs @@ -579,7 +579,7 @@ pub mod local { }; let upgrade_image_launch_measurements_path_cli = opt_cli_arg!(upgrade_image_launch_measurements_path); - let add_and_bless_upgrade_version_cli = opt_cli_arg!(add_and_bless_upgrade_version); + let add_upgrade_version_cli = opt_cli_arg!(add_and_bless_upgrade_version); let replay_until_height_cli = opt_cli_arg!(replay_until_height); let download_pool_node_cli = opt_cli_arg!(download_pool_node); // We are doing a local recovery, so we override the admin access location to "local" @@ -608,7 +608,7 @@ pub mod local { {upgrade_image_url_cli} \ {upgrade_image_hash_cli} \ {upgrade_image_launch_measurements_path_cli} \ - {add_and_bless_upgrade_version_cli} \ + {add_upgrade_version_cli} \ {replay_until_height_cli} \ {download_pool_node_cli} \ {admin_access_location_cli} \ diff --git a/rs/tests/consensus/upgrade/common.rs b/rs/tests/consensus/upgrade/common.rs index 81ec49c6172c..4f57c5940964 100644 --- a/rs/tests/consensus/upgrade/common.rs +++ b/rs/tests/consensus/upgrade/common.rs @@ -20,7 +20,7 @@ use ic_consensus_system_test_utils::rw_message::{ }; use ic_consensus_system_test_utils::subnet::enable_chain_key_signing_on_subnet; use ic_consensus_system_test_utils::upgrade::{ - assert_assigned_replica_version, bless_replica_version, deploy_guestos_to_all_subnet_nodes, + assert_assigned_replica_version, deploy_guestos_to_all_subnet_nodes, elect_replica_version, }; use ic_consensus_threshold_sig_system_test_utils::{ get_public_key_with_retries, run_chain_key_signature_test, @@ -44,24 +44,25 @@ const ALLOWED_FAILURES: usize = 1; pub const UP_DOWNGRADE_OVERALL_TIMEOUT: Duration = Duration::from_secs(25 * 60); pub const UP_DOWNGRADE_PER_TEST_TIMEOUT: Duration = Duration::from_secs(20 * 60); -pub fn bless_target_version(env: &TestEnv, nns_node: &IcNodeSnapshot) -> ReplicaVersion { +pub fn elect_target_version(env: &TestEnv, nns_node: &IcNodeSnapshot) -> ReplicaVersion { let logger = env.logger(); let target_version = get_guestos_update_img_version(); - // Bless target version + // Elect target version let sha256 = get_guestos_update_img_sha256(); let upgrade_url = get_guestos_update_img_url(); let guest_launch_measurements = get_guestos_update_launch_measurements(); - block_on(bless_replica_version( + block_on(elect_replica_version( nns_node, + &env.topology_snapshot(), &target_version, &logger, sha256, Some(guest_launch_measurements), vec![upgrade_url.to_string()], )); - info!(&logger, "Blessed target version"); + info!(&logger, "Elected target version"); target_version } diff --git a/rs/tests/consensus/upgrade/upgrade_downgrade_app_subnet_test.rs b/rs/tests/consensus/upgrade/upgrade_downgrade_app_subnet_test.rs index a0bd84d7905d..16cf2704d44b 100644 --- a/rs/tests/consensus/upgrade/upgrade_downgrade_app_subnet_test.rs +++ b/rs/tests/consensus/upgrade/upgrade_downgrade_app_subnet_test.rs @@ -6,7 +6,7 @@ use slog::Logger; use tokio::runtime::{Builder, Runtime}; use ic_consensus_system_test_upgrade_common::{ - bless_target_version, get_chain_key_canister_and_public_key, upgrade, + elect_target_version, get_chain_key_canister_and_public_key, upgrade, }; use ic_consensus_system_test_utils::rw_message::{ can_read_msg_with_retries, install_nns_and_check_progress, @@ -74,7 +74,7 @@ fn setup(env: TestEnv) { // Tests an upgrade of the app subnet to the target version and a downgrade back to the initial version fn upgrade_downgrade_app_subnet(env: TestEnv) { let nns_node = env.get_first_healthy_system_node_snapshot(); - let target_version = bless_target_version(&env, &nns_node); + let target_version = elect_target_version(&env, &nns_node); let agent = nns_node.with_default_agent(|agent| async move { agent }); let key_ids = make_key_ids_for_all_schemes(); let ecdsa_state = get_chain_key_canister_and_public_key( diff --git a/rs/tests/consensus/upgrade/upgrade_downgrade_nns_subnet_test.rs b/rs/tests/consensus/upgrade/upgrade_downgrade_nns_subnet_test.rs index 0b01d5fae099..e8a9f3ae5141 100644 --- a/rs/tests/consensus/upgrade/upgrade_downgrade_nns_subnet_test.rs +++ b/rs/tests/consensus/upgrade/upgrade_downgrade_nns_subnet_test.rs @@ -2,7 +2,7 @@ use std::time::Duration; use anyhow::Result; -use ic_consensus_system_test_upgrade_common::{bless_target_version, upgrade}; +use ic_consensus_system_test_upgrade_common::{elect_target_version, upgrade}; use ic_consensus_system_test_utils::rw_message::{ can_read_msg_with_retries, install_nns_and_check_progress, }; @@ -42,7 +42,7 @@ fn upgrade_downgrade_nns_subnet(env: TestEnv) { let log = env.logger(); let nns_node = env.get_first_healthy_system_node_snapshot(); - let target_version = bless_target_version(&env, &nns_node); + let target_version = elect_target_version(&env, &nns_node); info!(log, "Upgrading NNS subnet to {} ...", target_version); let (faulty_node, can_id, msg) = upgrade(&env, &nns_node, &target_version, SubnetType::System, None); diff --git a/rs/tests/consensus/upgrade/upgrade_downgrade_unassigned_nodes_test.rs b/rs/tests/consensus/upgrade/upgrade_downgrade_unassigned_nodes_test.rs index ce6274a60cd2..cf627782b04b 100644 --- a/rs/tests/consensus/upgrade/upgrade_downgrade_unassigned_nodes_test.rs +++ b/rs/tests/consensus/upgrade/upgrade_downgrade_unassigned_nodes_test.rs @@ -24,7 +24,7 @@ end::catalog[] */ use anyhow::Result; use anyhow::bail; -use ic_consensus_system_test_upgrade_common::bless_target_version; +use ic_consensus_system_test_upgrade_common::elect_target_version; use ic_consensus_system_test_utils::{ rw_message::install_nns_and_check_progress, upgrade::{deploy_guestos_to_all_unassigned_nodes, fetch_unassigned_node_version}, @@ -83,7 +83,7 @@ fn upgrade_downgrade_unassigned_nodes(env: TestEnv) { let nns_node = env.get_first_healthy_system_node_snapshot(); let unassigned_node = env.topology_snapshot().unassigned_nodes().next().unwrap(); - let target_version = bless_target_version(&env, &nns_node); + let target_version = elect_target_version(&env, &nns_node); info!(log, "Upgrading unassigned nodes to {} ...", target_version); upgrade_unassigned_nodes(&log, &nns_node, &unassigned_node, &target_version); let initial_version = get_guestos_img_version(); diff --git a/rs/tests/consensus/upgrade/upgrade_with_alternative_urls.rs b/rs/tests/consensus/upgrade/upgrade_with_alternative_urls.rs index 557c9f080140..b115a32b5e5f 100644 --- a/rs/tests/consensus/upgrade/upgrade_with_alternative_urls.rs +++ b/rs/tests/consensus/upgrade/upgrade_with_alternative_urls.rs @@ -6,15 +6,15 @@ Goal:: Orchestrator can download the release package, even when the replica vers contains many faulty and only one valid URLs download URLs. Description:: -We deploy a fast single node subnet. Then, we make a proposal and bless a replica version +We deploy a fast single node subnet. Then, we make a proposal and elect a replica version with one valid and multiple invalid download URLs. Then, we propose to upgrade the replica -version of that subnet to the newly blessed version. We expect that the orchestrator can +version of that subnet to the newly elected version. We expect that the orchestrator can download the release image via the valid URL. Runbook:: . Deploy an IC with a single-node root subnet. -. Bless the test replica version with multiple URLs, among which only one is correct. -. Upgrade the replica version of the subnet to the newly blessed replica version. +. Elect the test replica version with multiple URLs, among which only one is correct. +. Upgrade the replica version of the subnet to the newly elected replica version. Success:: . The replica restarts, which is a sign of the node having downloaded and verified the new @@ -25,8 +25,8 @@ end::catalog[] */ use anyhow::Result; use ic_consensus_system_test_utils::rw_message::install_nns_and_check_progress; use ic_consensus_system_test_utils::upgrade::{ - assert_assigned_replica_version, bless_replica_version_with_urls, - deploy_guestos_to_all_subnet_nodes, get_assigned_replica_version, + assert_assigned_replica_version, deploy_guestos_to_all_subnet_nodes, + elect_replica_version_with_urls, get_assigned_replica_version, }; use ic_registry_subnet_type::SubnetType; use ic_system_test_driver::driver::group::SystemTestGroup; @@ -80,10 +80,11 @@ fn test(env: TestEnv) { info!( logger, - "Blessing the test replica version with multiple URLs: {:?}", release_package_urls + "Electing the test replica version with multiple URLs: {:?}", release_package_urls ); - block_on(bless_replica_version_with_urls( + block_on(elect_replica_version_with_urls( &nns_node, + &env.topology_snapshot(), &target_version, release_package_urls, get_guestos_update_img_sha256(), diff --git a/rs/tests/consensus/utils/BUILD.bazel b/rs/tests/consensus/utils/BUILD.bazel index 2970d55828ee..0b2048fb6e0c 100644 --- a/rs/tests/consensus/utils/BUILD.bazel +++ b/rs/tests/consensus/utils/BUILD.bazel @@ -22,7 +22,6 @@ rust_library( "//rs/protobuf", "//rs/registry/canister", "//rs/registry/keys", - "//rs/registry/nns_data_provider", "//rs/registry/subnet_type", "//rs/rust_canisters/canister_test", "//rs/tests/consensus/tecdsa/utils", diff --git a/rs/tests/consensus/utils/Cargo.toml b/rs/tests/consensus/utils/Cargo.toml index 0b68b9f5d553..738287507674 100644 --- a/rs/tests/consensus/utils/Cargo.toml +++ b/rs/tests/consensus/utils/Cargo.toml @@ -25,7 +25,6 @@ ic-nns-constants = { path = "../../../nns/constants" } ic-nns-governance-api = { path = "../../../nns/governance/api" } ic-protobuf = { path = "../../../protobuf" } ic-registry-keys = { path = "../../../registry/keys" } -ic-registry-nns-data-provider = { path = "../../../registry/nns_data_provider" } ic-registry-subnet-type = { path = "../../../registry/subnet_type" } ic-system-test-driver = { path = "../../driver" } ic-types = { path = "../../../types/types" } diff --git a/rs/tests/consensus/utils/src/upgrade.rs b/rs/tests/consensus/utils/src/upgrade.rs index c4278a9a60bd..5673db01e538 100644 --- a/rs/tests/consensus/utils/src/upgrade.rs +++ b/rs/tests/consensus/utils/src/upgrade.rs @@ -2,9 +2,7 @@ use anyhow::{Result, bail}; use ic_canister_client::Sender; use ic_nervous_system_common_test_keys::{TEST_NEURON_1_ID, TEST_NEURON_1_OWNER_KEYPAIR}; use ic_nns_common::types::NeuronId; -use ic_protobuf::registry::replica_version::v1::{BlessedReplicaVersions, GuestLaunchMeasurements}; -use ic_registry_keys::make_blessed_replica_versions_key; -use ic_registry_nns_data_provider::registry::RegistryCanister; +use ic_protobuf::registry::replica_version::v1::GuestLaunchMeasurements; use ic_system_test_driver::{ driver::{group::assert_no_critical_errors, test_env_api::*}, nns::{ @@ -15,21 +13,16 @@ use ic_system_test_driver::{ util::runtime_from_url, }; use ic_types::{ReplicaVersion, SubnetId, messages::ReplicaHealthStatus}; -use prost::Message; use slog::{Logger, info}; use std::{convert::TryFrom, io::Read, path::Path}; -pub async fn get_blessed_replica_versions( - registry_canister: &RegistryCanister, -) -> BlessedReplicaVersions { - let blessed_vers_result = registry_canister - .get_value( - make_blessed_replica_versions_key().as_bytes().to_vec(), - None, - ) - .await - .unwrap(); - BlessedReplicaVersions::decode(&*blessed_vers_result.0).unwrap() +pub async fn get_elected_replica_versions(topology: &TopologySnapshot) -> Vec { + topology + .replica_version_records() + .unwrap() + .into_iter() + .map(|(k, _)| k) + .collect() } /// Reads the replica version from an unassigned node. @@ -136,16 +129,18 @@ pub fn get_assigned_replica_version(node: &IcNodeSnapshot) -> Result, upgrade_url: Vec, ) { - bless_replica_version_with_urls( + elect_replica_version_with_urls( nns_node, + topology, target_version, upgrade_url, sha256, @@ -155,8 +150,9 @@ pub async fn bless_replica_version( .await; } -pub async fn bless_replica_version_with_urls( +pub async fn elect_replica_version_with_urls( nns_node: &IcNodeSnapshot, + topology: &TopologySnapshot, target_version: &ReplicaVersion, release_package_urls: Vec, sha256: String, @@ -165,15 +161,14 @@ pub async fn bless_replica_version_with_urls( ) { let nns = runtime_from_url(nns_node.get_public_url(), nns_node.effective_canister_id()); let governance_canister = get_governance_canister(&nns); - let registry_canister = RegistryCanister::new(vec![nns_node.get_public_url()]); let test_neuron_id = NeuronId(TEST_NEURON_1_ID); let proposal_sender = Sender::from_keypair(&TEST_NEURON_1_OWNER_KEYPAIR); - let blessed_versions = get_blessed_replica_versions(®istry_canister).await; - info!(logger, "Initial: {:?}", blessed_versions); + let replica_versions = get_elected_replica_versions(topology).await; + info!(logger, "Initial: {:?}", replica_versions); info!( logger, - "Blessing replica version {} with sha256 {}", target_version, sha256 + "Adding replica version {} with sha256 {}", target_version, sha256 ); let proposal_id = submit_update_elected_replica_versions_proposal( @@ -188,8 +183,8 @@ pub async fn bless_replica_version_with_urls( ) .await; vote_execute_proposal_assert_executed(&governance_canister, proposal_id).await; - let blessed_versions = get_blessed_replica_versions(®istry_canister).await; - info!(logger, "Updated: {:?}", blessed_versions); + let replica_versions = get_elected_replica_versions(topology).await; + info!(logger, "Updated: {:?}", replica_versions); } pub async fn deploy_guestos_to_all_subnet_nodes( diff --git a/rs/tests/dre/guest_os_qualification.rs b/rs/tests/dre/guest_os_qualification.rs index baec5203b8c0..c933986ea114 100644 --- a/rs/tests/dre/guest_os_qualification.rs +++ b/rs/tests/dre/guest_os_qualification.rs @@ -99,7 +99,7 @@ pub fn main() -> anyhow::Result<()> { .build() .expect("Should be able to build runtime"), vec![ - // Ensure that the initial version is blessed + // Ensure that the initial version is elected // Since we are using our config this should // always be the case. Box::new(EnsureElectedVersion { @@ -135,7 +135,7 @@ pub fn main() -> anyhow::Result<()> { Box::new(UpdateApiBoundaryNodes { version: initial_version.clone(), }), - // Ensure that the new version is blessed + // Ensure that the new version is elected Box::new(EnsureElectedVersion { version: target_version.clone(), url: get_guestos_update_img_url(), @@ -190,7 +190,7 @@ pub fn main() -> anyhow::Result<()> { Box::new(RetireElectedVersions { versions: vec![initial_version.clone()], }), - // Ensure that the old version is blessed + // Ensure that the old version is elected // if it was retired previously Box::new(EnsureElectedVersion { version: initial_version.clone(), diff --git a/rs/tests/dre/utils/steps/ensure_elected_version.rs b/rs/tests/dre/utils/steps/ensure_elected_version.rs index f0ef009c8855..1bd574b74c11 100644 --- a/rs/tests/dre/utils/steps/ensure_elected_version.rs +++ b/rs/tests/dre/utils/steps/ensure_elected_version.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use ic_consensus_system_test_utils::upgrade::bless_replica_version_with_urls; +use ic_consensus_system_test_utils::upgrade::elect_replica_version_with_urls; use ic_protobuf::registry::replica_version::v1::GuestLaunchMeasurements; use ic_system_test_driver::driver::test_env_api::{ GetFirstHealthyNodeSnapshot, HasTopologySnapshot, @@ -26,9 +26,12 @@ impl Step for EnsureElectedVersion { env: ic_system_test_driver::driver::test_env::TestEnv, rt: Handle, ) -> anyhow::Result<()> { - let elected_versions = env.topology_snapshot().elected_replica_versions()?; - if elected_versions.iter().any(|v| v == self.version.as_ref()) { - info!(env.logger(), "Version `{}` already blessed", self.version); + let elected_versions = env.topology_snapshot().replica_version_records()?; + if elected_versions + .iter() + .any(|(k, _)| k == self.version.as_ref()) + { + info!(env.logger(), "Version `{}` already elected", self.version); return Ok(()); } @@ -36,8 +39,9 @@ impl Step for EnsureElectedVersion { info!(env.logger(), "Upgrade URL: {}", self.url); - rt.block_on(bless_replica_version_with_urls( + rt.block_on(elect_replica_version_with_urls( &nns_node, + &env.topology_snapshot(), &self.version, vec![self.url.to_string()], self.sha256.clone(), @@ -54,11 +58,14 @@ impl Step for EnsureElectedVersion { ), )?; - let elected_versions = new_snapshot.elected_replica_versions()?; + let elected_versions = new_snapshot.replica_version_records()?; - match elected_versions.iter().any(|v| v == self.version.as_ref()) { + match elected_versions + .iter() + .any(|(k, _)| k == self.version.as_ref()) + { true => Ok(()), - false => Err(anyhow::anyhow!("Blessed version not found in the registry")), + false => Err(anyhow::anyhow!("Version not found in the registry")), } } } diff --git a/rs/tests/dre/utils/steps/retire_elected_version.rs b/rs/tests/dre/utils/steps/retire_elected_version.rs index 89689166c0eb..2d6a5aab0df3 100644 --- a/rs/tests/dre/utils/steps/retire_elected_version.rs +++ b/rs/tests/dre/utils/steps/retire_elected_version.rs @@ -28,20 +28,19 @@ impl Step for RetireElectedVersions { env: ic_system_test_driver::driver::test_env::TestEnv, rt: tokio::runtime::Handle, ) -> anyhow::Result<()> { - let elected_versions = env.topology_snapshot().elected_replica_versions()?; let replica_versions = env.topology_snapshot().replica_version_records()?; let mut versions_to_unelect = self .versions .iter() - .filter(|version| elected_versions.iter().any(|v| v == version.as_ref())) + .filter(|version| replica_versions.iter().any(|(k, _)| k == version.as_ref())) .cloned() .collect_vec(); if versions_to_unelect.is_empty() { info!( env.logger(), - "Versions {} are not blessed", + "Versions {} are not elected", self.versions.iter().join(", ") ); return Ok(()); @@ -66,7 +65,7 @@ impl Step for RetireElectedVersions { }) .unwrap_or_else(|| { panic!( - "Blessed replica version with key {} not found in records: {}", + "Elected replica version with key {} not found in records: {}", r, replica_versions.iter().map(|(k, _)| k).join(", ") ) diff --git a/rs/tests/message_routing/xnet/xnet_compatibility.rs b/rs/tests/message_routing/xnet/xnet_compatibility.rs index d4ca8973dcb4..48d011a6f63e 100644 --- a/rs/tests/message_routing/xnet/xnet_compatibility.rs +++ b/rs/tests/message_routing/xnet/xnet_compatibility.rs @@ -6,7 +6,7 @@ Goal:: Ensure IC upgrade doesn't break XNet communication Runbook:: 0. Deploy 1 root and 2 app subnets and install NNS canisters onto root, all running mainnet version. -1. Bless current version. +1. Elect current version. 2. Deploy and start XNet test canisters for long running XNet test 3. Run XNet test between two app subnets (success criteria same as for SLO test). 4. Upgrade one app subnet to current version. @@ -26,7 +26,7 @@ end::catalog[] */ use anyhow::Result; use ic_consensus_system_test_utils::rw_message::install_nns_and_check_progress; use ic_consensus_system_test_utils::upgrade::{ - assert_assigned_replica_version, bless_replica_version, deploy_guestos_to_all_subnet_nodes, + assert_assigned_replica_version, deploy_guestos_to_all_subnet_nodes, elect_replica_version, }; use ic_registry_subnet_type::SubnetType; use ic_system_test_driver::driver::group::SystemTestGroup; @@ -156,13 +156,14 @@ pub async fn test_async(env: TestEnv) { let (upgrade_subnet_id, _, upgrade_node) = app_subnets.first().unwrap(); - info!(&logger, "Blessing upgrade version."); + info!(&logger, "Electing upgrade version."); let sha256 = get_guestos_update_img_sha256(); let upgrade_url = get_guestos_update_img_url(); let guest_launch_measurements = get_guestos_update_launch_measurements(); - bless_replica_version( + elect_replica_version( &nns_node, + &env.topology_snapshot(), &branch_version, &logger, sha256, @@ -171,7 +172,7 @@ pub async fn test_async(env: TestEnv) { ) .await; - info!(&logger, "Blessed all versions."); + info!(&logger, "Elected all versions."); info!(&logger, "Starting long running XNet load"); let runtimes = app_subnet_runtimes.clone().collect::>(); diff --git a/rs/tests/nested/nns_recovery/common.rs b/rs/tests/nested/nns_recovery/common.rs index 523e06ee3f47..2a5c8032defd 100644 --- a/rs/tests/nested/nns_recovery/common.rs +++ b/rs/tests/nested/nns_recovery/common.rs @@ -16,7 +16,7 @@ use ic_consensus_system_test_utils::{ update_subnet_record, wait_until_authentication_is_granted, }, subnet::assert_subnet_is_healthy, - upgrade::{assert_assigned_replica_version, bless_replica_version}, + upgrade::{assert_assigned_replica_version, elect_replica_version}, }; use ic_nervous_system_root::change_canister::AddCanisterRequest; use ic_recovery::{ @@ -390,8 +390,9 @@ pub fn test(env: TestEnv, cfg: TestConfig) { if !cfg.add_upgrade_version { // If ic-recovery does not add the new version to the registry, then we must elect it now. if cfg.use_mainnet_state { - block_on(ProposalWithMainnetState::bless_replica_version( + block_on(ProposalWithMainnetState::elect_replica_version( &nns_node, + &env.topology_snapshot(), &upgrade_version, &logger, upgrade_image_hash.clone(), @@ -399,8 +400,9 @@ pub fn test(env: TestEnv, cfg: TestConfig) { vec![upgrade_image_url.to_string()], )) } else { - block_on(bless_replica_version( + block_on(elect_replica_version( &nns_node, + &env.topology_snapshot(), &upgrade_version, &logger, upgrade_image_hash.clone(), diff --git a/rs/tests/networking/nns_delegation_test.rs b/rs/tests/networking/nns_delegation_test.rs index b25d342cb704..9132189332ea 100644 --- a/rs/tests/networking/nns_delegation_test.rs +++ b/rs/tests/networking/nns_delegation_test.rs @@ -43,7 +43,7 @@ use ic_certification::verify_delegation_certificate; use ic_consensus_system_test_utils::{ rw_message::install_nns_and_check_progress, upgrade::{ - assert_assigned_replica_version, bless_replica_version, deploy_guestos_to_all_subnet_nodes, + assert_assigned_replica_version, deploy_guestos_to_all_subnet_nodes, elect_replica_version, }, }; use ic_crypto_tree_hash::{LabeledTree, lookup_path}; @@ -764,8 +764,9 @@ fn upgrade_non_nns_subnets_if_necessary(env: &TestEnv) { let sha256 = get_guestos_update_img_sha256(); let upgrade_url = get_guestos_update_img_url(); - block_on(bless_replica_version( + block_on(elect_replica_version( &nns_node, + &env.topology_snapshot(), &target_version, &env.logger(), sha256, diff --git a/rs/tests/testnets/mainnet_nns/BUILD.bazel b/rs/tests/testnets/mainnet_nns/BUILD.bazel index f1aa41f9eb1f..4fcf5f1ea475 100644 --- a/rs/tests/testnets/mainnet_nns/BUILD.bazel +++ b/rs/tests/testnets/mainnet_nns/BUILD.bazel @@ -24,7 +24,6 @@ rust_library( "//rs/protobuf", "//rs/registry/canister", "//rs/registry/keys", - "//rs/registry/nns_data_provider", "//rs/registry/subnet_type", "//rs/tests/consensus/utils", "//rs/tests/driver:ic-system-test-driver", diff --git a/rs/tests/testnets/mainnet_nns/Cargo.toml b/rs/tests/testnets/mainnet_nns/Cargo.toml index 0ed26d45c781..dde10e83a035 100644 --- a/rs/tests/testnets/mainnet_nns/Cargo.toml +++ b/rs/tests/testnets/mainnet_nns/Cargo.toml @@ -22,7 +22,6 @@ ic-nns-governance-api = { path = "../../../nns/governance/api" } ic-nns-test-utils = { path = "../../../nns/test_utils" } ic-protobuf = { path = "../../../protobuf" } ic-registry-keys = { path = "../../../registry/keys" } -ic-registry-nns-data-provider = { path = "../../../registry/nns_data_provider" } ic-registry-subnet-type = { path = "../../../registry/subnet_type" } ic-system-test-driver = { path = "../../driver" } ic-types = { path = "../../../types/types" } diff --git a/rs/tests/testnets/mainnet_nns/src/lib.rs b/rs/tests/testnets/mainnet_nns/src/lib.rs index 56ff48961861..2a4e1550ffc8 100644 --- a/rs/tests/testnets/mainnet_nns/src/lib.rs +++ b/rs/tests/testnets/mainnet_nns/src/lib.rs @@ -651,8 +651,9 @@ async fn test_recovered_nns(env: &TestEnv, nns_node: &IcNodeSnapshot) { let logger = env.logger(); info!(logger, "Testing recovered NNS ..."); - ProposalWithMainnetState::bless_replica_version( + ProposalWithMainnetState::elect_replica_version( nns_node, + &env.topology_snapshot(), &ReplicaVersion::try_from("1111111111111111111111111111111111111111").unwrap(), &logger, "2222222222222222222222222222222222222222222222222222222222222222".to_string(), diff --git a/rs/tests/testnets/mainnet_nns/src/proposals.rs b/rs/tests/testnets/mainnet_nns/src/proposals.rs index 3e9a9f1870b3..41533603ebed 100644 --- a/rs/tests/testnets/mainnet_nns/src/proposals.rs +++ b/rs/tests/testnets/mainnet_nns/src/proposals.rs @@ -1,6 +1,6 @@ use ic_canister_client::Sender; use ic_canister_client_sender::SigKeys; -use ic_consensus_system_test_utils::upgrade::get_blessed_replica_versions; +use ic_consensus_system_test_utils::upgrade::get_elected_replica_versions; use ic_nervous_system_root::change_canister::AddCanisterRequest; use ic_nns_common::types::NeuronId; use ic_nns_constants::REGISTRY_CANISTER_ID; @@ -16,11 +16,10 @@ use ic_protobuf::registry::{ nns::v1::NnsCanisterRecords, replica_version::v1::GuestLaunchMeasurements, }; use ic_registry_keys::make_nns_canister_records_key; -use ic_registry_nns_data_provider::registry::RegistryCanister; use ic_system_test_driver::{ driver::{ test_env::{TestEnv, TestEnvAttribute}, - test_env_api::{HasPublicApiUrl, IcNodeSnapshot}, + test_env_api::{HasPublicApiUrl, IcNodeSnapshot, TopologySnapshot}, }, nns::{get_canister, get_governance_canister, submit_update_elected_replica_versions_proposal}, util::runtime_from_url, @@ -150,9 +149,10 @@ impl ProposalWithMainnetState { CanisterId::try_from(new_canister_record.id.clone().unwrap()).unwrap() } - /// Code duplicate of rs/tests/consensus/utils/src/upgrade.rs:bless_replica_version - pub async fn bless_replica_version( + /// Code duplicate of rs/tests/consensus/utils/src/upgrade.rs:elect_replica_version + pub async fn elect_replica_version( nns_node: &IcNodeSnapshot, + topology: &TopologySnapshot, target_version: &ReplicaVersion, logger: &Logger, sha256: String, @@ -163,15 +163,14 @@ impl ProposalWithMainnetState { let nns = runtime_from_url(nns_node.get_public_url(), REGISTRY_CANISTER_ID.into()); let governance_canister = get_governance_canister(&nns); - let registry_canister = RegistryCanister::new(vec![nns_node.get_public_url()]); let neuron_id = self_.neuron_id; let proposal_sender = self_.proposal_sender.clone(); - let blessed_versions = get_blessed_replica_versions(®istry_canister).await; - info!(logger, "Initial: {:?}", blessed_versions); + let elected_versions = get_elected_replica_versions(topology).await; + info!(logger, "Initial: {:?}", elected_versions); info!( logger, - "Blessing replica version {:?} with sha256 {:?} using neuron {:?}", + "Electing replica version {:?} with sha256 {:?} using neuron {:?}", target_version, sha256, neuron_id @@ -189,8 +188,8 @@ impl ProposalWithMainnetState { ) .await; wait_for_final_state(&governance_canister, proposal_id).await; - let blessed_versions = get_blessed_replica_versions(®istry_canister).await; - info!(logger, "Updated: {:?}", blessed_versions); + let elected_versions = get_elected_replica_versions(topology).await; + info!(logger, "Updated: {:?}", elected_versions); } /// Code duplicate of rs/tests/consensus/utils/src/ssh_access.rs:update_subnet_record