summaryrefslogtreecommitdiff
path: root/src/flufigut.py
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-01-29 00:16:12 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-01-29 00:16:12 +0100
commit9a36c4c0c06fd72764aea3907f365666cdae03b4 (patch)
tree3833e055fa8ff7650354893ba33d0b4d32fee2c6 /src/flufigut.py
parentsome more refactoring (diff)
porter get created now
Diffstat (limited to 'src/flufigut.py')
-rwxr-xr-xsrc/flufigut.py52
1 files changed, 50 insertions, 2 deletions
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)