Exemple #1
0
def remind_about_instances():
    """Run periodically to send reminding emails"""
    cs = admin_client_set()
    server_mgr = cs.compute.servers
    user_mgr = cs.identity_admin.users
    for instance_data in InstanceDataDAO.remind_list(datetime.utcnow()):
        try:
            try:
                server = server_mgr.get(instance_data.instance_id)
            except osc_exc.NotFound:
                InstanceDataDAO.delete(instance_data.instance_id)
                continue

            try:
                user = user_mgr.get(server.user_id)
            except osc_exc.NotFound:
                pass
            else:
                send_instance_reminder(user.email,
                                       server.name,
                                       server.id,
                                       instance_data.expires_at,
                                       greeting=getattr(user, 'fullname', ''))
            InstanceDataDAO.update(instance_data.instance_id, remind_at=None)
        except Exception:
            current_app.logger.exception(
                'Failed to send reminder email about instance %r' %
                instance_data.instance_id)
Exemple #2
0
def remind_about_instances():
    """Run periodically to send reminding emails"""
    cs = admin_client_set()
    server_mgr = cs.compute.servers
    user_mgr = cs.identity_admin.users
    for instance_data in InstanceDataDAO.remind_list(datetime.utcnow()):
        try:
            try:
                server = server_mgr.get(instance_data.instance_id)
            except osc_exc.NotFound:
                InstanceDataDAO.delete(instance_data.instance_id)
                continue

            try:
                user = user_mgr.get(server.user_id)
            except osc_exc.NotFound:
                pass
            else:
                send_instance_reminder(user.email, server.name,
                                 server.id, instance_data.expires_at,
                                 greeting=getattr(user, 'fullname', ''))
            InstanceDataDAO.update(instance_data.instance_id, remind_at=None)
        except Exception:
            current_app.logger.exception(
                'Failed to send reminder email about instance %r'
                % instance_data.instance_id)
Exemple #3
0
 def test_remind_list_empty(self):
     one_day_before = self.remind_at - timedelta(days=1)
     l = list(InstanceDataDAO.remind_list(one_day_before))
     self.assertEquals(l, [])
Exemple #4
0
 def test_remind_list(self):
     l = list(InstanceDataDAO.remind_list(self.remind_at))
     self.assertEquals(l, [InstanceDataDAO.get(self.instance_id)])
Exemple #5
0
 def test_remind_list_empty(self):
     one_day_before = self.remind_at - timedelta(days=1)
     l = list(InstanceDataDAO.remind_list(one_day_before))
     self.assertEquals(l, [])
Exemple #6
0
 def test_remind_list(self):
     l = list(InstanceDataDAO.remind_list(self.remind_at))
     self.assertEquals(l, [InstanceDataDAO.get(self.instance_id)])