forked from ungleich-public/cdist
		
	do not fail without objects
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								326f2644c7
							
						
					
				
			
			
				commit
				
					
						0d1f121e21
					
				
			
		
					 1 changed files with 16 additions and 14 deletions
				
			
		
							
								
								
									
										30
									
								
								bin/cdist
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								bin/cdist
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -121,6 +121,9 @@ class Cdist:
 | 
			
		|||
      # List of type explorers transferred
 | 
			
		||||
      self.type_explorers_transferred = {}
 | 
			
		||||
 | 
			
		||||
      # objects
 | 
			
		||||
      self.objects_prepared = []
 | 
			
		||||
 | 
			
		||||
      self.remote_user = remote_user
 | 
			
		||||
 | 
			
		||||
      # Mostly static, but can be overwritten on user demand
 | 
			
		||||
| 
						 | 
				
			
			@ -241,13 +244,10 @@ class Cdist:
 | 
			
		|||
 | 
			
		||||
      return list
 | 
			
		||||
 | 
			
		||||
   def list_object_paths(self, starting_point = False):
 | 
			
		||||
   def list_object_paths(self, starting_point):
 | 
			
		||||
      """Return list of paths of existing objects"""
 | 
			
		||||
      object_paths = []
 | 
			
		||||
 | 
			
		||||
      if not starting_point:
 | 
			
		||||
         starting_point = self.object_base_dir
 | 
			
		||||
 | 
			
		||||
      for content in os.listdir(starting_point):
 | 
			
		||||
         full_path = os.path.join(starting_point, content)
 | 
			
		||||
         if os.path.isdir(full_path):
 | 
			
		||||
| 
						 | 
				
			
			@ -288,17 +288,15 @@ class Cdist:
 | 
			
		|||
      return [os.path.join(self.object_dir(cdist_object), "code-local"),
 | 
			
		||||
              os.path.join(self.object_dir(cdist_object), "code-remote")]
 | 
			
		||||
 | 
			
		||||
   def list_objects(self, starting_point = False):
 | 
			
		||||
   def list_objects(self):
 | 
			
		||||
      """Return list of existing objects"""
 | 
			
		||||
 | 
			
		||||
      if not starting_point:
 | 
			
		||||
         starting_point = self.object_base_dir
 | 
			
		||||
 | 
			
		||||
      object_paths = self.list_object_paths(starting_point)
 | 
			
		||||
      objects = []
 | 
			
		||||
      if os.path.isdir(self.object_base_dir):
 | 
			
		||||
         object_paths = self.list_object_paths(self.object_base_dir)
 | 
			
		||||
 | 
			
		||||
      for path in object_paths:
 | 
			
		||||
         objects.append(os.path.relpath(path, starting_point))
 | 
			
		||||
         for path in object_paths:
 | 
			
		||||
            objects.append(os.path.relpath(path, self.object_base_dir))
 | 
			
		||||
 | 
			
		||||
      return objects
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -561,10 +559,14 @@ class Cdist:
 | 
			
		|||
      while old_objects != objects:
 | 
			
		||||
         log.debug("Prepare stage")
 | 
			
		||||
         old_objects = list(objects)
 | 
			
		||||
         # FIXME: do not rerun existing objects!
 | 
			
		||||
         for cdist_object in objects:
 | 
			
		||||
            self.run_type_explorer(cdist_object)
 | 
			
		||||
            self.run_type_manifest(cdist_object)
 | 
			
		||||
            if cdist_object in self.objects_prepared:
 | 
			
		||||
               log.debug("Skipping rerun of object %s", cdist_object)
 | 
			
		||||
               continue
 | 
			
		||||
            else:
 | 
			
		||||
               self.run_type_explorer(cdist_object)
 | 
			
		||||
               self.run_type_manifest(cdist_object)
 | 
			
		||||
               self.objects_prepared.append(cdist_object)
 | 
			
		||||
 | 
			
		||||
         objects = self.list_objects()
 | 
			
		||||
      
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue