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


Golang api.RouteTargetReference类代码示例

本文整理汇总了Golang中github.com/openshift/origin/pkg/route/api.RouteTargetReference的典型用法代码示例。如果您正苦于以下问题:Golang RouteTargetReference类的具体用法?Golang RouteTargetReference怎么用?Golang RouteTargetReference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了RouteTargetReference类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: autoConvert_v1_RouteTargetReference_To_api_RouteTargetReference

func autoConvert_v1_RouteTargetReference_To_api_RouteTargetReference(in *RouteTargetReference, out *route_api.RouteTargetReference, s conversion.Scope) error {
	SetDefaults_RouteTargetReference(in)
	out.Kind = in.Kind
	out.Name = in.Name
	out.Weight = in.Weight
	return nil
}
开发者ID:Xmagicer,项目名称:origin,代码行数:7,代码来源:conversion_generated.go

示例2: autoConvert_v1_RouteTargetReference_To_api_RouteTargetReference

func autoConvert_v1_RouteTargetReference_To_api_RouteTargetReference(in *RouteTargetReference, out *route_api.RouteTargetReference, s conversion.Scope) error {
	SetDefaults_RouteTargetReference(in)
	out.Kind = in.Kind
	out.Name = in.Name
	if in.Weight != nil {
		in, out := &in.Weight, &out.Weight
		*out = new(int32)
		**out = **in
	} else {
		out.Weight = nil
	}
	return nil
}
开发者ID:rhamilto,项目名称:origin,代码行数:13,代码来源:conversion_generated.go

示例3: Apply

// Apply alters the weights of two services.
func (input *BackendInput) Apply(ref, to *routeapi.RouteTargetReference, backends []routeapi.RouteTargetReference) {
	weight := int32(100)
	if ref.Weight != nil {
		weight = *ref.Weight
	}
	switch {
	case input.Percentage:
		if to == nil {
			weight += (weight * input.Value) / 100
			ref.Weight = &weight
			return
		}

		otherWeight := int32(0)
		if to.Weight != nil {
			otherWeight = *to.Weight
		}
		previousWeight := weight + otherWeight

		// rebalance all other backends to be relative in weight to the current
		for i, other := range backends {
			if previousWeight == 0 || other.Weight == nil || other.Name == ref.Name || other.Name == to.Name {
				continue
			}
			adjusted := *other.Weight * 100 / previousWeight
			backends[i].Weight = &adjusted
		}

		// adjust the weight between ref and to
		target := float32(input.Value) / 100
		if input.Relative {
			if previousWeight != 0 {
				percent := float32(weight) / float32(previousWeight)
				target = percent + target
			}
		}
		switch {
		case target < 0:
			target = 0
		case target > 1:
			target = 1
		}
		weight = int32(target * 100)
		otherWeight = int32((1 - target) * 100)
		ref.Weight = &weight
		to.Weight = &otherWeight

		// rescale the max to 200 in case we are dealing with very small percentages
		max := int32(0)
		for _, other := range backends {
			if other.Weight == nil {
				continue
			}
			if *other.Weight > max {
				max = *other.Weight
			}
		}
		if max > 256 {
			for i, other := range backends {
				if other.Weight == nil || *other.Weight == 0 {
					continue
				}
				adjusted := 200 * *other.Weight / max
				if adjusted < 1 {
					adjusted = 1
				}
				backends[i].Weight = &adjusted
			}
		}

	case input.Relative:
		weight += input.Value
		if weight < 0 {
			weight = 0
		}
		ref.Weight = &weight

	default:
		ref.Weight = &input.Value
	}
}
开发者ID:juanluisvaladas,项目名称:origin,代码行数:82,代码来源:routebackends.go

示例4: autoConvert_v1_RouteTargetReference_To_api_RouteTargetReference

func autoConvert_v1_RouteTargetReference_To_api_RouteTargetReference(in *RouteTargetReference, out *api.RouteTargetReference, s conversion.Scope) error {
	out.Kind = in.Kind
	out.Name = in.Name
	out.Weight = (*int32)(unsafe.Pointer(in.Weight))
	return nil
}
开发者ID:xgwang-zte,项目名称:origin,代码行数:6,代码来源:zz_generated.conversion.go


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