當前位置: 首頁>>代碼示例>>Golang>>正文


Golang DataStore.SaveJob方法代碼示例

本文整理匯總了Golang中github.com/raphaelm/backupd/backupd/datastore.DataStore.SaveJob方法的典型用法代碼示例。如果您正苦於以下問題:Golang DataStore.SaveJob方法的具體用法?Golang DataStore.SaveJob怎麽用?Golang DataStore.SaveJob使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/raphaelm/backupd/backupd/datastore.DataStore的用法示例。


在下文中一共展示了DataStore.SaveJob方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: JobAdd

func JobAdd(store datastore.DataStore, w http.ResponseWriter, r *http.Request) {
	body, err := ioutil.ReadAll(r.Body)
	if err != nil {
		fmt.Printf("Error: %s\n", err)
		w.WriteHeader(http.StatusInternalServerError)
		return
	}

	var obj model.Job
	err = json.Unmarshal(body, &obj)
	if err != nil {
		w.WriteHeader(http.StatusBadRequest)
		w.Write([]byte(fmt.Sprintf("Error: %s", err)))
		return
	}

	if obj.ID != 0 {
		w.WriteHeader(http.StatusBadRequest)
		w.Write([]byte("Error: You cannot pass an ID"))
		return
	}
	created, err := store.SaveJob(&obj)

	if !created || err != nil {
		log.Println(err)
		w.WriteHeader(http.StatusInternalServerError)
		w.Write([]byte(fmt.Sprintf("Error: %s", err)))
		return
	}
	w.WriteHeader(http.StatusCreated)
}
開發者ID:raphaelm,項目名稱:backupd,代碼行數:31,代碼來源:jobs.go

示例2: testDeleteCascade

func testDeleteCascade(s datastore.DataStore, t *testing.T) {
	r := model.Remote{Driver: "ssh", Location: "foo"}
	created, err := s.SaveRemote(&r)
	assert.Equal(t, true, created)
	assert.Nil(t, err)

	j := model.Job{JobName: "foo", RemoteID: r.ID}
	created, err = s.SaveJob(&j)
	assert.Equal(t, true, created)
	assert.Nil(t, err)

	b := model.Backup{Result: model.BackupCompleted, JobID: j.ID}
	created, err = s.SaveBackup(&b)
	assert.Equal(t, true, created)
	assert.Nil(t, err)

	jslice, err := s.Jobs()
	assert.Nil(t, err)
	assert.Equal(t, 1, len(jslice))

	bslice, err := s.Backups()
	assert.Nil(t, err)
	assert.Equal(t, 1, len(bslice))

	s.DeleteRemote(&r)

	jslice, err = s.Jobs()
	assert.Nil(t, err)
	assert.Equal(t, 0, len(jslice))

	bslice, err = s.Backups()
	assert.Nil(t, err)
	assert.Equal(t, 0, len(bslice))
}
開發者ID:raphaelm,項目名稱:backupd,代碼行數:34,代碼來源:datastore_test.go

示例3: testBackups

func testBackups(s datastore.DataStore, t *testing.T) {
	// Test only valid JobIDs are accepted
	b := model.Backup{Result: model.BackupCompleted, JobID: 0}
	created, err := s.SaveBackup(&b)
	assert.NotNil(t, err)

	r := model.Remote{Driver: "ssh", Location: "foo"}
	created, err = s.SaveRemote(&r)
	j := model.Job{RemoteID: r.ID}
	created, err = s.SaveJob(&j)
	j2 := model.Job{RemoteID: r.ID}
	created, err = s.SaveJob(&j2)

	b = model.Backup{Result: model.BackupCompleted, JobID: j.ID}
	created, err = s.SaveBackup(&b)
	assert.Equal(t, true, created)
	assert.Nil(t, err)

	b2, err := s.Backup(b.ID)
	assert.Nil(t, err)
	assert.Equal(t, b.Result, b2.Result)
	assert.Equal(t, b.ID, b2.ID)

	b2.Result = model.BackupFailed
	created, err = s.SaveBackup(&b2)
	assert.Equal(t, false, created)
	assert.Nil(t, err)

	bslice, err := s.Backups()
	assert.Nil(t, err)
	assert.Equal(t, 1, len(bslice))
	assert.Equal(t, b2.Result, bslice[0].Result)
	assert.Equal(t, b2.ID, bslice[0].ID)

	bslice, err = s.BackupsForJob(&j)
	assert.Nil(t, err)
	assert.Equal(t, 1, len(bslice))

	bslice, err = s.BackupsForJob(&j2)
	assert.Nil(t, err)
	assert.Equal(t, 0, len(bslice))

	s.DeleteBackup(&b2)

	bslice, err = s.Backups()
	assert.Nil(t, err)
	assert.Equal(t, 0, len(bslice))

	_, err = s.Backup(b.ID)
	assert.NotNil(t, err)

	s.DeleteRemote(&r)
}
開發者ID:raphaelm,項目名稱:backupd,代碼行數:53,代碼來源:datastore_test.go

示例4: JobUpdate

func JobUpdate(store datastore.DataStore, w http.ResponseWriter, r *http.Request) {
	vars := mux.Vars(r)
	body, err := ioutil.ReadAll(r.Body)
	if err != nil {
		fmt.Printf("Error: %s\n", err)
		w.WriteHeader(http.StatusInternalServerError)
		return
	}
	id, err := strconv.Atoi(vars["id"])
	if err != nil {
		w.Write([]byte(fmt.Sprintf("Error: %s", err)))
		w.WriteHeader(http.StatusBadRequest)
		return
	}

	obj, err := store.Job(int64(id))
	if obj.ID == 0 || err != nil {
		w.WriteHeader(http.StatusNotFound)
		w.Write([]byte(fmt.Sprintf("Error: %s", err)))
		return
	}

	oldid := obj.ID
	err = json.Unmarshal(body, &obj)
	if err != nil {
		w.WriteHeader(http.StatusBadRequest)
		w.Write([]byte(fmt.Sprintf("Error: %s", err)))
		return
	}

	if obj.ID != oldid {
		w.WriteHeader(http.StatusBadRequest)
		w.Write([]byte("Error: You cannot change an ID"))
		return
	}
	_, err = store.SaveJob(&obj)

	if err != nil {
		w.WriteHeader(http.StatusInternalServerError)
		w.Write([]byte(fmt.Sprintf("Error: %s", err)))
		return
	}
	w.WriteHeader(http.StatusOK)
}
開發者ID:raphaelm,項目名稱:backupd,代碼行數:44,代碼來源:jobs.go

示例5: testJobs

func testJobs(s datastore.DataStore, t *testing.T) {
	// Test only valid RemoteIDs are accepted
	j := model.Job{JobName: "foo", RemoteID: 0}
	created, err := s.SaveJob(&j)
	assert.NotNil(t, err)

	r := model.Remote{Driver: "ssh", Location: "foo"}
	created, err = s.SaveRemote(&r)
	r2 := model.Remote{Driver: "ssh", Location: "bar"}
	created, err = s.SaveRemote(&r2)

	j = model.Job{JobName: "foo", RemoteID: r.ID}
	created, err = s.SaveJob(&j)
	assert.Equal(t, true, created)
	assert.Nil(t, err)

	j2, err := s.Job(j.ID)
	assert.Nil(t, err)
	assert.Equal(t, j.JobName, j2.JobName)
	assert.Equal(t, j.ID, j2.ID)

	j2.JobName = "bar"
	created, err = s.SaveJob(&j2)
	assert.Equal(t, false, created)
	assert.Nil(t, err)

	jslice, err := s.Jobs()
	assert.Nil(t, err)
	assert.Equal(t, 1, len(jslice))
	assert.Equal(t, j2.JobName, jslice[0].JobName)
	assert.Equal(t, j2.ID, jslice[0].ID)

	jslice, err = s.JobsForRemote(&r)
	assert.Nil(t, err)
	assert.Equal(t, 1, len(jslice))

	jslice, err = s.JobsForRemote(&r2)
	assert.Nil(t, err)
	assert.Equal(t, 0, len(jslice))

	s.DeleteJob(&j2)

	jslice, err = s.Jobs()
	assert.Nil(t, err)
	assert.Equal(t, 0, len(jslice))

	_, err = s.Job(j.ID)
	assert.NotNil(t, err)

	s.DeleteRemote(&r)
	s.DeleteRemote(&r2)
}
開發者ID:raphaelm,項目名稱:backupd,代碼行數:52,代碼來源:datastore_test.go


注:本文中的github.com/raphaelm/backupd/backupd/datastore.DataStore.SaveJob方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。