Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Support for ASP.NET Installation (#1843)
* wip - separate out worker paths so contexts are needed for every call, but there is less potential for things to go wrong and less code duplication * Further isolate code, need to isolate the install tracker now * migrate install tracker to use event stream instead of being coupled to the context * move installtracker to a singleton and fix tests the install tracker really only needs to exist once since the event stream and extension state are global, this will prevent errors from different states of promises and simplify our code with this design pattern to decouple the installation tracking mechanism from the context object, which will reduce code duplication for aspnet install feature additions * Fix some issues with the test during code migration * Fix issue with accessing instance I forgot to ctrl s! * Clean up logic with install key generation * Remove duplicate source of truth for architecture * Improve logging and error handling of install tracker This class is super annoying to debug without better logging * Update some broken components of the tests * Prevent saying object object in the log output by expanding the object * Tests working We used to need to concat these tests results with different contexts but not any longer * FIx uninstall all commands * Fix the file rename * Improve logging messages * Add mode handling for aspnet * Add ASP NET Support * Add Generic -> Mode Specific Event Stream Class Hierarchy * [wip] create events for all 'modal' events * Dont hold a generic arg obj because it becomes too unwieldy * Fix some issues with the test and sdk extension * Add 'mode' to the acquire context This will allow API callers to set the mode to call aspnet without having to write a new endpoint call. We can default to runtime for when it wasnt provided that would be the old behavior. * Move 'installMode' into the acquire context This allows API callers to provide the mode, We remove it from the worker context to dedupe this and prevent 2x sources of truth. Now this is a bit weird because some API endpoints will take the mode even though the API endpoint is only for one mode. We will just ignore the mode for that. Eventually we can try to transition all of the related calls to a single endpoint based on 'mode' which would simplify API usage. * Code cleanup * De-Dupe Test Code * Add Requested Events to Republisher * Update InstallKey pattern to include ~aspnetcore This is a bit strange since - used to be for 'global' and ~ for architecture. There are only so many path safe characters to use, more importantly though we dont rely on the install key as the information for the install anymore, it is stored in the DotnetInstall object. ~ has logic in place to not account for a 'legacy' install, so ~ with aspnet (which would not have existed before arch was added) is also a bet that will work with pre-existing logic. * fix build issues * Add ASP.NET Directory Provider * Only Report Total Success if Path exists The path can be undefined if an error throws so its not a success * Add ASP.NET API to sample extension * Resolve Asp Net Runtime versions as Runtime versions * Fix mistake on test * Fix bug with install script param * add source-map-support to allow build in CI this got removed and passed earlier somehow * respond to linter * add source map support * Respond to linter * Add test for specific telemetry messages * 2.0.7 branding * Prevent circular import * rewrite completion event so we can test the modaleventrepublisher * fix linter issue * Revert new test since the object is not mockable * Get rid of check for event that cannot be published via mocks * Fix bug where logging was not up to date to prevent i/o costs the file is dumped at the end of error handling, but this means other events past error handling dont get added to the log. This fixes this. * respond to pr feedback
- Loading branch information