Mercurial > repos > enis > gcp_batch_netcat
diff gcp_batch_netcat.py @ 7:fcfb703748b1 draft
planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
author | enis |
---|---|
date | Thu, 24 Jul 2025 22:32:12 +0000 |
parents | d25792770df8 |
children | 3fd12035e6c9 |
line wrap: on
line diff
--- a/gcp_batch_netcat.py Thu Jul 24 21:59:57 2025 +0000 +++ b/gcp_batch_netcat.py Thu Jul 24 22:32:12 2025 +0000 @@ -14,49 +14,18 @@ ) logger = logging.getLogger(__name__) -def discover_nfs_loadbalancer_ip(): - """ - Try to discover NFS LoadBalancer IP via Kubernetes API - Returns the external IP if found, None otherwise - """ - try: - import subprocess - logger.info("Attempting to discover NFS LoadBalancer IP via kubectl...") - result = subprocess.run(['kubectl', 'get', 'svc', '-n', 'nfs-provisioner', '-o', 'json'], capture_output=True, text=True) - if result.returncode == 0: - services = json.loads(result.stdout) - for item in services.get('items', []): - name = item.get('metadata', {}).get('name', '') - # Look for NFS-related service names - if any(keyword in name.lower() for keyword in ['nfs-provisioner-nfs-server-provisioner']): - spec = item.get('spec', {}) - if spec.get('type') == 'LoadBalancer': - ingress = item.get('status', {}).get('loadBalancer', {}).get('ingress', []) - if ingress: - ip = ingress[0].get('ip') - if ip: - logger.info(f"Found NFS LoadBalancer service '{name}' with external IP: {ip}") - return ip - logger.warning("No NFS LoadBalancer services found via kubectl") - else: - logger.warning(f"kubectl command failed: {result.stderr}") - except Exception as e: - logger.warning(f"Could not discover NFS LoadBalancer IP via kubectl: {e}") - return None + def determine_test_target(args): """Determine the target host and port based on test type""" if args.test_type == 'nfs': - # Extract NFS server address if not provided - if args.nfs_address: - nfs_address = args.nfs_address - logger.info(f"Using provided NFS address: {nfs_address}") - else: - # Try to auto-discover NFS LoadBalancer IP via Kubernetes API - nfs_address = discover_nfs_loadbalancer_ip() - if not nfs_address: - raise ValueError("Could not auto-detect NFS LoadBalancer IP. Please provide --nfs_address parameter with the LoadBalancer external IP.") + # NFS server address is required + if not args.nfs_address: + raise ValueError("NFS server address is required. Please provide --nfs_address parameter with the LoadBalancer external IP.") + + nfs_address = args.nfs_address + logger.info(f"Using provided NFS address: {nfs_address}") return nfs_address, 2049 else: @@ -64,7 +33,7 @@ def main(): parser = argparse.ArgumentParser() - parser.add_argument('--nfs_address', required=False, help='NFS server LoadBalancer IP address (if not provided, will be auto-detected via Kubernetes API)') + parser.add_argument('--nfs_address', required=True, help='NFS server LoadBalancer external IP address (required)') parser.add_argument('--output', required=True) parser.add_argument('--project', required=False, help='GCP Project ID (if not provided, will be extracted from service account key)') parser.add_argument('--region', required=True)