Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
 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