support leadership name in extra

This commit is contained in:
2021-04-12 15:04:15 +02:00
parent 3999969aa0
commit b7cedd85fb
14 changed files with 290 additions and 7 deletions

View File

@ -122,10 +122,11 @@ class RougailLeader:
For examples: %%leader, %%leader[0].follower1
"""
def __init__(self,
leader_name,
value,
) -> None:
self._value = value
self._follower = {}
self._follower = {leader_name: value}
def __getitem__(self, index):
"""Get a leader.follower at requested index.
@ -393,8 +394,9 @@ class RougailBaseTemplate:
if await option.option.isleadership():
for idx, suboption in enumerate(await option.list('all')):
if idx == 0:
leader = RougailLeader(await suboption.value.get())
leader_name = await suboption.option.name()
leader = RougailLeader(leader_name, await suboption.value.get())
leadership_name = await option.option.name()
if is_variable_namespace:
self.rougail_variables_dict[await suboption.option.name()] = leader
else:
@ -402,7 +404,7 @@ class RougailBaseTemplate:
await suboption.option.name(),
await suboption.option.path(),
)
variables[leader_name] = leader
variables[leadership_name] = leader
else:
if is_service_namespace == 'root':
new_is_service_namespace = 'service_name'