Beispiel #1
0
def create_view(request):
    floating = Floating.objects.create(
        ip="N/A",
        status=FLOATING_ALLOCATE,
        bandwidth=int(request.POST["bandwidth"]),
        user=request.user,
        user_data_center=UserDataCenter.objects.get(
            pk=request.session["UDC_ID"]))

    pay_type = request.data['pay_type']
    pay_num = int(request.data['pay_num'])

    Operation.log(floating, obj_name=floating.ip, action='allocate', result=1)

    workflow = Workflow.get_default(ResourceType.FLOATING)

    if settings.SITE_CONFIG['WORKFLOW_ENABLED'] and workflow:

        floating.status = FLOATING_APPLYING
        floating.save()

        FlowInstance.create(floating, request.user, workflow, None)
        msg = _(
            "Your application for %(bandwidth)d Mbps floating ip is successful, "
            "please waiting for approval result!") % {
                'bandwidth': floating.bandwidth
            }
    else:
        msg = _("Your operation is successful, please wait for allocation.")
        allocate_floating_task.delay(floating)
        Order.for_floating(floating, pay_type, pay_num)

    return Response({"OPERATION_STATUS": 1, 'msg': msg})
Beispiel #2
0
    def workflow_approve_callback(self, flow_instance):
        from cloud.tasks import allocate_floating_task

        try:
            allocate_floating_task.delay(self)

            self.status = FLOATING_ALLOCATE
            self.save()

            content = title = _('Your application for %(bandwidth)d Mbps floating IP is approved! ') \
                % {'bandwidth': self.bandwidth}
            Notification.info(flow_instance.owner,
                              title,
                              content,
                              is_auto=True)
        except:

            self.status = FLOATING_ERROR
            self.save()

            title = _('Error happened to your application for floating IP')

            content = _(
                'Your application for %(bandwidth)d Mbps floating ip is approved, '
                'but an error happened when creating it.') % {
                    'bandwidth': self.bandwidth
                }

            Notification.error(flow_instance.owner,
                               title,
                               content,
                               is_auto=True)
Beispiel #3
0
def create_view(request):
    floating = Floating.objects.create(
        ip="N/A",
        status=FLOATING_ALLOCATE,
        bandwidth=int(request.POST["bandwidth"]),
        user=request.user,
        user_data_center=UserDataCenter.objects.get(pk=request.session["UDC_ID"])
    )

    pay_type = request.data['pay_type']
    pay_num = int(request.data['pay_num'])

    Operation.log(floating, obj_name=floating.ip, action='allocate', result=1)

    workflow = Workflow.get_default(ResourceType.FLOATING)

    if settings.SITE_CONFIG['WORKFLOW_ENABLED'] and workflow:

        floating.status = FLOATING_APPLYING
        floating.save()

        FlowInstance.create(floating, request.user, workflow, None)
        msg = _("Your application for %(bandwidth)d Mbps floating ip is successful, "
                "please waiting for approval result!") % {'bandwidth': floating.bandwidth}
    else:
        msg = _("Your operation is successful, please wait for allocation.")
        allocate_floating_task.delay(floating)
        Order.for_floating(floating, pay_type, pay_num)

    return Response({"OPERATION_STATUS": 1, 'msg': msg})
Beispiel #4
0
    def workflow_approve_callback(self, flow_instance):
        from cloud.tasks import allocate_floating_task

        try:
            allocate_floating_task.delay(self)

            self.status = FLOATING_ALLOCATE
            self.save()

            content = title = _('Your application for %(bandwidth)d Mbps floating IP is approved! ') \
                % {'bandwidth': self.bandwidth}
            Notification.info(flow_instance.owner, title, content, is_auto=True)
        except:

            self.status = FLOATING_ERROR
            self.save()

            title = _('Error happened to your application for floating IP')

            content = _('Your application for %(bandwidth)d Mbps floating ip is approved, '
                        'but an error happened when creating it.') % {'bandwidth': self.bandwidth}

            Notification.error(flow_instance.owner, title, content, is_auto=True)
Beispiel #5
0
def allocate_floating(floating):
    Operation.log(floating, obj_name=floating.ip, action='allocate', result=1)
    allocate_floating_task.delay(floating)
    return {"OPERATION_STATUS": OPERATION_SUCCESS}
Beispiel #6
0
def allocate_floating(floating):
    Operation.log(floating, obj_name=floating.ip, action='allocate', result=1)
    allocate_floating_task.delay(floating) 
    return {"OPERATION_STATUS": OPERATION_SUCCESS}