Currently job artifacts in CI/CD pipelines on LRZ GitLab never expire. Starting from Wed 26.1.2022 the default expiration time will be 30 days (GitLab default). Currently existing artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

Commit f16a062d authored by eckhart's avatar eckhart
Browse files

- stub for a compilation-server-module extended

parent 9bf2aea1
......@@ -53,44 +53,26 @@ class CompilerServer:
self.compiler = compiler
self.max_source_size = get_config_value('max_source_size')
def handle_compilation_request(self, reader, writer):
async def handle_compilation_request(self,
reader: asyncio.StreamReader,
writer: asyncio.StreamWriter):
data = await reader.read(self.max_source_size + 1)
if len(data) > self.max_source_size:
writer.write(BEGIN_TOKEN + SERVER_ERROR + TOKEN_DELIMITER +
"Source code to large! Only %iMB allowed." %
(self.max_source_size // (1024**2)) + END_TOKEN)
else:
pass # TODO: to be continued
writer.write(data) # for now, only echo
await writer.drain()
writer.close()
async def handle_echo(reader, writer):
# TODO: Add deliver/answer-challenge-mechanism here to verify the source
# see file:///usr/share/doc/python/html/library/multiprocessing.html?highlight=connection#module-multiprocessing.connection
data = await reader.read(100)
message = data.decode()
addr = writer.get_extra_info('peername')
async def _compiler_server(self, address: str, port: int):
server = await syncio.start_server(self.handle_compilation_request, address, port)
async with server:
await server.serve_forever
print(f"Received {message!r} from {addr!r}")
def serve(self, address: str='127.0.0.1', port: int=8888):
# TODO: Replace this by a python 3.5. compatible construct...
asyncio.run(self._compiler_server())
await asyncio.sleep(5)
print(f"Send: {message!r}")
writer.write(data)
await writer.drain()
print("Close the connection")
writer.close()
async def main():
server = await asyncio.start_server(
handle_echo, '127.0.0.1', 8888)
addr = server.sockets[0].getsockname()
print(f'Serving on {addr}')
async with server:
await server.serve_forever()
asyncio.run(main())
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment