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

Initial implementation of IComputeSystem::ApplyConfiguration for HyperV extension. #2258

Conversation

sshilov7
Copy link
Member

Summary of the pull request

Initial implementation of IComputeSystem::ApplyConfiguration for HyperV extension.
(Moving from private repo to DevHome repo)

Detailed description of the pull request / Additional comments

  • Added ability to send/receive messages to/from VM using HyperV KVP service.
  • KVP service has limitation on size of the data (2Kb), so long messages needed to be split on sending side and merged on receiving side.
  • Updated requests/responses to handle configuration requests better.
  • Add "Ack" request to let VM know that previous response was received and can be removed from the KVP Registry key.
  • Added simple implementation of IComputeSystem::ApplyConfiguration that sends configuration YAML to the VM, waits for progress and completion and relays progress and completion events to the caller (DevHome).
  • Added COM registration code into DevSetupEngine
  • Added new HyperVExtension.HostGuestCommunication project for common Host/Guest communication code used on Host and VM sides. (More code needs to be refactored and moved into the library).
  • Added manual E2E integration test that sends configuration request to a real VM and watches for progress and completion.
  • Updated existing tests to due to Host/Guest messages splitting/merging.

Validation steps performed

Ran integration tests.
Manual debugging.

PR checklist

  • Closes #xxx
  • Tests added/passed
  • Documentation updated

DevHome.sln Show resolved Hide resolved
Copy link
Contributor

@bbonaby bbonaby left a comment

Choose a reason for hiding this comment

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

@sshilov7 sshilov7 merged commit eec8889 into microsoftfeature/dev-environments Feb 14, 2024
1 of 4 checks passed
bbonaby added a commit that referenced this pull request Mar 7, 2024
* add initial SDK changes (#2209)

* Add UX code from private ADO branch to public feature branch (#2241)

* Add initial code from private branch that will be shared between the setup flow and the Dev environments tool page. PRs: from private ADO repo: https://dev.azure.com/microsoft/Dart/_git/DevHome?version=GBDevEnv

* add changes to the setup flow for dev environment configuration PRS: from private ADO repo: https://dev.azure.com/microsoft/Dart/_git/DevHome?version=GBDevEnv

* Add dev environments management tool page from private ADO repo: https://dev.azure.com/microsoft/Dart/_git/DevHome?version=GBDevEnv

* fix conflicts and stylecop errors due to update from merge with main

---------

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Move Hyper-V extension code from private repository to public dev environments feature branch (#2246)

* Add Hyper-v extension to Dev Home from Private Hyper-v extension branch: PRS https://github.com/microsoft/DevHomeHyperVExtension

* Merge changes from Dev Home main and fix style cop errors

* Initial implementation of IComputeSystem::ApplyConfiguration for HyperV extension. (#2258)

* Add environments to experimentation (#2260)

* Add PowerShell script and a helper class to deploy DevSetupAgent service to a Hyper-V VM. (#2261)

* Hyper-V extension: Add "Ask for VM credentials" and "Wait for logon" Adaptive Cards to Hyper-V Configure command. (#2289)

* Changes to make DevSetupEngine work with .NET 8 (#2308)

* Build DevSetupAgent separately from the main Dev Home solution and add DevSetupAgent_*.zip to MSIX package. (#2325)

* Add WaitForLogin and Credentials Adaptive Cards

* Address review comments.

* New VS solution for DevSetupAgent

* Add BuildDevSetupAgentHelper script

* Fix x86 DevSetupAgent to work on x64 OS.
Create DevSetupAgent zip for different VM architectures.
Fixed build scripts and HyperVExtension.csproj to include DevSetupAgent zip file into Dev Home MSIX package.

* Remove old comment.

* Fix a comment.

* Update setup target flow to allow for configuration of a dev environment. (#2321)

* initial code

* update messaging and adaptive cards

* remove added method

* update strings and names

* update based on initial comments and update IsHyperVModuleLoaded with new work around that doesn't involve installing using Install-Module which installs from PsGallery

* improve wording

* fix merge conflicts

* update dev environments feature branch with latest idl changes (#2334)

* update feature branch to latest sdk

* update InputJson to inputJson

* update with latest changes

* Update environments page UX (#2320)

* add updates to ui

* fix crashes due to resource name mismatch

* update feature branch to latest sdk

* update InputJson to inputJson

* update with latest changes

* update

* update to remove duplicate, resize shimmer, remove id from winget file since its not needed, and add comments

* Re-add correct adaptive host file for correct theming, address some initial comments, update loading page to allow scrolling when there are tasks and actions in the action center. Fix error message spelling.

* improve setup target loading page progress messaging

* Fix git clone's dependsOn Id to match our new Ids for setup target flow

* Update build scripts to build DevSetupAgent in Azure official build. (#2339)

* update dev home to use new SDK version and other projects to use win app sdk v1.5 to prevent build issues (#2344)

* Fix PS DevSetupAgent deployment script. (#2345)

* remove classes that don't need to be added

* Change all tabs to spaces

* Update tools directory to use crlf

* Update HyperVExtension directory to use crlf

* Update common/Environments directory to use crlf

* Update more in common directory to use crlf

* [Hyper-V extension]: Fixes for DevSetupEngine registration, Configure progress reporting, and GitHub build. (#2348)

* remove s that was added from a previous commit causing build to fail

* fix tests for build

* update malformed configuration string to allow arm64 to build

---------

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: sshilov7 <51001703+sshilov7@users.noreply.github.com>
Co-authored-by: Kristen Schau <47155823+krschau@users.noreply.github.com>
@sshilov7 sshilov7 deleted the user/sergeys/microsoftfeature/dev-environments/Host-Guest-communication branch April 18, 2024 20:30
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.

3 participants