コード例 #1
0
ファイル: queues.py プロジェクト: devopstoday11/beer-garden
def get_all_queue_info():
    """Get queue information for all queues

    :return size of the queue
    :raises Exception: If queue does not exist
    """
    queues = []
    systems = db.query(System)

    for system in systems:
        for instance in system.instances:
            queue_name = get_routing_key(system.namespace, system.name,
                                         system.version, instance.name)

            queue = Queue(
                name=queue_name,
                system=system.name,
                version=system.version,
                instance=instance.name,
                system_id=str(system.id),
                display=system.display_name,
                size=-1,
            )

            try:
                queue.size = get_queue_message_count(queue_name)
            except Exception:
                logger.error(f"Error getting queue size for {queue_name}")

            queues.append(queue)

    return queues
コード例 #2
0
    def get(self):
        """
        ---
        summary: Retrieve all queue information
        responses:
          200:
            description: List of all queue information objects
            schema:
              type: array
              items:
                $ref: '#/definitions/Queue'
          50x:
            $ref: '#/definitions/50xError'
        tags:
          - Queues
        """
        self.logger.debug("Getting all queues")

        queues = []
        systems = System.objects.all().select_related(max_depth=1)

        for system in systems:
            for instance in system.instances:

                queue = Queue(
                    name="UNKNOWN",
                    system=system.name,
                    version=system.version,
                    instance=instance.name,
                    system_id=str(system.id),
                    display=system.display_name,
                    size=-1,
                )

                with thrift_context() as client:
                    try:
                        queue_info = yield client.getQueueInfo(
                            system.name, system.version, instance.name
                        )
                        queue.name = queue_info.name
                        queue.size = queue_info.size
                    except Exception:
                        self.logger.error(
                            "Error getting queue size for %s[%s]-%s"
                            % (system.name, instance.name, system.version)
                        )

                queues.append(queue)

        self.set_header("Content-Type", "application/json; charset=UTF-8")
        self.write(self.parser.serialize_queue(queues, to_string=True, many=True))
コード例 #3
0
ファイル: models_test.py プロジェクト: hazmat345/brewtils
 def queue(self):
     return Queue(name='echo.1-0-0.default',
                  system='echo',
                  version='1.0.0',
                  instance='default',
                  system_id='1234',
                  display='foo.1-0-0.default',
                  size=3)
コード例 #4
0
 def queue(self):
     return Queue(
         name="echo.1-0-0.default",
         system="echo",
         version="1.0.0",
         instance="default",
         system_id="1234",
         display="foo.1-0-0.default",
         size=3,
     )
コード例 #5
0
ファイル: queues.py プロジェクト: devopstoday11/beer-garden
def get_instance_queues(instance_id):

    instance = get_instance(instance_id=instance_id)

    if instance.queue_info:

        request_queue = Queue(name=instance.queue_info["request"]["name"],
                              instance=instance.name,
                              size=-1)

        try:
            request_queue.size = get_queue_message_count(
                instance.queue_info["request"]["name"])
        except Exception:
            logger.error(
                f"Error getting queue size for {instance.queue_info['request']['name']}"
            )

        queues = [request_queue]

    return queues
コード例 #6
0
def bg_queue(queue_dict):
    """A queue as a model."""
    return Queue(**queue_dict)