refactor!: separate runtime releases from panel source
This commit is contained in:
@@ -84,43 +84,6 @@ func TestRuntimeNetworkDeletionLostResponseAndReplacement(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
func TestStartIntentsUncertainCreationKeepsRecoveryAccessible(t *testing.T) {
|
||||
a, _ := runtimeTestAPI(t, func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path == "/v1.47/images/image/json" {
|
||||
writeImageInspect(w, "image", "1.2.3")
|
||||
return
|
||||
}
|
||||
if r.Method != "GET" {
|
||||
t.Error("unexpected destructive call")
|
||||
}
|
||||
w.WriteHeader(404)
|
||||
})
|
||||
if err := a.s.EnsureIntents(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := a.s.ReserveIntent(store.Intent{ID: "intent", UID: "owner"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := a.s.ClaimIntent("intent", store.Instance{ID: "pending", UID: "owner", Status: "creating"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := a.setRuntimeCreatePending("pending", "container_pending", true); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
if err := a.StartIntents(ctx); err != nil {
|
||||
t.Fatalf("uncertain creation blocked startup: %v", err)
|
||||
}
|
||||
i, err := a.s.GetInstance("pending")
|
||||
if err != nil || i.Status != "error" {
|
||||
t.Fatalf("recovery reservation missing %+v %v", i, err)
|
||||
}
|
||||
list, err := a.s.Intents("owner")
|
||||
if err != nil || len(list) != 1 || list[0].Status != "failed" {
|
||||
t.Fatalf("intent not terminated %+v %v", list, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNetworkCreateLostResponse(t *testing.T) {
|
||||
for _, mode := range []string{"present", "late", "foreign"} {
|
||||
@@ -258,7 +221,7 @@ func TestBuildTerminalFailureDoesNotBlockNextTask(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, id := range []string{"a", "b"} {
|
||||
if _, err = a.s.DB.Exec("INSERT INTO image_builds(id,version,status,created_at) VALUES(?,'1.2.3','queued',?)", id, id); err != nil {
|
||||
if _, err = a.s.DB.Exec("INSERT INTO image_builds(id,version,status,created_at,release_id) VALUES(?,'1.2.3','queued',?,'release')", id, id); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
@@ -535,32 +498,6 @@ func TestBuildResultTransactionAndRetry(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntentRecoveryMissingReservationDoesNotTouchDocker(t *testing.T) {
|
||||
a, _ := runtimeTestAPI(t, func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path == "/v1.47/images/image/json" {
|
||||
writeImageInspect(w, "image", "1.2.3")
|
||||
return
|
||||
}
|
||||
t.Error("missing reservation must not authorize Docker cleanup")
|
||||
})
|
||||
if err := a.s.EnsureIntents(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := a.s.ReserveIntent(store.Intent{ID: "missing", UID: "owner"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err := a.s.DB.Exec("UPDATE creation_intents SET status='creating',instance_id='gone' WHERE id='missing'"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := a.recoverIntents(context.Background()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
list, err := a.s.Intents("owner")
|
||||
if err != nil || len(list) != 1 || list[0].Status != "failed" {
|
||||
t.Fatalf("intent not terminated: %+v %v", list, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildTerminalRetryStopsWhenDatabaseCloses(t *testing.T) {
|
||||
a, _ := imageTestAPI(t, func(w http.ResponseWriter, r *http.Request) { t.Error("unexpected Docker call") })
|
||||
a.s.Close()
|
||||
|
||||
Reference in New Issue
Block a user