cli: Add more nil checking to service pretty-printer

Currently, if the service mode is not "global", this code assumes that
Replicated is non-nil. This assumption may not be true in the future.
Instead of making the assumption, explicitly check that Replicated is
non-nil before using it.

Similarly, for limits and reservations, enclose methods that read from
Limits and Reservations within checks that those fields are non-nil.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
Aaron Lehmann 2016-09-26 10:12:24 +01:00
parent e58c0c6e1b
commit 56d92bfdff
1 changed files with 7 additions and 5 deletions

View File

@ -21,7 +21,7 @@ Labels:
{{- end }}{{ end }} {{- end }}{{ end }}
Mode: Mode:
{{- if .IsModeGlobal }} Global {{- if .IsModeGlobal }} Global
{{- else }} Replicated {{- else if .IsModeReplicated }} Replicated
{{- if .ModeReplicatedReplicas }} {{- if .ModeReplicatedReplicas }}
Replicas: {{ .ModeReplicatedReplicas }} Replicas: {{ .ModeReplicatedReplicas }}
{{- end }}{{ end }} {{- end }}{{ end }}
@ -73,22 +73,20 @@ Mounts:
Resources: Resources:
{{- if .HasResourceReservations }} {{- if .HasResourceReservations }}
Reservations: Reservations:
{{- end }}
{{- if gt .ResourceReservationNanoCPUs 0.0 }} {{- if gt .ResourceReservationNanoCPUs 0.0 }}
CPU: {{ .ResourceReservationNanoCPUs }} CPU: {{ .ResourceReservationNanoCPUs }}
{{- end }} {{- end }}
{{- if .ResourceReservationMemory }} {{- if .ResourceReservationMemory }}
Memory: {{ .ResourceReservationMemory }} Memory: {{ .ResourceReservationMemory }}
{{- end }} {{- end }}{{ end }}
{{- if .HasResourceLimits }} {{- if .HasResourceLimits }}
Limits: Limits:
{{- end }}
{{- if gt .ResourceLimitsNanoCPUs 0.0 }} {{- if gt .ResourceLimitsNanoCPUs 0.0 }}
CPU: {{ .ResourceLimitsNanoCPUs }} CPU: {{ .ResourceLimitsNanoCPUs }}
{{- end }} {{- end }}
{{- if .ResourceLimitMemory }} {{- if .ResourceLimitMemory }}
Memory: {{ .ResourceLimitMemory }} Memory: {{ .ResourceLimitMemory }}
{{- end }}{{ end }} {{- end }}{{ end }}{{ end }}
{{- if .Networks }} {{- if .Networks }}
Networks: Networks:
{{- range $network := .Networks }} {{ $network }}{{ end }} {{ end }} {{- range $network := .Networks }} {{ $network }}{{ end }} {{ end }}
@ -156,6 +154,10 @@ func (ctx *serviceInspectContext) IsModeGlobal() bool {
return ctx.Service.Spec.Mode.Global != nil return ctx.Service.Spec.Mode.Global != nil
} }
func (ctx *serviceInspectContext) IsModeReplicated() bool {
return ctx.Service.Spec.Mode.Replicated != nil
}
func (ctx *serviceInspectContext) ModeReplicatedReplicas() *uint64 { func (ctx *serviceInspectContext) ModeReplicatedReplicas() *uint64 {
return ctx.Service.Spec.Mode.Replicated.Replicas return ctx.Service.Spec.Mode.Replicated.Replicas
} }