Fixes emitting wrong events for ec2 discover flow (#33176)

This commit is contained in:
Lisa Kim 2023-10-09 15:13:29 -07:00 committed by GitHub
parent 018430d445
commit 70de43e913
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 72 additions and 3 deletions

View file

@ -1051,7 +1051,7 @@ func ConvertUsageEvent(event *usageeventsv1.UsageEventOneOf, userMD UserMetadata
return ret, nil
case *usageeventsv1.UsageEventOneOf_UiDiscoverDeployEice:
ret := &UIDiscoverAutoDiscoveredResourcesEvent{
ret := &UIDiscoverDeployEICEEvent{
Metadata: discoverMetadataToPrehog(e.UiDiscoverDeployEice.Metadata, userMD),
Resource: discoverResourceToPrehog(e.UiDiscoverDeployEice.Resource),
Status: discoverStatusToPrehog(e.UiDiscoverDeployEice.Status),
@ -1062,7 +1062,7 @@ func ConvertUsageEvent(event *usageeventsv1.UsageEventOneOf, userMD UserMetadata
return ret, nil
case *usageeventsv1.UsageEventOneOf_UiDiscoverCreateNode:
ret := &UIDiscoverAutoDiscoveredResourcesEvent{
ret := &UIDiscoverCreateNodeEvent{
Metadata: discoverMetadataToPrehog(e.UiDiscoverCreateNode.Metadata, userMD),
Resource: discoverResourceToPrehog(e.UiDiscoverCreateNode.Resource),
Status: discoverStatusToPrehog(e.UiDiscoverCreateNode.Status),

View file

@ -397,7 +397,7 @@ func (u *UIDiscoverDeployEICEEvent) Anonymize(a utils.Anonymizer) prehogv1a.Subm
}
// UIDiscoverCreateNodeEvent is emitted when the node is created in Teleport.
type UIDiscoverCreateNodeEvent prehogv1a.UIDiscoverDeployEICEEvent
type UIDiscoverCreateNodeEvent prehogv1a.UIDiscoverCreateNodeEvent
func (u *UIDiscoverCreateNodeEvent) CheckAndSetDefaults() error {
return trace.Wrap(validateDiscoverBaseEventFields(u.Metadata, u.Resource, u.Status))

View file

@ -260,6 +260,75 @@ func TestConvertUsageEvent(t *testing.T) {
},
}},
},
{
name: "discover create node event",
event: &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverCreateNode{
UiDiscoverCreateNode: &usageeventsv1.UIDiscoverCreateNodeEvent{
Metadata: &usageeventsv1.DiscoverMetadata{Id: "someid"},
Resource: &usageeventsv1.DiscoverResourceMetadata{Resource: usageeventsv1.DiscoverResource_DISCOVER_RESOURCE_EC2_INSTANCE},
Status: &usageeventsv1.DiscoverStepStatus{Status: usageeventsv1.DiscoverStatus_DISCOVER_STATUS_SUCCESS},
},
}},
identityUsername: "myuser",
errCheck: require.NoError,
expected: &prehogv1a.SubmitEventRequest{Event: &prehogv1a.SubmitEventRequest_UiDiscoverCreateNode{
UiDiscoverCreateNode: &prehogv1a.UIDiscoverCreateNodeEvent{
Metadata: &prehogv1a.DiscoverMetadata{
Id: "someid",
UserName: expectedAnonymizedUserString,
Sso: false,
},
Resource: &prehogv1a.DiscoverResourceMetadata{Resource: prehogv1a.DiscoverResource_DISCOVER_RESOURCE_EC2_INSTANCE},
Status: &prehogv1a.DiscoverStepStatus{Status: prehogv1a.DiscoverStatus_DISCOVER_STATUS_SUCCESS},
},
}},
},
{
name: "discover deploy eice event",
event: &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverDeployEice{
UiDiscoverDeployEice: &usageeventsv1.UIDiscoverDeployEICEEvent{
Metadata: &usageeventsv1.DiscoverMetadata{Id: "someid"},
Resource: &usageeventsv1.DiscoverResourceMetadata{Resource: usageeventsv1.DiscoverResource_DISCOVER_RESOURCE_EC2_INSTANCE},
Status: &usageeventsv1.DiscoverStepStatus{Status: usageeventsv1.DiscoverStatus_DISCOVER_STATUS_SUCCESS},
},
}},
identityUsername: "myuser",
errCheck: require.NoError,
expected: &prehogv1a.SubmitEventRequest{Event: &prehogv1a.SubmitEventRequest_UiDiscoverDeployEice{
UiDiscoverDeployEice: &prehogv1a.UIDiscoverDeployEICEEvent{
Metadata: &prehogv1a.DiscoverMetadata{
Id: "someid",
UserName: expectedAnonymizedUserString,
Sso: false,
},
Resource: &prehogv1a.DiscoverResourceMetadata{Resource: prehogv1a.DiscoverResource_DISCOVER_RESOURCE_EC2_INSTANCE},
Status: &prehogv1a.DiscoverStepStatus{Status: prehogv1a.DiscoverStatus_DISCOVER_STATUS_SUCCESS},
},
}},
},
{
name: "discover ec2 instance selection event",
event: &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_UiDiscoverEc2InstanceSelection{
UiDiscoverEc2InstanceSelection: &usageeventsv1.UIDiscoverEC2InstanceSelectionEvent{
Metadata: &usageeventsv1.DiscoverMetadata{Id: "someid"},
Resource: &usageeventsv1.DiscoverResourceMetadata{Resource: usageeventsv1.DiscoverResource_DISCOVER_RESOURCE_EC2_INSTANCE},
Status: &usageeventsv1.DiscoverStepStatus{Status: usageeventsv1.DiscoverStatus_DISCOVER_STATUS_SUCCESS},
},
}},
identityUsername: "myuser",
errCheck: require.NoError,
expected: &prehogv1a.SubmitEventRequest{Event: &prehogv1a.SubmitEventRequest_UiDiscoverEc2InstanceSelection{
UiDiscoverEc2InstanceSelection: &prehogv1a.UIDiscoverEC2InstanceSelectionEvent{
Metadata: &prehogv1a.DiscoverMetadata{
Id: "someid",
UserName: expectedAnonymizedUserString,
Sso: false,
},
Resource: &prehogv1a.DiscoverResourceMetadata{Resource: prehogv1a.DiscoverResource_DISCOVER_RESOURCE_EC2_INSTANCE},
Status: &prehogv1a.DiscoverStepStatus{Status: prehogv1a.DiscoverStatus_DISCOVER_STATUS_SUCCESS},
},
}},
},
{
name: "access list create event",
event: &usageeventsv1.UsageEventOneOf{Event: &usageeventsv1.UsageEventOneOf_AccessListCreate{