Advertisement
Guest User

Untitled

a guest
Jun 21st, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 2.65 KB | None | 0 0
  1. import org.sonatype.nexus.repository.storage.StorageFacet;
  2. import org.sonatype.nexus.common.app.GlobalComponentLookupHelper
  3. import org.sonatype.nexus.repository.maintenance.MaintenanceService
  4. import org.sonatype.nexus.repository.storage.ComponentMaintenance
  5. import org.sonatype.nexus.repository.storage.Query;
  6. import org.sonatype.nexus.script.plugin.RepositoryApi
  7. import org.sonatype.nexus.script.plugin.internal.provisioning.RepositoryApiImpl
  8. import com.google.common.collect.ImmutableList
  9. import org.joda.time.DateTime;
  10. import org.slf4j.Logger
  11.  
  12.  
  13. def retentionDays = 1;
  14. def retentionCount = 4;
  15. def repositoryName = 'maven-releases';
  16. def whitelist = ["org.javaee7.sample/javaee7-simple-sample", "org.javaee7.next/javaee7-another-sample"].toArray();
  17.  
  18.  
  19. log.info(":::Cleanup script started!");
  20. MaintenanceService service = container.lookup("org.sonatype.nexus.repository.maintenance.MaintenanceService");
  21. def repo = repository.repositoryManager.get(repositoryName);
  22. def tx = repo.facet(StorageFacet.class).txSupplier().get();
  23. def components = null;
  24. try {
  25.     tx.begin();
  26.     components = tx.browseComponents(tx.findBucket(repo));
  27. }catch(Exception e){
  28.     log.info("Error: "+e);
  29. }finally{
  30.     if(tx!=null)
  31.         tx.close();
  32. }
  33.  
  34. if(components != null) {
  35.     def retentionDate = DateTime.now().minusDays(retentionDays).dayOfMonth().roundFloorCopy();
  36.     int deletedComponentCount = 0;
  37.     int compCount = 0;
  38.     def listOfComponents = ImmutableList.copyOf(components);
  39.     def previousComp = listOfComponents.head().group() + listOfComponents.head().name();
  40.     listOfComponents.reverseEach{comp ->
  41.         log.info("Processing Component - group: ${comp.group()}, ${comp.name()}, version: ${comp.version()}");
  42.         if(!whitelist.contains(comp.group()+"/"+comp.name())){
  43.             log.info("previous: ${previousComp}");
  44.             if(previousComp.equals(comp.group() + comp.name())) {
  45.                 compCount++;
  46.                 log.info("ComCount: ${compCount}, ReteCount: ${retentionCount}");
  47.                 if (compCount > retentionCount) {
  48.                     log.info("CompDate: ${comp.lastUpdated()} RetDate: ${retentionDate}");
  49.                     if(comp.lastUpdated().isBefore(retentionDate)) {
  50.                         log.info("compDate after retentionDate: ${comp.lastUpdated()} isAfter ${retentionDate}");
  51.                         log.info("deleting ${comp.group()}, ${comp.name()}, version: ${comp.version()}");
  52.                        
  53.                    
  54.                        
  55.                         service.deleteComponent(repo, comp);
  56.                
  57.                        
  58.                         log.info("component deleted");
  59.                         deletedComponentCount++;
  60.                     }
  61.                 }
  62.             } else {
  63.                 compCount = 1;
  64.                 previousComp = comp.group() + comp.name();
  65.             }
  66.         }else{
  67.             log.info("Component skipped: ${comp.group()} ${comp.name()}");
  68.         }
  69.     }
  70.  
  71.     log.info("Deleted Component count: ${deletedComponentCount}");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement