mirror of
https://github.com/coder/coder.git
synced 2025-07-30 22:19:53 +00:00
chore: remove redundant dbtype package (#8014)
* chore: rename store to dbmock for consistency * chore: remove redundant dbtype package This wasn't necessary and forked how we do DB types.
This commit is contained in:
@@ -48,7 +48,6 @@ import (
|
|||||||
"github.com/coder/coder/coderd/database"
|
"github.com/coder/coder/coderd/database"
|
||||||
"github.com/coder/coder/coderd/database/dbauthz"
|
"github.com/coder/coder/coderd/database/dbauthz"
|
||||||
"github.com/coder/coder/coderd/database/dbmetrics"
|
"github.com/coder/coder/coderd/database/dbmetrics"
|
||||||
"github.com/coder/coder/coderd/database/dbtype"
|
|
||||||
"github.com/coder/coder/coderd/gitauth"
|
"github.com/coder/coder/coderd/gitauth"
|
||||||
"github.com/coder/coder/coderd/gitsshkey"
|
"github.com/coder/coder/coderd/gitsshkey"
|
||||||
"github.com/coder/coder/coderd/healthcheck"
|
"github.com/coder/coder/coderd/healthcheck"
|
||||||
@@ -948,7 +947,7 @@ func (api *API) CreateInMemoryProvisionerDaemon(ctx context.Context, debounce ti
|
|||||||
CreatedAt: database.Now(),
|
CreatedAt: database.Now(),
|
||||||
Name: name,
|
Name: name,
|
||||||
Provisioners: []database.ProvisionerType{database.ProvisionerTypeEcho, database.ProvisionerTypeTerraform},
|
Provisioners: []database.ProvisionerType{database.ProvisionerTypeEcho, database.ProvisionerTypeTerraform},
|
||||||
Tags: dbtype.StringMap{
|
Tags: database.StringMap{
|
||||||
provisionerdserver.TagScope: provisionerdserver.ScopeOrganization,
|
provisionerdserver.TagScope: provisionerdserver.ScopeOrganization,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@@ -18,7 +18,6 @@ import (
|
|||||||
|
|
||||||
"github.com/coder/coder/coderd/database"
|
"github.com/coder/coder/coderd/database"
|
||||||
"github.com/coder/coder/coderd/database/dbauthz"
|
"github.com/coder/coder/coderd/database/dbauthz"
|
||||||
"github.com/coder/coder/coderd/database/dbtype"
|
|
||||||
"github.com/coder/coder/coderd/rbac"
|
"github.com/coder/coder/coderd/rbac"
|
||||||
"github.com/coder/coder/cryptorand"
|
"github.com/coder/coder/cryptorand"
|
||||||
)
|
)
|
||||||
@@ -278,7 +277,7 @@ func ProvisionerJob(t testing.TB, db database.Store, orig database.ProvisionerJo
|
|||||||
// Always set some tags to prevent Acquire from grabbing jobs it should not.
|
// Always set some tags to prevent Acquire from grabbing jobs it should not.
|
||||||
if !orig.StartedAt.Time.IsZero() {
|
if !orig.StartedAt.Time.IsZero() {
|
||||||
if orig.Tags == nil {
|
if orig.Tags == nil {
|
||||||
orig.Tags = make(dbtype.StringMap)
|
orig.Tags = make(database.StringMap)
|
||||||
}
|
}
|
||||||
// Make sure when we acquire the job, we only get this one.
|
// Make sure when we acquire the job, we only get this one.
|
||||||
orig.Tags[id.String()] = "true"
|
orig.Tags[id.String()] = "true"
|
||||||
|
@@ -1,30 +0,0 @@
|
|||||||
package dbtype
|
|
||||||
|
|
||||||
import (
|
|
||||||
"database/sql/driver"
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"golang.org/x/xerrors"
|
|
||||||
)
|
|
||||||
|
|
||||||
type StringMap map[string]string
|
|
||||||
|
|
||||||
func (m *StringMap) Scan(src interface{}) error {
|
|
||||||
if src == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
switch src := src.(type) {
|
|
||||||
case []byte:
|
|
||||||
err := json.Unmarshal(src, m)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return xerrors.Errorf("unsupported Scan, storing driver.Value type %T into type %T", src, m)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m StringMap) Value() (driver.Value, error) {
|
|
||||||
return json.Marshal(m)
|
|
||||||
}
|
|
@@ -11,7 +11,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/coder/coder/coderd/database/dbtype"
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/lib/pq"
|
"github.com/lib/pq"
|
||||||
"github.com/tabbed/pqtype"
|
"github.com/tabbed/pqtype"
|
||||||
@@ -1478,7 +1477,7 @@ type ProvisionerDaemon struct {
|
|||||||
Name string `db:"name" json:"name"`
|
Name string `db:"name" json:"name"`
|
||||||
Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"`
|
Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"`
|
||||||
ReplicaID uuid.NullUUID `db:"replica_id" json:"replica_id"`
|
ReplicaID uuid.NullUUID `db:"replica_id" json:"replica_id"`
|
||||||
Tags dbtype.StringMap `db:"tags" json:"tags"`
|
Tags StringMap `db:"tags" json:"tags"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProvisionerJob struct {
|
type ProvisionerJob struct {
|
||||||
@@ -1497,7 +1496,7 @@ type ProvisionerJob struct {
|
|||||||
Input json.RawMessage `db:"input" json:"input"`
|
Input json.RawMessage `db:"input" json:"input"`
|
||||||
WorkerID uuid.NullUUID `db:"worker_id" json:"worker_id"`
|
WorkerID uuid.NullUUID `db:"worker_id" json:"worker_id"`
|
||||||
FileID uuid.UUID `db:"file_id" json:"file_id"`
|
FileID uuid.UUID `db:"file_id" json:"file_id"`
|
||||||
Tags dbtype.StringMap `db:"tags" json:"tags"`
|
Tags StringMap `db:"tags" json:"tags"`
|
||||||
ErrorCode sql.NullString `db:"error_code" json:"error_code"`
|
ErrorCode sql.NullString `db:"error_code" json:"error_code"`
|
||||||
TraceMetadata pqtype.NullRawMessage `db:"trace_metadata" json:"trace_metadata"`
|
TraceMetadata pqtype.NullRawMessage `db:"trace_metadata" json:"trace_metadata"`
|
||||||
}
|
}
|
||||||
|
@@ -10,7 +10,6 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/coder/coder/coderd/database/dbtype"
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/lib/pq"
|
"github.com/lib/pq"
|
||||||
"github.com/tabbed/pqtype"
|
"github.com/tabbed/pqtype"
|
||||||
@@ -1999,7 +1998,7 @@ type InsertProvisionerDaemonParams struct {
|
|||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
||||||
Name string `db:"name" json:"name"`
|
Name string `db:"name" json:"name"`
|
||||||
Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"`
|
Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"`
|
||||||
Tags dbtype.StringMap `db:"tags" json:"tags"`
|
Tags StringMap `db:"tags" json:"tags"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *sqlQuerier) InsertProvisionerDaemon(ctx context.Context, arg InsertProvisionerDaemonParams) (ProvisionerDaemon, error) {
|
func (q *sqlQuerier) InsertProvisionerDaemon(ctx context.Context, arg InsertProvisionerDaemonParams) (ProvisionerDaemon, error) {
|
||||||
@@ -2365,7 +2364,7 @@ type InsertProvisionerJobParams struct {
|
|||||||
FileID uuid.UUID `db:"file_id" json:"file_id"`
|
FileID uuid.UUID `db:"file_id" json:"file_id"`
|
||||||
Type ProvisionerJobType `db:"type" json:"type"`
|
Type ProvisionerJobType `db:"type" json:"type"`
|
||||||
Input json.RawMessage `db:"input" json:"input"`
|
Input json.RawMessage `db:"input" json:"input"`
|
||||||
Tags dbtype.StringMap `db:"tags" json:"tags"`
|
Tags StringMap `db:"tags" json:"tags"`
|
||||||
TraceMetadata pqtype.NullRawMessage `db:"trace_metadata" json:"trace_metadata"`
|
TraceMetadata pqtype.NullRawMessage `db:"trace_metadata" json:"trace_metadata"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8,9 +8,11 @@ overrides:
|
|||||||
go:
|
go:
|
||||||
overrides:
|
overrides:
|
||||||
- column: "provisioner_daemons.tags"
|
- column: "provisioner_daemons.tags"
|
||||||
go_type: "github.com/coder/coder/coderd/database/dbtype.StringMap"
|
go_type:
|
||||||
|
type: "StringMap"
|
||||||
- column: "provisioner_jobs.tags"
|
- column: "provisioner_jobs.tags"
|
||||||
go_type: "github.com/coder/coder/coderd/database/dbtype.StringMap"
|
go_type:
|
||||||
|
type: "StringMap"
|
||||||
- column: "users.rbac_roles"
|
- column: "users.rbac_roles"
|
||||||
go_type: "github.com/lib/pq.StringArray"
|
go_type: "github.com/lib/pq.StringArray"
|
||||||
- column: "templates.user_acl"
|
- column: "templates.user_acl"
|
||||||
|
@@ -1,14 +0,0 @@
|
|||||||
package database
|
|
||||||
|
|
||||||
import "time"
|
|
||||||
|
|
||||||
// Now returns a standardized timezone used for database resources.
|
|
||||||
func Now() time.Time {
|
|
||||||
return Time(time.Now().UTC())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Time returns a time compatible with Postgres. Postgres only stores dates with
|
|
||||||
// microsecond precision.
|
|
||||||
func Time(t time.Time) time.Time {
|
|
||||||
return t.Round(time.Microsecond)
|
|
||||||
}
|
|
@@ -3,6 +3,7 @@ package database
|
|||||||
import (
|
import (
|
||||||
"database/sql/driver"
|
"database/sql/driver"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"time"
|
||||||
|
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
@@ -43,3 +44,36 @@ func (t *TemplateACL) Scan(src interface{}) error {
|
|||||||
func (t TemplateACL) Value() (driver.Value, error) {
|
func (t TemplateACL) Value() (driver.Value, error) {
|
||||||
return json.Marshal(t)
|
return json.Marshal(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type StringMap map[string]string
|
||||||
|
|
||||||
|
func (m *StringMap) Scan(src interface{}) error {
|
||||||
|
if src == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
switch src := src.(type) {
|
||||||
|
case []byte:
|
||||||
|
err := json.Unmarshal(src, m)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return xerrors.Errorf("unsupported Scan, storing driver.Value type %T into type %T", src, m)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m StringMap) Value() (driver.Value, error) {
|
||||||
|
return json.Marshal(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now returns a standardized timezone used for database resources.
|
||||||
|
func Now() time.Time {
|
||||||
|
return Time(time.Now().UTC())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Time returns a time compatible with Postgres. Postgres only stores dates with
|
||||||
|
// microsecond precision.
|
||||||
|
func Time(t time.Time) time.Time {
|
||||||
|
return t.Round(time.Microsecond)
|
||||||
|
}
|
@@ -26,7 +26,6 @@ import (
|
|||||||
"github.com/coder/coder/coderd/database/dbauthz"
|
"github.com/coder/coder/coderd/database/dbauthz"
|
||||||
"github.com/coder/coder/coderd/database/dbgen"
|
"github.com/coder/coder/coderd/database/dbgen"
|
||||||
"github.com/coder/coder/coderd/database/dbtestutil"
|
"github.com/coder/coder/coderd/database/dbtestutil"
|
||||||
"github.com/coder/coder/coderd/database/dbtype"
|
|
||||||
"github.com/coder/coder/coderd/parameter"
|
"github.com/coder/coder/coderd/parameter"
|
||||||
"github.com/coder/coder/coderd/rbac"
|
"github.com/coder/coder/coderd/rbac"
|
||||||
"github.com/coder/coder/coderd/schedule"
|
"github.com/coder/coder/coderd/schedule"
|
||||||
@@ -589,7 +588,7 @@ func TestWorkspaceFilterAllStatus(t *testing.T) {
|
|||||||
InitiatorID: owner.UserID,
|
InitiatorID: owner.UserID,
|
||||||
WorkerID: uuid.NullUUID{},
|
WorkerID: uuid.NullUUID{},
|
||||||
FileID: file.ID,
|
FileID: file.ID,
|
||||||
Tags: dbtype.StringMap{
|
Tags: database.StringMap{
|
||||||
"custom": "true",
|
"custom": "true",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@@ -617,7 +616,7 @@ func TestWorkspaceFilterAllStatus(t *testing.T) {
|
|||||||
job.Type = database.ProvisionerJobTypeWorkspaceBuild
|
job.Type = database.ProvisionerJobTypeWorkspaceBuild
|
||||||
job.OrganizationID = owner.OrganizationID
|
job.OrganizationID = owner.OrganizationID
|
||||||
// Need to prevent acquire from getting this job.
|
// Need to prevent acquire from getting this job.
|
||||||
job.Tags = dbtype.StringMap{
|
job.Tags = database.StringMap{
|
||||||
jobID.String(): "true",
|
jobID.String(): "true",
|
||||||
}
|
}
|
||||||
job = dbgen.ProvisionerJob(t, db, job)
|
job = dbgen.ProvisionerJob(t, db, job)
|
||||||
|
@@ -15,7 +15,6 @@ import (
|
|||||||
|
|
||||||
"github.com/coder/coder/coderd/database"
|
"github.com/coder/coder/coderd/database"
|
||||||
"github.com/coder/coder/coderd/database/dbmock"
|
"github.com/coder/coder/coderd/database/dbmock"
|
||||||
"github.com/coder/coder/coderd/database/dbtype"
|
|
||||||
"github.com/coder/coder/coderd/provisionerdserver"
|
"github.com/coder/coder/coderd/provisionerdserver"
|
||||||
"github.com/coder/coder/coderd/wsbuilder"
|
"github.com/coder/coder/coderd/wsbuilder"
|
||||||
"github.com/coder/coder/codersdk"
|
"github.com/coder/coder/codersdk"
|
||||||
@@ -614,7 +613,7 @@ func withActiveVersion(params []database.TemplateVersionParameter) func(mTx *dbm
|
|||||||
StorageMethod: database.ProvisionerStorageMethodFile,
|
StorageMethod: database.ProvisionerStorageMethodFile,
|
||||||
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
||||||
Input: nil,
|
Input: nil,
|
||||||
Tags: dbtype.StringMap{
|
Tags: database.StringMap{
|
||||||
"version": "active",
|
"version": "active",
|
||||||
provisionerdserver.TagScope: provisionerdserver.ScopeUser,
|
provisionerdserver.TagScope: provisionerdserver.ScopeUser,
|
||||||
},
|
},
|
||||||
@@ -654,7 +653,7 @@ func withInactiveVersion(params []database.TemplateVersionParameter) func(mTx *d
|
|||||||
StorageMethod: database.ProvisionerStorageMethodFile,
|
StorageMethod: database.ProvisionerStorageMethodFile,
|
||||||
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
||||||
Input: nil,
|
Input: nil,
|
||||||
Tags: dbtype.StringMap{
|
Tags: database.StringMap{
|
||||||
"version": "inactive",
|
"version": "inactive",
|
||||||
provisionerdserver.TagScope: provisionerdserver.ScopeUser,
|
provisionerdserver.TagScope: provisionerdserver.ScopeUser,
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user