Skip to content

Commit 9446418

Browse files
committed
display service actions data.
1 parent 1723014 commit 9446418

File tree

10 files changed

+1892
-1574
lines changed

10 files changed

+1892
-1574
lines changed

src/components/content/catalog/services/details/ServiceDetail.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { FlavorsText } from '../../../common/ocl/FlavorsText';
2929
import { RegionText } from '../../../common/ocl/RegionText.tsx';
3030
import useDeployedServicesQuery from '../../../deployedServices/myServices/query/useDeployedServiceQuery';
3131
import DeploymentManagement from '../../../deployment/DeploymentManagement';
32+
import { ServiceActionManagement } from '../../../serviceActionManage/ServiceActionManagement.tsx';
3233
import ServiceConfigManagement from '../../../serviceConfigurationManage/ServiceConfigManagement';
3334
import { ShowIcon } from './ShowIcon';
3435

@@ -151,6 +152,9 @@ function ServiceDetail({ serviceDetails }: { serviceDetails: ServiceTemplateDeta
151152
{serviceDetails.serviceConfigurationManage ? (
152153
<ServiceConfigManagement configurationManage={serviceDetails.serviceConfigurationManage} />
153154
) : null}
155+
{serviceDetails.serviceActions && serviceDetails.serviceActions.length > 0 ? (
156+
<ServiceActionManagement serviceActions={serviceDetails.serviceActions} />
157+
) : null}
154158
</>
155159
);
156160
}

src/components/content/common/ocl/DisplayOclData.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import oclDisplayStyles from '../../../../styles/ocl-display.module.css';
1212
import { Ocl, serviceHostingType } from '../../../../xpanse-api/generated';
1313
import { DeployedServicesHostingType } from '../../deployedServices/common/DeployedServicesHostingType';
1414
import DeploymentManagement from '../../deployment/DeploymentManagement';
15+
import { ServiceActionManagement } from '../../serviceActionManage/ServiceActionManagement.tsx';
1516
import ServiceConfigManagement from '../../serviceConfigurationManage/ServiceConfigManagement';
1617
import { cspMap } from '../csp/CspLogo';
1718
import { AgreementText } from './AgreementText';
@@ -121,6 +122,7 @@ function DisplayOclData({ ocl }: { ocl: Ocl }): React.JSX.Element | string {
121122
{ocl.serviceConfigurationManage ? (
122123
<ServiceConfigManagement configurationManage={ocl.serviceConfigurationManage} />
123124
) : null}
125+
{ocl.serviceActions ? <ServiceActionManagement serviceActions={ocl.serviceActions} /> : null}
124126
</div>
125127
</div>
126128
</>

src/components/content/serviceConfigurationManage/ServiceConfigurationParameters.tsx src/components/content/common/serviceChangeParameters/ServiceChangeParameters.tsx

+13-7
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,17 @@
66
import { Button, Popover, Table } from 'antd';
77
import { ColumnsType } from 'antd/es/table';
88
import React from 'react';
9-
import catalogStyles from '../../../styles/catalog.module.css';
10-
import deploymentVariablesStyles from '../../../styles/deployment-variables.module.css';
11-
import { deployResourceKind, sensitiveScope, ServiceChangeParameter } from '../../../xpanse-api/generated';
9+
import catalogStyles from '../../../../styles/catalog.module.css';
10+
import deploymentVariablesStyles from '../../../../styles/deployment-variables.module.css';
11+
import { deployResourceKind, sensitiveScope, ServiceChangeParameter } from '../../../../xpanse-api/generated';
1212

13-
function ServiceConfigurationParameters({ parameters }: { parameters: ServiceChangeParameter[] }): React.JSX.Element {
13+
function ServiceChangeParameters({
14+
parameters,
15+
tableName,
16+
}: {
17+
parameters: ServiceChangeParameter[];
18+
tableName: string;
19+
}): React.JSX.Element {
1420
const columns: ColumnsType<ServiceChangeParameter> = [
1521
{
1622
title: <div className={deploymentVariablesStyles.variablesColumns}>Name</div>,
@@ -201,13 +207,13 @@ function ServiceConfigurationParameters({ parameters }: { parameters: ServiceCha
201207
return (
202208
<>
203209
<div className={`${catalogStyles.catalogDetailsH6} ${catalogStyles.managementVariable}`}>
204-
&nbsp;Service Configuration Parameters
210+
&nbsp;{tableName}
205211
</div>
206212
<div className={deploymentVariablesStyles.variablesTableContainer}>
207-
<Table columns={columns} dataSource={parameters} rowKey={'name'} bordered pagination={false} />
213+
<Table bordered columns={columns} dataSource={parameters} rowKey={'name'} pagination={false} />
208214
</div>
209215
</>
210216
);
211217
}
212218

213-
export default ServiceConfigurationParameters;
219+
export default ServiceChangeParameters;

src/components/content/review/ServiceReviewsDetails.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { DeploymentText } from '../common/ocl/DeploymentText';
2020
import { FlavorsText } from '../common/ocl/FlavorsText';
2121
import { RegionText } from '../common/ocl/RegionText.tsx';
2222
import DeploymentManagement from '../deployment/DeploymentManagement';
23+
import { ServiceActionManagement } from '../serviceActionManage/ServiceActionManagement.tsx';
2324
import ServiceConfigManagement from '../serviceConfigurationManage/ServiceConfigManagement';
2425
import { ApproveOrRejectServiceTemplate } from './ApproveOrRejectServiceTemplate';
2526
import useApproveOrRejectRequest from './query/useApproveOrRejectRequest';
@@ -199,6 +200,11 @@ export const ServiceReviewsDetails = ({
199200
configurationManage={currentServiceTemplateRequestToReview.ocl.serviceConfigurationManage}
200201
/>
201202
) : null}
203+
{currentServiceTemplateRequestToReview.ocl.serviceActions ? (
204+
<ServiceActionManagement
205+
serviceActions={currentServiceTemplateRequestToReview.ocl.serviceActions}
206+
/>
207+
) : null}
202208
<>
203209
<h3 className={catalogStyles.catalogDetailsH3}>
204210
<BarsOutlined />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* SPDX-FileCopyrightText: Huawei Inc.
4+
*/
5+
6+
import React from 'react';
7+
import { ServiceAction } from '../../../xpanse-api/generated';
8+
import ServiceChangeParameters from '../common/serviceChangeParameters/ServiceChangeParameters.tsx';
9+
import ServiceActionScripts from './ServiceActionScripts.tsx';
10+
11+
function ServiceActionItems({ serviceAction }: { serviceAction: ServiceAction }): React.JSX.Element {
12+
return (
13+
<>
14+
{serviceAction.actionManageScripts ? (
15+
<ServiceActionScripts actionScripts={serviceAction.actionManageScripts} />
16+
) : null}
17+
{serviceAction.actionParameters ? (
18+
<ServiceChangeParameters
19+
parameters={serviceAction.actionParameters}
20+
tableName={'Service Action Parameters'}
21+
/>
22+
) : null}
23+
</>
24+
);
25+
}
26+
27+
export default ServiceActionItems;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* SPDX-FileCopyrightText: Huawei Inc.
4+
*/
5+
6+
import { SettingOutlined } from '@ant-design/icons';
7+
import { Card, Tabs } from 'antd';
8+
import React, { useState } from 'react';
9+
import catalogStyles from '../../../styles/catalog.module.css';
10+
import { ServiceAction } from '../../../xpanse-api/generated';
11+
import ServiceActionItems from './ServiceActionItems.tsx';
12+
13+
export const ServiceActionManagement = ({ serviceActions }: { serviceActions: ServiceAction[] }): React.JSX.Element => {
14+
const [actionName, setActionName] = useState<string | undefined>(serviceActions[0].name);
15+
const onChange = (key: string) => {
16+
setActionName(key);
17+
};
18+
const items = serviceActions.map((serviceAction) => {
19+
return {
20+
key: serviceAction.name,
21+
label: serviceAction.name,
22+
children: <ServiceActionItems serviceAction={serviceAction} />,
23+
};
24+
});
25+
26+
return (
27+
<>
28+
{' '}
29+
<h3 className={catalogStyles.catalogDetailsH3}>
30+
<SettingOutlined />
31+
&nbsp;Service Action Management
32+
</h3>
33+
<Card>
34+
<Tabs
35+
defaultActiveKey={serviceActions[0].name}
36+
items={items}
37+
activeKey={actionName}
38+
onChange={onChange}
39+
destroyInactiveTabPane={true}
40+
/>
41+
</Card>
42+
</>
43+
);
44+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* SPDX-FileCopyrightText: Huawei Inc.
4+
*/
5+
6+
import { Table } from 'antd';
7+
import { ColumnsType } from 'antd/es/table';
8+
import React from 'react';
9+
import catalogStyles from '../../../styles/catalog.module.css';
10+
import deploymentVariablesStyles from '../../../styles/deployment-variables.module.css';
11+
import { ServiceChangeScript } from '../../../xpanse-api/generated';
12+
13+
function ServiceActionScripts({ actionScripts }: { actionScripts: ServiceChangeScript[] }): React.JSX.Element {
14+
const columns: ColumnsType<ServiceChangeScript> = [
15+
{
16+
title: <div className={deploymentVariablesStyles.variablesColumns}>ChangeHandler</div>,
17+
dataIndex: 'changeHandler',
18+
render: (text: string) => {
19+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
20+
},
21+
},
22+
{
23+
title: <div className={deploymentVariablesStyles.variablesColumns}>RunOnlyOnce</div>,
24+
dataIndex: 'runOnlyOnce',
25+
render: (text: boolean | undefined | null) => {
26+
if (text === true) {
27+
return <div className={deploymentVariablesStyles.variablesColumns}>{`true`}</div>;
28+
} else if (text === false) {
29+
return <div className={deploymentVariablesStyles.variablesColumns}>{`false`}</div>;
30+
} else {
31+
return null;
32+
}
33+
},
34+
},
35+
{
36+
title: <div className={deploymentVariablesStyles.variablesColumns}>AnsibleScriptConfig</div>,
37+
dataIndex: 'ansibleScriptConfig',
38+
children: [
39+
{
40+
title: <div className={deploymentVariablesStyles.variablesTableChildrenTitle}>Playbook Name</div>,
41+
dataIndex: ['ansibleScriptConfig', 'playbookName'],
42+
key: 'playbookName',
43+
render: (text: string) => {
44+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
45+
},
46+
},
47+
{
48+
title: <div className={deploymentVariablesStyles.variablesTableChildrenTitle}>Virtual Env</div>,
49+
dataIndex: ['ansibleScriptConfig', 'virtualEnv'],
50+
key: 'virtualEnv',
51+
render: (text: string) => {
52+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
53+
},
54+
},
55+
{
56+
title: <div className={deploymentVariablesStyles.variablesTableChildrenTitle}>Python Version</div>,
57+
dataIndex: ['ansibleScriptConfig', 'pythonVersion'],
58+
key: 'pythonVersion',
59+
render: (text: string) => {
60+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
61+
},
62+
},
63+
{
64+
title: (
65+
<div className={deploymentVariablesStyles.variablesTableChildrenTitle}>
66+
Is Prepare Ansible Environment
67+
</div>
68+
),
69+
dataIndex: ['ansibleScriptConfig', 'isPrepareAnsibleEnvironment'],
70+
key: 'isPrepareAnsibleEnvironment',
71+
render: (text: boolean | undefined | null) => {
72+
if (text === true) {
73+
return <div className={deploymentVariablesStyles.variablesColumns}>{`true`}</div>;
74+
} else if (text === false) {
75+
return <div className={deploymentVariablesStyles.variablesColumns}>{`false`}</div>;
76+
} else {
77+
return null;
78+
}
79+
},
80+
},
81+
{
82+
title: <div className={deploymentVariablesStyles.variablesTableChildrenTitle}>RepoUrl</div>,
83+
dataIndex: ['ansibleScriptConfig', 'repoUrl'],
84+
key: 'repoUrl',
85+
render: (text: string) => {
86+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
87+
},
88+
},
89+
{
90+
title: <div className={deploymentVariablesStyles.variablesTableChildrenTitle}>Branch</div>,
91+
dataIndex: ['ansibleScriptConfig', 'branch'],
92+
key: 'branch',
93+
render: (text: string) => {
94+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
95+
},
96+
},
97+
{
98+
title: (
99+
<div className={deploymentVariablesStyles.variablesTableChildrenTitle}>RequirementsFile</div>
100+
),
101+
dataIndex: ['ansibleScriptConfig', 'requirementsFile'],
102+
key: 'requirementsFile',
103+
render: (text: string) => {
104+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
105+
},
106+
},
107+
{
108+
title: <div className={deploymentVariablesStyles.variablesTableChildrenTitle}>GalaxyFile</div>,
109+
dataIndex: ['ansibleScriptConfig', 'galaxyFile'],
110+
key: 'galaxyFile',
111+
render: (text: string) => {
112+
return <div className={deploymentVariablesStyles.variablesColumns}>{text}</div>;
113+
},
114+
},
115+
{
116+
title: (
117+
<div className={deploymentVariablesStyles.variablesTableChildrenTitle}>
118+
AnsibleInventoryRequired
119+
</div>
120+
),
121+
dataIndex: ['ansibleScriptConfig', 'ansibleInventoryRequired'],
122+
key: 'ansibleInventoryRequired',
123+
render: (text: boolean | undefined | null) => {
124+
if (text === true) {
125+
return <div className={deploymentVariablesStyles.variablesColumns}>{`true`}</div>;
126+
} else if (text === false) {
127+
return <div className={deploymentVariablesStyles.variablesColumns}>{`false`}</div>;
128+
} else {
129+
return null;
130+
}
131+
},
132+
},
133+
],
134+
},
135+
];
136+
137+
return (
138+
<>
139+
<div className={`${catalogStyles.catalogDetailsH6} ${catalogStyles.managementVariable}`}>
140+
&nbsp;Service Action Scripts
141+
</div>
142+
<div className={deploymentVariablesStyles.variablesTableContainer}>
143+
<Table bordered columns={columns} dataSource={actionScripts} rowKey={'name'} pagination={false} />
144+
</div>
145+
</>
146+
);
147+
}
148+
149+
export default ServiceActionScripts;

src/components/content/serviceConfigurationManage/ServiceConfigManagement.tsx

+5-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ControlOutlined } from '@ant-design/icons';
77
import React from 'react';
88
import catalogStyles from '../../../styles/catalog.module.css';
99
import { ServiceChangeManage } from '../../../xpanse-api/generated';
10-
import ServiceConfigurationParameters from './ServiceConfigurationParameters';
10+
import ServiceChangeParameters from '../common/serviceChangeParameters/ServiceChangeParameters.tsx';
1111
import ServiceConfigurationScripts from './ServiceConfigurationScripts';
1212

1313
function ServiceConfigManagement({
@@ -25,7 +25,10 @@ function ServiceConfigManagement({
2525
<ServiceConfigurationScripts configurationManage={configurationManage} />
2626
) : null}
2727
{configurationManage.configurationParameters ? (
28-
<ServiceConfigurationParameters parameters={configurationManage.configurationParameters} />
28+
<ServiceChangeParameters
29+
parameters={configurationManage.configurationParameters}
30+
tableName={'Service Configuration Parameters'}
31+
/>
2932
) : null}
3033
</>
3134
);

0 commit comments

Comments
 (0)