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

feat: develop basic maintenance functionality #17

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

lrottach
Copy link
Owner

Implement the following features:

  • Detection and validation of the required Azure Chronos Tags
  • Implement logic to stop virtual machines on a schedule
  • Implement logic to deallocate virtual machines on a schedule

GitHub Issues:

Modified VirtualMachineEntity.cs to now delete a virtual machine entity if it is determined to be not eligible for scheduling. This change ensures that our system is not keeping unnecessary data, hence improving efficiency and resource usage.
@lrottach lrottach added the feature New feature or request label Aug 10, 2023
@lrottach lrottach added this to the v1.0.0-pre-release milestone Aug 10, 2023
@lrottach lrottach self-assigned this Aug 10, 2023
@github-actions
Copy link

github-actions bot commented Aug 10, 2023

Qodana for .NET

5 new problems were found

Inspection name Severity Problems
Redundant using directive 🔶 Warning 1
Use preferred style for trailing comma before new line in multiline lists ◽️ Notice 2
Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used ◽️ Notice 1
Invert 'if' statement to reduce nesting ◽️ Notice 1

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Contact Qodana team

Contact us at [email protected]

Added a new method for deallocating Azure virtual machines in AzureComputeService.cs and IAzureComputeService.cs for efficient resource management. This commits allows the user to deallocate a virtual machine when it is no longer needed, helping to manage Azure resource usage more efficiently.
This commit introduces a method to start the Azure virtual machine asynchronously. The method 'StartAzureVirtualMachineAsync' was added in both the IAzureComputeService interface and the AzureComputeService class. This enhancement was needed to provide support for starting VMs without blocking the main application thread.
In the AzureComputeService.cs file, comments were added to detailedly explain the role and interactions of the different functions in managing Azure Virtual Machines. These comments elucidate how each function works and what parameters they require, which will improve code understanding and ease of use for developers.
Added functionality for recognizing specific Azure Chronos tags and validating if they are present in the virtual machine. The tags we are looking for are "AzChronos_Exclude", "AzChronos_Deallocate", and "AzChronosStartup". These tags will be used to determine if a VM is eligible for scheduling.

Further, code to retrieve and process schedule from the VM's tags was implemented and a new model 'AzureChronosSchedule' was added to contain this schedule information.

Also, a redundant method remark and example in AzureComputeService.cs has been removed to improve code readability.

This modification allows us to have a clearer understanding of the state and scheduling of each VM and presents a way to govern VM scheduling directly through the VM's tags.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
1 participant