@@ -67,15 +67,70 @@ status of the zone.
6767
6868 def main ():
6969 cf = CloudFlare.CloudFlare()
70- zones = cf.zones.get(params = { ' per_page ' : 50 } )
70+ zones = cf.zones.get()
7171 for zone in zones:
72+ zone_id = zone[' id' ]
7273 zone_name = zone[' name' ]
74+ print zone_id, zone_name
75+
76+ if __name__ == ' __main__' :
77+ main()
78+
79+ This example works when there are less than 50 zones (50 is the default
80+ number of values returned from a query like this).
81+
82+ Now lets expand on that and add code to show the IPv6 and SSL status of
83+ the zones. Lets also query 100 zones.
84+
85+ .. code :: python
86+
87+ import CloudFlare
88+
89+ def main ():
90+ cf = CloudFlare.CloudFlare()
91+ zones = cf.zones.get(params = {' per_page' :100 })
92+ for zone in zones:
7393 zone_id = zone[' id' ]
74- settings_ipv6 = cf.zones.settings.ipv6.get(zone_id)
75- ipv6_status = settings_ipv6[ ' value ' ]
94+ zone_name = zone[ ' name ' ]
95+
7696 settings_ssl = cf.zones.settings.ssl.get(zone_id)
7797 ssl_status = settings_ssl[' value' ]
78- print zone_id, ssl_status, ipv6_status, zone_name
98+
99+ settings_ipv6 = cf.zones.settings.ipv6.get(zone_id)
100+ ipv6_status = settings_ipv6[' value' ]
101+
102+ print zone_id, zone_name, ssl_status, ipv6_status
103+
104+ if __name__ == ' __main__' :
105+ main()
106+
107+ In order to query more than a single page of zones, we would have to use
108+ the raw mode (decribed more below). We can loop over many get calls and
109+ pass the page paramater to facilitate the paging.
110+
111+ Raw mode is only needed when a get request has the possibility of
112+ returning many items.
113+
114+ .. code :: python
115+
116+ import CloudFlare
117+
118+ def main ():
119+ cf = CloudFlare.CloudFlare(raw = True )
120+ page_number = 0
121+ while True :
122+ raw_results = cf.zones.get(params = {' per_page' :5 ,' page' :page_number})
123+ zones = raw_results[' result' ]
124+
125+ for zone in zones:
126+ zone_id = zone[' id' ]
127+ zone_name = zone[' name' ]
128+ print zone_id, zone_name
129+
130+ total_pages = raw_results[' result_info' ][' total_pages' ]
131+ page_number += 1
132+ if page_number == total_pages:
133+ break
79134
80135 if __name__ == ' __main__' :
81136 main()
0 commit comments