Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 add compatibility layer for v8 inventory #2053

Merged
merged 1 commit into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions explorer/scan/local_scanner.go
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ func (s *LocalScanner) distributeJob(job *Job, ctx context.Context, upstream *up
return nil, false, err
}

inventory.DeprecatedV8CompatAssets(justAssets)
resp, err := services.SynchronizeAssets(ctx, &explorer.SynchronizeAssetsReq{
SpaceMrn: client.SpaceMrn,
List: justAssets,
Expand Down
71 changes: 71 additions & 0 deletions providers-sdk/v1/inventory/deprecated_v8.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// Copyright (c) Mondoo, Inc.
// SPDX-License-Identifier: BUSL-1.1

package inventory

import "strings"

func DeprecatedV8CompatAssets(assets []*Asset) {
for i := range assets {
DeprecatedV8CompatAsset(assets[i])
}
}

func DeprecatedV8CompatAsset(asset *Asset) {
if asset == nil {
return
}

if asset.Platform != nil {
asset.Platform.DeprecatedV8Kind = Kind2DeprecatedV8Kind(asset.Platform.Kind)
}

for i := range asset.Connections {
conn := asset.Connections[i]
conn.Kind = Kind2DeprecatedV8Kind(asset.KindString)
}

// FIXME: Remove this and solve it at its core
var ids []string
for _, id := range asset.PlatformIds {
if strings.HasPrefix(id, "//") {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed a bunch of platform IDs that shouldn't be sent up:

image

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we need to fix these at their core, this is a sanity-check for v8, but it needs to be removed long-term

ids = append(ids, id)
}
}
asset.PlatformIds = ids
}

func Kind2DeprecatedV8Kind(kind string) DeprecatedV8_Kind {
switch kind {
case "virtual-machine-image":
return DeprecatedV8_Kind_KIND_VIRTUAL_MACHINE
case "container-image":
return DeprecatedV8_Kind_KIND_CONTAINER_IMAGE
case "code":
return DeprecatedV8_Kind_KIND_CODE
case "package":
return DeprecatedV8_Kind_KIND_PACKAGE
case "virtual-machine":
return DeprecatedV8_Kind_KIND_VIRTUAL_MACHINE
case "container":
return DeprecatedV8_Kind_KIND_CONTAINER
case "process":
return DeprecatedV8_Kind_KIND_PROCESS
case "api":
return DeprecatedV8_Kind_KIND_API
case "bare-metal":
return DeprecatedV8_Kind_KIND_BARE_METAL
case "network":
return DeprecatedV8_Kind_KIND_NETWORK
case "k8s-object":
return DeprecatedV8_Kind_KIND_K8S_OBJECT
case "aws_object":
return DeprecatedV8_Kind_KIND_AWS_OBJECT
case "gcp-object":
return DeprecatedV8_Kind_KIND_GCP_OBJECT
case "azure-object":
return DeprecatedV8_Kind_KIND_AZURE_OBJECT
default:
return DeprecatedV8_Kind_KIND_UNKNOWN
}
}
Loading
Loading