summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/utils/settings_utils.py
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-11-03 10:39:24 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-11-06 08:46:43 -0700
commit5ccbf950eadbe54acad6e03cc43c19e05ee4e912 (patch)
tree76da9271e5095065e1e01195287afe53b820022c /snaps/openstack/utils/settings_utils.py
parent15b7270542288263189abebcfa4f89c0245aaf8b (diff)
Added method to OpenStackHeatStack to return OpenStackSecurityGroup objects.
Continuation of the story SNAPS-153 for adding creator/state machine instances for OpenStack objects deployed via Heat. JIRA: SNAPS-207 Change-Id: Id479b69c2b166ab38724c3886096d8483998f819 Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/utils/settings_utils.py')
-rw-r--r--snaps/openstack/utils/settings_utils.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/snaps/openstack/utils/settings_utils.py b/snaps/openstack/utils/settings_utils.py
index 2e29063..ea1d018 100644
--- a/snaps/openstack/utils/settings_utils.py
+++ b/snaps/openstack/utils/settings_utils.py
@@ -21,6 +21,8 @@ from snaps.openstack.create_instance import (
from snaps.openstack.create_keypairs import KeypairSettings
from snaps.openstack.create_network import (
PortSettings, SubnetSettings, NetworkSettings)
+from snaps.openstack.create_security_group import (
+ SecurityGroupSettings, SecurityGroupRuleSettings)
from snaps.openstack.create_router import RouterSettings
from snaps.openstack.create_volume import VolumeSettings
from snaps.openstack.create_volume_type import (
@@ -41,6 +43,30 @@ def create_network_settings(neutron, network):
subnet_settings=create_subnet_settings(neutron, network))
+def create_security_group_settings(neutron, security_group):
+ """
+ Returns a NetworkSettings object
+ :param neutron: the neutron client
+ :param security_group: a SNAPS-OO SecurityGroup domain object
+ :return:
+ """
+ rules = neutron_utils.get_rules_by_security_group(neutron, security_group)
+
+ rule_settings = list()
+ for rule in rules:
+ rule_settings.append(SecurityGroupRuleSettings(
+ sec_grp_name=security_group.name, description=rule.description,
+ direction=rule.direction, ethertype=rule.ethertype,
+ port_range_min=rule.port_range_min,
+ port_range_max=rule.port_range_max, protocol=rule.protocol,
+ remote_group_id=rule.remote_group_id,
+ remote_ip_prefix=rule.remote_ip_prefix))
+
+ return SecurityGroupSettings(
+ name=security_group.name, description=security_group.description,
+ rule_settings=rule_settings)
+
+
def create_subnet_settings(neutron, network):
"""
Returns a list of SubnetSettings objects for a given network