Mercurial > repos > enis > gcp_batch_netcat
diff gcp_batch_netcat.py @ 0:7852c0efafd7 draft
planemo upload for repository https://github.com/afgane/gcp_batch_netcat
author | enis |
---|---|
date | Mon, 14 Jul 2025 21:12:06 +0000 |
parents | |
children | 79160beab2a4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcp_batch_netcat.py Mon Jul 14 21:12:06 2025 +0000 @@ -0,0 +1,63 @@ + +import json +import subprocess +import argparse +import uuid + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--nfs_address', required=True) + parser.add_argument('--output', required=True) + parser.add_argument('--project', required=True) + parser.add_argument('--region', required=True) + parser.add_argument('--port', default='2049') + args = parser.parse_args() + + job_name = f'netcat-job-{uuid.uuid4()}' + + job_spec = { + "taskGroups": [ + { + "taskSpec": { + "runnables": [ + { + "script": { + "text": f"nc -z -v {args.nfs_address} {args.port}" + } + } + ] + }, + "taskCount": 1, + "parallelism": 1 + } + ], + "logsPolicy": { + "destination": "CLOUD_LOGGING" + } + } + + job_spec_file = 'job.json' + with open(job_spec_file, 'w') as f: + json.dump(job_spec, f) + + command = [ + 'gcloud', 'batch', 'jobs', 'submit', job_name, + '--location', args.region, + '--project', args.project, + '--config', job_spec_file, + '--format=text' + ] + + try: + result = subprocess.run(command, capture_output=True, text=True, check=True) + with open(args.output, 'w') as f: + f.write("Job output:\n") + f.write(result.stdout) + f.write(result.stderr) + except subprocess.CalledProcessError as e: + with open(args.output, 'w') as f: + f.write("Error submitting job:\n") + f.write(e.stderr) + +if __name__ == '__main__': + main()