diff --git a/cmd/virtwork/main.go b/cmd/virtwork/main.go index 3bdcb48..df3146b 100644 --- a/cmd/virtwork/main.go +++ b/cmd/virtwork/main.go @@ -446,7 +446,7 @@ func runE(cmd *cobra.Command, args []string) error { } w, err := registry.Get(name, wlCfg, registryOpts...) if err != nil { - continue + return fmt.Errorf("creating workload %q for service check: %w", name, err) } if w.RequiresService() { svc := w.ServiceSpec() diff --git a/cmd/virtwork/main_test.go b/cmd/virtwork/main_test.go index 6216e1f..dba2ccd 100644 --- a/cmd/virtwork/main_test.go +++ b/cmd/virtwork/main_test.go @@ -822,6 +822,25 @@ var _ = Describe("CLI end-to-end scenarios", func() { }) }) +var _ = Describe("Service creation loop error handling", func() { + It("should return error from registry for unknown workload", func() { + registry := workloads.DefaultRegistry() + cfg := config.WorkloadConfig{ + Enabled: config.BoolPtr(true), + VMCount: 1, + CPUCores: constants.DefaultCPUCores, + Memory: constants.DefaultMemory, + } + + _, err := registry.Get("nonexistent-workload", cfg, + workloads.WithNamespace(constants.DefaultNamespace), + workloads.WithSSHCredentials(constants.DefaultSSHUser, "", nil), + ) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("nonexistent-workload")) + }) +}) + var _ = Describe("DataVolume namespacing for multi-VM deployments", func() { // nolint: dupl Context("when deploying multiple VMs of disk workload", func() {