diff --git a/lib/fog/serverlove/compute.rb b/lib/fog/serverlove/compute.rb index a47a06572..237278809 100644 --- a/lib/fog/serverlove/compute.rb +++ b/lib/fog/serverlove/compute.rb @@ -11,6 +11,8 @@ module Fog request_path 'fog/serverlove/requests/compute' request :get_drives request :destroy_drive + request :create_drive + request :update_drive model_path 'fog/serverlove/models/compute' model :drive @@ -66,4 +68,4 @@ module Fog end end -end \ No newline at end of file +end diff --git a/lib/fog/serverlove/models/compute/drive.rb b/lib/fog/serverlove/models/compute/drive.rb index 944e6c700..28f8893ed 100644 --- a/lib/fog/serverlove/models/compute/drive.rb +++ b/lib/fog/serverlove/models/compute/drive.rb @@ -16,7 +16,15 @@ module Fog attribute :encryption_cipher, :aliases => 'encryption:cipher' def save - # TODO + requires :identity + connection.update_drive(identity, attributes) + true + end + + def create(attributes) + requires :name + connection.create_drive(attributes) + true end def destroy diff --git a/lib/fog/serverlove/requests/compute/create_drive.rb b/lib/fog/serverlove/requests/compute/create_drive.rb new file mode 100644 index 000000000..f4fdea990 --- /dev/null +++ b/lib/fog/serverlove/requests/compute/create_drive.rb @@ -0,0 +1,14 @@ +module Fog + module Compute + class Serverlove + class Real + + def create_drive(options) + return nil if options.empty? || options.nil? + request(:method => "post", :path => "/drives/create", :expects => 200, :options => options) + end + + end + end + end +end diff --git a/lib/fog/serverlove/requests/compute/update_drive.rb b/lib/fog/serverlove/requests/compute/update_drive.rb new file mode 100644 index 000000000..395cda706 --- /dev/null +++ b/lib/fog/serverlove/requests/compute/update_drive.rb @@ -0,0 +1,15 @@ +module Fog + module Compute + class Serverlove + class Real + + def update_drive(identifier, options) + return nil if identifier.nil? || identifier == "" + return nil if options.empty? || options.nil? + request(:method => "post", :path => "/drives/#{identifier}/set", :expects => 200, :options => options) + end + + end + end + end +end