def delete_task(request, pk): task = get_object_or_404(InstanceTask, pk=pk) task.abort(request) persistent_messages.add_message(request, persistent_messages.INFO, 'Delete Instance creating task of %s on %s' % (task.name, task.storagepool.hypervisor), user=task.creator) task.delete(request) return redirect('/instance/')
def index(request): disks = InstallationDisk.objects.all() tasks = InstallationDiskTask.objects.all() for task in tasks: task.get_status() if task.state == "SUCCESS": persistent_messages.add_message( request, persistent_messages.SUCCESS, "Successfully downloaded %s on %s." % (task.name, task.hypervisor), user=task.user, ) (disk, created) = InstallationDisk.objects.get_or_create( name=task.name, hypervisor=task.hypervisor, url=task.url, filename=task.filename, total_bytes=task.total_bytes, user=task.user, ) if created: disk.save() task.delete() return render_to_response( "installationdisk/index.html", {"disks": disks, "tasks": tasks}, context_instance=RequestContext(request) )
def deliver(self, recipient, sender, notice_type, extra_context): context = self.default_context() context.update(extra_context) if shadow_ban_applies(notice_type, recipient, context): return template = 'notice.html' message = self.get_formatted_messages([template], notice_type.label, context)[template] level = persistent_messages.INFO try: request = get_request() persistent_messages.add_message(request, level, message, user=recipient, from_user=sender) except IndexError: persistent_message = Message(user=recipient, from_user=sender, level=level, message=message) persistent_message.save()
def restart(request, pk): task = get_object_or_404(InstallationDiskTask, pk=pk) task.abort() task.start() persistent_messages.add_message( request, persistent_messages.INFO, "Trying to redownload %s on %s" % (task.filename, task.hypervisor), user=task.user, ) return redirect("/installationdisk/")
def delete_task(request, pk): task = get_object_or_404(InstallationDiskTask, pk=pk) task.abort() persistent_messages.add_message( request, persistent_messages.INFO, "Delete download task of %s on %s" % (task.filename, task.hypervisor), user=task.user, ) task.delete() # might need to do some cleanup here, or check # that the task isn't still running return redirect("/installationdisk/")
def create(self, request=None): pool = self.storagepool.get_storagepool() if pool: xml = VOLUME_TEMPLATE % (self.name, self.capacity.size) try: pool.createXML(xml, 0) return True except libvirt.libvirtError as e: if request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to create Volume %s: %s' % (self.name, e)) return False else: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to create Volume %s (Unable to connect to Storage Pool)' % (self.name)) return False
def deliver(self, recipient, sender, notice_type, extra_context): try: request = get_request() except IndexError: # This may happen during unit testing return context = self.default_context() context.update(extra_context) messages = self.get_formatted_messages(['notice.html'], notice_type.label, context) persistent_messages.add_message(request, persistent_messages.INFO, messages['notice.html'], user=recipient)
def deliver(self, recipient, sender, notice_type, extra_context): try: request = get_request() except IndexError: # This may happen during unit testing return context = self.default_context() context.update(extra_context) messages = self.get_formatted_messages(['notice.html'], notice_type.label, context) persistent_messages.add_message( request, persistent_messages.INFO, messages['notice.html'], user = recipient)
def get_new_recent_alerts(request): user = authenticate(username='******', password='******') alerts = Alert.objects.filter(timestamp__gte=datetime.now()-timedelta(seconds=5)).order_by('timestamp') if len(alerts): persistent_messages.add_message( request, persistent_messages.WARNING, message='The babby is on the move!', subject='Alert', extra_tags='warning', email=False, #user=user, #from_user=request.session['sender_user'], fail_silently=True )
def delete(request, name, pk): instance = get_object_or_404(Instance, name=name) snapshot = get_object_or_404(Snapshot, pk=pk) try: dom = instance.get_instance() if not dom: raise libvirt.libvirtError() snap = snapshot.get_snapshot() if snap: print "deleting.. %d" % (snapshot.get_unixtime()) snap.delete(0) snapshot.delete() persistent_messages.add_message(request, persistent_messages.SUCCESS, 'Deleted snapshot for %s' % (instance)) except libvirt.libvirtError as e: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete snapshot %s for %s: %s' % (snapshot.name, instance, e)) return redirect('/instance/%s/' % (name))
def create(self, request=None): pool = self.storagepool.get_storagepool() if pool: xml = """ <volume> <name>%s.qcow2</name> <capacity>%s</capacity> <allocation>0</allocation> <target> <format type="qcow2" /> </target> </volume>""" \ % (self.name, self.capacity.size) try: pool.createXML(xml, 0) return True except libvirt.libvirtError as e: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to create Volume %s: %s' % (self.name, e)) return False else: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to create Volume %s (Unable to connect to Storage Pool)' % (self.name)) return False
def create(request, name): instance = get_object_or_404(Instance, name=name) if instance.status != 5: persistent_messages.add_message(request, persistent_messages.ERROR, 'Error %s must be shutdown in order to take a snapshot.' % (instance)) elif Snapshot.objects.filter(creating=True, instance=instance).count() > 0: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to create a snapshot for %s, already creating one.' % (instance)) else: persistent_messages.add_message(request, persistent_messages.INFO, 'Attempting to create a snapshot for %s' % (instance)) create_snapshot.delay(instance.name) # no need to collect task as it is one blocking method return redirect('/instance/%s/' % (name))
def delete(self, request=None): vol = self.get_volume() if vol: try: vol.delete(0) if request: persistent_messages.add_message(request, persistent_messages.SUCCESS, 'Deleted %s Volume' % (self)) super(Volume, self).delete() return True except libvirt.libvirtError as e: if request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete %s Volume: %s' % (self, e)) elif request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Volume: Unable to get Volume %s' % (self)) return False
def delete(self, request=None): instance = self.get_instance() if instance: try: instance.destroy() instance.undefine() self.volume.delete(True) if request: persistent_messages.add_message(request, persistent_messages.SUCCESS, 'Deleted Instance %s' % (self)) if request.user != self.user: persistent_messages.add_message(request, persistent_messages.SUCCESS, 'Deleted Instance %s' % (self), user=self.user) super(Instance, self).delete() except libvirt.libvirtError as e: if request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Instance %s: %s' % (self, e)) if request.user != self.user: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Instance %s' % (self), user=self.user) elif request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to get instance object inorder to delete Instance %s' % (self)) if request.user != self.user: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Instance %s' % (self), user=self.user)
def delete(self, request=None): instance = self.get_instance() if instance: try: try: # shutdown/destroy the vm if it's still up and running. instance.destroy() except libvirt.libvirtError as e: if str(e) != 'Requested operation is not valid: domain is not running': raise e instance.undefine() self.volume.delete(request) self.network.delete() if request: persistent_messages.add_message(request, persistent_messages.SUCCESS, 'Deleted Instance %s' % (self)) if request.user != self.user: persistent_messages.add_message(request, persistent_messages.SUCCESS, 'Deleted Instance %s' % (self), user=self.user) super(Instance, self).delete() except libvirt.libvirtError as e: print e print type(e) if request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Instance %s: %s' % (self, e)) if request.user != self.user: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Instance %s' % (self), user=self.user) elif request: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to get instance object inorder to delete Instance %s' % (self)) if request.user != self.user: persistent_messages.add_message(request, persistent_messages.ERROR, 'Unable to delete Instance %s' % (self), user=self.user)