Merge "metric: add support for `--create-metrics' in batch-resources-metrics"

This commit is contained in:
Jenkins 2016-11-21 12:12:34 +00:00 committed by Gerrit Code Review
commit f5035d18fb
3 changed files with 19 additions and 3 deletions

View File

@ -330,6 +330,14 @@ class MetricClientTest(base.ClientTestBase):
self.gnocchi('measures', params="batch-resources-metrics -",
input=measures.encode('utf8'))
# BATCHING --create-metrics
measures = json.dumps({'metric-res': {'unknown-metric-name': [{
'timestamp': '2015-03-06T14:34:12', 'value': 12
}]}})
self.gnocchi('measures',
params="batch-resources-metrics --create-metrics -",
input=measures.encode('utf8'),)
# LIST
result = self.gnocchi('metric', params="list")
metrics = self.parser.listing(result)

View File

@ -151,7 +151,7 @@ class MetricManager(base.Manager):
headers={'Content-Type': "application/json"},
data=jsonutils.dumps(measures))
def batch_resources_metrics_measures(self, measures):
def batch_resources_metrics_measures(self, measures, create_metrics=False):
"""Add measurements to named metrics if resources
:param measures: measurements
@ -162,7 +162,8 @@ class MetricManager(base.Manager):
return self._post(
self.resources_batch_url,
headers={'Content-Type': "application/json"},
data=jsonutils.dumps(measures))
data=jsonutils.dumps(measures),
params=dict(create_metrics=create_metrics))
def get_measures(self, metric, start=None, stop=None, aggregation=None,
granularity=None, resource_id=None, refresh=False,

View File

@ -216,10 +216,17 @@ class CliMetricsMeasuresBatch(CliMeasuresBatch):
class CliResourcesMetricsMeasuresBatch(CliMeasuresBatch):
def get_parser(self, prog_name):
parser = super(CliResourcesMetricsMeasuresBatch, self).get_parser(
prog_name)
parser.add_argument("--create-metrics", action='store_true',
help="Create unknown metrics"),
return parser
def take_action(self, parsed_args):
with parsed_args.file as f:
utils.get_client(self).metric.batch_resources_metrics_measures(
json.load(f))
json.load(f), create_metrics=parsed_args.create_metrics)
class CliMeasuresAggregation(lister.Lister):