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
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
data.sqlite

1
cmd/api/main.go Normal file
View File

@@ -0,0 +1 @@
package main

BIN
data.sqlite-journal Normal file

Binary file not shown.

3
go.mod Normal file
View File

@@ -0,0 +1,3 @@
module vm-cbp
go 1.21.6

9
sqlc.yaml Normal file
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
vm/db/db.go Normal file
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
vm/db/models.go Normal file
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
vm/db/query.sql.go Normal file
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
vm/query.sql Normal file
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
vm/schema.sql Normal file
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
vm/service.go Normal file
View File

@@ -0,0 +1 @@
package vm