func dbOpen() db.IConnection { c, err := db.Open(db_name) if err != nil { panic(err) } return c }
func TestUpdateJob_ジョブの更新処理(t *testing.T) { conn, err := db.Open(db_name) if err != nil { t.Fatal(err) } defer conn.Close() jobres := &db.JobResult{ ID: 122, JobId: "JOB002", JobName: "XYZ.vbs", StartDate: utctime.Now().String(), Status: db.RUNNING, Node: "TestNode02", Port: 9999, } err = InsertJob(conn, jobres, &mutex) if err != nil { t.Fatal("ジョブテーブルへの登録に失敗しました。 - ", err) } jobres.Status = db.ABNORMAL jobres.Variable = "VAR" jobres.EndDate = utctime.Now().String() jobres.Detail = "Attention!!" jobres.Rc = 4 err = UpdateJob(conn, jobres, &mutex) if err != nil { t.Error("ジョブテーブルの更新に失敗しました。 - ", err) } }
// ユーティリティ実行のメインルーチン // 成功した場合は、出力したジョブネットワークの件数を返します。 func (s *ShowParam) Run(db_name string, isOutputUTC bool) (int, error) { conn, err := db.Open(db_name) if err != nil { return 0, err } defer conn.Close() s.conn = conn // ジョブネットワーク情報の取得 netResults, err := s.getJobnetworkList() if err != nil { return 0, err } else if len(netResults) == 0 { return 0, nil } // 取得したジョブネットワークインスタンス毎に、ジョブを出力する。 var out gen.OutputRoot for _, jobnet := range netResults { oneJobnet := &oneJobnetwork{jobnet: jobnet} err := oneJobnet.getJobList(s.conn) if err != nil { // ジョブネットワーク内のジョブ取得に失敗したが、ジョブネットワークだけでも出力する。 console.DisplayError("CTU005W", oneJobnet.jobnet.ID, err) } out.Jobnetworks = append(out.Jobnetworks, oneJobnet.setOutputStructure(isOutputUTC)) } // ジェネレーターで出力メッセージ作成。 msg, err := s.gen.Generate(&out) if err != nil { return 0, err } fmt.Fprint(os.Stdout, msg) return len(netResults), nil }
func getNetworkResult(instanceID int) (*db.JobNetworkResult, error) { conn, err := db.Open(config.DB.DBFile) if err != nil { return nil, err } defer conn.Close() return query.GetJobnetwork(conn, instanceID) }
func newTestNetwork() *Network { n, _ := NewNetwork("test") n.Result = &tx.ResultMap{JobnetResult: nil, Jobresults: make(tx.JobMap)} dbpath := getTestDBPath() conn, err := db.Open(dbpath) if err != nil { panic(err) } n.Result.SetConnection(conn) return n }
// ジョブネットワークの開始状態を記録する。 // // param : jobnetName ジョブネットワーク名。 // // param : dbname データベース名。 // // return : ジョブ実行結果を保持する構造体ポインタ。 // // return : error func StartJobNetwork(jobnetName string, dbname string) (*ResultMap, error) { jn := db.NewJobNetworkResult(jobnetName, utctime.Now().String(), db.RUNNING) conn, err := db.Open(dbname) if err != nil { return nil, err } resMap := &ResultMap{jn, make(JobMap), conn} if err := resMap.insertJobNetwork(); err != nil { return nil, err } return resMap, nil }
// DBを検査して、登録件数と内容を取得する。 func verifyDb(nid int) (int, *db.JobNetworkResult) { conn, err := db.Open(db_name) if err != nil { panic(err.Error()) } defer conn.Close() num := query.JobnetworkCountAll(conn) res, err := query.GetJobnetwork(conn, nid) if err != nil { panic(err) } return num, res }
// DBの初期化。 func init() { conn, err := db.Open(db_name) if err != nil { panic(err.Error()) } defer conn.Close() conn.GetDbMap().DropTables() err = conn.GetDbMap().CreateTables() if err != nil { panic(err.Error()) } // テストを繰り返すとDBが肥大化する対策 conn.GetDb().Exec("vacuum") }
func TestUpdateJob_ジョブの登録前に更新(t *testing.T) { conn, err := db.Open(dummy_db) if err != nil { t.Fatal(err) } defer conn.Close() jobres := &db.JobResult{ ID: 132, JobId: "JOB002", JobName: "XYZ.vbs", StartDate: utctime.Now().String(), Status: db.RUNNING, Node: "TestNode02", Port: 9999, } err = UpdateJob(conn, jobres, &mutex) if err == nil { t.Error("予定していた失敗が返りませんでした。 - ") } }
func TestInsertJob_ジョブの新規登録失敗(t *testing.T) { conn, err := db.Open(dummy_db) if err != nil { t.Fatal(err) } defer conn.Close() err = InsertJob(conn, &db.JobResult{ ID: 131, JobId: "JOB001", JobName: "abcjob.bat", StartDate: utctime.Now().String(), Status: db.RUNNING, Node: "TestNode01", Port: 9999, }, &mutex) if err == nil { t.Error("予定していた失敗が返りませんでした。 - ") } }
func TestInsertJob_ジョブの新規登録処理(t *testing.T) { conn, err := db.Open(db_name) if err != nil { t.Fatal(err) } defer conn.Close() err = InsertJob(conn, &db.JobResult{ ID: 121, JobId: "JOB001", JobName: "abcjob.bat", StartDate: utctime.Now().String(), Status: db.RUNNING, Node: "TestNode01", Port: 9999, }, &mutex) if err != nil { t.Error("ジョブテーブルへの登録に失敗しました。 - ", err) } }
// ジョブネットワークの実行結果を復元する。 func ResumeJobNetwork(nid int, dbname string) (*ResultMap, error) { conn, err := db.Open(dbname) if err != nil { return nil, err } jn, err := query.GetJobnetwork(conn, nid) if err != nil { return nil, err } jr, err := query.GetJobMapOfTargetNetwork(conn, nid) if err != nil { return nil, err } resMap := &ResultMap{ JobnetResult: jn, Jobresults: jr, conn: conn, } return resMap, nil }