[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