File: zone_list_paging.py

package info (click to toggle)
python-designateclient 6.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 796 kB
  • sloc: python: 4,496; makefile: 26; sh: 2
file content (38 lines) | stat: -rw-r--r-- 868 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import logging
import os

from keystoneauth1.identity import generic
from keystoneauth1 import session as keystone_session

from designateclient.v2 import client

logging.basicConfig(level='DEBUG')

auth = generic.Password(
    auth_url=os.environ.get('OS_AUTH_URL'),
    username=os.environ.get('OS_USERNAME'),
    password=os.environ.get('OS_PASSWORD'),
    project_name=os.environ.get('OS_PROJECT_NAME'),
    project_domain_id='default',
    user_domain_id='default')

session = keystone_session.Session(auth=auth, timeout=10)

client = client.Client(session=session)


pages = []

fetch = 1
while fetch:
    kw = {'limit': 3}
    if pages:
        # marker is the latest page with the last item.
        kw['marker'] = pages[-1][-1]['id']
    page = client.zones.list(**kw)
    if not page:
        break
    pages.append(page)

for page in pages:
    print(page)