def handle(self, request, data): instance_id = data['instance'] instance = api.compute_api(request).servers.get(instance_id) try: api.compute_api(request).servers.delete(instance) except api_exceptions.ApiException, e: messages.error(request, 'Unable to terminate %s: %s' % (instance_id, e.message,))
def test_get_compute_api(self): class ComputeClient(object): __slots__ = ['auth_token', 'management_url'] self.mox.StubOutClassWithMocks(OSCompute, 'Compute') compute_api = OSCompute.Compute(auth_token=TEST_TOKEN, management_url=TEST_URL) compute_api.client = ComputeClient() self.mox.StubOutWithMock(api, 'url_for') # called three times? Looks like a good place for optimization api.url_for(IsA(http.HttpRequest), 'nova').AndReturn(TEST_URL) api.url_for(IsA(http.HttpRequest), 'nova').AndReturn(TEST_URL) api.url_for(IsA(http.HttpRequest), 'nova').AndReturn(TEST_URL) self.mox.ReplayAll() compute_api = api.compute_api(self.request) self.assertIsNotNone(compute_api) self.assertEqual(compute_api.client.auth_token, TEST_TOKEN) self.assertEqual(compute_api.client.management_url, TEST_URL) self.mox.VerifyAll()
def launch(request, tenant_id, image_id): def flavorlist(): try: fl = api.extras_api(request).flavors.list() # TODO add vcpu count to flavors sel = [(f.id, "%s (%svcpu / %sGB Disk / %sMB Ram )" % (f.name, f.vcpus, f.disk, f.ram)) for f in fl] return sorted(sel) except: return [(1, "m1.tiny")] def keynamelist(): try: fl = api.extras_api(request).keypairs.list() sel = [(f.key_name, f.key_name) for f in fl] return sel except: return [] image = api.compute_api(request).images.get(image_id) tenant = api.get_tenant(request, request.user.tenant) form, handled = LaunchForm.maybe_handle( request, initial={"flavorlist": flavorlist(), "keynamelist": keynamelist(), "image_id": image_id} ) if handled: return handled return render_to_response( "dash_launch.html", {"tenant": tenant, "image": image, "form": form}, context_instance=template.RequestContext(request), )
def handle(self, request, data): image_id = data["image_id"] try: image = api.compute_api(request).images.get(image_id) flavor = api.compute_api(request).flavors.get(data["flavor"]) api.extras_api(request).servers.create( data["name"], image, flavor, user_data=data["user_data"], key_name=data.get("key_name") ) messages.success( request, "Instance was successfully\ launched.", ) return shortcuts.redirect(request.build_absolute_uri()) except api_exceptions.ApiException, e: messages.error(request, "Unable to launch instance: %s" % e.message)
def handle(self, request, data): instance_id = data['instance'] try: server = api.compute_api(request).servers.get(instance_id) server.reboot(openstack.compute.servers.REBOOT_HARD) messages.success(request, "Instance rebooting") except api_exceptions.ApiException, e: messages.error(request, 'Unable to reboot instance: %s' % e.message)
def stub_compute_api(self, count=1): self.mox.StubOutWithMock(api, "compute_api") compute_api = self.mox.CreateMock(OSCompute.Compute) for i in range(count): api.compute_api(IsA(http.HttpRequest)).AndReturn(compute_api) return compute_api