Skip to content

Commit

Permalink
Address review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
jeff-phillips-18 committed Mar 25, 2020
1 parent 44f75f7 commit c205af3
Show file tree
Hide file tree
Showing 18 changed files with 169 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,124 @@ describe('TransformResourceData', () => {
expect(element).not.toHaveProperties([...podKeys, 'current', 'previous']);
});
});

it('should return only operator backed deployment config items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(true);

let transformedData = transformResourceData.createDeploymentConfigItems(
sampleDeploymentConfigs.data,
);
expect(transformedData).toHaveLength(sampleDeploymentConfigs.data.length);

transformedData = transformResourceData.createDeploymentConfigItems(
sampleDeploymentConfigs.data,
true,
);
expect(transformedData).toHaveLength(sampleDeploymentConfigs.data.length);

transformedData = transformResourceData.createDeploymentConfigItems(
sampleDeploymentConfigs.data,
false,
);
expect(transformedData).toHaveLength(0);
});

it('should return only non operator backed deployment config items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(false);

let transformedData = transformResourceData.createDeploymentConfigItems(
sampleDeploymentConfigs.data,
);
expect(transformedData).toHaveLength(sampleDeploymentConfigs.data.length);

transformedData = transformResourceData.createDeploymentConfigItems(
sampleDeploymentConfigs.data,
true,
);
expect(transformedData).toHaveLength(0);

transformedData = transformResourceData.createDeploymentConfigItems(
sampleDeploymentConfigs.data,
false,
);
expect(transformedData).toHaveLength(sampleDeploymentConfigs.data.length);
});

it('should return only operator backed deployment items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(true);

let transformedData = transformResourceData.createDeploymentItems(sampleDeployments.data);
expect(transformedData).toHaveLength(sampleDeployments.data.length);

transformedData = transformResourceData.createDeploymentItems(sampleDeployments.data, true);
expect(transformedData).toHaveLength(sampleDeployments.data.length);

transformedData = transformResourceData.createDeploymentItems(sampleDeployments.data, false);
expect(transformedData).toHaveLength(0);
});

it('should return only non operator backed deployment items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(false);

let transformedData = transformResourceData.createDeploymentItems(sampleDeployments.data);
expect(transformedData).toHaveLength(sampleDeployments.data.length);

transformedData = transformResourceData.createDeploymentItems(sampleDeployments.data, true);
expect(transformedData).toHaveLength(0);

transformedData = transformResourceData.createDeploymentItems(sampleDeployments.data, false);
expect(transformedData).toHaveLength(sampleDeployments.data.length);
});

it('should return only operator backed daemon set items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(true);

let transformedData = transformResourceData.createDaemonSetItems(sampleDaemonSets.data);
expect(transformedData).toHaveLength(sampleDaemonSets.data.length);

transformedData = transformResourceData.createDaemonSetItems(sampleDaemonSets.data, true);
expect(transformedData).toHaveLength(sampleDaemonSets.data.length);

transformedData = transformResourceData.createDaemonSetItems(sampleDaemonSets.data, false);
expect(transformedData).toHaveLength(0);
});

it('should return only non operator backed daemon set items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(false);

let transformedData = transformResourceData.createDaemonSetItems(sampleDaemonSets.data);
expect(transformedData).toHaveLength(sampleDaemonSets.data.length);

transformedData = transformResourceData.createDaemonSetItems(sampleDaemonSets.data, true);
expect(transformedData).toHaveLength(0);

transformedData = transformResourceData.createDaemonSetItems(sampleDaemonSets.data, false);
expect(transformedData).toHaveLength(sampleDaemonSets.data.length);
});

it('should return only operator backed stateful set items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(true);

let transformedData = transformResourceData.createStatefulSetItems(sampleStatefulSets.data);
expect(transformedData).toHaveLength(sampleStatefulSets.data.length);

transformedData = transformResourceData.createStatefulSetItems(sampleStatefulSets.data, true);
expect(transformedData).toHaveLength(sampleStatefulSets.data.length);

transformedData = transformResourceData.createStatefulSetItems(sampleStatefulSets.data, false);
expect(transformedData).toHaveLength(0);
});

it('should return only non operator backed stateful set items as specified', () => {
spyOn(transformResourceData, 'isOperatorBackedService').and.returnValue(false);

let transformedData = transformResourceData.createStatefulSetItems(sampleStatefulSets.data);
expect(transformedData).toHaveLength(sampleStatefulSets.data.length);

transformedData = transformResourceData.createStatefulSetItems(sampleStatefulSets.data, true);
expect(transformedData).toHaveLength(0);

transformedData = transformResourceData.createStatefulSetItems(sampleStatefulSets.data, false);
expect(transformedData).toHaveLength(sampleStatefulSets.data.length);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import { getActiveApplication } from '@console/internal/reducers/ui';
import { TopologyIcon } from '@patternfly/react-icons';
import KnativeComponentFactory from '@console/knative-plugin/src/topology/knativeComponentFactory';
import { useAddToProjectAccess } from '../../utils/useAddToProjectAccess';
import { ALLOW_SERVICE_BINDING } from '../../const';
import TopologySideBar from './TopologySideBar';
import { GraphData, TopologyDataModel, TopologyDataObject } from './topology-types';
import TopologyResourcePanel from './TopologyResourcePanel';
Expand All @@ -40,6 +39,7 @@ import { TYPE_HELM_RELEASE } from './helm/components/const';
import { HelmComponentFactory } from './helm/components/helmComponentFactory';
import { TYPE_OPERATOR_BACKED_SERVICE } from './operators/components/const';
import { OperatorsComponentFactory } from './operators/components/operatorsComponentFactory';
import { getServiceBindingStatus } from './topology-utils';

interface StateProps {
filters: TopologyFilters;
Expand Down Expand Up @@ -296,8 +296,6 @@ const Topology: React.FC<TopologyProps> = ({
);
};

const getServiceBindingStatus = ({ FLAGS }: RootState): boolean => FLAGS.get(ALLOW_SERVICE_BINDING);

const TopologyStateToProps = (state: RootState): StateProps => {
return {
filters: getTopologyFilters(state),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ import { RootState } from '@console/internal/redux';
import { safeLoadAll } from 'js-yaml';
import { ServiceBindingRequestModel } from '../../models';
import { transformTopologyData } from './data-transforms/data-transformer';
import { allowedResources, getHelmReleaseKey } from './topology-utils';
import { allowedResources, getHelmReleaseKey, getServiceBindingStatus } from './topology-utils';
import { TopologyDataModel, TopologyDataResources, TrafficData } from './topology-types';
import { HelmRelease, HelmReleaseResourcesMap } from '../helm/helm-types';
import { ALLOW_SERVICE_BINDING } from '../../const';

export interface RenderProps {
data?: TopologyDataModel;
Expand All @@ -32,7 +31,7 @@ export interface ControllerProps {
loaded?: boolean;
loadError?: any;
resources?: TopologyDataResources;
render(RenderProps): React.ReactElement;
render(props: RenderProps): React.ReactElement;
namespace: string;
serviceBinding: boolean;
trafficData?: TrafficData;
Expand All @@ -54,8 +53,8 @@ const Controller: React.FC<ControllerProps> = ({
serviceBinding,
trafficData,
helmResourcesMap,
}) => {
return render({
}) =>
render({
loaded,
loadError,
namespace,
Expand All @@ -64,7 +63,6 @@ const Controller: React.FC<ControllerProps> = ({
? transformTopologyData(resources, allowedResources, utils, trafficData, helmResourcesMap)
: null,
});
};

export const TopologyDataController: React.FC<TopologyDataControllerProps> = ({
namespace,
Expand Down Expand Up @@ -141,8 +139,6 @@ export const TopologyDataController: React.FC<TopologyDataControllerProps> = ({
);
};

const getServiceBindingStatus = ({ FLAGS }: RootState): boolean => FLAGS.get(ALLOW_SERVICE_BINDING);

const DataControllerStateToProps = (state: RootState) => {
const resourceList = plugins.registry
.getOverviewCRDs()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,21 @@ import { KebabOption } from '@console/internal/components/utils/kebab';
import { modelFor, referenceFor } from '@console/internal/module/k8s';
import { asAccessReview } from '@console/internal/components/utils';
import { Edge, Node } from '@console/topology';
import { getTopologyResourceObject } from '../topology-utils';
import { removeConnection } from '../components/removeConnection';
import { TYPE_CONNECTS_TO, TYPE_SERVICE_BINDING, TYPE_TRAFFIC_CONNECTOR } from '../components/const';
import { moveConnectionModal } from '../components/MoveConnectionModal';
import {
TYPE_EVENT_SOURCE,
TYPE_EVENT_SOURCE_LINK,
TYPE_KNATIVE_REVISION,
TYPE_KNATIVE_SERVICE,
TYPE_REVISION_TRAFFIC,
} from '@console/knative-plugin/src/topology/const';
import { getTopologyResourceObject } from '../topology-utils';
import { removeConnection } from '../components/removeConnection';
import {
TYPE_CONNECTS_TO,
TYPE_SERVICE_BINDING,
TYPE_TRAFFIC_CONNECTOR,
} from '../components/const';
import { moveConnectionModal } from '../components/MoveConnectionModal';

const moveConnection = (edge: Edge, availableTargets: Node[]) => {
const resourceObj = getTopologyResourceObject(edge.getSource().getData());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import FormSection from '../../import/section/FormSection';
import { TYPE_EVENT_SOURCE_LINK } from '@console/knative-plugin/src/topology/const';
import { createSinkConnection } from '@console/knative-plugin/src/topology/knative-topology-utils';
import { RootState } from '@console/internal/redux';
import { ALLOW_SERVICE_BINDING } from '../../../const';
import { getServiceBindingStatus } from '../topology-utils';
import { TYPE_CONNECTS_TO, TYPE_SERVICE_BINDING } from './const';
import { createConnection } from './createConnection';

Expand Down Expand Up @@ -158,8 +158,6 @@ class MoveConnectionModal extends PromiseComponent<
}
}

const getServiceBindingStatus = ({ FLAGS }: RootState): boolean => FLAGS.get(ALLOW_SERVICE_BINDING);

const mapStateToProps = (state: RootState): StateProps => {
return {
serviceBinding: getServiceBindingStatus(state),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@ type ConnectsToProps = {
WithTargetDragProps &
WithRemoveConnectorProps;

const ObservedConnectsTo: React.FC<ConnectsToProps> = ({ element, targetDragRef, children, ...others }) => {
const ObservedConnectsTo: React.FC<ConnectsToProps> = ({
element,
targetDragRef,
children,
...others
}) => {
const childEdges = element.getChildren();
const sourceData =
childEdges?.length > 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,12 @@ import {
import { RootState } from '@console/internal/redux';
import { Tooltip, TooltipPosition } from '@patternfly/react-core';
import { ExternalLinkAltIcon } from '@patternfly/react-icons';
import { ALLOW_SERVICE_BINDING } from '../../../../const';
import { routeDecoratorIcon } from '../../../import/render-utils';
import { Decorator } from './Decorator';
import PodSet from './PodSet';
import BuildDecorator from './build-decorators/BuildDecorator';
import { BaseNode } from './BaseNode';
import { getCheURL, getEditURL } from '../../topology-utils';
import { getCheURL, getEditURL, getServiceBindingStatus } from '../../topology-utils';
import { useDisplayFilters } from '../../filters/useDisplayFilters';

interface StateProps {
Expand Down Expand Up @@ -137,8 +136,6 @@ const ObservedWorkloadNode: React.FC<WorkloadNodeProps> = ({
);
};

const getServiceBindingStatus = ({ FLAGS }: RootState): boolean => FLAGS.get(ALLOW_SERVICE_BINDING);

const mapStateToProps = (state: RootState): StateProps => {
const consoleLinks = state.UI.get('consoleLinks');
return {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EdgeModel, Model, NodeModel, createAggregateEdges } from '@console/topology';
import { TopologyFilters } from '../filters/filter-utils';
import { TopologyDataModel, TopologyDataObject, Node, Group } from '../topology-types';
import { TopologyDataModel, TopologyDataObject, Node } from '../topology-types';
import {
TYPE_APPLICATION_GROUP,
TYPE_AGGREGATE_EDGE,
Expand All @@ -23,17 +23,7 @@ import {
getOperatorGroupModel,
getOperatorNodeModel,
} from '../operators/operators-topology-model';

export const dataObjectFromModel = (node: Node | Group): TopologyDataObject => {
return {
id: node.id,
name: node.name,
type: node.type,
resources: null,
operatorBackedService: false,
data: null,
};
};
import { dataObjectFromModel } from './transform-utils';

const getApplicationGroupForNode = (node: Node, groups: NodeModel[]): NodeModel => {
const group = groups.find((g) => g.children.includes(node.id));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@ import {
} from '../components/const';
import { getRoutesURL } from '../topology-utils';

export const dataObjectFromModel = (node: Node | Group): TopologyDataObject => {
return {
id: node.id,
name: node.name,
type: node.type,
resources: null,
operatorBackedService: false,
data: null,
};
};

/**
* create instance of TransformResourceData, return object containing all methods
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import {
import { TYPE_HELM_RELEASE, TYPE_HELM_WORKLOAD } from './components/const';
import { HelmReleaseResourcesMap } from '../../helm/helm-types';
import { getHelmReleaseKey } from '../topology-utils';
import { dataObjectFromModel } from '../data-transforms/topology-model';
import {
dataObjectFromModel,
addToTopologyDataModel,
createInstanceForResource,
createTopologyNodeData,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
HELM_GROUP_HEIGHT,
HELM_GROUP_PADDING,
} from './components/const';
import { dataObjectFromModel } from '../data-transforms';
import { dataObjectFromModel } from '../data-transforms/transform-utils';

// eslint-disable-next-line @typescript-eslint/no-unused-vars
export const getHelmGroupModel = (d: Group, model: DataModel, filters: Filters): NodeModel => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ColaLayout, ColaNode, ColaGroup, ColaLink } from '@console/topology';
import { getColaLayoutConstraints } from '@console/knative-plugin/src/topology/layouts/getColaLayoutConstraints';
import { layoutConstraints } from '@console/knative-plugin/src/topology/layouts/layoutConstraints';

export default class TopologyColaLayout extends ColaLayout {
protected getConstraints(nodes: ColaNode[], groups: ColaGroup[], edges: ColaLink[]): any[] {
return getColaLayoutConstraints(nodes, groups, edges);
return layoutConstraints(nodes, groups, edges);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ import {
withEditReviewAccess,
AbstractSBRComponentFactory,
} from '../../components';
import {
TYPE_OPERATOR_BACKED_SERVICE,
TYPE_OPERATOR_WORKLOAD,
} from './const';
import { TYPE_OPERATOR_BACKED_SERVICE, TYPE_OPERATOR_WORKLOAD } from './const';
import OperatorBackedService from './OperatorBackedService';

class OperatorsComponentFactory extends AbstractSBRComponentFactory {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
OPERATOR_GROUP_HEIGHT,
OPERATOR_GROUP_PADDING,
} from './components/const';
import { dataObjectFromModel } from '../data-transforms';
import { dataObjectFromModel } from '../data-transforms/transform-utils';
import { NodeShape } from '@console/topology/src/types';

// eslint-disable-next-line @typescript-eslint/no-unused-vars
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as _ from 'lodash';
import { K8sResourceKind, modelFor, referenceFor } from '@console/internal/module/k8s';
import { RootState } from '@console/internal/redux';
import { getRouteWebURL } from '@console/internal/components/routes';
import { OverviewItem } from '@console/shared';
import {
Expand All @@ -12,9 +13,13 @@ import {
import { TopologyDataObject } from './topology-types';
import { TYPE_OPERATOR_BACKED_SERVICE } from './operators/components/const';
import { HelmReleaseResourcesMap } from '../helm/helm-types';
import { ALLOW_SERVICE_BINDING } from '../../const';

export const allowedResources = ['deployments', 'deploymentConfigs', 'daemonSets', 'statefulSets'];

export const getServiceBindingStatus = ({ FLAGS }: RootState): boolean =>
FLAGS.get(ALLOW_SERVICE_BINDING);

export const getCheURL = (consoleLinks: K8sResourceKind[]) =>
_.get(_.find(consoleLinks, ['metadata.name', 'che']), 'spec.href', '');

Expand Down

0 comments on commit c205af3

Please sign in to comment.