Skip to content

Commit 581de8a

Browse files
committed
enable command share code
Signed-off-by: Andrew Twydell <[email protected]>
1 parent 9159653 commit 581de8a

File tree

8 files changed

+113
-468
lines changed

8 files changed

+113
-468
lines changed

packages/vsce/src/commands/enableCommands/enableBundleCommand.ts

Lines changed: 5 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,11 @@
99
*
1010
*/
1111

12-
import { CicsCmciConstants, ICMCIApiResponse } from "@zowe/cics-for-zowe-sdk";
13-
import { IProfileLoaded } from "@zowe/imperative";
14-
import { commands, ProgressLocation, TreeView, window } from "vscode";
15-
import constants from "../../constants/CICS.defaults";
12+
import { commands, TreeView, window } from "vscode";
1613
import { BundleMeta } from "../../doc";
17-
import { ICommandParams } from "../../doc/commands/ICommandParams";
1814
import { CICSTree } from "../../trees/CICSTree";
1915
import { findSelectedNodes } from "../../utils/commandUtils";
20-
import { pollForCompleteAction, runPutResource } from "../../utils/resourceUtils";
21-
import { evaluateTreeNodes } from "../../utils/treeUtils";
22-
import { CICSExtensionError } from "../../errors/CICSExtensionError";
23-
import { CICSErrorHandler } from "../../errors/CICSErrorHandler";
16+
import { enableTreeItem } from "./enableResourceCommand";
2417

2518
/**
2619
* Performs enable on selected CICSBundle nodes.
@@ -35,63 +28,8 @@ export function getEnableBundleCommand(tree: CICSTree, treeview: TreeView<any>)
3528
return;
3629
}
3730

38-
await window.withProgress(
39-
{
40-
title: "Enable",
41-
location: ProgressLocation.Notification,
42-
cancellable: false,
43-
},
44-
async (progress, token) => {
45-
token.onCancellationRequested(() => {});
46-
47-
for (const node of nodes) {
48-
progress.report({
49-
message: `Enabling ${nodes.indexOf(node) + 1} of ${nodes.length}`,
50-
increment: (nodes.indexOf(node) / nodes.length) * constants.PERCENTAGE_MAX,
51-
});
52-
53-
try {
54-
await enableBundle(node.getProfile(), {
55-
name: node.getContainedResource().meta.getName(node.getContainedResource().resource),
56-
regionName: node.regionName ?? node.getContainedResource().resource.attributes.eyu_cicsname,
57-
cicsPlex: node.cicsplexName,
58-
});
59-
60-
await pollForCompleteAction(
61-
node,
62-
(response) => {
63-
return response.records?.cicsbundle?.enablestatus.toUpperCase() === "ENABLED";
64-
},
65-
(response: ICMCIApiResponse) => evaluateTreeNodes(node, tree, response, node.getContainedResource().meta)
66-
);
67-
} catch (error) {
68-
if (error instanceof CICSExtensionError) {
69-
new CICSErrorHandler().handleCMCIRestError(error)
70-
}
71-
}
72-
}
73-
}
74-
);
31+
await enableTreeItem(nodes, tree, undefined, (response) => {
32+
return response.records?.cicsbundle?.enablestatus.toUpperCase() === "ENABLED";
33+
});
7534
});
7635
}
77-
78-
function enableBundle(profile: IProfileLoaded, parms: ICommandParams): Promise<ICMCIApiResponse> {
79-
return runPutResource(
80-
{
81-
profileName: profile.name,
82-
resourceName: CicsCmciConstants.CICS_CMCI_BUNDLE,
83-
cicsPlex: parms.cicsPlex,
84-
regionName: parms.regionName,
85-
params: { criteria: `NAME='${parms.name}'` },
86-
},
87-
{
88-
request: {
89-
action: {
90-
$: {
91-
name: "ENABLE",
92-
},
93-
},
94-
},
95-
}
96-
);
97-
}

packages/vsce/src/commands/enableCommands/enableJVMEndpointCommand.ts

Lines changed: 9 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,13 @@
99
*
1010
*/
1111

12-
import { CicsCmciConstants, ICMCIApiResponse } from "@zowe/cics-for-zowe-sdk";
13-
import { ProgressLocation, TreeView, commands, window } from "vscode";
14-
import constants from "../../constants/CICS.defaults";
12+
import { IJVMServer } from "@zowe/cics-for-zowe-explorer-api";
13+
import { TreeView, commands, window } from "vscode";
1514
import { JVMEndpointMeta } from "../../doc";
16-
import { ICommandParams } from "../../doc/commands/ICommandParams";
15+
import { CICSResourceContainerNode } from "../../trees";
1716
import { CICSTree } from "../../trees/CICSTree";
18-
import { CICSLogger } from "../../utils/CICSLogger";
1917
import { findSelectedNodes } from "../../utils/commandUtils";
20-
import { IJVMEndpoint, IJVMServer } from "@zowe/cics-for-zowe-explorer-api";
21-
import { pollForCompleteAction, runPutResource } from "../../utils/resourceUtils";
22-
import { evaluateTreeNodes } from "../../utils/treeUtils";
23-
import { CICSResourceContainerNode } from "../../trees";
18+
import { enableTreeItem } from "./enableResourceCommand";
2419

2520
/**
2621
* Performs enable on selected CICSJVMEndpoint nodes.
@@ -35,76 +30,10 @@ export function getEnableJVMEndpointCommand(tree: CICSTree, treeview: TreeView<a
3530
return;
3631
}
3732

38-
await window.withProgress(
39-
{
40-
title: "Enable JVM Endpoint",
41-
location: ProgressLocation.Notification,
42-
cancellable: false,
43-
},
44-
async (progress, token) => {
45-
token.onCancellationRequested(() => { });
46-
47-
for (let i = 0; i < nodes.length; i++) {
48-
const node = nodes[i];
49-
const resource = node.getContainedResource().resource.attributes as IJVMEndpoint;
50-
progress.report({
51-
message: `Enabling JVM Endpoint '${resource.jvmendpoint}' (${i + 1} of ${nodes.length})`,
52-
increment: ((i + 1) / nodes.length) * constants.PERCENTAGE_MAX,
53-
});
54-
55-
try {
56-
await enableJVMEndpoint(
57-
node.getProfileName(),
58-
{
59-
name: resource.jvmendpoint,
60-
cicsPlex: node.cicsplexName,
61-
regionName: node.regionName ?? resource.eyu_cicsname,
62-
} as ICommandParams,
63-
resource.jvmserver
64-
);
65-
66-
await pollForCompleteAction(
67-
node,
68-
(response) => {
69-
return response.records?.cicsjvmendpoint?.enablestatus.toUpperCase() === "ENABLED";
70-
},
71-
(response: ICMCIApiResponse) => evaluateTreeNodes(node, tree, response, node.getContainedResource().meta),
72-
(node.getParent() as CICSResourceContainerNode<IJVMServer>).getContainedResource().resource.attributes
73-
);
74-
} catch (error) {
75-
const message = `Something went wrong while enabling JVMEndpoint ${node.getContainedResourceName()}\n\n${JSON.stringify(
76-
error.message
77-
).replace(/(\\n\t|\\n|\\t)/gm, " ")}`;
78-
window.showErrorMessage(message);
79-
CICSLogger.error(message);
80-
}
81-
}
82-
}
83-
);
33+
await enableTreeItem(nodes, tree, (node: CICSResourceContainerNode<IJVMServer>) => {
34+
return node.getContainedResource().resource.attributes;
35+
}, (response) => {
36+
return response.records?.cicsjvmendpoint?.enablestatus.toUpperCase() === "ENABLED";
37+
});
8438
});
8539
}
86-
87-
function enableJVMEndpoint(
88-
profileName: string,
89-
parms: ICommandParams,
90-
jvmServerName: string
91-
): Promise<ICMCIApiResponse> {
92-
return runPutResource(
93-
{
94-
profileName,
95-
resourceName: CicsCmciConstants.CICS_CMCI_JVM_ENDPOINT,
96-
cicsPlex: parms.cicsPlex,
97-
regionName: parms.regionName,
98-
params: { criteria: `(JVMENDPOINT='${parms.name}') AND (JVMSERVER='${jvmServerName}')` },
99-
},
100-
{
101-
request: {
102-
action: {
103-
$: {
104-
name: "ENABLE",
105-
},
106-
},
107-
},
108-
}
109-
);
110-
}

packages/vsce/src/commands/enableCommands/enableJVMServerCommand.ts

Lines changed: 5 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,11 @@
99
*
1010
*/
1111

12-
import { CicsCmciConstants, ICMCIApiResponse } from "@zowe/cics-for-zowe-sdk";
13-
import { IProfileLoaded } from "@zowe/imperative";
14-
import { commands, ProgressLocation, TreeView, window } from "vscode";
15-
import constants from "../../constants/CICS.defaults";
12+
import { commands, TreeView, window } from "vscode";
1613
import { JVMServerMeta } from "../../doc";
17-
import { ICommandParams } from "../../doc/commands/ICommandParams";
1814
import { CICSTree } from "../../trees/CICSTree";
19-
import { CICSLogger } from "../../utils/CICSLogger";
2015
import { findSelectedNodes } from "../../utils/commandUtils";
21-
import { pollForCompleteAction, runPutResource } from "../../utils/resourceUtils";
22-
import { evaluateTreeNodes } from "../../utils/treeUtils";
16+
import { enableTreeItem } from "./enableResourceCommand";
2317

2418
/**
2519
* Performs enable on selected JVM Server nodes.
@@ -34,65 +28,8 @@ export function getEnableJVMServerCommand(tree: CICSTree, treeview: TreeView<any
3428
return;
3529
}
3630

37-
await window.withProgress(
38-
{
39-
title: "Enable",
40-
location: ProgressLocation.Notification,
41-
cancellable: true,
42-
},
43-
async (progress, token) => {
44-
token.onCancellationRequested(() => {});
45-
46-
for (const node of nodes) {
47-
progress.report({
48-
message: `Enabling ${nodes.indexOf(node) + 1} of ${nodes.length}`,
49-
increment: (nodes.indexOf(node) / nodes.length) * constants.PERCENTAGE_MAX,
50-
});
51-
52-
try {
53-
await enableJVMServer(node.getProfile(), {
54-
name: node.getContainedResourceName(),
55-
regionName: node.regionName ?? node.getContainedResource().resource.attributes.eyu_cicsname,
56-
cicsPlex: node.cicsplexName,
57-
});
58-
59-
await pollForCompleteAction(
60-
node,
61-
(response) => {
62-
return response.records?.cicsjvmserver?.enablestatus.toUpperCase() === "ENABLED";
63-
},
64-
(response: ICMCIApiResponse) => evaluateTreeNodes(node, tree, response, node.getContainedResource().meta)
65-
);
66-
} catch (error) {
67-
const message = `Something went wrong while enabling JVM server ${node.getContainedResourceName()}\n\n${JSON.stringify(
68-
error.message
69-
).replace(/(\\n\t|\\n|\\t)/gm, " ")}`;
70-
window.showErrorMessage(message);
71-
CICSLogger.error(message);
72-
}
73-
}
74-
}
75-
);
31+
await enableTreeItem(nodes, tree, undefined, (response) => {
32+
return response.records?.cicsjvmserver?.enablestatus.toUpperCase() === "ENABLED";
33+
});
7634
});
7735
}
78-
79-
function enableJVMServer(profile: IProfileLoaded, parms: ICommandParams): Promise<ICMCIApiResponse> {
80-
return runPutResource(
81-
{
82-
profileName: profile.name,
83-
resourceName: CicsCmciConstants.CICS_JVMSERVER_RESOURCE,
84-
cicsPlex: parms.cicsPlex,
85-
regionName: parms.regionName,
86-
params: { criteria: `NAME='${parms.name}'` },
87-
},
88-
{
89-
request: {
90-
action: {
91-
$: {
92-
name: "ENABLE",
93-
},
94-
},
95-
},
96-
}
97-
);
98-
}

packages/vsce/src/commands/enableCommands/enableLibraryCommand.ts

Lines changed: 3 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,11 @@
99
*
1010
*/
1111

12-
import { CicsCmciConstants, ICMCIApiResponse } from "@zowe/cics-for-zowe-sdk";
13-
import { IProfileLoaded } from "@zowe/imperative";
14-
import { commands, ProgressLocation, TreeView, window } from "vscode";
15-
import constants from "../../constants/CICS.defaults";
12+
import { commands, TreeView, window } from "vscode";
1613
import { LibraryMeta } from "../../doc";
17-
import { ICommandParams } from "../../doc/commands/ICommandParams";
1814
import { CICSTree } from "../../trees/CICSTree";
19-
import { CICSLogger } from "../../utils/CICSLogger";
2015
import { findSelectedNodes } from "../../utils/commandUtils";
21-
import { runPutResource } from "../../utils/resourceUtils";
22-
import { evaluateTreeNodes } from "../../utils/treeUtils";
16+
import { enableTreeItem } from "./enableResourceCommand";
2317

2418
/**
2519
* Performs enable on selected CICSLibrary nodes.
@@ -34,60 +28,6 @@ export function getEnableLibraryCommand(tree: CICSTree, treeview: TreeView<any>)
3428
return;
3529
}
3630

37-
await window.withProgress(
38-
{
39-
title: "Enable",
40-
location: ProgressLocation.Notification,
41-
cancellable: true,
42-
},
43-
async (progress, token) => {
44-
token.onCancellationRequested(() => {});
45-
46-
for (const node of nodes) {
47-
progress.report({
48-
message: `Enabling ${nodes.indexOf(node) + 1} of ${nodes.length}`,
49-
increment: (nodes.indexOf(node) / nodes.length) * constants.PERCENTAGE_MAX,
50-
});
51-
52-
try {
53-
const response = await enableLibrary(node.getProfile(), {
54-
name: node.getContainedResourceName(),
55-
regionName: node.regionName ?? node.getContainedResource().resource.attributes.eyu_cicsname,
56-
cicsPlex: node.cicsplexName,
57-
});
58-
59-
evaluateTreeNodes(clickedNode, tree, response, LibraryMeta);
60-
61-
} catch (error) {
62-
const message = `Something went wrong while enabling library ${node.getContainedResourceName()}\n\n${JSON.stringify(
63-
error.message
64-
).replace(/(\\n\t|\\n|\\t)/gm, " ")}`;
65-
window.showErrorMessage(message);
66-
CICSLogger.error(message);
67-
}
68-
}
69-
}
70-
);
31+
await enableTreeItem(nodes, tree);
7132
});
7233
}
73-
74-
function enableLibrary(profile: IProfileLoaded, parms: ICommandParams): Promise<ICMCIApiResponse> {
75-
return runPutResource(
76-
{
77-
profileName: profile.name,
78-
resourceName: CicsCmciConstants.CICS_LIBRARY_RESOURCE,
79-
cicsPlex: parms.cicsPlex,
80-
regionName: parms.regionName,
81-
params: { criteria: `NAME='${parms.name}'` },
82-
},
83-
{
84-
request: {
85-
action: {
86-
$: {
87-
name: "ENABLE",
88-
},
89-
},
90-
},
91-
}
92-
);
93-
}

0 commit comments

Comments
 (0)