Exemple #1
0
func dbOpen() db.IConnection {
	c, err := db.Open(db_name)
	if err != nil {
		panic(err)
	}
	return c
}
Exemple #2
0
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)
	}
}
Exemple #3
0
// ユーティリティ実行のメインルーチン
// 成功した場合は、出力したジョブネットワークの件数を返します。
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
}
Exemple #4
0
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)
}
Exemple #5
0
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
}
Exemple #6
0
// ジョブネットワークの開始状態を記録する。
//
// 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
}
Exemple #7
0
// 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
}
Exemple #8
0
// 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")
}
Exemple #9
0
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("予定していた失敗が返りませんでした。 - ")
	}
}
Exemple #10
0
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("予定していた失敗が返りませんでした。 - ")
	}
}
Exemple #11
0
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)
	}
}
Exemple #12
0
// ジョブネットワークの実行結果を復元する。
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
}