Beispiel #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)
Beispiel #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)
Beispiel #3
0
def update_instance(instance_id):
    data = parse_request_data(_SCHEMA.updatable)
    if "name" in data:
        try:
            fetch_instance(instance_id).update(name=data["name"])
        except osc_exc.NotFound:
            abort(404)
    instance = fetch_instance(instance_id)

    for_instance_data = {}
    if "expires-at" in data:
        for_instance_data["expires_at"] = data["expires-at"]
    if "remind-at" in data:
        for_instance_data["remind_at"] = data["remind-at"]
    if for_instance_data:
        InstanceDataDAO.update(instance.id, **for_instance_data)

    set_audit_resource_id(instance)
    return make_json_response(_instance_to_view(instance))
Beispiel #4
0
 def test_update_remind_at_to_none(self):
     InstanceDataDAO.update(self.instance_id, remind_at=None)
     self.assertEquals(None,
                       InstanceDataDAO.get(self.instance_id).remind_at)
Beispiel #5
0
 def test_update_remind_at(self):
     new_remind_at = self.remind_at + timedelta(days=30)
     InstanceDataDAO.update(self.instance_id, remind_at=new_remind_at)
     self.assertEquals(new_remind_at,
                       InstanceDataDAO.get(self.instance_id).remind_at)
Beispiel #6
0
 def test_update_expires_at_to_none(self):
     InstanceDataDAO.update(self.instance_id, expires_at=None)
     self.assertEquals(None,
                       InstanceDataDAO.get(self.instance_id).expires_at)
Beispiel #7
0
 def test_update_expires_not_found(self):
     instance_id = 'OTHER_TEST_VMID'
     InstanceDataDAO.update(instance_id, expires_at=self.expires_at)
     self.assertEquals(self.expires_at,
                       InstanceDataDAO.get(instance_id).expires_at)
Beispiel #8
0
 def test_update_expires_at(self):
     new_expires_at = self.expires_at + timedelta(days=30)
     InstanceDataDAO.update(self.instance_id, expires_at=new_expires_at)
     self.assertEquals(new_expires_at,
                       InstanceDataDAO.get(self.instance_id).expires_at)
Beispiel #9
0
 def test_update_remind_at_to_none(self):
     InstanceDataDAO.update(self.instance_id, remind_at=None)
     self.assertEquals(None,
                       InstanceDataDAO.get(self.instance_id).remind_at)
Beispiel #10
0
 def test_update_remind_at(self):
     new_remind_at = self.remind_at + timedelta(days=30)
     InstanceDataDAO.update(self.instance_id, remind_at=new_remind_at)
     self.assertEquals(new_remind_at,
                       InstanceDataDAO.get(self.instance_id).remind_at)
Beispiel #11
0
 def test_update_expires_at_to_none(self):
     InstanceDataDAO.update(self.instance_id, expires_at=None)
     self.assertEquals(None,
                       InstanceDataDAO.get(self.instance_id).expires_at)
Beispiel #12
0
 def test_update_expires_not_found(self):
     instance_id = 'OTHER_TEST_VMID'
     InstanceDataDAO.update(instance_id, expires_at=self.expires_at)
     self.assertEquals(self.expires_at,
                       InstanceDataDAO.get(instance_id).expires_at)
Beispiel #13
0
 def test_update_expires_at(self):
     new_expires_at = self.expires_at + timedelta(days=30)
     InstanceDataDAO.update(self.instance_id, expires_at=new_expires_at)
     self.assertEquals(new_expires_at,
                       InstanceDataDAO.get(self.instance_id).expires_at)