server name is a domain name

This commit is contained in:
2020-02-26 08:29:25 +01:00
parent 9d79eef47f
commit 5ac9ec72f8
3 changed files with 20 additions and 8 deletions

View File

@ -6,6 +6,7 @@ from traceback import print_exc
from typing import Dict, List
from tiramisu import Storage, MixConfig
from tiramisu.error import PropertiesOptionError
from rougail import load as rougail_load
from rougail.config import dtdfilename
@ -230,22 +231,31 @@ class Risotto(Controller):
'server_to_deploy': await self.build_config(f'std_{server_id}',
server_id,
server_name,
mixconfig),
mixconfig,
std=True),
'funcs_file': self.get_funcs_filename(server_servermodel_id)}
async def build_config(self,
session_id: str,
server_id: int,
server_name: str,
mixconfig: MixConfig) -> None:
mixconfig: MixConfig,
std: bool=False) -> None:
""" build server's config
"""
config = await mixconfig.config.new(session_id,
storage=self.save_storage)
await config.information.set('server_id', server_id)
await config.information.set('server_name', server_name)
await config.owner.set(server_name)
await config.property.read_only()
option_value = config.option('creole.interface_0.domain_name_eth0').value
if std:
try:
await option_value.get()
except PropertiesOptionError:
await config.owner.set(server_name)
await config.property.read_write()
await config.option('creole.interface_0.domain_name_eth0').value.set(server_name)
await config.property.read_only()
return config
@register('v1.server.created')
@ -307,7 +317,8 @@ class Risotto(Controller):
mixconfig = self.servermodel.pop(servermodel_id)
children = []
for child in await mixconfig.config.list():
children.append(child)
if not (await child.session.id()).startswith('std_'):
children.append(child)
await mixconfig.config.pop(await child.session.id())
for parent in await mixconfig.config.parents():
await parent.config.pop(await mixconfig.session.id())

View File

@ -1,4 +1,5 @@
from typing import Dict
from tiramisu import DomainnameOption
from ...controller import Controller
from ...register import register
@ -29,6 +30,7 @@ class Risotto(Controller):
server_description: str,
servermodel_name: str,
release_distribution: str) -> Dict:
DomainnameOption('server_name', _('Server name'), server_name)
servermodel = await self.call('v1.servermodel.describe',
risotto_context,
servermodel_name=servermodel_name,