datahubio / datahub-v2-pm

Project management (issues only)
8 stars 2 forks source link

Checkout status.io #286

Closed zelima closed 5 years ago

zelima commented 5 years ago

As PM I want to test how status.io works and fits to us, so that I can compare with others and make decision

Acceptance Criteria

Tasks

Analysis

Email and status page looks a beet creepy to me. Also, their API seems overcomplicated to me: component_ids, containerids, mix of their sometimes concatinated with -, sometimes ``

import statusio
from .config import statuspage_id, statusio_api_id, statusio_api_kei
status_api = statusio.Api(statusio_api_id, statusio_api_kei)

def on_incident(incident, publisher, errors=''):
    components = status_api.ComponentList(statuspage_id)
    component = components.get('result', [{}])[0]
    component_id = component.get('_id')
    container_id = None
    for container in component.get('containers', []):
        if publisher == container.get('name'):
            container_id = container.get('_id')
    if not container_id:
        logging.error('No status page found for publisher: %s' % publisher)
        return

    result = status_api.IncidentCreate(
        statuspage_id=statuspage_id,
        infrastructure_affected=['%s-%s' % (component_id, container_id)],
        incident_name=incident,
        incident_details=errors,
        current_status=300,
        current_state=100,
        notify_email='1'
    )
    return result

def subscribe_user(address, method='email', granular=''):
    result = status_api.SubscriberAdd(
        statuspage_id=statuspage_id,
        method=method,
        address=address,
        silent='1',
        granular=granular,
    )
    return result
zelima commented 5 years ago

FIXED