Skip to content

fix list job to use interface#5582

Merged
Neelabh94 merged 2 commits into
GoogleCloudPlatform:developfrom
Neelabh94:fix_job_test
Apr 30, 2026
Merged

fix list job to use interface#5582
Neelabh94 merged 2 commits into
GoogleCloudPlatform:developfrom
Neelabh94:fix_job_test

Conversation

@Neelabh94

@Neelabh94 Neelabh94 commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

This pull request refactors the ListJobs logic within the GKE orchestrator to utilize the KubeClient interface. By abstracting the Kubernetes API interactions, the PR enables proper mocking and improves the testability of job-related CLI commands

Submission Checklist

NOTE: Community submissions can take up to 2 weeks to be reviewed.

Please take the following actions before submitting this pull request.

  • Fork your PR branch from the Toolkit "develop" branch (not main)
  • Test all changes with pre-commit in a local branch #
  • Confirm that "make tests" passes all tests
  • Add or modify unit tests to cover code changes
  • Ensure that unit test coverage remains above 80%
  • Update all applicable documentation
  • Follow Cluster Toolkit Contribution guidelines #

@Neelabh94 Neelabh94 added the release-chore To not include into release notes label Apr 30, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors the GKE orchestrator to improve testability by abstracting Kubernetes client operations behind an interface. By introducing the ListJobSets method and decoupling status parsing logic, the codebase becomes more modular and easier to unit test without relying on complex GKE-specific implementations.

Highlights

  • Interface Abstraction: Added the ListJobSets method to the KubeClient interface to enable better mocking and testability.
  • Refactoring: Moved job status parsing logic out of the GKEOrchestrator struct to standalone functions, simplifying the orchestrator's responsibilities.
  • Test Improvements: Updated test mocks and test cases to accommodate the new interface method and refactored parsing logic.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@Neelabh94 Neelabh94 changed the title fix listcmd to use interface for proper mocking in tests fix list job to use interface Apr 30, 2026
@Neelabh94

Copy link
Copy Markdown
Contributor Author

/gemini review

@Neelabh94 Neelabh94 marked this pull request as ready for review April 30, 2026 16:46
@Neelabh94 Neelabh94 requested a review from a team as a code owner April 30, 2026 16:46

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the GKE job orchestrator to use a KubeClient interface for listing job sets, which improves the code's testability and separation of concerns. Key changes include the addition of the ListJobSets method to the KubeClient interface and its implementations, and the refactoring of ListJobs to use this new method. Additionally, the parseJobStatus and parseConditions functions were moved from method receivers to package-level functions to simplify their usage. I have no feedback to provide.

cboneti
cboneti previously approved these changes Apr 30, 2026
@Neelabh94 Neelabh94 enabled auto-merge (squash) April 30, 2026 16:52

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the GKE job orchestrator to utilize a KubeClient interface for listing job sets, which enhances modularity and testability. Significant changes include converting parseJobStatus and parseConditions into package-level functions and implementing the ListJobSets method within DefaultKubeClient. Review feedback recommends moving client initialization to a persistent pre-run hook instead of using lazy initialization and substituting context.TODO() with context.Background() to align with standard Go idioms.

Comment thread pkg/orchestrator/gke/gke_job_orchestrator.go
Comment thread pkg/orchestrator/gke/gke_job_orchestrator.go Outdated
@Neelabh94 Neelabh94 disabled auto-merge April 30, 2026 16:54
@Neelabh94 Neelabh94 merged commit 08724ca into GoogleCloudPlatform:develop Apr 30, 2026
14 of 74 checks passed
@Neelabh94 Neelabh94 deleted the fix_job_test branch April 30, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-chore To not include into release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants