Exemple #1
0
def update_router_rules(cluster_id, data):
    """
  Updates the Router Module Configs/Rule for a given cluster_id
  """
    print "executing update_router_rules"
    assert cluster_id
    assert data["method"]
    assert data["rule_type"]
    assert data["rule_uri"]
    assert data["rule_key"]
    assert data["rule_value"]
    assert data["rule_endpoint"]

    base_path = s3.get_cluster_info_base_path()
    persistence = S3Persistence(cluster_id, None, None, base_path, None)
    (response, msg) = (None, None)
    if data["method"] == 'add':
        response, msg = persistence.updateModuleRule(
            module_rule_utils.access_phase, module_rule_utils.router_module,
            data["method"], data)
    elif data["method"] == 'remove':
        response, msg = persistence.removeModuleRule(
            module_rule_utils.access_phase, module_rule_utils.router_module,
            data["method"], data)
    else:
        print "Wrong method, supported methods are (add/remove)"
        exit(1)

    print msg
Exemple #2
0
def update_ratelimiter_rules(cluster_id, data):
    """
  Updates the RateLimiter Module Configs/Rule for a given cluster_id
  """
    print "executing update_ratelimiter_rules"
    assert cluster_id
    assert data["method"]
    assert data["rule_type"]
    assert data["rule_uri"]
    assert data["rule_key"]
    assert data["rule_value"]
    assert data["rule_threshold"]

    base_path = s3.get_cluster_info_base_path()
    persistence = S3Persistence(cluster_id, None, None, base_path, None)
    (response, msg) = (None, None)
    if data["method"] == "add":
        (response,
         msg) = persistence.updateModuleRule(utils.ACCESS_PHASE,
                                             utils.RATELIMITER_MODULE,
                                             data["method"], data)
    elif data["method"] == 'remove':
        (response,
         msg) = persistence.removeModuleRule(utils.ACCESS_PHASE,
                                             utils.RATELIMITER_MODULE,
                                             data["method"], data)
    else:
        print "Wrong method, supported methods are (add/remove)"
        exit(1)

    print msg
Exemple #3
0
def update_nginx_conf(cluster_id, data):
    """
  Updates the nginx.conf of a given cluster.

  Pl. use nginx.conf.bg.template
  with your specific configs. Removal of default configs will lead to
  un-avaibility of bloomgateway service.
  """
    print "executing update_nginx_conf"
    assert cluster_id
    assert data
    assert data["service_port"]
    assert data["ping_port"]
    assert data["upstream_server"]

    if not data["nginx_conf_template"]:
        data["nginx_conf_template"] = "../template/nginx.conf.bg.template"

    base_path = s3.get_cluster_info_base_path()
    persistence = S3Persistence(cluster_id, data["service_port"],
                                data["ping_port"], base_path, None,
                                data["upstream_server"])
    (response,
     msg) = persistence.updateNginxConfig(data["nginx_conf_template"])
    print msg
Exemple #4
0
def delete_cluster(cluster_id):
    """
  Delete existing cluster with name - cluster_id
  """
    print "executing delete_cluster"
    assert cluster_id
    base_path = s3.get_cluster_info_base_path()
    persistence = S3Persistence(cluster_id, None, None, base_path, None, None)
    (response, msg) = persistence.deleteCluster()
    print msg
Exemple #5
0
def bootstrap_cluster(cluster_id, data):
    """
  Creates a new cluster with given cluster_id and data
  """
    print "executing bootstrap_cluster"
    assert cluster_id
    assert data
    assert data["service_port"]
    assert data["ping_port"]
    assert data["nodes"]
    assert data["upstream_server"]

    if not data["nginx_conf_template"]:
        data["nginx_conf_template"] = "../template/nginx.conf.bg.template"

    base_path = s3.get_cluster_info_base_path()
    persistence = S3Persistence(cluster_id, data["service_port"],
                                data["ping_port"], base_path, data["nodes"],
                                data["upstream_server"])
    persistence.bootstrapCluster(data["nginx_conf_template"])
Exemple #6
0
def update_fallback_rules(cluster_id, data):
    """
  Updates the Fallback Module Configs/Rule for a given cluster_id
  """
    print "executing update_fallback_rules"
    assert cluster_id
    assert data["method"]
    assert data["rule_uri"]
    assert data["rule_errors"]
    assert data["rule_fallbacks"]

    if not data.get("rule_params", None):
        data["rule_params"] = {}

    if not data.get("rule_headers", None):
        data["rule_headers"] = {}

    base_path = s3.get_cluster_info_base_path()
    persistence = S3Persistence(cluster_id=cluster_id,
                                service_port=None,
                                ping_port=None,
                                s3_base_path=base_path,
                                nodes=None)

    (response, msg) = (None, None)
    if data["method"] == 'add':
        response, msg = persistence.updateFallbackRule("error", "fallback",
                                                       data)
    elif data["method"] == 'remove':
        response, msg = persistence.removeFallbackRule("error", "fallback",
                                                       data)
    else:
        print "Wrong method, supported methods are (add/remove)"
        exit(1)

    print msg