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)
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
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 + '*')
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)
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)
def heartbeat(): send_to_slack('The scheduler is still alive')
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))
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)