diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-03-11 01:33:50 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-03-11 01:33:50 +0000 |
| commit | d4b71ea890b2a32db78f874e573eb0a79dc3a4e7 (patch) | |
| tree | 08c0aebc4542d291fd3992aaf680a928d1593798 /openstackclient/network/utils.py | |
| parent | 4bb48c088d6be71a138990dd2a0fe25ec269ba9e (diff) | |
| parent | 564c8ff2403da87b96562076865f42426a4f8eac (diff) | |
| download | python-openstackclient-d4b71ea890b2a32db78f874e573eb0a79dc3a4e7.tar.gz | |
Merge "Refactor security group show to use SDK"
Diffstat (limited to 'openstackclient/network/utils.py')
| -rw-r--r-- | openstackclient/network/utils.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/openstackclient/network/utils.py b/openstackclient/network/utils.py new file mode 100644 index 00000000..287f0271 --- /dev/null +++ b/openstackclient/network/utils.py @@ -0,0 +1,41 @@ +# 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. +# + + +# Transform compute security group rule for display. +def transform_compute_security_group_rule(sg_rule): + info = {} + info.update(sg_rule) + from_port = info.pop('from_port') + to_port = info.pop('to_port') + if isinstance(from_port, int) and isinstance(to_port, int): + port_range = {'port_range': "%u:%u" % (from_port, to_port)} + elif from_port is None and to_port is None: + port_range = {'port_range': ""} + else: + port_range = {'port_range': "%s:%s" % (from_port, to_port)} + info.update(port_range) + if 'cidr' in info['ip_range']: + info['ip_range'] = info['ip_range']['cidr'] + else: + info['ip_range'] = '' + if info['ip_protocol'] is None: + info['ip_protocol'] = '' + elif info['ip_protocol'].lower() == 'icmp': + info['port_range'] = '' + group = info.pop('group') + if 'name' in group: + info['remote_security_group'] = group['name'] + else: + info['remote_security_group'] = '' + return info |
