didata_cloud_sdk 0.3.3 → 0.3.4

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: 09bfcaf3290960d982e1ce9be7491bcad842eb37
4
- data.tar.gz: 253cb39dd854f027b2cdddf031998dc8911a340c
3
+ metadata.gz: bea28e11f44f4c085361fd7a23731036fe57c38d
4
+ data.tar.gz: faf096072e454843070199f7ed9acb60d585718d
5
5
  SHA512:
6
- metadata.gz: ea2654971386c74802c6ce37fa38591399d50cdfdb93a4e992ff79a08dfe02eb8e52bbb2c04fdbe8e3f03b847f8bb4338c8396b4d1d1e09373318d08911f7c15
7
- data.tar.gz: d0d71103156edfc84f510a9fb0063c23588b49675ef7217c132618504c4e7b18cf4a6fcd8f6f0fae5bfca61e9c01400a0fdac6b83d51e94f2a6187a292318960
6
+ metadata.gz: 8e3dd238b33ddef888105e77fb5924a7619f0e898beb4ac58138a686fe2619d8a1dce24141b9a729f462304f36ad137a435cad6f84a92e7fcaa4f35a5dbe01b2
7
+ data.tar.gz: e7854665565e3a0b294a3eb9342ab83c47a288f80f2c87a877fff8f6a274ce4ffc918d39bd1172f37734d581fac61825d459e4994e7679b56df09b6b82c5a3d4
data/README.md CHANGED
@@ -22,7 +22,7 @@ require 'ddcloud.rb'
22
22
 
23
23
  ```
24
24
  require "ddcloud"
25
- api_base = "https://cloudapi.nttamerica.com/oec/0.9"
25
+ api_base = DDcloud::Client::API_URL[:eu]
26
26
  dev_org_id = 'my-super-secret-org-numbersandletters'
27
27
  dev_user = 'me'
28
28
  dev_password = 'very secret'
@@ -35,6 +35,9 @@ pp c.server.show_with_disks(server.network_id, server.id)
35
35
 
36
36
  ### Examples
37
37
 
38
+ See ```/examples``` for more examples.
39
+
40
+
38
41
  ```
39
42
  #create a new network
40
43
  c.network.create("network-name", "description", "EU1")
@@ -9,6 +9,8 @@ require "./credentials.rb"
9
9
  require "./util.rb"
10
10
 
11
11
 
12
- c = DDcloud::Client.new @credentials[:url], @credentials[:org_id], @credentials[:user], @credentials[:pass]
12
+ c = DDcloud::Client.new DDcloud::Client::API_URL[:eu], @credentials[:org_id], @credentials[:user], @credentials[:pass]
13
+
14
+ puts DDcloud::Client::API_URL[:eu]
13
15
 
14
16
  pp c.network.list
@@ -8,6 +8,9 @@ require "optparse"
8
8
  require "./credentials.rb"
9
9
 
10
10
  def diff_id_hashes(h1, h2)
11
+ puts "in diff"
12
+ pp h1
13
+ pp h2
11
14
  a1 = h1.map { |e| e[:id] }
12
15
  a2 = h2.map { |e| e[:id] }
13
16
  a2 - a1
@@ -15,7 +18,7 @@ end
15
18
 
16
19
  def block_until_server_normal(c, name)
17
20
  while true do
18
- if c.server.list(name: name)[:state] == "NORMAL"
21
+ if((not c.server.list(name: name).empty?) && (c.server.list(name: name)[:state] == "NORMAL"))
19
22
  break
20
23
  end
21
24
  sleep 1
@@ -60,7 +63,7 @@ c = DDcloud::Client.new @credentials[:url], @credentials[:org_id], @credentials[
60
63
  c.network.create options[:name], "Automatically generated network"
61
64
 
62
65
  network_id = c.network.show_by_name(options[:name])[:id]
63
- image_id = "d4ed6d40-e2f0-11e2-84e5-180373fb68df" #default image id
66
+ image_id = DDcloud::Client::IMAGES[:ubuntu_14_04] #image id for ubuntu 14.04
64
67
 
65
68
 
66
69
  before = c.server.list(network_id: network_id)
@@ -0,0 +1,87 @@
1
+
2
+
3
+
4
+ require "ddcloud"
5
+ require "pp"
6
+ require "optparse"
7
+
8
+ require "./credentials.rb"
9
+
10
+ def diff_id_hashes(h1, h2)
11
+ a1 = h1.map { |e| e[:id] }
12
+ a2 = h2.map { |e| e[:id] }
13
+ a2 - a1
14
+ end
15
+
16
+ def block_until_server_normal(c, name)
17
+ while true do
18
+ if c.server.list(name: name)[:state] == "NORMAL"
19
+ break
20
+ end
21
+ sleep 1
22
+ end
23
+ end
24
+
25
+ def log(string)
26
+ time = DateTime.now.strftime("%H:%M")
27
+ puts "#{time} -> #{string}"
28
+ end
29
+
30
+ options = {}
31
+
32
+ OptionParser.new do |opts|
33
+ opts.banner = "Usage: example.rb [options]"
34
+
35
+ opts.on("-n", "--number NUMBER", "Number of hosts") do |n|
36
+ options[:number] = n.to_i
37
+ end
38
+ opts.on("-a", "--network_name name", "Name of the network to be created") do |n|
39
+ options[:name] = n
40
+ end
41
+ opts.on_tail("-h", "--help", "Show this message") do
42
+ puts opts
43
+ exit
44
+ end
45
+ end.parse!
46
+
47
+ if not options[:number]
48
+ puts "Please specify the number of machines to create with -n"
49
+ puts "For help, use -h"
50
+ exit
51
+ end
52
+ if not options[:name]
53
+ puts "Please specify the network name with -a"
54
+ puts "For help, use -h"
55
+ exit
56
+ end
57
+
58
+ c = DDcloud::Client.new @credentials[:url], @credentials[:org_id], @credentials[:user], @credentials[:pass]
59
+
60
+ c.network.create options[:name], "Automatically generated network"
61
+
62
+ network_id = c.network.show_by_name(options[:name])[:id]
63
+ image_id = "d4ed6d40-e2f0-11e2-84e5-180373fb68df" #default image id
64
+
65
+
66
+ before = c.server.list(network_id: network_id)
67
+ c.server.create "jumphost", "Automatically generated server", network_id, image_id
68
+ (1...options[:number]).each do |n|
69
+ c.server.create "autoserver-#{n+1}", "Automatically generated server", network_id, image_id
70
+ end
71
+ (1...options[:number]).each do |n|
72
+ block_until_server_normal c, "autoserver-#{n+1}"
73
+ log "autoserver-#{n+1} started"
74
+ end
75
+ after = c.server.list(network_id: network_id)
76
+ created_servers = diff_id_hashes(before, after)
77
+ log "Created: #{created_servers.to_s}"
78
+
79
+ #create acl rule
80
+ c.network.aclrule_create(network_id, "allow ssh", 112, true, "TCP", 22, true)
81
+
82
+ #nat the servers so we can make our changes
83
+ server = created_servers[0]
84
+ details = after.select { |a| a["id"] == server }
85
+ details = details[0]
86
+ log details.to_s
87
+ c.network.natrule_create(network_id, details[:name], details[:private_ip])
@@ -0,0 +1,69 @@
1
+
2
+ require "ddcloud"
3
+ require "pp"
4
+ require "optparse"
5
+
6
+ require "./credentials.rb"
7
+
8
+ def diff_id_hashes(h1, h2)
9
+ a1 = h1.map { |e| e[:id] }
10
+ a2 = h2.map { |e| e[:id] }
11
+ a2 - a1
12
+ end
13
+
14
+ def block_until_server_normal(c, name)
15
+ while true do
16
+ if c.server.list(name: name)[:state] == "NORMAL"
17
+ break
18
+ end
19
+ sleep 1
20
+ end
21
+ end
22
+
23
+ def log(string)
24
+ time = DateTime.now.strftime("%H:%M")
25
+ puts "#{time} -> #{string}"
26
+ end
27
+
28
+
29
+
30
+ c = DDcloud::Client.new @credentials[:url], @credentials[:org_id], @credentials[:user], @credentials[:pass]
31
+
32
+ network_id = "8a55ac56-2821-11e1-ada2-180373fb68df"
33
+ farm_id = "8b4eaa29-b290-4771-96f0-b9c79596bc44"
34
+
35
+
36
+ log "server farm list"
37
+ pp c.vip.server_farm_list network_id
38
+
39
+ log "server farm details"
40
+ real_servers = c.vip.server_farm_details network_id, farm_id
41
+
42
+ pp real_servers
43
+ log "server farm real server details"
44
+ pp real_servers[:real_server]
45
+ if real_servers[:real_server].length > 1 && real_servers[:real_server].kind_of?(Array)
46
+ host = real_servers[:real_server][0]
47
+
48
+ list_real_servers = c.vip.real_servers_list network_id
49
+
50
+ server_id = ""
51
+ real_server_id = host[:id]
52
+ pp real_server_id
53
+ list_real_servers.each do |real_server|
54
+ if real_server[:id] == real_server_id
55
+ server_id = real_server[:server_id]
56
+ end
57
+ end
58
+
59
+ pp server_id
60
+
61
+ puts "----removing from the server farm----"
62
+ pp c.vip.real_server_from_server_farm network_id, farm_id, real_server_id, 80
63
+ puts "----shutting down server----"
64
+ pp c.server.shutdown server_id
65
+ else
66
+ log "no more servers to remove"
67
+ end
68
+
69
+
@@ -0,0 +1,73 @@
1
+
2
+ require "ddcloud"
3
+ require "pp"
4
+ require "optparse"
5
+
6
+ require "./credentials.rb"
7
+
8
+ def diff_id_hashes(h1, h2)
9
+ a1 = h1.map { |e| e[:id] }
10
+ a2 = h2.map { |e| e[:id] }
11
+ a2 - a1
12
+ end
13
+
14
+ def block_until_server_normal(c, name, network_id)
15
+ while true do
16
+ if c.server.list(name: name, network_id: network_id)[:state] == "NORMAL"
17
+ break
18
+ end
19
+ sleep 1
20
+ end
21
+ end
22
+
23
+ def log(string)
24
+ time = DateTime.now.strftime("%H:%M")
25
+ puts "#{time} -> #{string}"
26
+ end
27
+
28
+
29
+
30
+ c = DDcloud::Client.new @credentials[:url], @credentials[:org_id], @credentials[:user], @credentials[:pass]
31
+
32
+ network_id = "8a55ac56-2821-11e1-ada2-180373fb68df"
33
+ farm_id = "8b4eaa29-b290-4771-96f0-b9c79596bc44"
34
+
35
+
36
+ pp c.vip.server_farm_list network_id
37
+
38
+ real_servers = c.vip.server_farm_details network_id, farm_id
39
+
40
+ pp real_servers
41
+ pp real_servers[:real_server]
42
+ pp real_servers[:real_server].length
43
+ if real_servers[:real_server].length < 5 || (not real_servers[:real_server].kind_of?(Array))
44
+
45
+ list_real_servers = c.vip.real_servers_list network_id
46
+
47
+ server_id = ""
48
+ real_server_id = ""
49
+ pp real_server_id
50
+ list_real_servers.each do |real_server|
51
+ pp real_server
52
+ real_server_id = real_server[:id]
53
+ server = c.server.show( real_server[:server_id])
54
+ if server[:is_started] == "false"
55
+ #start the server
56
+ log "---- starting server #{server[:name]} ----"
57
+ pp c.server.start server[:id]
58
+ block_until_server_normal(c, server[:name], network_id)
59
+
60
+ log "---- adding server to server farm ----"
61
+ pp c.vip.real_server_to_server_farm network_id, farm_id, real_server_id, 80
62
+
63
+ log("done")
64
+
65
+ exit
66
+ end
67
+ end
68
+
69
+ else
70
+ log "We don't have any more servers in our farm"
71
+ end
72
+
73
+
@@ -16,6 +16,8 @@ module DDcloud
16
16
  attr_accessor :silent, :colors # log setting
17
17
  attr_accessor :page_size, :page_number, :order_by, :filter_with
18
18
 
19
+ IMAGES = {suse_ent_64: "d4edfe22-e2f0-11e2-84e5-180373fb68df", ubuntu_14_04: "abef3a94-3361-4ce4-a937-5e587042586a", ubuntu_12_04: "d4ed6d40-e2f0-11e2-84e5-180373fb68df", ubuntu_10_04: "d4edba02-e2f0-11e2-84e5-180373fb68df"}
20
+ API_URL = {na: "https://api-na.dimensiondata.com/oec/0.9", eu: "https://api-eu.dimensiondata.com/oec/0.9", au: "https://api-au.dimensiondata.com/oec/0.9", mea: "https://api-mea.dimensiondata.com/oec/0.9", ap: "https://api-ap.dimensiondata.com/oec/0.9"}
19
21
 
20
22
 
21
23
  def initialize(api_base, org_id, username, password, default_password="verysecurepassword", datacenter="EU1", colors = true, silent = true)
@@ -1,5 +1,5 @@
1
1
  module DDcloud
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
 
4
4
  {"xmlns:ns3"=>"http://oec.api.opsource.net/schemas/organization",
5
5
  "xmlns:ns4"=>"http://oec.api.opsource.net/schemas/network",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: didata_cloud_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juozas Gaigalas
@@ -10,90 +10,90 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-12 00:00:00.000000000 Z
13
+ date: 2015-04-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: i18n
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - '>='
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - '>='
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: activesupport
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - '>='
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - '>='
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: typhoeus
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - '>='
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - '>='
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: xml-simple
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: hashie
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - '>='
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - '>='
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: colorize
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - '>='
96
+ - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  description: SDK to access Dimension Data Cloud api'
@@ -105,7 +105,7 @@ executables: []
105
105
  extensions: []
106
106
  extra_rdoc_files: []
107
107
  files:
108
- - .gitignore
108
+ - ".gitignore"
109
109
  - Gemfile
110
110
  - LICENSE
111
111
  - README.md
@@ -121,7 +121,10 @@ files:
121
121
  - examples/list_networks.rb
122
122
  - examples/list_servers_in_network.rb
123
123
  - examples/make_servers_in_new_network.rb
124
+ - examples/make_servers_in_new_network2.rb
125
+ - examples/remove_server_from_server_farm.rb
124
126
  - examples/start_all_servers_in_network.rb
127
+ - examples/start_and_add_server_to_server_farm.rb
125
128
  - examples/util.rb
126
129
  - lib/ddcloud.rb
127
130
  - lib/ddcloud/api/account.rb
@@ -148,17 +151,17 @@ require_paths:
148
151
  - lib
149
152
  required_ruby_version: !ruby/object:Gem::Requirement
150
153
  requirements:
151
- - - '>='
154
+ - - ">="
152
155
  - !ruby/object:Gem::Version
153
156
  version: '0'
154
157
  required_rubygems_version: !ruby/object:Gem::Requirement
155
158
  requirements:
156
- - - '>='
159
+ - - ">="
157
160
  - !ruby/object:Gem::Version
158
161
  version: '0'
159
162
  requirements: []
160
163
  rubyforge_project: ddcloud
161
- rubygems_version: 2.4.5
164
+ rubygems_version: 2.2.2
162
165
  signing_key:
163
166
  specification_version: 4
164
167
  summary: Dimension Data REST API client gem