Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
Signed-off-by: Yan Avlasov <yavlasov@google.com>
  • Loading branch information
yanavlasov committed Apr 17, 2020
1 parent 2c03a4f commit e2be83f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
14 changes: 7 additions & 7 deletions source/common/upstream/cluster_manager_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,12 @@ void ClusterManagerInitHelper::maybeFinishInitialize() {
// Do not do anything if we are still doing the initial static load or if we are waiting for
// CDS initialize.
ENVOY_LOG(debug, "maybe finish initialize state: {}", enumToInt(state_));
if (state_ == State::Loading || state_ == State::WaitingForCdsInitialize) {
if (state_ == State::Loading || state_ == State::WaitingToStartCdsInitialization) {
return;
}

// If we are still waiting for primary clusters to initialize, do nothing.
ASSERT(state_ == State::WaitingForSecondaryInitialize || state_ == State::CdsInitialized);
ASSERT(state_ == State::WaitingToStartSecondaryInitialization || state_ == State::CdsInitialized);
ENVOY_LOG(debug, "maybe finish initialize primary init clusters empty: {}",
primary_init_clusters_.empty());
if (!primary_init_clusters_.empty()) {
Expand Down Expand Up @@ -163,9 +163,9 @@ void ClusterManagerInitHelper::maybeFinishInitialize() {
// directly to initialized.
started_secondary_initialize_ = false;
ENVOY_LOG(debug, "maybe finish initialize cds api ready: {}", cds_ != nullptr);
if (state_ == State::WaitingForSecondaryInitialize && cds_) {
if (state_ == State::WaitingToStartSecondaryInitialization && cds_) {
ENVOY_LOG(info, "cm init: initializing cds");
state_ = State::WaitingForCdsInitialize;
state_ = State::WaitingToStartCdsInitialization;
cds_->initialize();
} else {
ENVOY_LOG(info, "cm init: all clusters initialized");
Expand All @@ -180,11 +180,11 @@ void ClusterManagerInitHelper::onStaticLoadComplete() {
ASSERT(state_ == State::Loading);
// After initialization of primary clusters has completed, transition to
// waiting for signal to initialize secondary clusters and then CDS.
state_ = State::WaitingForSecondaryInitialize;
state_ = State::WaitingToStartSecondaryInitialization;
}

void ClusterManagerInitHelper::startInitializingSecondaryClusters() {
ASSERT(state_ == State::WaitingForSecondaryInitialize);
ASSERT(state_ == State::WaitingToStartSecondaryInitialization);
ENVOY_LOG(debug, "continue initializing secondary clusters");
maybeFinishInitialize();
}
Expand All @@ -194,7 +194,7 @@ void ClusterManagerInitHelper::setCds(CdsApi* cds) {
cds_ = cds;
if (cds_) {
cds_->setInitializedCb([this]() -> void {
ASSERT(state_ == State::WaitingForCdsInitialize);
ASSERT(state_ == State::WaitingToStartCdsInitialization);
state_ = State::CdsInitialized;
maybeFinishInitialize();
});
Expand Down
11 changes: 6 additions & 5 deletions source/common/upstream/cluster_manager_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,17 +110,18 @@ class ClusterManagerInitHelper : Logger::Loggable<Logger::Id::upstream> {
: cm_(cm), per_cluster_init_callback_(per_cluster_init_callback) {}

enum class State {
// Initial state. During this state all static clusters are loaded. Any phase 1 clusters
// Initial state. During this state all static clusters are loaded. Any primary clusters
// are immediately initialized.
Loading,
// During this state we wait to start initializing secondary clusters. In this state all
// phase 1 clusters have completed initialization. Initialization of the secondary clusters
// During this state cluster manager waits to start initializing secondary clusters. In this
// state all
// primary clusters have completed initialization. Initialization of the secondary clusters
// is started by the `initializeSecondaryClusters` method.
WaitingForSecondaryInitialize,
WaitingToStartSecondaryInitialization,
// In this state cluster manager waits for all secondary clusters (if configured) to finish
// initialization. Then, if CDS is configured, this state tracks waiting for the first CDS
// response to populate dynamically configured clusters.
WaitingForCdsInitialize,
WaitingToStartCdsInitialization,
// During this state, all CDS populated clusters are undergoing either phase 1 or phase 2
// initialization.
CdsInitialized,
Expand Down

0 comments on commit e2be83f

Please sign in to comment.