当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript NameUtils.parseLoadBalancerName方法代码示例

本文整理汇总了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;
  }
开发者ID:mizzy,项目名称:deck,代码行数:97,代码来源:loadBalancer.transformer.ts


注:本文中的@spinnaker/core.NameUtils.parseLoadBalancerName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。