2016-02-04 17:04:42 +01:00

56 lines
2.3 KiB
Python

import time
from solar.core.resource import composer as cr
from solar.core.resource import resource as rs
from solar import errors
from solar.dblayer.model import ModelMeta
from solar.core.transports.base import locate_named_transport_resoruce
def run():
node1 = rs.load_all(startswith='node')[0]
hosts1 = rs.load_all(startswith='hosts_file')[0]
# let's add torrent transport for hosts file deployment (useless in real life)
torrent_transport = cr.create('torrent_transport',
'resources/transport_torrent',
{'trackers': ['udp://open.demonii.com:1337',
'udp://tracker.openbittorrent.com:80']})[0]
# you could use any trackers as you want
transports_for_torrent = cr.create(
'transports_for_torrent', 'resources/transports')[0]
transports_for_torrent.connect(torrent_transport, {})
ssh_transport = locate_named_transport_resoruce(node1, 'ssh')
ssh_transport.connect_with_events(transports_for_torrent, {'key': 'transports:key',
'password': 'transports:password',
'user': 'transports:user',
'port': 'transports:port',
'name': 'transports:name'},
events={})
transports_for_hosts = cr.create(
'transports_for_hosts', 'resources/transports')[0]
torrent_transport.connect(transports_for_hosts, {'trackers': 'transports:trackers',
'name': 'transports:name'})
ssh_transport.connect(transports_for_hosts, {'key': 'transports:key',
'password': 'transports:password',
'user': 'transports:user',
'port': 'transports:port',
'name': 'transports:name'})
transports_for_hosts.connect(hosts1)
transports_for_hosts.connect_with_events(node1, events={})
node1.connect(hosts1, {
'ip': 'hosts:ip',
'name': 'hosts:name'
})
run()