def test_create_instance_snapshot(self): server = self.servers.first() api.server_get(IsA(http.HttpRequest), server.id).AndReturn(server) api.snapshot_create(IsA(http.HttpRequest), server.id, "snapshot1").AndReturn(self.snapshots.first()) api.snapshot_list_detailed(IsA(http.HttpRequest), marker=None).AndReturn([[], False]) api.image_list_detailed(IsA(http.HttpRequest), marker=None).AndReturn([[], False]) api.volume_snapshot_list(IsA(http.HttpRequest)).AndReturn([]) self.mox.ReplayAll() formData = { 'instance_id': server.id, 'method': 'CreateSnapshot', 'name': 'snapshot1' } url = reverse('horizon:project:images_and_snapshots:snapshots:create', args=[server.id]) redir_url = reverse('horizon:project:images_and_snapshots:index') res = self.client.post(url, formData) self.assertRedirects(res, redir_url)
def test_create_instance_snapshot(self): server = self.servers.first() api.server_get(IsA(http.HttpRequest), server.id).AndReturn(server) api.snapshot_create(IsA(http.HttpRequest), server.id, "snapshot1").AndReturn(self.snapshots.first()) api.snapshot_list_detailed(IsA(http.HttpRequest), marker=None).AndReturn([[], False]) api.image_list_detailed(IsA(http.HttpRequest), marker=None).AndReturn([[], False]) api.volume_snapshot_list(IsA(http.HttpRequest)).AndReturn([]) self.mox.ReplayAll() formData = {"instance_id": server.id, "method": "CreateSnapshot", "name": "snapshot1"} url = reverse("horizon:project:images_and_snapshots:snapshots:create", args=[server.id]) redir_url = reverse("horizon:project:images_and_snapshots:index") res = self.client.post(url, formData) self.assertRedirects(res, redir_url)
def test_create_snapshot_post_exception(self): server = self.servers.first() snapshot = self.snapshots.first() self.mox.StubOutWithMock(api, 'server_get') self.mox.StubOutWithMock(api, 'snapshot_create') api.snapshot_create(IsA(http.HttpRequest), server.id, snapshot.name) \ .AndRaise(self.exceptions.nova) self.mox.ReplayAll() formData = {'method': 'CreateSnapshot', 'tenant_id': self.tenant.id, 'instance_id': server.id, 'name': snapshot.name} url = reverse('horizon:project:images_and_snapshots:snapshots:create', args=[server.id]) res = self.client.post(url, formData) redirect = reverse("horizon:project:instances:index") self.assertRedirectsNoFollow(res, redirect)
def test_create_snapshot_post_exception(self): server = self.servers.first() snapshot = self.snapshots.first() self.mox.StubOutWithMock(api, 'server_get') self.mox.StubOutWithMock(api, 'snapshot_create') api.snapshot_create(IsA(http.HttpRequest), server.id, snapshot.name) \ .AndRaise(self.exceptions.nova) self.mox.ReplayAll() formData = { 'method': 'CreateSnapshot', 'tenant_id': self.tenant.id, 'instance_id': server.id, 'name': snapshot.name } url = reverse('horizon:project:images_and_snapshots:snapshots:create', args=[server.id]) res = self.client.post(url, formData) redirect = reverse("horizon:project:instances:index") self.assertRedirectsNoFollow(res, redirect)
def handle(self, request, data): try: snapshot = api.snapshot_create(request, data['instance_id'], data['name']) # NOTE(gabriel): This API call is only to display a pretty name. instance = api.server_get(request, data['instance_id']) vals = {"name": data['name'], "inst": instance.name} messages.success(request, _('Snapshot "%(name)s" created for ' 'instance "%(inst)s"') % vals) return snapshot except: redirect = reverse("horizon:project:instances:index") exceptions.handle(request, _('Unable to create snapshot.'), redirect=redirect)