@@ -114,75 +114,68 @@ class Meta:
114114
115115
116116from .app import App , validate_id_is_docker_compatible , validate_reserved_names , validate_app_structure # noqa
117- from .key import Key , validate_base64 # noqa
117+ from .appsettings import AppSettings # noqa
118+ from .build import Build # noqa
118119from .certificate import Certificate , validate_certificate # noqa
120+ from .config import Config # noqa
119121from .domain import Domain # noqa
122+ from .key import Key , validate_base64 # noqa
120123from .release import Release # noqa
121- from .config import Config # noqa
122- from .build import Build # noqa
123- from .appsettings import AppSettings # noqa
124+ from .tls import TLS # noqa
124125
125126# define update/delete callbacks for synchronizing
126127# models with the configuration management backend
127128
128129
129- def _log_build_created (** kwargs ):
130+ def _log_instance_created (** kwargs ):
130131 if kwargs .get ('created' ):
131- build = kwargs ['instance' ]
132- # log only to the controller; this event will be logged in the release summary
133- build .app .log ("build {} created" .format (build ))
134-
132+ instance = kwargs ['instance' ]
133+ message = '{} {} created' .format (instance .__class__ .__name__ , instance )
134+ if hasattr (instance , 'app' ):
135+ instance .app .log (message )
136+ else :
137+ logger .info (message )
135138
136- def _log_release_created (** kwargs ):
137- if kwargs .get ('created' ):
138- release = kwargs ['instance' ]
139- # append release lifecycle logs to the app
140- release .app .log (release .summary )
141139
140+ def _log_instance_updated (** kwargs ):
141+ instance = kwargs ['instance' ]
142+ message = '{} {} updated' .format (instance .__class__ .__name__ , instance )
143+ if hasattr (instance , 'app' ):
144+ instance .app .log (message )
145+ else :
146+ logger .info (message )
142147
143- def _log_config_updated (** kwargs ):
144- config = kwargs ['instance' ]
145- # log only to the controller; this event will be logged in the release summary
146- config .app .log ("config {} updated" .format (config ))
147148
149+ def _log_instance_removed (** kwargs ):
150+ instance = kwargs ['instance' ]
151+ message = '{} {} removed' .format (instance .__class__ .__name__ , instance )
152+ if hasattr (instance , 'app' ):
153+ instance .app .log (message )
154+ else :
155+ logger .info (message )
148156
149- def _log_app_settings_updated (** kwargs ):
150- appSettings = kwargs ['instance' ]
151- # log only to the controller; this event will be logged in the release summary
152- appSettings .app .log ("application settings {} updated" .format (appSettings ))
153157
154-
155- def _log_domain_added (** kwargs ):
158+ # special case: log the release summary
159+ def _log_release_created (** kwargs ):
156160 if kwargs .get ('created' ):
157- domain = kwargs ['instance' ]
158- domain .app .log ("domain {} added" .format (domain ))
159-
160-
161- def _log_domain_removed (** kwargs ):
162- domain = kwargs ['instance' ]
163- domain .app .log ("domain {} removed" .format (domain ))
164-
161+ release = kwargs ['instance' ]
162+ # append release lifecycle logs to the app
163+ release .app .log (release .summary )
165164
166- def _log_cert_added (** kwargs ):
167- if kwargs .get ('created' ):
168- cert = kwargs ['instance' ]
169- logger .info ("cert {} added" .format (cert ))
170165
166+ # Log significant app-related events
167+ post_save .connect (_log_release_created , sender = Release , dispatch_uid = 'api.models.log' )
171168
172- def _log_cert_removed ( ** kwargs ):
173- cert = kwargs [ 'instance' ]
174- logger . info ( "cert {} removed" . format ( cert ) )
169+ post_save . connect ( _log_instance_created , sender = Build , dispatch_uid = 'api.models.log' )
170+ post_save . connect ( _log_instance_created , sender = Certificate , dispatch_uid = 'api.models.log' )
171+ post_save . connect ( _log_instance_created , sender = Domain , dispatch_uid = 'api.models.log' )
175172
173+ post_save .connect (_log_instance_updated , sender = AppSettings , dispatch_uid = 'api.models.log' )
174+ post_save .connect (_log_instance_updated , sender = Config , dispatch_uid = 'api.models.log' )
176175
177- # Log significant app-related events
178- post_save .connect (_log_build_created , sender = Build , dispatch_uid = 'api.models.log' )
179- post_save .connect (_log_release_created , sender = Release , dispatch_uid = 'api.models.log' )
180- post_save .connect (_log_config_updated , sender = Config , dispatch_uid = 'api.models.log' )
181- post_save .connect (_log_domain_added , sender = Domain , dispatch_uid = 'api.models.log' )
182- post_save .connect (_log_cert_added , sender = Certificate , dispatch_uid = 'api.models.log' )
183- post_save .connect (_log_app_settings_updated , sender = AppSettings , dispatch_uid = 'api.models.log' )
184- post_delete .connect (_log_domain_removed , sender = Domain , dispatch_uid = 'api.models.log' )
185- post_delete .connect (_log_cert_removed , sender = Certificate , dispatch_uid = 'api.models.log' )
176+ post_delete .connect (_log_instance_removed , sender = Certificate , dispatch_uid = 'api.models.log' )
177+ post_delete .connect (_log_instance_removed , sender = Domain , dispatch_uid = 'api.models.log' )
178+ post_delete .connect (_log_instance_removed , sender = TLS , dispatch_uid = 'api.models.log' )
186179
187180
188181# automatically generate a new token on creation
0 commit comments