diff --git a/devops-service/Gemfile.lock b/devops-service/Gemfile.lock index 8a53856..e27a649 100644 --- a/devops-service/Gemfile.lock +++ b/devops-service/Gemfile.lock @@ -3,7 +3,7 @@ GEM specs: addressable (2.3.5) atomic (1.1.14) - backports (3.6.0) + backports (3.6.4) bson (1.9.2) bson_ext (1.9.2) bson (~> 1.9.2) diff --git a/devops-service/devops-service.rb b/devops-service/devops-service.rb index fd6f02f..89878bb 100644 --- a/devops-service/devops-service.rb +++ b/devops-service/devops-service.rb @@ -30,15 +30,8 @@ class DevopsService < Sinatra::Base mongo = DevopsService.mongo mongo.create_root_user ::Provider::ProviderFactory.init(config) - ::Provider::ProviderFactory.all.each do |p| - next if p.certificate_path.nil? - begin - mongo.key p.ssh_key, Key::SYSTEM - rescue RecordNotFound => e - k = Key.new({"id" => p.ssh_key, "path" => p.certificate_path, "scope" => Key::SYSTEM}) - mongo.key_insert k - end - end + set_up_providers_keys!(::Provider::ProviderFactory.all, mongo) + end @@mongo @@ -63,4 +56,22 @@ class DevopsService < Sinatra::Base use ::Version2_0::V2_0 + private + + def set_up_providers_keys!(providers, mongo) + providers.each do |provider| + next if provider.certificate_path.nil? + begin + mongo.key provider.ssh_key, Key::SYSTEM + rescue RecordNotFound => e + begin + k = Key.new({"id" => provider.ssh_key, "path" => provider.certificate_path, "scope" => Key::SYSTEM}) + mongo.key_insert k + rescue InvalidRecord => e + puts "ERROR: an error occured during inserting #{provider.name} key" + end + end + end + end + end