cucchiaiata improvment
This commit is contained in:
parent
1b5ef5021e
commit
9cf64d8238
|
@ -71,7 +71,7 @@ organizations:
|
|||
zones: [internet]
|
||||
servers:
|
||||
- name: dns.cadoles.com
|
||||
cluster: cluster.cadoles.com
|
||||
cluster: hapy.ac-test.fr
|
||||
zones: [internet]
|
||||
servermodel: unbound_etab1
|
||||
settings:
|
||||
|
|
|
@ -5,8 +5,9 @@ from sys import exit, argv
|
|||
from yaml import load, SafeLoader, YAMLError
|
||||
from time import sleep
|
||||
from os.path import isfile
|
||||
from json import dumps
|
||||
|
||||
from cucchiaiata import Configuration
|
||||
from cucchiaiata import Configuration, JsonError, config
|
||||
from cucchiaiata.common import Common
|
||||
from cucchiaiata.i18n import _
|
||||
|
||||
|
@ -43,13 +44,13 @@ class Import(Common):
|
|||
'cluster',
|
||||
cluster,
|
||||
zone_name=cluster['zone'],
|
||||
zones_name=cluster['zones'],
|
||||
)
|
||||
for node in cluster.get('nodes', []):
|
||||
self.configuration('infra',
|
||||
'cluster.node',
|
||||
node,
|
||||
cluster_name=cluster['name'],
|
||||
zones_name=node['zones'],
|
||||
)
|
||||
self.send('v1.infra.cluster.deploy',
|
||||
cluster_name=cluster['name'],
|
||||
|
@ -99,9 +100,12 @@ class Import(Common):
|
|||
if 'settings' in dico:
|
||||
#FIXME
|
||||
sleep(1)
|
||||
self.apply_settings(element,
|
||||
dico,
|
||||
)
|
||||
try:
|
||||
self.apply_settings(element,
|
||||
dico,
|
||||
)
|
||||
except JsonError as err:
|
||||
raise Exception(f'unable to configure {element} "{dico["name"]}": {err.message["reason"]}')
|
||||
|
||||
def apply_settings(self,
|
||||
element: str,
|
||||
|
@ -138,10 +142,10 @@ class Import(Common):
|
|||
value = [value]
|
||||
tiramisu.option(key).value.set(value)
|
||||
except ValueError as err:
|
||||
print(_(f'error when setting "{domain}" "{dico["name"]}": "{key}" with value "{value}": {err}'))
|
||||
print(_(f'error when setting "{element}" "{dico["name"]}": "{key}" with value "{value}": {err}'))
|
||||
exit(1)
|
||||
except Exception as err:
|
||||
print(_(f'unexpected error when setting "{domain}" "{dico["name"]}": "{key}" with value "{value}": {err}'))
|
||||
print(_(f'unexpected error when setting "{element}" "{dico["name"]}": "{key}" with value "{value}": {err}'))
|
||||
exit(1)
|
||||
self.send_configuration(tiramisu,
|
||||
session_id,
|
||||
|
@ -215,7 +219,14 @@ if __name__ == "__main__":
|
|||
print(_(f'usage: {argv[0]} filename.yaml'))
|
||||
exit(1)
|
||||
imp = Import(argv[1])
|
||||
imp.parse_zones()
|
||||
imp.parse_clusters()
|
||||
imp.parse_servermodels()
|
||||
imp.parse_organizations()
|
||||
try:
|
||||
imp.parse_zones()
|
||||
imp.parse_clusters()
|
||||
imp.parse_servermodels()
|
||||
imp.parse_organizations()
|
||||
except JsonError as err:
|
||||
print(err.message['reason'])
|
||||
exit(1)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
exit(1)
|
||||
|
|
|
@ -3,9 +3,11 @@ from requests import get, post
|
|||
from json import dumps
|
||||
from typing import Dict
|
||||
|
||||
from .config import config
|
||||
from tiramisu_api import Config
|
||||
|
||||
from .config import config
|
||||
from .i18n import _
|
||||
|
||||
|
||||
if config.allow_insecure_https:
|
||||
import warnings
|
||||
|
@ -82,12 +84,11 @@ class Common:
|
|||
self.send('v1.setting.session.validate',
|
||||
session_id=session_id,
|
||||
)
|
||||
except Exception as err:
|
||||
except JsonError as err:
|
||||
self.send('v1.setting.session.stop',
|
||||
session_id=session_id,
|
||||
)
|
||||
print(_(f'error when validate setting to "{name}" "{dico["name"]}": {err}'))
|
||||
exit(1)
|
||||
raise err from err
|
||||
|
||||
|
||||
def send_data(uri: str,
|
||||
|
|
Loading…
Reference in New Issue