initial ideas

This commit is contained in:
2024-09-11 16:50:06 +10:00
parent d86f542f34
commit a5196bb321
11 changed files with 222 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
data.sqlite
+1
View File
@@ -0,0 +1 @@
package main
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
module vm-cbp
go 1.21.6
+9
View File
@@ -0,0 +1,9 @@
version: "2"
sql:
- engine: "sqlite"
queries: "vm/query.sql"
schema: "vm/schema.sql"
gen:
go:
package: "db"
out: "vm/db"
+31
View File
@@ -0,0 +1,31 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package db
import (
"context"
"database/sql"
)
type DBTX interface {
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
PrepareContext(context.Context, string) (*sql.Stmt, error)
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
return &Queries{
db: tx,
}
}
+33
View File
@@ -0,0 +1,33 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package db
import (
"database/sql"
)
type Vm struct {
Id sql.NullInt64
Name sql.NullString
Vcenter sql.NullString
CreationTime sql.NullString
DeletionTime sql.NullString
TinRpTime sql.NullFloat64
BronzeRpTime sql.NullFloat64
SilverRpTime sql.NullFloat64
GoldRpTime sql.NullFloat64
ResourcePool sql.NullString
VmType sql.NullString
PoweredOnPct sql.NullInt64
Datacenter sql.NullString
Cluster sql.NullString
Folder sql.NullString
ProvisionedDisk sql.NullFloat64
InitialVcpus sql.NullInt64
AvgVcpus sql.NullFloat64
InitialRam sql.NullInt64
AvgRam sql.NullFloat64
SrmPlaceholder sql.NullInt64
}
+109
View File
@@ -0,0 +1,109 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: query.sql
package db
import (
"context"
"database/sql"
)
const create = `-- name: Create :execresult
insert into "vm" (
"Name", "Vcenter"
)
values(?, ?)
`
type CreateParams struct {
Name sql.NullString
Vcenter sql.NullString
}
func (q *Queries) Create(ctx context.Context, arg CreateParams) (sql.Result, error) {
return q.db.ExecContext(ctx, create, arg.Name, arg.Vcenter)
}
const get = `-- name: Get :one
select Id, Name, Vcenter, CreationTime, DeletionTime, TinRpTime, BronzeRpTime, SilverRpTime, GoldRpTime, ResourcePool, VmType, PoweredOnPct, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, AvgVcpus, InitialRam, AvgRam, SrmPlaceholder from "vm" where "Name" = ?
`
func (q *Queries) Get(ctx context.Context, name sql.NullString) (Vm, error) {
row := q.db.QueryRowContext(ctx, get, name)
var i Vm
err := row.Scan(
&i.Id,
&i.Name,
&i.Vcenter,
&i.CreationTime,
&i.DeletionTime,
&i.TinRpTime,
&i.BronzeRpTime,
&i.SilverRpTime,
&i.GoldRpTime,
&i.ResourcePool,
&i.VmType,
&i.PoweredOnPct,
&i.Datacenter,
&i.Cluster,
&i.Folder,
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.AvgVcpus,
&i.InitialRam,
&i.AvgRam,
&i.SrmPlaceholder,
)
return i, err
}
const list = `-- name: List :many
select Id, Name, Vcenter, CreationTime, DeletionTime, TinRpTime, BronzeRpTime, SilverRpTime, GoldRpTime, ResourcePool, VmType, PoweredOnPct, Datacenter, Cluster, Folder, ProvisionedDisk, InitialVcpus, AvgVcpus, InitialRam, AvgRam, SrmPlaceholder from "vm" order by "Name"
`
func (q *Queries) List(ctx context.Context) ([]Vm, error) {
rows, err := q.db.QueryContext(ctx, list)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Vm
for rows.Next() {
var i Vm
if err := rows.Scan(
&i.Id,
&i.Name,
&i.Vcenter,
&i.CreationTime,
&i.DeletionTime,
&i.TinRpTime,
&i.BronzeRpTime,
&i.SilverRpTime,
&i.GoldRpTime,
&i.ResourcePool,
&i.VmType,
&i.PoweredOnPct,
&i.Datacenter,
&i.Cluster,
&i.Folder,
&i.ProvisionedDisk,
&i.InitialVcpus,
&i.AvgVcpus,
&i.InitialRam,
&i.AvgRam,
&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
}
+11
View File
@@ -0,0 +1,11 @@
-- name: Get :one
select * from "vm" where "Name" = ?;
-- name: List :many
select * from "vm" order by "Name";
-- name: Create :execresult
insert into "vm" (
"Name", "Vcenter"
)
values(?, ?);
+23
View File
@@ -0,0 +1,23 @@
CREATE TABLE IF NOT EXISTS "vm" (
"Id" INTEGER UNIQUE,
"Name" TEXT,
"Vcenter" TEXT,
"CreationTime" TEXT,
"DeletionTime" TEXT,
"TinRpTime" REAL,
"BronzeRpTime" REAL,
"SilverRpTime" REAL,
"GoldRpTime" REAL,
"ResourcePool" TEXT,
"VmType" TEXT,
"PoweredOnPct" INTEGER,
"Datacenter" TEXT,
"Cluster" TEXT,
"Folder" TEXT,
"ProvisionedDisk" REAL,
"InitialVcpus" INTEGER,
"AvgVcpus" REAL,
"InitialRam" INTEGER,
"AvgRam" REAL,
"SrmPlaceholder" INTEGER
);
+1
View File
@@ -0,0 +1 @@
package vm