in app/marketplace.py [0:0]
def _meter_usage(self, dimension, dry_run=False):
logger.info(f"_metering_usage: {dimension} ")
utc_now = datetime.utcnow()
try:
response = self._mms_client.meter_usage(
ProductCode=self._product_code,
Timestamp=utc_now,
UsageDimension=dimension.name,
UsageQuantity=int(dimension.quantity),
DryRun=dry_run)
status_code = response["ResponseMetadata"]["HTTPStatusCode"]
if (not dry_run and status_code == 200):
self._dimensions_storage.reset_dimensions_quantity(dimension)
self.state.discard_dimension_errors(dimension.name)
return response
except ClientError as err:
if (dry_run):
raise
self.state.add_error(err)
logger.error(err)
except:
if (dry_run):
raise
self.state.add(f"{sys.exc_info()[1]}")
logger.error((f"{sys.exc_info()[1]}"))