Completed
Pull Request — master (#564)
by
unknown
02:28
created

SuggestNextIp   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 28
rs 10
c 1
b 0
f 1
wmc 7

1 Method

Rating   Name   Duplication   Size   Complexity  
C run() 0 27 7
1
from st2actions.runners.pythonrunner import Action
2
import requests
3
4
5
class SuggestNextIp(Action):
6
    def run(self, subnet_id=None, subnet=None, name=None, vrf_group_id=None, vrf_group=None,
7
            reserved_ip=None):
8
        d42_server = self.config.get('d42_server', None)
9
        if not d42_server:
10
            raise ValueError('"d42_server" config value is required')
11
12
        d42_username = self.config.get('d42_username', None)
13
        if not d42_username:
14
            raise ValueError('"d42_username" config value is required')
15
16
        d42_password = self.config.get('d42_password', None)
17
        if not d42_password:
18
            raise ValueError('"d42_password" config value is required')
19
20
        if not subnet_id and not subnet and not name:
21
            raise ValueError('"subnet_id" or "subnet" or "name" value is required')
22
23
        response = requests.get("http://%s%s" % (d42_server, "/api/1.0/suggest_ip/"), params={
24
            "subnet_id": subnet_id,
25
            "subnet": subnet,
26
            "name": name,
27
            "vrf_group_id": vrf_group_id,
28
            "vrf_group": vrf_group,
29
            "reserved_ip": reserved_ip,
30
        }, auth=(d42_username, d42_password))
31
32
        return response.json()["ip"]
33