def _instance_to_view(server): client = admin_client_set() project_link = link_for_project(server.tenant_id) flavor = client.compute.flavors.get(server.flavor["id"]) user_link = link_for_user_id(server.user_id) image_link = link_for_image(server.image["id"]) instancedata = InstanceDataDAO.get(server.id) href_for = lambda endpoint: url_for(endpoint, instance_id=server.id) result = { u"id": server.id, u"href": href_for("instances.get_instance"), u"name": server.name, u"project": project_link, u"created-by": user_link, u"image": image_link, u"instance-type": { u"id": flavor.id, u"name": flavor.name, u"href": url_for("instance_types.get_instance_type", instance_type_id=flavor.id), }, u"created": timestamp_from_openstack(server.created), u"state": server.status, u"ipv4": [elem["addr"] for val in server.addresses.itervalues() for elem in val if elem["version"] == 4], u"links": { u"reboot": href_for("instances.reboot_instance"), u"reset": href_for("instances.reset_instance"), u"remove": href_for("instances.remove_instance"), u"vnc": href_for("instances.instance_vnc_console"), u"console-output": href_for("instances.instance_console_output"), u"fw-rules": href_for("instance_fw_rule_sets" ".list_instance_fw_rule_sets"), }, } if instancedata: if instancedata.expires_at is not None: result[u"expires-at"] = instancedata.expires_at if instancedata.remind_at is not None: result[u"remind-at"] = instancedata.remind_at if g.is_admin and hasattr(server, _HOST_ATTRIBUTE): result["node"] = link_for_node(getattr(server, _HOST_ATTRIBUTE)) return result
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)
def test_get_none(self): instancedata = InstanceDataDAO.get('non-existing id') self.assertEquals(instancedata, None)
def test_get(self): instancedata = InstanceDataDAO.get(self.instance_id) self.assertEquals(self.instance_id, instancedata.instance_id) self.assertEquals(self.expires_at, instancedata.expires_at) self.assertEquals(self.remind_at, instancedata.remind_at)
def test_remind_list(self): l = list(InstanceDataDAO.remind_list(self.remind_at)) self.assertEquals(l, [InstanceDataDAO.get(self.instance_id)])
def test_list_all(self): l = list(InstanceDataDAO.list_all()) self.assertEquals(l, [InstanceDataDAO.get(self.instance_id)])
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)
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)
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)
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)
def test_expired_list(self): l = list(InstanceDataDAO.expired_list(self.expires_at)) self.assertEquals(l, [InstanceDataDAO.get(self.instance_id)])
def test_delete_deletes(self): self.assertTrue(InstanceDataDAO.delete(self.instance_id)) self.assertEquals(None, InstanceDataDAO.get(self.instance_id))