Spaces:
Sleeping
Sleeping
| import logging | |
| from typing import List | |
| # Internal imports for building Tool models | |
| from models import Tool | |
| # Logger instance for the tools module | |
| logger = logging.getLogger(__name__) | |
| def build_atomic_tools() -> List[Tool]: | |
| """ | |
| Returns a fresh list of the 6 fundamental atomic DevOps tools available | |
| in the environment. Each tool is represented as a Tool Pydantic model. | |
| """ | |
| logger.info("Building fresh atomic tools list.") | |
| # --------------------------------------------------------- | |
| # 1. Deploy Tool | |
| # --------------------------------------------------------- | |
| # Description: Deploys a specified service | |
| # Parameters: service_name (string), version (string) | |
| tool_deploy = Tool( | |
| name="deploy", | |
| description="Deploys a specified service or application version to a target environment.", | |
| ) | |
| # --------------------------------------------------------- | |
| # 2. Healthcheck Tool | |
| # --------------------------------------------------------- | |
| # Description: Checks if a service is healthy | |
| # Parameters: service_name (string) | |
| tool_healthcheck = Tool( | |
| name="healthcheck", | |
| description="Checks the current health status of a running service.", | |
| ) | |
| # --------------------------------------------------------- | |
| # 3. Notify Tool | |
| # --------------------------------------------------------- | |
| # Description: Sends an alert or notification | |
| # Parameters: channel (string), message (string) | |
| tool_notify = Tool( | |
| name="notify", | |
| description="Sends a notification to a specific channel (e.g., Slack, Email) regarding system status.", | |
| ) | |
| # --------------------------------------------------------- | |
| # 4. Rollback Tool | |
| # --------------------------------------------------------- | |
| # Description: Reverts a deployment to its previous stable state | |
| # Parameters: service_name (string) | |
| tool_rollback = Tool( | |
| name="rollback", | |
| description="Reverts a deployed service to the previous stable version if something goes wrong.", | |
| ) | |
| # --------------------------------------------------------- | |
| # 5. Scale Tool | |
| # --------------------------------------------------------- | |
| # Description: Adjusts the replica count for a service | |
| # Parameters: service_name (string), replicas (integer) | |
| tool_scale = Tool( | |
| name="scale", | |
| description="Adjusts the number of running replicas for a given service.", | |
| ) | |
| # --------------------------------------------------------- | |
| # 6. Restart Tool | |
| # --------------------------------------------------------- | |
| # Description: Bounces a service | |
| # Parameters: service_name (string) | |
| tool_restart = Tool( | |
| name="restart", | |
| description="Performs a rolling restart on a specified service.", | |
| ) | |
| # Collection list holding all the instantiated Tool models | |
| tools_list = [ | |
| tool_deploy, | |
| tool_healthcheck, | |
| tool_notify, | |
| tool_rollback, | |
| tool_scale, | |
| tool_restart, | |
| ] | |
| logger.debug(f"Successfully constructed {len(tools_list)} tools.") | |
| return tools_list | |