cerman updated

This commit is contained in:
Олег Бородин
2024-08-07 11:31:18 +02:00
parent 07b32e881e
commit a21b4e2db9
20 changed files with 638 additions and 377 deletions

View File

@@ -1,6 +1,7 @@
package database
import (
"context"
"path/filepath"
"certmanager/pkg/logger"
@@ -10,18 +11,20 @@ import (
)
const schema = `
--- DROP TABLE IF EXISTS issuer;
DROP TABLE IF EXISTS issuer;
CREATE TABLE IF NOT EXISTS issuer (
id INT NOT NULL,
name TEXT NOT NULL,
cert TEXT NOT NULL,
key TEXT,
revoked BOOL
id INT NOT NULL,
name TEXT NOT NULL,
cert TEXT NOT NULL,
key TEXT,
signer_id INT NOT NULL,
signer_name TEXT NOT NULL,
revoked BOOL
);
CREATE INDEX IF NOT EXISTS issuer_index
ON issuer(id, name);
--- DROP TABLE IF EXISTS service;
DROP TABLE IF EXISTS service;
CREATE TABLE IF NOT EXISTS service (
id INT NOT NULL,
issuer_id INT NOT NULL,
@@ -71,3 +74,16 @@ func (db *Database) InitDatabase() error {
}
return err
}
func (db *Database) CleanDatabase(ctx context.Context) error {
var err error
request := `
DELETE FROM issuer;
DELETE FROM service;
`
_, err = db.db.Exec(request)
if err != nil {
return err
}
return err
}

View File

@@ -4,23 +4,20 @@ import (
"context"
"certmanager/internal/descriptor"
"certmanager/pkg/auxid"
_ "github.com/mattn/go-sqlite3"
)
func (db *Database) InsertIssuer(ctx context.Context, issuer *descriptor.Issuer) (int64, error) {
func (db *Database) InsertIssuer(ctx context.Context, issuer *descriptor.Issuer) error {
var err error
var res int64
issuer.ID = auxid.GenID()
request := `INSERT INTO issuer(id, name, cert, key, revoked)
VALUES ($1, $2, $3, $4, $5)`
_, err = db.db.Exec(request, issuer.ID, issuer.Name, issuer.Cert, issuer.Key, issuer.Revoked)
request := `INSERT INTO issuer(id, name, cert, key, revoked, signer_id, signer_name)
VALUES ($1, $2, $3, $4, $5, $6, $7)`
_, err = db.db.Exec(request, issuer.ID, issuer.Name, issuer.Cert, issuer.Key, issuer.Revoked,
issuer.SignerID, issuer.SignerName)
if err != nil {
return res, err
return err
}
res = issuer.ID
return res, err
return err
}
func (db *Database) UpdateIssuerByID(ctx context.Context, issuerID int64, issuer *descriptor.Issuer) error {
@@ -35,7 +32,7 @@ func (db *Database) UpdateIssuerByID(ctx context.Context, issuerID int64, issuer
func (db *Database) ListIssuers(ctx context.Context) ([]descriptor.Issuer, error) {
var err error
request := `SELECT id, name, revoked FROM issuer`
request := `SELECT id, name, signer_id, signer_name, revoked FROM issuer`
res := make([]descriptor.Issuer, 0)
err = db.db.Select(&res, request)
if err != nil {
@@ -48,7 +45,7 @@ func (db *Database) GetIssuerByID(ctx context.Context, issuerID int64) (bool, *d
var err error
var res *descriptor.Issuer
var exists bool
request := `SELECT id, name, cert, key, revoked FROM issuer WHERE id = $1 LiMIT 1`
request := `SELECT id, name, cert, key, revoked, signer_id, signer_name FROM issuer WHERE id = $1 LiMIT 1`
dbRes := make([]descriptor.Issuer, 0)
err = db.db.Select(&dbRes, request, issuerID)
if err != nil {
@@ -66,7 +63,7 @@ func (db *Database) GetIssuerByName(ctx context.Context, issuerName string) (boo
var err error
var res *descriptor.Issuer
var exists bool
request := `SELECT id, name, cert, key, revoked FROM issuer WHERE name = $1 LIMIT 1`
request := `SELECT id, name, cert, key, revoked, signer_id, signer_name FROM issuer WHERE name = $1 LIMIT 1`
dbRes := make([]descriptor.Issuer, 0)
err = db.db.Select(&dbRes, request, issuerName)
if err != nil {

View File

@@ -4,24 +4,20 @@ import (
"context"
"certmanager/internal/descriptor"
"certmanager/pkg/auxid"
_ "github.com/mattn/go-sqlite3"
)
func (db *Database) InsertService(ctx context.Context, service *descriptor.Service) (int64, error) {
func (db *Database) InsertService(ctx context.Context, service *descriptor.Service) error {
var err error
var res int64
service.ID = auxid.GenID()
request := `INSERT INTO service(id, issuer_id, name, cert, key, revoked, issuer_name)
VALUES ($1, $2, $3, $4, $5, $6, $7)`
_, err = db.db.Exec(request, service.ID, service.IssuerID, service.Name, service.Cert,
service.Key, service.Revoked, service.IssuerName)
if err != nil {
return res, err
return err
}
res = service.ID
return res, err
return err
}
func (db *Database) UpdateServiceByID(ctx context.Context, serviceID int64, service *descriptor.Service) error {
@@ -36,7 +32,7 @@ func (db *Database) UpdateServiceByID(ctx context.Context, serviceID int64, serv
func (db *Database) ListServices(ctx context.Context) ([]descriptor.Service, error) {
var err error
request := `SELECT * FROM service`
request := `SELECT id, name, issuer_id, issuer_name, revoked FROM service`
res := make([]descriptor.Service, 0)
err = db.db.Select(&res, request)
if err != nil {
@@ -81,7 +77,7 @@ func (db *Database) GetServiceByName(ctx context.Context, serviceName string) (b
return exists, res, err
}
func (db *Database) XXXDeleteServiceByID(ctx context.Context, serviceID int64) error {
func (db *Database) DeleteServiceByID(ctx context.Context, serviceID int64) error {
var err error
request := `DELETE FROM service WHERE id = $1`
_, err = db.db.Exec(request, serviceID)
@@ -91,7 +87,7 @@ func (db *Database) XXXDeleteServiceByID(ctx context.Context, serviceID int64) e
return err
}
func (db *Database) XXXDeleteServiceByName(ctx context.Context, serviceName string) error {
func (db *Database) DeleteServiceByName(ctx context.Context, serviceName string) error {
var err error
request := `DELETE FROM service WHERE name = $1`
_, err = db.db.Exec(request, serviceName)