Skip to content

Commit

Permalink
Updates references per serving v0.9.0 vendoring
Browse files Browse the repository at this point in the history
 - Updates code and tests to refer the required data structure and method/function calls
 - duckv1beta1 -> duckv1 conditions
 - traffic percent value is now *int64
 - containerConcurrency validation method relocation
  • Loading branch information
navidshaikh committed Oct 24, 2019
1 parent fd115ee commit 4fe4672
Show file tree
Hide file tree
Showing 14 changed files with 91 additions and 89 deletions.
8 changes: 4 additions & 4 deletions pkg/kn/commands/human_readable_flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (
"k8s.io/apimachinery/pkg/util/duration"
hprinters "knative.dev/client/pkg/printers"
"knative.dev/pkg/apis"
duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
duckv1 "knative.dev/pkg/apis/duck/v1"
)

// HumanPrintFlags provides default flags necessary for printing.
Expand Down Expand Up @@ -70,7 +70,7 @@ func (f *HumanPrintFlags) EnsureWithNamespace() {
// Private functions

// conditionsValue returns the True conditions count among total conditions
func ConditionsValue(conditions duckv1beta1.Conditions) string {
func ConditionsValue(conditions duckv1.Conditions) string {
var ok int
for _, condition := range conditions {
if condition.Status == "True" {
Expand All @@ -81,7 +81,7 @@ func ConditionsValue(conditions duckv1beta1.Conditions) string {
}

// readyCondition returns status of resource's Ready type condition
func ReadyCondition(conditions duckv1beta1.Conditions) string {
func ReadyCondition(conditions duckv1.Conditions) string {
for _, condition := range conditions {
if condition.Type == apis.ConditionReady {
return string(condition.Status)
Expand All @@ -90,7 +90,7 @@ func ReadyCondition(conditions duckv1beta1.Conditions) string {
return "<unknown>"
}

func NonReadyConditionReason(conditions duckv1beta1.Conditions) string {
func NonReadyConditionReason(conditions duckv1.Conditions) string {
for _, condition := range conditions {
if condition.Type == apis.ConditionReady {
if string(condition.Status) == "True" {
Expand Down
7 changes: 4 additions & 3 deletions pkg/kn/commands/route/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ import (
client_testing "k8s.io/client-go/testing"
"knative.dev/client/pkg/kn/commands"
"knative.dev/client/pkg/util"
"knative.dev/pkg/ptr"
servingv1 "knative.dev/serving/pkg/apis/serving/v1"
"knative.dev/serving/pkg/apis/serving/v1alpha1"
"knative.dev/serving/pkg/apis/serving/v1beta1"
)

func fakeRouteList(args []string, response *v1alpha1.RouteList) (action client_testing.Action, output []string, err error) {
Expand Down Expand Up @@ -115,9 +116,9 @@ func createMockRouteMeta(name string) *v1alpha1.Route {

func createMockTrafficTarget(revision string, percent int) *v1alpha1.TrafficTarget {
return &v1alpha1.TrafficTarget{
TrafficTarget: v1beta1.TrafficTarget{
TrafficTarget: servingv1.TrafficTarget{
RevisionName: revision,
Percent: percent,
Percent: ptr.Int64(int64(percent)),
},
}
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/kn/commands/service/configuration_edit_flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ func (p *ConfigurationEditFlags) Apply(
}

if cmd.Flags().Changed("concurrency-limit") {
err = servinglib.UpdateConcurrencyLimit(template, p.ConcurrencyLimit)
err = servinglib.UpdateConcurrencyLimit(template, int64(p.ConcurrencyLimit))
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/kn/commands/service/create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ func TestServiceCreateMaxMinScale(t *testing.T) {
}
}

if template.Spec.ContainerConcurrency != 100 {
if *template.Spec.ContainerConcurrency != int64(100) {
t.Fatalf("container concurrency not set to given value 1000")
}
}
Expand Down
15 changes: 7 additions & 8 deletions pkg/kn/commands/service/describe.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import (
serving_kn_v1alpha1 "knative.dev/client/pkg/serving/v1alpha1"

"knative.dev/pkg/apis"
"knative.dev/pkg/apis/duck/v1beta1"
duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/serving/pkg/apis/serving/v1alpha1"

"github.com/spf13/cobra"
Expand Down Expand Up @@ -68,7 +68,7 @@ type revisionDesc struct {
creationTimestamp time.Time

// traffic stuff
percent int
percent int64
tag string
latestTraffic *bool

Expand Down Expand Up @@ -319,7 +319,7 @@ func revisionHeader(desc *revisionDesc) string {

// Used for conditions table to do own formatting for the table,
// as the tabbed writer doesn't work nicely with colors
func getMaxTypeLen(conditions v1beta1.Conditions) int {
func getMaxTypeLen(conditions duckv1.Conditions) int {
max := 0
for _, condition := range conditions {
if len(condition.Type) > max {
Expand Down Expand Up @@ -474,7 +474,7 @@ func joinAndTruncate(sortedKeys []string, m map[string]string) string {
}

// Format target percentage that it fits in the revision table
func formatBullet(percentage int, status corev1.ConditionStatus) string {
func formatBullet(percentage int64, status corev1.ConditionStatus) string {
symbol := "+"
switch status {
case v1.ConditionTrue:
Expand Down Expand Up @@ -620,7 +620,7 @@ func addStatusInfo(desc *revisionDesc, revision *v1alpha1.Revision) {

func addTargetInfo(desc *revisionDesc, target *v1alpha1.TrafficTarget) {
if target != nil {
desc.percent = target.Percent
desc.percent = *target.Percent
desc.latestTraffic = target.LatestRevision
desc.tag = target.Tag
}
Expand Down Expand Up @@ -669,9 +669,8 @@ func addConcurrencyAndScaleInfo(desc *revisionDesc, revision *v1alpha1.Revision)
}
desc.concurrencyTarget = target

if revision.Spec.ContainerConcurrency != 0 {
limit := int64(revision.Spec.ContainerConcurrency)
desc.concurrencyLimit = &limit
if revision.Spec.ContainerConcurrency != nil {
desc.concurrencyLimit = revision.Spec.ContainerConcurrency
}

return nil
Expand Down
32 changes: 16 additions & 16 deletions pkg/kn/commands/service/describe_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ import (
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
duckv1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"
duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
"knative.dev/serving/pkg/apis/autoscaling"
api_serving "knative.dev/serving/pkg/apis/serving"
servingv1 "knative.dev/serving/pkg/apis/serving/v1"
"knative.dev/serving/pkg/apis/serving/v1alpha1"
"knative.dev/serving/pkg/apis/serving/v1beta1"

client_serving "knative.dev/client/pkg/serving"
knclient "knative.dev/client/pkg/serving/v1alpha1"
Expand Down Expand Up @@ -128,7 +128,7 @@ func TestServiceDescribeLatestNotInTraffic(t *testing.T) {
expectedService := createTestService("foo", []string{"rev1", "rev2"}, goodConditions())
expectedService.Status.Traffic = expectedService.Status.Traffic[:1]
expectedService.Status.Traffic[0].LatestRevision = ptr.Bool(false)
expectedService.Status.Traffic[0].Percent = 100
expectedService.Status.Traffic[0].Percent = ptr.Int64(int64(100))

// Get service & revision
r.GetService("foo", &expectedService, nil)
Expand Down Expand Up @@ -159,7 +159,7 @@ func TestServiceDescribeEachNamedOnce(t *testing.T) {
expectedService := createTestService("foo", []string{"rev1", "rev2"}, goodConditions())
expectedService.Status.Traffic = expectedService.Status.Traffic[:1]
expectedService.Status.Traffic[0].LatestRevision = ptr.Bool(false)
expectedService.Status.Traffic[0].Percent = 100
expectedService.Status.Traffic[0].Percent = ptr.Int64(int64(100))

// Get service & revision
r.GetService("foo", &expectedService, nil)
Expand Down Expand Up @@ -495,7 +495,7 @@ func validateServiceOutput(t *testing.T, service string, output string) {
assert.Assert(t, util.ContainsAll(output, "Ready", "RoutesReady", "OK", "TYPE", "AGE", "REASON"))
}

func createTestService(name string, revisionNames []string, conditions duckv1beta1.Conditions) v1alpha1.Service {
func createTestService(name string, revisionNames []string, conditions duckv1.Conditions) v1alpha1.Service {

labelMap := make(map[string]string)
labelMap["label1"] = "lval1"
Expand All @@ -522,7 +522,7 @@ func createTestService(name string, revisionNames []string, conditions duckv1bet
DeprecatedDomain: name + ".default.example.com",
Address: &duckv1alpha1.Addressable{Hostname: name + ".default.svc.cluster.local"},
},
Status: duckv1beta1.Status{
Status: duckv1.Status{
Conditions: conditions,
},
},
Expand All @@ -535,10 +535,10 @@ func createTestService(name string, revisionNames []string, conditions duckv1bet
for _, rname := range revisionNames {
url, _ := apis.ParseURL(fmt.Sprintf("https://%s", rname))
target := v1alpha1.TrafficTarget{
TrafficTarget: v1beta1.TrafficTarget{
TrafficTarget: servingv1.TrafficTarget{
RevisionName: rname,
ConfigurationName: name,
Percent: 100 / len(revisionNames),
Percent: ptr.Int64(int64(100 / len(revisionNames))),
URL: url,
},
}
Expand All @@ -549,7 +549,7 @@ func createTestService(name string, revisionNames []string, conditions duckv1bet
return service
}

func addScaling(revision *v1alpha1.Revision, minScale, maxScale, concurrencyTarget, concurrenyLimit string) {
func addScaling(revision *v1alpha1.Revision, minScale, maxScale, concurrencyTarget, concurrencyLimit string) {
annos := make(map[string]string)
if minScale != "" {
annos[autoscaling.MinScaleAnnotationKey] = minScale
Expand All @@ -561,9 +561,9 @@ func addScaling(revision *v1alpha1.Revision, minScale, maxScale, concurrencyTarg
annos[autoscaling.TargetAnnotationKey] = concurrencyTarget
}
revision.Annotations = annos
if concurrenyLimit != "" {
l, _ := strconv.Atoi(concurrenyLimit)
revision.Spec.ContainerConcurrency = v1beta1.RevisionContainerConcurrencyType(l)
if concurrencyLimit != "" {
l, _ := strconv.ParseInt(concurrencyLimit, 10, 64)
revision.Spec.ContainerConcurrency = ptr.Int64(l)
}
}

Expand Down Expand Up @@ -603,7 +603,7 @@ func createTestRevision(revision string, gen int64) v1alpha1.Revision {
CreationTimestamp: metav1.Time{Time: time.Now()},
},
Spec: v1alpha1.RevisionSpec{
RevisionSpec: v1beta1.RevisionSpec{
RevisionSpec: servingv1.RevisionSpec{
PodSpec: v1.PodSpec{
Containers: []v1.Container{
{
Expand All @@ -622,15 +622,15 @@ func createTestRevision(revision string, gen int64) v1alpha1.Revision {
},
Status: v1alpha1.RevisionStatus{
ImageDigest: "gcr.io/test/image@" + imageDigest,
Status: duckv1beta1.Status{
Status: duckv1.Status{
Conditions: goodConditions(),
},
},
}
}

func goodConditions() duckv1beta1.Conditions {
ret := make(duckv1beta1.Conditions, 0)
func goodConditions() duckv1.Conditions {
ret := make(duckv1.Conditions, 0)
ret = append(ret, apis.Condition{
Type: apis.ConditionReady,
Status: v1.ConditionTrue,
Expand Down
4 changes: 2 additions & 2 deletions pkg/kn/commands/service/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
client_testing "k8s.io/client-go/testing"
"knative.dev/pkg/apis"
duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/serving/pkg/apis/serving/v1alpha1"

"knative.dev/client/pkg/kn/commands"
Expand Down Expand Up @@ -163,7 +163,7 @@ func createMockServiceWithParams(name, namespace, urlS string, generation int64)
DeprecatedRunLatest: &v1alpha1.RunLatestType{},
},
Status: v1alpha1.ServiceStatus{
Status: duckv1beta1.Status{
Status: duckv1.Status{
ObservedGeneration: generation},
RouteStatusFields: v1alpha1.RouteStatusFields{
URL: url,
Expand Down
2 changes: 1 addition & 1 deletion pkg/kn/commands/service/update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ func TestServiceUpdateMaxMinScale(t *testing.T) {
}
}

if template.Spec.ContainerConcurrency != 100 {
if *template.Spec.ContainerConcurrency != int64(100) {
t.Fatalf("container concurrency not set to given value 1000")
}

Expand Down
24 changes: 12 additions & 12 deletions pkg/kn/traffic/compute.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ func splitByEqualSign(pair string) (string, string, error) {
return parts[0], strings.TrimSuffix(parts[1], "%"), nil
}

func newTarget(tag, revision string, percent int, latestRevision bool) (target v1alpha1.TrafficTarget) {
target.Percent = percent
func newTarget(tag, revision string, percent int64, latestRevision bool) (target v1alpha1.TrafficTarget) {
target.Percent = ptr.Int64(percent)
target.Tag = tag
if latestRevision {
target.LatestRevision = ptr.Bool(true)
Expand Down Expand Up @@ -140,30 +140,30 @@ func (e ServiceTraffic) TagLatestRevision(tag string) ServiceTraffic {
}

// SetTrafficByRevision checks given revision in existing traffic block and sets given percent if found
func (e ServiceTraffic) SetTrafficByRevision(revision string, percent int) {
func (e ServiceTraffic) SetTrafficByRevision(revision string, percent int64) {
for i, target := range e {
if target.RevisionName == revision {
e[i].Percent = percent
e[i].Percent = ptr.Int64(percent)
break
}
}
}

// SetTrafficByTag checks given tag in existing traffic block and sets given percent if found
func (e ServiceTraffic) SetTrafficByTag(tag string, percent int) {
func (e ServiceTraffic) SetTrafficByTag(tag string, percent int64) {
for i, target := range e {
if target.Tag == tag {
e[i].Percent = percent
e[i].Percent = ptr.Int64(percent)
break
}
}
}

// SetTrafficByLatestRevision sets given percent to latest ready revision of service
func (e ServiceTraffic) SetTrafficByLatestRevision(percent int) {
func (e ServiceTraffic) SetTrafficByLatestRevision(percent int64) {
for i, target := range e {
if *target.LatestRevision {
e[i].Percent = percent
e[i].Percent = ptr.Int64(percent)
break
}
}
Expand All @@ -172,14 +172,14 @@ func (e ServiceTraffic) SetTrafficByLatestRevision(percent int) {
// ResetAllTargetPercent resets (0) 'Percent' field for all the traffic targets
func (e ServiceTraffic) ResetAllTargetPercent() {
for i := range e {
e[i].Percent = 0
e[i].Percent = ptr.Int64(0)
}
}

// RemoveNullTargets removes targets from traffic block if they don't have and 0 percent traffic
func (e ServiceTraffic) RemoveNullTargets() (newTraffic ServiceTraffic) {
for _, target := range e {
if target.Tag == "" && target.Percent == 0 {
if target.Tag == "" && target.Percent == ptr.Int64(0) {
} else {
newTraffic = append(newTraffic, target)
}
Expand Down Expand Up @@ -323,8 +323,8 @@ func Compute(cmd *cobra.Command, targets []v1alpha1.TrafficTarget, trafficFlags

for _, each := range trafficFlags.RevisionsPercentages {
// revisionRef works here as either revision or tag as either can be specified on CLI
revisionRef, percent, _ := splitByEqualSign(each) // err is verified in verifyInputSanity
percentInt, _ := strconv.Atoi(percent) // percentInt (for int) is verified in verifyInputSanity
revisionRef, percent, _ := splitByEqualSign(each) // err is verified in verifyInputSanity
percentInt, _ := strconv.ParseInt(percent, 10, 64) // percentInt (for int) is verified in verifyInputSanity

// fourth precedence: set traffic for latest revision
if revisionRef == latestRevisionRef {
Expand Down
Loading

0 comments on commit 4fe4672

Please sign in to comment.