|
#!/usr/bin/env python |
|
from __future__ import print_function |
|
|
|
from jujuclient import Environment |
|
import sys |
|
import subprocess |
|
|
|
class UpdateIP(Environment): |
|
def __init__(self, *args, **kwargs): |
|
Environment.__init__(self, *args, **kwargs) |
|
|
|
def set_machine_addresses(self, addresses): |
|
if not isinstance(addresses, list): |
|
addresses = [addresses] |
|
return self._rpc({ |
|
'type': "Machiner", |
|
'version': 0, |
|
'request': "SetMachineAddresses", |
|
'params': { |
|
'MachineAddresses': addresses, |
|
} |
|
}) |
|
|
|
def main(): |
|
if not len(sys.argv) > 2: |
|
print('Usage: %s machine-0 192.168.1.1' % sys.argv[0], file=sys.stderr) |
|
sys.exit(-1) |
|
|
|
env = UpdateIP.connect(subprocess.check_output(["juju", "env"]).rstrip('\n')) |
|
env.set_machine_addresses({ |
|
'Tag': sys.argv[1], |
|
'Addresses': [ {'Type': "ipv4", 'Value': sys.argv[2], 'Scope': 'public'}], |
|
}) |
|
|
|
if __name__ == "__main__": |
|
main() |