Code improvements.
This commit is contained in:
		
					parent
					
						
							
								35d2628941
							
						
					
				
			
			
				commit
				
					
						138705e3dc
					
				
			
		
					 1 changed files with 38 additions and 27 deletions
				
			
		|  | @ -74,6 +74,24 @@ class Config(object): | ||||||
|                     "Error reading hosts from \'{}\': {}".format( |                     "Error reading hosts from \'{}\': {}".format( | ||||||
|                         source, e)) |                         source, e)) | ||||||
| 
 | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def construct_remote_exec_copy_patterns(args): | ||||||
|  |         # default remote cmd patterns | ||||||
|  |         args.remote_exec_pattern = None | ||||||
|  |         args.remote_copy_pattern = None | ||||||
|  | 
 | ||||||
|  |         args_dict = vars(args) | ||||||
|  |         # if remote-exec and/or remote-copy args are None then user | ||||||
|  |         # didn't specify command line options nor env vars: | ||||||
|  |         # inspect multiplexing options for default cdist.REMOTE_COPY/EXEC | ||||||
|  |         if (args_dict['remote_copy'] is None or | ||||||
|  |                 args_dict['remote_exec'] is None): | ||||||
|  |             mux_opts = inspect_ssh_mux_opts() | ||||||
|  |             if args_dict['remote_exec'] is None: | ||||||
|  |                 args.remote_exec_pattern = cdist.REMOTE_EXEC + mux_opts | ||||||
|  |             if args_dict['remote_copy'] is None: | ||||||
|  |                 args.remote_copy_pattern = cdist.REMOTE_COPY + mux_opts | ||||||
|  | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def _check_and_prepare_args(cls, args): |     def _check_and_prepare_args(cls, args): | ||||||
|         if args.manifest == '-' and args.hostfile == '-': |         if args.manifest == '-' and args.hostfile == '-': | ||||||
|  | @ -99,30 +117,6 @@ class Config(object): | ||||||
|             args.manifest = initial_manifest_temp_path |             args.manifest = initial_manifest_temp_path | ||||||
|             atexit.register(lambda: os.remove(initial_manifest_temp_path)) |             atexit.register(lambda: os.remove(initial_manifest_temp_path)) | ||||||
| 
 | 
 | ||||||
|         # default remote cmd patterns |  | ||||||
|         args.remote_exec_pattern = None |  | ||||||
|         args.remote_copy_pattern = None |  | ||||||
| 
 |  | ||||||
|         args_dict = vars(args) |  | ||||||
|         # if remote-exec and/or remote-copy args are None then user |  | ||||||
|         # didn't specify command line options nor env vars: |  | ||||||
|         # inspect multiplexing options for default cdist.REMOTE_COPY/EXEC |  | ||||||
|         if (args_dict['remote_copy'] is None or |  | ||||||
|                 args_dict['remote_exec'] is None): |  | ||||||
|             mux_opts = inspect_ssh_mux_opts() |  | ||||||
|             if args_dict['remote_exec'] is None: |  | ||||||
|                 args.remote_exec_pattern = cdist.REMOTE_EXEC + mux_opts |  | ||||||
|             if args_dict['remote_copy'] is None: |  | ||||||
|                 args.remote_copy_pattern = cdist.REMOTE_COPY + mux_opts |  | ||||||
| 
 |  | ||||||
|     @classmethod |  | ||||||
|     def _base_root_path(cls, args): |  | ||||||
|         if args.out_path: |  | ||||||
|             base_root_path = args.out_path |  | ||||||
|         else: |  | ||||||
|             base_root_path = tempfile.mkdtemp() |  | ||||||
|         return base_root_path |  | ||||||
| 
 |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def commandline(cls, args): |     def commandline(cls, args): | ||||||
|         """Configure remote system""" |         """Configure remote system""" | ||||||
|  | @ -136,13 +130,14 @@ class Config(object): | ||||||
|         failed_hosts = [] |         failed_hosts = [] | ||||||
|         time_start = time.time() |         time_start = time.time() | ||||||
| 
 | 
 | ||||||
|         base_root_path = cls._base_root_path(args) |         cls.construct_remote_exec_copy_patterns(args) | ||||||
|  |         base_root_path = cls.create_base_root_path(args.out_path) | ||||||
| 
 | 
 | ||||||
|         hostcnt = 0 |         hostcnt = 0 | ||||||
|         for host in itertools.chain(cls.hosts(args.host), |         for host in itertools.chain(cls.hosts(args.host), | ||||||
|                                     cls.hosts(args.hostfile)): |                                     cls.hosts(args.hostfile)): | ||||||
|             hostdir = cdist.str_hash(host) |             host_base_path, hostdir = cls.create_host_base_dirs( | ||||||
|             host_base_path = os.path.join(base_root_path, hostdir) |                 host, base_root_path) | ||||||
| 
 | 
 | ||||||
|             log.debug("Base root path for target host \"{}\" is \"{}\"".format( |             log.debug("Base root path for target host \"{}\" is \"{}\"".format( | ||||||
|                 host, host_base_path)) |                 host, host_base_path)) | ||||||
|  | @ -252,6 +247,22 @@ class Config(object): | ||||||
|             else: |             else: | ||||||
|                 raise |                 raise | ||||||
| 
 | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def create_base_root_path(out_path=None): | ||||||
|  |         if out_path: | ||||||
|  |             base_root_path = out_path | ||||||
|  |         else: | ||||||
|  |             base_root_path = tempfile.mkdtemp() | ||||||
|  | 
 | ||||||
|  |         return base_root_path | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def create_host_base_dirs(host, base_root_path): | ||||||
|  |         hostdir = cdist.str_hash(host) | ||||||
|  |         host_base_path = os.path.join(base_root_path, hostdir) | ||||||
|  | 
 | ||||||
|  |         return (host_base_path, hostdir) | ||||||
|  | 
 | ||||||
|     def run(self): |     def run(self): | ||||||
|         """Do what is most often done: deploy & cleanup""" |         """Do what is most often done: deploy & cleanup""" | ||||||
|         start_time = time.time() |         start_time = time.time() | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue