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)