fluke/devops-service/app/api2/handlers/provider.rb

51 lines
1.6 KiB
Ruby
Raw Normal View History

2015-10-22 12:39:22 +03:00
require "app/api2/parsers/provider"
2015-07-16 17:18:55 +03:00
require "providers/provider_factory"
2015-07-27 15:40:10 +03:00
require_relative "request_handler"
2015-10-22 12:39:22 +03:00
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"
2015-07-16 17:18:55 +03:00
module Devops
module API2_0
module Handler
2015-07-27 15:40:10 +03:00
class Provider < RequestHandler
2015-07-16 17:18:55 +03:00
set_parser Devops::API2_0::Parser::ProviderParser
2015-10-22 12:39:22 +03:00
2015-07-16 17:18:55 +03:00
def providers
::Provider::ProviderFactory.providers
end
2015-10-22 12:39:22 +03:00
def accounts provider
2015-11-02 17:33:25 +03:00
::Provider::ProviderFactory.get_accounts_factory(provider).accounts
2015-10-22 12:39:22 +03:00
end
2015-11-02 11:42:20 +03:00
def account_fields provider
::Provider::ProviderFactory.get_account_class(provider).account_fields
end
2015-10-22 12:39:22 +03:00
def add_account provider
2015-11-02 17:33:25 +03:00
account = ::Provider::ProviderFactory.get_accounts_factory(provider).create_account(parser.account)
account.validate_fields!
Devops::Db.connector.provider_account_insert(account)
2015-10-28 17:27:02 +03:00
::Provider::ProviderFactory.add_account(provider, account)
2015-10-27 13:45:25 +03:00
account.to_hash
2015-10-22 12:39:22 +03:00
end
def delete_account name, provider
2015-11-17 12:14:02 +03:00
account = Devops::Db.connector.provider_account(provider, name)
Devops::Db.connector.provider_account_delete(name)
2015-11-02 17:33:25 +03:00
::Provider::ProviderFactory.delete_account(provider, account)
2015-10-27 13:45:25 +03:00
account.to_hash
2015-10-22 12:39:22 +03:00
end
2015-11-17 12:14:02 +03:00
def account_vpcs provider, name
Devops::Db.connector.provider_account(provider, name)
::Provider::ProviderFactory.get(provider, name).describe_vpcs
end
2015-07-16 17:18:55 +03:00
end
end
end
end