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
Пример #3
0
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
Пример #5
0
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
Пример #6
0
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
Пример #10
0
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
Пример #11
0
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
Пример #12
0
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