diff --git a/database/sql/instances.go b/database/sql/instances.go index 987eb264..39e32211 100644 --- a/database/sql/instances.go +++ b/database/sql/instances.go @@ -147,6 +147,9 @@ func (s *sqlDatabase) GetInstanceByName(ctx context.Context, instanceName string func (s *sqlDatabase) DeleteInstance(_ context.Context, poolID string, instanceName string) (err error) { instance, err := s.getPoolInstanceByName(poolID, instanceName) if err != nil { + if errors.Is(err, runnerErrors.ErrNotFound) { + return nil + } return errors.Wrap(err, "deleting instance") } @@ -187,6 +190,9 @@ func (s *sqlDatabase) DeleteInstance(_ context.Context, poolID string, instanceN func (s *sqlDatabase) DeleteInstanceByName(ctx context.Context, instanceName string) error { instance, err := s.getInstanceByName(ctx, instanceName) if err != nil { + if errors.Is(err, runnerErrors.ErrNotFound) { + return nil + } return errors.Wrap(err, "deleting instance") } diff --git a/database/sql/instances_test.go b/database/sql/instances_test.go index de37033d..9d000cef 100644 --- a/database/sql/instances_test.go +++ b/database/sql/instances_test.go @@ -277,6 +277,23 @@ func (s *InstancesTestSuite) TestDeleteInstance() { _, err = s.Store.GetPoolInstanceByName(s.adminCtx, s.Fixtures.Pool.ID, storeInstance.Name) s.Require().Equal("fetching instance: fetching pool instance by name: not found", err.Error()) + + err = s.Store.DeleteInstance(s.adminCtx, s.Fixtures.Pool.ID, storeInstance.Name) + s.Require().Nil(err) +} + +func (s *InstancesTestSuite) TestDeleteInstanceByName() { + storeInstance := s.Fixtures.Instances[0] + + err := s.Store.DeleteInstanceByName(s.adminCtx, storeInstance.Name) + + s.Require().Nil(err) + + _, err = s.Store.GetPoolInstanceByName(s.adminCtx, s.Fixtures.Pool.ID, storeInstance.Name) + s.Require().Equal("fetching instance: fetching pool instance by name: not found", err.Error()) + + err = s.Store.DeleteInstanceByName(s.adminCtx, storeInstance.Name) + s.Require().Nil(err) } func (s *InstancesTestSuite) TestDeleteInstanceInvalidPoolID() {