* Only scale down when scale set in shutdown state
* Bug fix + explaing the logic a bit better
* Fix some bugs
* linting and bug fixes
* lint
* Actually now
* I'm not writing sql
* last try
* It's working
* lint
* Small docs update
Enable the .NET functions for the agent by sending the agent the URI for the `-net` service.
Also fix some things causing failures when using the .NET functions (`CouldShrinkScaleset` was not implemented).
Improve error handling around table serialization/deserialization, fix an issue with int64/long mismatch between Python & C# code.
----
For `check-pr` testing:
1. There's a new parameter `enable_dotnet` which maps directly to the `--enable_dotnet` switch on `deploy.py`.
2. If you put `agent` there, all the `agent_*` functions will be enabled for .NET and disabled for Python.
3. If `agent_can_schedule` is disabled on the Python side, it will automatically tell the agent to use the .NET functions.
So to test the .NET agent functions, do a `check-pr` run with `enable_dotnet` set to `agent` and it should all work.
The agent build takes most of the CI runtime, so improve it by only rebuilding if the pre-reqs or something inside `src/agent` changes.
We will always skip the cache for builds on tags and from the `main` branch, so that version is stamped correctly there.
* checkpoint
* some more progress
* more progress
* More progress
* Now it's time to test it
* It works locally 🎉
* Attempting clean build
* fmt
* temporarily stub out macos
* missed a few
* please be the last one
* .
* .
* .
* noop change to unstuck actions
* .
* .
* Fix setup script
* Some fixes
* It works except for a race condition -- use a directory watcher to fix it
* It works end to end!
* Execute the commands using tokio's structs and timeout mechanism
* It works.... for real this time
* Undo timer changes
* Cleanup
* 🧹
* Fix import
* .
* PR comments
* Fix clippy
* Clippy whyyy
* Only check dotnet path once
* fmt
* Fix a couple more comments
- Remove the ability to create or execute a `libfuzzer_coverage` task
- Preserve the enum variant in `onefuzztypes` to prevent errors when deserializing old data
- Remove doc references to `libfuzzer_coverage`
* repalce queue_node_heatbeat
* Changing the name of the input queue
* [testing] hard code deployment of -net function
* explicitly disable other C# functions
* Delete nodes when they're done
* Missed a file
* Load node disposal strategy from env var
* Lint
* Fix subtle bug
* Deleting doesn't work, will 'decomission' nodes once they complete work
* Missed a file
* Remove logging line
* Setting the service side of the log management
- a log is created or reused when e create a job
- when scheduling the task we send the log location to the agent
The expected log structure looks liek
{fuzzContainer}/logs/{job_id}/{task_id}/{machine_id}/1.log
* regenerate doces
* including job_id in the container name
* regenerating docs
removing bad doc file
* Abstract node disposal strategy
* Cleanup + lint
* Handle possibile scalesets being in resize state
* Setting the size is still exposed via CLI, we don't want to break that functionality
* PR comments
* Initial progress to adding a auto scale resource
* auto scale API is ready
* When creating a scaleset, add an autoscale resource to it as well
* Auto scale is correctly linked with scaleset
* 🧹
* Lint
* Cleaned up
* draft attempt at adding scaling protection
* Service can now control scaling protection policy on VM instances
* Improve logging a bit
* draft attempt at adding scaling protection
* Service can now control scaling protection policy on VM instances
* Improve logging a bit
* Error message was missing info
* Linter
* Don't schedule work if we can't protect the node
* Last of the linter changes
* Fixing VMSS Re-Image 7-Day Timer
* Updating use of TimeStamp to created_at
* Renaming.
* Updating field name.
* Removing test chagne.
* Updating query to work if init_at entry does not exist yet.
* Changing timer for testing.
* Adding field comment.
* Formatting models.py
* Fixing where save is called.
* Adidng logging.
* Removing logging. Ready for merge.
* Update src/pytypes/onefuzztypes/models.py
Co-authored-by: Joe Ranweiler <joe@lemma.co>
* Formatting.
* Updating datetime.
* Testing after datetime change.
* Removing test.
Co-authored-by: nharper285 <nharper285@gmail.com>
Co-authored-by: Joe Ranweiler <joe@lemma.co>
* Adding new instanceconfig value for tags.
* Removing bad import.
* Updating where tags are generated.
* Updating tag generation for scalesets.
* Updating tag generation in vm.
* Updating vm tag generation.
* Updating vm tag generation.
* Fixing extension.
* Fixing import.
* Fixing typing.
* Fixing get_vm calls.
* Fixing calls to get_vm.
* Fixing optional tag.
* only reimage nodes that are in the done state
* ignore done message when the node is deleted
* log warning instead of error when receiving a heartbeat from a deleted node