Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for ltpa token #219

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Added support for ltpa token #219

wants to merge 5 commits into from

Conversation

enamkhan
Copy link
Contributor

@enamkhan enamkhan commented Jan 29, 2025

This pr is a work in progress to add support for a using the ltpa token.

#217

How to Test

Review Checklist
I certify that I have:

Additional Comments

@enamkhan
Copy link
Contributor Author

@davenice I'm just going to refactor now and remove the profile config.

@codecov-commenter
Copy link

codecov-commenter commented Jan 29, 2025

Codecov Report

Attention: Patch coverage is 35.96491% with 146 lines in your changes missing coverage. Please review.

Project coverage is 40.68%. Comparing base (3ff6d32) to head (d754ac4).

Files with missing lines Patch % Lines
packages/vsce/src/trees/CICSTree.ts 22.22% 28 Missing ⚠️
packages/vsce/src/utils/profileManagement.ts 22.22% 21 Missing ⚠️
packages/vsce/src/utils/resourceUtils.ts 60.00% 14 Missing ⚠️
packages/vsce/src/utils/profileUtils.ts 36.84% 12 Missing ⚠️
...ackages/vsce/src/commands/closeLocalFileCommand.ts 0.00% 4 Missing ⚠️
packages/vsce/src/commands/showParameterCommand.ts 0.00% 4 Missing ⚠️
...ommands/disableCommands/disableLocalFileCommand.ts 0.00% 3 Missing ⚠️
.../commands/disableCommands/disableProgramCommand.ts 0.00% 3 Missing ⚠️
...mands/disableCommands/disableTransactionCommand.ts 0.00% 3 Missing ⚠️
.../commands/enableCommands/enableLocalFileCommand.ts 0.00% 3 Missing ⚠️
... and 25 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #219      +/-   ##
==========================================
+ Coverage   40.13%   40.68%   +0.55%     
==========================================
  Files         149      151       +2     
  Lines        5080     5080              
  Branches      893      877      -16     
==========================================
+ Hits         2039     2067      +28     
+ Misses       3041     3013      -28     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@enamkhan enamkhan force-pushed the khane-use-ltpa-token branch from f88f1d5 to fd79504 Compare February 3, 2025 15:24
@enamkhan enamkhan force-pushed the khane-use-ltpa-token branch from 7c4bd64 to 1cd8078 Compare February 4, 2025 13:22
Copy link
Contributor

@AndrewTwydell AndrewTwydell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a lot of the resource trees (CICSProgramTree), we're not using the new getters to get the session - might be nice if possible?

Might be nice to be able to do this.getSession() here like the combination trees.

const programResponse = await getResource(this.parentRegion.parentSession.session, {

@@ -282,9 +268,8 @@ export class ProfileManagement {
/**
* Return all the regions in a given plex
*/
public static async getRegionInfoInPlex(plex: CICSPlexTree): Promise<any[]> {
public static async getRegionInfoInPlex(plex: CICSPlexTree, session: Session): Promise<any[]> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can probably get the session (2nd arg) from the plex tree (1st arg) using getParent or getSession, or a combination, right? Although it's not exactly messy currently so optional.

@JTonda JTonda requested a review from zFernand0 February 6, 2025 16:05
Copy link
Member

@zFernand0 zFernand0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 😋

Haven't had a chance to test this, but the changes make sense to me! 😋

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It feels like we have to make the same/similar changes across all/most CICSCombinedTrees.
Wondering if there is some consolidation that can be done (in a future PR) to create a BaseCombinedTree class that the others extend 😋

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This refactor is actually in progress in this PR. Because all the resource and combined resource trees are practically identical, we can use common tree classes for them all :D

this.session = new imperative.Session({
type: "basic",
type: SessConstants.AUTH_TYPE_TOKEN,
storeCookie: true,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know I mentioned that perhaps we could move some of the LTPA token support to the CLI.
However, it makes sense the way this is being done here since (as you mentioned on the last standup) this is all handled by Imperative.

Curious if the CICs plug-in could make use the the LTPA token when the CLI is in Daemon mode. 😋
No need to worry about testing this, since people haven't asked for this feature yet 😋

@enamkhan enamkhan force-pushed the khane-use-ltpa-token branch from 50424cb to e132aca Compare February 11, 2025 11:30
@enamkhan enamkhan force-pushed the khane-use-ltpa-token branch 2 times, most recently from 22fb9a1 to a602446 Compare February 14, 2025 13:57
@enamkhan enamkhan force-pushed the khane-use-ltpa-token branch from a5251ac to e4447ab Compare February 14, 2025 15:58
@enamkhan enamkhan marked this pull request as ready for review February 14, 2025 16:16
Signed-off-by: enam-khan <[email protected]>
Signed-off-by: enam-khan <[email protected]>
Copy link
Contributor

@AndrewTwydell AndrewTwydell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few changes, will also test functionality locally

@@ -4,9 +4,11 @@ All notable changes to the "cics-extension-for-zowe" extension will be documente

## Recent Changes

- Enhancement:Use LTPA tokens to allow CMCI "sessions" [#217](https://github.com/zowe/cics-for-zowe-client/issues/217)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Enhancement:Use LTPA tokens to allow CMCI "sessions" [#217](https://github.com/zowe/cics-for-zowe-client/issues/217)
- Enhancement: Use LTPA tokens to allow CMCI "sessions" [#217](https://github.com/zowe/cics-for-zowe-client/issues/217)


## Recent Changes

- Enhancement: Use LTPA tokens to allow CMCI "sessions". [#217](https://github.com/zowe/cics-for-zowe-client/issues/217)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure adding some constants to the package warrants a changelog entry talking about LTPA tokens. I think we should change this to be something along the lines of...

Suggested change
- Enhancement: Use LTPA tokens to allow CMCI "sessions". [#217](https://github.com/zowe/cics-for-zowe-client/issues/217)
- Enhancement: Added CICS resource names to available constants. [#217](https://github.com/zowe/cics-for-zowe-client/issues/217)

@@ -18,6 +18,11 @@ export const CicsCmciConstants = {
*/
CICS_SYSTEM_MANAGEMENT: "CICSSystemManagement",

/**
* Specifies the required part of the REST interface URI to access initialization parameter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Specifies the required part of the REST interface URI to access initialization parameter
* Specifies the required part of the REST interface URI to access system initialization parameters

Comment on lines +62 to +65
* Specifies the required part of the REST interface URI to access tcp/ip service definitions
*/
CICS_DEFINITION_TCPIPSERVICE: "CICSTCPIPService",

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not accurate. The comment and constant name suggests definitions, but the actual resource name suggests the installed resource. Which do you need here?

Comment on lines +30 to +31
let count = 0;
while (count <= 1) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe changing count to be a more readable boolean could be nice, although it'll achieve the same result.

I also wonder if there's a way we can achieve this without a while loop, perhaps moving the functionality inside the while to another method, and calling it from the try block AND the catch (if the 401 is received). Perhaps unecessary change at this point though - depends how strongly others feel about a while loop!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Review/QA
Development

Successfully merging this pull request may close these issues.

4 participants