Skip to content

Commit 7e6a180

Browse files
committed
Add a Failed Status Condition for the dump
1 parent 2318a59 commit 7e6a180

6 files changed

Lines changed: 40 additions & 8 deletions

File tree

api/v1/operations.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ const (
6767
OperationStatusConditionTypeEnabled OperationStatusConditionType = "Enabled"
6868
// OperationStatusConditionTypeStarted indicates whether operation has been started
6969
OperationStatusConditionTypeStarted OperationStatusConditionType = "Started"
70+
// OperationStatusConditionTypeFailed indicates whether operation has failed
71+
OperationStatusConditionTypeFailed OperationStatusConditionType = "Failed"
7072
// OperationStatusConditionTypeCompleted indicates whether operation has been completed
7173
OperationStatusConditionTypeCompleted OperationStatusConditionType = "Completed"
7274
// OperationStatusConditionTypeFailed indicates whether operation has failed

api/v1/webspherelibertydump_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ const (
5353
// Defines the observed state of WebSphereLibertyDump
5454
type WebSphereLibertyDumpStatus struct {
5555
// +listType=atomic
56+
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Status Conditions",xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
5657
Conditions []OperationStatusCondition `json:"conditions,omitempty"`
5758
Versions DumpStatusVersions `json:"versions,omitempty"`
5859
// Location of the generated dump file

api/v1/webspherelibertytrace_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type LicenseSimple struct {
5858
// Defines the observed state of WebSphereLibertyTrace operation
5959
type WebSphereLibertyTraceStatus struct {
6060
// +listType=atomic
61+
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Status Conditions",xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
6162
Conditions []OperationStatusCondition `json:"conditions,omitempty"`
6263
OperatedResource OperatedResource `json:"operatedResource,omitempty"`
6364
Versions TraceStatusVersions `json:"versions,omitempty"`

bundle/manifests/ibm-websphere-liberty.clusterserviceversion.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,10 @@ spec:
812812
x-descriptors:
813813
- urn:alm:descriptor:com.tectonic.ui:checkbox
814814
statusDescriptors:
815+
- displayName: Status Conditions
816+
path: conditions
817+
x-descriptors:
818+
- urn:alm:descriptor:io.kubernetes.conditions
815819
- description: Location of the generated dump file
816820
displayName: Dump File Path
817821
path: dumpFile

config/manifests/bases/ibm-websphere-liberty.clusterserviceversion.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,10 @@ spec:
672672
x-descriptors:
673673
- urn:alm:descriptor:com.tectonic.ui:checkbox
674674
statusDescriptors:
675+
- displayName: Status Conditions
676+
path: conditions
677+
x-descriptors:
678+
- urn:alm:descriptor:io.kubernetes.conditions
675679
- description: Location of the generated dump file
676680
displayName: Dump File Path
677681
path: dumpFile

internal/controller/webspherelibertydump_controller.go

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,14 @@ func (r *ReconcileWebSphereLibertyDump) Reconcile(ctx context.Context, request c
9595
reqLogger.Error(err, message)
9696
r.Recorder.Event(instance, "Warning", "ProcessingError", message)
9797
c := webspherelibertyv1.OperationStatusCondition{
98-
Type: webspherelibertyv1.OperationStatusConditionTypeStarted,
99-
Status: corev1.ConditionFalse,
98+
Type: webspherelibertyv1.OperationStatusConditionTypeStarted,
99+
Status: corev1.ConditionFalse,
100+
}
101+
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
102+
// Additionally, set the condition to Failed to update the UI
103+
f := webspherelibertyv1.OperationStatusCondition{
104+
Type: webspherelibertyv1.OperationStatusConditionTypeFailed,
105+
Status: corev1.ConditionTrue,
100106
Reason: "Error",
101107
Message: "Failed to find a pod or pod is not in running state",
102108
}
@@ -122,22 +128,32 @@ func (r *ReconcileWebSphereLibertyDump) Reconcile(ctx context.Context, request c
122128
Type: webspherelibertyv1.OperationStatusConditionTypeStarted,
123129
Status: corev1.ConditionTrue,
124130
}
125-
126131
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
132+
f := webspherelibertyv1.OperationStatusCondition{
133+
Type: webspherelibertyv1.OperationStatusConditionTypeFailed,
134+
Status: corev1.ConditionFalse,
135+
}
136+
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
127137
r.Client.Status().Update(context.TODO(), instance)
128138

129139
_, err = utils.ExecuteCommandInContainer(r.RestConfig, pod.Name, pod.Namespace, "app", []string{"/bin/sh", "-c", dumpCmd})
130140
if err != nil {
131141
//handle error
132-
reqLogger.Error(err, "Execute dump cmd failed ", "cmd", dumpCmd)
142+
reqLogger.Error(err, "Execute dump cmd failed.. ", "cmd", dumpCmd)
133143
r.Recorder.Event(instance, "Warning", "ProcessingError", err.Error())
134144
c = webspherelibertyv1.OperationStatusCondition{
135-
Type: webspherelibertyv1.OperationStatusConditionTypeCompleted,
136-
Status: corev1.ConditionFalse,
145+
Type: webspherelibertyv1.OperationStatusConditionTypeCompleted,
146+
Status: corev1.ConditionFalse,
147+
}
148+
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
149+
// Additionally, set the condition to Failed to update the UI
150+
f = webspherelibertyv1.OperationStatusCondition{
151+
Type: webspherelibertyv1.OperationStatusConditionTypeFailed,
152+
Status: corev1.ConditionTrue,
137153
Reason: "Error",
138154
Message: err.Error(),
139155
}
140-
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
156+
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
141157
instance.Status.ObservedGeneration = instance.GetObjectMeta().GetGeneration()
142158
instance.Status.Versions.Reconciled = utils.OperandVersion
143159
r.Client.Status().Update(context.TODO(), instance)
@@ -149,8 +165,12 @@ func (r *ReconcileWebSphereLibertyDump) Reconcile(ctx context.Context, request c
149165
Type: webspherelibertyv1.OperationStatusConditionTypeCompleted,
150166
Status: corev1.ConditionTrue,
151167
}
152-
153168
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
169+
f = webspherelibertyv1.OperationStatusCondition{
170+
Type: webspherelibertyv1.OperationStatusConditionTypeFailed,
171+
Status: corev1.ConditionFalse,
172+
}
173+
instance.Status.Conditions = webspherelibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
154174
instance.Status.DumpFile = dumpFileName
155175
instance.Status.ObservedGeneration = instance.GetObjectMeta().GetGeneration()
156176
instance.Status.Versions.Reconciled = utils.OperandVersion

0 commit comments

Comments
 (0)