Ver código fonte

Adding ossh.py

Kenny Woodson 10 anos atrás
pai
commit
d3dee2db1c
2 arquivos alterados com 64 adições e 1 exclusões
  1. 19 1
      bin/ansibleutil.py
  2. 45 0
      bin/ossh.py

+ 19 - 1
bin/ansibleutil.py

@@ -22,7 +22,9 @@ class AnsibleUtil(object):
         if p.returncode != 0:
             raise RuntimeError(err)
 
-        return json.loads(out)
+        with open('/tmp/ans.out','w') as fd:
+            fd.writelines(out)
+        return json.loads(out.strip())
 
     def get_environments(self):
         pattern = re.compile(r'^tag_environment_(.*)')
@@ -47,3 +49,19 @@ class AnsibleUtil(object):
                 groups.append(m.group(1))
 
         return groups
+
+    def get_host_address(self):
+        pattern = re.compile(r'^tag_Name_(.*)')
+        inv = self.get_inventory()
+
+        inst_names = {}
+        for key in inv.keys():
+            m = pattern.match(key)
+            if m: inst_names[m.group(1)] = inv[key]
+
+
+        return inst_names
+
+
+
+

+ 45 - 0
bin/ossh.py

@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+
+import argparse
+import ansibleutil
+import sys
+import os
+
+
+# use dynamic inventory
+# list instances
+# symlinked to ~/bin
+# list instances that match pattern
+# python!
+
+
+class Ossh(object):
+    def __init__(self):
+        self.file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)))
+        self.parse_cli_args()
+        self.ansible = ansibleutil.AnsibleUtil()
+
+        self.list_hosts()
+        
+    def parse_cli_args(self):
+        parser = argparse.ArgumentParser(description='Openshift Online SSH Tool.')
+        parser.add_argument('-l', '--list', default=True, 
+                          action="store_true", help="list out hosts")
+
+        self.args = parser.parse_args()
+
+    def list_hosts(self):
+        # TODO: perform a numerical sort on these hosts
+        # and display them
+        print self.ansible.get_host_address()
+
+    def ssh(self):
+        pass
+
+def main():
+    ossh = Ossh()
+
+
+if __name__ == '__main__':
+    main()
+