mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-30 02:02:43 +00:00
* Export API Bug * Revert "Export API Bug" This reverts commit 044597748d8b2c726996e515ffff3e0dea9d30a8. * Export API Bug * Added changelog * Update changelog/29376.txt Co-authored-by: Violet Hynes <violet.hynes@hashicorp.com> * Revert "Export API Bug" This reverts commit 9cdd28c59ea4907f8a44c20a4a048045d56d9d12. * Export API Bug Change * Edited one more deletedMount to renamed --------- Co-authored-by: Violet Hynes <violet.hynes@hashicorp.com>
This commit is contained in:
3
changelog/29376.txt
Normal file
3
changelog/29376.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:bug
|
||||
activity: Include activity records from clients created by deleted or disabled auth mounts in Export API response.
|
||||
```
|
||||
@@ -3172,16 +3172,6 @@ func (a *ActivityLog) writeExport(ctx context.Context, rw http.ResponseWriter, f
|
||||
return fmt.Errorf("failed to process local entity alias")
|
||||
}
|
||||
|
||||
record.MountType, ok = alias["mount_type"].(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("failed to process mount type")
|
||||
}
|
||||
|
||||
record.MountPath, ok = alias["mount_path"].(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("failed to process mount path")
|
||||
}
|
||||
|
||||
entityAliasMetadata, ok := alias["metadata"].(map[string]string)
|
||||
if !ok {
|
||||
return fmt.Errorf("failed to process entity alias metadata")
|
||||
@@ -3199,6 +3189,23 @@ func (a *ActivityLog) writeExport(ctx context.Context, rw http.ResponseWriter, f
|
||||
if entityAliasCustomMetadata != nil {
|
||||
record.EntityAliasCustomMetadata = entityAliasCustomMetadata
|
||||
}
|
||||
|
||||
valResp := a.core.router.ValidateMountByAccessor(e.MountAccessor)
|
||||
if valResp == nil {
|
||||
record.MountType = ""
|
||||
record.MountPath = fmt.Sprintf(DeletedMountFmt, e.MountAccessor)
|
||||
} else {
|
||||
record.MountType, ok = alias["mount_type"].(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("failed to process mount type")
|
||||
}
|
||||
record.MountPath, ok = alias["mount_path"].(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("failed to process mount path")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
// fetch mount directly to ensure mount type and path are populated
|
||||
|
||||
@@ -4110,7 +4110,7 @@ func TestActivityLog_partialMonthClientCountWithMultipleMountPaths(t *testing.T)
|
||||
// these are the paths that are expected and correspond with the entity records created above
|
||||
expectedPaths := []string{
|
||||
noMountAccessor,
|
||||
fmt.Sprintf(deletedMountFmt, "deleted"),
|
||||
fmt.Sprintf(DeletedMountFmt, "deleted"),
|
||||
path,
|
||||
}
|
||||
for _, expectedPath := range expectedPaths {
|
||||
|
||||
@@ -392,7 +392,7 @@ func (a *ActivityLog) sortActivityLogMonthsResponse(months []*ResponseMonth) {
|
||||
|
||||
const (
|
||||
noMountAccessor = "no mount accessor (pre-1.10 upgrade?)"
|
||||
deletedMountFmt = "deleted mount; accessor %q"
|
||||
DeletedMountFmt = "deleted mount; accessor %q"
|
||||
DeletedNamespaceFmt = "deleted namespace %q"
|
||||
)
|
||||
|
||||
@@ -405,7 +405,7 @@ func (a *ActivityLog) mountAccessorToMountPath(mountAccessor string) string {
|
||||
} else {
|
||||
valResp := a.core.router.ValidateMountByAccessor(mountAccessor)
|
||||
if valResp == nil {
|
||||
displayPath = fmt.Sprintf(deletedMountFmt, mountAccessor)
|
||||
displayPath = fmt.Sprintf(DeletedMountFmt, mountAccessor)
|
||||
} else {
|
||||
displayPath = valResp.MountPath
|
||||
if !strings.HasSuffix(displayPath, "/") {
|
||||
|
||||
@@ -978,7 +978,7 @@ func Test_ActivityLog_ComputeCurrentMonth_NamespaceMounts(t *testing.T) {
|
||||
correctMountPaths := func(namespaces []*activity.MonthlyNamespaceRecord) {
|
||||
for _, ns := range namespaces {
|
||||
for _, mount := range ns.Mounts {
|
||||
mount.MountPath = fmt.Sprintf(deletedMountFmt, mount.MountPath)
|
||||
mount.MountPath = fmt.Sprintf(DeletedMountFmt, mount.MountPath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user