File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/libcloud/loadbalancer/drivers/__pycache__/cloudstack.cpython-310.pyc
Back
o ;j � @ sZ d dl mZ d dlmZ d dlmZmZmZmZm Z d dl mZmZ G dd� dee�Z dS )� )�reverse_dict)�CloudStackDriverMixIn)�DEFAULT_ALGORITHM�Driver�Member� Algorithm�LoadBalancer)�State�Providerc s� e Zd ZdZdZdZdZejZ e je jd�Z ee �ZdejiZ d!� fd d � Zdd� Zd d� Zdd� Zddeddddfdd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Z� ZS )"�CloudStackLBDriverz%Driver for CloudStack load balancers.Z cloudstack_lbZ CloudStackzhttp://cloudstack.org/)Z roundrobinZ leastconnZActiveNTc sn |r|n| j }|r|n| j}|dur|| _|dur|| _ | jtjkr*|r&|s*td��t� j|||||d� dS )z5 @inherits: :class:`Driver.__init__` Nz]When instantiating CloudStack driver directly you also need to provide host and path argument)�key�secret�secure�host�port)r �path�typer � CLOUDSTACK� Exception�super�__init__) �selfr r r r r r �args�kwargs�� __class__� �\/opt/saltstack/salt/lib/python3.10/site-packages/libcloud/loadbalancer/drivers/cloudstack.pyr ( s �zCloudStackLBDriver.__init__c C s dgS )zp We don't actually have any protocol awareness beyond TCP. :rtype: ``list`` of ``str`` Ztcpr �r r r r �list_protocolsG s z!CloudStackLBDriver.list_protocolsc s, � j ddd�}|�dg �}� fdd�|D �S )N�listLoadBalancerRules�GET��command�method�loadbalancerrulec s g | ]}� � |��qS r )�_to_balancer)�.0�balancerr r r � <listcomp>R s z5CloudStackLBDriver.list_balancers.<locals>.<listcomp>)� _sync_request�get)r Z balancersr r r �list_balancersO s z!CloudStackLBDriver.list_balancersc C sB | j dd|idd�}|�dg �}|stdt|� ��| �|d �S )Nr �idr! �r# �paramsr$ r% zno such load balancer: r )r* r+ r �strr&