diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml index 36417d57b5..ea3651380d 100644 --- a/.github/workflows/pull-request.yaml +++ b/.github/workflows/pull-request.yaml @@ -238,7 +238,6 @@ jobs: - tracetest-jaeger - tracetest-opensearch - tracetest-tempo - - tracetest-no-tracing - tracetest-provisioning-env - tracetest-signoz steps: diff --git a/cli/cmd/resources.go b/cli/cmd/resources.go index 94322f99c3..37f7e4cee0 100644 --- a/cli/cmd/resources.go +++ b/cli/cmd/resources.go @@ -224,7 +224,6 @@ var ( return nil }, }), - resourcemanager.WithDeleteSuccessMessage("DataStore removed. Defaulting back to no-tracing mode"), resourcemanager.WithResourceType("DataStore"), ), ). diff --git a/examples/tracetest-no-tracing/docker-compose.yml b/examples/tracetest-no-tracing/docker-compose.yml deleted file mode 100644 index aef1b46304..0000000000 --- a/examples/tracetest-no-tracing/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3' -services: - - tracetest: - image: kubeshop/tracetest:${TAG:-latest} - volumes: - - type: bind - source: ./tracetest-config.yaml - target: /app/tracetest.yaml - ports: - - 11633:11633 - extra_hosts: - - "host.docker.internal:host-gateway" - depends_on: - postgres: - condition: service_healthy - healthcheck: - test: ["CMD", "wget", "--spider", "localhost:11633"] - interval: 1s - timeout: 3s - retries: 60 - environment: - TRACETEST_DEV: ${TRACETEST_DEV} - - postgres: - image: postgres:14 - environment: - POSTGRES_PASSWORD: postgres - POSTGRES_USER: postgres - healthcheck: - test: pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB" - interval: 1s - timeout: 5s - retries: 60 - ports: - - 5432:5432 diff --git a/examples/tracetest-no-tracing/tests/list-tests.yaml b/examples/tracetest-no-tracing/tests/list-tests.yaml deleted file mode 100644 index 926d6e4b8f..0000000000 --- a/examples/tracetest-no-tracing/tests/list-tests.yaml +++ /dev/null @@ -1,17 +0,0 @@ -type: Test -spec: - id: e9c6cff9-974d-4263-8a23-22f1e9f975aa - name: List all tracetest tests - description: List all existing tests from tracetest API - trigger: - type: http - httpRequest: - url: http://localhost:11633/api/tests - method: GET - headers: - - key: Content-Type - value: application/json - specs: - - selector: span[name = "Tracetest trigger"] - assertions: - - attr:tracetest.selected_spans.count = 1 diff --git a/examples/tracetest-no-tracing/tracetest-config.yaml b/examples/tracetest-no-tracing/tracetest-config.yaml deleted file mode 100644 index 5e732f6d38..0000000000 --- a/examples/tracetest-no-tracing/tracetest-config.yaml +++ /dev/null @@ -1,7 +0,0 @@ -postgres: - host: postgres - user: postgres - password: postgres - port: 5432 - dbname: postgres - params: sslmode=disable diff --git a/server/app/app.go b/server/app/app.go index c8d04a3a58..159afb25a9 100644 --- a/server/app/app.go +++ b/server/app/app.go @@ -490,6 +490,7 @@ func registerDataStoreResource(repository *datastore.Repository, router *mux.Rou datastore.ResourceNamePlural, repository, resourcemanager.WithTracer(tracer), + resourcemanager.DisableDelete(), ) manager.RegisterRoutes(router) provisioner.AddResourceProvisioner(manager) diff --git a/server/datastore/datastore_repository.go b/server/datastore/datastore_repository.go index eb7424fb00..88d19cd7a0 100644 --- a/server/datastore/datastore_repository.go +++ b/server/datastore/datastore_repository.go @@ -27,6 +27,14 @@ func (r *Repository) SetID(dataStore DataStore, id id.ID) DataStore { const DataStoreSingleID id.ID = "current" +var defaultDataStore = DataStore{ + ID: DataStoreSingleID, + Name: "OTLP", + Type: DataStoreTypeOTLP, + Default: true, + Values: DataStoreValues{}, +} + const insertQuery = ` INSERT INTO data_stores ( "id", @@ -123,27 +131,6 @@ func (r *Repository) Update(ctx context.Context, dataStore DataStore) (DataStore return dataStore, nil } -func (r *Repository) Delete(ctx context.Context, id id.ID) error { - tx, err := r.db.BeginTx(ctx, nil) - if err != nil { - return err - } - defer tx.Rollback() - - query, params := sqlutil.Tenant(ctx, deleteQuery, id) - _, err = tx.ExecContext(ctx, query, params...) - if err != nil { - return fmt.Errorf("datastore repository sql exec delete: %w", err) - } - - err = tx.Commit() - if err != nil { - return fmt.Errorf("commit: %w", err) - } - - return nil -} - const getQuery = ` SELECT "id", @@ -170,9 +157,9 @@ func (r *Repository) Get(ctx context.Context, id id.ID) (DataStore, error) { dataStore, err := r.readRow(row) if err != nil && errors.Is(err, sql.ErrNoRows) { - return DataStore{ - CreatedAt: newCreateAtDateString(), - }, nil // Assumes an empty datastore + dataStore := defaultDataStore + dataStore.CreatedAt = newCreateAtDateString() + return dataStore, nil // Assumes default datastore } if err != nil { return DataStore{}, fmt.Errorf("datastore repository get sql query: %w", err) diff --git a/server/datastore/datastore_repository_test.go b/server/datastore/datastore_repository_test.go index 337447217b..046710f1ee 100644 --- a/server/datastore/datastore_repository_test.go +++ b/server/datastore/datastore_repository_test.go @@ -17,7 +17,6 @@ var ( excludedOperations = rmtests.ExcludeOperations( rmtests.OperationUpdateNotFound, rmtests.OperationGetNotFound, - rmtests.OperationDeleteNotFound, rmtests.OperationListSortSuccess, rmtests.OperationListNoResults, ) @@ -45,6 +44,7 @@ func registerManagerFn(router *mux.Router, db *sql.DB) resourcemanager.Manager { datastore.ResourceNamePlural, dataStoreRepository, resourcemanager.WithIDGen(id.GenerateID), + resourcemanager.DisableDelete(), ) manager.RegisterRoutes(router) diff --git a/server/provisioning/provisioning_test.go b/server/provisioning/provisioning_test.go index 155bcb3bb1..b96686abc2 100644 --- a/server/provisioning/provisioning_test.go +++ b/server/provisioning/provisioning_test.go @@ -192,6 +192,7 @@ func setup(db *sql.DB) provisioningFixture { datastore.ResourceName, datastore.ResourceNamePlural, f.dataStores, + resourcemanager.DisableDelete(), ) f.provisioner = provisioning.New(provisioning.WithResourceProvisioners( diff --git a/testing/cli-e2etest/testscenarios/datastore/delete_datastore_test.go b/testing/cli-e2etest/testscenarios/datastore/delete_datastore_test.go index 3cb5e58dd1..911cbc95fe 100644 --- a/testing/cli-e2etest/testscenarios/datastore/delete_datastore_test.go +++ b/testing/cli-e2etest/testscenarios/datastore/delete_datastore_test.go @@ -42,18 +42,8 @@ func TestDeleteDatastore(t *testing.T) { require.True(dataStore.Spec.Default) // When I try to delete the datastore - // Then it should delete with success + // Then it should return a error message, showing that we cannot delete a datastore result = tracetestcli.Exec(t, "delete datastore --id current", tracetestcli.WithCLIConfig(cliConfig)) - helpers.RequireExitCodeEqual(t, result, 0) - require.Contains(result.StdOut, "DataStore removed. Defaulting back to no-tracing mode") - - // When I try to get a datastore again - // Then it should return an empty datastore - result = tracetestcli.Exec(t, "get datastore --id current", tracetestcli.WithCLIConfig(cliConfig)) - // TODO: we haven't defined a valid output to tell to the user that we are on `no-tracing mode` - helpers.RequireExitCodeEqual(t, result, 0) - - dataStore = helpers.UnmarshalYAML[types.DataStoreResource](t, result.StdOut) - require.Equal("DataStore", dataStore.Type) - require.False(dataStore.Spec.Default) + helpers.RequireExitCodeEqual(t, result, 1) + require.Contains(result.StdErr, "resource DataStore does not support the action") } diff --git a/testing/cli-e2etest/testscenarios/datastore/list_datastore_test.go b/testing/cli-e2etest/testscenarios/datastore/list_datastore_test.go index d20a47f8c1..085229f2c0 100644 --- a/testing/cli-e2etest/testscenarios/datastore/list_datastore_test.go +++ b/testing/cli-e2etest/testscenarios/datastore/list_datastore_test.go @@ -36,10 +36,17 @@ func TestListDatastore(t *testing.T) { // And I have my server recently created // When I try to list datastore on pretty mode and there is no datastore - // Then it should print an empty table + // Then it should list the default datastore result := tracetestcli.Exec(t, "list datastore --output pretty", tracetestcli.WithCLIConfig(cliConfig)) - helpers.RequireExitCodeEqual(t, result, 0) - require.NotContains(result.StdOut, "current") + + parsedTable := helpers.UnmarshalTable(t, result.StdOut) + require.Len(parsedTable, 1) + + singleLine := parsedTable[0] + + require.Equal("current", singleLine["ID"]) + require.Equal("OTLP", singleLine["NAME"]) + require.Equal("*", singleLine["DEFAULT"]) }) addListDatastorePreReqs(t, env)