func()

in pkg/virtualrouter/resource_manager.go [58:104]


func (m *defaultResourceManager) Reconcile(ctx context.Context, vr *appmesh.VirtualRouter) error {
	ms, err := m.findMeshDependency(ctx, vr)
	if err != nil {
		return err
	}
	if err := m.validateMeshDependencies(ctx, ms); err != nil {
		return err
	}
	vnByKey, err := m.findVirtualNodeDependencies(ctx, vr)
	if err != nil {
		return err
	}
	if err := m.validateVirtualNodeDependencies(ctx, ms, vnByKey); err != nil {
		return err
	}

	sdkVR, err := m.findSDKVirtualRouter(ctx, ms, vr)
	if err != nil {
		return err
	}
	var sdkRouteByName map[string]*appmeshsdk.RouteData
	if sdkVR == nil {
		sdkVR, err = m.createSDKVirtualRouter(ctx, ms, vr)
		if err != nil {
			return err
		}
		sdkRouteByName, err = m.routesManager.create(ctx, ms, vr, vnByKey)
		if err != nil {
			return err
		}
	} else {
		err = m.routesManager.remove(ctx, ms, sdkVR, vr)
		if err != nil {
			return err
		}
		sdkVR, err = m.updateSDKVirtualRouter(ctx, sdkVR, vr)
		if err != nil {
			return err
		}
		sdkRouteByName, err = m.routesManager.update(ctx, ms, vr, vnByKey)
		if err != nil {
			return err
		}
	}

	return m.updateCRDVirtualRouter(ctx, vr, sdkVR, sdkRouteByName)
}