From 9a36c4c0c06fd72764aea3907f365666cdae03b4 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 29 Jan 2018 00:16:12 +0100 Subject: porter get created now --- src/flufigut.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) (limited to 'src/flufigut.py') diff --git a/src/flufigut.py b/src/flufigut.py index 5074895..4d8dbbe 100755 --- a/src/flufigut.py +++ b/src/flufigut.py @@ -55,6 +55,7 @@ class Description: def _sanity_check(self): # TODO: add more sanity checks + # - check if stream['localdup']['port'] and stream['port'] are different components = {} for _, worker in self.globals['workers'].items(): for c in worker: @@ -81,6 +82,15 @@ class Description: # a flumtion planet configuration ############################# # +class Porter: + + def __init__(self, name): + self.name = name + self.socket_path = rand_string() + self.username = rand_string(size=12) + self.password = rand_string(size=12) + + class Planet: def __init__(self): @@ -256,13 +266,50 @@ class Planet: # # streams + def __create_porter(self, comp_name_base, port, interface=None): + porter_name = 'port-%s-%i' % (comp_name_base, port) + addr = '*:%i' % (port) + if interface: + porter_name = 'port-%s-%s-%i' % (comp_name_base, interface, port) + addr = '%s:%i' % (interface, port) + + porter = Porter(porter_name) + self.atmosphere[porter.name] = { + 'type': "porter", + 'desc': "Porter for %s on %s" % (comp_name_base, addr), + 'worker': None, + 'properties': { + 'port': port, + 'socket-path': porter.socket_path, + 'username': porter.username, + 'password': porter.password, + }, + } + if interface: + self.atmosphere[porter.name]['interface'] = interface + + return porter + + def __generate_stream_instance(self, stream_name, stream, idx, globals): + port = stream['port'] + comp_name_base = "%s%i" % (stream_name, idx + 1) + porter = self.__create_porter(comp_name_base, port) + porter_localdup = None + if 'localdup' in stream: + porter_localdump = self.__create_porter(comp_name_base, stream['localdup']['port'], "localhost") + def _generate_streams(self, streams, globals): self.flow['repeaters'] = {} self.flow['streamers'] = {} - pass + for stream_name, stream in streams.items(): + streamer_cnt = stream['count'] + for idx in range(streamer_cnt): + print(stream) + self.__generate_stream_instance(stream_name, stream, idx, globals) # # records + def _generate_records(self, records, globals): self.flow['recorders'] = {} @@ -320,12 +367,13 @@ if __name__ == '__main__': print("** atmosphere **") print("**") __pp.pprint(p.atmosphere) - print("**") print("**************************") print("** planet **") print("**") __pp.pprint(p.flow) + print("**") + print("****************************************************") except Exception as e: print("ERROR: while running app: %s" % e) -- cgit v1.2.3