diff --git a/controller/store/agentEnrollment.go b/controller/store/agentEnrollment.go new file mode 100644 index 00000000..99d5ce22 --- /dev/null +++ b/controller/store/agentEnrollment.go @@ -0,0 +1,32 @@ +package store + +import ( + "github.com/jmoiron/sqlx" + "github.com/pkg/errors" +) + +type AgentEnrollment struct { + Model + EnvironmentId int + Token string +} + +func (str *Store) CreateAgentEnrollment(envId int, token string, trx *sqlx.Tx) (int, error) { + stmt, err := trx.Prepare("insert into agent_enrollments (environment_id, token) values ($1, $2) returing id") + if err != nil { + return 0, errors.Wrap(err, "error preparing agent enrollments insert statement") + } + var id int + if err := stmt.QueryRow(envId, token).Scan(&id); err != nil { + return 0, errors.Wrap(err, "error executing agent enrollments insert statement") + } + return id, nil +} + +func (str *Store) FindAgentEnrollmentForEnvironment(envId int, trx *sqlx.Tx) (*AgentEnrollment, error) { + ae := &AgentEnrollment{} + if err := trx.QueryRowx("select * from agent_enrollments where environment_id = $1", envId).StructScan(ae); err != nil { + return nil, errors.Wrap(err, "error finding agent enrollment") + } + return ae, nil +} diff --git a/controller/store/sql/postgresql/033_v1_0_5_agent_enrollments.sql b/controller/store/sql/postgresql/033_v1_0_5_agent_enrollments.sql new file mode 100644 index 00000000..73f7b639 --- /dev/null +++ b/controller/store/sql/postgresql/033_v1_0_5_agent_enrollments.sql @@ -0,0 +1,14 @@ +-- +migrate Up + +create table agent_enrollments ( + id serial primary key, + + environment_id integer not null references environments(id), + token varchar(32) not null unique, + + created_at timestamptz not null default(current_timestamp), + updated_at timestamptz not null default(current_timestamp), + deleted boolean not null default(false) +); + +create index agent_enrollments_environment_id_idx on agent_enrollments(environment_id); \ No newline at end of file diff --git a/controller/store/sql/sqlite3/033_v1_0_5_agent_enrollments.sql b/controller/store/sql/sqlite3/033_v1_0_5_agent_enrollments.sql new file mode 100644 index 00000000..7b32e352 --- /dev/null +++ b/controller/store/sql/sqlite3/033_v1_0_5_agent_enrollments.sql @@ -0,0 +1,14 @@ +-- +migrate Up + +create table agent_enrollments ( + id integer primary key, + + environment_id integer not null references environments(id), + token varchar(32) not null unique, + + created_at datetime not null default(strftime('%Y-%m-%d %H:%M:%f', 'now')), + updated_at datetime not null default(strftime('%Y-%m-%d %H:%M:%f', 'now')), + deleted boolean not null default(false) +); + +create index agent_enrollments_environment_id_idx on agent_enrollments(environment_id); \ No newline at end of file