31 lines
909 B
Python
31 lines
909 B
Python
defaults = {
|
|
'apt': {
|
|
'packages': {
|
|
'wakeonlan': {},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'users/wol/authorized_users',
|
|
)
|
|
def user(metadata):
|
|
return {
|
|
'users': {
|
|
'wol': {
|
|
'authorized_users': {
|
|
f'root@{ssh_client.name}': {
|
|
'commands': {
|
|
'/usr/bin/wakeonlan ' + sleeper.metadata.get('wol-sleeper/mac')
|
|
for sleeper in repo.nodes
|
|
if sleeper.has_bundle('wol-sleeper')
|
|
and sleeper.metadata.get('wol-sleeper/waker') == node.name
|
|
}
|
|
}
|
|
for ssh_client in repo.nodes
|
|
if ssh_client.dummy == False and ssh_client.has_bundle('ssh')
|
|
},
|
|
},
|
|
},
|
|
}
|