[DRE-commits] [ruby-fog-sakuracloud] 05/06: Updating files

Rejah Rehim rejah-guest at moszumanska.debian.org
Tue Nov 11 12:30:25 UTC 2014


This is an automated email from the git hooks/post-receive script.

rejah-guest pushed a commit to branch master
in repository ruby-fog-sakuracloud.

commit fb3cc36cfdb81f5301dd9e75d6edde1f8d010705
Author: Rejah Rehim <rejah.rehim at gmail.com>
Date:   Mon Nov 10 19:33:09 2014 +0530

    Updating files
---
 debian/files                                       |   1 +
 debian/ruby-fog-sakuracloud.debhelper.log          |  18 +++++
 debian/ruby-fog-sakuracloud.substvars              |   2 +
 debian/ruby-fog-sakuracloud/DEBIAN/control         |  16 ++++
 debian/ruby-fog-sakuracloud/DEBIAN/md5sums         |  51 ++++++++++++
 .../lib/ruby/vendor_ruby/fog/bin/sakuracloud.rb    |  39 +++++++++
 .../usr/lib/ruby/vendor_ruby/fog/sakuracloud.rb    |  18 +++++
 .../ruby/vendor_ruby/fog/sakuracloud/compute.rb    |  65 +++++++++++++++
 .../fog/sakuracloud/models/compute/plan.rb         |  15 ++++
 .../fog/sakuracloud/models/compute/plans.rb        |  22 +++++
 .../fog/sakuracloud/models/compute/server.rb       |  40 +++++++++
 .../fog/sakuracloud/models/compute/servers.rb      |  64 +++++++++++++++
 .../fog/sakuracloud/models/compute/ssh_key.rb      |  13 +++
 .../fog/sakuracloud/models/compute/ssh_keys.rb     |  22 +++++
 .../fog/sakuracloud/models/compute/zone.rb         |  13 +++
 .../fog/sakuracloud/models/compute/zones.rb        |  22 +++++
 .../fog/sakuracloud/models/network/router.rb       |  45 +++++++++++
 .../fog/sakuracloud/models/network/routers.rb      |  27 +++++++
 .../fog/sakuracloud/models/network/switch.rb       |  35 ++++++++
 .../fog/sakuracloud/models/network/switches.rb     |  27 +++++++
 .../fog/sakuracloud/models/volume/archive.rb       |  14 ++++
 .../fog/sakuracloud/models/volume/archives.rb      |  22 +++++
 .../fog/sakuracloud/models/volume/disk.rb          |  48 +++++++++++
 .../fog/sakuracloud/models/volume/disks.rb         |  27 +++++++
 .../fog/sakuracloud/models/volume/plan.rb          |  12 +++
 .../fog/sakuracloud/models/volume/plans.rb         |  22 +++++
 .../ruby/vendor_ruby/fog/sakuracloud/network.rb    |  83 +++++++++++++++++++
 .../sakuracloud/requests/compute/boot_server.rb    |  31 +++++++
 .../sakuracloud/requests/compute/create_server.rb  |  52 ++++++++++++
 .../sakuracloud/requests/compute/delete_server.rb  |  33 ++++++++
 .../fog/sakuracloud/requests/compute/list_plans.rb |  46 +++++++++++
 .../sakuracloud/requests/compute/list_servers.rb   |  44 ++++++++++
 .../sakuracloud/requests/compute/list_ssh_keys.rb  |  40 +++++++++
 .../fog/sakuracloud/requests/compute/list_zones.rb |  40 +++++++++
 .../sakuracloud/requests/compute/stop_server.rb    |  37 +++++++++
 .../sakuracloud/requests/network/create_router.rb  |  41 ++++++++++
 .../sakuracloud/requests/network/create_switch.rb  |  37 +++++++++
 .../sakuracloud/requests/network/delete_router.rb  |  30 +++++++
 .../sakuracloud/requests/network/delete_switch.rb  |  30 +++++++
 .../sakuracloud/requests/network/list_routers.rb   |  39 +++++++++
 .../sakuracloud/requests/network/list_switches.rb  |  74 +++++++++++++++++
 .../requests/volume/associate_ip_to_disk.rb        |  39 +++++++++
 .../fog/sakuracloud/requests/volume/attach_disk.rb |  30 +++++++
 .../sakuracloud/requests/volume/configure_disk.rb  |  35 ++++++++
 .../fog/sakuracloud/requests/volume/create_disk.rb |  43 ++++++++++
 .../fog/sakuracloud/requests/volume/delete_disk.rb |  30 +++++++
 .../sakuracloud/requests/volume/list_archives.rb   |  46 +++++++++++
 .../fog/sakuracloud/requests/volume/list_disks.rb  |  50 ++++++++++++
 .../fog/sakuracloud/requests/volume/list_plans.rb  |  40 +++++++++
 .../ruby/vendor_ruby/fog/sakuracloud/version.rb    |   5 ++
 .../lib/ruby/vendor_ruby/fog/sakuracloud/volume.rb |  89 +++++++++++++++++++++
 .../doc/ruby-fog-sakuracloud/changelog.Debian.gz   | Bin 0 -> 170 bytes
 .../share/doc/ruby-fog-sakuracloud/changelog.gz    | Bin 0 -> 239 bytes
 .../usr/share/doc/ruby-fog-sakuracloud/copyright   |  32 ++++++++
 .../specifications/fog-sakuracloud-0.1.1.gemspec   |  75 +++++++++++++++++
 .../specifications/fog-sakuracloud-0.1.1.gemspec   |  75 +++++++++++++++++
 56 files changed, 1946 insertions(+)

diff --git a/debian/files b/debian/files
new file mode 100644
index 0000000..3b20fa1
--- /dev/null
+++ b/debian/files
@@ -0,0 +1 @@
+ruby-fog-sakuracloud_0.1.1-1_all.deb ruby optional
diff --git a/debian/ruby-fog-sakuracloud.debhelper.log b/debian/ruby-fog-sakuracloud.debhelper.log
new file mode 100644
index 0000000..6cd8c34
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud.debhelper.log
@@ -0,0 +1,18 @@
+dh_auto_configure
+dh_auto_build
+dh_auto_test
+dh_prep
+dh_installchangelogs
+dh_auto_install
+dh_installdocs
+dh_installchangelogs
+dh_pysupport
+dh_perl
+dh_link
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_builddeb
diff --git a/debian/ruby-fog-sakuracloud.substvars b/debian/ruby-fog-sakuracloud.substvars
new file mode 100644
index 0000000..17ae1fe
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud.substvars
@@ -0,0 +1,2 @@
+ruby:Versions=ruby1.9.1 ruby2.0
+misc:Depends=
diff --git a/debian/ruby-fog-sakuracloud/DEBIAN/control b/debian/ruby-fog-sakuracloud/DEBIAN/control
new file mode 100644
index 0000000..5ae424a
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/DEBIAN/control
@@ -0,0 +1,16 @@
+Package: ruby-fog-sakuracloud
+Version: 0.1.1-1
+Architecture: all
+Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
+Installed-Size: 156
+Depends: ruby | ruby-interpreter
+Section: ruby
+Priority: optional
+Homepage: https://rubygems.org/gems/fog-sakuracloud
+Description: Module for the 'fog' gem to support Sakura no Cloud
+ This gem is a module for the fog gem that allows you to manage resources
+ in the Sakura no Cloud.
+ .
+ Fog supports all major cloud providers including AWS, Rackspace, Linode,
+ Blue Box, StormOnDemand, and many others.
+Ruby-Versions: ruby1.9.1 ruby2.0
diff --git a/debian/ruby-fog-sakuracloud/DEBIAN/md5sums b/debian/ruby-fog-sakuracloud/DEBIAN/md5sums
new file mode 100644
index 0000000..331d2ac
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/DEBIAN/md5sums
@@ -0,0 +1,51 @@
+d6ace33a2fa4cf0eb2e7f8716d2de6f6  usr/lib/ruby/vendor_ruby/fog/bin/sakuracloud.rb
+6fc29a8419a3dac05916e577de64ceef  usr/lib/ruby/vendor_ruby/fog/sakuracloud.rb
+e0bb310d507d59ea2a2c95410f2de08e  usr/lib/ruby/vendor_ruby/fog/sakuracloud/compute.rb
+ab33ace9a6334c4784cdd375a6528366  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plan.rb
+78035c012dbdf03c7b406f27ca90a327  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plans.rb
+4cb06a2e81f41e2b348381c91ff83880  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/server.rb
+fd870fca5762cada46d8d48d32adf759  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/servers.rb
+6bd3dc31b23be966ea1557e7d6cfa1cd  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_key.rb
+f8968d326cec591d683a25dba55116e8  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_keys.rb
+22b61f3e60804ecacbdc1507d6ec21ed  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zone.rb
+04e2fe664eef852699dc2c401ba8b016  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zones.rb
+baaa69f9b36bee73c8dfdd3bdb428d6d  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/router.rb
+ca6185fd8785489a5d4324a153d90099  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/routers.rb
+6fcf943b1fc36ae4b6f1a50990de5925  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switch.rb
+0f2705909e9099bd27ee061c2e9dcbf7  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switches.rb
+495340ab6b8491b7dbaba34c7679614f  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archive.rb
+bc26800ce9581c99aecde0fc5f245bd0  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archives.rb
+1caa59776488ec773c3286810fa5ce09  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disk.rb
+0d561880616a6afab04f7440ad7b1ce2  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disks.rb
+47b8004740f813deb970ee50a4055331  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plan.rb
+b536ca4ddb2a5c70b26965e7887bcde2  usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plans.rb
+c8dadd4fcbcf1b10a1d8980c90b75982  usr/lib/ruby/vendor_ruby/fog/sakuracloud/network.rb
+abb8565d7e4fc64273a24c4ef0faec34  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/boot_server.rb
+52703a9939feddc657c854503e168ca0  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/create_server.rb
+d24805f3d9e49163b872b7a12436b47d  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/delete_server.rb
+2cc1e24668fb153edc2f30086df4c0e1  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_plans.rb
+da94688ea370fa909fd7c76128233b15  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_servers.rb
+9e8a53d0a74c7549f6ad2b7684064fc3  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_ssh_keys.rb
+25ef0f3a61e59b9243b7fdba048704bf  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_zones.rb
+ea95eca1c2781a284623a4ae2591a883  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/stop_server.rb
+e1b6be7df5a96252d2fddbfcb1d11c92  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_router.rb
+507d0644c151e1853021b1a6cc38b4ed  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_switch.rb
+a6f359be0d461e7527d1eb2e1e61136a  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_router.rb
+9dd7433b4e59af4690a5ed3776cd6f81  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_switch.rb
+b312283633d193c3ee15edc1d3b90fde  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_routers.rb
+fc0d899d2cc35d603c7959e36b359923  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_switches.rb
+bf8d078bf4d9d70de464970917000e26  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/associate_ip_to_disk.rb
+9213560bd01e985e332d58a3993ca086  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/attach_disk.rb
+437506e558bd6c320bbfaf3ea7290333  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/configure_disk.rb
+a1f267c89c25b3fda59a72e9c86a3711  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/create_disk.rb
+5285c3d79192dc63e8eee7b76ee0ee10  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/delete_disk.rb
+5f6e8f8ac4cae5d54fee7d975751f6d0  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_archives.rb
+981eed6607439cc06bad272aaf86d6d0  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_disks.rb
+b68e73b213099bbb731757e2ddad6522  usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_plans.rb
+f409308274248ea55ca9e21624da1deb  usr/lib/ruby/vendor_ruby/fog/sakuracloud/version.rb
+c71137edd700ba985284f0b412c4c60d  usr/lib/ruby/vendor_ruby/fog/sakuracloud/volume.rb
+572b0caf011a6e1edd8f9a12ee2c2c01  usr/share/doc/ruby-fog-sakuracloud/changelog.Debian.gz
+609fada73813fa3d5405ed8e3418a452  usr/share/doc/ruby-fog-sakuracloud/changelog.gz
+60e5b636255daa395e846450cc388c70  usr/share/doc/ruby-fog-sakuracloud/copyright
+5606c938d6efb397d978d56f8c46083d  usr/share/rubygems-integration/1.9.1/specifications/fog-sakuracloud-0.1.1.gemspec
+5606c938d6efb397d978d56f8c46083d  usr/share/rubygems-integration/2.0/specifications/fog-sakuracloud-0.1.1.gemspec
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/bin/sakuracloud.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/bin/sakuracloud.rb
new file mode 100644
index 0000000..22934a1
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/bin/sakuracloud.rb
@@ -0,0 +1,39 @@
+class SakuraCloud < Fog::Bin
+  class << self
+    def class_for(key)
+      case key
+      when :compute
+        Fog::Compute::SakuraCloud
+      when :volume
+        Fog::Volume::SakuraCloud
+      when :network
+        Fog::Network::SakuraCloud
+      else
+        raise ArgumentError, "Unrecognized service: #{key}"
+      end
+    end
+
+    def [](service)
+      @@connections ||= Hash.new do |hash, key|
+        hash[key] = case key
+        when :compute
+          Fog::Logger.warning("SakuraCloud[:compute] is not recommended, use Fog::Compute[:sakuracloud] for portability")
+          Fog::Compute.new(:provider => 'SakuraCloud')
+        when :volume
+          Fog::Logger.warning("SakuraCloud[:volume] is not recommended, use Fog::Volume[:sakuracloud] for portability")
+          Fog::Volume.new(:provider => 'SakuraCloud')
+        when :network
+          Fog::Logger.warning("SakuraCloud[:network] is not recommended, use Fog::Network[:sakuracloud] for portability")
+          Fog::Network.new(:provider => 'SakuraCloud')
+        else
+          raise ArgumentError, "Unrecognized service: #{key.inspect}"
+        end
+      end
+      @@connections[service]
+    end
+
+    def services
+      Fog::SakuraCloud.services
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud.rb
new file mode 100644
index 0000000..e8bb3b5
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud.rb
@@ -0,0 +1,18 @@
+require 'fog/core'
+require 'fog/sakuracloud/compute'
+require 'fog/sakuracloud/volume'
+require 'fog/sakuracloud/network'
+
+module Fog
+  module SakuraCloud
+    extend Fog::Provider
+
+    SAKURACLOUD_API_VERSION = '1.1' unless defined? SAKURACLOUD_API_VERSION
+    SAKURACLOUD_API_ZONE = "is1b" unless defined? SAKURACLOUD_API_ZONE
+    SAKURACLOUD_API_ENDPOINT = "/cloud/zone/#{SAKURACLOUD_API_ZONE}/api/cloud/#{SAKURACLOUD_API_VERSION}/"
+
+    service(:compute, 'Compute')
+    service(:volume, 'Volume')
+    service(:network, 'Network')
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/compute.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/compute.rb
new file mode 100644
index 0000000..27c9206
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/compute.rb
@@ -0,0 +1,65 @@
+require 'fog/sakuracloud'
+require 'fog/compute'
+
+module Fog
+  module Compute
+    class SakuraCloud < Fog::Service
+      requires     :sakuracloud_api_token
+      requires     :sakuracloud_api_token_secret
+
+      recognizes   :sakuracloud_api_url
+
+      model_path 'fog/sakuracloud/models/compute'
+      model      :server
+      collection :servers
+      model      :plan
+      collection :plans
+      model      :ssh_key
+      collection :ssh_keys
+      model      :zone
+      collection :zones
+
+      request_path 'fog/sakuracloud/requests/compute'
+      request      :list_servers
+      request      :create_server
+      request      :delete_server
+      request      :boot_server
+      request      :stop_server
+      request      :list_plans
+      request      :list_ssh_keys
+      request      :list_zones
+
+      class Real
+        def initialize(options = {})
+          @auth_encord = Base64.strict_encode64([
+            options[:sakuracloud_api_token],
+            options[:sakuracloud_api_token_secret]
+          ].join(':'))
+          Fog.credentials[:sakuracloud_api_token]        = options[:sakuracloud_api_token]
+          Fog.credentials[:sakuracloud_api_token_secret] = options[:sakuracloud_api_token_secret]
+
+          @sakuracloud_api_url = options[:sakuracloud_api_url] || 'https://secure.sakura.ad.jp'
+
+          @connection = Fog::Core::Connection.new(@sakuracloud_api_url)
+        end
+
+        def request(params)
+          response = parse @connection.request(params)
+          response
+        end
+
+        private
+        def parse(response)
+          return response if response.body.empty?
+          response.body = Fog::JSON.decode(response.body)
+          response
+        end
+      end
+
+      class Mock
+        def initialize(options = {})
+        end
+      end
+    end #SakuraCloud
+  end #Compute
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plan.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plan.rb
new file mode 100644
index 0000000..a1ab798
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plan.rb
@@ -0,0 +1,15 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Plan < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :server_class, :aliases => 'ServiceClass'
+        attribute :cpu, :aliases => 'CPU'
+        attribute :memory_mb, :aliases => 'MemoryMB'
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plans.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plans.rb
new file mode 100644
index 0000000..3ba2930
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/plans.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/compute/plan'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Plans < Fog::Collection
+        model Fog::Compute::SakuraCloud::Plan
+
+        def all
+          load service.list_plans.body['ServerPlans']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/server.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/server.rb
new file mode 100644
index 0000000..6936b52
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/server.rb
@@ -0,0 +1,40 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Server < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :server_plan, :aliases => 'ServerPlan'
+        attribute :instance, :aliases => 'Instance'
+        attribute :disks, :aliases => 'Disks'
+        attribute :interfaces, :aliases => 'Interfaces'
+
+        def save
+          requires :name, :server_plan
+          data = service.create_server(@attributes).body["Server"]
+          merge_attributes(data)
+          true
+        end
+
+        def boot
+          requires :id
+          service.boot_server(@attributes[:id])
+        end
+
+        def stop(force = false)
+          requires :id
+          service.stop_server(@attributes[:id], force)
+        end
+
+        def delete(disks = [])
+          requires :id
+          service.delete_server(@attributes[:id], disks)
+          true
+        end
+        alias_method :destroy, :delete
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/servers.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/servers.rb
new file mode 100644
index 0000000..cf88818
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/servers.rb
@@ -0,0 +1,64 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/compute/server'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Servers < Fog::Collection
+        model Fog::Compute::SakuraCloud::Server
+
+        def all
+          load service.list_servers.body['Servers']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+
+        def create(options = {})
+          user = options[:user] || 'root'
+          Fog::Logger.warning("Create Server")
+          name = options[:name] ? options[:name] : Fog::UUID.uuid
+          data = service.create_server(options).body["Server"]
+          server = service.servers.new
+          server.merge_attributes(data)
+
+          if options[:volume]
+            disk = create_and_attach_volume(server, options)
+            server.reload
+          end
+          server.boot if options[:boot]
+          server
+        end
+
+        private
+        def create_and_attach_volume(server, options)
+            Fog::Logger.warning("Create Volume")
+            sakuracloud_api_token        = options[:sakuracloud_api_token] || Fog.credentials[:sakuracloud_api_token]
+            sakuracloud_api_token_secret = options[:sakuracloud_api_token_secret] || Fog.credentials[:sakuracloud_api_token_secret]
+            volume = Fog::Volume::SakuraCloud.new(:sakuracloud_api_token => sakuracloud_api_token, :sakuracloud_api_token_secret => sakuracloud_api_token_secret)
+            disk = volume.disks.create :name => Fog::UUID.uuid,
+                                :plan  => options[:volume][:diskplan].to_i,
+                                :source_archive => options[:volume][:sourcearchive].to_s
+            Fog::Logger.warning("Waiting disk until available")
+            disk.wait_for { availability == 'available' }
+            volume.attach_disk(disk.id, server.id)
+            disk_attached?(server, disk.id)
+            Fog::Logger.warning("Modifing disk")
+            volume.configure_disk(disk.id, options[:sshkey])
+            disk
+        end
+
+        def disk_attached?(server, disk_id)
+          until server.disks.find {|s| disk_id.to_s}
+            print '.'
+            sleep 2
+            server.reload
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_key.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_key.rb
new file mode 100644
index 0000000..46910ed
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_key.rb
@@ -0,0 +1,13 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class SshKey < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :public_key, :aliases => 'PublicKey'
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_keys.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_keys.rb
new file mode 100644
index 0000000..9937409
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/ssh_keys.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/compute/ssh_key'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class SshKeys < Fog::Collection
+        model Fog::Compute::SakuraCloud::SshKey
+
+        def all
+          load service.list_ssh_keys.body['SSHKeys']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zone.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zone.rb
new file mode 100644
index 0000000..8f50114
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zone.rb
@@ -0,0 +1,13 @@
+require 'fog/core/model'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Zone < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :description, :aliases => 'Description'
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zones.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zones.rb
new file mode 100644
index 0000000..c9e9867
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/compute/zones.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/compute/zone'
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Zones < Fog::Collection
+        model Fog::Compute::SakuraCloud::Zone
+
+        def all
+          load service.list_zones.body['Zones']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/router.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/router.rb
new file mode 100644
index 0000000..afc6ea0
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/router.rb
@@ -0,0 +1,45 @@
+require 'fog/core/model'
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Router < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :description, :aliases => 'Description'
+        attribute :server_count, :aliases => 'ServerCount'
+        attribute :appliance_count, :aliases => 'ApplianceCount'
+        attribute :subnets, :aliases => 'Subnets'
+        attribute :ipv6nets, :aliases => 'IPv6Nets'
+        attribute :internet, :aliases => 'Internet'
+        attribute :bridge, :aliases => 'Bridge'
+        attribute :networkmasklen
+
+
+        def delete
+          service.delete_router(identity)
+          true
+        end
+        alias_method :destroy, :delete
+
+        def save
+          requires :name, :networkmasklen
+          Fog::Logger.warning("Create Router with public subnet")
+          data = service.create_router(@attributes).body["Internet"]
+          Fog::Logger.warning("Waiting available new router...")
+          new_data = router_available?(service, data["ID"])
+          merge_attributes(new_data)
+          true
+        end
+
+        def router_available?(network, router_id)
+          until network.switches.find {|r| r.internet != nil && r.internet["ID"] == router_id}
+            print '.'
+            sleep 2
+          end
+          ::JSON.parse((network.switches.find {|r| r.internet != nil && r.internet["ID"] == router_id}).to_json)
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/routers.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/routers.rb
new file mode 100644
index 0000000..c5099fa
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/routers.rb
@@ -0,0 +1,27 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/network/router'
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Routers < Fog::Collection
+        model Fog::Network::SakuraCloud::Router
+
+        def all
+          load service.list_routers.body['Internet']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+
+        def delete(id)
+          service.delete_router(id)
+          true
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switch.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switch.rb
new file mode 100644
index 0000000..f4563bd
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switch.rb
@@ -0,0 +1,35 @@
+require 'fog/core/model'
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Switch < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :description, :aliases => 'Description'
+        attribute :server_count, :aliases => 'ServerCount'
+        attribute :appliance_count, :aliases => 'ApplianceCount'
+        attribute :subnets, :aliases => 'Subnets'
+        attribute :ipv6nets, :aliases => 'IPv6Nets'
+        attribute :internet, :aliases => 'Internet'
+        attribute :bridge, :aliases => 'Bridge'
+
+
+        def delete
+          service.delete_switch(identity)
+          true
+        end
+        alias_method :destroy, :delete
+
+        def save
+          requires :name
+          Fog::Logger.warning("Create Switch")
+          data = service.create_switch(@attributes).body["Switch"]
+          merge_attributes(data)
+          true
+        end
+
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switches.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switches.rb
new file mode 100644
index 0000000..d0554b0
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/network/switches.rb
@@ -0,0 +1,27 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/network/switch'
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Switches < Fog::Collection
+        model Fog::Network::SakuraCloud::Switch
+
+        def all
+          load service.list_switches.body['Switches']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+
+        def delete(id)
+          service.delete_switch(id)
+          true
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archive.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archive.rb
new file mode 100644
index 0000000..c9596b9
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archive.rb
@@ -0,0 +1,14 @@
+require 'fog/core/model'
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Archive < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :size_mb, :aliases => 'SizeMB'
+        attribute :plan, :aliases => 'Plan'
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archives.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archives.rb
new file mode 100644
index 0000000..c5b2fc2
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/archives.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/volume/archive'
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Archives < Fog::Collection
+        model Fog::Volume::SakuraCloud::Archive
+
+        def all
+          load service.list_archives.body['Archives']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disk.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disk.rb
new file mode 100644
index 0000000..fbc4b29
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disk.rb
@@ -0,0 +1,48 @@
+require 'fog/core/model'
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Disk < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+        attribute :connection, :aliases => 'Connection'
+        attribute :availability, :aliases => 'Availability'
+        attribute :plan, :aliases => 'Plan'
+        attribute :size_mb, :aliases => 'SizeMB'
+        attribute :source_disk, :aliases => 'SourceDisk'
+        attribute :source_archive, :aliases => 'SourceArchive'
+
+        def delete
+          service.delete_disk(identity)
+          true
+        end
+        alias_method :destroy, :delete
+
+        def save
+          requires :name, :plan, :source_archive
+          data = service.create_disk(@attributes[:name], @attributes[:plan], @attributes[:source_archive]).body["Disk"]
+          merge_attributes(data)
+          true
+        end
+
+        def configure(sshkey_id)
+          requires :id
+          service.configure_disk(@attributes[:id], sshkey_id )
+          true
+        end
+
+        def associate_ip(ipaddress, networkmasklen, defaultroute)
+          subnet ={
+            :ipaddress => ipaddress,
+            :networkmasklen => networkmasklen,
+            :defaultroute => defaultroute
+          }
+          requires :id
+          service.associate_ip_to_disk(@attributes[:id], subnet )
+          true
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disks.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disks.rb
new file mode 100644
index 0000000..f58a4fe
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/disks.rb
@@ -0,0 +1,27 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/volume/disk'
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Disks < Fog::Collection
+        model Fog::Volume::SakuraCloud::Disk
+
+        def all
+          load service.list_disks.body['Disks']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+
+        def delete(id)
+          service.delete_disk(id)
+          true
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plan.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plan.rb
new file mode 100644
index 0000000..8a15720
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plan.rb
@@ -0,0 +1,12 @@
+require 'fog/core/model'
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Plan < Fog::Model
+        identity :id, :aliases => 'ID'
+        attribute :name, :aliases => 'Name'
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plans.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plans.rb
new file mode 100644
index 0000000..68342ad
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/models/volume/plans.rb
@@ -0,0 +1,22 @@
+require 'fog/core/collection'
+require 'fog/sakuracloud/models/volume/plan'
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Plans < Fog::Collection
+        model Fog::Volume::SakuraCloud::Plan
+
+        def all
+          load service.list_plans.body['DiskPlans']
+        end
+
+        def get(id)
+          all.find { |f| f.id == id }
+        rescue Fog::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/network.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/network.rb
new file mode 100644
index 0000000..b8e8207
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/network.rb
@@ -0,0 +1,83 @@
+require 'fog/sakuracloud'
+require 'fog/network'
+
+module Fog
+  module Network
+    class SakuraCloud < Fog::Service
+      requires     :sakuracloud_api_token
+      requires     :sakuracloud_api_token_secret
+
+      recognizes   :sakuracloud_api_url
+
+      model_path 'fog/sakuracloud/models/network'
+      model      :router
+      collection :routers
+      model      :switch
+      collection :switches
+
+      request_path 'fog/sakuracloud/requests/network'
+      request      :list_routers
+      request      :create_router
+      request      :delete_router
+      request      :list_switches
+      request      :create_switch
+      request      :delete_switch
+
+      class Real
+        def initialize(options = {})
+          @auth_encord = Base64.strict_encode64([
+            options[:sakuracloud_api_token],
+            options[:sakuracloud_api_token_secret]
+          ].join(':'))
+          Fog.credentials[:sakuracloud_api_token]        = options[:sakuracloud_api_token]
+          Fog.credentials[:sakuracloud_api_token_secret] = options[:sakuracloud_api_token_secret]
+
+          @sakuracloud_api_url = options[:sakuracloud_api_url] || 'https://secure.sakura.ad.jp'
+
+          @connection = Fog::Core::Connection.new(@sakuracloud_api_url)
+        end
+
+        def request(params)
+          response = parse @connection.request(params)
+          response
+        end
+
+        private
+        def parse(response)
+          return response if response.body.empty?
+          response.body = Fog::JSON.decode(response.body)
+          response
+        end
+      end
+
+      class Mock
+        def self.data
+          @data ||= Hash.new do |hash, key|
+            hash[key] = {
+              :routers => []
+            }
+          end
+        end
+
+        def self.reset
+          @data = nil
+        end
+
+        def initialize(options={})
+          @sakuracloud_api_token        = options[:sakuracloud_api_token]
+          @sakuracloud_api_token_secret = options[:sakuracloud_api_token_secret]
+        end
+
+        def data
+          self.class.data[@sakuracloud_api_token]
+          self.class.data[@sakuracloud_api_token_secret]
+        end
+
+        def reset_data
+          self.class.data.delete(@sakuracloud_api_token)
+          self.class.data.delete(@sakuracloud_api_token_secret)
+        end
+      end
+    end #SakuraCloud
+  end #Network
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/boot_server.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/boot_server.rb
new file mode 100644
index 0000000..8856dd2
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/boot_server.rb
@@ -0,0 +1,31 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def boot_server( id )
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'PUT',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}/power"
+          )
+          true
+        end
+      end # Real
+
+      class Mock
+        def boot_server( id )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/create_server.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/create_server.rb
new file mode 100644
index 0000000..214d5c9
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/create_server.rb
@@ -0,0 +1,52 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def create_server(options)
+          if options[:switch]
+            switchs = options[:switch].split(',')
+            connectedswitches = switchs.map do |sw_id|
+              {
+                "ID" => sw_id
+              }
+            end
+          else
+            connectedswitches = [{"Scope"=>"shared", "BandWidthMbps"=>100}]
+          end
+
+          body = {
+            "Server" => {
+              "Name" => options[:name],
+              "ServerPlan" => {
+                "ID" => options[:serverplan].to_i
+              },
+              "ConnectedSwitches" => connectedswitches
+            }
+          }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [201],
+            :method => 'POST',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def create_server(options)
+          response = Excon::Response.new
+          response.status = 201
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/delete_server.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/delete_server.rb
new file mode 100644
index 0000000..6ef5177
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/delete_server.rb
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def delete_server( id, force = false, disks = [] )
+          body = { "Force" => force, 'WithDisk' => disks }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'DELETE',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def delete_server( id, force = false, disks = [] )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_plans.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_plans.rb
new file mode 100644
index 0000000..42d2c79
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_plans.rb
@@ -0,0 +1,46 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def list_plans(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/server"
+          )
+        end
+      end
+
+      class Mock
+        def list_plans(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "ServerPlans" =>
+            [
+            {"Index"=>0,
+              "ID"=>1001,
+              "Name"=>"プラン/1Core-1GB",
+              "CPU"=>1,
+              "MemoryMB"=>1024,
+              "ServiceClass"=>"cloud/plan/1core-1gb",
+              "Availability"=>"available"},
+            {"Index"=>1,
+              "ID"=>2001,
+              "Name"=>"プラン/1Core-2GB",
+              "CPU"=>1,
+              "MemoryMB"=>2048,
+              "ServiceClass"=>"cloud/plan/1core-2gb",
+              "Availability"=>"available"}
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_servers.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_servers.rb
new file mode 100644
index 0000000..d20d269
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_servers.rb
@@ -0,0 +1,44 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def list_servers(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server"
+          )
+        end
+      end
+
+      class Mock
+        def list_servers(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "Servers" =>
+            [
+            {"Index" => 0,
+              "ID"=>112600055376,
+              "Name"=>"foober1",
+              "ServerPlan"=> {},
+              "Instance"=> {},
+              "Disks"=> []},
+            {"Index" => 1,
+              "ID"=>112600055377,
+              "Name"=>"foober2",
+              "ServerPlan"=> {},
+              "Instance"=> {},
+              "Disks"=> []}
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_ssh_keys.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_ssh_keys.rb
new file mode 100644
index 0000000..4e2d917
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_ssh_keys.rb
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def list_ssh_keys(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/sshkey"
+          )
+        end
+      end
+
+      class Mock
+        def list_ssh_keys(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "SSHKeys"=>
+            [
+            {"Index"=>0,
+              "ID"=>"888888888888",
+              "Name"=>"foobar1",
+              "PublicKey"=>"ssh-rsa dummy"},
+            {"Index"=>1,
+              "ID"=>"999999999999",
+              "Name"=>"foobar2",
+              "PublicKey"=>"ssh-rsa dummy"}
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_zones.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_zones.rb
new file mode 100644
index 0000000..d06de45
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/list_zones.rb
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def list_zones(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/zone"
+          )
+        end
+      end
+
+      class Mock
+        def list_zones(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "Zones" =>
+            [
+            {"Index"=>0,
+               "ID"=>31001,
+               "Name"=>"is1a",
+               "Description"=>"石狩第1ゾーン"},
+            {"Index"=>1,
+               "ID"=>31002,
+               "Name"=>"is1b",
+               "Description"=>"石狩第2ゾーン"}
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/stop_server.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/stop_server.rb
new file mode 100644
index 0000000..2e8f53b
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/compute/stop_server.rb
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+module Fog
+  module Compute
+    class SakuraCloud
+      class Real
+        def stop_server( id, force = false )
+          if force
+            body = { "Force" => true }
+          else
+            body = {}
+          end
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200,202],
+            :method => 'DELETE',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/server/#{id}/power",
+            :body => Fog::JSON.encode(body)
+          )
+          true
+        end
+      end # Real
+
+      class Mock
+        def stop_server( id, force = false )
+          response = Excon::Response.new
+          response.status = 202
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_router.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_router.rb
new file mode 100644
index 0000000..b455e2a
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_router.rb
@@ -0,0 +1,41 @@
+# coding: utf-8
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Real
+        def create_router(options)
+          bandwidthmbps = options[:bandwidthmbps] ? options[:bandwidthmbps].to_i : 100
+
+          body = {
+            "Internet" => {
+              "Name" => options[:name],
+              "NetworkMaskLen"=> options[:networkmasklen].to_i,
+              "BandWidthMbps"=> bandwidthmbps
+            }
+          }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => 202,
+            :method => 'POST',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/internet",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def create_router(options)
+          response = Excon::Response.new
+          response.status = 202
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Network
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_switch.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_switch.rb
new file mode 100644
index 0000000..528afc4
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/create_switch.rb
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Real
+        def create_switch(options)
+          body = {
+            "Switch" => {
+              "Name" => options[:name]
+            }
+          }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => 201,
+            :method => 'POST',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/switch",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def create_switch(options)
+          response = Excon::Response.new
+          response.status = 201
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Network
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_router.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_router.rb
new file mode 100644
index 0000000..14a9b37
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_router.rb
@@ -0,0 +1,30 @@
+# coding: utf-8
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Real
+        def delete_router( id )
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'DELETE',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/internet/#{id}"
+          )
+        end
+      end # Real
+
+      class Mock
+        def delete_router( id )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Network
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_switch.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_switch.rb
new file mode 100644
index 0000000..31fc30e
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/delete_switch.rb
@@ -0,0 +1,30 @@
+# coding: utf-8
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Real
+        def delete_switch( id )
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'DELETE',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/switch/#{id}"
+          )
+        end
+      end # Real
+
+      class Mock
+        def delete_switch( id )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Network
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_routers.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_routers.rb
new file mode 100644
index 0000000..bf867e0
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_routers.rb
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Real
+        def list_routers(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/internet"
+          )
+        end
+      end
+
+      class Mock
+        def list_routers(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "Internet"=>[
+              {"Index"=>0,
+               "ID"=>"112600707538",
+               "Switch"=>{
+                 "ID"=>"112600707539",
+                 "Name"=>"router2"
+               }
+            }
+            ],
+            "is_ok"=>true
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_switches.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_switches.rb
new file mode 100644
index 0000000..2ca7209
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/network/list_switches.rb
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+module Fog
+  module Network
+    class SakuraCloud
+      class Real
+        def list_switches(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/switch"
+          )
+        end
+      end
+
+      class Mock
+        def list_switches(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "Switches"=>
+            [{"Index"=>0,
+              "ID"=>"112600703732",
+              "Name"=>"foobar1",
+              "Description"=>"",
+              "ServerCount"=>0,
+              "ApplianceCount"=>0,
+              "HybridConnection"=>nil,
+              "ServiceClass"=>"cloud/switch/default",
+              "CreatedAt"=>"2014-09-05T16:35:41+09:00",
+              "Subnets"=>
+            [{"ID"=>nil,
+              "NetworkAddress"=>nil,
+              "NetworkMaskLen"=>nil,
+              "DefaultRoute"=>nil,
+              "NextHop"=>nil,
+              "StaticRoute"=>nil,
+              "ServiceClass"=>nil,
+              "IPAddresses"=>{"Min"=>nil, "Max"=>nil},
+              "Internet"=>{"ID"=>nil, "Name"=>nil, "BandWidthMbps"=>nil, "ServiceClass"=>nil}}],
+            "IPv6Nets"=>[],
+            "Internet"=>nil,
+            "Bridge"=>nil},
+            {"Index"=>1,
+             "ID"=>"112600703734",
+             "Name"=>"foobar2",
+             "Description"=>"",
+             "ServerCount"=>1,
+             "ApplianceCount"=>0,
+             "HybridConnection"=>nil,
+             "ServiceClass"=>"cloud/switch/default",
+             "CreatedAt"=>"2014-09-05T16:36:13+09:00",
+             "Subnets"=>
+            [{"ID"=>1036,
+              "NetworkAddress"=>"133.242.241.240",
+              "NetworkMaskLen"=>28,
+              "DefaultRoute"=>"133.242.241.241",
+              "NextHop"=>nil,
+              "StaticRoute"=>nil,
+              "ServiceClass"=>"cloud/global-ipaddress-v4/28",
+              "IPAddresses"=>{"Min"=>"133.242.241.244", "Max"=>"133.242.241.254"},
+              "Internet"=>{"ID"=>"112600703733", "Name"=>"hogehoge2", "BandWidthMbps"=>100, "ServiceClass"=>"cloud/internet/router/100m"}}],
+            "IPv6Nets"=>[],
+            "Internet"=>{"ID"=>"112600703733", "Name"=>"hogehoge2", "BandWidthMbps"=>100, "Scope"=>"user", "ServiceClass"=>"cloud/internet/router/100m"},
+            "Bridge"=>nil}]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/associate_ip_to_disk.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/associate_ip_to_disk.rb
new file mode 100644
index 0000000..5552c37
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/associate_ip_to_disk.rb
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def associate_ip_to_disk( disk_id, subnet )
+          body = {
+            "UserIPAddress" => subnet[:ipaddress],
+            "UserSubnet" => {
+              "NetworkMaskLen" => subnet[:networkmasklen],
+              "DefaultRoute" => subnet[:defaultroute]
+            }
+          }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'PUT',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def associate_ip_to_disk( disk_id, subnet )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/attach_disk.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/attach_disk.rb
new file mode 100644
index 0000000..dba26c0
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/attach_disk.rb
@@ -0,0 +1,30 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def attach_disk( disk_id, server_id )
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'PUT',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/to/server/#{server_id.to_s}"
+          )
+        end
+      end # Real
+
+      class Mock
+        def attach_disk( disk_id, server_id )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/configure_disk.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/configure_disk.rb
new file mode 100644
index 0000000..0eaddb1
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/configure_disk.rb
@@ -0,0 +1,35 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def configure_disk( disk_id, sshkey_id )
+          body = {
+            "SSHKey" => {"ID" => sshkey_id.to_s }
+          }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'PUT',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{disk_id.to_s}/config",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def configure_disk( disk_id, sshkey_id )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/create_disk.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/create_disk.rb
new file mode 100644
index 0000000..312895a
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/create_disk.rb
@@ -0,0 +1,43 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def create_disk( name, plan, sourcearchive )
+          body = {
+           "Disk" => {
+             "Name" => name,
+             "SourceArchive" => {
+               "ID" => sourcearchive.to_s
+              },
+              "Plan" => {
+                "ID" => plan.to_i
+              }
+            }
+          }
+
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [202],
+            :method => 'POST',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk",
+            :body => Fog::JSON.encode(body)
+          )
+        end
+      end # Real
+
+      class Mock
+        def create_disk( name, plan, sourcearchive )
+          response = Excon::Response.new
+          response.status = 202
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/delete_disk.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/delete_disk.rb
new file mode 100644
index 0000000..1a3e2dc
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/delete_disk.rb
@@ -0,0 +1,30 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def delete_disk( id )
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :expects  => [200],
+            :method => 'DELETE',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk/#{id}"
+          )
+        end
+      end # Real
+
+      class Mock
+        def delete_disk( id )
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          }
+          response
+        end
+      end
+    end # SakuraCloud
+  end # Volume
+end # Fog
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_archives.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_archives.rb
new file mode 100644
index 0000000..0a3602c
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_archives.rb
@@ -0,0 +1,46 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def list_archives(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/archive"
+          )
+        end
+      end
+
+      class Mock
+        def list_archives(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "Archives" =>
+            [
+            {"Index"=>0,
+              "ID"=>112500514887,
+              "Name"=>"CentOS 5.10 64bit (基本セット)",
+              "Availability"=>"available",
+              "SizeMB"=>20480,
+              "Plan"=>{"ID"=>2, "StorageClass"=>"iscsi1204", "Name"=>"標準プラン"}
+            },
+            {"Index"=>1,
+              "ID"=>112500571575,
+              "Name"=>"CentOS 6.5 64bit (基本セット)",
+              "Availability"=>"available",
+              "SizeMB"=>102400,
+              "Plan"=>{"ID"=>2, "StorageClass"=>"iscsi1204", "Name"=>"標準プラン"}
+            }
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_disks.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_disks.rb
new file mode 100644
index 0000000..42f468e
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_disks.rb
@@ -0,0 +1,50 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def list_disks(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/disk"
+          )
+        end
+      end
+
+      class Mock
+        def list_disks(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "Disks" =>
+            [
+            {"Index" => 0,
+              "ID" =>112600053890,
+              "Name" =>"foober1",
+              "Connection" => "virtio",
+              "Availability"=>"available",
+              "SizeMB"=>20480,
+              "Plan"=> {},
+              "SourceDisk" => nil,
+              "SourceArchive" => {}},
+            {"Index" => 1,
+              "ID" =>112600053891,
+              "Name" =>"foober2",
+              "Connection"  => "virtio",
+              "Availability"=>"available",
+              "SizeMB"=>20480,
+              "Plan"=> {},
+              "SourceDisk" => nil,
+              "SourceArchive" => {}}
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_plans.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_plans.rb
new file mode 100644
index 0000000..d927907
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/requests/volume/list_plans.rb
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+module Fog
+  module Volume
+    class SakuraCloud
+      class Real
+        def list_plans(options = {})
+          request(
+            :headers => {
+              'Authorization' => "Basic #{@auth_encord}"
+            },
+            :method => 'GET',
+            :path => "#{Fog::SakuraCloud::SAKURACLOUD_API_ENDPOINT}/product/disk"
+          )
+        end
+      end
+
+      class Mock
+        def list_plans(options = {})
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+          "DiskPlans" =>
+            [
+            {"Index"=>0,
+              "ID"=>4,
+              "Name"=>"SSDプラン",
+              "Availability"=>"available"},
+            {"Index"=>1,
+              "ID"=>2,
+              "Name"=>"標準プラン",
+              "Availability"=>"available"}
+            ]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/version.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/version.rb
new file mode 100644
index 0000000..a7babba
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/version.rb
@@ -0,0 +1,5 @@
+module Fog
+  module Sakuracloud
+    VERSION = "0.1.1"
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/volume.rb b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/volume.rb
new file mode 100644
index 0000000..9060120
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/lib/ruby/vendor_ruby/fog/sakuracloud/volume.rb
@@ -0,0 +1,89 @@
+require 'fog/sakuracloud'
+require 'fog/volume'
+
+module Fog
+  module Volume
+    class SakuraCloud < Fog::Service
+      requires     :sakuracloud_api_token
+      requires     :sakuracloud_api_token_secret
+
+      recognizes   :sakuracloud_api_url
+
+      model_path 'fog/sakuracloud/models/volume'
+      model      :archive
+      collection :archives
+      model      :plan
+      collection :plans
+      model      :disk
+      collection :disks
+
+      request_path 'fog/sakuracloud/requests/volume'
+      request      :list_disks
+      request      :list_plans
+      request      :create_disk
+      request      :configure_disk
+      request      :associate_ip_to_disk
+      request      :attach_disk
+      request      :delete_disk
+      request      :list_archives
+
+      class Real
+        def initialize(options = {})
+          @auth_encord = Base64.strict_encode64([
+            options[:sakuracloud_api_token],
+            options[:sakuracloud_api_token_secret]
+          ].join(':'))
+          Fog.credentials[:sakuracloud_api_token]        = options[:sakuracloud_api_token]
+          Fog.credentials[:sakuracloud_api_token_secret] = options[:sakuracloud_api_token_secret]
+
+          @sakuracloud_api_url = options[:sakuracloud_api_url] || 'https://secure.sakura.ad.jp'
+
+          @connection = Fog::Core::Connection.new(@sakuracloud_api_url)
+        end
+
+        def request(params)
+          response = parse @connection.request(params)
+          response
+        end
+
+        private
+        def parse(response)
+          return response if response.body.empty?
+          response.body = Fog::JSON.decode(response.body)
+          response
+        end
+      end
+
+      class Mock
+        def self.data
+          @data ||= Hash.new do |hash, key|
+            hash[key] = {
+              :disks => [],
+              :plans => [],
+              :archives => []
+            }
+          end
+        end
+
+        def self.reset
+          @data = nil
+        end
+
+        def initialize(options={})
+          @sakuracloud_api_token        = options[:sakuracloud_api_token]
+          @sakuracloud_api_token_secret = options[:sakuracloud_api_token_secret]
+        end
+
+        def data
+          self.class.data[@sakuracloud_api_token]
+          self.class.data[@sakuracloud_api_token_secret]
+        end
+
+        def reset_data
+          self.class.data.delete(@sakuracloud_api_token)
+          self.class.data.delete(@sakuracloud_api_token_secret)
+        end
+      end
+    end #SakuraCloud
+  end #Volume
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/changelog.Debian.gz b/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/changelog.Debian.gz
new file mode 100644
index 0000000..cbc118b
Binary files /dev/null and b/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/changelog.Debian.gz differ
diff --git a/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/changelog.gz b/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/changelog.gz
new file mode 100644
index 0000000..d51d9b5
Binary files /dev/null and b/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/changelog.gz differ
diff --git a/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/copyright b/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/copyright
new file mode 100644
index 0000000..b5c2991
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/share/doc/ruby-fog-sakuracloud/copyright
@@ -0,0 +1,32 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: fog-sakuracloud
+Source: https://rubygems.org/gems/fog-sakuracloud
+
+Files: *
+Copyright: 2014 sawanoboly
+License: Expat
+
+Files: debian/*
+Copyright: 2014 Rejah Rehim <rejah.rehim at gmail.com>
+License: Expat
+Comment: the Debian packaging is licensed under the same terms as the original package.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/debian/ruby-fog-sakuracloud/usr/share/rubygems-integration/1.9.1/specifications/fog-sakuracloud-0.1.1.gemspec b/debian/ruby-fog-sakuracloud/usr/share/rubygems-integration/1.9.1/specifications/fog-sakuracloud-0.1.1.gemspec
new file mode 100644
index 0000000..b6ad68c
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/share/rubygems-integration/1.9.1/specifications/fog-sakuracloud-0.1.1.gemspec
@@ -0,0 +1,75 @@
+# -*- encoding: utf-8 -*-
+
+Gem::Specification.new do |s|
+  s.name = "fog-sakuracloud"
+  s.version = "0.1.1"
+
+  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+  s.authors = ["sawanoboly"]
+  s.date = "2014-09-26"
+  s.description = "Module for the 'fog' gem to support Sakura no Cloud"
+  s.email = ["sawanoboriyu at higanworks.com"]
+  s.files = [".gitignore", ".gitmodules", ".travis.yml", "CHANGELOG.md", "Gemfile", "Gemfile.edge", "LICENSE.txt", "README.md", "Rakefile", "fog-sakuracloud.gemspec", "gemfiles/Gemfile.1.8.7", "lib/fog/bin/sakuracloud.rb", "lib/fog/sakuracloud.rb", "lib/fog/sakuracloud/compute.rb", "lib/fog/sakuracloud/models/compute/plan.rb", "lib/fog/sakuracloud/models/compute/plans.rb", "lib/fog/sakuracloud/models/compute/server.rb", "lib/fog/sakuracloud/models/compute/servers.rb", "lib/fog/sakuraclou [...]
+  s.homepage = ""
+  s.licenses = ["MIT"]
+  s.require_paths = ["lib"]
+  s.rubygems_version = "1.8.23"
+  s.summary = "Module for the 'fog' gem to support Sakura no Cloud"
+
+  if s.respond_to? :specification_version then
+    s.specification_version = 4
+
+    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
+      s.add_runtime_dependency(%q<fog-core>, [">= 0"])
+      s.add_runtime_dependency(%q<fog-json>, [">= 0"])
+      s.add_development_dependency(%q<bundler>, ["~> 1.5"])
+      s.add_development_dependency(%q<fog>, [">= 0"])
+      s.add_development_dependency(%q<minitest>, [">= 0"])
+      s.add_development_dependency(%q<rake>, [">= 0"])
+      s.add_development_dependency(%q<rbvmomi>, [">= 0"])
+      s.add_development_dependency(%q<yard>, [">= 0"])
+      s.add_development_dependency(%q<thor>, [">= 0"])
+      s.add_development_dependency(%q<rbovirt>, ["= 0.0.24"])
+      s.add_development_dependency(%q<shindo>, ["~> 0.3.4"])
+      s.add_development_dependency(%q<fission>, [">= 0"])
+      s.add_development_dependency(%q<pry>, [">= 0"])
+      s.add_development_dependency(%q<opennebula>, [">= 4.4.0"])
+      s.add_development_dependency(%q<google-api-client>, [">= 0.6.2", "~> 0.6"])
+      s.add_development_dependency(%q<rubocop>, [">= 0"])
+    else
+      s.add_dependency(%q<fog-core>, [">= 0"])
+      s.add_dependency(%q<fog-json>, [">= 0"])
+      s.add_dependency(%q<bundler>, ["~> 1.5"])
+      s.add_dependency(%q<fog>, [">= 0"])
+      s.add_dependency(%q<minitest>, [">= 0"])
+      s.add_dependency(%q<rake>, [">= 0"])
+      s.add_dependency(%q<rbvmomi>, [">= 0"])
+      s.add_dependency(%q<yard>, [">= 0"])
+      s.add_dependency(%q<thor>, [">= 0"])
+      s.add_dependency(%q<rbovirt>, ["= 0.0.24"])
+      s.add_dependency(%q<shindo>, ["~> 0.3.4"])
+      s.add_dependency(%q<fission>, [">= 0"])
+      s.add_dependency(%q<pry>, [">= 0"])
+      s.add_dependency(%q<opennebula>, [">= 4.4.0"])
+      s.add_dependency(%q<google-api-client>, [">= 0.6.2", "~> 0.6"])
+      s.add_dependency(%q<rubocop>, [">= 0"])
+    end
+  else
+    s.add_dependency(%q<fog-core>, [">= 0"])
+    s.add_dependency(%q<fog-json>, [">= 0"])
+    s.add_dependency(%q<bundler>, ["~> 1.5"])
+    s.add_dependency(%q<fog>, [">= 0"])
+    s.add_dependency(%q<minitest>, [">= 0"])
+    s.add_dependency(%q<rake>, [">= 0"])
+    s.add_dependency(%q<rbvmomi>, [">= 0"])
+    s.add_dependency(%q<yard>, [">= 0"])
+    s.add_dependency(%q<thor>, [">= 0"])
+    s.add_dependency(%q<rbovirt>, ["= 0.0.24"])
+    s.add_dependency(%q<shindo>, ["~> 0.3.4"])
+    s.add_dependency(%q<fission>, [">= 0"])
+    s.add_dependency(%q<pry>, [">= 0"])
+    s.add_dependency(%q<opennebula>, [">= 4.4.0"])
+    s.add_dependency(%q<google-api-client>, [">= 0.6.2", "~> 0.6"])
+    s.add_dependency(%q<rubocop>, [">= 0"])
+  end
+end
diff --git a/debian/ruby-fog-sakuracloud/usr/share/rubygems-integration/2.0/specifications/fog-sakuracloud-0.1.1.gemspec b/debian/ruby-fog-sakuracloud/usr/share/rubygems-integration/2.0/specifications/fog-sakuracloud-0.1.1.gemspec
new file mode 100644
index 0000000..b6ad68c
--- /dev/null
+++ b/debian/ruby-fog-sakuracloud/usr/share/rubygems-integration/2.0/specifications/fog-sakuracloud-0.1.1.gemspec
@@ -0,0 +1,75 @@
+# -*- encoding: utf-8 -*-
+
+Gem::Specification.new do |s|
+  s.name = "fog-sakuracloud"
+  s.version = "0.1.1"
+
+  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+  s.authors = ["sawanoboly"]
+  s.date = "2014-09-26"
+  s.description = "Module for the 'fog' gem to support Sakura no Cloud"
+  s.email = ["sawanoboriyu at higanworks.com"]
+  s.files = [".gitignore", ".gitmodules", ".travis.yml", "CHANGELOG.md", "Gemfile", "Gemfile.edge", "LICENSE.txt", "README.md", "Rakefile", "fog-sakuracloud.gemspec", "gemfiles/Gemfile.1.8.7", "lib/fog/bin/sakuracloud.rb", "lib/fog/sakuracloud.rb", "lib/fog/sakuracloud/compute.rb", "lib/fog/sakuracloud/models/compute/plan.rb", "lib/fog/sakuracloud/models/compute/plans.rb", "lib/fog/sakuracloud/models/compute/server.rb", "lib/fog/sakuracloud/models/compute/servers.rb", "lib/fog/sakuraclou [...]
+  s.homepage = ""
+  s.licenses = ["MIT"]
+  s.require_paths = ["lib"]
+  s.rubygems_version = "1.8.23"
+  s.summary = "Module for the 'fog' gem to support Sakura no Cloud"
+
+  if s.respond_to? :specification_version then
+    s.specification_version = 4
+
+    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
+      s.add_runtime_dependency(%q<fog-core>, [">= 0"])
+      s.add_runtime_dependency(%q<fog-json>, [">= 0"])
+      s.add_development_dependency(%q<bundler>, ["~> 1.5"])
+      s.add_development_dependency(%q<fog>, [">= 0"])
+      s.add_development_dependency(%q<minitest>, [">= 0"])
+      s.add_development_dependency(%q<rake>, [">= 0"])
+      s.add_development_dependency(%q<rbvmomi>, [">= 0"])
+      s.add_development_dependency(%q<yard>, [">= 0"])
+      s.add_development_dependency(%q<thor>, [">= 0"])
+      s.add_development_dependency(%q<rbovirt>, ["= 0.0.24"])
+      s.add_development_dependency(%q<shindo>, ["~> 0.3.4"])
+      s.add_development_dependency(%q<fission>, [">= 0"])
+      s.add_development_dependency(%q<pry>, [">= 0"])
+      s.add_development_dependency(%q<opennebula>, [">= 4.4.0"])
+      s.add_development_dependency(%q<google-api-client>, [">= 0.6.2", "~> 0.6"])
+      s.add_development_dependency(%q<rubocop>, [">= 0"])
+    else
+      s.add_dependency(%q<fog-core>, [">= 0"])
+      s.add_dependency(%q<fog-json>, [">= 0"])
+      s.add_dependency(%q<bundler>, ["~> 1.5"])
+      s.add_dependency(%q<fog>, [">= 0"])
+      s.add_dependency(%q<minitest>, [">= 0"])
+      s.add_dependency(%q<rake>, [">= 0"])
+      s.add_dependency(%q<rbvmomi>, [">= 0"])
+      s.add_dependency(%q<yard>, [">= 0"])
+      s.add_dependency(%q<thor>, [">= 0"])
+      s.add_dependency(%q<rbovirt>, ["= 0.0.24"])
+      s.add_dependency(%q<shindo>, ["~> 0.3.4"])
+      s.add_dependency(%q<fission>, [">= 0"])
+      s.add_dependency(%q<pry>, [">= 0"])
+      s.add_dependency(%q<opennebula>, [">= 4.4.0"])
+      s.add_dependency(%q<google-api-client>, [">= 0.6.2", "~> 0.6"])
+      s.add_dependency(%q<rubocop>, [">= 0"])
+    end
+  else
+    s.add_dependency(%q<fog-core>, [">= 0"])
+    s.add_dependency(%q<fog-json>, [">= 0"])
+    s.add_dependency(%q<bundler>, ["~> 1.5"])
+    s.add_dependency(%q<fog>, [">= 0"])
+    s.add_dependency(%q<minitest>, [">= 0"])
+    s.add_dependency(%q<rake>, [">= 0"])
+    s.add_dependency(%q<rbvmomi>, [">= 0"])
+    s.add_dependency(%q<yard>, [">= 0"])
+    s.add_dependency(%q<thor>, [">= 0"])
+    s.add_dependency(%q<rbovirt>, ["= 0.0.24"])
+    s.add_dependency(%q<shindo>, ["~> 0.3.4"])
+    s.add_dependency(%q<fission>, [">= 0"])
+    s.add_dependency(%q<pry>, [">= 0"])
+    s.add_dependency(%q<opennebula>, [">= 4.4.0"])
+    s.add_dependency(%q<google-api-client>, [">= 0.6.2", "~> 0.6"])
+    s.add_dependency(%q<rubocop>, [">= 0"])
+  end
+end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-fog-sakuracloud.git



More information about the Pkg-ruby-extras-commits mailing list