-
Notifications
You must be signed in to change notification settings - Fork 708
feature/hyperv-api-backend: VM & VM Factory Implementation #4080
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
base: feature/hyperv-api-backend-hcs-hcn
Are you sure you want to change the base?
feature/hyperv-api-backend: VM & VM Factory Implementation #4080
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## feature/hyperv-api-backend-hcs-hcn #4080 +/- ##
======================================================================
- Coverage 89.31% 89.26% -0.05%
======================================================================
Files 259 259
Lines 15708 15716 +8
======================================================================
Hits 14029 14029
- Misses 1679 1687 +8 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
1235fb8
to
28ea377
Compare
02c7448
to
f473102
Compare
…nt settings It's a remnant from the original WSL2 traces. It works just as fine without the IpConfigurations settings.
- [vm] take network guid as a constructor argument - [vm] add ability to resolve hostname to retrieve IP address - [vm-start] distinguish between paused and stopped state and act accordingly - [vm-stop] take ShutdownPolicy into consideration - [vm-ssh-hostname] return the automatic ".mshome.net" hostname - [vm-ipv4-ipv6] return the resolved ip's for .mshome.net hostname Signed-off-by: Mustafa Kemal Gilor <[email protected]>
resolve_ip_addresses: simplify the wsa_init_wrapper
Hyper-V API has been the umbrella term to call the technology behind this feature, but it might be misleading because there's actually a real Hyper-V API and the feature does not use that. Instead, the feature utilizes Host Compute System and Host Compute Network API's. It's better to call this backend as what it actually is.
- api wrappers are now constructed at factory - factory and vm now use the interface types instead of concrete wrappers - switched to <> style includes - moved exception types to hcs_virtual_machine_exception.h
Implement the host-side of the Plan9 shares. It needs an agent to be running on the guest system, which will be implemented later. Add support for the graceful shutdown using guest hv_utils linux kernel driver, if present.
There are nothing to remove since everything is neatly packed into the instance folder. Removal of the instance folder is already taken care of by the base class, so only thing left is to ensure that the compute system is terminated. Set log level of open_compute_system failure and operation_failure to debug() instead of error() since these functions may fail in normal operation workflow (i.e. check if a VM exists).
simple implementation, vhdx clone only. - [hcs_api_wrapper] normalize file paths for api calls - [virtdisk_wrapper] enable clone functionality for CreateVirtualDisk
Re-implement the get_network_interfaces_info using native API in order to avoid relying on Powershell.
MSVC has started to complain, which is fixed by passing the /bigobj flag. C:\multipass-private\build\gen\multipass\rpc\multipass.grpc.pb.cc : fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj
- add_endpoint function now takes compute system name as the rest of the API does - Updated code references
to simplify the interaction between the smart pointers and the C API a lean out_ptr type is implemented based on P1132R6 paper, which is already accepted into the C++23 standard. - open_host_compute_system and create_host_compute system now uses the out_ptr to avoid creating a temporary raw pointer for the API calls.
- update one more location that has been missed
modify_compute_system is the generic function for doing runtime CS modification.
HcsPath is a std::filesystem::path wrapper for ensuring proper path formatting for the Host Compute System API.
c801153
to
ac644f1
Compare
Signed-off-by: Mustafa Kemal Gilor <[email protected]>
// The format string is laid out char by char to allow it | ||
// to be used for initializing variables with different character | ||
// sizes. | ||
static constexpr Char guid_f[] = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can use MULTIPASS_UNIVERSAL_STRING here instead.
No description provided.