get leader option from follower
This commit is contained in:
parent
a36d3cb9bf
commit
7fad2b5d7d
2 changed files with 21 additions and 0 deletions
|
@ -1074,3 +1074,16 @@ async def test_follower_properties():
|
||||||
await cfg.option('ip_admin_eth0.netmask_admin_eth0', 0).property.get() == ('aproperty', 'newproperty', 'newproperty1')
|
await cfg.option('ip_admin_eth0.netmask_admin_eth0', 0).property.get() == ('aproperty', 'newproperty', 'newproperty1')
|
||||||
await cfg.option('ip_admin_eth0.netmask_admin_eth0', 1).property.get() == ('aproperty', 'newproperty1')
|
await cfg.option('ip_admin_eth0.netmask_admin_eth0', 1).property.get() == ('aproperty', 'newproperty1')
|
||||||
assert not await list_sessions()
|
assert not await list_sessions()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_api_get_leader(config_type):
|
||||||
|
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True)
|
||||||
|
netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau", multi=True)
|
||||||
|
interface1 = Leadership('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||||
|
maconfig = OptionDescription('conf', '', [interface1])
|
||||||
|
async with await Config(maconfig) as cfg:
|
||||||
|
option = await cfg.option('ip_admin_eth0.netmask_admin_eth0').option.leader()
|
||||||
|
assert await option.option.get() == ip_admin_eth0
|
||||||
|
|
||||||
|
assert not await list_sessions()
|
||||||
|
|
|
@ -439,6 +439,12 @@ class TiramisuOptionOption(_TiramisuOptionOptionDescription):
|
||||||
self._option_bag.config_bag,
|
self._option_bag.config_bag,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@option_and_connection
|
||||||
|
async def leader(self):
|
||||||
|
return TiramisuOption(self._option_bag.option.impl_get_leadership().get_leader().impl_getpath(),
|
||||||
|
None,
|
||||||
|
self._option_bag.config_bag)
|
||||||
|
|
||||||
|
|
||||||
class TiramisuOptionOwner(CommonTiramisuOption):
|
class TiramisuOptionOwner(CommonTiramisuOption):
|
||||||
#FIXME optiondescription must not have Owner!
|
#FIXME optiondescription must not have Owner!
|
||||||
|
@ -771,6 +777,7 @@ class TiramisuOptionValue(CommonTiramisuOption):
|
||||||
option = self._option_bag.option
|
option = self._option_bag.option
|
||||||
values = self._option_bag.config_bag.context.cfgimpl_get_values()
|
values = self._option_bag.config_bag.context.cfgimpl_get_values()
|
||||||
if option.impl_is_follower() and self._option_bag.index is None:
|
if option.impl_is_follower() and self._option_bag.index is None:
|
||||||
|
# IF OU PAS IF ?? if self._option_bag.option.impl_is_symlinkoption():
|
||||||
value = []
|
value = []
|
||||||
length = await self._subconfig.cfgimpl_get_length_leadership(self._option_bag)
|
length = await self._subconfig.cfgimpl_get_length_leadership(self._option_bag)
|
||||||
settings = self._option_bag.config_bag.context.cfgimpl_get_settings()
|
settings = self._option_bag.config_bag.context.cfgimpl_get_settings()
|
||||||
|
@ -782,6 +789,7 @@ class TiramisuOptionValue(CommonTiramisuOption):
|
||||||
soption_bag.properties = await settings.getproperties(soption_bag)
|
soption_bag.properties = await settings.getproperties(soption_bag)
|
||||||
value.append(await values.getdefaultvalue(soption_bag))
|
value.append(await values.getdefaultvalue(soption_bag))
|
||||||
return value
|
return value
|
||||||
|
# raise APIError('index must be set with a follower option')
|
||||||
else:
|
else:
|
||||||
return await values.getdefaultvalue(self._option_bag)
|
return await values.getdefaultvalue(self._option_bag)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue