bundlewrap/bundles/wol-waker/metadata.py

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')
},
},
},
}