cucchiaiata improvment

This commit is contained in:
2021-04-26 17:57:31 +02:00
parent 1b5ef5021e
commit 9cf64d8238
3 changed files with 28 additions and 16 deletions

View File

@ -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)