@@ -89,23 +89,25 @@ class ConfigFile(BaseJSON):
89
89
def __init__ (self ) -> None :
90
90
""" Init the class."""
91
91
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
104
109
}
105
- ],
106
- "hosts": [],
107
- "http_request_timeout_s": 2
108
- }"""
110
+ self ._default_json = json .dumps (self ._default_options , indent = 4 )
109
111
super ().__init__ ()
110
112
111
113
def update (self ) -> None :
@@ -114,10 +116,37 @@ def update(self) -> None:
114
116
except json .decoder .JSONDecodeError as e :
115
117
raise DataStorageError (f"The config.json file is corrupted.\n { str (e )} " ) from e
116
118
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
+
120
139
self .http_request_timeout_s : float = self .deserialized .get ("http_request_timeout_s" , None )
121
-
122
140
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