from .base_agent import BaseAgent
from ..aws_connector import AWSConnector

class AutoscalingAgent(BaseAgent):
    """
    An agent specialized in handling AWS Auto Scaling tasks.
    """

    def execute(self, command: str, **kwargs):
        """
        Executes a given command related to Auto Scaling.
        """
        if command == 'list_autoscaling_groups':
            return self._list_autoscaling_groups(**kwargs)
        else:
            raise NotImplementedError(f"Command '{command}' is not supported by AutoscalingAgent.")

    def _list_autoscaling_groups(self, region: str):
        """Lists all Auto Scaling groups in a specified region."""
        print(f"AutoscalingAgent: Listing Auto Scaling groups in region {region}...")
        try:
            asg_client = AWSConnector.get_client('autoscaling', region_name=region)
            response = asg_client.describe_auto_scaling_groups()
            asg_names = [asg['AutoScalingGroupName'] for asg in response['AutoScalingGroups']]
            return {"status": "success", "autoscaling_groups": asg_names}
        except Exception as e:
            print(f"Error listing Auto Scaling groups: {e}")
            return {"status": "error", "message": str(e)}
