summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.zuul.yaml1
-rw-r--r--lower-constraints.txt2
-rw-r--r--neutronclient/v2_0/client.py68
-rw-r--r--releasenotes/notes/minimum-packet-rate-34576b8fd98a3034.yaml7
-rw-r--r--releasenotes/notes/paket_rate_limit-1266a2a30f18727f.yaml7
-rw-r--r--setup.cfg1
-rw-r--r--tox.ini2
7 files changed, 86 insertions, 2 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index e16794b..c82467a 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -64,6 +64,7 @@
Q_ML2_TENANT_NETWORK_TYPE: vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
devstack_plugins:
+ neutron: https://opendev.org/openstack/neutron
neutron-vpnaas: https://opendev.org/openstack/neutron-vpnaas
- job:
diff --git a/lower-constraints.txt b/lower-constraints.txt
index 44c70fa..7a7c54b 100644
--- a/lower-constraints.txt
+++ b/lower-constraints.txt
@@ -11,7 +11,7 @@ contextlib2==0.4.0
coverage==4.0
cryptography==2.7
debtcollector==1.2.0
-decorator==3.4.0
+decorator==4.1.0
deprecation==1.0
docutils==0.11
dogpile.cache==0.6.5
diff --git a/neutronclient/v2_0/client.py b/neutronclient/v2_0/client.py
index c264dfd..93a3af7 100644
--- a/neutronclient/v2_0/client.py
+++ b/neutronclient/v2_0/client.py
@@ -619,12 +619,20 @@ class Client(ClientBase):
qos_policy_path = "/qos/policies/%s"
qos_bandwidth_limit_rules_path = "/qos/policies/%s/bandwidth_limit_rules"
qos_bandwidth_limit_rule_path = "/qos/policies/%s/bandwidth_limit_rules/%s"
+ qos_packet_rate_limit_rules_path = \
+ "/qos/policies/%s/packet_rate_limit_rules"
+ qos_packet_rate_limit_rule_path = \
+ "/qos/policies/%s/packet_rate_limit_rules/%s"
qos_dscp_marking_rules_path = "/qos/policies/%s/dscp_marking_rules"
qos_dscp_marking_rule_path = "/qos/policies/%s/dscp_marking_rules/%s"
qos_minimum_bandwidth_rules_path = \
"/qos/policies/%s/minimum_bandwidth_rules"
qos_minimum_bandwidth_rule_path = \
"/qos/policies/%s/minimum_bandwidth_rules/%s"
+ qos_minimum_packet_rate_rules_path = \
+ "/qos/policies/%s/minimum_packet_rate_rules"
+ qos_minimum_packet_rate_rule_path = \
+ "/qos/policies/%s/minimum_packet_rate_rules/%s"
qos_rule_types_path = "/qos/rule-types"
qos_rule_type_path = "/qos/rule-types/%s"
flavors_path = "/flavors"
@@ -708,7 +716,9 @@ class Client(ClientBase):
'qos_policies': 'qos_policy',
'policies': 'policy',
'bandwidth_limit_rules': 'bandwidth_limit_rule',
+ 'packet_rate_limit_rules': 'packet_rate_limit_rule',
'minimum_bandwidth_rules': 'minimum_bandwidth_rule',
+ 'minimum_packet_rate_rules': 'minimum_packet_rate_rule',
'rules': 'rule',
'dscp_marking_rules': 'dscp_marking_rule',
'rule_types': 'rule_type',
@@ -1972,6 +1982,35 @@ class Client(ClientBase):
return self.post(self.qos_minimum_bandwidth_rules_path % policy,
body=body)
+ def list_packet_rate_limit_rules(self, policy_id, retrieve_all=True,
+ **_params):
+ """Fetches a list of all packet rate limit rules for the given policy
+
+ """
+ return self.list('packet_rate_limit_rules',
+ self.qos_packet_rate_limit_rules_path %
+ policy_id, retrieve_all, **_params)
+
+ def show_packet_rate_limit_rule(self, rule, policy, body=None):
+ """Fetches information of a certain packet rate limit rule."""
+ return self.get(self.qos_packet_rate_limit_rule_path %
+ (policy, rule), body=body)
+
+ def create_packet_rate_limit_rule(self, policy, body=None):
+ """Creates a new packet rate limit rule."""
+ return self.post(self.qos_packet_rate_limit_rules_path % policy,
+ body=body)
+
+ def update_packet_rate_limit_rule(self, rule, policy, body=None):
+ """Updates a packet rate limit rule."""
+ return self.put(self.qos_packet_rate_limit_rule_path %
+ (policy, rule), body=body)
+
+ def delete_packet_rate_limit_rule(self, rule, policy):
+ """Deletes a packet rate limit rule."""
+ return self.delete(self.qos_packet_rate_limit_rule_path %
+ (policy, rule))
+
def update_minimum_bandwidth_rule(self, rule, policy, body=None):
"""Updates a minimum bandwidth rule."""
return self.put(self.qos_minimum_bandwidth_rule_path %
@@ -1982,6 +2021,35 @@ class Client(ClientBase):
return self.delete(self.qos_minimum_bandwidth_rule_path %
(policy, rule))
+ def list_minimum_packet_rate_rules(self, policy_id, retrieve_all=True,
+ **_params):
+ """Fetches a list of all minimum packet rate rules for the given policy
+
+ """
+ return self.list('minimum_packet_rate_rules',
+ self.qos_minimum_packet_rate_rules_path %
+ policy_id, retrieve_all, **_params)
+
+ def show_minimum_packet_rate_rule(self, rule, policy, body=None):
+ """Fetches information of a certain minimum packet rate rule."""
+ return self.get(self.qos_minimum_packet_rate_rule_path %
+ (policy, rule), body=body)
+
+ def create_minimum_packet_rate_rule(self, policy, body=None):
+ """Creates a new minimum packet rate rule."""
+ return self.post(self.qos_minimum_packet_rate_rules_path % policy,
+ body=body)
+
+ def update_minimum_packet_rate_rule(self, rule, policy, body=None):
+ """Updates a minimum packet rate rule."""
+ return self.put(self.qos_minimum_packet_rate_rule_path %
+ (policy, rule), body=body)
+
+ def delete_minimum_packet_rate_rule(self, rule, policy):
+ """Deletes a minimum packet rate rule."""
+ return self.delete(self.qos_minimum_packet_rate_rule_path %
+ (policy, rule))
+
def create_flavor(self, body=None):
"""Creates a new Neutron service flavor."""
return self.post(self.flavors_path, body=body)
diff --git a/releasenotes/notes/minimum-packet-rate-34576b8fd98a3034.yaml b/releasenotes/notes/minimum-packet-rate-34576b8fd98a3034.yaml
new file mode 100644
index 0000000..7ce33f6
--- /dev/null
+++ b/releasenotes/notes/minimum-packet-rate-34576b8fd98a3034.yaml
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Added new client methods for QoS minimum packet rate rule:
+ ``list_minimum_packet_rate_rules``, ``show_minimum_packet_rate_rule``,
+ ``create_minimum_packet_rate_rule``, ``update_minimum_packet_rate_rule``,
+ ``delete_minimum_packet_rate_rule``.
diff --git a/releasenotes/notes/paket_rate_limit-1266a2a30f18727f.yaml b/releasenotes/notes/paket_rate_limit-1266a2a30f18727f.yaml
new file mode 100644
index 0000000..9fdfc1e
--- /dev/null
+++ b/releasenotes/notes/paket_rate_limit-1266a2a30f18727f.yaml
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Added new client methods for QoS packet rate limit rule:
+ ``list_packet_rate_limit_rules``, ``show_packet_rate_limit_rule``,
+ ``create_packet_rate_limit_rule``, ``update_packet_rate_limit_rule``,
+ ``delete_packet_rate_limit_rule``.
diff --git a/setup.cfg b/setup.cfg
index 9f06b5c..a1a60d8 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -21,6 +21,7 @@ classifier =
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
[files]
packages =
diff --git a/tox.ini b/tox.ini
index 8020b35..8e7aa16 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py38,pep8
+envlist = py39,pep8
minversion = 3.18.0
skipsdist = True
ignore_basepython_conflict = True