Semaphore/db/Inventory.go

49 lines
1.3 KiB
Go
Raw Normal View History

2017-02-23 06:12:16 +01:00
package db
2016-04-04 15:44:34 +02:00
2024-03-09 20:23:38 +01:00
type InventoryType string
const (
2024-03-25 01:24:04 +01:00
//InventoryNone InventoryType = "none"
2024-03-09 20:23:38 +01:00
InventoryStatic InventoryType = "static"
InventoryStaticYaml InventoryType = "static-yaml"
// InventoryFile means that it is path to the Ansible inventory file
InventoryFile InventoryType = "file"
)
2022-02-03 08:05:13 +01:00
// Inventory is the model of an ansible inventory file
2016-04-04 15:44:34 +02:00
type Inventory struct {
ID int `db:"id" json:"id"`
Name string `db:"name" json:"name" binding:"required"`
2016-04-04 15:44:34 +02:00
ProjectID int `db:"project_id" json:"project_id"`
Inventory string `db:"inventory" json:"inventory"`
// accesses hosts in inventory
SSHKeyID *int `db:"ssh_key_id" json:"ssh_key_id"`
SSHKey AccessKey `db:"-" json:"-"`
BecomeKeyID *int `db:"become_key_id" json:"become_key_id"`
BecomeKey AccessKey `db:"-" json:"-"`
2021-08-30 16:24:20 +02:00
// static/file
2024-03-09 20:23:38 +01:00
Type InventoryType `db:"type" json:"type"`
2024-03-10 13:13:44 +01:00
2024-03-18 15:33:40 +01:00
// HolderID is an ID of template which holds the inventory
2024-03-10 13:13:44 +01:00
HolderID *int `db:"holder_id" json:"holder_id"`
2016-04-04 15:44:34 +02:00
}
func FillInventory(d Store, inventory *Inventory) (err error) {
if inventory.SSHKeyID != nil {
inventory.SSHKey, err = d.GetAccessKey(inventory.ProjectID, *inventory.SSHKeyID)
}
if err != nil {
return
}
if inventory.BecomeKeyID != nil {
inventory.BecomeKey, err = d.GetAccessKey(inventory.ProjectID, *inventory.BecomeKeyID)
}
return
}