project delete hooks

This commit is contained in:
Anton Martynov 2015-07-01 17:22:38 +03:00
parent f5c3662b3d
commit 2125065b96
2 changed files with 22 additions and 3 deletions

View File

@ -16,6 +16,9 @@ module Devops
define_hook :before_create
define_hook :after_create
define_hook :before_delete
define_hook :after_delete
attr_accessor :id, :deploy_envs, :type, :archived, :description
types :id => {:type => String, :empty => false},
@ -145,6 +148,22 @@ module Devops
self.type == MULTI_TYPE
end
def create
res = {}
res[:before] = self.run_hook :before_create
Devops::Db.connector.project_insert self
res[:after] = self.run_hook :after_create
res
end
def delete
res = {}
res[:before] = self.run_hook :before_delete
Devops::Db.connector.project_delete self.id
res[:after] = self.run_hook :after_delete
res
end
def self.build_from_bson p
p["name"] = p["_id"]
Project.new p

View File

@ -51,9 +51,8 @@ module Devops
check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash)
p = Devops::Model::Project.new(body)
halt_response("Project '#{p.id}' already exist") if settings.mongo.is_project_exists?(p)
puts "USER: #{request.env['REMOTE_USER']}"
p.add_authorized_user [request.env['REMOTE_USER']]
settings.mongo.project_insert p
p.create
roles_res = ""
if p.multi?
logger.info "Project '#{p.id}' with type 'multi' created"
@ -133,11 +132,12 @@ module Devops
deploy_env = unless body.nil?
check_string(body["deploy_env"], "Parameter 'deploy_env' should be a not empty string", true)
end
project = settings.mongo.project(params[:project])
info = if deploy_env.nil?
project.delete
settings.mongo.project_delete(params[:project])
"Project '#{params[:project]}' is deleted"
else
project = settings.mongo.project(params[:project])
project.remove_env deploy_env
settings.mongo.project_update project
"Project '#{params[:project]}'. Deploy environment '#{deploy_env}' has been deleted"