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

Refactor to put the AZ CLI related calls behind an interface #259

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

Conversation

ralph-msft
Copy link
Contributor

This adds the following interfaces:

  • ICognitiveServicesClient
  • ISubscriptionsClient
  • ISearchClient
  • ILoginManager

Each of these abstracts way the details of how things are retrieved (e.g. getting a list of AI Services resources) or handled making it simpler to swap them out later. All of their methods are asynchronous, and return a ClientResult<>. This makes it simpler for calling code to inspect errors and decide whether to throw exceptions or not. The ClientResult struct contains helper methods for this.

Model classes have also been added to streamline deserialization into concrete types, as well as helper attributes and JSON converters to make it easier to retrieve nested properties. This will reduce the need for deserialization code and make it easier to standardize our code base.

Still to do:#
- Create configurtion to select telemetry type (e.g. Aria, or none)
- Capture the use of the help command that has slightly different path
- Other telemetry events
- Cleanup
Also includes work in progress funnel telemetry for ai init
- Use classes directly to deserialize. This makes future maintenance easier and clearer
- Updated list box picker to allow choosing a "value". Also added classes and interface to make this more generic
- Fixed bug where python installed using .msi on Windows would not work
- Improved robustness of deleting temporary files
- Fixed null reference exception in some cases in python runner
- Fixed variable name typo
- Remove unnecessary new line in config.json that was causing inconsistent line endings on windows
- Fix bug in parsing config.json where it was not handling empty config.json or invalid JSON correctly
- Project Existing works
- Project new
- Simplified the wrapping with telemetry code
- Simplified ITelemetry to remove async
- Added documtation to ITelemetry code
- Minor bug fixes
Also includes some "integration" tests
@ralph-msft ralph-msft requested a review from robch as a code owner April 1, 2024 18:17
@ralph-msft ralph-msft requested a review from rhurey April 1, 2024 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant