some fixes

This commit is contained in:
Anton Martynov 2015-02-19 13:26:14 +03:00
parent 249a9cd7b8
commit 9439840b3c
5 changed files with 21 additions and 12 deletions

View File

@ -2,7 +2,7 @@ require "providers/provider_factory"
module ImageCommands module ImageCommands
def get_images mongo, provider def get_available_provider_images mongo, provider
filters = mongo.available_images(provider) filters = mongo.available_images(provider)
if filters.empty? if filters.empty?
[] []

View File

@ -1,3 +1,5 @@
require "db/mongo/models/image"
module Connectors module Connectors
class Image < Base class Image < Base
include Helpers::InsertCommand, include Helpers::InsertCommand,

View File

@ -5,7 +5,7 @@ module Validators
include ImageCommands include ImageCommands
def valid? def valid?
images = get_images(::Devops::Db.connector, @model.provider) images = get_available_provider_images(::Devops::Db.connector, @model.provider)
images.map{|i| i["id"]}.include?(@model.id) images.map{|i| i["id"]}.include?(@model.id)
end end

View File

@ -21,7 +21,7 @@ module Devops
lambda { lambda {
check_privileges("image", "r") check_privileges("image", "r")
check_provider(params[:provider]) check_provider(params[:provider])
json get_images(settings.mongo, params[:provider]) json Image.get_available_provider_images(settings.mongo, params[:provider])
} }
end end
@ -36,7 +36,7 @@ module Devops
lambda { lambda {
check_privileges("image", "w") check_privileges("image", "w")
image = create_object_from_json_body image = create_object_from_json_body
settings.mongo.image_insert Image.new(image) settings.mongo.image_insert ::Image.new(image)
create_response "Created", nil, 201 create_response "Created", nil, 201
} }
end end
@ -45,7 +45,7 @@ module Devops
lambda { lambda {
check_privileges("image", "w") check_privileges("image", "w")
settings.mongo.image params[:image_id] settings.mongo.image params[:image_id]
image = Image.new(create_object_from_json_body) image = ::Image.new(create_object_from_json_body)
image.id = params[:image_id] image.id = params[:image_id]
settings.mongo.image_update image settings.mongo.image_update image
create_response("Image '#{params[:image_id]}' has been updated") create_response("Image '#{params[:image_id]}' has been updated")
@ -59,7 +59,7 @@ module Devops
unless projects.empty? unless projects.empty?
ar = [] ar = []
projects.each do |p| projects.each do |p|
ar += p.deploy_envs.select{|e| e.image == params[:image_id]}.map{|e| "#{p.id}.#{e.identifier}"} ar += p.deploy_envs.select{|e| e.respond_to?(:image)}.select{|e| e.image == params[:image_id]}.map{|e| "#{p.id}.#{e.identifier}"}
end end
raise DependencyError.new "Deleting is forbidden: Image is used in #{ar.join(", ")}" raise DependencyError.new "Deleting is forbidden: Image is used in #{ar.join(", ")}"
end end

View File

@ -19,7 +19,7 @@ class Generator < OpenStruct
def configure! def configure!
c = {} c = {}
%w{host port username password path_prefix username_without_privileges password_without_privileges}.each do |key| %w{host port username password path_prefix username_without_privileges password_without_privileges openstack ec2}.each do |key|
c[key] = @config[key] c[key] = @config[key]
end end
File.open(TESTS_CONFIG, "w") {|f| f.write(c.to_yaml) } File.open(TESTS_CONFIG, "w") {|f| f.write(c.to_yaml) }
@ -28,11 +28,17 @@ class Generator < OpenStruct
def generate!(templates) def generate!(templates)
templates.each do |input, output| templates.each do |input, output|
puts "Input: #{input}"
if File.exists?(input) if File.exists?(input)
data = render(File.read(input)) file_data = File.read(input)
if file_data.nil?
puts "Data of file '#{input}' is nil"
else
data = render(file_data)
dir = File.dirname(output) dir = File.dirname(output)
FileUtils.mkdir_p(dir) unless File.exists?(dir) FileUtils.mkdir_p(dir) unless File.exists?(dir)
File.open(output, "w") {|f| f.write(data)} File.open(output, "w") {|f| f.write(data)}
end
else else
puts "WARN: file '#{input}' does not exist" puts "WARN: file '#{input}' does not exist"
end end
@ -52,7 +58,8 @@ class Generator < OpenStruct
private private
def render(template) def render(template)
ERB.new(template).result(binding) puts template.size
ERB.new(template).result()
end end
def load_fixtures def load_fixtures