forked from ungleich-public/cdist
		
	Merge remote branch 'remotes/upstream/master'
This commit is contained in:
		
				commit
				
					
						c1ca8f4932
					
				
			
		
					 6 changed files with 67 additions and 9 deletions
				
			
		|  | @ -4,11 +4,12 @@ Changelog | |||
| 	* Changes are always commented with their author in (braces) | ||||
| 	* Exception: No braces means author == Nico Schottelius | ||||
| 
 | ||||
| 2.0.13: | ||||
| 2.0.13: 2012-06-05 | ||||
| 	* Bugfix __ssh_authorized_key: Ensure it sets proper group (contradict) | ||||
| 	* Bugfix __addifnosuchline: Fixed quotes/interpolation bug ("a  b" became "a b") | ||||
| 	* New Explorer: interfaces (Sébastien Gross) | ||||
| 	* Feature core: Support reading from stdin in types (Steven Armstrong) | ||||
| 	* Feature core: Support multiple parameters for types (Steven Armstrong) | ||||
| 	* Feature __file: Support reading from stdin with - syntax (Steven Armstrong) | ||||
| 
 | ||||
| 2.0.12: 2012-05-29 | ||||
|  |  | |||
|  | @ -74,14 +74,19 @@ DEFINING PARAMETERS | |||
| ------------------- | ||||
| Every type consists of required, optional and boolean parameters, which must | ||||
| be created in a newline seperated file in ***parameter/required***, | ||||
| ***parameter/optional*** and ***parameter/boolean***. If either is missing, | ||||
| the type will have no required, no optional, no boolean or no parameters at | ||||
| all. | ||||
| ***parameter/required_multiple***, ***parameter/optional***,  | ||||
| ***parameter/optional_multiple*** and ***parameter/boolean***. | ||||
| Parameters which are allowed multiple times should be listed in | ||||
| required_multiple or optional_multiple respectively. For all other parameters | ||||
| the standard unix behaviour of the last given wins is applied. | ||||
| If either is missing, the type will have no required, no optional, no boolean | ||||
| or no parameters at all.  | ||||
| 
 | ||||
| Example: | ||||
| -------------------------------------------------------------------------------- | ||||
| echo servername >> conf/type/__nginx_vhost/parameter/required | ||||
| echo logdirectory >> conf/type/__nginx_vhost/parameter/optional | ||||
| echo server_alias >> conf/type/__nginx_vhost/parameter/optional_multiple | ||||
| echo use_ssl >> conf/type/__nginx_vhost/parameter/boolean | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
|  | @ -108,6 +113,14 @@ if [ -f "$__object/parameter/use_ssl" ]; then | |||
|    # file exists -> True | ||||
|    # do some fancy ssl stuff | ||||
| fi | ||||
| 
 | ||||
| # parameter with multiple values | ||||
| if [ -f "$__object/parameter/server_alias" ]; then | ||||
|    for alias in $(cat "$__object/parameter/server_alias"); do | ||||
|       echo $alias > /some/where/usefull | ||||
|    done | ||||
| fi | ||||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ try: | |||
|                     'cd "%s" && git describe' % here, | ||||
|                     stderr=devnull, shell=True).decode('utf-8') | ||||
| except: | ||||
|     VERSION     = "2.0.12" | ||||
|     VERSION     = "2.0.13" | ||||
| 
 | ||||
| BANNER = """ | ||||
|              ..          .       .x+=:.        s | ||||
|  |  | |||
|  | @ -81,7 +81,9 @@ class CdistType(object): | |||
| 
 | ||||
|         self.__explorers = None | ||||
|         self.__required_parameters = None | ||||
|         self.__required_multiple_parameters = None | ||||
|         self.__optional_parameters = None | ||||
|         self.__optional_multiple_parameters = None | ||||
|         self.__boolean_parameters = None | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|  | @ -130,6 +132,22 @@ class CdistType(object): | |||
|                 self.__required_parameters = parameters | ||||
|         return self.__required_parameters | ||||
| 
 | ||||
|     @property | ||||
|     def required_multiple_parameters(self): | ||||
|         """Return a list of required multiple parameters""" | ||||
|         if not self.__required_multiple_parameters: | ||||
|             parameters = [] | ||||
|             try: | ||||
|                 with open(os.path.join(self.absolute_path, "parameter", "required_multiple")) as fd: | ||||
|                     for line in fd: | ||||
|                         parameters.append(line.strip()) | ||||
|             except EnvironmentError: | ||||
|                 # error ignored | ||||
|                 pass | ||||
|             finally: | ||||
|                 self.__required_multiple_parameters = parameters | ||||
|         return self.__required_multiple_parameters | ||||
| 
 | ||||
|     @property | ||||
|     def optional_parameters(self): | ||||
|         """Return a list of optional parameters""" | ||||
|  | @ -146,6 +164,22 @@ class CdistType(object): | |||
|                 self.__optional_parameters = parameters | ||||
|         return self.__optional_parameters | ||||
| 
 | ||||
|     @property | ||||
|     def optional_multiple_parameters(self): | ||||
|         """Return a list of optional multiple parameters""" | ||||
|         if not self.__optional_multiple_parameters: | ||||
|             parameters = [] | ||||
|             try: | ||||
|                 with open(os.path.join(self.absolute_path, "parameter", "optional_multiple")) as fd: | ||||
|                     for line in fd: | ||||
|                         parameters.append(line.strip()) | ||||
|             except EnvironmentError: | ||||
|                 # error ignored | ||||
|                 pass | ||||
|             finally: | ||||
|                 self.__optional_multiple_parameters = parameters | ||||
|         return self.__optional_multiple_parameters | ||||
| 
 | ||||
|     @property | ||||
|     def boolean_parameters(self): | ||||
|         """Return a list of boolean parameters""" | ||||
|  |  | |||
|  | @ -92,12 +92,18 @@ class Emulator(object): | |||
| 
 | ||||
|         parser = argparse.ArgumentParser(add_help=False, argument_default=argparse.SUPPRESS) | ||||
| 
 | ||||
|         for parameter in self.cdist_type.optional_parameters: | ||||
|             argument = "--" + parameter | ||||
|             parser.add_argument(argument, dest=parameter, action='store', required=False) | ||||
|         for parameter in self.cdist_type.required_parameters: | ||||
|             argument = "--" + parameter | ||||
|             parser.add_argument(argument, dest=parameter, action='store', required=True) | ||||
|         for parameter in self.cdist_type.required_multiple_parameters: | ||||
|             argument = "--" + parameter | ||||
|             parser.add_argument(argument, dest=parameter, action='append', required=True) | ||||
|         for parameter in self.cdist_type.optional_parameters: | ||||
|             argument = "--" + parameter | ||||
|             parser.add_argument(argument, dest=parameter, action='store', required=False) | ||||
|         for parameter in self.cdist_type.optional_multiple_parameters: | ||||
|             argument = "--" + parameter | ||||
|             parser.add_argument(argument, dest=parameter, action='append', required=False) | ||||
|         for parameter in self.cdist_type.boolean_parameters: | ||||
|             argument = "--" + parameter | ||||
|             parser.add_argument(argument, dest=parameter, action='store_const', const='') | ||||
|  |  | |||
|  | @ -134,7 +134,11 @@ class DirectoryDict(collections.MutableMapping): | |||
|     def __setitem__(self, key, value): | ||||
|         try: | ||||
|             with open(os.path.join(self.path, key), "w") as fd: | ||||
|                 fd.write(str(value)) | ||||
|                 if type(value) == type([]): | ||||
|                     for v in value: | ||||
|                         fd.write(str(v) + '\n') | ||||
|                 else: | ||||
|                     fd.write(str(value)) | ||||
|         except EnvironmentError as e: | ||||
|             raise cdist.Error(str(e)) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue