func (n *Node) saveMySQL(tx datastore.Dbhandle, rlb, aab, nab, dab, oab []byte) error { _, err := tx.Exec("INSERT INTO nodes (name, chef_environment, run_list, automatic_attr, normal_attr, default_attr, override_attr, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), NOW()) ON DUPLICATE KEY UPDATE chef_environment = ?, run_list = ?, automatic_attr = ?, normal_attr = ?, default_attr = ?, override_attr = ?, updated_at = NOW()", n.Name, n.ChefEnvironment, rlb, aab, nab, dab, oab, n.ChefEnvironment, rlb, aab, nab, dab, oab) if err != nil { return err } return nil }
func (n *Node) savePostgreSQL(tx datastore.Dbhandle, rlb, aab, nab, dab, oab []byte) error { _, err := tx.Exec("SELECT goiardi.merge_nodes($1, $2, $3, $4, $5, $6, $7)", n.Name, n.ChefEnvironment, rlb, aab, nab, dab, oab) if err != nil { return err } return nil }
func checkForReportSQL(dbhandle datastore.Dbhandle, runID string) (bool, error) { var f int var sqlStmt string if config.Config.UseMySQL { sqlStmt = "SELECT count(*) AS c FROM reports WHERE run_id = ?" } else if config.Config.UsePostgreSQL { sqlStmt = "SELECT count(*) AS c FROM goiardi.reports WHERE run_id = $1" } stmt, err := dbhandle.Prepare(sqlStmt) if err != nil { return false, err } defer stmt.Close() err = stmt.QueryRow(runID).Scan(&f) if err != nil { if err == sql.ErrNoRows { return false, nil } return false, err } if f > 0 { return true, nil } return false, nil }
func (le *LogInfo) actualWriteEventPostgreSQL(tx datastore.Dbhandle, actorID int32) error { var err error if le.ID == 0 { sqlStmt := "INSERT INTO goiardi.log_infos (actor_id, actor_type, actor_info, time, action, object_type, object_name, extended_info) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)" _, err = tx.Exec(sqlStmt, actorID, le.ActorType, le.ActorInfo, le.Time, le.Action, le.ObjectType, le.ObjectName, le.ExtendedInfo) } else { sqlStmt := "INSERT INTO goiardi.log_infos (id, actor_id, actor_type, actor_info, time, action, object_type, object_name, extended_info) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)" _, err = tx.Exec(sqlStmt, le.ID, actorID, le.ActorType, le.ActorInfo, le.Time, le.Action, le.ObjectType, le.ObjectName, le.ExtendedInfo) } return err }
func (le *LogInfo) actualWriteEventMySQL(tx datastore.Dbhandle, actorID int32) error { var err error if le.ID == 0 { sqlStmt := "INSERT INTO log_infos (actor_id, actor_type, actor_info, time, action, object_type, object_name, extended_info) VALUES (?, ?, ?, ?, ?, ?, ?, ?)" _, err = tx.Exec(sqlStmt, actorID, le.ActorType, le.ActorInfo, le.Time, le.Action, le.ObjectType, le.ObjectName, le.ExtendedInfo) } else { sqlStmt := "INSERT INTO log_infos (id, actor_id, actor_type, actor_info, time, action, object_type, object_name, extended_info) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" _, err = tx.Exec(sqlStmt, le.ID, actorID, le.ActorType, le.ActorInfo, le.Time, le.Action, le.ObjectType, le.ObjectName, le.ExtendedInfo) } return err }
func chkForClient(handle datastore.Dbhandle, name string) error { var userID int32 err := handle.QueryRow("SELECT id FROM clients WHERE name = ?", name).Scan(&userID) if err != sql.ErrNoRows { if err == nil { err = fmt.Errorf("a client with id %d named %s was found that would conflict with this user", userID, name) } } else { err = nil } return err }