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_account(provider, name) Devops::Db.connector.provider_accounts_delete(name) ::Provider::ProviderFactory.delete_account(provider, account) account.to_hash end def account_vpcs provider, name Devops::Db.connector.provider_account(provider, name) ::Provider::ProviderFactory.get(provider, name).describe_vpcs end end end end end