mirror of https://github.com/coder/coder.git
feat(coderd): add last_seen_at and version to provisioner_daemons table (#11033)
Related to #10676 - Adds columns last_seen_at and version to provisioner_daemons table - Adds the above to codersdk.ProvisionerDaemons struct
This commit is contained in:
parent
dd1f8331de
commit
5fad611020
|
@ -9542,6 +9542,10 @@ const docTemplate = `{
|
|||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"last_seen_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
|
@ -9564,6 +9568,9 @@ const docTemplate = `{
|
|||
"$ref": "#/definitions/sql.NullTime"
|
||||
}
|
||||
]
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -8581,6 +8581,10 @@
|
|||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"last_seen_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
|
@ -8603,6 +8607,9 @@
|
|||
"$ref": "#/definitions/sql.NullTime"
|
||||
}
|
||||
]
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -513,7 +513,9 @@ CREATE TABLE provisioner_daemons (
|
|||
name character varying(64) NOT NULL,
|
||||
provisioners provisioner_type[] NOT NULL,
|
||||
replica_id uuid,
|
||||
tags jsonb DEFAULT '{}'::jsonb NOT NULL
|
||||
tags jsonb DEFAULT '{}'::jsonb NOT NULL,
|
||||
last_seen_at timestamp with time zone,
|
||||
version text DEFAULT ''::text NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE provisioner_job_logs (
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE provisioner_daemons
|
||||
DROP COLUMN last_seen_at,
|
||||
DROP COLUMN version;
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE provisioner_daemons
|
||||
ADD COLUMN last_seen_at TIMESTAMP WITH TIME ZONE NULL,
|
||||
ADD COLUMN version TEXT NOT NULL DEFAULT ''::TEXT;
|
|
@ -1844,6 +1844,8 @@ type ProvisionerDaemon struct {
|
|||
Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"`
|
||||
ReplicaID uuid.NullUUID `db:"replica_id" json:"replica_id"`
|
||||
Tags StringMap `db:"tags" json:"tags"`
|
||||
LastSeenAt sql.NullTime `db:"last_seen_at" json:"last_seen_at"`
|
||||
Version string `db:"version" json:"version"`
|
||||
}
|
||||
|
||||
type ProvisionerJob struct {
|
||||
|
|
|
@ -3004,7 +3004,7 @@ func (q *sqlQuerier) DeleteOldProvisionerDaemons(ctx context.Context) error {
|
|||
|
||||
const getProvisionerDaemons = `-- name: GetProvisionerDaemons :many
|
||||
SELECT
|
||||
id, created_at, updated_at, name, provisioners, replica_id, tags
|
||||
id, created_at, updated_at, name, provisioners, replica_id, tags, last_seen_at, version
|
||||
FROM
|
||||
provisioner_daemons
|
||||
`
|
||||
|
@ -3026,6 +3026,8 @@ func (q *sqlQuerier) GetProvisionerDaemons(ctx context.Context) ([]ProvisionerDa
|
|||
pq.Array(&i.Provisioners),
|
||||
&i.ReplicaID,
|
||||
&i.Tags,
|
||||
&i.LastSeenAt,
|
||||
&i.Version,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -3051,7 +3053,7 @@ INSERT INTO
|
|||
updated_at
|
||||
)
|
||||
VALUES
|
||||
($1, $2, $3, $4, $5, $6) RETURNING id, created_at, updated_at, name, provisioners, replica_id, tags
|
||||
($1, $2, $3, $4, $5, $6) RETURNING id, created_at, updated_at, name, provisioners, replica_id, tags, last_seen_at, version
|
||||
`
|
||||
|
||||
type InsertProvisionerDaemonParams struct {
|
||||
|
@ -3081,6 +3083,8 @@ func (q *sqlQuerier) InsertProvisionerDaemon(ctx context.Context, arg InsertProv
|
|||
pq.Array(&i.Provisioners),
|
||||
&i.ReplicaID,
|
||||
&i.Tags,
|
||||
&i.LastSeenAt,
|
||||
&i.Version,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
|
|
@ -40,7 +40,9 @@ type ProvisionerDaemon struct {
|
|||
ID uuid.UUID `json:"id" format:"uuid"`
|
||||
CreatedAt time.Time `json:"created_at" format:"date-time"`
|
||||
UpdatedAt sql.NullTime `json:"updated_at" format:"date-time"`
|
||||
LastSeenAt NullTime `json:"last_seen_at,omitempty" format:"date-time"`
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
Provisioners []ProvisionerType `json:"provisioners"`
|
||||
Tags map[string]string `json:"tags"`
|
||||
}
|
||||
|
|
|
@ -700,6 +700,7 @@ curl -X GET http://coder-server:8080/api/v2/organizations/{organization}/provisi
|
|||
{
|
||||
"created_at": "2019-08-24T14:15:22Z",
|
||||
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
|
||||
"last_seen_at": "2019-08-24T14:15:22Z",
|
||||
"name": "string",
|
||||
"provisioners": ["string"],
|
||||
"tags": {
|
||||
|
@ -709,7 +710,8 @@ curl -X GET http://coder-server:8080/api/v2/organizations/{organization}/provisi
|
|||
"updated_at": {
|
||||
"time": "string",
|
||||
"valid": true
|
||||
}
|
||||
},
|
||||
"version": "string"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
@ -729,6 +731,7 @@ Status Code **200**
|
|||
| `[array item]` | array | false | | |
|
||||
| `» created_at` | string(date-time) | false | | |
|
||||
| `» id` | string(uuid) | false | | |
|
||||
| `» last_seen_at` | string(date-time) | false | | |
|
||||
| `» name` | string | false | | |
|
||||
| `» provisioners` | array | false | | |
|
||||
| `» tags` | object | false | | |
|
||||
|
@ -736,6 +739,7 @@ Status Code **200**
|
|||
| `» updated_at` | [sql.NullTime](schemas.md#sqlnulltime) | false | | |
|
||||
| `»» time` | string | false | | |
|
||||
| `»» valid` | boolean | false | | Valid is true if Time is not NULL |
|
||||
| `» version` | string | false | | |
|
||||
|
||||
To perform this operation, you must be authenticated. [Learn more](authentication.md).
|
||||
|
||||
|
|
|
@ -3770,6 +3770,7 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in
|
|||
{
|
||||
"created_at": "2019-08-24T14:15:22Z",
|
||||
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
|
||||
"last_seen_at": "2019-08-24T14:15:22Z",
|
||||
"name": "string",
|
||||
"provisioners": ["string"],
|
||||
"tags": {
|
||||
|
@ -3779,7 +3780,8 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in
|
|||
"updated_at": {
|
||||
"time": "string",
|
||||
"valid": true
|
||||
}
|
||||
},
|
||||
"version": "string"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -3789,11 +3791,13 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in
|
|||
| ------------------ | ---------------------------- | -------- | ------------ | ----------- |
|
||||
| `created_at` | string | false | | |
|
||||
| `id` | string | false | | |
|
||||
| `last_seen_at` | string | false | | |
|
||||
| `name` | string | false | | |
|
||||
| `provisioners` | array of string | false | | |
|
||||
| `tags` | object | false | | |
|
||||
| » `[any property]` | string | false | | |
|
||||
| `updated_at` | [sql.NullTime](#sqlnulltime) | false | | |
|
||||
| `version` | string | false | | |
|
||||
|
||||
## codersdk.ProvisionerJob
|
||||
|
||||
|
|
|
@ -310,11 +310,13 @@ func (api *API) provisionerDaemonServe(rw http.ResponseWriter, r *http.Request)
|
|||
|
||||
func convertProvisionerDaemon(daemon database.ProvisionerDaemon) codersdk.ProvisionerDaemon {
|
||||
result := codersdk.ProvisionerDaemon{
|
||||
ID: daemon.ID,
|
||||
CreatedAt: daemon.CreatedAt,
|
||||
UpdatedAt: daemon.UpdatedAt,
|
||||
Name: daemon.Name,
|
||||
Tags: daemon.Tags,
|
||||
ID: daemon.ID,
|
||||
CreatedAt: daemon.CreatedAt,
|
||||
UpdatedAt: daemon.UpdatedAt,
|
||||
LastSeenAt: codersdk.NullTime{NullTime: daemon.LastSeenAt},
|
||||
Name: daemon.Name,
|
||||
Tags: daemon.Tags,
|
||||
Version: daemon.Version,
|
||||
}
|
||||
for _, provisionerType := range daemon.Provisioners {
|
||||
result.Provisioners = append(result.Provisioners, codersdk.ProvisionerType(provisionerType))
|
||||
|
|
|
@ -78,6 +78,7 @@ export const provisioners: TypesGen.ProvisionerDaemon[] = [
|
|||
created_at: "",
|
||||
provisioners: [],
|
||||
tags: {},
|
||||
version: "v2.34.5",
|
||||
},
|
||||
{
|
||||
id: "cdr-basic",
|
||||
|
@ -85,6 +86,7 @@ export const provisioners: TypesGen.ProvisionerDaemon[] = [
|
|||
created_at: "",
|
||||
provisioners: [],
|
||||
tags: {},
|
||||
version: "v2.34.5",
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
@ -748,7 +748,9 @@ export interface ProvisionerDaemon {
|
|||
readonly id: string;
|
||||
readonly created_at: string;
|
||||
readonly updated_at?: string;
|
||||
readonly last_seen_at?: string;
|
||||
readonly name: string;
|
||||
readonly version: string;
|
||||
readonly provisioners: ProvisionerType[];
|
||||
readonly tags: Record<string, string>;
|
||||
}
|
||||
|
|
|
@ -325,11 +325,13 @@ export const SuspendedMockUser: TypesGen.User = {
|
|||
};
|
||||
|
||||
export const MockProvisioner: TypesGen.ProvisionerDaemon = {
|
||||
created_at: "",
|
||||
created_at: "2022-05-17T17:39:01.382927298Z",
|
||||
updated_at: "2022-05-17T17:39:01.382927298Z",
|
||||
id: "test-provisioner",
|
||||
name: "Test Provisioner",
|
||||
provisioners: ["echo"],
|
||||
tags: {},
|
||||
version: "v2.34.5",
|
||||
};
|
||||
|
||||
export const MockProvisionerJob: TypesGen.ProvisionerJob = {
|
||||
|
|
Loading…
Reference in New Issue