From 5ccbf950eadbe54acad6e03cc43c19e05ee4e912 Mon Sep 17 00:00:00 2001 From: spisarski Date: Fri, 3 Nov 2017 10:39:24 -0600 Subject: 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 --- snaps/openstack/utils/settings_utils.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'snaps/openstack/utils/settings_utils.py') 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 -- cgit 1.2.3-korg