@ -38,14 +38,17 @@ import os.path
import subprocess
import subprocess
import re
import re
from paramiko import SSHConfig
from paramiko import SSHConfig
from cStringIO import StringIO
from optparse import OptionParser
from optparse import OptionParser
from collections import defaultdict
from collections import defaultdict
try :
try :
import json
import json
except :
except Exception :
import simplejson as json
import simplejson as json
from ansible . module_utils . _text import to_text
from ansible . module_utils . six . moves import StringIO
_group = ' vagrant ' # a default group
_group = ' vagrant ' # a default group
_ssh_to_ansible = [ ( ' user ' , ' ansible_ssh_user ' ) ,
_ssh_to_ansible = [ ( ' user ' , ' ansible_ssh_user ' ) ,
( ' hostname ' , ' ansible_ssh_host ' ) ,
( ' hostname ' , ' ansible_ssh_host ' ) ,
@ -74,7 +77,8 @@ def get_ssh_config():
# list all the running boxes
# list all the running boxes
def list_running_boxes ( ) :
def list_running_boxes ( ) :
output = subprocess . check_output ( [ " vagrant " , " status " ] ) . split ( ' \n ' )
output = to_text ( subprocess . check_output ( [ " vagrant " , " status " ] ) , errors = ' surrogate_or_strict ' ) . split ( ' \n ' )
boxes = [ ]
boxes = [ ]
@ -90,7 +94,7 @@ def list_running_boxes():
def get_a_ssh_config ( box_name ) :
def get_a_ssh_config ( box_name ) :
""" Gives back a map of all the machine ' s ssh configurations """
""" Gives back a map of all the machine ' s ssh configurations """
output = subprocess. check_output ( [ " vagrant " , " ssh-config " , box_name ] )
output = to_text( subprocess. check_output ( [ " vagrant " , " ssh-config " , box_name ] ) , errors = ' surrogate_or_strict ' )
config = SSHConfig ( )
config = SSHConfig ( )
config . parse ( StringIO ( output ) )
config . parse ( StringIO ( output ) )
host_config = config . lookup ( box_name )
host_config = config . lookup ( box_name )
@ -104,6 +108,7 @@ def get_a_ssh_config(box_name):
return dict ( ( v , host_config [ k ] ) for k , v in _ssh_to_ansible )
return dict ( ( v , host_config [ k ] ) for k , v in _ssh_to_ansible )
# List out servers that vagrant has running
# List out servers that vagrant has running
# ------------------------------
# ------------------------------
if options . list :
if options . list :