1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[Brightbox] Adds ApiClient Model

* Add api client model for Brightbox
* Also map relevant requests to model methods
* Add ApiClient declaration to compute.rb
This commit is contained in:
Hemant Kumar 2012-09-21 18:12:40 +05:30 committed by Paul Thornthwaite
parent 2b8e54c826
commit 23c1e414d8
3 changed files with 63 additions and 0 deletions

View file

@ -24,6 +24,8 @@ module Fog
model :account model :account
collection :applications collection :applications
model :application model :application
collection :api_clients
model :api_client
collection :servers collection :servers
model :server model :server
collection :server_groups collection :server_groups

View file

@ -0,0 +1,37 @@
module Fog
module Compute
class Brightbox
class ApiClient < Fog::Model
identity :id
attribute :name
attribute :description
attribute :secret
attribute :revoked_at, :type => :time
attribute :account_id
def save
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
options = {
:name => name,
:description => description
}.delete_if {|k,v| v.nil? || v == "" }
data = connection.create_api_client(options)
merge_attributes(data)
true
end
def destroy
requires :identity
connection.destroy_api_client(identity)
true
end
def reset_secret
requires :identity
connection.reset_secret_api_client(identity)
true
end
end
end
end
end

View file

@ -0,0 +1,24 @@
require "fog/core/collection"
require "fog/brightbox/models/compute/api_client"
module Fog
module Compute
class Brightbox
class ApiClients < Fog::Collection
model Fog::Compute::Brightbox::ApiClient
def all
data = connection.list_api_clients
load(data)
end
def get(identifier = nil)
data = connection.get_api_client(identifier)
new(data)
rescue Excon::Errors::NotFound
nil
end
end
end
end
end