Support not switching routes when VBR health check fails.

This commit is contained in:
sdk-team
2021-12-01 06:21:45 +00:00
parent e2a8813a1b
commit 6bdc46aefb
8 changed files with 52 additions and 28 deletions

View File

@@ -43,34 +43,36 @@ void DescribeCenVbrHealthCheckResult::parse(const std::string &payload)
for (auto valueVbrHealthChecksVbrHealthCheck : allVbrHealthChecksNode)
{
VbrHealthCheck vbrHealthChecksObject;
if(!valueVbrHealthChecksVbrHealthCheck["CenId"].isNull())
vbrHealthChecksObject.cenId = valueVbrHealthChecksVbrHealthCheck["CenId"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["VbrInstanceId"].isNull())
vbrHealthChecksObject.vbrInstanceId = valueVbrHealthChecksVbrHealthCheck["VbrInstanceId"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["LinkStatus"].isNull())
vbrHealthChecksObject.linkStatus = valueVbrHealthChecksVbrHealthCheck["LinkStatus"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["PacketLoss"].isNull())
vbrHealthChecksObject.packetLoss = std::stol(valueVbrHealthChecksVbrHealthCheck["PacketLoss"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckSourceIp"].isNull())
vbrHealthChecksObject.healthCheckSourceIp = valueVbrHealthChecksVbrHealthCheck["HealthCheckSourceIp"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckTargetIp"].isNull())
vbrHealthChecksObject.healthCheckTargetIp = valueVbrHealthChecksVbrHealthCheck["HealthCheckTargetIp"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["Delay"].isNull())
vbrHealthChecksObject.delay = std::stol(valueVbrHealthChecksVbrHealthCheck["Delay"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckInterval"].isNull())
vbrHealthChecksObject.healthCheckInterval = std::stoi(valueVbrHealthChecksVbrHealthCheck["HealthCheckInterval"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["HealthyThreshold"].isNull())
vbrHealthChecksObject.healthyThreshold = std::stoi(valueVbrHealthChecksVbrHealthCheck["HealthyThreshold"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["VbrInstanceId"].isNull())
vbrHealthChecksObject.vbrInstanceId = valueVbrHealthChecksVbrHealthCheck["VbrInstanceId"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["VbrInstanceRegionId"].isNull())
vbrHealthChecksObject.vbrInstanceRegionId = valueVbrHealthChecksVbrHealthCheck["VbrInstanceRegionId"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["Delay"].isNull())
vbrHealthChecksObject.delay = std::stol(valueVbrHealthChecksVbrHealthCheck["Delay"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["LinkStatus"].isNull())
vbrHealthChecksObject.linkStatus = valueVbrHealthChecksVbrHealthCheck["LinkStatus"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["CenId"].isNull())
vbrHealthChecksObject.cenId = valueVbrHealthChecksVbrHealthCheck["CenId"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["HealthyThreshold"].isNull())
vbrHealthChecksObject.healthyThreshold = std::stoi(valueVbrHealthChecksVbrHealthCheck["HealthyThreshold"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckInterval"].isNull())
vbrHealthChecksObject.healthCheckInterval = std::stoi(valueVbrHealthChecksVbrHealthCheck["HealthCheckInterval"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckSourceIp"].isNull())
vbrHealthChecksObject.healthCheckSourceIp = valueVbrHealthChecksVbrHealthCheck["HealthCheckSourceIp"].asString();
if(!valueVbrHealthChecksVbrHealthCheck["PacketLoss"].isNull())
vbrHealthChecksObject.packetLoss = std::stol(valueVbrHealthChecksVbrHealthCheck["PacketLoss"].asString());
if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckOnly"].isNull())
vbrHealthChecksObject.healthCheckOnly = valueVbrHealthChecksVbrHealthCheck["HealthCheckOnly"].asString() == "true";
vbrHealthChecks_.push_back(vbrHealthChecksObject);
}
if(!value["TotalCount"].isNull())
totalCount_ = std::stoi(value["TotalCount"].asString());
if(!value["PageNumber"].isNull())
pageNumber_ = std::stoi(value["PageNumber"].asString());
if(!value["PageSize"].isNull())
pageSize_ = std::stoi(value["PageSize"].asString());
if(!value["PageNumber"].isNull())
pageNumber_ = std::stoi(value["PageNumber"].asString());
if(!value["TotalCount"].isNull())
totalCount_ = std::stoi(value["TotalCount"].asString());
}

View File

@@ -43,16 +43,18 @@ void DescribeGrantRulesToCenResult::parse(const std::string &payload)
for (auto valueGrantRulesGrantRule : allGrantRulesNode)
{
GrantRule grantRulesObject;
if(!valueGrantRulesGrantRule["CenId"].isNull())
grantRulesObject.cenId = valueGrantRulesGrantRule["CenId"].asString();
if(!valueGrantRulesGrantRule["ChildInstanceRegionId"].isNull())
grantRulesObject.childInstanceRegionId = valueGrantRulesGrantRule["ChildInstanceRegionId"].asString();
if(!valueGrantRulesGrantRule["ChildInstanceType"].isNull())
grantRulesObject.childInstanceType = valueGrantRulesGrantRule["ChildInstanceType"].asString();
if(!valueGrantRulesGrantRule["ChildInstanceId"].isNull())
grantRulesObject.childInstanceId = valueGrantRulesGrantRule["ChildInstanceId"].asString();
if(!valueGrantRulesGrantRule["ChildInstanceRegionId"].isNull())
grantRulesObject.childInstanceRegionId = valueGrantRulesGrantRule["ChildInstanceRegionId"].asString();
if(!valueGrantRulesGrantRule["ChildInstanceOwnerId"].isNull())
grantRulesObject.childInstanceOwnerId = std::stol(valueGrantRulesGrantRule["ChildInstanceOwnerId"].asString());
if(!valueGrantRulesGrantRule["ChildInstanceId"].isNull())
grantRulesObject.childInstanceId = valueGrantRulesGrantRule["ChildInstanceId"].asString();
if(!valueGrantRulesGrantRule["CenId"].isNull())
grantRulesObject.cenId = valueGrantRulesGrantRule["CenId"].asString();
if(!valueGrantRulesGrantRule["OrderType"].isNull())
grantRulesObject.orderType = valueGrantRulesGrantRule["OrderType"].asString();
grantRules_.push_back(grantRulesObject);
}

View File

@@ -82,6 +82,17 @@ void EnableCenVbrHealthCheckRequest::setVbrInstanceOwnerId(long vbrInstanceOwner
setParameter("VbrInstanceOwnerId", std::to_string(vbrInstanceOwnerId));
}
bool EnableCenVbrHealthCheckRequest::getHealthCheckOnly()const
{
return healthCheckOnly_;
}
void EnableCenVbrHealthCheckRequest::setHealthCheckOnly(bool healthCheckOnly)
{
healthCheckOnly_ = healthCheckOnly;
setParameter("HealthCheckOnly", healthCheckOnly ? "true" : "false");
}
std::string EnableCenVbrHealthCheckRequest::getVbrInstanceRegionId()const
{
return vbrInstanceRegionId_;