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)
def _load_meta(cls, name): meta_file = get_meta_file(name) if not os.path.isfile(meta_file): return None metadata = {} try: with open(meta_file) as f: metadata = json.load(f) except (OSError, KeyError, ValueError) as e: # unknown format raise Exception("""Detected corrupted meta file for context {} : {}""".format(name, e)) # for docker endpoints, set defaults for # Host and SkipTLSVerify fields for k, v in metadata["Endpoints"].items(): if k != "docker": continue metadata["Endpoints"][k]["Host"] = v.get( "Host", get_context_host(None, False)) metadata["Endpoints"][k]["SkipTLSVerify"] = bool( v.get("SkipTLSVerify", True)) return metadata
def _load_meta(cls, name): metadata = {} meta_file = get_meta_file(name) if os.path.isfile(meta_file): with open(meta_file) as f: try: with open(meta_file) as f: metadata = json.load(f) for k, v in metadata["Endpoints"].items(): metadata["Endpoints"][k]["SkipTLSVerify"] = bool( v["SkipTLSVerify"]) except (IOError, KeyError, ValueError) as e: # unknown format raise Exception("""Detected corrupted meta file for context {} : {}""".format(name, e)) return (metadata["Name"], metadata["Metadata"].get("StackOrchestrator", None), metadata["Endpoints"]) return None, None, None