Skip to content

Commit

Permalink
Merge branch 'storm'
Browse files Browse the repository at this point in the history
  • Loading branch information
manyoo committed May 25, 2013
2 parents 93e49f8 + bba488a commit 669e6ef
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 16 deletions.
49 changes: 49 additions & 0 deletions lib/fog/storm_on_demand/README.md
@@ -0,0 +1,49 @@
# StormOnDemand services examples

This storm_on_demand directory provides code for all storm on demand cloud APIs. All of the APIs are seperated into Compute, Network, Storage, DNS, Monitoring, Account, Billing, Support and Billing services.


## Use a service
Before using APIs of a service, you need to create a service object first. Take Compute for instance:

c = Fog::Compute.new :provider => :stormondemand,
:storm_on_demand_username => 'username',
:storm_on_demand_password => 'password'
Now, you can call API methods for Compute service. For instance:

c.servers.all
this will list all servers for the current account.

## Call an API method
According to Fog, a high level interface is provided through collections, such as images and servers. Each collection has a corresponding model, such as image and server.

APIs like create, list or details reside in the collections. For instance:

server = c.servers.create :config_id => conf.id,
:template => tpl.name,
:domain => 'example.com',
:password => 'rootpassword'
Other APIs for specific cloud object will reside in a model. For instance:

server.reboot :force => 1

All APIs' parameters are the same with the [Storm On Demand API Doc](https://www.stormondemand.com/api/docs/v1/).

#### (p.s. In order to conform to Fog's CRUD operations, some API methods are changed. For instance, 'list' methods are now 'all', 'details' methods are now 'get')


## Use a Token
If you want to use a token instead of password for API calls, instead of creating a new service like Compute, you should create a new Account first and get the token. Then create a new Compute/Network/Storage with the token.

account = Fog::Account.new :provider => :stormondemand,
:storm_on_demand_username => 'username',
:storm_on_demand_password => 'password'
# create a new token
token = account.tokens.create
# use the token instead of a password
net = Fog::Network.new :provider => :stormondemand,
:storm_on_demand_username = 'username',
:storm_on_demand_password = token.token
# if you want to expire the token
token.expire
1 change: 1 addition & 0 deletions lib/fog/storm_on_demand/dns.rb
Expand Up @@ -18,6 +18,7 @@ class StormOnDemand < Fog::Service
model :record
collection :records
model :reverse
collection :reverses
model :zone
collection :zones

Expand Down
3 changes: 1 addition & 2 deletions lib/fog/storm_on_demand/models/compute/image.rb
Expand Up @@ -25,8 +25,7 @@ def destroy

def update(options={})
requires :identity
img = service.update_image({:id => identity}.merge!(options)).body
new(img)
service.update_image({:id => identity}.merge!(options)).body
end

def restore(options={})
Expand Down
2 changes: 1 addition & 1 deletion lib/fog/storm_on_demand/models/compute/notification.rb
Expand Up @@ -24,7 +24,7 @@ def initialize(attributes={})

def resolve
requires :identity
service.resolve_notification(:id => identity)
service.resolve_notification(:id => identity).body
end

end
Expand Down
10 changes: 5 additions & 5 deletions lib/fog/storm_on_demand/models/compute/server.rb
Expand Up @@ -62,18 +62,19 @@ def resize(options)

def history(options={})
requires :identity
res = service.server_history({:uniq_id => identity}.merge!(options))
params = {:uniq_id => identity}.merge!(options)
res = service.server_history(params).body
res['items']
end

def shutdown(options={})
requires :identity
service.shutdown_server({:uniq_id => identity}.merge!(options))
service.shutdown_server({:uniq_id => identity}.merge!(options)).body
end

def start
reqwuires :identity
service.start_server({:uniq_id => identity})
service.start_server({:uniq_id => identity}).body
end

def status
Expand All @@ -83,8 +84,7 @@ def status

def update(options)
requires :identity
s = service.update_server({:uniq_id => identity}.merge!(options))
load(s)
service.update_server({:uniq_id => identity}.merge!(options)).body
end

end
Expand Down
8 changes: 0 additions & 8 deletions lib/fog/storm_on_demand/models/dns/reverse.rb
Expand Up @@ -9,14 +9,6 @@ def initialize(attributes={})
super
end

def destroy(options)
service.delete_reverse(options).body
end

def update(options)
service.update_reverse(options).body
end

end
end
end
Expand Down
23 changes: 23 additions & 0 deletions lib/fog/storm_on_demand/models/dns/reverses.rb
@@ -0,0 +1,23 @@
require 'fog/core/colletion'
require 'fog/storm_on_demand/models/dns/reverse'

module Fog
module DNS
class StormOnDemand

class Reverses < Fog::Collection
model Fog::DNS::StormOnDemand::Reverse

def destroy(options)
service.delete_reverse(options).body
end

def update(options)
service.update_reverse(options).body
end

end

end
end
end

0 comments on commit 669e6ef

Please sign in to comment.