forked from ungleich-public/cdist
		
	Merge remote-tracking branch 'telmich/master'
This commit is contained in:
		
				commit
				
					
						0f9d71423a
					
				
			
		
					 3 changed files with 41 additions and 32 deletions
				
			
		
							
								
								
									
										40
									
								
								bin/cdist
									
										
									
									
									
								
							
							
						
						
									
										40
									
								
								bin/cdist
									
										
									
									
									
								
							|  | @ -81,12 +81,12 @@ def commandline(): | ||||||
|     # Config |     # Config | ||||||
|     parser['config'] = parser['sub'].add_parser('config', |     parser['config'] = parser['sub'].add_parser('config', | ||||||
|         parents=[parser['loglevel'], parser['configinstall']]) |         parents=[parser['loglevel'], parser['configinstall']]) | ||||||
|     parser['config'].set_defaults(func=cdist.config.config) |     parser['config'].set_defaults(func=config) | ||||||
| 
 | 
 | ||||||
|     # Install |     # Install | ||||||
|     parser['install'] = parser['sub'].add_parser('install', |     parser['install'] = parser['sub'].add_parser('install', | ||||||
|         parents=[parser['loglevel'], parser['configinstall']]) |         parents=[parser['loglevel'], parser['configinstall']]) | ||||||
|     parser['install'].set_defaults(func=cdist.install.install) |     parser['install'].set_defaults(func=install) | ||||||
| 
 | 
 | ||||||
|     for p in parser: |     for p in parser: | ||||||
|         parser[p].epilog = "Get cdist at http://www.nico.schottelius.org/software/cdist/" |         parser[p].epilog = "Get cdist at http://www.nico.schottelius.org/software/cdist/" | ||||||
|  | @ -102,6 +102,42 @@ def commandline(): | ||||||
|     log.debug(args) |     log.debug(args) | ||||||
|     args.func(args) |     args.func(args) | ||||||
| 
 | 
 | ||||||
|  | def config(args): | ||||||
|  |     configinstall(args, mode=cdist.config.Config) | ||||||
|  | 
 | ||||||
|  | def install(args): | ||||||
|  |     configinstall(args, mode=cdist.install.Install) | ||||||
|  | 
 | ||||||
|  | def configinstall(args, mode): | ||||||
|  |     """Configure or install remote system""" | ||||||
|  |     process = {} | ||||||
|  | 
 | ||||||
|  |     time_start = datetime.datetime.now() | ||||||
|  | 
 | ||||||
|  |     os.environ['__remote_exec'] = "ssh -o User=root -q" | ||||||
|  |     os.environ['__remote_copy'] = "scp -o User=root -q" | ||||||
|  | 
 | ||||||
|  |     for host in args.host: | ||||||
|  |         c = mode(host, initial_manifest=args.manifest, base_path=args.cdist_home, debug=args.debug) | ||||||
|  |         if args.parallel: | ||||||
|  |             log.debug("Creating child process for %s", host) | ||||||
|  |             process[host] = multiprocessing.Process(target=c.deploy_and_cleanup) | ||||||
|  |             process[host].start() | ||||||
|  |         else: | ||||||
|  |             c.deploy_and_cleanup() | ||||||
|  | 
 | ||||||
|  |     if args.parallel: | ||||||
|  |         for p in process.keys(): | ||||||
|  |             log.debug("Joining process %s", p) | ||||||
|  |             process[p].join() | ||||||
|  | 
 | ||||||
|  |     # FIXME: error handling for parallel mode! | ||||||
|  | 
 | ||||||
|  |     time_end = datetime.datetime.now() | ||||||
|  |     log.info("Total processing time for %s host(s): %s", len(args.host), | ||||||
|  |                 (time_end - time_start).total_seconds()) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|     try: |     try: | ||||||
|         logging.basicConfig(format='%(levelname)s: %(message)s') |         logging.basicConfig(format='%(levelname)s: %(message)s') | ||||||
|  |  | ||||||
|  | @ -31,30 +31,3 @@ log = logging.getLogger(__name__) | ||||||
| 
 | 
 | ||||||
| class Config(cdist.config_install.ConfigInstall): | class Config(cdist.config_install.ConfigInstall): | ||||||
|     pass |     pass | ||||||
| 
 |  | ||||||
| def config(args): |  | ||||||
|     """Configure remote system""" |  | ||||||
|     process = {} |  | ||||||
| 
 |  | ||||||
|     time_start = datetime.datetime.now() |  | ||||||
| 
 |  | ||||||
|     os.environ['__remote_exec'] = "ssh -o User=root -q" |  | ||||||
|     os.environ['__remote_copy'] = "scp -o User=root -q" |  | ||||||
| 
 |  | ||||||
|     for host in args.host: |  | ||||||
|         c = Config(host, initial_manifest=args.manifest, base_path=args.cdist_home, debug=args.debug) |  | ||||||
|         if args.parallel: |  | ||||||
|             log.debug("Creating child process for %s", host) |  | ||||||
|             process[host] = multiprocessing.Process(target=c.deploy_and_cleanup) |  | ||||||
|             process[host].start() |  | ||||||
|         else: |  | ||||||
|             c.deploy_and_cleanup() |  | ||||||
| 
 |  | ||||||
|     if args.parallel: |  | ||||||
|         for p in process.keys(): |  | ||||||
|             log.debug("Joining process %s", p) |  | ||||||
|             process[p].join() |  | ||||||
| 
 |  | ||||||
|     time_end = datetime.datetime.now() |  | ||||||
|     log.info("Total processing time for %s host(s): %s", len(args.host), |  | ||||||
|                 (time_end - time_start).total_seconds()) |  | ||||||
|  |  | ||||||
|  | @ -105,7 +105,7 @@ class ConfigInstall: | ||||||
|         cdist.exec.shell_run_or_debug_fail(manifest_path, [manifest_path], env=env) |         cdist.exec.shell_run_or_debug_fail(manifest_path, [manifest_path], env=env) | ||||||
| 
 | 
 | ||||||
|     def object_run(self, cdist_object): |     def object_run(self, cdist_object): | ||||||
|         """Run gencode or code for an object""" |         """Run gencode and code for an object""" | ||||||
|         log.debug("Running object %s", cdist_object) |         log.debug("Running object %s", cdist_object) | ||||||
| 
 | 
 | ||||||
|         # Catch requirements, which re-call us |         # Catch requirements, which re-call us | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue