import datetime import json import time import requests import os import subprocess def fetch_dev_infra_networks_json(): cmd = "KUBECONFIG=dev-infra-apiserver /usr/local/bin/kubectl get networks -A -o json" inputDomain = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) jsonS = json.dumps(inputDomain.communicate()[0].decode('utf-8')) return json.loads(jsonS) def fetch_staging_infra_networks_json(): cmd = "KUBECONFIG=staging-infra-apiserver /usr/local/bin/kubectl get networks -A -o json" inputDomain = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) jsonS = json.dumps(inputDomain.communicate()[0].decode('utf-8')) return json.loads(jsonS) def fetch_networks( env ): networksResult = [] rawData = None if env == 'nightly': rawData = fetch_dev_infra_networks_json() else: rawData = fetch_staging_infra_networks_json() networks = json.loads(rawData) for network in networks['items']: namespace = network['metadata']['namespace'] if env not in namespace: continue namespaceSeps = namespace.split('-') projectId = namespaceSeps[ len(namespaceSeps) - 1 ] if projectId == '1': continue provider = network['spec']['provider'] if 'aws-free-tier' == provider: continue networksResult.append(projectId) return networksResult if "__main__" == __name__: nightlyNetworksResult = fetch_networks('nightly') print(nightlyNetworksResult) stagingNetworksResult = fetch_networks('staging') print(stagingNetworksResult)