import os from PipelineWriter import PipelineWriter import paramiko myHostname = "srv-pdt-3.cartelmatic.com" myUsername = "sys-cartel" allowedPrefixes = "STAT" def myfakefile(keystring): print(keystring) myfakefile.readlines=lambda: keystring.split("\n") return myfakefile def get_webservices(): private_key = paramiko.Ed25519Key.from_private_key(myfakefile(os.environ.get("SSH_PRIVATE_KEY"))) client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) print("Connecting.") client.connect(hostname=myHostname, username=myUsername, pkey=private_key) print("Connected.") ftp = client.open_sftp() files = ftp.listdir("/var/www/html/api/analytics/") newlist = [x for x in files if x.startswith(allowedPrefixes)] return newlist def generator(): with open('child-pipeline-gitlab-ci.yml', 'w+') as f: f.write(PipelineWriter.parent_job_template()) for webservice in get_webservices(): f.write(PipelineWriter.child_pipeline_job_template(webservice)) if __name__ == "__main__": generator()