Ejemplo n.º 1
0
def notify(uid, category):
    user_scheduled = 1 if category == 'user' else 0
    url = urljoin(
        engine,
        '/notify_interest/{}?user_scheduled={}'.format(uid, user_scheduled))
    logging.info('POST ' + url)
    send_to_slack('Notifying user {}\n> POST {}'.format(uid, url))
    requests.post(url, timeout=30)
Ejemplo n.º 2
0
def get_user_time(user):
    t = user['active_notify']
    try:
        datetime.strptime(t, TIME_FORMAT)
        return t
    except ValueError:
        logging.error('Illegal active notify time format: {}'.format(t))
        send_to_slack('*Illegal active notify time format: {}*'.format(t))
        return None
Ejemplo n.º 3
0
def get_all_user_config():
    query_ids = urljoin(user_api, '/user/0?userToken=') + user_token
    logging.info(query_ids)
    all_users = requests.get(query_ids, timeout=30).json()
    logging.info(all_users)
    for user in all_users:
        config = get_user_config(user)
        if config:
            yield config
        else:
            logging.error('Unable to get user config for ' + user)
            send_to_slack('*Unable to get user config for ' + user + '*')
Ejemplo n.º 4
0
def process(service, labels, messages_details):
    for item in messages_details:
        subject = Msg.get_subject(item)

        if Msg.is_gocd_pattern(subject):
            gocd_details = Msg.get_gocd_details(subject)

            if slack.is_matching_send_rule(gocd_details):
                body = Msg.get_body(item)
                changeset = Msg.get_changeset_info(body)
                text = (slack
                        .message_builder(gocd_details,
                                         changeset,
                                         GOCD_DASHBOARD_URL))

                slack.send_to_slack(text, WEBHOOK_URL)

                Gm.add_label(service, Msg.get_id(item),
                             'SENT_TO_SLACK', labels)

        Gm.remove_label(service, Msg.get_id(item),
                        'UNREAD', labels)
Ejemplo n.º 5
0
def broadcast(uid):
    config = get_user_config(uid)
    url = urljoin(engine, '/notify_all/{}'.format(uid))
    logging.info('POST ' + url)
    send_to_slack('Broadcasting to user {}\n> POST {}'.format(uid, url))
    requests.post(url, timeout=30)
Ejemplo n.º 6
0
def heartbeat():
    send_to_slack('The scheduler is still alive')
Ejemplo n.º 7
0
 def test_sending_correct_payload(self):
     responses.add(responses.POST, TEST_WEBHOOK_URL)
     expected = {'username': '******', 'text': 'abc'}
     send_to_slack(expected, TEST_WEBHOOK_URL)
     self.assertDictEqual(expected, ast.literal_eval(responses.calls[0].request.body))
Ejemplo n.º 8
0
 def test_calling_correct_webhook_url(self):
     responses.add(responses.POST, TEST_WEBHOOK_URL)
     send_to_slack('body', TEST_WEBHOOK_URL)
     self.assertEqual(TEST_WEBHOOK_URL, responses.calls[0].request.url)