Skip to content

Commit ec75747

Browse files
Andy Goldsteinsttts
Andy Goldstein
authored andcommitted
REVIEW TODOs: adapt: pkg/cmd/cli/describe printer updates
1 parent 125c34f commit ec75747

File tree

3 files changed

+96
-80
lines changed

3 files changed

+96
-80
lines changed

pkg/cmd/cli/describe/deployments.go

+18-4
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,22 @@ func (d *DeploymentConfigDescriber) Describe(namespace, name string, settings kp
121121
header := fmt.Sprintf("Deployment #%d (latest)", deployutil.DeploymentVersionFor(deployment))
122122
// Show details if the current deployment is the active one or it is the
123123
// initial deployment.
124-
printDeploymentRc(deployment, d.kubeClient, out, header, (deployment.Name == activeDeploymentName) || len(deploymentsHistory) == 1)
124+
versioned := &v1.ReplicationController{}
125+
if err := kapi.Scheme.Convert(deployment, versioned, nil); err == nil {
126+
printDeploymentRc(versioned, d.kubeClient, out, header, (deployment.Name == activeDeploymentName) || len(deploymentsHistory) == 1)
127+
}
125128
}
126129

127130
// We don't show the deployment history when running `oc rollback --dry-run`.
128131
if d.config == nil && !isNotDeployed {
129-
sorted := deploymentsHistory
132+
var sorted []*v1.ReplicationController
133+
// TODO(rebase-1.6): we should really convert the describer to use a versioned clientset
134+
for i := range deploymentsHistory {
135+
versioned := &v1.ReplicationController{}
136+
if err := kapi.Scheme.Convert(deploymentsHistory[i], versioned, nil); err == nil {
137+
sorted = append(sorted, versioned)
138+
}
139+
}
130140
sort.Sort(sort.Reverse(rcutils.OverlappingControllers(sorted)))
131141
counter := 1
132142
for _, item := range sorted {
@@ -312,8 +322,12 @@ func printAutoscalingInfo(res []schema.GroupResource, namespace, name string, kc
312322

313323
for _, hpa := range scaledBy {
314324
cpuUtil := ""
315-
if hpa.Spec.TargetCPUUtilizationPercentage != nil {
316-
cpuUtil = fmt.Sprintf(", triggered at %d%% CPU usage", *hpa.Spec.TargetCPUUtilizationPercentage)
325+
// TODO(rebase-1.6): flesh this out for full hpa support, consider using upstream code
326+
// For right now I'm just doing parity with 1.5
327+
for _, metric := range hpa.Spec.Metrics {
328+
if metric.Type == autoscaling.ResourceMetricSourceType && metric.Resource.Name == kapi.ResourceCPU && metric.Resource.TargetAverageUtilization != nil {
329+
cpuUtil = fmt.Sprintf(", triggered at %d%% CPU usage", *metric.Resource.TargetAverageUtilization)
330+
}
317331
}
318332
fmt.Fprintf(w, "Autoscaling:\tbetween %d and %d replicas%s\n", *hpa.Spec.MinReplicas, hpa.Spec.MaxReplicas, cpuUtil)
319333
// TODO: Print a warning in case of multiple hpas.

pkg/cmd/cli/describe/describer.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1249,7 +1249,8 @@ func DescribePolicyRule(out *tabwriter.Writer, rule authorizationapi.PolicyRule,
12491249

12501250
buffer := new(bytes.Buffer)
12511251

1252-
printer := NewHumanReadablePrinter(kctl.PrintOptions{NoHeaders: true})
1252+
// TODO(rebase-1.6): we probably need a non-nil encoder and decoder
1253+
printer := NewHumanReadablePrinter(nil, nil, kprinters.PrintOptions{NoHeaders: true})
12531254
if err := printer.PrintObj(rule.AttributeRestrictions, buffer); err == nil {
12541255
extensionString = strings.TrimSpace(buffer.String())
12551256
}

pkg/cmd/cli/describe/printer.go

+76-75
Original file line numberDiff line numberDiff line change
@@ -73,82 +73,83 @@ var (
7373
)
7474

7575
// NewHumanReadablePrinter returns a new HumanReadablePrinter
76-
func NewHumanReadablePrinter(printOptions kprinters.PrintOptions) *kprinters.HumanReadablePrinter {
76+
func NewHumanReadablePrinter(encoder runtime.Encoder, decoder runtime.Decoder, printOptions kprinters.PrintOptions) *kprinters.HumanReadablePrinter {
7777
// TODO: support cross namespace listing
78-
p := kctl.NewHumanReadablePrinter(printOptions)
79-
p.Handler(buildColumns, printBuild)
80-
p.Handler(buildColumns, printBuildList)
81-
p.Handler(buildConfigColumns, printBuildConfig)
82-
p.Handler(buildConfigColumns, printBuildConfigList)
83-
p.Handler(imageColumns, printImage)
84-
p.Handler(imageStreamTagColumns, printImageStreamTag)
85-
p.Handler(imageStreamTagColumns, printImageStreamTagList)
86-
p.Handler(imageStreamImageColumns, printImageStreamImage)
87-
p.Handler(imageColumns, printImageList)
88-
p.Handler(imageStreamColumns, printImageStream)
89-
p.Handler(imageStreamColumns, printImageStreamList)
90-
p.Handler(projectColumns, printProject)
91-
p.Handler(projectColumns, printProjectList)
92-
p.Handler(routeColumns, printRoute)
93-
p.Handler(routeColumns, printRouteList)
94-
p.Handler(deploymentConfigColumns, printDeploymentConfig)
95-
p.Handler(deploymentConfigColumns, printDeploymentConfigList)
96-
p.Handler(templateColumns, printTemplate)
97-
p.Handler(templateColumns, printTemplateList)
98-
99-
p.Handler(policyColumns, printPolicy)
100-
p.Handler(policyColumns, printPolicyList)
101-
p.Handler(policyBindingColumns, printPolicyBinding)
102-
p.Handler(policyBindingColumns, printPolicyBindingList)
103-
p.Handler(roleBindingColumns, printRoleBinding)
104-
p.Handler(roleBindingColumns, printRoleBindingList)
105-
p.Handler(roleColumns, printRole)
106-
p.Handler(roleColumns, printRoleList)
107-
108-
p.Handler(policyColumns, printClusterPolicy)
109-
p.Handler(policyColumns, printClusterPolicyList)
110-
p.Handler(policyBindingColumns, printClusterPolicyBinding)
111-
p.Handler(policyBindingColumns, printClusterPolicyBindingList)
112-
p.Handler(roleColumns, printClusterRole)
113-
p.Handler(roleColumns, printClusterRoleList)
114-
p.Handler(roleBindingColumns, printClusterRoleBinding)
115-
p.Handler(roleBindingColumns, printClusterRoleBindingList)
116-
117-
p.Handler(oauthClientColumns, printOAuthClient)
118-
p.Handler(oauthClientColumns, printOAuthClientList)
119-
p.Handler(oauthClientAuthorizationColumns, printOAuthClientAuthorization)
120-
p.Handler(oauthClientAuthorizationColumns, printOAuthClientAuthorizationList)
121-
p.Handler(oauthAccessTokenColumns, printOAuthAccessToken)
122-
p.Handler(oauthAccessTokenColumns, printOAuthAccessTokenList)
123-
p.Handler(oauthAuthorizeTokenColumns, printOAuthAuthorizeToken)
124-
p.Handler(oauthAuthorizeTokenColumns, printOAuthAuthorizeTokenList)
125-
126-
p.Handler(userColumns, printUser)
127-
p.Handler(userColumns, printUserList)
128-
p.Handler(identityColumns, printIdentity)
129-
p.Handler(identityColumns, printIdentityList)
130-
p.Handler(userIdentityMappingColumns, printUserIdentityMapping)
131-
p.Handler(groupColumns, printGroup)
132-
p.Handler(groupColumns, printGroupList)
133-
134-
p.Handler(IsPersonalSubjectAccessReviewColumns, printIsPersonalSubjectAccessReview)
135-
136-
p.Handler(hostSubnetColumns, printHostSubnet)
137-
p.Handler(hostSubnetColumns, printHostSubnetList)
138-
p.Handler(netNamespaceColumns, printNetNamespaceList)
139-
p.Handler(netNamespaceColumns, printNetNamespace)
140-
p.Handler(clusterNetworkColumns, printClusterNetwork)
141-
p.Handler(clusterNetworkColumns, printClusterNetworkList)
142-
p.Handler(egressNetworkPolicyColumns, printEgressNetworkPolicy)
143-
p.Handler(egressNetworkPolicyColumns, printEgressNetworkPolicyList)
144-
145-
p.Handler(clusterResourceQuotaColumns, printClusterResourceQuota)
146-
p.Handler(clusterResourceQuotaColumns, printClusterResourceQuotaList)
147-
p.Handler(clusterResourceQuotaColumns, printAppliedClusterResourceQuota)
148-
p.Handler(clusterResourceQuotaColumns, printAppliedClusterResourceQuotaList)
149-
150-
p.Handler(roleBindingRestrictionColumns, printRoleBindingRestriction)
151-
p.Handler(roleBindingRestrictionColumns, printRoleBindingRestrictionList)
78+
p := kprinters.NewHumanReadablePrinter(encoder, decoder, printOptions)
79+
kinternalprinters.AddHandlers(p)
80+
p.Handler(buildColumns, nil, printBuild)
81+
p.Handler(buildColumns, nil, printBuildList)
82+
p.Handler(buildConfigColumns, nil, printBuildConfig)
83+
p.Handler(buildConfigColumns, nil, printBuildConfigList)
84+
p.Handler(imageColumns, nil, printImage)
85+
p.Handler(imageStreamTagColumns, nil, printImageStreamTag)
86+
p.Handler(imageStreamTagColumns, nil, printImageStreamTagList)
87+
p.Handler(imageStreamImageColumns, nil, printImageStreamImage)
88+
p.Handler(imageColumns, nil, printImageList)
89+
p.Handler(imageStreamColumns, nil, printImageStream)
90+
p.Handler(imageStreamColumns, nil, printImageStreamList)
91+
p.Handler(projectColumns, nil, printProject)
92+
p.Handler(projectColumns, nil, printProjectList)
93+
p.Handler(routeColumns, nil, printRoute)
94+
p.Handler(routeColumns, nil, printRouteList)
95+
p.Handler(deploymentConfigColumns, nil, printDeploymentConfig)
96+
p.Handler(deploymentConfigColumns, nil, printDeploymentConfigList)
97+
p.Handler(templateColumns, nil, printTemplate)
98+
p.Handler(templateColumns, nil, printTemplateList)
99+
100+
p.Handler(policyColumns, nil, printPolicy)
101+
p.Handler(policyColumns, nil, printPolicyList)
102+
p.Handler(policyBindingColumns, nil, printPolicyBinding)
103+
p.Handler(policyBindingColumns, nil, printPolicyBindingList)
104+
p.Handler(roleBindingColumns, nil, printRoleBinding)
105+
p.Handler(roleBindingColumns, nil, printRoleBindingList)
106+
p.Handler(roleColumns, nil, printRole)
107+
p.Handler(roleColumns, nil, printRoleList)
108+
109+
p.Handler(policyColumns, nil, printClusterPolicy)
110+
p.Handler(policyColumns, nil, printClusterPolicyList)
111+
p.Handler(policyBindingColumns, nil, printClusterPolicyBinding)
112+
p.Handler(policyBindingColumns, nil, printClusterPolicyBindingList)
113+
p.Handler(roleColumns, nil, printClusterRole)
114+
p.Handler(roleColumns, nil, printClusterRoleList)
115+
p.Handler(roleBindingColumns, nil, printClusterRoleBinding)
116+
p.Handler(roleBindingColumns, nil, printClusterRoleBindingList)
117+
118+
p.Handler(oauthClientColumns, nil, printOAuthClient)
119+
p.Handler(oauthClientColumns, nil, printOAuthClientList)
120+
p.Handler(oauthClientAuthorizationColumns, nil, printOAuthClientAuthorization)
121+
p.Handler(oauthClientAuthorizationColumns, nil, printOAuthClientAuthorizationList)
122+
p.Handler(oauthAccessTokenColumns, nil, printOAuthAccessToken)
123+
p.Handler(oauthAccessTokenColumns, nil, printOAuthAccessTokenList)
124+
p.Handler(oauthAuthorizeTokenColumns, nil, printOAuthAuthorizeToken)
125+
p.Handler(oauthAuthorizeTokenColumns, nil, printOAuthAuthorizeTokenList)
126+
127+
p.Handler(userColumns, nil, printUser)
128+
p.Handler(userColumns, nil, printUserList)
129+
p.Handler(identityColumns, nil, printIdentity)
130+
p.Handler(identityColumns, nil, printIdentityList)
131+
p.Handler(userIdentityMappingColumns, nil, printUserIdentityMapping)
132+
p.Handler(groupColumns, nil, printGroup)
133+
p.Handler(groupColumns, nil, printGroupList)
134+
135+
p.Handler(IsPersonalSubjectAccessReviewColumns, nil, printIsPersonalSubjectAccessReview)
136+
137+
p.Handler(hostSubnetColumns, nil, printHostSubnet)
138+
p.Handler(hostSubnetColumns, nil, printHostSubnetList)
139+
p.Handler(netNamespaceColumns, nil, printNetNamespaceList)
140+
p.Handler(netNamespaceColumns, nil, printNetNamespace)
141+
p.Handler(clusterNetworkColumns, nil, printClusterNetwork)
142+
p.Handler(clusterNetworkColumns, nil, printClusterNetworkList)
143+
p.Handler(egressNetworkPolicyColumns, nil, printEgressNetworkPolicy)
144+
p.Handler(egressNetworkPolicyColumns, nil, printEgressNetworkPolicyList)
145+
146+
p.Handler(clusterResourceQuotaColumns, nil, printClusterResourceQuota)
147+
p.Handler(clusterResourceQuotaColumns, nil, printClusterResourceQuotaList)
148+
p.Handler(clusterResourceQuotaColumns, nil, printAppliedClusterResourceQuota)
149+
p.Handler(clusterResourceQuotaColumns, nil, printAppliedClusterResourceQuotaList)
150+
151+
p.Handler(roleBindingRestrictionColumns, nil, printRoleBindingRestriction)
152+
p.Handler(roleBindingRestrictionColumns, nil, printRoleBindingRestrictionList)
152153

153154
p.Handler(templateInstanceColumns, nil, printTemplateInstance)
154155
p.Handler(templateInstanceColumns, nil, printTemplateInstanceList)

0 commit comments

Comments
 (0)