Further work on riak_example
This commit is contained in:
parent
64740f6083
commit
ce2f31598b
@ -33,7 +33,9 @@ def setup_riak():
|
|||||||
ip = ips % (num + 2) # XXX: da rade inaczej ?
|
ip = ips % (num + 2) # XXX: da rade inaczej ?
|
||||||
r = vr.create('riak_service%d' % num,
|
r = vr.create('riak_service%d' % num,
|
||||||
'resources/riak_node',
|
'resources/riak_node',
|
||||||
{'riak_name': 'riak%d@%s' % (num, ip)})[0]
|
{'riak_self_name': 'riak%d' % num,
|
||||||
|
'riak_hostname': 'riak_server%d.solar' % num,
|
||||||
|
'riak_name': 'riak%d@riak_server%d.solar' % (num, num)})[0]
|
||||||
riak_services.append(r)
|
riak_services.append(r)
|
||||||
|
|
||||||
for i, riak in enumerate(riak_services):
|
for i, riak in enumerate(riak_services):
|
||||||
@ -42,6 +44,18 @@ def setup_riak():
|
|||||||
for i, riak in enumerate(riak_services[1:]):
|
for i, riak in enumerate(riak_services[1:]):
|
||||||
signals.connect(riak_services[0], riak, {'riak_name': 'join_to'})
|
signals.connect(riak_services[0], riak, {'riak_name': 'join_to'})
|
||||||
|
|
||||||
|
hosts_services = []
|
||||||
|
for i, riak in enumerate(riak_services):
|
||||||
|
num = i + 1
|
||||||
|
hosts_file = vr.create('hosts_file%d' % num,
|
||||||
|
'resources/hosts_file', {})[0]
|
||||||
|
hosts_services.append(hosts_file)
|
||||||
|
signals.connect(nodes[i], hosts_file)
|
||||||
|
|
||||||
|
for riak in riak_services:
|
||||||
|
for hosts_file in hosts_services:
|
||||||
|
signals.connect(riak, hosts_file, {'riak_hostname': 'hosts_names', 'ip': 'hosts_ips'}, events=False)
|
||||||
|
|
||||||
has_errors = False
|
has_errors = False
|
||||||
for r in locals().values():
|
for r in locals().values():
|
||||||
|
|
||||||
@ -60,14 +74,18 @@ def setup_riak():
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
events = [
|
events = [
|
||||||
Dep('riak_service2', 'run', 'success', 'riak_service3', 'join'),
|
Dep('hosts_file1', 'run', 'success', 'riak_service1', 'run'),
|
||||||
Dep('riak_service3', 'run', 'success', 'riak_service2', 'join'),
|
Dep('hosts_file2', 'run', 'success', 'riak_service2', 'run'),
|
||||||
|
Dep('hosts_file3', 'run', 'success', 'riak_service3', 'run'),
|
||||||
|
|
||||||
|
Dep('riak_service2', 'run', 'success', 'riak_service2', 'join'),
|
||||||
|
Dep('riak_service3', 'run', 'success', 'riak_service3', 'join'),
|
||||||
|
|
||||||
React('riak_service1', 'run', 'success', 'riak_service2', 'join'),
|
React('riak_service1', 'run', 'success', 'riak_service2', 'join'),
|
||||||
React('riak_service1', 'run', 'success', 'riak_service3', 'join'),
|
React('riak_service1', 'run', 'success', 'riak_service3', 'join'),
|
||||||
|
|
||||||
React('riak_service2', 'run', 'success', 'riak_service2', 'join'),
|
# React('riak_service2', 'run', 'success', 'riak_service2', 'join'),
|
||||||
React('riak_service3', 'run', 'success', 'riak_service3', 'join'),
|
# React('riak_service3', 'run', 'success', 'riak_service3', 'join'),
|
||||||
|
|
||||||
React('riak_service3', 'join', 'success', 'riak_service1', 'commit'),
|
React('riak_service3', 'join', 'success', 'riak_service1', 'commit'),
|
||||||
React('riak_service2', 'join', 'success', 'riak_service1', 'commit')
|
React('riak_service2', 'join', 'success', 'riak_service1', 'commit')
|
||||||
@ -111,12 +129,12 @@ def setup_haproxies():
|
|||||||
|
|
||||||
for single_hpsc in hpsc_http:
|
for single_hpsc in hpsc_http:
|
||||||
for riak in riaks:
|
for riak in riaks:
|
||||||
signals.connect(riak, single_hpsc, {'ip': 'servers',
|
signals.connect(riak, single_hpsc, {'riak_hostname': 'servers',
|
||||||
'riak_port_http': 'ports'})
|
'riak_port_http': 'ports'})
|
||||||
|
|
||||||
for single_hpsc in hpsc_pb:
|
for single_hpsc in hpsc_pb:
|
||||||
for riak in riaks:
|
for riak in riaks:
|
||||||
signals.connect(riak, single_hpsc, {'ip': 'servers',
|
signals.connect(riak, single_hpsc, {'riak_hostname': 'servers',
|
||||||
'riak_port_pb': 'ports'})
|
'riak_port_pb': 'ports'})
|
||||||
|
|
||||||
# haproxy config to haproxy service
|
# haproxy config to haproxy service
|
||||||
|
@ -15,9 +15,16 @@ input:
|
|||||||
ssh_user:
|
ssh_user:
|
||||||
schema: str!
|
schema: str!
|
||||||
value:
|
value:
|
||||||
riak_name:
|
riak_self_name:
|
||||||
schema: str!
|
schema: str!
|
||||||
value:
|
value:
|
||||||
|
riak_hostname:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
riak_name:
|
||||||
|
schema: str!
|
||||||
|
# value: "{{riak_self_name}}@{{riak_hostname}}"
|
||||||
|
value: "{{riak_self_name}}@{{ip}}"
|
||||||
riak_port_http:
|
riak_port_http:
|
||||||
schema: int!
|
schema: int!
|
||||||
value: 18098
|
value: 18098
|
||||||
|
@ -8,6 +8,7 @@ from solar.interfaces.db import get_db
|
|||||||
from solar.events.api import add_events
|
from solar.events.api import add_events
|
||||||
from solar.events.controls import Dependency
|
from solar.events.controls import Dependency
|
||||||
|
|
||||||
|
|
||||||
db = get_db()
|
db = get_db()
|
||||||
|
|
||||||
|
|
||||||
@ -135,7 +136,14 @@ def connect_single(emitter, src, receiver, dst):
|
|||||||
emitter.args[src].subscribe(receiver.args[dst])
|
emitter.args[src].subscribe(receiver.args[dst])
|
||||||
|
|
||||||
|
|
||||||
def connect(emitter, receiver, mapping=None):
|
def connect(emitter, receiver, mapping=None, events=None):
|
||||||
|
# convert if needed
|
||||||
|
# TODO: handle invalid resource
|
||||||
|
# if isinstance(emitter, basestring):
|
||||||
|
# emitter = resource.load(emitter)
|
||||||
|
# if isinstance(receiver, basestring):
|
||||||
|
# receiver = resource.load(receiver)
|
||||||
|
|
||||||
mapping = mapping or guess_mapping(emitter, receiver)
|
mapping = mapping or guess_mapping(emitter, receiver)
|
||||||
|
|
||||||
if isinstance(mapping, set):
|
if isinstance(mapping, set):
|
||||||
@ -151,15 +159,24 @@ def connect(emitter, receiver, mapping=None):
|
|||||||
|
|
||||||
connect_single(emitter, src, receiver, dst)
|
connect_single(emitter, src, receiver, dst)
|
||||||
|
|
||||||
events = [
|
# possibility to set events, when False it will NOT add events at all
|
||||||
Dependency(emitter.name, 'run', 'success', receiver.name, 'run'),
|
if events is not False:
|
||||||
Dependency(emitter.name, 'update', 'success', receiver.name, 'update')
|
events = [
|
||||||
|
Dependency(emitter.name, 'run', 'success', receiver.name, 'run'),
|
||||||
|
Dependency(emitter.name, 'update', 'success', receiver.name, 'update')
|
||||||
]
|
]
|
||||||
add_events(emitter.name, events)
|
add_events(emitter.name, events)
|
||||||
#receiver.save()
|
# receiver.save()
|
||||||
|
|
||||||
|
|
||||||
def disconnect(emitter, receiver):
|
def disconnect(emitter, receiver):
|
||||||
|
# convert if needed
|
||||||
|
# TODO: handle invalid resource
|
||||||
|
# if isinstance(emitter, basestring):
|
||||||
|
# emitter = resource.load(emitter)
|
||||||
|
# if isinstance(receiver, basestring):
|
||||||
|
# receiver = resource.load(receiver)
|
||||||
|
|
||||||
clients = Connections.read_clients()
|
clients = Connections.read_clients()
|
||||||
|
|
||||||
for src, destinations in clients[emitter.name].items():
|
for src, destinations in clients[emitter.name].items():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user