aboutsummaryrefslogtreecommitdiffstats
path: root/moonv4/moon_utilities/moon_utilities/get_os_apis.py
diff options
context:
space:
mode:
Diffstat (limited to 'moonv4/moon_utilities/moon_utilities/get_os_apis.py')
-rw-r--r--moonv4/moon_utilities/moon_utilities/get_os_apis.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/moonv4/moon_utilities/moon_utilities/get_os_apis.py b/moonv4/moon_utilities/moon_utilities/get_os_apis.py
deleted file mode 100644
index 0008b285..00000000
--- a/moonv4/moon_utilities/moon_utilities/get_os_apis.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import json
-import yaml
-import logging
-import requests
-import argparse
-
-URLS = {
- "keystone": "https://api.github.com/repos/openstack/keystone/contents/api-ref/source/v3",
- "nova": "https://api.github.com/repos/openstack/nova/contents/api-ref/source",
- "neutron": "https://api.github.com/repos/openstack/neutron-lib/contents/api-ref/source/v2",
- "glance": "https://api.github.com/repos/openstack/glance/contents/api-ref/source/v2",
- "swift": "https://api.github.com/repos/openstack/swift/contents/api-ref/source",
- "cinder": "https://api.github.com/repos/openstack/cinder/contents/api-ref/source/v3",
-
-}
-
-logger = None
-
-USER = ""
-PASS = ""
-
-
-def init():
- global logger, USER, PASS
- parser = argparse.ArgumentParser()
- parser.add_argument("--verbose", "-v", action='store_true', help="verbose mode")
- parser.add_argument("--debug", "-d", action='store_true', help="debug mode")
- parser.add_argument("--format", "-f", help="Output format (txt, json)", default="json")
- parser.add_argument("--output", "-o", help="Output filename")
- parser.add_argument("--from-policies", "-p", help="Get API from policy.{json,yaml}", target="policies")
- parser.add_argument("--credentials", "-c", help="Github credential filename (inside format user:pass)")
- args = parser.parse_args()
-
- FORMAT = '%(levelname)s %(message)s'
-
- if args.verbose:
- logging.basicConfig(
- format=FORMAT,
- level=logging.INFO)
- elif args.debug:
- logging.basicConfig(
- format=FORMAT,
- level=logging.DEBUG)
- else:
- logging.basicConfig(
- format=FORMAT,
- level=logging.WARNING)
-
- if args.credentials:
- cred = open(args.credentials).read()
- USER = cred.split(":")[0]
- PASS = cred.split(":")[1]
-
- logger = logging.getLogger(__name__)
-
- return args
-
-
-def get_api_item(url):
- if USER:
- r = requests.get(url, auth=(USER, PASS))
- else:
- r = requests.get(url)
- items = []
- for line in r.text.splitlines():
- if ".. rest_method::" in line:
- items.append(line.replace(".. rest_method::", "").strip())
- logger.debug("\n\t".join(items))
- return items
-
-
-def get_content(key, args):
- logger.info("Analysing {}".format(key))
- if USER:
- r = requests.get(URLS[key], auth=(USER, PASS))
- else:
- r = requests.get(URLS[key])
- data = r.json()
- results = {}
- for item in data:
- try:
- logger.debug("{} {}".format(item['name'], item['download_url']))
- if item['type'] == "file" and ".inc" in item['name']:
- results[item['name'].replace(".inc", "")] = get_api_item(item['download_url'])
- except TypeError:
- logger.error("Error with {}".format(item))
- except requests.exceptions.MissingSchema:
- logger.error("MissingSchema error {}".format(item))
- return results
-
-
-def to_str(results):
- output = ""
- for key in results:
- output += "{}\n".format(key)
- for item in results[key]:
- output += "\t{}\n".format(item)
- for value in results[key][item]:
- output += "\t\t{}\n".format(value)
- return output
-
-
-def get_data_from_policies(policies):
- return
- # for filename in policies.split(","):
- # try:
- # obj = json.loads(open(filename.strip()).read())
-
-
-def save(results, args):
- if args.output:
- if args.format == 'json':
- json.dump(results, open(args.output, "w"), indent=4)
- elif args.format == 'txt':
- open(args.output, "w").write(to_str(results))
- else:
- if args.format == 'json':
- print(json.dumps(results, indent=4))
- elif args.format in ('txt', 'text'):
- print(to_str(results))
-
-
-def main():
- args = init()
- results = {}
- if not args.policies:
- for key in URLS:
- results[key] = get_content(key, args)
- else:
- get_data_from_policies(args.policies)
- save(results, args)
-
-if __name__ == "__main__":
- main()