Skip to content

Commit b96d4cb

Browse files
csweichelroboquat
authored andcommitted
[content-service] Add snapshot initializer to walkInitializer
1 parent dc5a03b commit b96d4cb

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

components/content-service-api/go/initializer.go

+19-17
Original file line numberDiff line numberDiff line change
@@ -105,27 +105,12 @@ func WalkInitializer(path []string, init *WorkspaceInitializer, visitor func(pat
105105
}
106106

107107
switch spec := init.Spec.(type) {
108-
case *WorkspaceInitializer_Backup:
109-
return visitor(append(path, "backup"), init)
110-
case *WorkspaceInitializer_Composite:
111-
path = append(path, "composite")
112-
err := visitor(path, init)
113-
if err != nil {
114-
return err
115-
}
116-
for i, p := range spec.Composite.Initializer {
117-
err := WalkInitializer(append(path, strconv.Itoa(i)), p, visitor)
118-
if err != nil {
119-
return err
120-
}
121-
}
122-
return nil
123-
case *WorkspaceInitializer_Download:
124-
return visitor(append(path, "download"), init)
125108
case *WorkspaceInitializer_Empty:
126109
return visitor(append(path, "empty"), init)
127110
case *WorkspaceInitializer_Git:
128111
return visitor(append(path, "git"), init)
112+
case *WorkspaceInitializer_Snapshot:
113+
return visitor(append(path, "snapshot"), init)
129114
case *WorkspaceInitializer_Prebuild:
130115
child := append(path, "prebuild")
131116
err := visitor(child, init)
@@ -139,6 +124,23 @@ func WalkInitializer(path []string, init *WorkspaceInitializer, visitor func(pat
139124
}
140125
}
141126
return nil
127+
case *WorkspaceInitializer_Composite:
128+
path = append(path, "composite")
129+
err := visitor(path, init)
130+
if err != nil {
131+
return err
132+
}
133+
for i, p := range spec.Composite.Initializer {
134+
err := WalkInitializer(append(path, strconv.Itoa(i)), p, visitor)
135+
if err != nil {
136+
return err
137+
}
138+
}
139+
return nil
140+
case *WorkspaceInitializer_Download:
141+
return visitor(append(path, "download"), init)
142+
case *WorkspaceInitializer_Backup:
143+
return visitor(append(path, "backup"), init)
142144

143145
default:
144146
return fmt.Errorf("unsupported workspace initializer in walkInitializer - this is a bug in Gitpod")

components/content-service-api/go/initializer_test.go

+11
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,17 @@ func TestGetCheckoutLocationsFromInitializer(t *testing.T) {
105105
{
106106
Name: "nil initializer",
107107
},
108+
{
109+
Name: "snapshot initializer",
110+
Initializer: &api.WorkspaceInitializer{
111+
Spec: &api.WorkspaceInitializer_Snapshot{
112+
Snapshot: &api.SnapshotInitializer{
113+
Snapshot: "foo",
114+
FromVolumeSnapshot: true,
115+
},
116+
},
117+
},
118+
},
108119
}
109120

110121
for _, test := range tests {

0 commit comments

Comments
 (0)