Stats counter added. Limiting to wanted archs.
This commit is contained in:
parent
4c43e10ab3
commit
beeb4cd37a
1 changed files with 35 additions and 6 deletions
|
|
@ -36,13 +36,18 @@ BLACKLIST_SECTION_PATTERN = [
|
||||||
/\/?cli-mono$/,
|
/\/?cli-mono$/,
|
||||||
]
|
]
|
||||||
|
|
||||||
# Whether to delete a packag
|
# Whether to delete a blacklisted package from the database
|
||||||
REMOVE_BLACKLISTED_PACKAGE = true
|
REMOVE_BLACKLISTED_PACKAGE = true
|
||||||
|
|
||||||
namespace :debshots do
|
namespace :debshots do
|
||||||
desc "Import/update package database from configured DEB repositories"
|
desc "Import/update package database from configured DEB repositories"
|
||||||
|
|
||||||
task :update_from_deb_repos => :environment do
|
task :update_from_deb_repos => :environment do
|
||||||
|
# Counters for added, updated or removed packages from the database
|
||||||
|
stats_added = 0
|
||||||
|
stats_updated = 0
|
||||||
|
stats_removed = 0
|
||||||
|
|
||||||
repositories = Rails.configuration.package_sources
|
repositories = Rails.configuration.package_sources
|
||||||
Rails.logger = Logger.new(STDOUT)
|
Rails.logger = Logger.new(STDOUT)
|
||||||
Rails.logger.level = Logger::INFO
|
Rails.logger.level = Logger::INFO
|
||||||
|
|
@ -51,9 +56,13 @@ namespace :debshots do
|
||||||
Rails.logger.info "Importing Debian package information"
|
Rails.logger.info "Importing Debian package information"
|
||||||
|
|
||||||
repositories.each do |repository|
|
repositories.each do |repository|
|
||||||
|
wanted_architectures = repository[:architectures]
|
||||||
Rails.logger.info "Fetching Release file for repository: #{repository[:url]} with components: #{repository[:components]}"
|
Rails.logger.info "Fetching Release file for repository: #{repository[:url]} with components: #{repository[:components]}"
|
||||||
release = DebImporter::Release.new(repository[:url], repository[:components])
|
release = DebImporter::Release.new(repository[:url], repository[:components])
|
||||||
Rails.logger.info "> Supported architectures are: #{release.architectures}"
|
Rails.logger.info "> Supported architectures are: #{release.architectures}"
|
||||||
|
if wanted_architectures
|
||||||
|
Rails.logger.info "> We only want architectures: #{wanted_architectures}"
|
||||||
|
end
|
||||||
Rails.logger.info "> Supported components are: #{release.components}"
|
Rails.logger.info "> Supported components are: #{release.components}"
|
||||||
|
|
||||||
# TODO: Remember what we imported to show it on the /about page
|
# TODO: Remember what we imported to show it on the /about page
|
||||||
|
|
@ -61,6 +70,10 @@ namespace :debshots do
|
||||||
release.components.split.each do |component|
|
release.components.split.each do |component|
|
||||||
Rails.logger.info "> Component: #{component}"
|
Rails.logger.info "> Component: #{component}"
|
||||||
release.architectures.split.each do |architecture|
|
release.architectures.split.each do |architecture|
|
||||||
|
if wanted_architectures and not wanted_architectures.include?(architecture)
|
||||||
|
Rails.logger.debug "Architecture #{architecture} not wanted. Skipping."
|
||||||
|
next
|
||||||
|
end
|
||||||
Rails.logger.info ">> Architecture: #{architecture}"
|
Rails.logger.info ">> Architecture: #{architecture}"
|
||||||
# Check if this component and architecture is available on this mirror
|
# Check if this component and architecture is available on this mirror
|
||||||
packages = release.packages(component, architecture)
|
packages = release.packages(component, architecture)
|
||||||
|
|
@ -82,6 +95,7 @@ namespace :debshots do
|
||||||
if db_package
|
if db_package
|
||||||
Rails.logger.info "Removing blacklisted package '#{package[:Package]}' from database"
|
Rails.logger.info "Removing blacklisted package '#{package[:Package]}' from database"
|
||||||
db_package.destroy
|
db_package.destroy
|
||||||
|
stats_removed +=1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -90,42 +104,57 @@ namespace :debshots do
|
||||||
|
|
||||||
db_package = Package.find_by name: package[:Package]
|
db_package = Package.find_by name: package[:Package]
|
||||||
unless db_package
|
unless db_package
|
||||||
Rails.logger.debug "No such package in our database."
|
Rails.logger.debug "No such package in our database. Creating one."
|
||||||
next
|
db_package = Package.create
|
||||||
|
stats_added += 1
|
||||||
end
|
end
|
||||||
|
|
||||||
Rails.logger.debug "Found in database: #{db_package.id}"
|
# Rails.logger.debug "Found in database: #{db_package}"
|
||||||
update_data(package, db_package)
|
update_data(package, db_package)
|
||||||
|
stats_updated += 1
|
||||||
end # package.each
|
end # package.each
|
||||||
|
|
||||||
end # architectures.each
|
end # architectures.each
|
||||||
end # components.each
|
end # components.each
|
||||||
|
|
||||||
Rails.logger.info "Done parsing #{repository[:url]} repository."
|
Rails.logger.info "Done parsing #{repository[:url]} repository."
|
||||||
|
Rails.logger.info "#{stats_added} packages added"
|
||||||
|
Rails.logger.info "#{stats_updated} packages updated"
|
||||||
|
Rails.logger.info "#{stats_removed} packages removed"
|
||||||
Rails.logger.info "--------------------------------------------"
|
Rails.logger.info "--------------------------------------------"
|
||||||
end # repositories.each
|
end # repositories.each
|
||||||
|
|
||||||
end # task
|
end # task
|
||||||
|
|
||||||
|
# TODO: Some code duplication. Should be refactord.
|
||||||
desc "List configured DEB repositories"
|
desc "List configured DEB repositories"
|
||||||
|
|
||||||
task :list_deb_repos => :environment do
|
task :list_deb_repos => :environment do
|
||||||
repositories = Rails.configuration.package_sources
|
repositories = Rails.configuration.package_sources
|
||||||
Rails.logger = Logger.new(STDOUT)
|
Rails.logger = Logger.new(STDOUT)
|
||||||
Rails.logger.level = Logger::INFO
|
# Rails.logger.level = Logger::INFO
|
||||||
|
Rails.logger.level = Logger::DEBUG
|
||||||
|
|
||||||
Rails.logger.info "Listing configured DEB repositories"
|
Rails.logger.info "Listing configured DEB repositories"
|
||||||
|
|
||||||
repositories.each do |repository|
|
repositories.each do |repository|
|
||||||
|
wanted_architectures = repository[:architectures]
|
||||||
Rails.logger.info "Fetching Release file for repository: #{repository[:url]} with components: #{repository[:components]}"
|
Rails.logger.info "Fetching Release file for repository: #{repository[:url]} with components: #{repository[:components]}"
|
||||||
release = DebImporter::Release.new(repository[:url], repository[:components])
|
release = DebImporter::Release.new(repository[:url], repository[:components])
|
||||||
Rails.logger.info "> Supported architectures are: #{release.architectures}"
|
Rails.logger.info "> Supported architectures are: #{release.architectures}"
|
||||||
|
if wanted_architectures
|
||||||
|
Rails.logger.info "> We only want architectures: #{wanted_architectures}"
|
||||||
|
end
|
||||||
Rails.logger.info "> Supported components are: #{release.components}"
|
Rails.logger.info "> Supported components are: #{release.components}"
|
||||||
|
|
||||||
release.components.split.each do |component|
|
release.components.split.each do |component|
|
||||||
Rails.logger.info "> Component: #{component}"
|
Rails.logger.info "> Component: #{component}"
|
||||||
release.architectures.split.each do |architecture|
|
release.architectures.split.each do |architecture|
|
||||||
|
if wanted_architectures and not wanted_architectures.include?(architecture)
|
||||||
|
Rails.logger.debug "Architecture #{architecture} not wanted. Skipping."
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
Rails.logger.info ">> Architecture: #{architecture}"
|
Rails.logger.info ">> Architecture: #{architecture}"
|
||||||
# Check if this component and architecture is available on this mirror
|
# Check if this component and architecture is available on this mirror
|
||||||
packages = release.packages(component, architecture)
|
packages = release.packages(component, architecture)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue