コード例 #1
0
ファイル: elb.py プロジェクト: TamerB/simple-paas
    def create_balancer(self, name, port, protocol, algorithm, members,
                        ex_members_availability_zones=None):
        if ex_members_availability_zones is None:
            ex_members_availability_zones = ['a']

        params = {
            'Action': 'CreateLoadBalancer',
            'LoadBalancerName': name,
            'Listeners.member.1.InstancePort': str(port),
            'Listeners.member.1.InstanceProtocol': protocol.upper(),
            'Listeners.member.1.LoadBalancerPort': str(port),
            'Listeners.member.1.Protocol': protocol.upper(),
        }

        for i, z in enumerate(ex_members_availability_zones):
            zone = ''.join((self.region, z))
            params['AvailabilityZones.member.%d' % (i + 1)] = zone

        data = self.connection.request(ROOT, params=params).object

        balancer = LoadBalancer(
            id=name,
            name=name,
            state=State.PENDING,
            ip=findtext(element=data, xpath='DNSName', namespace=NS),
            port=port,
            driver=self.connection.driver
        )
        balancer._members = []
        return balancer
コード例 #2
0
    def _to_balancer(self, el):
        name = findtext(element=el, xpath='LoadBalancerName', namespace=NS)
        id = findtext(element=el, xpath='LoadBalancerArn', namespace=NS)
        dns_name = findtext(el, xpath='DNSName', namespace=NS)

        balancer = LoadBalancer(id=id,
                                name=name,
                                state=State.UNKNOWN,
                                ip=dns_name,
                                port=None,
                                driver=self.connection.driver)

        extra = {
            'listeners': self._ex_get_balancer_listeners(balancer),
            'target_groups': self._ex_get_balancer_target_groups(balancer),
            'tags': self._ex_get_balancer_tags(balancer)
        }
        balancer.extra = extra
        if len(extra['listeners']) > 0:
            balancer.port = extra['listeners'][0]['port']
        else:
            balancer.port = None
        balancer._members = self._ex_get_balancer_memebers(balancer)

        return balancer
コード例 #3
0
    def create_balancer(self,
                        name,
                        port,
                        protocol,
                        algorithm,
                        members,
                        ex_members_availability_zones=None):
        if ex_members_availability_zones is None:
            ex_members_availability_zones = ['a']

        params = {
            'Action': 'CreateLoadBalancer',
            'LoadBalancerName': name,
            'Listeners.member.1.InstancePort': str(port),
            'Listeners.member.1.InstanceProtocol': protocol.upper(),
            'Listeners.member.1.LoadBalancerPort': str(port),
            'Listeners.member.1.Protocol': protocol.upper(),
        }

        for i, z in enumerate(ex_members_availability_zones):
            zone = ''.join((self.region, z))
            params['AvailabilityZones.member.%d' % (i + 1)] = zone

        data = self.connection.request(ROOT, params=params).object

        balancer = LoadBalancer(id=name,
                                name=name,
                                state=State.PENDING,
                                ip=findtext(element=data,
                                            xpath='DNSName',
                                            namespace=NS),
                                port=port,
                                driver=self.connection.driver)
        balancer._members = []
        return balancer
コード例 #4
0
ファイル: elb.py プロジェクト: kevin-zhangsen/badam
    def create_balancer(self, name, port, protocol, algorithm, members, ex_members_availability_zones=None):
        if ex_members_availability_zones is None:
            ex_members_availability_zones = ["a"]

        params = {
            "Action": "CreateLoadBalancer",
            "LoadBalancerName": name,
            "Listeners.member.1.InstancePort": str(port),
            "Listeners.member.1.InstanceProtocol": protocol.upper(),
            "Listeners.member.1.LoadBalancerPort": str(port),
            "Listeners.member.1.Protocol": protocol.upper(),
        }

        for i, z in enumerate(ex_members_availability_zones):
            zone = "".join((self.region, z))
            params["AvailabilityZones.member.%d" % (i + 1)] = zone

        data = self.connection.request(ROOT, params=params).object

        balancer = LoadBalancer(
            id=name,
            name=name,
            state=State.PENDING,
            ip=findtext(element=data, xpath="DNSName", namespace=NS),
            port=port,
            driver=self.connection.driver,
        )
        balancer._members = []
        return balancer
コード例 #5
0
ファイル: alb.py プロジェクト: SecurityCompass/libcloud
    def _to_balancer(self, el):
        name = findtext(element=el, xpath='LoadBalancerName', namespace=NS)
        id = findtext(element=el, xpath='LoadBalancerArn', namespace=NS)
        dns_name = findtext(el, xpath='DNSName', namespace=NS)

        balancer = LoadBalancer(
            id=id,
            name=name,
            state=State.UNKNOWN,
            ip=dns_name,
            port=None,
            driver=self.connection.driver
        )

        extra = {
            'listeners': self._ex_get_balancer_listeners(balancer),
            'target_groups': self._ex_get_balancer_target_groups(balancer),
            'tags': self._ex_get_balancer_tags(balancer)
        }
        balancer.extra = extra
        if len(extra['listeners']) > 0:
            balancer.port = extra['listeners'][0]['port']
        else:
            balancer.port = None
        balancer._members = self._ex_get_balancer_memebers(balancer)

        return balancer
コード例 #6
0
ファイル: elb.py プロジェクト: kevin-zhangsen/badam
    def _to_balancer(self, el):
        name = findtext(element=el, xpath="LoadBalancerName", namespace=NS)
        dns_name = findtext(el, xpath="DNSName", namespace=NS)
        port = findtext(el, xpath="LoadBalancerPort", namespace=NS)

        balancer = LoadBalancer(
            id=name, name=name, state=State.UNKNOWN, ip=dns_name, port=port, driver=self.connection.driver
        )

        xpath = "Instances/member/InstanceId"
        members = findall(element=el, xpath=xpath, namespace=NS)
        balancer._members = []

        for m in members:
            balancer._members.append(Member(m.text, None, None, balancer=balancer))

        return balancer
コード例 #7
0
    def _to_balancer(self, el):
        name = findtext(element=el, xpath='LoadBalancerName', namespace=NS)
        dns_name = findtext(el, xpath='DNSName', namespace=NS)
        port = findtext(el, xpath='LoadBalancerPort', namespace=NS)

        balancer = LoadBalancer(id=name,
                                name=name,
                                state=State.UNKNOWN,
                                ip=dns_name,
                                port=port,
                                driver=self.connection.driver)

        xpath = 'Instances/member/InstanceId'
        members = findall(element=el, xpath=xpath, namespace=NS)
        balancer._members = []

        for m in members:
            balancer._members.append(
                Member(m.text, None, None, balancer=balancer))

        return balancer
コード例 #8
0
ファイル: elb.py プロジェクト: wandera/libcloud
    def create_balancer(
        self,
        name,
        port,
        protocol,
        algorithm,
        members,
        ex_members_availability_zones=None,
    ):
        if ex_members_availability_zones is None:
            ex_members_availability_zones = ["a"]

        params = {
            "Action": "CreateLoadBalancer",
            "LoadBalancerName": name,
            "Listeners.member.1.InstancePort": str(port),
            "Listeners.member.1.InstanceProtocol": protocol.upper(),
            "Listeners.member.1.LoadBalancerPort": str(port),
            "Listeners.member.1.Protocol": protocol.upper(),
        }

        for i, z in enumerate(ex_members_availability_zones):
            zone = "".join((self.region, z))
            params["AvailabilityZones.member.%d" % (i + 1)] = zone

        data = self.connection.request(ROOT, params=params).object

        balancer = LoadBalancer(
            id=name,
            name=name,
            state=State.PENDING,
            ip=findtext(element=data, xpath="DNSName", namespace=NS),
            port=port,
            driver=self.connection.driver,
        )
        balancer._members = []
        return balancer