diff options
| author | Ankur Gupta <ankur.gupta@intel.com> | 2016-09-27 17:00:43 -0500 |
|---|---|---|
| committer | Ankur <ankur.gupta@intel.com> | 2017-01-23 00:24:35 +0000 |
| commit | 5caac0e5634fd65e2f635b724f00461eaebd58bf (patch) | |
| tree | ec745f56039d6f8111f2857864e705c897ca5423 /openstackclient/tests/functional/network/v2 | |
| parent | 607f31d3db924517c18fd192239e5ef5963e17f3 (diff) | |
| download | python-openstackclient-5caac0e5634fd65e2f635b724f00461eaebd58bf.tar.gz | |
Add meter rule to OSC
Implement network feature meter label rules into
OpenStack Client.
Allows for creation of rules to meter
network traffic.
Partially Implements: blueprint neutron-client-metering
Change-Id: If18c078d7e80c122583417669f820f02c84d6237
Diffstat (limited to 'openstackclient/tests/functional/network/v2')
| -rw-r--r-- | openstackclient/tests/functional/network/v2/test_network_meter_rule.py | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/network/v2/test_network_meter_rule.py b/openstackclient/tests/functional/network/v2/test_network_meter_rule.py new file mode 100644 index 00000000..4f079e3c --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_network_meter_rule.py @@ -0,0 +1,108 @@ +# Copyright (c) 2016, Intel Corporation. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# 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 re +import uuid + +from openstackclient.tests.functional import base + + +class TestMeterRule(base.TestCase): + """Functional tests for meter rule""" + METER_NAME = uuid.uuid4().hex + METER_ID = None + METER_RULE_ID = None + + @classmethod + def setUpClass(cls): + # Set up some regex for matching below + cls.re_id = re.compile("id\s+\|\s+(\S+)") + cls.re_direction = re.compile("direction\s+\|\s+(\S+)") + cls.re_ip_prefix = re.compile( + "remote_ip_prefix\s+\|\s+([^|]+?)\s+\|" + ) + cls.re_meter_id = re.compile("metering_label_id\s+\|\s+(\S+)") + + raw_output = cls.openstack( + 'network meter create ' + cls.METER_NAME + ) + + cls.METER_ID = re.search(cls.re_id, raw_output).group(1) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('network meter delete ' + cls.METER_ID) + cls.assertOutput('', raw_output) + + def test_meter_rule_delete(self): + """test create, delete""" + + raw_output = self.openstack( + 'network meter rule create ' + + '--remote-ip-prefix 10.0.0.0/8 ' + + self.METER_ID + ) + rule_id = re.search(self.re_id, raw_output).group(1) + re_ip = re.search(self.re_ip_prefix, raw_output) + + self.addCleanup(self.openstack, + 'network meter rule delete ' + rule_id) + self.assertIsNotNone(re_ip) + self.assertIsNotNone(rule_id) + + def test_meter_rule_list(self): + """Test create, list, delete""" + raw_output = self.openstack( + 'network meter rule create ' + + '--remote-ip-prefix 10.0.0.0/8 ' + + self.METER_ID + ) + rule_id = re.search(self.re_id, raw_output).group(1) + self.addCleanup(self.openstack, + 'network meter rule delete ' + rule_id) + self.assertEqual( + '10.0.0.0/8', + re.search(self.re_ip_prefix, raw_output).group(1) + ) + + raw_output = self.openstack('network meter rule list') + self.assertIsNotNone(re.search(rule_id + "|\s+\|\s+\|\s+10.0.0.0/8", + raw_output)) + + def test_meter_rule_show(self): + """Test create, show, delete""" + raw_output = self.openstack( + 'network meter rule create ' + + '--remote-ip-prefix 10.0.0.0/8 ' + + '--egress ' + + self.METER_ID + ) + rule_id = re.search(self.re_id, raw_output).group(1) + + self.assertEqual( + 'egress', + re.search(self.re_direction, raw_output).group(1) + ) + + raw_output = self.openstack('network meter rule show ' + rule_id) + + self.assertEqual( + '10.0.0.0/8', + re.search(self.re_ip_prefix, raw_output).group(1) + ) + self.assertIsNotNone(rule_id) + + self.addCleanup(self.openstack, + 'network meter rule delete ' + rule_id) |
