本文整理汇总了TypeScript中@spinnaker/core.NameUtils.parseLoadBalancerName方法的典型用法代码示例。如果您正苦于以下问题:TypeScript NameUtils.parseLoadBalancerName方法的具体用法?TypeScript NameUtils.parseLoadBalancerName怎么用?TypeScript NameUtils.parseLoadBalancerName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@spinnaker/core.NameUtils
的用法示例。
在下文中一共展示了NameUtils.parseLoadBalancerName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: convertNetworkLoadBalancerForEditing
public convertNetworkLoadBalancerForEditing(
loadBalancer: IAmazonApplicationLoadBalancer,
): IAmazonNetworkLoadBalancerUpsertCommand {
const applicationName = NameUtils.parseLoadBalancerName(loadBalancer.name).application;
// Since we build up toEdit as we go, much easier to declare as any, then cast at return time.
const toEdit: IAmazonNetworkLoadBalancerUpsertCommand = {
availabilityZones: undefined,
isInternal: loadBalancer.isInternal,
region: loadBalancer.region,
loadBalancerType: 'network',
cloudProvider: loadBalancer.cloudProvider,
credentials: loadBalancer.account || loadBalancer.credentials,
listeners: [],
targetGroups: [],
name: loadBalancer.name,
regionZones: loadBalancer.availabilityZones,
securityGroups: [],
subnetType: loadBalancer.subnetType,
vpcId: undefined,
};
if (loadBalancer.elb) {
const elb = loadBalancer.elb as INetworkLoadBalancerSourceData;
toEdit.securityGroups = elb.securityGroups;
toEdit.vpcId = elb.vpcid || elb.vpcId;
// Convert listeners
if (elb.listeners) {
toEdit.listeners = elb.listeners.map(listener => {
const certificates: IALBListenerCertificate[] = [];
if (listener.certificates) {
listener.certificates.forEach(cert => {
const certArnParts = cert.certificateArn.split(':');
const certParts = certArnParts[5].split('/');
certificates.push({
certificateArn: cert.certificateArn,
type: certArnParts[2],
name: certParts[1],
});
});
}
(listener.defaultActions || []).forEach(action => {
if (action.targetGroupName) {
action.targetGroupName = action.targetGroupName.replace(`${applicationName}-`, '');
}
});
// Remove the default rule because it already exists in defaultActions
listener.rules = (listener.rules || []).filter(l => !l.default);
listener.rules.forEach(rule => {
(rule.actions || []).forEach(action => {
if (action.targetGroupName) {
action.targetGroupName = action.targetGroupName.replace(`${applicationName}-`, '');
}
});
rule.conditions = rule.conditions || [];
});
// Sort listener.rules by priority.
listener.rules.sort((a, b) => (a.priority as number) - (b.priority as number));
return {
protocol: listener.protocol,
port: listener.port,
defaultActions: listener.defaultActions,
certificates,
rules: listener.rules || [],
sslPolicy: listener.sslPolicy,
};
});
}
// Convert target groups
if (elb.targetGroups) {
toEdit.targetGroups = elb.targetGroups.map((targetGroup: any) => {
return {
name: targetGroup.targetGroupName.replace(`${applicationName}-`, ''),
protocol: targetGroup.protocol,
port: targetGroup.port,
targetType: targetGroup.targetType,
healthCheckProtocol: targetGroup.healthCheckProtocol,
healthCheckPort: targetGroup.healthCheckPort,
healthCheckTimeout: targetGroup.healthCheckTimeoutSeconds,
healthCheckInterval: targetGroup.healthCheckIntervalSeconds,
healthyThreshold: targetGroup.healthyThresholdCount,
unhealthyThreshold: targetGroup.unhealthyThresholdCount,
attributes: {
deregistrationDelay: Number(targetGroup.attributes['deregistration_delay.timeout_seconds']),
},
};
});
}
}
return toEdit;
}