46 lines
1.4 KiB
Ruby
46 lines
1.4 KiB
Ruby
require "app/api2/parsers/provider"
|
|
require "providers/provider_factory"
|
|
require_relative "request_handler"
|
|
require "db/mongo/models/provider_accounts/static_provider_account"
|
|
require "db/mongo/models/provider_accounts/openstack_provider_account"
|
|
require "db/mongo/models/provider_accounts/ec2_provider_account"
|
|
|
|
module Devops
|
|
module API2_0
|
|
module Handler
|
|
class Provider < RequestHandler
|
|
|
|
set_parser Devops::API2_0::Parser::ProviderParser
|
|
|
|
def providers
|
|
::Provider::ProviderFactory.providers
|
|
end
|
|
|
|
def accounts provider
|
|
::Provider::ProviderFactory.get_accounts_factory(provider).accounts
|
|
end
|
|
|
|
def account_fields provider
|
|
::Provider::ProviderFactory.get_account_class(provider).account_fields
|
|
end
|
|
|
|
def add_account provider
|
|
account = ::Provider::ProviderFactory.get_accounts_factory(provider).create_account(parser.account)
|
|
account.validate_fields!
|
|
Devops::Db.connector.provider_accounts_insert(account)
|
|
::Provider::ProviderFactory.add_account(provider, account)
|
|
account.to_hash
|
|
end
|
|
|
|
def delete_account name, provider
|
|
account = Devops::Db.connector.provider_accounts_show(name)
|
|
Devops::Db.connector.provider_accounts_delete(name)
|
|
::Provider::ProviderFactory.delete_account(provider, account)
|
|
account.to_hash
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|