Skip to content

Commit 4f05562

Browse files
authored
Improve error message for not found keys (#3863)
1 parent c41e3a5 commit 4f05562

File tree

4 files changed

+52
-21
lines changed

4 files changed

+52
-21
lines changed

private/bufpkg/bufmodule/added_module.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (a *addedModule) ToModule(
115115
[]ModuleKey{a.remoteModuleKey},
116116
)
117117
if err != nil {
118-
return nil, err
118+
return nil, fmt.Errorf("could not get module data for remote module %q: %w", a.remoteModuleKey.FullName().String(), err)
119119
}
120120
if len(moduleDatas) != 1 {
121121
return nil, syserror.Newf("expected 1 ModuleData, got %d", len(moduleDatas))

private/bufpkg/bufmodule/bufmoduleapi/convert.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,45 @@ func moduleRefsToV1Beta1ProtoResourceRefs(moduleRefs []bufparse.Ref) []*modulev1
248248
return xslices.Map(moduleRefs, moduleRefToV1Beta1ProtoResourceRef)
249249
}
250250

251+
func moduleKeyToV1ProtoResourceRef(moduleKey bufmodule.ModuleKey) *modulev1.ResourceRef {
252+
return &modulev1.ResourceRef{
253+
Value: &modulev1.ResourceRef_Name_{
254+
Name: &modulev1.ResourceRef_Name{
255+
Owner: moduleKey.FullName().Owner(),
256+
Module: moduleKey.FullName().Name(),
257+
Child: &modulev1.ResourceRef_Name_Ref{
258+
Ref: uuidutil.ToDashless(moduleKey.CommitID()),
259+
},
260+
},
261+
},
262+
}
263+
}
264+
265+
func moduleKeysToV1ProtoResourceRefs(moduleKeys []bufmodule.ModuleKey) []*modulev1.ResourceRef {
266+
return xslices.Map(moduleKeys, moduleKeyToV1ProtoResourceRef)
267+
}
268+
269+
func moduleKeyToV1Beta1ProtoGetGraphRequestResourceRef(moduleKey bufmodule.ModuleKey) *modulev1beta1.GetGraphRequest_ResourceRef {
270+
return &modulev1beta1.GetGraphRequest_ResourceRef{
271+
ResourceRef: &modulev1beta1.ResourceRef{
272+
Value: &modulev1beta1.ResourceRef_Name_{
273+
Name: &modulev1beta1.ResourceRef_Name{
274+
Owner: moduleKey.FullName().Owner(),
275+
Module: moduleKey.FullName().Name(),
276+
Child: &modulev1beta1.ResourceRef_Name_Ref{
277+
Ref: uuidutil.ToDashless(moduleKey.CommitID()),
278+
},
279+
},
280+
},
281+
},
282+
Registry: moduleKey.FullName().Registry(),
283+
}
284+
}
285+
286+
func moduleKeysToV1Beta1ProtoGetGraphRequestResourceRefs(moduleKeys []bufmodule.ModuleKey) []*modulev1beta1.GetGraphRequest_ResourceRef {
287+
return xslices.Map(moduleKeys, moduleKeyToV1Beta1ProtoGetGraphRequestResourceRef)
288+
}
289+
251290
// We have to make sure all the below is updated if a field is added.
252291
// This is enforced via exhaustruct using golangci-lint.
253292
// Search .golangci.yml for convert.go to see where this is enabled.

private/bufpkg/bufmodule/bufmoduleapi/graph_provider.go

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func (a *graphProvider) GetGraphForModuleKeys(
111111
ctx context.Context,
112112
moduleKeys []bufmodule.ModuleKey,
113113
) (*dag.Graph[bufmodule.RegistryCommitID, bufmodule.ModuleKey], error) {
114-
graph := dag.NewGraph[bufmodule.RegistryCommitID, bufmodule.ModuleKey](bufmodule.ModuleKeyToRegistryCommitID)
114+
graph := dag.NewGraph(bufmodule.ModuleKeyToRegistryCommitID)
115115
if len(moduleKeys) == 0 {
116116
return graph, nil
117117
}
@@ -222,7 +222,6 @@ func (a *graphProvider) getV1Beta1ProtoGraphForModuleKeys(
222222
// Legacy federation is allowed, or we are using b4. We may have dependencies on modules from other registries, or we
223223
// are using a digest type not supported by the v1 API. Fall back to the v1beta1 API.
224224

225-
registryCommitIDs := xslices.Map(moduleKeys, bufmodule.ModuleKeyToRegistryCommitID)
226225
v1beta1ProtoDigestType, err := digestTypeToV1Beta1Proto(digestType)
227226
if err != nil {
228227
return nil, err
@@ -232,20 +231,8 @@ func (a *graphProvider) getV1Beta1ProtoGraphForModuleKeys(
232231
connect.NewRequest(
233232
&modulev1beta1.GetGraphRequest{
234233
// TODO FUTURE: chunking
235-
ResourceRefs: xslices.Map(
236-
registryCommitIDs,
237-
func(registryCommitID bufmodule.RegistryCommitID) *modulev1beta1.GetGraphRequest_ResourceRef {
238-
return &modulev1beta1.GetGraphRequest_ResourceRef{
239-
ResourceRef: &modulev1beta1.ResourceRef{
240-
Value: &modulev1beta1.ResourceRef_Id{
241-
Id: uuidutil.ToDashless(registryCommitID.CommitID),
242-
},
243-
},
244-
Registry: registryCommitID.Registry,
245-
}
246-
},
247-
),
248-
DigestType: v1beta1ProtoDigestType,
234+
ResourceRefs: moduleKeysToV1Beta1ProtoGetGraphRequestResourceRefs(moduleKeys),
235+
DigestType: v1beta1ProtoDigestType,
249236
},
250237
),
251238
)
@@ -261,13 +248,12 @@ func (a *graphProvider) getV1ProtoGraphForRegistryAndModuleKeys(
261248
registry string,
262249
moduleKeys []bufmodule.ModuleKey,
263250
) (*modulev1.Graph, error) {
264-
commitIDs := xslices.Map(moduleKeys, bufmodule.ModuleKey.CommitID)
265251
response, err := a.moduleClientProvider.V1GraphServiceClient(registry).GetGraph(
266252
ctx,
267253
connect.NewRequest(
268254
&modulev1.GetGraphRequest{
269255
// TODO FUTURE: chunking
270-
ResourceRefs: commitIDsToV1ProtoResourceRefs(commitIDs),
256+
ResourceRefs: moduleKeysToV1ProtoResourceRefs(moduleKeys),
271257
},
272258
),
273259
)

private/bufpkg/bufplugin/bufpluginapi/plugin_data_provider.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,14 @@ func (p *pluginDataProvider) getIndexedPluginDatasForRegistryAndIndexedPluginKey
111111
values := xslices.Map(indexedPluginKeys, func(indexedPluginKey xslices.Indexed[bufplugin.PluginKey]) *pluginv1beta1.DownloadRequest_Value {
112112
return &pluginv1beta1.DownloadRequest_Value{
113113
ResourceRef: &pluginv1beta1.ResourceRef{
114-
Value: &pluginv1beta1.ResourceRef_Id{
115-
Id: uuidutil.ToDashless(indexedPluginKey.Value.CommitID()),
114+
Value: &pluginv1beta1.ResourceRef_Name_{
115+
Name: &pluginv1beta1.ResourceRef_Name{
116+
Owner: indexedPluginKey.Value.FullName().Owner(),
117+
Plugin: indexedPluginKey.Value.FullName().Name(),
118+
Child: &pluginv1beta1.ResourceRef_Name_Ref{
119+
Ref: uuidutil.ToDashless(indexedPluginKey.Value.CommitID()),
120+
},
121+
},
116122
},
117123
},
118124
}

0 commit comments

Comments
 (0)