def get_sticky_setting(details, service_alias):
    setting = []
    is_sticky = False

    appsession = get_service_attribute(details, "appsession", service_alias)
    if appsession:
        setting.append("appsession %s" % appsession)
        is_sticky = True

    cookie = get_service_attribute(details, "cookie", service_alias)
    if cookie:
        setting.append("cookie %s" % cookie)
        is_sticky = True

    return setting, is_sticky
Exemplo n.º 2
0
def get_sticky_setting(details, service_alias):
    setting = []
    is_sticky = False

    appsession = get_service_attribute(details, "appsession", service_alias)
    if appsession:
        setting.append("appsession %s" % appsession)
        is_sticky = True

    cookie = get_service_attribute(details, "cookie", service_alias)
    if cookie:
        setting.append("cookie %s" % cookie)
        is_sticky = True

    return setting, is_sticky
Exemplo n.º 3
0
def get_tcp_routes(details, routes, port, port_num):
    tcp_routes = []
    routes_added = []
    addresses_added = []
    if port != port_num and port != port_num + "/ssl":
        return tcp_routes, routes_added

    for _service_alias, routes in routes.iteritems():
        tcp_ports = get_service_attribute(details, "tcp_ports", _service_alias)
        if tcp_ports and port in tcp_ports:
            for route in routes:
                if route["port"] == port_num:
                    address = "%s:%s" % (route["addr"], route["port"])
                    if address not in addresses_added:
                        addresses_added.append(address)
                        tcp_route = ["server %s %s" % (route["container_name"], address)]
                        health_check = get_healthcheck_string(details, _service_alias)
                        # extra_route_settings = get_extra_route_settings_string(details, _service_alias)
                        extra_tcp_settings = get_extra_tcp_settings_string(details, _service_alias)
                        route_setting = " ".join([health_check, extra_tcp_settings]).strip()
                        tcp_route.append(route_setting)
                        tcp_routes.append(" ".join(tcp_route))
                    routes_added.append(route)

    return tcp_routes, routes_added
def get_gzip_compression_setting(details, service_alias):
    setting = []
    gzip_compression_type = get_service_attribute(details, 'gzip_compression_type', service_alias)
    if gzip_compression_type:
        setting.append("compression algo gzip")
        setting.append("compression type %s" % gzip_compression_type)
    return setting
def get_options_setting(details, service_alias):
    setting = []
    options = get_service_attribute(details, 'option', service_alias)
    if options:
        for option in options:
            setting.append("option %s" % option)
    return setting
Exemplo n.º 6
0
def get_tcp_port_list(details, service_aliases):
    ports = []
    for service_alias in service_aliases:
        tcp_ports = get_service_attribute(details, "tcp_ports", service_alias)
        if tcp_ports:
            ports.extend(tcp_ports)
    return ports
Exemplo n.º 7
0
def get_service_aliases_given_tcp_port(details, service_aliases, tcp_port):
    services = []
    for service_alias in service_aliases:
        tcp_ports = get_service_attribute(details, "tcp_ports", service_alias)
        if tcp_ports and tcp_port in tcp_ports:
            services.append(service_alias)
    return services
Exemplo n.º 8
0
def get_tcp_routes(details, routes, port, port_num):
    tcp_routes = []
    routes_added = []
    addresses_added = []
    if port != port_num and port != port_num + "/ssl":
        return tcp_routes, routes_added

    for _service_alias, routes in routes.iteritems():
        tcp_ports = get_service_attribute(details, "tcp_ports", _service_alias)
        if tcp_ports and port in tcp_ports:
            for route in routes:
                if route["port"] == port_num:
                    address = "%s:%s" % (route["addr"], route["port"])
                    if address not in addresses_added:
                        addresses_added.append(address)
                        tcp_route = [
                            "server %s %s" % (route["container_name"], address)
                        ]
                        health_check = get_healthcheck_string(
                            details, _service_alias)
                        extra_route_settings = get_extra_route_settings_string(
                            details, _service_alias)
                        route_setting = " ".join(
                            [health_check, extra_route_settings]).strip()
                        tcp_route.append(route_setting)
                        tcp_routes.append(" ".join(tcp_route))
                    routes_added.append(route)

    return tcp_routes, routes_added
Exemplo n.º 9
0
def get_tcp_port_list(details, service_aliases):
    ports = []
    for service_alias in service_aliases:
        tcp_ports = get_service_attribute(details, "tcp_ports", service_alias)
        if tcp_ports and isinstance(tcp_ports, list):
            ports.extend(tcp_ports)
    return ports
Exemplo n.º 10
0
def get_service_aliases_given_tcp_port(details, service_aliases, tcp_port):
    services = []
    for service_alias in service_aliases:
        tcp_ports = get_service_attribute(details, "tcp_ports", service_alias)
        if tcp_ports and tcp_port in tcp_ports:
            services.append(service_alias)
    return services
def get_gzip_compression_setting(details, service_alias):
    setting = []
    gzip_compression_type = get_service_attribute(details, 'gzip_compression_type', service_alias)
    if gzip_compression_type:
        setting.append("compression algo gzip")
        setting.append("compression type %s" % gzip_compression_type)
    return setting
Exemplo n.º 12
0
def get_options_setting(details, service_alias):
    setting = []
    options = get_service_attribute(details, 'option', service_alias)
    if options:
        for option in options:
            setting.append("option %s" % option)
    return setting
Exemplo n.º 13
0
def get_extra_route_settings(details, service_alias,
                             default_extra_route_settings):
    extra_route_settings = get_service_attribute(details,
                                                 "extra_route_settings",
                                                 service_alias)
    extra_route_settings = extra_route_settings if extra_route_settings else default_extra_route_settings
    return extra_route_settings
Exemplo n.º 14
0
 def test_get_service_attribute_with_service_aliase(self):
     self.assertEqual("valueA", get_service_attribute(self.details, 'attrA', 'web-a'))
     self.assertEqual("valueB", get_service_attribute(self.details, 'attrB', 'web-a'))
     self.assertEqual(None, get_service_attribute(self.details, 'attrC', 'web-a'))
     self.assertEqual("valueC", get_service_attribute(self.details, 'attrA', 'web-b'))
     self.assertEqual("valueB", get_service_attribute(self.details, 'attrB', 'web-a'))
     self.assertEqual(None, get_service_attribute(self.details, 'attrC', 'web-a'))
     self.assertEqual(None, get_service_attribute(self.details, 'attrA', 'web-c'))
     self.assertEqual(None, get_service_attribute(None, 'attrA', 'web-a'))
Exemplo n.º 15
0
def get_basic_auth_setting(details, basic_auth, service_alias):
    setting = []
    exclude_basic_auth = get_service_attribute(details, "exclude_basic_auth", service_alias)

    if basic_auth and not exclude_basic_auth:
        setting.append("acl need_auth http_auth(haproxy_userlist)")
        setting.append("http-request auth realm haproxy_basic_auth if !need_auth")
    return setting
Exemplo n.º 16
0
def get_basic_auth_setting(details, basic_auth, service_alias):
    setting = []
    exclude_basic_auth = get_service_attribute(details, "exclude_basic_auth", service_alias)

    if basic_auth and not exclude_basic_auth:
        setting.append("acl need_auth http_auth(haproxy_userlist)")
        setting.append("http-request auth realm haproxy_basic_auth if !need_auth")
    return setting
Exemplo n.º 17
0
def get_hsts_max_age_setting(details, service_alias):
    setting = []
    hsts_max_age = get_service_attribute(details, "hsts_max_age",
                                         service_alias)
    if hsts_max_age:
        setting.append(
            "rspadd Strict-Transport-Security:\ max-age=%s;\ includeSubDomains"
            % hsts_max_age)
    return setting
def get_extra_settings_setting(details, service_alias):
    setting = []
    extra_settings_str = get_service_attribute(details, 'extra_settings', service_alias)
    if extra_settings_str:
        extra_settings = re.split(r'(?<!\\),', extra_settings_str)
        for extra_setting in extra_settings:
            if extra_setting.strip():
                setting.append(extra_setting.strip().replace("\,", ","))
    return setting
Exemplo n.º 19
0
def get_tcp_options(details, services):
    option_list = []
    for service in services:
        options = get_service_attribute(details, 'option', service)
        if options and type(options) is list:
            for option in options:
                if option not in option_list:
                    option_list.append(option)
    return ["option %s" % option for option in option_list]
Exemplo n.º 20
0
def get_tcp_options(details, services):
    option_list = []
    for service in services:
        options = get_service_attribute(details, 'option', service)
        if options and type(options) is list:
            for option in options:
                if option not in option_list:
                    option_list.append(option)
    return ["option %s" % option for option in option_list]
Exemplo n.º 21
0
def get_extra_settings_setting(details, service_alias):
    setting = []
    extra_settings_str = get_service_attribute(details, 'extra_settings', service_alias)
    if extra_settings_str:
        extra_settings = re.split(r'(?<!\\),', extra_settings_str)
        for extra_setting in extra_settings:
            if extra_setting.strip():
                setting.append(extra_setting.strip().replace("\,", ","))
    return setting
Exemplo n.º 22
0
def get_tcp_extra_settings(details, services):
    setting_list = []
    for service in services:
        extra_settings = get_service_attribute(details, 'extra_settings', service)
        if extra_settings:
            settings = re.split(r'(?<!\\),', extra_settings)
            for s in settings:
                setting = s.strip().replace("\,", ",")
                if setting and setting not in setting_list:
                    setting_list.append(setting)
    return setting_list
Exemplo n.º 23
0
def get_tcp_extra_settings(details, services):
    setting_list = []
    for service in services:
        extra_settings = get_service_attribute(details, 'extra_settings',
                                               service)
        if extra_settings:
            settings = re.split(r'(?<!\\),', extra_settings)
            for s in settings:
                setting = s.strip().replace("\,", ",")
                if setting and setting not in setting_list:
                    setting_list.append(setting)
    return setting_list
Exemplo n.º 24
0
def get_tcp_routes(details, routes, port, port_num):
    tcp_routes = []
    routes_added = []
    if port != port_num and port != port_num + "/ssl":
        return tcp_routes, routes_added

    for _service_alias, routes in routes.iteritems():
        tcp_ports = get_service_attribute(details, "tcp_ports", _service_alias)
        if tcp_ports and port in tcp_ports:
            for route in routes:
                if route["port"] == port_num:
                    tcp_route = ["server %s %s:%s" % (route["container_name"], route["addr"], route["port"])]
                    health_check = get_healthcheck_string(details, _service_alias)
                    tcp_route.append(health_check)
                    tcp_routes.append(" ".join(tcp_route))
                    routes_added.append(route)
    return tcp_routes, routes_added
Exemplo n.º 25
0
def get_tcp_routes(details, routes, port, port_num):
    tcp_routes = []
    routes_added = []
    if port != port_num and port != port_num + "/ssl":
        return tcp_routes, routes_added

    for _service_alias, routes in routes.iteritems():
        tcp_ports = get_service_attribute(details, "tcp_ports", _service_alias)
        if tcp_ports and port in tcp_ports:
            for route in routes:
                if route["port"] == port_num:
                    tcp_route = [
                        "server %s %s:%s" %
                        (route["container_name"], route["addr"], route["port"])
                    ]
                    health_check = get_healthcheck_string(
                        details, _service_alias)
                    tcp_route.append(health_check)
                    tcp_routes.append(" ".join(tcp_route))
                    routes_added.append(route)
    return tcp_routes, routes_added
Exemplo n.º 26
0
def get_tcp_balance(details):
    balance = get_service_attribute(details, 'balance')
    if balance:
        return ["balance %s" % balance]
    else:
        return []
Exemplo n.º 27
0
 def test_get_servide_attribute_without_service_aliase(self):
     self.assertIn(get_service_attribute(self.details, 'attrA'), ['valueA', 'valueC'])
     self.assertEqual(get_service_attribute(self.details, 'attrB'), "valueB")
     self.assertEqual(get_service_attribute(self.details, 'attrD'), "valueD")
     self.assertIsNone(get_service_attribute(self.details, 'attrE'))
Exemplo n.º 28
0
def get_tcp_balance(details):
    balance = get_service_attribute(details, 'balance')
    if balance:
        return ["balance %s" % balance]
    else:
        return []
Exemplo n.º 29
0
def get_healthcheck_string(details, service_alias):
    health_check = get_service_attribute(details, "health_check", service_alias)
    health_check = health_check if health_check else HEALTH_CHECK
    return health_check
Exemplo n.º 30
0
def get_route_health_check(details, service_alias, default_health_check):
    health_check = get_service_attribute(details, "health_check",
                                         service_alias)
    health_check = health_check if health_check else default_health_check
    return health_check
Exemplo n.º 31
0
def get_balance_setting(details, service_alias):
    setting = []
    balance = get_service_attribute(details, "balance", service_alias)
    if balance:
        setting.append("balance %s" % balance)
    return setting
Exemplo n.º 32
0
def get_extra_route_settings_string(details, service_alias):
    extra_route_settings = get_service_attribute(details,
                                                 "extra_route_settings",
                                                 service_alias)
    extra_route_settings = extra_route_settings if extra_route_settings else EXTRA_ROUTE_SETTINGS
    return extra_route_settings
Exemplo n.º 33
0
def get_healthcheck_string(details, service_alias):
    health_check = get_service_attribute(details, "health_check",
                                         service_alias)
    health_check = health_check if health_check else HEALTH_CHECK
    return health_check
Exemplo n.º 34
0
def get_force_ssl_setting(details, service_alias):
    setting = []
    force_ssl = get_service_attribute(details, "force_ssl", service_alias)
    if force_ssl:
        setting.append("redirect scheme https code 301 if !{ ssl_fc }")
    return setting
Exemplo n.º 35
0
def get_http_check_setting(details, service_alias):
    setting = []
    http_check = get_service_attribute(details, "http_check", service_alias)
    if http_check:
        setting.append("option httpchk %s" % http_check)
    return setting
Exemplo n.º 36
0
def get_hsts_max_age_setting(details, service_alias):
    setting = []
    hsts_max_age = get_service_attribute(details, "hsts_max_age", service_alias)
    if hsts_max_age:
        setting.append("rspadd Strict-Transport-Security:\ max-age=%s;\ includeSubDomains" % hsts_max_age)
    return setting
Exemplo n.º 37
0
def get_extra_route_settings_string(details, service_alias):
    extra_route_settings = get_service_attribute(details, "extra_route_settings", service_alias)
    extra_route_settings = extra_route_settings if extra_route_settings else EXTRA_ROUTE_SETTINGS
    return extra_route_settings
Exemplo n.º 38
0
def get_http_check_setting(details, service_alias):
    setting = []
    http_check = get_service_attribute(details, "http_check", service_alias)
    if http_check:
        setting.append("option httpchk %s" % http_check)
    return setting
Exemplo n.º 39
0
def get_route_health_check(details, service_alias, default_health_check):
    health_check = get_service_attribute(details, "health_check", service_alias)
    health_check = health_check if health_check else default_health_check
    return health_check
Exemplo n.º 40
0
def get_balance_setting(details, service_alias):
    setting = []
    balance = get_service_attribute(details, "balance", service_alias)
    if balance:
        setting.append("balance %s" % balance)
    return setting
Exemplo n.º 41
0
def get_extra_route_settings(details, service_alias, default_extra_route_settings):
    extra_route_settings = get_service_attribute(details, "extra_route_settings", service_alias)
    extra_route_settings = extra_route_settings if extra_route_settings else default_extra_route_settings
    return extra_route_settings
Exemplo n.º 42
0
def get_force_ssl_setting(details, service_alias):
    setting = []
    force_ssl = get_service_attribute(details, "force_ssl", service_alias)
    if force_ssl:
        setting.append("redirect scheme https code 301 if !{ ssl_fc }")
    return setting