예제 #1
0
    def delete(self):
        if self.values.get('apikey_id', False) is False:
            raise ClientException(400, "apikey_id is not set")

        r = self.client.delete("/apikeys/" + str(self.values["apikey_id"]))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
예제 #2
0
    def delete(self):
        # make sure we have a group_id set
        if self.values.get('group_id', False) is False:
            raise ClientException(400, "group_id is not set")

        r = self.client.delete("/groups/" + str(self.values["group_id"]))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
예제 #3
0
    def delete(self):
        # make sure we have a record_id set
        if self.values.get('record_id', False) is False:
            raise ClientException(400, "record_id is not set")

        r = self.client.delete("/default_records/" +
                               str(self.values["record_id"]))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
예제 #4
0
    def delete(self):
        # make sure we have a prefix_id set
        if self.values.get('prefix_id', False) is False:
            raise ClientException(400, "prefix_id is not set")

        r = self.client.delete(
            "/location_prefixes/" + str(self.values["prefix_id"])
        )
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
예제 #5
0
    def edit(self, is_admin):
        if self.values.get('member_id', False) is False:
            raise ClientException(400, "member_id is not set")
        if self.values.get('is_admin', False) is False:
            raise ClientException(400, "is_admin is not set")

        r = self.client.put(
            "/groupmembers/" + str(self.values["member_id"]),
            data={'is_admin': is_admin}
        )
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
예제 #6
0
    def edit(self, data):
        if self.values.get('apikey_id', False) is False:
            raise ClientException(400, "apikey_id is not set")

        r = self.client.put("/apikeys/" + str(self.values["apikey_id"]),
                            data=data)
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["apikey"]

        return self
예제 #7
0
    def __call__(self):
        r = self.client.get("/release_version")
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        return decoded['release_version']
예제 #8
0
    def __call__(self, format="tinydns", filter=None):
        # filter will be supported later
        r = self.client.get("/export/" + format)
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        return r.content
예제 #9
0
    def __call__(self, prefix_id):
        r = self.client.get("/location_prefixes/" + str(prefix_id))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["location_prefix"]

        return self
예제 #10
0
    def __call__(self, domain_id):
        r = self.client.get("/domains/" + str(domain_id))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["domain"]

        return self
예제 #11
0
    def create(self, data):
        r = self.client.post("/locations", data=data)
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = Location(self.client)
        m.values = decoded["location"]

        return m
예제 #12
0
    def __call__(self, group_id):
        r = self.client.get("/groups/" + str(group_id))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["group"]

        return self
예제 #13
0
    def __call__(self, apikey_id):
        r = self.client.get("/apikeys/" + str(apikey_id))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["apikey"]

        return self
예제 #14
0
    def create(self, data):
        r = self.client.post("/default_records", data=data)
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = DefaultRecord(self.client)
        m.values = decoded["default_record"]

        return m
예제 #15
0
    def create(self, data):
        r = self.client.post("/apikeys", data=data)
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = ApiKey(self.client)
        m.values = decoded["apikey"]

        return m
예제 #16
0
    def __call__(self, record_id):
        r = self.client.get("/records/" + str(record_id))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["record"]

        return self
예제 #17
0
    def create(self, name):
        r = self.client.post("/groups", data={'name': name})
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        g = Group(self.client)
        g.values = decoded["group"]

        return g
예제 #18
0
    def create_default_soa(self, domain_id):
        r = self.client.post(
            "/domains/" + domain_id + "/create_default_soa"
        )
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = Record(self.client)
        m.values = decoded["record"]

        return m
예제 #19
0
    def edit(self, data):
        r = self.client.put("/default_records/" +
                            str(self.values["record_id"]),
                            data=data)
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = DefaultRecord(self.client)
        m.values = decoded["default_record"]

        return m
예제 #20
0
    def edit(self, owner_id=None, status=None):
        if self.values.get('domain_id', False) is False:
            raise ClientException(400, "domain_id is not set")

        data = {}
        if owner_id is not None:
            data["owner_id"] = owner_id
        if status is not None:
            data["status"] = status

        r = self.client.put(
            "/domains/" + str(self.values["domain_id"]),
            data=data
        )
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        self.values = decoded["domain"]

        return self
예제 #21
0
    def edit(self, data):
        r = self.client.put(
            "/location_prefixes/" + str(self.values["prefix_id"]),
            data=data
        )
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = LocationPrefix(self.client)
        m.values = decoded["location_prefix"]

        return m
예제 #22
0
    def __call__(self):
        r = self.client.get("/locations")
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        locations = []
        for location in decoded["locations"]:
            l = Location(self.client)
            l.values = location
            locations.append(l)

        return locations
예제 #23
0
    def __call__(self, group_id, filter=None):
        # filter will be supported later
        r = self.client.get("/groupmembers?group_id=" + str(group_id))
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        members = []
        for member in decoded["groupmembers"]:
            m = GroupMember(self.client)
            m.values = member
            members.append(m)

        return members
예제 #24
0
    def __call__(self, filter=None):
        # filter will be supported later
        r = self.client.get("/default_records")
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        records = []
        for record in decoded["default_records"]:
            r = DefaultRecord(self.client)
            r.values = record
            records.append(r)

        return records
예제 #25
0
    def __call__(self, filter=None):
        # filter will be supported later
        r = self.client.get("/groups")
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        groups = []
        for group in decoded["groups"]:
            g = Group(self.client)
            g.values = group
            groups.append(g)

        return groups
예제 #26
0
    def __call__(self, location_id):
        query_params = {"location_id": location_id}

        r = self.client.get("/location_prefixes", query_params)
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        location_prefixes = []
        for prefix in decoded["location_prefixes"]:
            r = LocationPrefix(self.client)
            r.values = prefix
            location_prefixes.append(r)

        return location_prefixes
예제 #27
0
    def create(self, group_id, account_id, is_admin=0):
        r = self.client.post(
            "/groupmembers",
            data={
                'group_id': group_id,
                'account_id': account_id,
                'is_admin': is_admin
            }
        )
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        g = GroupMember(self.client)
        g.values = decoded["groupmember"]

        return g
예제 #28
0
    def __call__(self, account_ids=None):
        if account_ids is not None:
            r = self.client.get("/apikeys",
                                params={"account_ids": account_ids})
        else:
            r = self.client.get("/apikeys")
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        apikeys = []
        for apikey in decoded["apikeys"]:
            a = ApiKey(self.client)
            a.values = apikey
            apikeys.append(a)

        return apikeys
예제 #29
0
    def __call__(self, search, filter=None):
        # filter will be supported later
        query_params = {}
        if search:
            query_params["search"] = search

        r = self.client.get("/accounts", params=query_params)
        if r.status_code != 200:
            raise ClientException(r.status_code, r.content)

        decoded = r.json()
        accounts = []
        for account in decoded["accounts"]:
            a = Account(self.client)
            a.values = account
            accounts.append(a)

        return accounts
예제 #30
0
    def create(self, domain, skipSoa=False, skipDefaultRecords=False,
               moveCollidingRecords=False):
        data = {'domain': domain}
        if skipSoa is not False:
            data['skip_soa'] = 1
        if skipDefaultRecords is not False:
            data['skip_default_records'] = 1
        if moveCollidingRecords is not False:
            data['move_colliding_records'] = 1

        r = self.client.post("/domains", data=data)
        if r.status_code != 201:
            raise ClientException(r.status_code, r.content)
        decoded = r.json()
        m = Domain(self.client)
        m.values = decoded["domain"]

        return m