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))
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))
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))
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))
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)
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))
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))
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)
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)
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))
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))
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))