示例#1
0
    def save(self):
        meta_dir = get_meta_dir(self.name)
        if not os.path.isdir(meta_dir):
            os.makedirs(meta_dir)
        with open(get_meta_file(self.name), "w") as f:
            f.write(json.dumps(self.Metadata))

        tls_dir = get_tls_dir(self.name)
        for endpoint, tls in self.tls_cfg.items():
            if not os.path.isdir(os.path.join(tls_dir, endpoint)):
                os.makedirs(os.path.join(tls_dir, endpoint))

            ca_file = tls.ca_cert
            if ca_file:
                copyfile(
                    ca_file,
                    os.path.join(tls_dir, endpoint, os.path.basename(ca_file)))

            if tls.cert:
                cert_file, key_file = tls.cert
                copyfile(
                    cert_file,
                    os.path.join(tls_dir, endpoint,
                                 os.path.basename(cert_file)))
                copyfile(
                    key_file,
                    os.path.join(tls_dir, endpoint,
                                 os.path.basename(key_file)))

        self.meta_path = get_meta_dir(self.name)
        self.tls_path = get_tls_dir(self.name)
示例#2
0
文件: context.py 项目: yfix/docker-py
 def _load_certs(self):
     certs = {}
     tls_dir = get_tls_dir(self.name)
     for endpoint in self.endpoints.keys():
         if not os.path.isdir(os.path.join(tls_dir, endpoint)):
             continue
         ca_cert = None
         cert = None
         key = None
         for filename in os.listdir(os.path.join(tls_dir, endpoint)):
             if filename.startswith("ca"):
                 ca_cert = os.path.join(tls_dir, endpoint, filename)
             elif filename.startswith("cert"):
                 cert = os.path.join(tls_dir, endpoint, filename)
             elif filename.startswith("key"):
                 key = os.path.join(tls_dir, endpoint, filename)
         if all([ca_cert, cert, key]):
             verify = None
             if endpoint == "docker" and not self.endpoints["docker"].get(
                     "SkipTLSVerify", False):
                 verify = True
             certs[endpoint] = TLSConfig(client_cert=(cert, key),
                                         ca_cert=ca_cert,
                                         verify=verify)
     self.tls_cfg = certs
     self.tls_path = tls_dir
示例#3
0
 def _load_certs(self):
     certs = {}
     tls_dir = get_tls_dir(self.name)
     for endpoint in self.endpoints.keys():
         if not os.path.isdir(os.path.join(tls_dir, endpoint)):
             continue
         ca_cert = None
         cert = None
         key = None
         for filename in os.listdir(os.path.join(tls_dir, endpoint)):
             if filename.startswith("ca"):
                 ca_cert = os.path.join(tls_dir, endpoint, filename)
             elif filename.startswith("cert"):
                 cert = os.path.join(tls_dir, endpoint, filename)
             elif filename.startswith("key"):
                 key = os.path.join(tls_dir, endpoint, filename)
         if all([ca_cert, cert, key]):
             certs[endpoint] = TLSConfig(client_cert=(cert, key),
                                         ca_cert=ca_cert)
     self.tls_cfg = certs
     self.tls_path = tls_dir