Beispiel #1
0
def delete_instance(request):
    LOG.info("*** request.data is ***" + str(request.data))
    instance_id = None
    for key, value in request.data.items():
        instance_id = value
    LOG.info("********** instance_id  is **********" + str(instance_id))
    instance = Instance.objects.get(pk=instance_id)
    instance_id = instance.uuid
    LOG.info("********** instance_id  is **********" + str(instance_id))
    try:
        delete_user_instance_network(request, instance_id)
    except:
        pass
    try:
        LOG.info("resource is" + str(instance.id))
        #floating = Floating.objects.filter(resource=instance.id)[0]
        floating = Floating.objects.filter(resource=instance.id)
        if floating:
            LOG.info("********")
            floating.resource = None
            LOG.info("********")
            floating.save()
            LOG.info("********")
    except:
        return Response({"success": False, "msg": _('failed.')})
    instance.deleted = True
    instance.save()
    return Response({"success": True, "msg": _('Sucess.')})
Beispiel #2
0
def batch_delete(request):
    LOG.info("aaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    LOG.info(request.data)
    LOG.info(request.data.getlist('ids[]'))
    for ID in request.data.getlist('ids[]'):
        instance_id = str(ID)
        instance = Instance.objects.get(pk=instance_id)
        instance_id = instance.uuid
        try:
            delete_user_instance_network(request, instance_id)
        except:
            pass
        try:
            LOG.info("resource is" + str(instance.id))
            #floating = Floating.objects.filter(resource=instance.id)[0]
            floating = Floating.objects.filter(resource=instance.id)
            LOG.info(" floating is " + str(floating))
            if floating:
                LOG.info("********")
                floating[0].resource = None
                LOG.info("********")
                floating[0].save()
                LOG.info("********")
        except:
            return Response({"success": False, "msg": _('failed.')})
        instance.deleted = True
        instance.save()
    return Response({"success": True, "msg": _('Sucess.')})
Beispiel #3
0
def delete_instance(request):
    LOG.info("*** request.data is ***" + str(request.data))
    instance_id = None
    for key, value in request.data.items():
        instance_id = value
    LOG.info("********** instance_id  is **********" + str(instance_id))
    instance = Instance.objects.get(pk=instance_id)
    instance_id = instance.uuid
    LOG.info("********** instance_id  is **********" + str(instance_id))
    try:
        delete_user_instance_network(request, instance_id)
    except:
        pass
    instance.deleted = True
    instance.save()
    return Response({"success": True, "msg": _('Sucess.')})
Beispiel #4
0
def delete_instance(request):
    LOG.info("*** request.data is ***"  + str(request.data))
    instance_id = None
    for key, value in request.data.items():
        instance_id = value
    LOG.info("********** instance_id  is **********" + str(instance_id))
    instance = Instance.objects.get(pk=instance_id)
    instance_id = instance.uuid
    LOG.info("********** instance_id  is **********" + str(instance_id))
    try:
        delete_user_instance_network(request, instance_id)
    except:
        pass
    instance.deleted = True
    instance.save()
    return Response({"success": True, "msg": _(
           'Sucess.')})
Beispiel #5
0
def batchdelete(request):

    # If we delete user first, all the related things delete.So we should collect information first.

    # Delete user staff.

    # First delete user from any models.
    # Second delete vms by user
    # Third delete network & router

    try:

        ids = request.data.getlist('ids[]')
        user_instances = []
        user_networks = []
        user_subnets = []
        user_routers = []
        user_routersinterfaces = []
        for user_id in ids:
            LOG.info("*** user_id is ***" + str(user_id))
            queryset = Instance.objects.all().filter(deleted=False,
                                                     user_id=user_id)
            for q in queryset:
                user_instances.append(q.uuid)
                LOG.info(" start to post celery")
                try:
                    delete_user_instance_network(request, q.uuid)
                except:
                    pass
            LOG.info("*** user_instances are ***" + str(user_instances))
            """
            queryset = RouterInterface.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                network = Network.objects.get(pk=q.network_id)
                network_id = network.network_id or "no"

                subnet = Subnet.objects.get(pk=q.subnet_id)
                subnet_id = subnet.subnet_id or "no"

                router = Router.objects.get(pk=q.router_id)
                router_id = router.router_id or "no"
                try:
                    delete_user_router_interface(q, router_id, subnet_id, q.os_port_id)
                except:
                    pass
                #routerinterfaces = network_id + ";" + subnet_id + ";" + router_id + ";" + q.os_port_id
            """
            queryset = Router.objects.all().filter(deleted=False,
                                                   user_id=user_id)
            for q in queryset:
                user_routers.append(q.router_id)
                LOG.info(" start to post celery to delete router")
                try:
                    router_delete_task(q)
                except:
                    pass
            LOG.info("*** user_routers are ***" + str(user_routers))

            queryset = Network.objects.all().filter(deleted=False,
                                                    user_id=user_id)
            for q in queryset:
                user_networks.append(q.network_id)
                try:
                    LOG.info(" begin to detach network")
                    LOG.info(" network id is" + str(q.network_id))
                    network_id = q.id
                    detach_network_from_router(network_id)
                    LOG.info(" after detach network ")
                except:
                    pass
                LOG.info(" start to post celery to delete")
                try:
                    delete_network(q)
                except:
                    pass
            LOG.info("*** user_networks are ***" + str(user_networks))
            """
            queryset = Subnet.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                user_subnets.append(q.subnet_id)
            LOG.info("*** user_subnets are ***" + str(user_subnets))
            queryset = RouterInterface.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                network = Network.objects.get(pk=q.network_id)
                network_id = network.network_id or "no"

                subnet = Subnet.objects.get(pk=q.subnet_id)
                subnet_id = subnet.subnet_id or "no"

                router = Router.objects.get(pk=q.router_id)
                router_id = router.router_id or "no"

                routerinterfaces = network_id + ";" + subnet_id + ";" + router_id + ";" + q.os_port_id
                user_routersinterfaces.append(routerinterfaces)
            LOG.info("*** user_routerinterfaces are ***" + str(user_routersinterfaces))
            """
            try:
                user_keystone = UserDataCenter.objects.get(user_id=user_id)
                LOG.info("**** user_keystone is ***" + str(user_keystone))
                username = user_keystone.keystone_user
                tenant_id = user_keystone.tenant_uuid
                delete_keystone_user(tenant_id, username)
            except:
                pass
            try:
                user_deleted = User.objects.get(pk=user_id)
                user_deleted.delete()
            except:
                raise
        """
        # Delete instances
        LOG.info("** user_instances ***" + str(user_instances))
        for instance_id in user_instances:
            LOG.info(" start to post celery")
            try:
                delete_user_instance_network(request, instance_id)
            except:
                pass
            #action = "terminate"
            #data = instance_action(request.user, instance_id, action)
        # Delete Routers



        # Delete Router
        for router_id in user_routers:

            LOG.info(" start to post celery to delete router")
            try:
                delete_user_router(request, router_id)
            except:
                pass

        # Delete Network
        for network_id in user_networks:

            LOG.info(" start to post celery to delete network")
            try:
                delete_user_network(request, network_id)
            except:
                pass

        """
        return Response(
            {
                'success': True,
                "msg": _('Contract is updated successfully!')
            },
            status=status.HTTP_201_CREATED)

    except Exception as e:
        LOG.error("Failed to update contract, msg:[%s]" % e)
        return Response({
            "success":
            False,
            "msg":
            _('Failed to update contract for unknown reason.')
        })
def batchdelete(request):

    # If we delete user first, all the related things delete.So we should collect information first.

    

    # Delete user staff.

    # First delete user from any models.
    # Second delete vms by user
    # Third delete network & router

    try:

        ids = request.data.getlist('ids[]')
        user_instances = []
        user_networks = []
        user_subnets = []
        user_routers = []
        user_routersinterfaces = []
        for user_id in ids:
            LOG.info("*** user_id is ***" + str(user_id))
            queryset = Instance.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                user_instances.append(q.uuid)
                LOG.info(" start to post celery")
                try:
                    delete_user_instance_network(request, q.uuid)
                except:
                    pass
            LOG.info("*** user_instances are ***" + str(user_instances))

            """
            queryset = RouterInterface.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                network = Network.objects.get(pk=q.network_id)
                network_id = network.network_id or "no"

                subnet = Subnet.objects.get(pk=q.subnet_id)
                subnet_id = subnet.subnet_id or "no"

                router = Router.objects.get(pk=q.router_id)
                router_id = router.router_id or "no"
                try:
                    delete_user_router_interface(q, router_id, subnet_id, q.os_port_id)
                except:
                    pass
                #routerinterfaces = network_id + ";" + subnet_id + ";" + router_id + ";" + q.os_port_id
            """
            queryset = Router.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                user_routers.append(q.router_id)
                LOG.info(" start to post celery to delete router")
                try:
                    router_delete_task(q)
                except:
                    pass
            LOG.info("*** user_routers are ***" + str(user_routers))


            queryset = Network.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                user_networks.append(q.network_id)
                try:
                    LOG.info(" begin to detach network")
                    LOG.info(" network id is" + str(q.network_id))
                    network_id = q.id
                    detach_network_from_router(network_id)
                    LOG.info(" after detach network ")
                except:
                    pass
                LOG.info(" start to post celery to delete")
                try:
                    delete_network(q)
                except:
                    pass
            LOG.info("*** user_networks are ***" + str(user_networks))

            """
            queryset = Subnet.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                user_subnets.append(q.subnet_id)
            LOG.info("*** user_subnets are ***" + str(user_subnets))
            queryset = RouterInterface.objects.all().filter(deleted=False, user_id=user_id)
            for q in queryset:
                network = Network.objects.get(pk=q.network_id)
                network_id = network.network_id or "no"

                subnet = Subnet.objects.get(pk=q.subnet_id)
                subnet_id = subnet.subnet_id or "no"

                router = Router.objects.get(pk=q.router_id)
                router_id = router.router_id or "no"

                routerinterfaces = network_id + ";" + subnet_id + ";" + router_id + ";" + q.os_port_id
                user_routersinterfaces.append(routerinterfaces)
            LOG.info("*** user_routerinterfaces are ***" + str(user_routersinterfaces))
            """
            try:
                user_keystone = UserDataCenter.objects.get(user_id=user_id)
                LOG.info("**** user_keystone is ***" + str(user_keystone))
                username = user_keystone.keystone_user
                tenant_id = user_keystone.tenant_uuid
                delete_keystone_user(tenant_id, username)
            except:
                pass
            try:
                user_deleted = User.objects.get(pk=user_id)
                user_deleted.delete()
            except:
                raise
 
        """
        # Delete instances
        LOG.info("** user_instances ***" + str(user_instances))
        for instance_id in user_instances:
            LOG.info(" start to post celery")
            try:
                delete_user_instance_network(request, instance_id)
            except:
                pass
            #action = "terminate"
            #data = instance_action(request.user, instance_id, action)
        # Delete Routers



        # Delete Router
        for router_id in user_routers:

            LOG.info(" start to post celery to delete router")
            try:
                delete_user_router(request, router_id)
            except:
                pass

        # Delete Network
        for network_id in user_networks:

            LOG.info(" start to post celery to delete network")
            try:
                delete_user_network(request, network_id)
            except:
                pass

        """
        return Response(
            {'success': True, "msg": _('Contract is updated successfully!')},
            status=status.HTTP_201_CREATED)

    except Exception as e:
        LOG.error("Failed to update contract, msg:[%s]" % e)
        return Response({"success": False, "msg": _(
            'Failed to update contract for unknown reason.')})