saklient 0.0.2.4 → 0.0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9c0814de498b9ba0c287cf796ec4db49262344d
4
- data.tar.gz: 38ba8a9e76602f1d7693544bde3050def0fc7072
3
+ metadata.gz: 950d3224ffc0b0dcd5b574e28ac96bde7fc96943
4
+ data.tar.gz: d5b980c1ea8b7c78868ccb8b04963b5d2cc1db57
5
5
  SHA512:
6
- metadata.gz: c8863f52fd5d859c29ab80eb2ab63e5e044f401f9c33fc16d0547e7c38a22d8e61e839275589c37b1f45547b080d5396e14160e116099d84484b8d85e1a82027
7
- data.tar.gz: 069c1c54f95521e23e1a075a232ba8b1d4de1aa05d725484ef92b038d6ed53a86a5db470a2c38a34b9906685161cc2bf820c2a93ae7c6800fcaa3aad3b6e3d5c
6
+ metadata.gz: 535fa1ff83ba2cf15754fda12ea80a58f4189b8dc1d05e0891e9f24088976d4b5eec99ce5fbfdb6ad4423c0141bb39761df3f233e1b1aa6fd1d3934f57a03bdc
7
+ data.tar.gz: 4b3a4ef1a50ffe6c8173336d8f7537c978bbff1441014914e58df9d5e5e4f9fb8adb1ed1df209e0ea1e9a99bd2c79bc72b46e34e675dab5d1b6db7fe7d510d7e
@@ -73,7 +73,7 @@ module Saklient
73
73
 
74
74
  extra_headers = {
75
75
  'Content-Type' => 'application/x-www-form-urlencoded',
76
- 'User-Agent' => 'saklient.ruby ver-0.0.2.4 rev-a581b28f8ddd2cd75cb32f710d33d3d650bba044',
76
+ 'User-Agent' => 'saklient.ruby ver-0.0.2.5 rev-a581b28f8ddd2cd75cb32f710d33d3d650bba044',
77
77
  'X-Requested-With' => 'XMLHttpRequest',
78
78
  'X-Sakura-HTTP-Method' => method,
79
79
  'X-Sakura-Error-Level' => 'warning',
@@ -3,6 +3,7 @@
3
3
  require_relative '../../errors/saklient_exception'
4
4
  require_relative '../client'
5
5
  require_relative 'resource'
6
+ require_relative 'swytch'
6
7
 
7
8
  module Saklient
8
9
  module Cloud
@@ -95,6 +96,16 @@ module Saklient
95
96
  api_deserialize(obj, wrapped)
96
97
  end
97
98
 
99
+ # スイッチに接続します.
100
+ #
101
+ # @param [Swytch] swytch 接続先のスイッチ.
102
+ # @return [Iface] this
103
+ def connect_to_swytch(swytch)
104
+ Saklient::Util::validate_type(swytch, 'Saklient::Cloud::Resources::Swytch')
105
+ @_client.request('PUT', _api_path + '/' + Saklient::Util::url_encode(_id) + '/to/switch/' + Saklient::Util::url_encode(swytch._id))
106
+ return reload
107
+ end
108
+
98
109
  # 共有セグメントに接続します.
99
110
  #
100
111
  # @return [Iface] this
@@ -103,6 +114,14 @@ module Saklient
103
114
  return reload
104
115
  end
105
116
 
117
+ # スイッチから切断します.
118
+ #
119
+ # @return [Iface] this
120
+ def disconnect_from_swytch
121
+ @_client.request('DELETE', _api_path + '/' + Saklient::Util::url_encode(_id) + '/to/switch')
122
+ return reload
123
+ end
124
+
106
125
  protected
107
126
 
108
127
  # @return [bool]
@@ -175,7 +175,7 @@ module Saklient
175
175
 
176
176
  # このルータ+スイッチの帯域プランを変更します.
177
177
  #
178
- # @param [Fixnum] bandWidthMbps
178
+ # @param [Fixnum] bandWidthMbps 帯域幅(api.product.router.find() から取得できる {RouterPlan} の bandWidthMbps を指定).
179
179
  # @return [Swytch] this
180
180
  def change_plan(bandWidthMbps)
181
181
  Saklient::Util::validate_type(bandWidthMbps, 'Fixnum')
@@ -186,6 +186,7 @@ module Saklient
186
186
 
187
187
  # このルータ+スイッチをブリッジに接続します.
188
188
  #
189
+ # @param swytch 接続先のブリッジ.
189
190
  # @param [Bridge] bridge
190
191
  # @return [Swytch] this
191
192
  def connect_to_bridge(bridge)
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: UTF-8 -*-
2
2
 
3
3
  module Saklient
4
- VERSION = "0.0.2.4"
4
+ VERSION = "0.0.2.5"
5
5
  end
@@ -0,0 +1,99 @@
1
+ $: << File.dirname(__dir__) + '/lib'
2
+ require 'saklient/cloud/api'
3
+ require 'date'
4
+ require 'SecureRandom'
5
+ require 'ipaddr'
6
+
7
+ describe 'Swytch' do
8
+
9
+
10
+
11
+ before do
12
+
13
+ # load config file
14
+ root = File.dirname(__dir__)
15
+ test_ok_file = root + '/testok'
16
+ expect(File).to exist(test_ok_file)
17
+ config_file = root + '/config.sh'
18
+ expect(File).to exist(config_file)
19
+ @config = {}
20
+ fh = open(config_file)
21
+ fh.each {|line|
22
+ if /^\s*export\s+(\w+)\s*=\s*(.+?)\s*$/.match(line) then
23
+ key = $1
24
+ value = $2
25
+ @config[key.to_sym] = value.gsub(/'([^']*)'|"([^"]*)"|\\(.)|(.)/) {|m|
26
+ $1 || $2 || $3 || $4
27
+ }
28
+ end
29
+ }
30
+ fh.close
31
+ expect(@config[:SACLOUD_TOKEN]).not_to be_empty #'SACLOUD_TOKEN must be defined in config.sh'
32
+ expect(@config[:SACLOUD_SECRET]).not_to be_empty #'SACLOUD_SECRET must be defined in config.sh'
33
+ #expect(@config[:SACLOUD_ZONE]).not_to be_empty #'SACLOUD_ZONE must be defined in config.sh'
34
+
35
+ # authorize
36
+ @api = Saklient::Cloud::API::authorize(@config[:SACLOUD_TOKEN], @config[:SACLOUD_SECRET])
37
+ @api = @api.in_zone(@config[:SACLOUD_ZONE]) if @config[:SACLOUD_ZONE]
38
+ expect(@api).to be_an_instance_of Saklient::Cloud::API
39
+
40
+ end
41
+
42
+
43
+
44
+ it 'should be CRUDed' do
45
+ name = '!ruby_rspec-' + DateTime.now.strftime('%Y%m%d_%H%M%S') + '-' + SecureRandom.uuid[0, 8]
46
+ description = 'This instance was created by saklient.ruby rspec'
47
+
48
+ #
49
+ puts 'ルータ+スイッチを作成しています...'
50
+ swytch = @api.swytch.create
51
+ swytch.name = name
52
+ swytch.description = description
53
+ swytch.save
54
+ expect(swytch).to be_an_instance_of Saklient::Cloud::Resources::Swytch
55
+
56
+ #
57
+ puts 'サーバを作成しています...'
58
+ server = @api.server.create
59
+ expect(server).to be_an_instance_of Saklient::Cloud::Resources::Server
60
+ server.name = name
61
+ server.description = description
62
+ server.plan = @api.product.server.get_by_spec(1, 1)
63
+ server.save
64
+ expect(server.id.to_i).to be > 0
65
+
66
+ #
67
+ puts 'インタフェースを増設しています...'
68
+ iface = server.add_iface()
69
+ expect(iface).to be_an_instance_of Saklient::Cloud::Resources::Iface
70
+ expect(iface.id.to_i).to be > 0
71
+
72
+ #
73
+ puts 'インタフェースをスイッチに接続しています...'
74
+ iface.connect_to_swytch(swytch)
75
+
76
+ #
77
+ puts 'インタフェースをスイッチから切断しています...'
78
+ iface.disconnect_from_swytch
79
+
80
+ #
81
+ puts 'サーバを削除しています...'
82
+ server.destroy
83
+
84
+ #
85
+ puts 'スイッチを削除しています...'
86
+ swytch.destroy
87
+
88
+ end
89
+
90
+
91
+
92
+ after do
93
+ @config = nil
94
+ @api = nil
95
+ end
96
+
97
+
98
+
99
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saklient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.4
4
+ version: 0.0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - townewgokgok
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-15 00:00:00.000000000 Z
11
+ date: 2014-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -261,6 +261,7 @@ files:
261
261
  - spec/loadbalancer_spec.rb
262
262
  - spec/router_spec.rb
263
263
  - spec/server_spec.rb
264
+ - spec/swytch_spec.rb
264
265
  - spec/util_spec.rb
265
266
  - test-sshkey.txt
266
267
  homepage: http://sakura-internet.github.io/saklient.doc/
@@ -297,5 +298,5 @@ test_files:
297
298
  - spec/loadbalancer_spec.rb
298
299
  - spec/router_spec.rb
299
300
  - spec/server_spec.rb
301
+ - spec/swytch_spec.rb
300
302
  - spec/util_spec.rb
301
- has_rdoc: