Skip to content

Instantly share code, notes, and snippets.

@ferdinandhuebner
Last active August 28, 2018 07:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ferdinandhuebner/676d0b2140a1cb6637dc619409a8828e to your computer and use it in GitHub Desktop.
Save ferdinandhuebner/676d0b2140a1cb6637dc619409a8828e to your computer and use it in GitHub Desktop.
Logs the size of Repositories hosted by Sonatype Nexus 3
import org.sonatype.nexus.repository.storage.StorageFacet
import org.sonatype.nexus.repository.Repository
import org.sonatype.nexus.repository.storage.Asset
repository.repositoryManager.browse().each { Repository repo ->
StorageFacet storageFacet = repo.facet(StorageFacet)
def tx = storageFacet.txSupplier().get()
log.info("Processsing repository " + repo.getName())
def repoSize = 0
try {
tx.begin()
tx.browseAssets(tx.findBucket(repo)).each { Asset asset ->
repoSize += asset.size()
}
} finally {
tx.close()
}
if (repoSize < 1024) {
log.info("Size of repository " + repo.getName() + ": " + repoSize + " B")
} else {
def exp = (int) (Math.log(repoSize) / Math.log(1024))
def pre = ((String) "KMGTPE".charAt(exp - 1)) + "i"
log.info("Size of repository " + repo.getName() + ": " + String.format("%.1f %sB", repoSize / Math.pow(1024, exp), pre))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment