def get_options_objects(options): dhcp_options = [] for option in options: dhcp_option = None if option["type"] == "DomainNameServer": dhcp_option = oci_utils.create_hashed_instance(DhcpDnsOption) dhcp_option.type = "DomainNameServer" server_type = option["server_type"] dhcp_option.server_type = server_type if server_type == "CustomDnsServer": dhcp_option.custom_dns_servers = option.get( "custom_dns_servers", None) else: dhcp_option.custom_dns_servers = [] elif option["type"] == "SearchDomain": dhcp_option = oci_utils.create_hashed_instance( DhcpSearchDomainOption) dhcp_option.type = "SearchDomain" search_domain_names = option["search_domain_names"] if search_domain_names: dhcp_option.search_domain_names = option["search_domain_names"] else: raise ClientError( "search_domain_names field should not be empty") dhcp_options.append(dhcp_option) return dhcp_options
def get_options_objects(options): dhcp_options = [] for option in options: dhcp_option = None if option['type'] == 'DomainNameServer': dhcp_option = oci_utils.create_hashed_instance(DhcpDnsOption) dhcp_option.type = 'DomainNameServer' server_type = option['server_type'] dhcp_option.server_type = server_type if server_type == 'CustomDnsServer': dhcp_option.custom_dns_servers = option.get( 'custom_dns_servers', None) else: dhcp_option.custom_dns_servers = [] elif option['type'] == 'SearchDomain': dhcp_option = oci_utils.create_hashed_instance( DhcpSearchDomainOption) dhcp_option.type = 'SearchDomain' search_domain_names = option['search_domain_names'] if search_domain_names: dhcp_option.search_domain_names = option['search_domain_names'] else: raise ClientError( 'serarch_domain_names field should not be empty') dhcp_options.append(dhcp_option) return dhcp_options
def get_options(type, server_type, custom_dns_servers, search_domain_names): dhcp_option = None if type == 'DomainNameServer': dhcp_option = oci_utils.create_hashed_instance(DhcpDnsOption) dhcp_option.__setattr__('type', type) dhcp_option.__setattr__('server_type', server_type) dhcp_option.__setattr__('custom_dns_servers', custom_dns_servers) else: dhcp_option = oci_utils.create_hashed_instance(DhcpSearchDomainOption) dhcp_option.__setattr__('type', type) dhcp_option.__setattr__('search_domain_names', search_domain_names) return dhcp_option
def get_hashed_security_rules(security_rules_type, security_rules): supported_security_rule_simple_attributes = [ "source", "source_type", "destination", "destination_type", "is_stateless", "protocol", ] hashed_security_rules = [] if security_rules is None: return hashed_security_rules for security_rule in security_rules: if security_rules_type == "ingress_security_rules": hashed_security_rule = oci_utils.create_hashed_instance( IngressSecurityRule) elif security_rules_type == "egress_security_rules": hashed_security_rule = oci_utils.create_hashed_instance( EgressSecurityRule) for field in hashed_security_rule.attribute_map: value = None if field == "icmp_options": if getattr(security_rule, field): source_icmp_options = getattr(security_rule, field) value = oci_utils.create_hashed_instance(IcmpOptions) for sub_field in source_icmp_options.attribute_map.keys(): setattr(value, sub_field, getattr(source_icmp_options, sub_field)) setattr(hashed_security_rule, field, value) elif field == "tcp_options": if getattr(security_rule, field): source_tcp_options = getattr(security_rule, field) value = oci_utils.create_hashed_instance(TcpOptions) set_port_range(source_tcp_options, value) setattr(hashed_security_rule, field, value) elif field == "udp_options": if getattr(security_rule, field): source_udp_options = getattr(security_rule, field) value = oci_utils.create_hashed_instance(UdpOptions) set_port_range(source_udp_options, value) setattr(hashed_security_rule, field, value) else: if field in supported_security_rule_simple_attributes: value = getattr(security_rule, field) setattr(hashed_security_rule, field, value) hashed_security_rules.append(hashed_security_rule) return hashed_security_rules
def get_cross_connect_mappings(module): input_cross_connect_mappings = module.params.get("cross_connect_mappings") if input_cross_connect_mappings is None: return None result_cross_connect_mappings = [] for input_cross_connect_mapping_dict in input_cross_connect_mappings: cross_connect_mapping = oci_utils.create_hashed_instance(CrossConnectMapping) if module.params.get("type") == "PUBLIC" and ( input_cross_connect_mapping_dict.get("oracle_bgp_peering_ip") or input_cross_connect_mapping_dict.get("customer_bgp_peering_ip") ): module.fail_json( msg="oracle_bgp_peering_ip or customer_bgp_peering_ip is not allowed for public virual circuit" ) if module.params.get("type") == "PRIVATE" and ( input_cross_connect_mapping_dict.get("oracle_bgp_peering_ip") is None or input_cross_connect_mapping_dict.get("customer_bgp_peering_ip") is None ): module.fail_json( msg="oracle_bgp_peering_ip and customer_bgp_peering_ip are mandatory for private virual circuit" ) for attribute in cross_connect_mapping.attribute_map: cross_connect_mapping.__setattr__( attribute, input_cross_connect_mapping_dict.get(attribute) ) result_cross_connect_mappings.append(cross_connect_mapping) return result_cross_connect_mappings
def get_protocol_option(input_protocol_options, protocol_options): port_range = None input_destination_port_range = input_protocol_options.get( "destination_port_range", None ) if input_destination_port_range: port_range = oci_utils.create_hashed_instance(PortRange) port_range.min = int(input_destination_port_range["min"]) port_range.max = int(input_destination_port_range["max"]) protocol_options.destination_port_range = port_range input_source_port_range = input_protocol_options.get("source_port_range", None) if input_source_port_range: port_range = oci_utils.create_hashed_instance(PortRange) port_range.min = int(input_source_port_range["min"]) port_range.max = int(input_source_port_range["max"]) protocol_options.source_port_range = port_range
def get_protocol_option(input_protocol_options, protocol_options): port_range = None input_destination_port_range = input_protocol_options.get( 'destination_port_range', None) if input_destination_port_range: port_range = oci_utils.create_hashed_instance(PortRange) port_range.min = input_destination_port_range['min'] port_range.max = input_destination_port_range['max'] protocol_options.destination_port_range = port_range input_source_port_range = input_protocol_options.get( 'source_port_range', None) if input_source_port_range: port_range = oci_utils.create_hashed_instance(PortRange) port_range.min = input_source_port_range['min'] port_range.max = input_source_port_range['max'] protocol_options.source_port_range = port_range
def get_security_rules(security_rule_type, input_security_rules): security_rule = None security_rules = [] for input_security_rule in input_security_rules: if security_rule_type == "ingress_security_rules": security_rule = oci_utils.create_hashed_instance( IngressSecurityRule) security_rule.source = input_security_rule["source"] security_rule.source_type = input_security_rule.get( "source_type", "CIDR_BLOCK") elif security_rule_type == "egress_security_rules": security_rule = oci_utils.create_hashed_instance( EgressSecurityRule) security_rule.destination = input_security_rule["destination"] security_rule.destination_type = input_security_rule.get( "destination_type", "CIDR_BLOCK") input_icmp_options = input_security_rule.get("icmp_options", None) if input_icmp_options: icmp_options = oci_utils.create_hashed_instance(IcmpOptions) icmp_options.type = input_icmp_options.get("type") icmp_options.code = input_icmp_options.get("code", None) security_rule.icmp_options = icmp_options input_tcp_options = input_security_rule.get("tcp_options", None) if input_tcp_options: tcp_options = oci_utils.create_hashed_instance(TcpOptions) get_protocol_option(input_tcp_options, tcp_options) security_rule.tcp_options = tcp_options input_udp_options = input_security_rule.get("udp_options", None) if input_udp_options: udp_options = oci_utils.create_hashed_instance(UdpOptions) get_protocol_option(input_udp_options, udp_options) security_rule.udp_options = udp_options security_rule.is_stateless = input_security_rule.get( "is_stateless", False) if security_rule.is_stateless is None: security_rule.is_stateless = False security_rule.protocol = input_security_rule.get("protocol").lower() security_rules.append(security_rule) return security_rules
def get_hashed_options(options): hashed_options = [] for option in options: dhcp_option = None if option.type == 'DomainNameServer': dhcp_option = oci_utils.create_hashed_instance(DhcpDnsOption) dhcp_option.type = 'DomainNameServer' server_type = option.server_type dhcp_option.server_type = server_type if server_type == 'CustomDnsServer': dhcp_option.custom_dns_servers = option.custom_dns_servers else: dhcp_option.custom_dns_servers = [] elif option.type == 'SearchDomain': dhcp_option = oci_utils.create_hashed_instance( DhcpSearchDomainOption) dhcp_option.type = 'SearchDomain' dhcp_option.search_domain_names = option.search_domain_names hashed_options.append(dhcp_option) return hashed_options
def get_security_rules(security_rule_type, input_security_rules): security_rule = None security_rules = [] for input_security_rule in input_security_rules: if security_rule_type == 'ingress_security_rules': security_rule = oci_utils.create_hashed_instance( IngressSecurityRule) security_rule.source = input_security_rule['source'] security_rule.source_type = input_security_rule.get( 'source_type', 'CIDR_BLOCK') elif security_rule_type == 'egress_security_rules': security_rule = oci_utils.create_hashed_instance( EgressSecurityRule) security_rule.destination = input_security_rule['destination'] security_rule.destination_type = input_security_rule.get( 'destination_type', 'CIDR_BLOCK') input_icmp_options = input_security_rule.get('icmp_options', None) if input_icmp_options: icmp_options = oci_utils.create_hashed_instance(IcmpOptions) icmp_options.type = input_icmp_options.get('type') icmp_options.code = input_icmp_options.get('code', None) security_rule.icmp_options = icmp_options input_tcp_options = input_security_rule.get('tcp_options', None) if input_tcp_options: tcp_options = oci_utils.create_hashed_instance(TcpOptions) get_protocol_option(input_tcp_options, tcp_options) security_rule.tcp_options = tcp_options input_udp_options = input_security_rule.get('udp_options', None) if input_udp_options: udp_options = oci_utils.create_hashed_instance(UdpOptions) get_protocol_option(input_udp_options, udp_options) security_rule.udp_options = udp_options security_rule.is_stateless = input_security_rule.get( 'is_stateless', False) security_rule.protocol = input_security_rule.get('protocol') security_rules.append(security_rule) return security_rules
def get_security_rules( security_rule_type, security_rule_flavour, tcp_source, icmp_source, udp_source, stateless, tcp_destination, udp_destination, icmp_destination, icmp_type, icmp_code, ): security_rules = [] security_rule_tcp = None security_rule_icmp = None security_rule_udp = None tcp_options = None tcp_source_port_range = None tcp_destination_port_range = None udp_options = None udp_source_port_range = None udp_destination_port_range = None icmp_options = None if security_rule_type == "ingress": if security_rule_flavour == "hashed": security_rule_tcp = oci_utils.create_hashed_instance(IngressSecurityRule) security_rule_tcp.source = tcp_source tcp_options = oci_utils.create_hashed_instance(TcpOptions) tcp_source_port_range = oci_utils.create_hashed_instance(PortRange) tcp_destination_port_range = oci_utils.create_hashed_instance(PortRange) security_rule_udp = oci_utils.create_hashed_instance(IngressSecurityRule) security_rule_udp.source = udp_source udp_options = oci_utils.create_hashed_instance(UdpOptions) udp_source_port_range = oci_utils.create_hashed_instance(PortRange) udp_destination_port_range = oci_utils.create_hashed_instance(PortRange) security_rule_icmp = oci_utils.create_hashed_instance(IngressSecurityRule) security_rule_icmp.source = icmp_source icmp_options = oci_utils.create_hashed_instance(IcmpOptions) else: security_rule_tcp = IngressSecurityRule() security_rule_tcp.source = tcp_source tcp_options = TcpOptions() tcp_source_port_range = PortRange() tcp_destination_port_range = PortRange() security_rule_udp = IngressSecurityRule() security_rule_udp.source = udp_source udp_options = UdpOptions() udp_source_port_range = PortRange() udp_destination_port_range = PortRange() security_rule_icmp = IngressSecurityRule() security_rule_icmp.source = icmp_source icmp_options = IcmpOptions() else: if security_rule_flavour == "hashed": security_rule_tcp = oci_utils.create_hashed_instance(EgressSecurityRule) security_rule_tcp.destination = tcp_destination tcp_options = oci_utils.create_hashed_instance(TcpOptions) tcp_source_port_range = oci_utils.create_hashed_instance(PortRange) tcp_destination_port_range = oci_utils.create_hashed_instance(PortRange) security_rule_udp = oci_utils.create_hashed_instance(EgressSecurityRule) security_rule_udp.destination = udp_destination udp_options = oci_utils.create_hashed_instance(UdpOptions) udp_source_port_range = oci_utils.create_hashed_instance(PortRange) udp_destination_port_range = oci_utils.create_hashed_instance(PortRange) security_rule_icmp = oci_utils.create_hashed_instance(EgressSecurityRule) security_rule_icmp.destination = icmp_destination icmp_options = oci_utils.create_hashed_instance(IcmpOptions) else: security_rule_tcp = EgressSecurityRule() security_rule_tcp.destination = tcp_destination tcp_options = TcpOptions() tcp_source_port_range = PortRange() tcp_destination_port_range = PortRange() security_rule_udp = EgressSecurityRule() security_rule_udp.destination = udp_destination udp_options = UdpOptions() udp_source_port_range = PortRange() udp_destination_port_range = PortRange() security_rule_icmp = EgressSecurityRule() security_rule_icmp.destination = icmp_destination icmp_options = IcmpOptions() security_rule_tcp.protocol = "6" security_rule_tcp.is_stateless = stateless tcp_source_port_range.min = 22 tcp_source_port_range.max = 30 tcp_options.source_port_range = tcp_source_port_range tcp_destination_port_range.min = 45 tcp_destination_port_range.max = 50 tcp_options.destination_port_range = tcp_destination_port_range security_rule_tcp.tcp_options = tcp_options security_rule_icmp.protocol = "1" security_rule_icmp.is_stateless = stateless icmp_options.code = icmp_code icmp_options.type = icmp_type security_rule_icmp.icmp_options = icmp_options security_rule_udp.protocol = "17" security_rule_udp.is_stateless = stateless udp_source_port_range.min = 22 udp_source_port_range.max = 30 udp_options.source_port_range = udp_source_port_range udp_destination_port_range.min = 45 udp_destination_port_range.max = 50 udp_options.destination_port_range = tcp_destination_port_range security_rule_udp.udp_options = udp_options security_rules.append(security_rule_tcp) security_rules.append(security_rule_udp) security_rules.append(security_rule_icmp) return security_rules
def get_hashed_port_range(port_range): hashed_port_range = oci_utils.create_hashed_instance(PortRange) for field in port_range.attribute_map.keys(): setattr(hashed_port_range, field, getattr(port_range, field)) return hashed_port_range