include cdist-type-emulator into path again
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								d6db6d0c7e
							
						
					
				
			
			
				commit
				
					
						9ce26e5817
					
				
			
		
					 1 changed files with 21 additions and 0 deletions
				
			
		
							
								
								
									
										21
									
								
								bin/cdist
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								bin/cdist
									
										
									
									
									
								
							| 
						 | 
					@ -34,6 +34,7 @@ CONF_DIR                   = os.path.join(BASE_DIR, "conf")
 | 
				
			||||||
GLOBAL_EXPLORER_DIR        = os.path.join(CONF_DIR, "explorer")
 | 
					GLOBAL_EXPLORER_DIR        = os.path.join(CONF_DIR, "explorer")
 | 
				
			||||||
LIB_DIR                    = os.path.join(BASE_DIR, "lib")
 | 
					LIB_DIR                    = os.path.join(BASE_DIR, "lib")
 | 
				
			||||||
MANIFEST_DIR               = os.path.join(CONF_DIR, "manifest")
 | 
					MANIFEST_DIR               = os.path.join(CONF_DIR, "manifest")
 | 
				
			||||||
 | 
					TYPE_DIR                   = os.path.join(CONF_DIR, "type")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
REMOTE_BASE_DIR            = "/var/lib/cdist"
 | 
					REMOTE_BASE_DIR            = "/var/lib/cdist"
 | 
				
			||||||
REMOTE_CONF_DIR            = os.path.join(REMOTE_BASE_DIR, "conf")
 | 
					REMOTE_CONF_DIR            = os.path.join(REMOTE_BASE_DIR, "conf")
 | 
				
			||||||
| 
						 | 
					@ -64,6 +65,10 @@ VERSION                    = "2.0.0"
 | 
				
			||||||
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s')
 | 
					logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s')
 | 
				
			||||||
log = logging.getLogger()
 | 
					log = logging.getLogger()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# List types
 | 
				
			||||||
 | 
					def list_types():
 | 
				
			||||||
 | 
					   return os.listdir(TYPE_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Cdist:
 | 
					class Cdist:
 | 
				
			||||||
   """Cdist main class to hold arbitrary data"""
 | 
					   """Cdist main class to hold arbitrary data"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,11 +79,18 @@ class Cdist:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Setup directory paths
 | 
					      # Setup directory paths
 | 
				
			||||||
      self.temp_dir = tempfile.mkdtemp()
 | 
					      self.temp_dir = tempfile.mkdtemp()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      self.out_dir = os.path.join(self.temp_dir, "out")
 | 
					      self.out_dir = os.path.join(self.temp_dir, "out")
 | 
				
			||||||
      os.mkdir(self.out_dir)
 | 
					      os.mkdir(self.out_dir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      self.global_explorer_out_dir = os.path.join(self.out_dir, "explorer")
 | 
					      self.global_explorer_out_dir = os.path.join(self.out_dir, "explorer")
 | 
				
			||||||
      os.mkdir(self.global_explorer_out_dir)
 | 
					      os.mkdir(self.global_explorer_out_dir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Setup binary directory + contents
 | 
				
			||||||
 | 
					      self.bin_dir = os.path.join(self.out_dir, "bin")
 | 
				
			||||||
 | 
					      os.mkdir(self.bin_dir)
 | 
				
			||||||
 | 
					      self.link_type_to_emulator()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Mostly static, but can be overwritten on user demand
 | 
					      # Mostly static, but can be overwritten on user demand
 | 
				
			||||||
      if initial_manifest:
 | 
					      if initial_manifest:
 | 
				
			||||||
         self.initial_manifest = initial_manifest
 | 
					         self.initial_manifest = initial_manifest
 | 
				
			||||||
| 
						 | 
					@ -149,6 +161,14 @@ class Cdist:
 | 
				
			||||||
   def transfer_global_explorers(self):
 | 
					   def transfer_global_explorers(self):
 | 
				
			||||||
      self.transfer_dir(GLOBAL_EXPLORER_DIR, REMOTE_GLOBAL_EXPLORER_DIR)
 | 
					      self.transfer_dir(GLOBAL_EXPLORER_DIR, REMOTE_GLOBAL_EXPLORER_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   def link_type_to_emulator(self):
 | 
				
			||||||
 | 
					      """Link type names to cdist-type-emulator"""
 | 
				
			||||||
 | 
					      for type in list_types():
 | 
				
			||||||
 | 
					         source = os.path.join(LIB_DIR, "cdist-type-emulator")
 | 
				
			||||||
 | 
					         destination = os.path.join(self.bin_dir, type)
 | 
				
			||||||
 | 
					         log.debug("Linking %s to %s", source, destination)
 | 
				
			||||||
 | 
					         os.symlink(source, destination)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   def global_explore(self):
 | 
					   def global_explore(self):
 | 
				
			||||||
      """Run global explorers"""
 | 
					      """Run global explorers"""
 | 
				
			||||||
      explorers = self.list_global_explorers()
 | 
					      explorers = self.list_global_explorers()
 | 
				
			||||||
| 
						 | 
					@ -184,6 +204,7 @@ class Cdist:
 | 
				
			||||||
      log.info("Running the initial manifest")
 | 
					      log.info("Running the initial manifest")
 | 
				
			||||||
      env = os.environ.copy()
 | 
					      env = os.environ.copy()
 | 
				
			||||||
      env['__target_host'] = self.target_host
 | 
					      env['__target_host'] = self.target_host
 | 
				
			||||||
 | 
					      env['PATH'] = self.bin_dir + ":" + env['PATH']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      self.shell_run_or_debug_fail(self.initial_manifest,
 | 
					      self.shell_run_or_debug_fail(self.initial_manifest,
 | 
				
			||||||
                                  [self.initial_manifest],
 | 
					                                  [self.initial_manifest],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue