Beispiel #1
0
 def __init__(self, config=None):
     self.config = config
     self.storage = storage.MongoDBStorage(config)
     self.consul_manager = consul_manager.ConsulManager(config)
     self.nginx_manager = nginx.Nginx(config)
     self.task_manager = tasks.TaskManager(config)
     self.service_name = os.environ.get("RPAAS_SERVICE_NAME", "rpaas")
Beispiel #2
0
def generate_crt(config, name, plugin, csr, key, domain):
    lb = LoadBalancer.find(name, config)
    if lb is None:
        raise storage.InstanceNotFoundError()
    strg = storage.MongoDBStorage(config)
    consul_mngr = consul_manager.ConsulManager(config)

    crt = None

    plugin_class = ssl_plugins.get(plugin)
    if not plugin_class:
        raise Exception("Invalid plugin {}".format(plugin))
    plugin_obj = plugin_class(domain, os.environ.get('RPAAS_PLUGIN_LE_EMAIL', 'admin@'+domain),
                              name, consul_manager=consul_mngr)

    #  Upload csr and get an Id
    plugin_id = plugin_obj.upload_csr(csr)
    crt = plugin_obj.download_crt(id=str(plugin_id))

    #  Download the certificate and update nginx with it
    if crt:
        try:
            js_crt = json.loads(crt)
            cert = js_crt['crt']
            cert = cert+js_crt['chain'] if 'chain' in js_crt else cert
            key = js_crt['key'] if 'key' in js_crt else key
        except:
            cert = crt

        consul_mngr.set_certificate(name, cert, key)
        strg.store_le_certificate(name, domain)
    else:
        raise Exception('Could not download certificate')
Beispiel #3
0
 def init_config(self, config=None):
     self.config = config
     self.nginx_manager = nginx.Nginx(config)
     self.consul_manager = consul_manager.ConsulManager(config)
     self.host_manager_name = self._get_conf("HOST_MANAGER", "cloudstack")
     self.lb_manager_name = self._get_conf("LB_MANAGER",
                                           "networkapi_cloudstack")
     self.task_manager = TaskManager(config)
     self.lock_manager = lock.Lock(app.backend.client)
     self.hc = hc.Dumb()
     self.storage = storage.MongoDBStorage(config)
     self.acl_manager = acl.Dumb(self.consul_manager)
     if check_option_enable(self._get_conf("CHECK_ACL_API", None)):
         self.acl_manager = acl.AclManager(config, self.consul_manager,
                                           lock.Lock(app.backend.client))
     hc_url = self._get_conf("HCAPI_URL", None)
     if hc_url:
         self.hc = hc.HCAPI(self.storage,
                            url=hc_url,
                            user=self._get_conf("HCAPI_USER"),
                            password=self._get_conf("HCAPI_PASSWORD"),
                            hc_format=self._get_conf(
                                "HCAPI_FORMAT", "http://{}:8080/"))
     self.retry_countdown = os.environ.get("RETRY_COUNTDOWN", None)
     if self.retry_countdown:
         self.retry_countdown = int(self.retry_countdown)
     self.max_retries = os.environ.get("MAX_RETRIES", None)
     if self.max_retries:
         self.max_retries = int(self.max_retries)
Beispiel #4
0
 def setUp(self):
     self.master_token = "rpaas-test"
     os.environ.setdefault("RPAAS_SERVICE_NAME", "test-suite-rpaas")
     os.environ.setdefault("CONSUL_HOST", "127.0.0.1")
     os.environ.setdefault("CONSUL_TOKEN", self.master_token)
     self.consul = consul.Consul(token=self.master_token)
     self.consul.kv.delete("test-suite-rpaas", recurse=True)
     self._remove_tokens()
     self.manager = consul_manager.ConsulManager()
Beispiel #5
0
 def __init__(self, config=None):
     self.config = config
     self.storage = storage.MongoDBStorage(config)
     self.consul_manager = consul_manager.ConsulManager(config)
     self.nginx_manager = nginx.Nginx(config)
     self.task_manager = tasks.TaskManager(config)
     self.service_name = os.environ.get("RPAAS_SERVICE_NAME", "rpaas")
     self.acl_manager = acl.Dumb(self.consul_manager)
     if check_option_enable(os.environ.get("CHECK_ACL_API", None)):
         self.acl_manager = acl.AclManager(config, self.consul_manager, lock.Lock(tasks.app.backend.client))
Beispiel #6
0
 def init_config(self, config=None):
     self.config = config
     self.nginx_manager = nginx.Nginx(config)
     self.consul_manager = consul_manager.ConsulManager(config)
     self.host_manager_name = self._get_conf("HOST_MANAGER", "cloudstack")
     self.lb_manager_name = self._get_conf("LB_MANAGER", "networkapi_cloudstack")
     self.task_manager = TaskManager(config)
     self.redis_client = app.backend.client
     self.hc = hc.Dumb()
     self.storage = storage.MongoDBStorage(config)
     hc_url = self._get_conf("HCAPI_URL", None)
     if hc_url:
         self.hc = hc.HCAPI(self.storage,
                            url=hc_url,
                            user=self._get_conf("HCAPI_USER"),
                            password=self._get_conf("HCAPI_PASSWORD"),
                            hc_format=self._get_conf("HCAPI_FORMAT", "http://{}:8080/"))
Beispiel #7
0
 def setUp(self):
     self.master_token = "rpaas-test"
     os.environ.setdefault("RPAAS_SERVICE_NAME", "rpaas-acl")
     os.environ.setdefault("CONSUL_HOST", "127.0.0.1")
     os.environ.setdefault("CONSUL_TOKEN", self.master_token)
     self.consul = consul.Consul(token=self.master_token)
     self.consul.kv.delete("rpaas-acl", recurse=True)
     self.storage = consul_manager.ConsulManager(os.environ)
     self.redis_conn = redis.StrictRedis()
     self.redis_conn.flushall()
     self.lock_manager = lock.Lock(self.redis_conn)
     self.lock_name = "acl_manager:rpaas-acl"
     self.config = {
         "ACL_API_HOST": "http://aclapihost",
         "ACL_API_USER": "******",
         "ACL_API_PASSWORD": "******",
         "RPAAS_SERVICE_NAME": "rpaas-acl"
     }
 def setUp(self):
     self.master_token = "rpaas-test"
     self.config = {
         "CONSUL_HOST": "127.0.0.1",
         "CONSUL_TOKEN": self.master_token,
         "MONGO_DATABASE": "session_resumption_test",
         "RPAAS_SERVICE_NAME": "test_rpaas_session_resumption",
         "HOST_MANAGER": "fake",
         "SESSION_RESUMPTION_RUN_INTERVAL": 2,
         u"CA_CERT": unicode(self.ca_cert),
         u"CA_KEY": unicode(self.ca_key)
     }
     self.consul = consul.Consul(token=self.master_token)
     self.consul.kv.delete("test_rpaas_session_resumption", recurse=True)
     self.storage = storage.MongoDBStorage(self.config)
     self.consul_manager = consul_manager.ConsulManager(self.config)
     colls = self.storage.db.collection_names(False)
     for coll in colls:
         self.storage.db.drop_collection(coll)
     redis.StrictRedis().flushall()