diff --git a/devops-client/lib/devops-client/options/server_options.rb b/devops-client/lib/devops-client/options/server_options.rb index 6b844f6..0bb0f87 100644 --- a/devops-client/lib/devops-client/options/server_options.rb +++ b/devops-client/lib/devops-client/options/server_options.rb @@ -127,7 +127,7 @@ class ServerOptions < CommonOptions options[:groups] = groups.split(",") end - parser.recognize_option_value(:private_ip, short: '-N', i18n_scope: 'create') + parser.recognize_option_value(:private_ip, i18n_scope: 'create') # it was disabled somewhy # parser.on('--public-ip', "Associate public IP with server") do diff --git a/devops-service/app/api2/routes/stack.rb b/devops-service/app/api2/routes/stack.rb index 6db26fc..ede1968 100644 --- a/devops-service/app/api2/routes/stack.rb +++ b/devops-service/app/api2/routes/stack.rb @@ -24,7 +24,7 @@ module Devops # Create stack # # * *Request* - # - method : PATCH + # - method : POST # - headers : # - Accept: application/json # - Content-Type: application/json diff --git a/devops-service/providers/ec2.rb b/devops-service/providers/ec2.rb index e122c1b..5aeaeb9 100644 --- a/devops-service/providers/ec2.rb +++ b/devops-service/providers/ec2.rb @@ -423,6 +423,7 @@ module Provider # When you create an instance with with ephemeral storages available within AWS console, # they are mapped automatically. But in case of creating within API we should map them manually. + # Result example: [{'VirtualName' => 'ephemeral0', 'DeviceName' => '/dev/xvdb'}] def ephemeral_storages_mappings(flavor) require 'fog/aws/models/compute/flavors' details = Fog::Compute::AWS::FLAVORS.detect {|f| f[:id] == flavor} diff --git a/devops-service/providers/static.rb b/devops-service/providers/static.rb index e3fcb94..83ea720 100644 --- a/devops-service/providers/static.rb +++ b/devops-service/providers/static.rb @@ -7,7 +7,7 @@ module Provider def initialize config self.certificate_path = config[:static_certificate] - self.ssh_key = "static" + self.ssh_key = config[:static_ssh_key] || "static" @@mongo ||= MongoConnector.new(config[:mongo_db], config[:mongo_host], config[:mongo_port], config[:mongo_user], config[:mongo_password]) end diff --git a/devops-service/providers/static_accounts_factory.rb b/devops-service/providers/static_accounts_factory.rb index 630921b..42b2dd7 100644 --- a/devops-service/providers/static_accounts_factory.rb +++ b/devops-service/providers/static_accounts_factory.rb @@ -2,5 +2,34 @@ require_relative "accounts_factory" module Provider class StaticAccountsFactory < AccountsFactory + def init config + @connections = {} + accounts.each do |account| + create_connection_from_account(config, account) + puts "\tFound static account '#{account.account_name}'" + end + ProviderFactory.add_provider Static::PROVIDER unless @connections.empty? + end + + def provider_name + Static::PROVIDER + end + + def create_connection_from_account config, account + options = { + static_ssh_key: account.ssh_key, + mongo_db: config[:mongo_db], + mongo_host: config[:mongo_host], + mongo_port: config[:mongo_port], + mongo_user: config[:mongo_user], + mongo_password: config[:mongo_password] + } + add_connection(account.account_name, Static.new(options)) + end + + def create_account hash + Devops::Model::StaticProviderAccount.new(hash) + end + end end