Allow repeated invocations of 'mirror create'
When creating a cosmetic symlink for a resource in a mirror, remove it if it already exists. The symlink is removed in case the logic to create the symlink has changed.
This commit is contained in:
		
				
					committed by
					
						
						Massimiliano Culpo
					
				
			
			
				
	
			
			
			
						parent
						
							03203a86b4
						
					
				
				
					commit
					b64f458102
				
			@@ -70,7 +70,13 @@ def symlink(self, mirror_ref):
 | 
			
		||||
        relative_dst = os.path.relpath(
 | 
			
		||||
            mirror_ref.storage_path,
 | 
			
		||||
            start=os.path.dirname(cosmetic_path))
 | 
			
		||||
 | 
			
		||||
        if not os.path.exists(cosmetic_path):
 | 
			
		||||
            if os.path.lexists(cosmetic_path):
 | 
			
		||||
                # In this case the link itself exists but it is broken: remove
 | 
			
		||||
                # it and recreate it (in order to fix any symlinks broken prior
 | 
			
		||||
                # to https://github.com/spack/spack/pull/13908)
 | 
			
		||||
                os.unlink(cosmetic_path)
 | 
			
		||||
            mkdirp(os.path.dirname(cosmetic_path))
 | 
			
		||||
            os.symlink(relative_dst, cosmetic_path)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user