from performance.driver.core.events import Event
[docs]class MarathonEvent(Event):
"""
Base class for all marathon-related events
"""
[docs]class MarathonStartedEvent(MarathonEvent):
"""
Marathon is up and accepting HTTP requests
"""
[docs]class MarathonUnavailableEvent(MarathonEvent):
"""
Marathon is up and accepting HTTP requests
"""
[docs]class MarathonSSEEvent(MarathonEvent):
"""
Raw SSE event
"""
def __init__(self, eventName, eventData, *args, **kwargs):
super().__init__(*args, **kwargs)
self.eventName = eventName
self.eventData = eventData
[docs]class MarathonSSEDisconnectedEvent(MarathonEvent):
"""
Raw SSE endpoint was disconnected
"""
[docs]class MarathonSSEConnectedEvent(MarathonEvent):
"""
Raw SSE endpoint was connected
"""
[docs]class MarathonUpdateEvent(MarathonEvent):
"""
Base class for update events
"""
def __init__(self, deployment, instances, *args, **kwargs):
super().__init__(*args, **kwargs)
self.deployment = deployment
self.instances = instances
[docs]class MarathonGroupChangeSuccessEvent(MarathonUpdateEvent):
def __init__(self, deployment, groupid, *args, **kwargs):
super().__init__(deployment, [groupid], *args, **kwargs)
[docs]class MarathonGroupChangeFailedEvent(MarathonUpdateEvent):
def __init__(self, deployment, groupid, reason, *args, **kwargs):
super().__init__(deployment, [groupid], *args, **kwargs)
self.reason = reason
[docs]class MarathonDeploymentSuccessEvent(MarathonUpdateEvent):
def __init__(self, deployment, affectedInstances, *args, **kwargs):
super().__init__(deployment, affectedInstances, *args, **kwargs)
[docs]class MarathonDeploymentFailedEvent(MarathonUpdateEvent):
def __init__(self, deployment, affectedInstances, *args, **kwargs):
super().__init__(deployment, affectedInstances, *args, **kwargs)
[docs]class MarathonDeploymentStatusEvent(MarathonUpdateEvent):
def __init__(self, deployment, affectedInstances, *args, **kwargs):
super().__init__(deployment, affectedInstances, *args, **kwargs)
[docs]class MarathonDeploymentStepSuccessEvent(MarathonUpdateEvent):
def __init__(self, deployment, affectedInstances, *args, **kwargs):
super().__init__(deployment, affectedInstances, *args, **kwargs)
[docs]class MarathonDeploymentStepFailureEvent(MarathonUpdateEvent):
def __init__(self, deployment, affectedInstances, *args, **kwargs):
super().__init__(deployment, affectedInstances, *args, **kwargs)
class MarathonMetricUpdateEvent(Event):
def __init__(self, name, value, *args, **kwargs):
super().__init__(*args, **kwargs)
self.name = name
self.value = value