Skip to content

Commit fc3dd69

Browse files
committed
Clean up error messages and formatting
Signed-off-by: Angel Misevski <[email protected]>
1 parent b97462e commit fc3dd69

File tree

7 files changed

+22
-22
lines changed

7 files changed

+22
-22
lines changed

controllers/workspace/devworkspace_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func (r *DevWorkspaceReconciler) Reconcile(req ctrl.Request) (reconcileResult ct
185185
if err != nil {
186186
reqLogger.Info("DevWorkspace start failed")
187187
reconcileStatus.Phase = devworkspace.WorkspaceStatusFailed
188-
reconcileStatus.Conditions[devworkspace.WorkspaceFailedStart] = fmt.Sprintf("Error processing devfile persistent storage: %s", err)
188+
reconcileStatus.Conditions[devworkspace.WorkspaceFailedStart] = fmt.Sprintf("Error processing devfile volumes: %s", err)
189189
return reconcile.Result{}, nil
190190
}
191191
componentDescriptions, err := shimlib.GetComponentDescriptionsFromPodAdditions(devfilePodAdditions, workspace.Spec.Template)
@@ -212,7 +212,7 @@ func (r *DevWorkspaceReconciler) Reconcile(req ctrl.Request) (reconcileResult ct
212212
}
213213

214214
if storagelib.NeedsStorage(workspace.Spec.Template) {
215-
pvcStatus := provision.SyncPVC(workspace, componentDescriptions, r.Client, reqLogger)
215+
pvcStatus := provision.SyncPVC(workspace, r.Client, reqLogger)
216216
if pvcStatus.Err != nil || !pvcStatus.Continue {
217217
return reconcile.Result{Requeue: true}, pvcStatus.Err
218218
}

controllers/workspace/provision/pvc.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ package provision
1414

1515
import (
1616
devworkspace "github.com/devfile/api/pkg/apis/workspaces/v1alpha2"
17-
"github.com/devfile/devworkspace-operator/apis/controller/v1alpha1"
1817
"github.com/devfile/devworkspace-operator/pkg/config"
1918
"github.com/go-logr/logr"
2019
corev1 "k8s.io/api/core/v1"
@@ -23,7 +22,7 @@ import (
2322
"sigs.k8s.io/controller-runtime/pkg/client"
2423
)
2524

26-
func SyncPVC(workspace *devworkspace.DevWorkspace, components []v1alpha1.ComponentDescription, client client.Client, reqLogger logr.Logger) ProvisioningStatus {
25+
func SyncPVC(workspace *devworkspace.DevWorkspace, client client.Client, reqLogger logr.Logger) ProvisioningStatus {
2726
pvc, err := generatePVC(workspace)
2827
if err != nil {
2928
return ProvisioningStatus{Err: err}

pkg/library/storage/commonStorage.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,25 @@ func RewriteContainerVolumeMounts(workspaceId string, podAdditions *v1alpha1.Pod
6161
// TODO: Support more than the common PVC strategy here (storage provisioner interface?)
6262
// TODO: What should we do when a volume isn't explicitly defined?
6363
commonPVCName := config.ControllerCfg.GetWorkspacePVCName()
64-
for cIdx, container := range podAdditions.Containers {
65-
for vmIdx, vm := range container.VolumeMounts {
66-
if _, ok := devfileVolumes[vm.Name]; !ok {
67-
return fmt.Errorf("container '%s' references undefined volume '%s'", container.Name, vm.Name)
64+
rewriteVolumeMounts := func(containers []corev1.Container) error {
65+
for cIdx, container := range containers {
66+
for vmIdx, vm := range container.VolumeMounts {
67+
if _, ok := devfileVolumes[vm.Name]; !ok {
68+
return fmt.Errorf("container '%s' references undefined volume '%s'", container.Name, vm.Name)
69+
}
70+
containers[cIdx].VolumeMounts[vmIdx].SubPath = fmt.Sprintf("%s/%s", workspaceId, vm.Name)
71+
containers[cIdx].VolumeMounts[vmIdx].Name = commonPVCName
6872
}
69-
podAdditions.Containers[cIdx].VolumeMounts[vmIdx].SubPath = fmt.Sprintf("%s/%s", workspaceId, vm.Name)
70-
podAdditions.Containers[cIdx].VolumeMounts[vmIdx].Name = commonPVCName
7173
}
74+
return nil
7275
}
73-
for cIdx, container := range podAdditions.InitContainers {
74-
for vmIdx, vm := range container.VolumeMounts {
75-
if _, ok := devfileVolumes[vm.Name]; !ok {
76-
return fmt.Errorf("container '%s' references undefined volume '%s'", container.Name, vm.Name)
77-
}
78-
podAdditions.InitContainers[cIdx].VolumeMounts[vmIdx].SubPath = fmt.Sprintf("%s/%s", workspaceId, vm.Name)
79-
podAdditions.InitContainers[cIdx].VolumeMounts[vmIdx].Name = commonPVCName
80-
}
76+
if err := rewriteVolumeMounts(podAdditions.Containers); err != nil {
77+
return err
8178
}
79+
if err := rewriteVolumeMounts(podAdditions.InitContainers); err != nil {
80+
return err
81+
}
82+
8283
podAdditions.Volumes = append(podAdditions.Volumes, corev1.Volume{
8384
Name: commonPVCName,
8485
VolumeSource: corev1.VolumeSource{

pkg/library/storage/testdata/error-duplicate-volumes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: "Does not modify PodAdditions when storage is not required"
1+
name: "Returns error when workspace defines duplicate volumes"
22

33
input:
44
workspaceId: "test-workspaceid"

pkg/library/storage/testdata/error-undefined-volume-init-container.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: "Does not modify PodAdditions when storage is not required"
1+
name: "Returns error on undefined volume in init container"
22

33
input:
44
workspaceId: "test-workspaceid"

pkg/library/storage/testdata/error-undefined-volume.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: "Does not modify PodAdditions when storage is not required"
1+
name: "Returns error on undefined volume in container"
22

33
input:
44
workspaceId: "test-workspaceid"

pkg/library/storage/testdata/rewrites-volumes-for-common-pvc-strategy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: "Does not modify PodAdditions when storage is not required"
1+
name: "Rewrites volumeMounts according to common PVC strategy"
22

33
input:
44
workspaceId: "test-workspaceid"

0 commit comments

Comments
 (0)