Seperate target name and project into their own keys for target index

This commit is contained in:
sophia 2021-07-12 15:27:37 -05:00 committed by Paul Hinze
parent 49cf6b8c29
commit f5fa1f330a
No known key found for this signature in database
GPG Key ID: B69DEDF2D55501C0

View File

@ -1,8 +1,6 @@
package state package state
import ( import (
"strings"
"github.com/boltdb/bolt" "github.com/boltdb/bolt"
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
"github.com/hashicorp/go-memdb" "github.com/hashicorp/go-memdb"
@ -270,7 +268,7 @@ func targetIndexSchema() *memdb.TableSchema {
targetIndexNameIndexName: { targetIndexNameIndexName: {
Name: targetIndexNameIndexName, Name: targetIndexNameIndexName,
AllowMissing: false, AllowMissing: false,
Unique: true, Unique: false,
Indexer: &memdb.StringFieldIndex{ Indexer: &memdb.StringFieldIndex{
Field: "Name", Field: "Name",
Lowercase: true, Lowercase: true,
@ -287,22 +285,33 @@ const (
) )
type targetIndexRecord struct { type targetIndexRecord struct {
Id string // Resource ID Id string // Resource ID
Name string // Project Resource ID + Target Name Name string // Target Name
ProjectId string // Project Resource ID
} }
func (s *State) newTargetIndexRecord(m *vagrant_server.Target) *targetIndexRecord { func (s *State) newTargetIndexRecord(m *vagrant_server.Target) *targetIndexRecord {
var projectResourceId string
if m.Project != nil {
projectResourceId = m.Project.ResourceId
}
i := &targetIndexRecord{ i := &targetIndexRecord{
Id: m.ResourceId, Id: m.ResourceId,
Name: strings.ToLower(m.Project.ResourceId + "+" + m.Name), Name: m.Name,
ProjectId: projectResourceId,
} }
return i return i
} }
func (s *State) newTargetIndexRecordByRef(ref *vagrant_plugin_sdk.Ref_Target) *targetIndexRecord { func (s *State) newTargetIndexRecordByRef(ref *vagrant_plugin_sdk.Ref_Target) *targetIndexRecord {
var projectResourceId string
if ref.Project != nil {
projectResourceId = ref.Project.ResourceId
}
return &targetIndexRecord{ return &targetIndexRecord{
Id: ref.ResourceId, Id: ref.ResourceId,
Name: strings.ToLower(ref.Project.ResourceId + "+" + ref.Name), Name: ref.Name,
ProjectId: projectResourceId,
} }
} }