Skip to content

Commit 98bc81a

Browse files
committed
Removing handling of plugin metadata
Avoid processing plugin metadata as there's still not defined way to translate metadata from a devfile into a DevWorkspace[Template] Signed-off-by: Angel Misevski <[email protected]>
1 parent 50f2d71 commit 98bc81a

File tree

3 files changed

+32
-34
lines changed

3 files changed

+32
-34
lines changed

pkg/library/flatten/flatten.go

+25-26
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,11 @@ func recursiveResolve(workspace devworkspace.DevWorkspaceTemplateSpec, tooling R
9090
// No action necessary
9191
resolvedContent.Components = append(resolvedContent.Components, component)
9292
} else {
93-
pluginComponent, pluginMeta, err := resolvePluginComponent(component.Name, component.Plugin, tooling)
93+
pluginComponent, err := resolvePluginComponent(component.Name, component.Plugin, tooling)
9494
if err != nil {
9595
return nil, err
9696
}
9797
newCtx := resolveCtx.addPlugin(component.Name, component.Plugin)
98-
newCtx.pluginMetadata = pluginMeta
9998
if err := newCtx.hasCycle(); err != nil {
10099
return nil, err
101100
}
@@ -123,24 +122,24 @@ func recursiveResolve(workspace devworkspace.DevWorkspaceTemplateSpec, tooling R
123122
func resolvePluginComponent(
124123
name string,
125124
plugin *devworkspace.PluginComponent,
126-
tooling ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, pluginMeta map[string]string, err error) {
125+
tooling ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, err error) {
127126
switch {
128127
// TODO: Add support for plugin ID and URI
129128
case plugin.Kubernetes != nil:
130129
// Search in devworkspace's namespace if namespace ref is unset
131130
if plugin.Kubernetes.Namespace == "" {
132131
plugin.Kubernetes.Namespace = tooling.InstanceNamespace
133132
}
134-
resolvedPlugin, pluginMeta, err = resolvePluginComponentByKubernetesReference(name, plugin, tooling)
133+
resolvedPlugin, err = resolvePluginComponentByKubernetesReference(name, plugin, tooling)
135134
case plugin.Uri != "":
136-
resolvedPlugin, pluginMeta, err = resolvePluginComponentByURI(name, plugin, tooling)
135+
resolvedPlugin, err = resolvePluginComponentByURI(name, plugin, tooling)
137136
case plugin.Id != "":
138-
resolvedPlugin, pluginMeta, err = resolvePluginComponentById(name, plugin, tooling)
137+
resolvedPlugin, err = resolvePluginComponentById(name, plugin, tooling)
139138
default:
140139
err = fmt.Errorf("plugin %s does not define any resources", name)
141140
}
142141
if err != nil {
143-
return nil, nil, err
142+
return nil, err
144143
}
145144

146145
if plugin.Components != nil || plugin.Commands != nil {
@@ -157,17 +156,17 @@ func resolvePluginComponent(
157156
})
158157

159158
if err != nil {
160-
return nil, nil, err
159+
return nil, err
161160
}
162161
resolvedPlugin.DevWorkspaceTemplateSpecContent = *overrideSpec
163162
}
164-
return resolvedPlugin, pluginMeta, nil
163+
return resolvedPlugin, nil
165164
}
166165

167166
func resolvePluginComponentByKubernetesReference(
168167
name string,
169168
plugin *devworkspace.PluginComponent,
170-
tooling ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, pluginLabels map[string]string, err error) {
169+
tooling ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, err error) {
171170

172171
var dwTemplate devworkspace.DevWorkspaceTemplate
173172
namespacedName := types.NamespacedName{
@@ -177,54 +176,54 @@ func resolvePluginComponentByKubernetesReference(
177176
err = tooling.K8sClient.Get(tooling.Context, namespacedName, &dwTemplate)
178177
if err != nil {
179178
if errors.IsNotFound(err) {
180-
return nil, nil, fmt.Errorf("plugin for component %s not found", name)
179+
return nil, fmt.Errorf("plugin for component %s not found", name)
181180
}
182-
return nil, nil, fmt.Errorf("failed to retrieve plugin referenced by kubernetes name and namespace '%s': %w", name, err)
181+
return nil, fmt.Errorf("failed to retrieve plugin referenced by kubernetes name and namespace '%s': %w", name, err)
183182
}
184-
return &dwTemplate.Spec, dwTemplate.Labels, nil
183+
return &dwTemplate.Spec, nil
185184
}
186185

187186
func resolvePluginComponentById(
188187
name string,
189188
plugin *devworkspace.PluginComponent,
190-
tools ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, pluginLabels map[string]string, err error) {
189+
tools ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, err error) {
191190

192191
// Check internal registry for plugins that do not specify a registry
193192
if plugin.RegistryUrl == "" {
194193
if tools.InternalRegistry == nil {
195-
return nil, nil, fmt.Errorf("plugin %s does not specify a registryUrl and no internal registry is configured", name)
194+
return nil, fmt.Errorf("plugin %s does not specify a registryUrl and no internal registry is configured", name)
196195
}
197196
if !tools.InternalRegistry.IsInInternalRegistry(plugin.Id) {
198-
return nil, nil, fmt.Errorf("plugin for component %s does not specify a registry and is not present in the internal registry", name)
197+
return nil, fmt.Errorf("plugin for component %s does not specify a registry and is not present in the internal registry", name)
199198
}
200199
pluginDWT, err := tools.InternalRegistry.ReadPluginFromInternalRegistry(plugin.Id)
201200
if err != nil {
202-
return nil, nil, fmt.Errorf("failed to read plugin for component %s from internal registry: %w", name, err)
201+
return nil, fmt.Errorf("failed to read plugin for component %s from internal registry: %w", name, err)
203202
}
204-
return &pluginDWT.Spec, pluginDWT.Labels, nil
203+
return &pluginDWT.Spec, nil
205204
}
206205

207206
pluginURL, err := url.Parse(plugin.RegistryUrl)
208207
if err != nil {
209-
return nil, nil, fmt.Errorf("failed to parse registry URL for plugin %s: %w", name, err)
208+
return nil, fmt.Errorf("failed to parse registry URL for plugin %s: %w", name, err)
210209
}
211210
pluginURL.Path = path.Join(pluginURL.Path, "plugins", plugin.Id)
212211

213-
dwt, labels, err := network.FetchDevWorkspaceTemplate(pluginURL.String(), tools.HttpClient)
212+
dwt, err := network.FetchDevWorkspaceTemplate(pluginURL.String(), tools.HttpClient)
214213
if err != nil {
215-
return nil, nil, fmt.Errorf("failed to resolve plugin %s from registry %s: %w", name, plugin.RegistryUrl, err)
214+
return nil, fmt.Errorf("failed to resolve plugin %s from registry %s: %w", name, plugin.RegistryUrl, err)
216215
}
217-
return dwt, labels, nil
216+
return dwt, nil
218217
}
219218

220219
func resolvePluginComponentByURI(
221220
name string,
222221
plugin *devworkspace.PluginComponent,
223-
tools ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, pluginLabels map[string]string, err error) {
222+
tools ResolverTools) (resolvedPlugin *devworkspace.DevWorkspaceTemplateSpec, err error) {
224223

225-
dwt, labels, err := network.FetchDevWorkspaceTemplate(plugin.Uri, tools.HttpClient)
224+
dwt, err := network.FetchDevWorkspaceTemplate(plugin.Uri, tools.HttpClient)
226225
if err != nil {
227-
return nil, nil, fmt.Errorf("failed to resolve plugin %s by URI: %w", name, err)
226+
return nil, fmt.Errorf("failed to resolve plugin %s by URI: %w", name, err)
228227
}
229-
return dwt, labels, nil
228+
return dwt, nil
230229
}

pkg/library/flatten/helper.go

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
type resolutionContextTree struct {
2525
componentName string
2626
importReference devworkspace.ImportReference
27-
pluginMetadata map[string]string
2827
plugins []*resolutionContextTree
2928
parentNode *resolutionContextTree
3029
}

pkg/library/flatten/network/fetch.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -25,31 +25,31 @@ type HTTPGetter interface {
2525
Get(location string) (*http.Response, error)
2626
}
2727

28-
func FetchDevWorkspaceTemplate(location string, httpClient HTTPGetter) (*dw.DevWorkspaceTemplateSpec, map[string]string, error) {
28+
func FetchDevWorkspaceTemplate(location string, httpClient HTTPGetter) (*dw.DevWorkspaceTemplateSpec, error) {
2929
resp, err := httpClient.Get(location)
3030
if err != nil {
31-
return nil, nil, fmt.Errorf("failed to fetch file from %s: %w", location, err)
31+
return nil, fmt.Errorf("failed to fetch file from %s: %w", location, err)
3232
}
3333
defer resp.Body.Close() // ignoring error because what would we even do?
3434
if resp.StatusCode != http.StatusOK {
35-
return nil, nil, fmt.Errorf("could not fetch file from %s: got status %d", location, resp.StatusCode)
35+
return nil, fmt.Errorf("could not fetch file from %s: got status %d", location, resp.StatusCode)
3636
}
3737
bytes, err := ioutil.ReadAll(resp.Body)
3838
if err != nil {
39-
return nil, nil, fmt.Errorf("could not read data from %s: %w", location, err)
39+
return nil, fmt.Errorf("could not read data from %s: %w", location, err)
4040
}
4141

4242
// Assume we're getting a devfile, not a DevWorkspaceTemplate (TODO: Detect type and handle both?)
4343
devfile := &Devfile{}
4444
err = yaml.Unmarshal(bytes, devfile)
4545
if err != nil {
46-
return nil, nil, fmt.Errorf("could not unmarshal devfile from response: %w", err)
46+
return nil, fmt.Errorf("could not unmarshal devfile from response: %w", err)
4747
}
4848

4949
dwt, err := ConvertDevfileToDevWorkspaceTemplate(devfile)
5050
if err != nil {
51-
return nil, nil, fmt.Errorf("failed to convert devfile to DevWorkspaceTemplate: %s", err)
51+
return nil, fmt.Errorf("failed to convert devfile to DevWorkspaceTemplate: %s", err)
5252
}
5353

54-
return &dwt.Spec, dwt.Labels, nil
54+
return &dwt.Spec, nil
5555
}

0 commit comments

Comments
 (0)