Skip to content

Commit

Permalink
add owner section in resource tab for operator backed services
Browse files Browse the repository at this point in the history
  • Loading branch information
nemesis09 committed Jan 24, 2020
1 parent 1c774e6 commit fa97c2b
Show file tree
Hide file tree
Showing 10 changed files with 65 additions and 3 deletions.
1 change: 1 addition & 0 deletions frontend/packages/console-shared/src/types/resource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export type OverviewItem<T = K8sResourceKind> = {
ksservices?: K8sResourceKind[];
revisions?: K8sResourceKind[];
events?: EventKind[];
isOperatorBackedService?: boolean;
};

export type DeploymentStrategy = DEPLOYMENT_STRATEGY.recreate | DEPLOYMENT_STRATEGY.rolling;
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,7 @@ Object {
"revision": undefined,
},
"events": undefined,
"isOperatorBackedService": false,
"isRollingOut": undefined,
"obj": Object {
"apiVersion": "apps.openshift.io/v1",
Expand Down Expand Up @@ -1244,6 +1245,7 @@ Object {
"revision": 1,
},
"events": undefined,
"isOperatorBackedService": false,
"isRollingOut": false,
"obj": Object {
"apiVersion": "apps/v1",
Expand Down Expand Up @@ -2216,6 +2218,7 @@ Object {
"revision": 1,
},
"events": undefined,
"isOperatorBackedService": false,
"isRollingOut": false,
"obj": Object {
"apiVersion": "apps/v1",
Expand Down Expand Up @@ -2645,6 +2648,7 @@ Object {
"buildConfigs": Array [],
"current": undefined,
"events": undefined,
"isOperatorBackedService": true,
"isRollingOut": false,
"obj": Object {
"apiVersion": "apps/v1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ export const createTopologyNodeData = (
name:
_.get(deploymentConfig, 'metadata.name') || deploymentsLabels['app.kubernetes.io/instance'],
type: type || 'workload',
resources: { ...dc },
resources: { ...dc, isOperatorBackedService: operatorBackedService },
pods: dc.pods,
operatorBackedService,
data: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as React from 'react';
import { K8sResourceKind } from '@console/internal/module/k8s';
import { OverviewItem } from '@console/shared';
import OperatorBackedOwnerReferences from '@console/internal/components/utils';
import {
RevisionModel,
ServiceModel,
Expand Down Expand Up @@ -45,6 +46,11 @@ const getSidebarResources = ({ obj, ksroutes, revisions, configurations }: Overv
};
const OverviewDetailsKnativeResourcesTab: React.FC<OverviewDetailsResourcesTabProps> = ({
item,
}) => <div className="overview__sidebar-pane-body"> {getSidebarResources(item)} </div>;
}) => (
<div className="overview__sidebar-pane-body">
<OperatorBackedOwnerReferences item={item} />
{getSidebarResources(item)}
</div>
);

export default OverviewDetailsKnativeResourcesTab;
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as React from 'react';
import { shallow } from 'enzyme';
import { MockKnativeResources } from '@console/dev-console/src/components/topology/__tests__/topology-knative-test-data';
import OperatorBackedOwnerReferences from '@console/internal/components/utils';
import OverviewDetailsKnativeResourcesTab from '../OverviewDetailsKnativeResourcesTab';
import KnativeServiceResources from '../KnativeServiceResources';
import KnativeRevisionResources from '../KnativeRevisionResources';
Expand All @@ -23,6 +24,7 @@ describe('OverviewDetailsKnativeResourcesTab', () => {
buildConfigs: [],
routes: [],
services: [],
isOperatorBackedService: false,
},
};
});
Expand All @@ -42,4 +44,15 @@ describe('OverviewDetailsKnativeResourcesTab', () => {
const wrapper = shallow(<OverviewDetailsKnativeResourcesTab {...knItem} />);
expect(wrapper.find(EventSinkServicesOverviewList)).toHaveLength(1);
});

it('should render OperatorBackedOwnerReferences with proper props', () => {
const wrapper = shallow(<OverviewDetailsKnativeResourcesTab item={knItem.item} />);
expect(wrapper.find(OperatorBackedOwnerReferences)).toHaveLength(1);
expect(
wrapper
.find(OperatorBackedOwnerReferences)
.at(0)
.props().item,
).toEqual(knItem.item);
});
});
8 changes: 8 additions & 0 deletions frontend/public/components/overview/_overview.scss
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,11 @@ $overview-sidebar-width: 550px;
font-size: 14px;
margin-left: var(--pf-global--spacer--sm);
}

.sidebar__section-owner-operator-heading {
display: flex;
}

.sidebar__section-owner-reference-operator {
padding-left: var(--pf-global--spacer--sm);
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ type OwnProps = {
name: string;
component: any;
}[];
isOperatorBacked?: boolean;
};

export type ResourceOverviewDetailsProps = PropsFromState & PropsFromDispatch & OwnProps;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ import * as React from 'react';

import { connectToModel } from '../../kinds';
import { referenceForModel } from '../../module/k8s';
import { AsyncComponent, Kebab, ResourceOverviewHeading, ResourceSummary } from '../utils';
import OperatorBackedOwnerReferences, {
AsyncComponent,
Kebab,
ResourceOverviewHeading,
ResourceSummary,
} from '../utils';

import { BuildOverview } from './build-overview';
import { NetworkingOverview } from './networking-overview';
Expand Down Expand Up @@ -34,6 +39,7 @@ export const OverviewDetailsResourcesTab: React.SFC<OverviewDetailsResourcesTabP
const pluginComponents = getPluginTabSectionResource(item);
return (
<div className="overview__sidebar-pane-body">
<OperatorBackedOwnerReferences item={item} />
<PodsOverview pods={pods} obj={obj} />
<BuildOverview buildConfigs={buildConfigs} />
{pluginComponents.map(({ Component, key }) => (
Expand Down
1 change: 1 addition & 0 deletions frontend/public/components/utils/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export * from './skeleton-catalog';
export * from './dom-utils';
export * from './hint-block';
export * from './owner-references';
export { default } from './operator-backed-owner-references';
export * from './field-level-help';
export * from './details-item';
export * from './types';
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import * as React from 'react';
import { OverviewItem } from '@console/shared';
import { OwnerReferences } from './owner-references';

const OperatorBackedOwnerReferences: React.FC<OperatorBackedOwnerReferencesProps> = ({ item }) => {
return item.isOperatorBackedService ? (
<span className="sidebar__section-owner-operator-heading">
Managed by:
<span className="sidebar__section-owner-reference-operator">
<OwnerReferences resource={item.obj} />
</span>
</span>
) : null;
};

type OperatorBackedOwnerReferencesProps = {
item: OverviewItem;
};

OperatorBackedOwnerReferences.displayName = 'OperatorBackedOwnerReferences';

export default OperatorBackedOwnerReferences;

0 comments on commit fa97c2b

Please sign in to comment.