@@ -89,23 +89,25 @@ class ConfigFile(BaseJSON):
8989 def __init__ (self ) -> None :
9090 """ Init the class."""
9191 self ._path = PurePath (self ._config_dir + "/config.json" )
92- self ._default_json = """{
93- "registries": [
94- {
95- "name": "axem",
96- "namespace": "axemsolutions",
97- "url": "https://registry.hub.docker.com"
98- }
99- ],
100- "catalogs": [
101- {
102- "name": "axem",
103- "url": "https://axemsolutions.io/dem/dev_env_org.json"
92+ self ._default_options = {
93+ "registries" : [
94+ {
95+ "name" : "axem" ,
96+ "namespace" : "axemsolutions" ,
97+ "url" : "https://registry.hub.docker.com"
98+ }
99+ ],
100+ "catalogs" : [
101+ {
102+ "name" : "axem" ,
103+ "url" : "https://axemsolutions.io/dem/dev_env_org.json"
104+ }
105+ ],
106+ "hosts" : [],
107+ "http_request_timeout_s" : 2 ,
108+ "use_native_system_cert_store" : False
104109 }
105- ],
106- "hosts": [],
107- "http_request_timeout_s": 2
108- }"""
110+ self ._default_json = json .dumps (self ._default_options , indent = 4 )
109111 super ().__init__ ()
110112
111113 def update (self ) -> None :
@@ -114,10 +116,37 @@ def update(self) -> None:
114116 except json .decoder .JSONDecodeError as e :
115117 raise DataStorageError (f"The config.json file is corrupted.\n { str (e )} " ) from e
116118
117- self .registries : list [dict ] = self .deserialized .get ("registries" , [])
118- self .catalogs : list [dict ] = self .deserialized .get ("catalogs" , [])
119- self .hosts : list [dict ] = self .deserialized .get ("hosts" , [])
119+ flush_needed = False
120+
121+ self .registries : list [dict ] | None = self .deserialized .get ("registries" , None )
122+ if self .registries is None :
123+ self .deserialized ["registries" ] = self ._default_options ["registries" ]
124+ self .registries = self ._default_options ["registries" ]
125+ flush_needed = True
126+
127+ self .catalogs : list [dict ] | None = self .deserialized .get ("catalogs" , None )
128+ if self .catalogs is None :
129+ self .deserialized ["catalogs" ] = self ._default_options ["catalogs" ]
130+ self .catalogs = self ._default_options ["catalogs" ]
131+ flush_needed = True
132+
133+ self .hosts : list [dict ] | None = self .deserialized .get ("hosts" , None )
134+ if self .hosts is None :
135+ self .deserialized ["hosts" ] = self ._default_options ["hosts" ]
136+ self .hosts = self ._default_options ["hosts" ]
137+ flush_needed = True
138+
120139 self .http_request_timeout_s : float = self .deserialized .get ("http_request_timeout_s" , None )
121-
122140 if self .http_request_timeout_s is None :
123- raise DataStorageError ("The http_request_timeout_s is not set in the config.json file." )
141+ self .deserialized ["http_request_timeout_s" ] = self ._default_options ["http_request_timeout_s" ]
142+ self .http_request_timeout_s = self ._default_options ["http_request_timeout_s" ]
143+ flush_needed = True
144+
145+ self .use_native_system_cert_store : bool | None = self .deserialized .get ("use_native_system_cert_store" , None )
146+ if self .use_native_system_cert_store is None :
147+ self .deserialized ["use_native_system_cert_store" ] = self ._default_options ["use_native_system_cert_store" ]
148+ self .use_native_system_cert_store = self ._default_options ["use_native_system_cert_store" ]
149+ flush_needed = True
150+
151+ if flush_needed :
152+ self .flush ()
0 commit comments