Fix target loading from target index

This commit is contained in:
Chris Roberts 2021-08-16 11:50:56 -07:00 committed by Paul Hinze
parent e5184c5719
commit 3f6aef88a2
No known key found for this signature in database
GPG Key ID: B69DEDF2D55501C0
2 changed files with 14 additions and 11 deletions

View File

@ -366,7 +366,7 @@ func WithTargetRef(r *vagrant_plugin_sdk.Ref_Target) TargetOption {
}
target = result.Target
}
if target.Project.ResourceId != r.Project.ResourceId {
if r.Project != nil && target.Project.ResourceId != r.Project.ResourceId {
t.logger.Error("invalid project for target",
"request-project", r.Project,
"target-project", target.Project)

View File

@ -43,7 +43,9 @@ func (t *TargetIndex) Get(uuid string) (entry core.Target, err error) {
if err != nil {
return
}
return t.loadTarget(result.Target)
return t.loadTarget(&vagrant_plugin_sdk.Ref_Target{
ResourceId: result.Target.ResourceId,
})
}
func (t *TargetIndex) Includes(uuid string) (exists bool, err error) {
@ -76,9 +78,7 @@ func (t *TargetIndex) All() (targets []core.Target, err error) {
targets = []core.Target{}
for _, tInfo := range list.Targets {
nt, err := t.loadTarget(&vagrant_server.Target{
ResourceId: tInfo.ResourceId,
})
nt, err := t.loadTarget(tInfo)
if err != nil {
return nil, err
}
@ -92,7 +92,14 @@ func (t *TargetIndex) Close() (err error) {
return
}
func (t *TargetIndex) loadTarget(info *vagrant_server.Target) (target *Target, err error) {
func (t *TargetIndex) loadTarget(tproto *vagrant_plugin_sdk.Ref_Target) (target *Target, err error) {
gt, err := t.client.GetTarget(t.ctx, &vagrant_server.GetTargetRequest{
Target: tproto,
})
if err != nil {
return
}
info := gt.Target
// Load the basis
b, err := t.factory.New(info.Project.Basis.Name,
WithBasisRef(info.Project.Basis))
@ -106,11 +113,7 @@ func (t *TargetIndex) loadTarget(info *vagrant_server.Target) (target *Target, e
}
// Finally, load the target
return p.LoadTarget(
WithTargetRef(
&vagrant_plugin_sdk.Ref_Target{
ResourceId: info.ResourceId,
},
),
WithTargetRef(tproto),
)
}