Completed
Pull Request — master (#346)
by Anthony
04:32
created

CreateVMAction.run()   B

Complexity

Conditions 3

Size

Total Lines 28

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 3
dl 0
loc 28
rs 8.8571
1
from lib.action import PyraxBaseAction
2
3
__all__ = [
4
    'AddNodeToLoadBalancerAction'
5
]
6
7
8
class AddNodeToLoadBalancerAction(PyraxBaseAction):
9
    def run(self, loadbalancer_id, ip, port):
10
        clb = self.pyrax.cloud_loadbalancers
11
        node = clb.Node(address=ip, port=port, condition="ENABLED")
12
13
        self.logger.info('Adding node to loadbalancer...')
14
15
        load_balancer = clb.get(loadbalancer_id)
16
        load_balancer.add_nodes(node)
17
18
        # Block until added
19
        self.pyrax.utils.wait_until(load_balancer, "status", "ACTIVE",
20
                                    interval=1, attempts=30, verbose=True)
21
22
        self.logger.info('Successfully added node to loadbalancer: %s' % node)
23
24
        return node
25