def calc_cost(request, global_summary, unit_cost, unit_flag): today = datetime.datetime.today() LOG.info(' ------^^^^global summary^^^^^-------- %s ' %(global_summary.summary)) global_cost = global_cost_obj(request, '0') if (('total_cpu_usage' in global_summary.summary) and (unit_flag == 1)): global_cost.vcpus = float(global_summary.summary['total_cpu_usage']) * float(unit_cost.vcpu) global_cost.ram = float(global_summary.summary['total_ram_usage']) * float(unit_cost.ram) global_cost.vdisk = float(global_summary.summary['total_disk_usage']) * float(unit_cost.vdisk) global_cost.total = global_cost.vcpus + global_cost.ram + global_cost.vdisk for usage in global_summary.usage_list: LOG.info(' ---$$--usage details-$$$$---- %s -----$-------- ' %(usage.__dict__)) usage.total_cpu_cost = (float(usage.total_cpu_usage) * float(unit_cost.vcpu)) usage.total_ram_cost = (float(usage.total_ram_usage) * float(unit_cost.ram)) usage.total_disk_cost = (float(usage.total_disk_usage) * float(unit_cost.vdisk)) usage.total_cost = usage.total_cpu_cost + usage.total_ram_cost + usage.total_disk_cost for instance in usage.instances: LOG.info(' ---$$--instance---- %s --- ' %(instance)) cost_vcpus = float(instance['vcpus']) * float(unit_cost.vcpu) * float(instance['hours']) cost_ram = float(instance['ram_size']) * float(unit_cost.ram)* float(instance['hours']) cost_vdisk = float(instance['disk_size']) * float(unit_cost.vdisk)* float(instance['hours']) instance['cost'] = float(cost_vcpus + cost_ram + cost_vdisk) total_icost = instance['cost'] LOG.info(' ---$$--instance cost-$$$$---- %s -----$-%s cost_vcpus------- ' %(instance, cost_vcpus)) #try: # instanceB = api.biller_get_ibill(request, instance['id']) #if instanceB['changed_on'] < _current_month(): #cost_vcpus+ =instanceB['total_vcpu'] #cost_ram += instanceB['total_ram'] #cost_vdisk +=instanceB['total_vdisk'] #total_icost +=instanceB['total_cost'] #except : # LOG.exception('New instance bill') try: instanceBill = api.biller_create_ibill(request, instance['id'], instance['name'], float(cost_vcpus), float(cost_ram), float(cost_vdisk), float(total_icost), today, True) # messages.success(request, 'A Instance Bill Unit was successfully created.') instanceBill1 = api.biller_get_ibill(request, instance['id']) LOG.info('instance get --- %s---'%instanceBill1.__dict__) except api_exceptions.ApiException, e: LOG.exception('ApiException while creating Instance bill Unit\n') LOG.info(' ---$$--Updating tenant usage of tenent ID : %s =======-$$$$---- -----$-------- ' %(usage.tenant_id)) tenant_usage(request, usage.tenant_id, 1) LOG.info(' ---$$--Updated tenant usage of tenent ID : %s =======-$$$$---- -----$-------- ' %(usage.tenant_id))
def calc_cost(request, global_summary, unit_cost, unit_flag): today = datetime.datetime.today() LOG.info(' ------^^^^global summary^^^^^-------- %s ' % (global_summary.summary)) global_cost = global_cost_obj(request, '0') if (('total_cpu_usage' in global_summary.summary) and (unit_flag == 1)): global_cost.vcpus = float( global_summary.summary['total_cpu_usage']) * float(unit_cost.vcpu) global_cost.ram = float( global_summary.summary['total_ram_usage']) * float(unit_cost.ram) global_cost.vdisk = float( global_summary.summary['total_disk_usage']) * float( unit_cost.vdisk) global_cost.total = global_cost.vcpus + global_cost.ram + global_cost.vdisk for usage in global_summary.usage_list: LOG.info(' ---$$--usage details-$$$$---- %s -----$-------- ' % (usage.__dict__)) usage.total_cpu_cost = (float(usage.total_cpu_usage) * float(unit_cost.vcpu)) usage.total_ram_cost = (float(usage.total_ram_usage) * float(unit_cost.ram)) usage.total_disk_cost = (float(usage.total_disk_usage) * float(unit_cost.vdisk)) usage.total_cost = usage.total_cpu_cost + usage.total_ram_cost + usage.total_disk_cost for instance in usage.instances: LOG.info(' ---$$--instance---- %s --- ' % (instance)) cost_vcpus = float(instance['vcpus']) * float( unit_cost.vcpu) * float(instance['hours']) cost_ram = float(instance['ram_size']) * float( unit_cost.ram) * float(instance['hours']) cost_vdisk = float(instance['disk_size']) * float( unit_cost.vdisk) * float(instance['hours']) instance['cost'] = float(cost_vcpus + cost_ram + cost_vdisk) total_icost = instance['cost'] LOG.info( ' ---$$--instance cost-$$$$---- %s -----$-%s cost_vcpus------- ' % (instance, cost_vcpus)) #try: # instanceB = api.biller_get_ibill(request, instance['id']) #if instanceB['changed_on'] < _current_month(): #cost_vcpus+ =instanceB['total_vcpu'] #cost_ram += instanceB['total_ram'] #cost_vdisk +=instanceB['total_vdisk'] #total_icost +=instanceB['total_cost'] #except : # LOG.exception('New instance bill') try: instanceBill = api.biller_create_ibill( request, instance['id'], instance['name'], float(cost_vcpus), float(cost_ram), float(cost_vdisk), float(total_icost), today, True) # messages.success(request, 'A Instance Bill Unit was successfully created.') instanceBill1 = api.biller_get_ibill( request, instance['id']) LOG.info('instance get --- %s---' % instanceBill1.__dict__) except api_exceptions.ApiException, e: LOG.exception( 'ApiException while creating Instance bill Unit\n') LOG.info( ' ---$$--Updating tenant usage of tenent ID : %s =======-$$$$---- -----$-------- ' % (usage.tenant_id)) tenant_usage(request, usage.tenant_id, 1) LOG.info( ' ---$$--Updated tenant usage of tenent ID : %s =======-$$$$---- -----$-------- ' % (usage.tenant_id))
cost_vcpus = float(i['vcpus']) * float(unit_cost.vcpu) * float( i['hours']) cost_ram = float(i['ram_size']) * float(unit_cost.ram) * float( i['hours']) cost_vdisk = float(i['disk_size']) * float( unit_cost.vdisk) * float(i['hours']) i['cost'] = float(cost_vcpus + cost_ram + cost_vdisk) total_vcpu += cost_vcpus total_vram += cost_ram total_vdisk += cost_vdisk total_cost += i['cost'] try: instanceBill = api.biller_create_ibill(request, i['id'], i['name'], float(cost_vcpus), float(cost_ram), float(cost_vdisk), float(i['cost']), today, True) except api_exceptions.ApiException, e: LOG.exception( 'ApiException while creating Instance billbill Unit\n') i['uptime_at'] = now - datetime.timedelta(seconds=i['uptime']) if i['ended_at']: terminated_instances.append(i) else: running_instances.append(i) usage.total_cost = total_cost try: LOG.exception('-----Tenent Creation Started -------')
# with the 'timesince' filter. Use of local time intentional LOG.info(' ---$$--instance---- %s --- ' %(i)) cost_vcpus = float(i['vcpus']) * float(unit_cost.vcpu)* float(i['hours']) cost_ram = float(i['ram_size']) * float(unit_cost.ram)* float(i['hours']) cost_vdisk = float(i['disk_size']) * float(unit_cost.vdisk)* float(i['hours']) i['cost'] = float(cost_vcpus + cost_ram + cost_vdisk) total_vcpu+=cost_vcpus total_vram+=cost_ram total_vdisk+=cost_vdisk total_cost+=i['cost'] try: instanceBill = api.biller_create_ibill(request, i['id'], i['name'], float(cost_vcpus), float(cost_ram), float(cost_vdisk), float(i['cost']), today, True) except api_exceptions.ApiException, e: LOG.exception('ApiException while creating Instance billbill Unit\n') i['uptime_at'] = now - datetime.timedelta(seconds=i['uptime']) if i['ended_at']: terminated_instances.append(i) else: running_instances.append(i) usage.total_cost=total_cost try: LOG.exception('-----Tenent Creation Started -------')