def to_representation(self, instance): """ Add additional fields/data to the output """ output = AppServerBasicSerializer(instance, context=self.context).data output.update(super().to_representation(instance)) return output
def to_representation(self, obj): """ Add additional fields/data to the output """ output = AppServerBasicSerializer(obj, context=self.context).data output.update(super().to_representation(obj)) return output
def to_representation(self, instance): """ Add additional fields/data to the output """ output = super().to_representation(instance) filtered_appservers = instance.appserver_set.all( )[:settings.NUM_INITIAL_APPSERVERS_SHOWN] output['appservers'] = [ AppServerBasicSerializer(appserver, context=self.context).data for appserver in filtered_appservers ] try: output['source_pr'] = WatchedPullRequestSerializer( instance.watchedpullrequest).data except WatchedPullRequest.DoesNotExist: output['source_pr'] = None if instance.load_balancing_server: output[ 'load_balancing_server'] = instance.load_balancing_server.domain else: output['load_balancing_server'] = None output['configuration_theme_settings'] = instance.get_theme_settings() output[ 'configuration_site_configuration_settings'] = instance.get_site_configuration_settings( ) return output
def to_representation(self, obj): output = super().to_representation(obj) output['app_servers'] = [ AppServerBasicSerializer(appserver, context=self.context).data for appserver in obj.app_servers ] return output
def to_representation(self, instance): """ Add additional fields/data to the output """ output = super().to_representation(instance) output['appserver_count'] = instance.appserver_set.count() output['status_description'] = [] # Store the list of active appservers, and collated status information # # * Instance is_healthy/_steady iff there's more than one active appserver, # and all of the active appservers are healthy/steady. # * Instance status description is all the active appserver's status descriptions output['active_appservers'] = [] output['status_description'] = [] output['is_healthy'] = True output['is_steady'] = True for appserver in instance.get_active_appservers(): serialized_appserver = AppServerBasicSerializer( appserver, context=self.context).data if not serialized_appserver['is_healthy']: output['is_healthy'] = False if not serialized_appserver['is_steady']: output['is_steady'] = False output['active_appservers'].append(serialized_appserver) output['status_description'].append( serialized_appserver['status_description']) output['status_description'] = '\n'.join(output['status_description']) if not output['active_appservers']: output['is_healthy'] = None output['is_steady'] = None try: # Note that appservers are ordered by '-created' by default. # We don't change or check the ordering of the .appserver_set.all() queryset here # because that causes the django ORM to force a new database query to be made # for each instance here, even if appserver_set was previously cached. newest_appserver = instance.appserver_set.all()[0] except IndexError: output['newest_appserver'] = None else: output['newest_appserver'] = AppServerBasicSerializer( newest_appserver, context=self.context).data return output
def to_representation(self, obj): """ Add additional fields/data to the output """ output = super().to_representation(obj) output['appservers'] = [ AppServerBasicSerializer(appserver, context=self.context).data for appserver in obj.appserver_set.all() ] try: output['source_pr'] = WatchedPullRequestSerializer( obj.watchedpullrequest).data except WatchedPullRequest.DoesNotExist: output['source_pr'] = None if obj.load_balancing_server: output['load_balancing_server'] = obj.load_balancing_server.domain else: output['load_balancing_server'] = None return output