forked from ungleich-public/cdist
		
	re-arrange REMOTE_COPY/EXEC for Shell use
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								2403fc59ee
							
						
					
				
			
			
				commit
				
					
						c793825edb
					
				
			
		
					 3 changed files with 31 additions and 6 deletions
				
			
		| 
						 | 
					@ -40,8 +40,11 @@ BANNER = """
 | 
				
			||||||
 "8888P'   `"888*""     R888" `   ^"F        'Y"
 | 
					 "8888P'   `"888*""     R888" `   ^"F        'Y"
 | 
				
			||||||
   "P'        ""         ""
 | 
					   "P'        ""         ""
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DOT_CDIST   = ".cdist"
 | 
					DOT_CDIST   = ".cdist"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REMOTE_COPY = "scp -o User=root -q"
 | 
				
			||||||
 | 
					REMOTE_EXEC = "ssh -o User=root -q"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Error(Exception):
 | 
					class Error(Exception):
 | 
				
			||||||
    """Base exception class for this project"""
 | 
					    """Base exception class for this project"""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,9 +20,13 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
import sys
 | 
					import os
 | 
				
			||||||
 | 
					import subprocess
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cdist
 | 
					# FIXME: only considering config here - enable
 | 
				
			||||||
 | 
					# command line switch for using install object
 | 
				
			||||||
 | 
					# when it is available
 | 
				
			||||||
 | 
					import cdist.config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log = logging.getLogger(__name__)
 | 
					log = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,9 +36,25 @@ class Shell(object):
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def commandline(cls):
 | 
					    def commandline(cls, args):
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
        # initialise cdist
 | 
					        # initialise cdist
 | 
				
			||||||
 | 
					        import cdist.context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        context = cdist.context.Context(
 | 
				
			||||||
 | 
					            target_host="cdist-shell-no-target-host",
 | 
				
			||||||
 | 
					            remote_copy=cdist.REMOTE_COPY,
 | 
				
			||||||
 | 
					            remote_exec=cdist.REMOTE_EXEC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        config = cdist.config.Config(context)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Startup Shell
 | 
					        # Startup Shell
 | 
				
			||||||
 | 
					        if args.shell:
 | 
				
			||||||
 | 
					            shell = [args.shell]
 | 
				
			||||||
 | 
					        elif 'SHELL' in os.environ:
 | 
				
			||||||
 | 
					            shell = [os.environ['SHELL']]
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            shell = ["/bin/sh"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        log.info("Starting shell...")
 | 
				
			||||||
 | 
					        subprocess.call(shell)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,11 +75,11 @@ def commandline():
 | 
				
			||||||
    parser['configinstall'].add_argument('--remote-copy',
 | 
					    parser['configinstall'].add_argument('--remote-copy',
 | 
				
			||||||
         help='Command to use for remote copy (should behave like scp)',
 | 
					         help='Command to use for remote copy (should behave like scp)',
 | 
				
			||||||
         action='store', dest='remote_copy',
 | 
					         action='store', dest='remote_copy',
 | 
				
			||||||
         default="scp -o User=root -q")
 | 
					         default=cdist.REMOTE_COPY)
 | 
				
			||||||
    parser['configinstall'].add_argument('--remote-exec',
 | 
					    parser['configinstall'].add_argument('--remote-exec',
 | 
				
			||||||
         help='Command to use for remote execution (should behave like ssh)',
 | 
					         help='Command to use for remote execution (should behave like ssh)',
 | 
				
			||||||
         action='store', dest='remote_exec',
 | 
					         action='store', dest='remote_exec',
 | 
				
			||||||
         default="ssh -o User=root -q")
 | 
					         default=cdist.REMOTE_EXEC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Config
 | 
					    # Config
 | 
				
			||||||
    parser['config'] = parser['sub'].add_parser('config',
 | 
					    parser['config'] = parser['sub'].add_parser('config',
 | 
				
			||||||
| 
						 | 
					@ -89,6 +89,8 @@ def commandline():
 | 
				
			||||||
    # Shell
 | 
					    # Shell
 | 
				
			||||||
    parser['shell'] = parser['sub'].add_parser('shell', 
 | 
					    parser['shell'] = parser['sub'].add_parser('shell', 
 | 
				
			||||||
        parents=[parser['loglevel']])
 | 
					        parents=[parser['loglevel']])
 | 
				
			||||||
 | 
					    parser['shell'].add_argument('-s', '--shell',
 | 
				
			||||||
 | 
					         help='Select shell to use, defaults to current shell')
 | 
				
			||||||
    parser['shell'].set_defaults(func=cdist.shell.Shell.commandline)
 | 
					    parser['shell'].set_defaults(func=cdist.shell.Shell.commandline)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue