33
44import CloudFlare
55
6+ class converterError (Exception ):
7+ """ errors for converters"""
8+ pass
9+
610def convert_zones_to_identifier (cf , zone_name ):
711 """zone names to numbers"""
812 params = {'name' :zone_name , 'per_page' :1 }
913 try :
1014 zones = cf .zones .get (params = params )
1115 except CloudFlare .exceptions .CloudFlareAPIError as e :
12- exit ( 'cli4: %s - %d %s' % (zone_name , e , e ))
16+ raise converterError ( int ( e ), ' %s - %d %s' % (zone_name , e , e ))
1317 except Exception as e :
14- exit ( 'cli4: %s - %s' % (zone_name , e ))
18+ raise converterError ( 0 , ' %s - %s' % (zone_name , e ))
1519
1620 if len (zones ) == 1 :
1721 return zones [0 ]['id' ]
1822
19- exit ('cli4: %s - zone not found' % (zone_name ))
23+ raise converterError ('%s: not found' % (zone_name ))
24+
25+ def convert_accounts_to_identifier (cf , account_name ):
26+ """account names to numbers"""
27+ params = {'name' :account_name , 'per_page' :1 }
28+ try :
29+ accounts = cf .accounts .get (params = params )
30+ except CloudFlare .exceptions .CloudFlareAPIError as e :
31+ raise converterError (int (e ), '%s - %d %s' % (account_name , e , e ))
32+ except Exception as e :
33+ raise converterError (0 , '%s - %s' % (account_name , e ))
34+
35+ if len (accounts ) == 1 :
36+ return accounts [0 ]['id' ]
37+
38+ raise converterError ('%s: not found' % (account_name ))
2039
2140def convert_dns_record_to_identifier (cf , zone_id , dns_name ):
2241 """dns record names to numbers"""
@@ -25,9 +44,9 @@ def convert_dns_record_to_identifier(cf, zone_id, dns_name):
2544 try :
2645 dns_records = cf .zones .dns_records .get (zone_id , params = params )
2746 except CloudFlare .exceptions .CloudFlareAPIError as e :
28- exit ( 'cli4: %s - %d %s' % (dns_name , e , e ))
47+ raise converterError ( int ( e ), ' %s - %d %s' % (dns_name , e , e ))
2948 except Exception as e :
30- exit ( 'cli4: %s - %s' % (dns_name , e ))
49+ raise converterError ( 0 , ' %s - %s' % (dns_name , e ))
3150
3251 r = []
3352 for dns_record in dns_records :
@@ -36,80 +55,80 @@ def convert_dns_record_to_identifier(cf, zone_id, dns_name):
3655 if len (r ) > 0 :
3756 return r
3857
39- exit ( 'cli4: %s - dns name not found' % (dns_name ))
58+ raise converterError ( '%s: not found' % (dns_name ))
4059
4160def convert_certificates_to_identifier (cf , certificate_name ):
4261 """certificate names to numbers"""
4362 try :
4463 certificates = cf .certificates .get ()
4564 except CloudFlare .exceptions .CloudFlareAPIError as e :
46- exit ( 'cli4: %s - %d %s' % (certificate_name , e , e ))
65+ raise converterError ( int ( e ), ' %s - %d %s' % (certificate_name , e , e ))
4766 except Exception as e :
48- exit ( 'cli4: %s - %s' % (certificate_name , e ))
67+ raise converterError ( 0 , ' %s - %s' % (certificate_name , e ))
4968
5069 for certificate in certificates :
5170 if certificate_name in certificate ['hostnames' ]:
5271 return certificate ['id' ]
5372
54- exit ( 'cli4: %s - no zone certificates found' % (certificate_name ))
73+ raise converterError ( '%s: not found' % (certificate_name ))
5574
5675def convert_organizations_to_identifier (cf , organization_name ):
5776 """organizations names to numbers"""
5877 try :
5978 organizations = cf .user .organizations .get ()
6079 except CloudFlare .exceptions .CloudFlareAPIError as e :
61- exit ( 'cli4: %s - %d %s' % (organization_name , e , e ))
80+ raise converterError ( int ( e ), ' %s - %d %s' % (organization_name , e , e ))
6281 except Exception as e :
63- exit ( 'cli4: %s - %s' % (organization_name , e ))
82+ raise converterError ( 0 , ' %s - %s' % (organization_name , e ))
6483
6584 for organization in organizations :
6685 if organization_name == organization ['name' ]:
6786 return organization ['id' ]
6887
69- exit ( 'cli4: %s - no organizations found' % (organization_name ))
88+ raise converterError ( ' %s not found' % (organization_name ))
7089
7190def convert_invites_to_identifier (cf , invite_name ):
7291 """invite names to numbers"""
7392 try :
7493 invites = cf .user .invites .get ()
7594 except CloudFlare .exceptions .CloudFlareAPIError as e :
76- exit ( 'cli4: %s - %d %s' % (invite_name , e , e ))
95+ raise converterError ( int ( e ), ' %s - %d %s' % (invite_name , e , e ))
7796 except Exception as e :
78- exit ( 'cli4: %s - %s' % (invite_name , e ))
97+ raise converterError ( 0 , ' %s - %s' % (invite_name , e ))
7998
8099 for invite in invites :
81100 if invite_name == invite ['organization_name' ]:
82101 return invite ['id' ]
83102
84- exit ( 'cli4: %s - no invites found' % (invite_name ))
103+ raise converterError ( '%s: not found' % (invite_name ))
85104
86105def convert_virtual_dns_to_identifier (cf , virtual_dns_name ):
87106 """virtual dns names to numbers"""
88107 try :
89108 virtual_dnss = cf .user .virtual_dns .get ()
90109 except CloudFlare .exceptions .CloudFlareAPIError as e :
91- exit ( 'cli4: %s - %d %s\n ' % (virtual_dns_name , e , e ))
110+ raise converterError ( int ( e ), ' %s - %d %s' % (virtual_dns_name , e , e ))
92111 except Exception as e :
93- exit ( 'cli4: %s - %s\n ' % (virtual_dns_name , e ))
112+ raise converterError ( 0 , ' %s - %s' % (virtual_dns_name , e ))
94113
95114 for virtual_dns in virtual_dnss :
96115 if virtual_dns_name == virtual_dns ['name' ]:
97116 return virtual_dns ['id' ]
98117
99- exit ( 'cli4: %s - no virtual_dns found' % (virtual_dns_name ))
118+ raise converterError ( '%s: not found' % (virtual_dns_name ))
100119
101120def convert_load_balancers_pool_to_identifier (cf , pool_name ):
102121 """load balancer pool names to numbers"""
103122 try :
104123 pools = cf .user .load_balancers .pools .get ()
105124 except CloudFlare .exceptions .CloudFlareAPIError as e :
106- exit ( 'cli4: %s - %d %s' % (pool_name , e , e ))
125+ raise converterError ( int ( e ), ' %s - %d %s' % (pool_name , e , e ))
107126 except Exception as e :
108- exit ( 'cli4: %s - %s' % (pool_name , e ))
127+ raise converterError ( 0 , ' %s - %s' % (pool_name , e ))
109128
110129 for p in pools :
111130 if pool_name == p ['description' ]:
112131 return p ['id' ]
113132
114- exit ( 'cli4: %s - no pools found' % (pool_name ))
133+ raise converterError ( '%s: not found' % (pool_name ))
115134
0 commit comments