## Summary of the Pull Request
- **Breaking** (but as far as I know this feature is not yet in use): rename the `extra_container` to `extra_setup_container`.
- **Add**: the `extra_output_container`, which pushes its outputs continually.
- We may also want a type of container which both pushes & pulls? See discussion below.
- **Improved**: if `onefuzz-task` fails upon launch, we will log its output for diagnosis (might close#3113)
---
Some thoughts for the future:
We might want to redesign the containers so that we have something like the following which is passed to the agent, and the agent doesn't need to know the specifics of the containers supplied:
```jsonc
{
// ...
"containers": {
"extra_setup_dir": {
"mode": "pull",
"container_name": "yyy",
},
"extra_output_dir": {
"mode": "push",
"continuous": true, // keep pushing while job is running
"container_name": "xxx"
}
}
}
```
At the moment the agent needs to know what each container is for, for each task type. A more generic and flexible method might be simpler overall.
### Context
The original `libfuzzer dotnet` job template was a proof of concept that demonstrated how the `libfuzzer_fuzz` task could be used to express fuzzing via the (pre SharpFuzz 2.0) `libfuzzer-dotnet` tool. It (and its associated integration test) used a harness that linked an older version of SharpFuzz, and which is incompatible with LibFuzzerDotnetLoader (which requires SharpFuzz 2.0 or greater).
### Changes
- Rename `libfuzzer dotnet_dll` job template to `libfuzzer dotnet`, making it the _only_ `libfuzzer-dotnet` template
- Remove integration tests and docs for the old proof-of-concept job type
### Notice
This is a breaking change.
Closes#2874.
* Add docker file to the runtime tools
* fixes
* bug fixes
* more bug fixes and added doc
* don;t overwrite the RUST_LOG env var
* integration test for unmanaged nodes
* add unamanged parameters to launch()
* add ing object_id
* more bug fixes
* bug fixes
* chmod on the linux files in docker
* format
* cleanup merge
* added test_unmanaged command
* cleanup
* use a single image for the docker compose
remove images after the test
* docs and formatting
* format
* format
* format and bug fixes
* using windows server
* fix linux container
make the base image a paramter on windows
use the windows server base image on windows server
* format
* bug fix
* more fixes
* allow reboot
* more fixes
* added more logging around the service principal creation
* format
* more logging
* change restart policy
* fix multi tenant domain
* more fixes
* exit instead of reboot when running inside docker
* remove comment
* build fix
* try_exist instead of exist
* save the docker logs
* bug_fix
* adding timeout
* fix timeout logic
* adding a build profile
* make all agent depend on the first one
* remove profile
* another fix
* restart agent 1
* Update docs/unmnaged-nodes.md
Co-authored-by: Teo Voinea <58236992+tevoinea@users.noreply.github.com>
---------
Co-authored-by: Teo Voinea <58236992+tevoinea@users.noreply.github.com>
Closes#1366 and incidentally closes#1266.
Requires using a not-yet-merged modification to the latest version of `appinsights-rs` to remove the `time` feature from the `chrono` dependency (https://github.com/dmolokanov/appinsights-rs/pull/280).
There are changes to use the new (tokio-based) version of `appinsights-rs`, e.g., made `set_appinsights_clients` async to ensure it is always called from an async context, since the constructor for appinsights now invokes `Tokio::spawn`.
* porting the proxy state machine
* use async version
* is used
* rename base state to state
* fix auth
fix extension path
* ignore log info in check logs
* Release 5.1.0
* Update CHANGELOG.md
Co-authored-by: Joe Ranweiler <joe@lemma.co>
* Update CHANGELOG.md
Co-authored-by: Joe Ranweiler <joe@lemma.co>
* Update CHANGELOG.md
Co-authored-by: Joe Ranweiler <joe@lemma.co>
* Prevent deletion of the repro VM on failure for debugging.
Co-authored-by: Joe Ranweiler <joe@lemma.co>
Refactoring check-pr.py to extract the logic of downloading the binaries
refactoring integration-tets.py to split the logic of setup, launch, check_result and cleanup
In practice, Application Insights can take up to 3 minutes before something sent to it is available via KQL.
This PR logs a start and stop marker such that the integration tests only search for logs during the integration tests. This reduces the complexity when using the integration tests during the development process.
Note: this migrated the new functionality from #356 into the latest integration test tools.