fix: preserve workspace resource metadata order (#5421)

Fixes #4511.
This commit is contained in:
Kyle Carberry
2022-12-14 19:08:22 +00:00
committed by GitHub
parent c0b251ac52
commit 84995b7320
15 changed files with 131 additions and 160 deletions
+15 -14
View File
@@ -966,22 +966,23 @@ func InsertWorkspaceResource(ctx context.Context, db database.Store, jobID uuid.
}
}
arg := database.InsertWorkspaceResourceMetadataParams{
WorkspaceResourceID: resource.ID,
Key: []string{},
Value: []string{},
Sensitive: []bool{},
}
for _, metadatum := range protoResource.Metadata {
var value sql.NullString
if !metadatum.IsNull {
value.String = metadatum.Value
value.Valid = true
}
_, err := db.InsertWorkspaceResourceMetadata(ctx, database.InsertWorkspaceResourceMetadataParams{
WorkspaceResourceID: resource.ID,
Key: metadatum.Key,
Value: value,
Sensitive: metadatum.Sensitive,
})
if err != nil {
return xerrors.Errorf("insert metadata: %w", err)
if metadatum.IsNull {
continue
}
arg.Key = append(arg.Key, metadatum.Key)
arg.Value = append(arg.Value, metadatum.Value)
arg.Sensitive = append(arg.Sensitive, metadatum.Sensitive)
}
_, err = db.InsertWorkspaceResourceMetadata(ctx, arg)
if err != nil {
return xerrors.Errorf("insert workspace resource metadata: %w", err)
}
return nil