1111except ImportError :
1212 yaml = None
1313
14+ import converters
15+
1416sys .path .insert (0 , os .path .abspath ('..' ))
1517import CloudFlare
1618import CloudFlare .exceptions
1719
18- def convert_zones_to_identifier (cf , zone_name ):
19- """zone names to numbers"""
20- params = {'name' :zone_name , 'per_page' :1 }
21- try :
22- zones = cf .zones .get (params = params )
23- except CloudFlare .exceptions .CloudFlareAPIError as e :
24- exit ('cli4: %s - %d %s' % (zone_name , e , e ))
25- except Exception as e :
26- exit ('cli4: %s - %s' % (zone_name , e ))
27-
28- for zone in zones :
29- if zone_name == zone ['name' ]:
30- return zone ['id' ]
31-
32- exit ('cli4: %s - zone not found' % (zone_name ))
33-
34- def convert_dns_record_to_identifier (cf , zone_id , dns_name ):
35- """dns record names to numbers"""
36- # this can return an array of results as there can be more than one DNS entry for a name.
37- params = {'name' :dns_name }
38- try :
39- dns_records = cf .zones .dns_records .get (zone_id , params = params )
40- except CloudFlare .exceptions .CloudFlareAPIError as e :
41- exit ('cli4: %s - %d %s' % (dns_name , e , e ))
42- except Exception as e :
43- exit ('cli4: %s - %s' % (dns_name , e ))
44-
45- r = []
46- for dns_record in dns_records :
47- if dns_name == dns_record ['name' ]:
48- r .append (dns_record ['id' ])
49- if len (r ) > 0 :
50- return r
51-
52- exit ('cli4: %s - dns name not found' % (dns_name ))
53-
54- def convert_certificates_to_identifier (cf , certificate_name ):
55- """certificate names to numbers"""
56- try :
57- certificates = cf .certificates .get ()
58- except CloudFlare .exceptions .CloudFlareAPIError as e :
59- exit ('cli4: %s - %d %s' % (certificate_name , e , e ))
60- except Exception as e :
61- exit ('cli4: %s - %s' % (certificate_name , e ))
62-
63- for certificate in certificates :
64- if certificate_name in certificate ['hostnames' ]:
65- return certificate ['id' ]
66-
67- exit ('cli4: %s - no zone certificates found' % (certificate_name ))
68-
69- def convert_organizations_to_identifier (cf , organization_name ):
70- """organizations names to numbers"""
71- try :
72- organizations = cf .user .organizations .get ()
73- except CloudFlare .exceptions .CloudFlareAPIError as e :
74- exit ('cli4: %s - %d %s' % (organization_name , e , e ))
75- except Exception as e :
76- exit ('cli4: %s - %s' % (organization_name , e ))
77-
78- for organization in organizations :
79- if organization_name == organization ['name' ]:
80- return organization ['id' ]
81-
82- exit ('cli4: %s - no organizations found' % (organization_name ))
83-
84- def convert_invites_to_identifier (cf , invite_name ):
85- """invite names to numbers"""
86- try :
87- invites = cf .user .invites .get ()
88- except CloudFlare .exceptions .CloudFlareAPIError as e :
89- exit ('cli4: %s - %d %s' % (invite_name , e , e ))
90- except Exception as e :
91- exit ('cli4: %s - %s' % (invite_name , e ))
92-
93- for invite in invites :
94- if invite_name == invite ['organization_name' ]:
95- return invite ['id' ]
96-
97- exit ('cli4: %s - no invites found' % (invite_name ))
98-
99- def convert_virtual_dns_to_identifier (cf , virtual_dns_name ):
100- """virtual dns names to numbers"""
101- try :
102- virtual_dnss = cf .user .virtual_dns .get ()
103- except CloudFlare .exceptions .CloudFlareAPIError as e :
104- exit ('cli4: %s - %d %s\n ' % (virtual_dns_name , e , e ))
105- except Exception as e :
106- exit ('cli4: %s - %s\n ' % (virtual_dns_name , e ))
107-
108- for virtual_dns in virtual_dnss :
109- if virtual_dns_name == virtual_dns ['name' ]:
110- return virtual_dns ['id' ]
111-
112- exit ('cli4: %s - no virtual_dns found' % (virtual_dns_name ))
113-
114- def convert_load_balancers_pool_to_identifier (cf , pool_name ):
115- """load balancer pool names to numbers"""
116- try :
117- pools = cf .user .load_balancers .pools .get ()
118- except CloudFlare .exceptions .CloudFlareAPIError as e :
119- exit ('cli4: %s - %d %s' % (pool_name , e , e ))
120- except Exception as e :
121- exit ('cli4: %s - %s' % (pool_name , e ))
122-
123- for p in pools :
124- if pool_name == p ['description' ]:
125- return p ['id' ]
126-
127- exit ('cli4: %s - no pools found' % (pool_name ))
128-
12920def dump_commands (cf ):
13021 """dump a tree of all the known API commands"""
13122 w = cf .api_list ()
@@ -282,19 +173,19 @@ def cli4(args):
282173 identifier1 = element
283174 elif cmd [0 ] == 'certificates' :
284175 # identifier1 = convert_certificates_to_identifier(cf, element)
285- identifier1 = convert_zones_to_identifier (cf , element )
176+ identifier1 = converters . convert_zones_to_identifier (cf , element )
286177 elif cmd [0 ] == 'zones' :
287- identifier1 = convert_zones_to_identifier (cf , element )
178+ identifier1 = converters . convert_zones_to_identifier (cf , element )
288179 elif cmd [0 ] == 'organizations' :
289- identifier1 = convert_organizations_to_identifier (cf , element )
180+ identifier1 = converters . convert_organizations_to_identifier (cf , element )
290181 elif (cmd [0 ] == 'user' ) and (cmd [1 ] == 'organizations' ):
291- identifier1 = convert_organizations_to_identifier (cf , element )
182+ identifier1 = converters . convert_organizations_to_identifier (cf , element )
292183 elif (cmd [0 ] == 'user' ) and (cmd [1 ] == 'invites' ):
293- identifier1 = convert_invites_to_identifier (cf , element )
184+ identifier1 = converters . convert_invites_to_identifier (cf , element )
294185 elif (cmd [0 ] == 'user' ) and (cmd [1 ] == 'virtual_dns' ):
295- identifier1 = convert_virtual_dns_to_identifier (cf , element )
186+ identifier1 = converters . convert_virtual_dns_to_identifier (cf , element )
296187 elif (cmd [0 ] == 'user' ) and (cmd [1 ] == 'load_balancers' ) and (cmd [2 ] == 'pools' ):
297- identifier1 = convert_load_balancers_pool_to_identifier (cf , element )
188+ identifier1 = converters . convert_load_balancers_pool_to_identifier (cf , element )
298189 else :
299190 exit ("/%s/%s :NOT CODED YET 1" % ('/' .join (cmd ), element ))
300191 cmd .append (':' + identifier1 )
@@ -303,7 +194,9 @@ def cli4(args):
303194 # raw identifier - lets just use it as-is
304195 identifier2 = element
305196 elif (cmd [0 ] and cmd [0 ] == 'zones' ) and (cmd [2 ] and cmd [2 ] == 'dns_records' ):
306- identifier2 = convert_dns_record_to_identifier (cf , identifier1 , element )
197+ identifier2 = converters .convert_dns_record_to_identifier (cf ,
198+ identifier1 ,
199+ element )
307200 else :
308201 exit ("/%s/%s :NOT CODED YET 2" % ('/' .join (cmd ), element ))
309202 # identifier2 may be an array - this needs to be dealt with later
@@ -337,15 +230,30 @@ def cli4(args):
337230 for i2 in identifier2 :
338231 try :
339232 if method is 'GET' :
340- r = m .get (identifier1 = identifier1 , identifier2 = i2 , identifier3 = identifier3 , params = params )
233+ r = m .get (identifier1 = identifier1 ,
234+ identifier2 = i2 ,
235+ identifier3 = identifier3 ,
236+ params = params )
341237 elif method is 'PATCH' :
342- r = m .patch (identifier1 = identifier1 , identifier2 = i2 , identifier3 = identifier3 , data = params )
238+ r = m .patch (identifier1 = identifier1 ,
239+ identifier2 = i2 ,
240+ identifier3 = identifier3 ,
241+ data = params )
343242 elif method is 'POST' :
344- r = m .post (identifier1 = identifier1 , identifier2 = i2 , identifier3 = identifier3 , data = params )
243+ r = m .post (identifier1 = identifier1 ,
244+ identifier2 = i2 ,
245+ identifier3 = identifier3 ,
246+ data = params )
345247 elif method is 'PUT' :
346- r = m .put (identifier1 = identifier1 , identifier2 = i2 , identifier3 = identifier3 , data = params )
248+ r = m .put (identifier1 = identifier1 ,
249+ identifier2 = i2 ,
250+ identifier3 = identifier3 ,
251+ data = params )
347252 elif method is 'DELETE' :
348- r = m .delete (identifier1 = identifier1 , identifier2 = i2 , identifier3 = identifier3 , data = params )
253+ r = m .delete (identifier1 = identifier1 ,
254+ identifier2 = i2 ,
255+ identifier3 = identifier3 ,
256+ data = params )
349257 else :
350258 pass
351259 except CloudFlare .exceptions .CloudFlareAPIError as e :
0 commit comments