Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Content deletion - add support for product delete #478

Merged
merged 4 commits into from
Aug 17, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/app/controllers/api/changesets_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ def rules
respond_to :json

def index
render :json => Changeset.select("changesets.*, environments.name AS environment_name").
changesets = Changeset.select("changesets.*, environments.name AS environment_name").
joins(:environment).where(params.slice(:name, :environment_id))
render :json => changesets.to_json
end

def show
Expand Down
2 changes: 0 additions & 2 deletions src/app/models/changeset.rb
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,6 @@ def self.create_for( acct_type, options)
end

def add_product! product
product.repos(env_to_verify_on_add_content).empty? and
raise _("Product '%s' hasn't any repositories") % product.name

env_to_verify_on_add_content.products.include? product or
raise Errors::ChangesetContentException.new("Product not found within environment you want to promote from.")
Expand Down
15 changes: 8 additions & 7 deletions src/app/models/deletion_changeset.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ def delete_content(notify = false)
update_progress! '10'
from_env = self.environment

# PulpTaskStatus::wait_for_tasks delete_products(from_env)
# update_progress! '30'
delete_products(from_env)
update_progress! '30'
delete_templates(from_env)
update_progress! '50'
delete_repos from_env
Expand Down Expand Up @@ -100,10 +100,11 @@ def delete_templates from_env


def delete_products from_env
# async_tasks = self.products.collect do |product|
# product.delete_from_env from_env
# end
# async_tasks.flatten(1)
async_tasks = self.products.collect do |product|
next if (products.uniq! or []).include? product
product.delete_from_env(from_env)
end
async_tasks.flatten(1)
end


Expand Down Expand Up @@ -200,4 +201,4 @@ def generate_metadata
async_tasks
end

end
end
19 changes: 19 additions & 0 deletions src/app/models/glue/pulp/repos.rb
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,16 @@ def promote from_env, to_env
async_tasks
end

def delete_from_env from_env
@orchestration_for = :delete
async_tasks = delete_repos repos(from_env), from_env
if from_env.products.include? self
self.environments.delete(from_env)
end
save!
async_tasks
end

def package_groups env, search_args = {}
groups = []
self.repos(env).each do |repo|
Expand Down Expand Up @@ -542,6 +552,15 @@ def promote_repos repos, from_env, to_env
async_tasks.flatten(1)
end

def delete_repos repos, from_env
async_tasks = []
repos.each do |repo|
# async_tasks << repo.promote(from_env, to_env)
async_tasks << delete_repo_by_id(repo.id)
end
async_tasks.flatten(1)
end


def set_filter repo, filter_id
repo.set_filters [filter_id]
Expand Down