33"""
44Data models for the Deis API.
55"""
6- import etcd
76import importlib
87import logging
98import uuid
1615from django .dispatch import receiver
1716from django .core .exceptions import ValidationError
1817from rest_framework .authtoken .models import Token
19- from api .utils import fingerprint , dict_merge
2018
19+ from api .utils import dict_merge
2120
2221logger = logging .getLogger (__name__ )
2322
@@ -42,20 +41,6 @@ def validate_label(value):
4241 raise ValidationError ("Can only contain a-z (lowercase), 0-9 and hypens" )
4342
4443
45- def get_etcd_client ():
46- if not hasattr (get_etcd_client , "client" ):
47- # wire up etcd publishing if we can connect
48- try :
49- get_etcd_client .client = etcd .Client (
50- host = settings .ETCD_HOST ,
51- port = int (settings .ETCD_PORT ))
52- get_etcd_client .client .get ('/deis' )
53- except etcd .EtcdException :
54- logger .log (logging .WARNING , 'Cannot synchronize with etcd cluster' )
55- get_etcd_client .client = None
56- return get_etcd_client .client
57-
58-
5944class AuditedModel (models .Model ):
6045 """Add created and updated fields to a model."""
6146
@@ -184,48 +169,6 @@ def _log_cert_removed(**kwargs):
184169 logger .info ("cert {} removed" .format (cert ))
185170
186171
187- def _etcd_publish_key (** kwargs ):
188- key = kwargs ['instance' ]
189- _etcd_client .write ('/deis/builder/users/{}/{}' .format (
190- key .owner .username , fingerprint (key .public )), key .public )
191-
192-
193- def _etcd_purge_key (** kwargs ):
194- key = kwargs ['instance' ]
195- try :
196- _etcd_client .delete ('/deis/builder/users/{}/{}' .format (
197- key .owner .username , fingerprint (key .public )))
198- except KeyError :
199- pass
200-
201-
202- def _etcd_purge_user (** kwargs ):
203- username = kwargs ['instance' ].username
204- try :
205- _etcd_client .delete (
206- '/deis/builder/users/{}' .format (username ), dir = True , recursive = True )
207- except KeyError :
208- # If _etcd_publish_key() wasn't called, there is no user dir to delete.
209- pass
210-
211-
212- def _etcd_publish_app (** kwargs ):
213- appname = kwargs ['instance' ]
214- try :
215- _etcd_client .write ('/deis/services/{}' .format (appname ), None , dir = True )
216- except KeyError :
217- # Ignore error when the directory already exists.
218- pass
219-
220-
221- def _etcd_purge_app (** kwargs ):
222- appname = kwargs ['instance' ]
223- try :
224- _etcd_client .delete ('/deis/services/{}' .format (appname ), dir = True , recursive = True )
225- except KeyError :
226- pass
227-
228-
229172# Log significant app-related events
230173post_save .connect (_log_build_created , sender = Build , dispatch_uid = 'api.models.log' )
231174post_save .connect (_log_release_created , sender = Release , dispatch_uid = 'api.models.log' )
@@ -241,14 +184,3 @@ def _etcd_purge_app(**kwargs):
241184def create_auth_token (sender , instance = None , created = False , ** kwargs ):
242185 if created :
243186 Token .objects .create (user = instance )
244-
245-
246- _etcd_client = get_etcd_client ()
247-
248-
249- if _etcd_client :
250- post_save .connect (_etcd_publish_key , sender = Key , dispatch_uid = 'api.models' )
251- post_delete .connect (_etcd_purge_key , sender = Key , dispatch_uid = 'api.models' )
252- post_delete .connect (_etcd_purge_user , sender = settings .AUTH_USER_MODEL , dispatch_uid = 'api.models' ) # noqa
253- post_save .connect (_etcd_publish_app , sender = App , dispatch_uid = 'api.models' )
254- post_delete .connect (_etcd_purge_app , sender = App , dispatch_uid = 'api.models' )
0 commit comments