diff --git a/internal/cmd/binding/get_binding.go b/internal/cmd/binding/get_binding.go index 406d7e55..75a357c5 100644 --- a/internal/cmd/binding/get_binding.go +++ b/internal/cmd/binding/get_binding.go @@ -18,6 +18,7 @@ package binding import ( "fmt" + "strings" "github.com/Peripli/service-manager-cli/pkg/types" @@ -59,6 +60,10 @@ func (gb *GetBindingCmd) Run() error { for _, binding := range bindings.ServiceBindings { bd, err := gb.Client.GetBindingByID(binding.ID, &gb.Parameters) if err != nil { + // The binding could be deleted after List and before Get + if strings.Contains(err.Error(), "StatusCode: 404") { + continue + } return err } instance, err := gb.Client.GetInstanceByID(bd.ServiceInstanceID, &query.Parameters{}) @@ -69,6 +74,11 @@ func (gb *GetBindingCmd) Run() error { resultBindings.ServiceBindings = append(resultBindings.ServiceBindings, *bd) } + if len(resultBindings.ServiceBindings) < 1 { + output.PrintMessage(gb.Output, "No binding found with name: %s", gb.bindingName) + return nil + } + output.PrintServiceManagerObject(gb.Output, gb.outputFormat, resultBindings) output.Println(gb.Output) diff --git a/internal/cmd/broker/get_broker.go b/internal/cmd/broker/get_broker.go index 17e3f33a..01a4c94f 100644 --- a/internal/cmd/broker/get_broker.go +++ b/internal/cmd/broker/get_broker.go @@ -18,6 +18,7 @@ package broker import ( "fmt" + "strings" "github.com/Peripli/service-manager-cli/pkg/query" @@ -58,6 +59,11 @@ func (gb *GetBrokerCmd) Run() error { id := brokers.Brokers[0].ID broker, err := gb.Client.GetBrokerByID(id, &gb.Parameters) if err != nil { + // The broker could be deleted after List and before Get + if strings.Contains(err.Error(), "StatusCode: 404") { + output.PrintMessage(gb.Output, "No broker found with name: %s", gb.name) + return nil + } return err } output.PrintServiceManagerObject(gb.Output, gb.outputFormat, broker) diff --git a/internal/cmd/instance/get_instance.go b/internal/cmd/instance/get_instance.go index ab25e08e..0e897d9c 100644 --- a/internal/cmd/instance/get_instance.go +++ b/internal/cmd/instance/get_instance.go @@ -18,6 +18,7 @@ package instance import ( "fmt" + "strings" "github.com/Peripli/service-manager-cli/pkg/types" @@ -59,11 +60,20 @@ func (gb *GetInstanceCmd) Run() error { for _, instance := range instances.ServiceInstances { inst, err := gb.Client.GetInstanceByID(instance.ID, &gb.Parameters) if err != nil { + // The instance could be deleted after List and before Get + if strings.Contains(err.Error(), "StatusCode: 404") { + continue + } return err } resultInstances.ServiceInstances = append(resultInstances.ServiceInstances, *inst) } + if len(resultInstances.ServiceInstances) < 1 { + output.PrintMessage(gb.Output, "No instance found with name: %s", gb.instanceName) + return nil + } + output.PrintServiceManagerObject(gb.Output, gb.outputFormat, resultInstances) output.Println(gb.Output) return nil