Merge "metric: change delete to allow deleting several metric at once"

This commit is contained in:
Jenkins 2015-10-08 15:38:17 +00:00 committed by Gerrit Code Review
commit 88fc558d4a
2 changed files with 42 additions and 7 deletions

View File

@ -9,11 +9,43 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import uuid
from gnocchiclient.tests.functional import base
class MetricClientTest(base.ClientTestBase):
def test_delete_several_metrics(self):
apname = str(uuid.uuid4())
# PREPARE AN ACHIVE POLICY
self.gnocchi("archive-policy", params="create %s "
"--back-window 0 -d granularity:1s,points:86400" % apname)
# Create 2 metrics
result = self.gnocchi(
u'metric', params=u"create"
u" --archive-policy-name %s" % apname)
metric1 = self.details_multiple(result)[0]
result = self.gnocchi(
u'metric', params=u"create"
u" --archive-policy-name %s" % apname)
metric2 = self.details_multiple(result)[0]
# DELETE
result = self.gnocchi('metric', params="delete %s %s"
% (metric1["id"], metric2["id"]))
self.assertEqual("", result)
# GET FAIL
result = self.gnocchi('metric', params="show %s" % metric1["id"],
fail_ok=True, merge_stderr=True)
self.assertFirstLineStartsWith(result.split('\n'),
"Not Found (HTTP 404)")
result = self.gnocchi('metric', params="show %s" % metric2["id"],
fail_ok=True, merge_stderr=True)
self.assertFirstLineStartsWith(result.split('\n'),
"Not Found (HTTP 404)")
def test_metric_scenario(self):
# PREPARE AN ACHIVE POLICY
self.gnocchi("archive-policy", params="create metric-test "
@ -189,7 +221,8 @@ class MetricClientTest(base.ClientTestBase):
self.assertEqual(metric[field], metric_from_list[field])
# DELETE
result = self.gnocchi('metric', params="delete metric-name metric-res")
result = self.gnocchi('metric',
params="delete -r metric-res metric-name")
self.assertEqual("", result)
# GET FAIL
@ -199,7 +232,8 @@ class MetricClientTest(base.ClientTestBase):
"Not Found (HTTP 404)")
# DELETE FAIL
result = self.gnocchi('metric', params="delete metric-name metric-res",
result = self.gnocchi('metric',
params="delete -r metric-res metric-name",
fail_ok=True, merge_stderr=True)
self.assertFirstLineStartsWith(result.split('\n'),
"Not Found (HTTP 404)")

View File

@ -76,15 +76,16 @@ class CliMetricCreate(show.ShowOne):
class CliMetricDelete(command.Command):
def get_parser(self, prog_name):
parser = super(CliMetricDelete, self).get_parser(prog_name)
parser.add_argument("metric",
help="ID or name of the metric")
parser.add_argument("resource_id", nargs='?',
parser.add_argument("metric", nargs='+',
help="IDs or names of the metric")
parser.add_argument("--resource-id", "-r",
help="ID of the resource")
return parser
def take_action(self, parsed_args):
self.app.client.metric.delete(metric=parsed_args.metric,
resource_id=parsed_args.resource_id)
for metric in parsed_args.metric:
self.app.client.metric.delete(metric=metric,
resource_id=parsed_args.resource_id)
class CliMeasuresGet(lister.Lister):