in pkg/virtualrouter/resource_manager.go [209:245]
func (m *defaultResourceManager) updateSDKVirtualRouter(ctx context.Context, sdkVR *appmeshsdk.VirtualRouterData, vr *appmesh.VirtualRouter) (*appmeshsdk.VirtualRouterData, error) {
actualSDKVRSpec := sdkVR.Spec
desiredSDKVRSpec, err := BuildSDKVirtualRouterSpec(vr)
if err != nil {
return nil, err
}
opts := cmpopts.EquateEmpty()
if cmp.Equal(desiredSDKVRSpec, actualSDKVRSpec, opts) {
return sdkVR, nil
}
if !m.isSDKVirtualRouterControlledByCRDVirtualRouter(ctx, sdkVR, vr) {
m.log.V(1).Info("skip virtualRouter update since it's not controlled",
"virtualRouter", k8s.NamespacedName(vr),
"virtualRouterARN", aws.StringValue(sdkVR.Metadata.Arn),
)
return sdkVR, nil
}
diff := cmp.Diff(desiredSDKVRSpec, actualSDKVRSpec, opts)
m.log.V(1).Info("virtualRouterSpec changed",
"virtualRouter", k8s.NamespacedName(vr),
"actualSDKVRSpec", actualSDKVRSpec,
"desiredSDKVRSpec", desiredSDKVRSpec,
"diff", diff,
)
resp, err := m.appMeshSDK.UpdateVirtualRouterWithContext(ctx, &appmeshsdk.UpdateVirtualRouterInput{
MeshName: sdkVR.MeshName,
MeshOwner: sdkVR.Metadata.MeshOwner,
VirtualRouterName: sdkVR.VirtualRouterName,
Spec: desiredSDKVRSpec,
})
if err != nil {
return nil, err
}
return resp.VirtualRouter, nil
}