Before euca_rootwrap was rewritten:
* powerwake ran as root:root
* thus, powerwake had write access to /var/cache/powerwake/ethers
* and powerwake worked just fine
After euca_rootwrap was rewritten:
* powerwake was whitelisted, but wasn't given root access
* now, powerwake runs as eucalyptus:eucalyptus
* which is fine to send the magic WoL packet
* however, the cache file is not writable
* and thus, powerwake now itself throws an exception
As stated above, we can fix this entirely in powerwake with a trivial fix, testing W_OK on /var/cache/powerwake/ethers.
A bit more explanation...
Before euca_rootwrap was rewritten: powerwake/ ethers
* powerwake ran as root:root
* thus, powerwake had write access to /var/cache/
* and powerwake worked just fine
After euca_rootwrap was rewritten: eucalyptus
* powerwake was whitelisted, but wasn't given root access
* now, powerwake runs as eucalyptus:
* which is fine to send the magic WoL packet
* however, the cache file is not writable
* and thus, powerwake now itself throws an exception
As stated above, we can fix this entirely in powerwake with a trivial fix, testing W_OK on /var/cache/ powerwake/ ethers.
:-Dustin