update database schema to avoid bool confusion
Some checks are pending
CI / Lint (push) Waiting to run
CI / Test (push) Waiting to run
CI / End-to-End (push) Waiting to run
CI / Publish Docker (push) Blocked by required conditions
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-27 11:07:51 +10:00
parent b371e28469
commit c691763430
8 changed files with 214 additions and 72 deletions

View File

@@ -0,0 +1,56 @@
-- +goose Up
-- +goose StatementBegin
ALTER TABLE "Inventory" RENAME COLUMN IsTemplate TO IsTemplate_old;
ALTER TABLE "Inventory" RENAME COLUMN PowerState TO PowerState_old;
ALTER TABLE "Inventory" RENAME COLUMN SrmPlaceholder TO SrmPlaceholder_old;
ALTER TABLE "Inventory" ADD COLUMN IsTemplate TEXT NOT NULL DEFAULT "FALSE";
ALTER TABLE "Inventory" ADD COLUMN PoweredOn TEXT NOT NULL DEFAULT "FALSE";
ALTER TABLE "Inventory" ADD COLUMN SrmPlaceholder TEXT NOT NULL DEFAULT "FALSE";
UPDATE Inventory
SET IsTemplate = CASE
WHEN IsTemplate_old = 1 THEN 'TRUE'
ELSE 'FALSE'
END;
UPDATE Inventory
SET PoweredOn = CASE
WHEN PowerState_old = 1 THEN 'TRUE'
ELSE 'FALSE'
END;
UPDATE Inventory
SET SrmPlaceholder = CASE
WHEN SrmPlaceholder_old = 1 THEN 'TRUE'
ELSE 'FALSE'
END;
ALTER TABLE "Inventory" DROP COLUMN IsTemplate_old;
ALTER TABLE "Inventory" DROP COLUMN PowerState_old;
ALTER TABLE "Inventory" DROP COLUMN SrmPlaceholder_old;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
ALTER TABLE "Inventory" RENAME COLUMN IsTemplate TO IsTemplate_old;
ALTER TABLE "Inventory" RENAME COLUMN PoweredOn TO PoweredOn_old;
ALTER TABLE "Inventory" RENAME COLUMN SrmPlaceholder TO SrmPlaceholder_old;
ALTER TABLE "Inventory" ADD COLUMN IsTemplate INTEGER;
ALTER TABLE "Inventory" ADD COLUMN PowerState INTEGER;
ALTER TABLE "Inventory" ADD COLUMN SrmPlaceholder INTEGER;
UPDATE Inventory
SET IsTemplate = CASE
WHEN IsTemplate_old = 'TRUE' THEN 1
ELSE 0
END;
UPDATE Inventory
SET PowerState = CASE
WHEN PoweredOn_old = 'TRUE' THEN 1
ELSE 0
END;
UPDATE Inventory
SET SrmPlaceholder = CASE
WHEN SrmPlaceholder_old = 'TRUE' THEN 1
ELSE 0
END;
ALTER TABLE "Inventory" DROP COLUMN IsTemplate_old;
ALTER TABLE "Inventory" DROP COLUMN PoweredOn_old;
ALTER TABLE "Inventory" DROP COLUMN SrmPlaceholder_old;
-- +goose StatementEnd

View File

@@ -43,9 +43,9 @@ type Inventory struct {
ProvisionedDisk sql.NullFloat64
InitialVcpus sql.NullInt64
InitialRam sql.NullInt64
SrmPlaceholder sql.NullInt64
IsTemplate sql.NullInt64
PowerState sql.NullInt64
IsTemplate interface{}
PoweredOn interface{}
SrmPlaceholder interface{}
}
type Updates struct {

View File

@@ -2,6 +2,10 @@
SELECT * FROM "Inventory"
ORDER BY "Name";
-- name: GetReportInventory :many
SELECT * FROM "Inventory"
ORDER BY "CreationTime";
-- name: GetInventoryByName :many
SELECT * FROM "Inventory"
WHERE "Name" = ?;
@@ -16,7 +20,7 @@ WHERE "CloudId" = ? LIMIT 1;
-- name: CreateInventory :one
INSERT INTO "Inventory" (
"Name", "Vcenter", "VmId", "EventKey", "CloudId", "CreationTime", "ResourcePool", "VmType", "IsTemplate", "Datacenter", "Cluster", "Folder", "ProvisionedDisk", "InitialVcpus", "InitialRam", "SrmPlaceholder", "PowerState"
"Name", "Vcenter", "VmId", "EventKey", "CloudId", "CreationTime", "ResourcePool", "VmType", "IsTemplate", "Datacenter", "Cluster", "Folder", "ProvisionedDisk", "InitialVcpus", "InitialRam", "SrmPlaceholder", "PoweredOn"
) VALUES(
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
)

View File

@@ -90,11 +90,11 @@ func (q *Queries) CreateEvent(ctx context.Context, arg CreateEventParams) (Event
const createInventory = `-- name: CreateInventory :one
INSERT INTO "Inventory" (
"Name", "Vcenter", "VmId", "EventKey", "CloudId", "CreationTime", "ResourcePool", "VmType", "IsTemplate", "Datacenter", "Cluster", "Folder", "ProvisionedDisk", "InitialVcpus", "InitialRam", "SrmPlaceholder", "PowerState"
"Name", "Vcenter", "VmId", "EventKey", "CloudId", "CreationTime", "ResourcePool", "VmType", "IsTemplate", "Datacenter", "Cluster", "Folder", "ProvisionedDisk", "InitialVcpus", "InitialRam", "SrmPlaceholder", "PoweredOn"
) VALUES(
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
)
RETURNING Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, SrmPlaceholder, IsTemplate, PowerState
RETURNING Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder
`
type CreateInventoryParams struct {
@@ -106,15 +106,15 @@ type CreateInventoryParams struct {
CreationTime sql.NullInt64
ResourcePool sql.NullString
VmType sql.NullString
IsTemplate sql.NullInt64
IsTemplate interface{}
Datacenter sql.NullString
Cluster sql.NullString
Folder sql.NullString
ProvisionedDisk sql.NullFloat64
InitialVcpus sql.NullInt64
InitialRam sql.NullInt64
SrmPlaceholder sql.NullInt64
PowerState sql.NullInt64
SrmPlaceholder interface{}
PoweredOn interface{}
}
func (q *Queries) CreateInventory(ctx context.Context, arg CreateInventoryParams) (Inventory, error) {
@@ -135,7 +135,7 @@ func (q *Queries) CreateInventory(ctx context.Context, arg CreateInventoryParams
arg.InitialVcpus,
arg.InitialRam,
arg.SrmPlaceholder,
arg.PowerState,
arg.PoweredOn,
)
var i Inventory
err := row.Scan(
@@ -155,9 +155,9 @@ func (q *Queries) CreateInventory(ctx context.Context, arg CreateInventoryParams
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.InitialRam,
&i.SrmPlaceholder,
&i.IsTemplate,
&i.PowerState,
&i.PoweredOn,
&i.SrmPlaceholder,
)
return i, err
}
@@ -215,7 +215,7 @@ func (q *Queries) CreateUpdate(ctx context.Context, arg CreateUpdateParams) (Upd
}
const getInventoryByName = `-- name: GetInventoryByName :many
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, SrmPlaceholder, IsTemplate, PowerState FROM "Inventory"
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder FROM "Inventory"
WHERE "Name" = ?
`
@@ -245,9 +245,9 @@ func (q *Queries) GetInventoryByName(ctx context.Context, name string) ([]Invent
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.InitialRam,
&i.SrmPlaceholder,
&i.IsTemplate,
&i.PowerState,
&i.PoweredOn,
&i.SrmPlaceholder,
); err != nil {
return nil, err
}
@@ -263,7 +263,7 @@ func (q *Queries) GetInventoryByName(ctx context.Context, name string) ([]Invent
}
const getInventoryEventId = `-- name: GetInventoryEventId :one
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, SrmPlaceholder, IsTemplate, PowerState FROM "Inventory"
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder FROM "Inventory"
WHERE "CloudId" = ? LIMIT 1
`
@@ -287,15 +287,15 @@ func (q *Queries) GetInventoryEventId(ctx context.Context, cloudid sql.NullStrin
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.InitialRam,
&i.SrmPlaceholder,
&i.IsTemplate,
&i.PowerState,
&i.PoweredOn,
&i.SrmPlaceholder,
)
return i, err
}
const getInventoryVmId = `-- name: GetInventoryVmId :one
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, SrmPlaceholder, IsTemplate, PowerState FROM "Inventory"
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder FROM "Inventory"
WHERE "VmId" = ?1 AND "Datacenter" = ?2
`
@@ -324,17 +324,65 @@ func (q *Queries) GetInventoryVmId(ctx context.Context, arg GetInventoryVmIdPara
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.InitialRam,
&i.SrmPlaceholder,
&i.IsTemplate,
&i.PowerState,
&i.PoweredOn,
&i.SrmPlaceholder,
)
return i, err
}
const getReportInventory = `-- name: GetReportInventory :many
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder FROM "Inventory"
ORDER BY "CreationTime"
`
func (q *Queries) GetReportInventory(ctx context.Context) ([]Inventory, error) {
rows, err := q.db.QueryContext(ctx, getReportInventory)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Inventory
for rows.Next() {
var i Inventory
if err := rows.Scan(
&i.Iid,
&i.Name,
&i.Vcenter,
&i.VmId,
&i.EventKey,
&i.CloudId,
&i.CreationTime,
&i.DeletionTime,
&i.ResourcePool,
&i.VmType,
&i.Datacenter,
&i.Cluster,
&i.Folder,
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.InitialRam,
&i.IsTemplate,
&i.PoweredOn,
&i.SrmPlaceholder,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const inventoryCleanup = `-- name: InventoryCleanup :exec
DELETE FROM "Inventory"
WHERE "VmId" = ?1 AND "Datacenter" = ?2
RETURNING Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, SrmPlaceholder, IsTemplate, PowerState
RETURNING Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder
`
type InventoryCleanupParams struct {
@@ -409,7 +457,7 @@ func (q *Queries) ListEvents(ctx context.Context) ([]Events, error) {
}
const listInventory = `-- name: ListInventory :many
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, SrmPlaceholder, IsTemplate, PowerState FROM "Inventory"
SELECT Iid, Name, Vcenter, VmId, EventKey, CloudId, CreationTime, DeletionTime, ResourcePool, VmType, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, InitialRam, IsTemplate, PoweredOn, SrmPlaceholder FROM "Inventory"
ORDER BY "Name"
`
@@ -439,9 +487,9 @@ func (q *Queries) ListInventory(ctx context.Context) ([]Inventory, error) {
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.InitialRam,
&i.SrmPlaceholder,
&i.IsTemplate,
&i.PowerState,
&i.PoweredOn,
&i.SrmPlaceholder,
); err != nil {
return nil, err
}