Exemple #1
0
def creating(context, subscription_id, tenant_id, item_name, resource_uuid,
             created_at, updated_at, expires_at,
             order_unit, order_size, price, currency, region_name,
             interval_unit, interval_size, is_prepaid):
    app = context.app
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid):
        app.info("wait:%s creating, but %s not running." % (str(subscription_id), item_name))
        if created_at + relativedelta(minutes=10) < utils.utcnow():
            app.info("%s(%s) status creating-->error" % (str(subscription_id), item_name))
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        interval_info = {
            interval_unit: interval_size,
            }
        app.info("%s(%s) status creating-->verify" % (str(subscription_id), item_name))
        db.subscription_verify(context, subscription_id)
        if is_prepaid:
            quantity = conn.get_usage(resource_uuid,
                    expires_at - relativedelta(**interval_info),
                    expires_at, order_size)
            print "creating and is running", tenant_id, subscription_id, \
                    quantity, order_size, "\033[1;33m", price, "\033[0m"
            app.info("creating %s:subid=%s,tid=%s,price=%s" % (item_name, subscription_id, tenant_id, str(price)))
            charge(context, tenant_id, subscription_id, quantity,
                   order_size, price)
        else:
            app.info("%s/%s/%s is_prepaid" % (tenant_id, str(subscription_id), item_name))
        db.subscription_extend(context, subscription_id,
                               expires_at + relativedelta(**interval_info))
Exemple #2
0
def deleting(context, subscription_id, tenant_id, item_name, resource_uuid,
             created_at, updated_at, expires_at,
             order_unit, order_size, price, currency, region_name,
             interval_unit, interval_size, is_prepaid):
    app = context.app
    conn = driver.get_connection(item_name)
    if not conn.is_terminated(resource_uuid):
        app.info("wait:%s deleting, but %s not terminated." % (str(subscription_id), item_name))
        if updated_at + relativedelta(minutes=10) < utils.utcnow():
            app.info("%s(%s) status deleting-->error" % (str(subscription_id), item_name))
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        # TODO(lzyeval): implement
        app.info("%s(%s) status deleting-->terminated" % (str(subscription_id), item_name))
        db.subscription_terminate(context, subscription_id)
        if not is_prepaid:
            interval_info = {
                interval_unit: interval_size,
                }
            quantity = conn.get_usage(resource_uuid,
                    expires_at - relativedelta(**interval_info),
                    expires_at, order_size)
            print "deleting", tenant_id, subscription_id, \
                    quantity, order_size, "\033[1;33m", price, "\033[0m"
            app.info("deleting %s(%s),tid=%s,price=%s" % (subscription_id, item_name, tenant_id, str(price)))
            charge(context, tenant_id, subscription_id, quantity,
                   order_size, price)
        else:
            app.info("%s/%s/%s is_prepaid" % (tenant_id, str(subscription_id), item_name))
Exemple #3
0
def deleting(context, subscription_id, tenant_id, item_name, resource_uuid,
             created_at, updated_at, expires_at, order_unit, order_size, price,
             currency, region_name, interval_unit, interval_size, is_prepaid):
    app = context.app
    conn = driver.get_connection(item_name)
    if not conn.is_terminated(resource_uuid):
        app.info("wait:%s deleting, but %s not terminated." %
                 (str(subscription_id), item_name))
        if updated_at + relativedelta(minutes=10) < utils.utcnow():
            app.info("%s(%s) status deleting-->error" %
                     (str(subscription_id), item_name))
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        # TODO(lzyeval): implement
        app.info("%s(%s) status deleting-->terminated" %
                 (str(subscription_id), item_name))
        db.subscription_terminate(context, subscription_id)
        if not is_prepaid:
            interval_info = {
                interval_unit: interval_size,
            }
            quantity = conn.get_usage(
                resource_uuid, expires_at - relativedelta(**interval_info),
                expires_at, order_size)
            print "deleting", tenant_id, subscription_id, \
                    quantity, order_size, "\033[1;33m", price, "\033[0m"
            app.info("deleting %s(%s),tid=%s,price=%s" %
                     (subscription_id, item_name, tenant_id, str(price)))
            charge(context, tenant_id, subscription_id, quantity, order_size,
                   price)
        else:
            app.info("%s/%s/%s is_prepaid" %
                     (tenant_id, str(subscription_id), item_name))
Exemple #4
0
def creating(context, subscription_id, tenant_id, item_name, resource_uuid,
             created_at, updated_at, expires_at, order_unit, order_size, price,
             currency, region_name, interval_unit, interval_size, is_prepaid):
    app = context.app
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid):
        app.info("wait:%s creating, but %s not running." %
                 (str(subscription_id), item_name))
        if created_at + relativedelta(minutes=10) < utils.utcnow():
            app.info("%s(%s) status creating-->error" %
                     (str(subscription_id), item_name))
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        interval_info = {
            interval_unit: interval_size,
        }
        app.info("%s(%s) status creating-->verify" %
                 (str(subscription_id), item_name))
        db.subscription_verify(context, subscription_id)
        if is_prepaid:
            quantity = conn.get_usage(
                resource_uuid, expires_at - relativedelta(**interval_info),
                expires_at, order_size)
            print "creating and is running", tenant_id, subscription_id, \
                    quantity, order_size, "\033[1;33m", price, "\033[0m"
            app.info("creating %s:subid=%s,tid=%s,price=%s" %
                     (item_name, subscription_id, tenant_id, str(price)))
            charge(context, tenant_id, subscription_id, quantity, order_size,
                   price)
        else:
            app.info("%s/%s/%s is_prepaid" %
                     (tenant_id, str(subscription_id), item_name))
        db.subscription_extend(context, subscription_id,
                               expires_at + relativedelta(**interval_info))
Exemple #5
0
def charge(context, tenant_id, subscription_id, quantity, order_size, price):
    line_total = order_size * price / quantity
    values = {
        'subscription_id': subscription_id,
        'quantity': quantity,
        'line_total': line_total,
    }
    db.purchase_create(context, values)
    conn = driver.get_connection('corporate')
    conn.deduct(tenant_id, line_total)
Exemple #6
0
def verified(context, subscription_id, tenant_id, resource_uuid,
             created_at, deleted_at, expires_at,
             order_unit, order_size, price, currency, region_name, 
             item_name, interval_unit, interval_size, is_prepaid):
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid):
        raise Exception()
    interval_info = {
        interval_unit: interval_size,
        }
    quantity = conn.get_usage(resource_uuid,
                              expires_at - relativedelta(**interval_info),
                              expires_at, order_size)
    charge(context, tenant_id, subscription_id, quantity, order_size, price)
    db.subscription_extend(context, subscription_id,
                           expires_at + relativedelta(**interval_info))
Exemple #7
0
def verified(context, subscription_id, tenant_id, resource_uuid,
             created_at, updated_at, expires_at,
             order_unit, order_size, price, currency, region_name, 
             item_name, interval_unit, interval_size, is_prepaid):
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid):
        # FIXME(lzyeval): raise Exception()
        return
    interval_info = {
        interval_unit: interval_size,
        }
    quantity = conn.get_usage(resource_uuid,
                              expires_at - relativedelta(**interval_info),
                              expires_at, order_size)
    charge(context, tenant_id, subscription_id, quantity, order_size, price)
    db.subscription_extend(context, subscription_id,
                           expires_at + relativedelta(**interval_info))
Exemple #8
0
def deleting(context, subscription_id, tenant_id, resource_uuid,
             created_at, deleted_at, expires_at,
             order_unit, order_size, price, currency, region_name, 
             item_name, interval_unit, interval_size, is_prepaid):
    conn = driver.get_connection(item_name)
    if not conn.is_terminated(resource_uuid):
        if deleted_at + relativedelta(minutes=10) < utils.utcnow():
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        # TODO(lzyeval): implement
        db.subscription_destroy(context, subscription_id)
        if not is_prepaid:
            interval_info = {
                interval_unit: interval_size,
                }
            quantity = conn.get_usage(resource_uuid,
                    expires_at - relativedelta(**interval_info),
                    expires_at, order_size)
            charge(context, tenant_id, subscription_id, quantity, order_size, price)
Exemple #9
0
def deleting(context, subscription_id, tenant_id, resource_uuid,
             created_at, updated_at, expires_at,
             order_unit, order_size, price, currency, region_name, 
             item_name, interval_unit, interval_size, is_prepaid):
    conn = driver.get_connection(item_name)
    if not conn.is_terminated(resource_uuid):
        if updated_at + relativedelta(minutes=10) < utils.utcnow():
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        # TODO(lzyeval): implement
        db.subscription_terminate(context, subscription_id)
        if not is_prepaid:
            interval_info = {
                interval_unit: interval_size,
                }
            quantity = conn.get_usage(resource_uuid,
                    expires_at - relativedelta(**interval_info),
                    expires_at, order_size)
            charge(context, tenant_id, subscription_id, quantity,
                   order_size, price)
Exemple #10
0
def verified(context, subscription_id, tenant_id, item_name, resource_uuid,
             created_at, updated_at, expires_at,
             order_unit, order_size, price, currency, region_name,
             interval_unit, interval_size, is_prepaid):
    app = context.app
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid, tenant_id=tenant_id):
        # FIXME(lzyeval): raise Exception()
        app.info("%s verified, but %s not running." % (str(subscription_id), item_name))
        return
    interval_info = {
        interval_unit: interval_size,
        }
    quantity = conn.get_usage(resource_uuid,
                              expires_at - relativedelta(**interval_info),
                              expires_at, order_size)
    print "verified", tenant_id, subscription_id, \
                    quantity, order_size, "\033[1;33m", price, "\033[0m"
    app.info("verified %s:subid=%s,tid=%s,price=%s" % (item_name, subscription_id, tenant_id, str(price)))
    charge(context, tenant_id, subscription_id, quantity, order_size, price)
    db.subscription_extend(context, subscription_id,
                           expires_at + relativedelta(**interval_info))
Exemple #11
0
def creating(context, subscription_id, tenant_id, resource_uuid,
             created_at, updated_at, expires_at,
             order_unit, order_size, price, currency, region_name, 
             item_name, interval_unit, interval_size, is_prepaid):
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid):
        if created_at + relativedelta(minutes=10) < utils.utcnow():
            db.subscription_error(context, subscription_id)
            # TODO(lzyeval): report
    else:
        interval_info = {
            interval_unit: interval_size,
            }
        db.subscription_verify(context, subscription_id)
        if is_prepaid:
            quantity = conn.get_usage(resource_uuid,
                    expires_at - relativedelta(**interval_info),
                    expires_at, order_size)
            charge(context, tenant_id, subscription_id, quantity,
                   order_size, price)
        db.subscription_extend(context, subscription_id,
                               expires_at + relativedelta(**interval_info))
Exemple #12
0
def verified(context, subscription_id, tenant_id, item_name, resource_uuid,
             created_at, updated_at, expires_at, order_unit, order_size, price,
             currency, region_name, interval_unit, interval_size, is_prepaid):
    app = context.app
    conn = driver.get_connection(item_name)
    if not conn.is_running(resource_uuid, tenant_id=tenant_id):
        # FIXME(lzyeval): raise Exception()
        app.info("%s verified, but %s not running." %
                 (str(subscription_id), item_name))
        return
    interval_info = {
        interval_unit: interval_size,
    }
    quantity = conn.get_usage(resource_uuid,
                              expires_at - relativedelta(**interval_info),
                              expires_at, order_size)
    print "verified", tenant_id, subscription_id, \
                    quantity, order_size, "\033[1;33m", price, "\033[0m"
    app.info("verified %s(%s/%s/%s)" \
             % (subscription_id, item_name, str(price), str(expires_at)))
    charge(context, tenant_id, subscription_id, quantity, order_size, price)
    db.subscription_extend(context, subscription_id,
                           expires_at + relativedelta(**interval_info))