Source code for saltext.vcf.clients.vcfops_supermetric
"""VCF Operations — super metrics (formula-defined derived metrics)."""
import requests
from saltext.vcf.utils import vcfops
_PATH = "/suite-api/api/supermetrics"
def list_(opts, page=0, page_size=1000):
return vcfops.api_get(opts, _PATH, params={"page": page, "pageSize": page_size})
def get(opts, supermetric_id):
return vcfops.api_get(opts, f"{_PATH}/{supermetric_id}")
def get_or_none(opts, supermetric_id):
try:
return get(opts, supermetric_id)
except requests.HTTPError as exc:
if exc.response is not None and exc.response.status_code == 404:
return None
raise
[docs]
def create(opts, supermetric_spec):
"""Create a super metric.
*supermetric_spec* example::
{"name": "rolling-avg-cpu",
"formula": "avg(${this, metric=cpu|usage_average})",
"description": "..."}
"""
return vcfops.api_post(opts, _PATH, body=supermetric_spec)
def update(opts, supermetric_id, supermetric_spec):
return vcfops.api_put(opts, f"{_PATH}/{supermetric_id}", body=supermetric_spec)
def delete(opts, supermetric_id):
return vcfops.api_delete(opts, f"{_PATH}/{supermetric_id}")