fog-oraclecloud 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/fog/oraclecloud/java.rb +5 -0
- data/lib/fog/oraclecloud/models/java/instance.rb +13 -9
- data/lib/fog/oraclecloud/models/java/server.rb +38 -2
- data/lib/fog/oraclecloud/models/java/servers.rb +8 -0
- data/lib/fog/oraclecloud/requests/java/create_instance.rb +2 -1
- data/lib/fog/oraclecloud/requests/java/get_server.rb +43 -0
- data/lib/fog/oraclecloud/requests/java/list_servers.rb +1 -1
- data/lib/fog/oraclecloud/requests/java/scale_a_node.rb +46 -0
- data/lib/fog/oraclecloud/requests/java/scale_in_a_cluster.rb +36 -0
- data/lib/fog/oraclecloud/requests/java/scale_out_a_cluster.rb +39 -0
- data/lib/fog/oraclecloud/version.rb +1 -1
- data/tests/requests/java_tests.rb +41 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40ac334d431df46adddc51157496f18855c1fffc
|
4
|
+
data.tar.gz: c095bd4efaaa18969bf2cd199b17a50a01b6fd00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40f8369ed1c352d7f01aa58049d3f01cc9c6de10003ce33d561b4b6c85031f52d3cc6e721e6f2c4abc3db175961bfa62a1d5489f8ea3f7e2e26c2fcf7381fb92
|
7
|
+
data.tar.gz: 1e1f14e46d845209d6e9afa6876a7547b55a81dce4539c43e92baebc546b787a140d1b9ab0c55e0554985df4656f237710ddede63d7237ce131df47157676e37
|
data/lib/fog/oraclecloud/java.rb
CHANGED
@@ -16,6 +16,10 @@ module Fog
|
|
16
16
|
request :get_instance
|
17
17
|
request :delete_instance
|
18
18
|
request :list_servers
|
19
|
+
request :get_server
|
20
|
+
request :scale_out_a_cluster
|
21
|
+
request :scale_in_a_cluster
|
22
|
+
request :scale_a_node
|
19
23
|
|
20
24
|
class Real
|
21
25
|
|
@@ -92,6 +96,7 @@ module Fog
|
|
92
96
|
@data ||= {
|
93
97
|
:instances => {},
|
94
98
|
:servers => {},
|
99
|
+
:maintenance_at => {},
|
95
100
|
:deleted_at => {},
|
96
101
|
:created_at => {}
|
97
102
|
}
|
@@ -123,14 +123,6 @@ module Fog
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
|
-
def num_nodes=(value)
|
127
|
-
if value.nil? then value = 1 end
|
128
|
-
if [1, 2, 4, 8].include? value.to_i then
|
129
|
-
attributes[:num_nodes] = value.to_i
|
130
|
-
else
|
131
|
-
raise ArgumentError, "Invalid server count (#{value}). Valid values - 1, 2, 4 or 8"
|
132
|
-
end
|
133
|
-
end
|
134
126
|
|
135
127
|
def shape=(value)
|
136
128
|
if %w(oc3 oc4 oc5 oc6 oc1m oc2m oc3m oc4m).include? value then
|
@@ -140,7 +132,14 @@ module Fog
|
|
140
132
|
end
|
141
133
|
end
|
142
134
|
|
143
|
-
|
135
|
+
def num_nodes=(value)
|
136
|
+
if value.nil? then value = 1 end
|
137
|
+
if value.to_i.is_a? Integer then
|
138
|
+
attributes[:num_nodes] = value.to_i
|
139
|
+
else
|
140
|
+
raise ArgumentError, "Invalid server count (#{value}). Valid values - 1, 2, 4 or 8"
|
141
|
+
end
|
142
|
+
end
|
144
143
|
|
145
144
|
def initialize(attributes={})
|
146
145
|
level ||= 'PAAS'
|
@@ -176,6 +175,11 @@ module Fog
|
|
176
175
|
service.delete_instance(service_name, dba_name, dba_password, :force_delete => force_delete).body
|
177
176
|
end
|
178
177
|
|
178
|
+
def scale_out_a_cluster(cluster_name, create_cluster_if_missing)
|
179
|
+
requires :service_name
|
180
|
+
service.scale_out_a_cluster(service_name, cluster_name, create_cluster_if_missing).body
|
181
|
+
end
|
182
|
+
|
179
183
|
private
|
180
184
|
|
181
185
|
def create
|
@@ -7,19 +7,55 @@ module Fog
|
|
7
7
|
identity :name
|
8
8
|
|
9
9
|
attribute :cluster_name, :aliases=>'clusterName'
|
10
|
+
attribute :job_id, :aliases=>'jobId'
|
10
11
|
attribute :name
|
11
12
|
attribute :shape
|
12
13
|
attribute :node_type, :aliases=>'nodeType'
|
13
|
-
attribute :is_admin, :aliases=>'
|
14
|
+
attribute :is_admin, :aliases=>'isAdmin'
|
14
15
|
attribute :hostname
|
15
16
|
attribute :status
|
16
|
-
attribute :reserved_ip, :aliases=>'
|
17
|
+
attribute :reserved_ip, :aliases=>'reservedIp'
|
18
|
+
attribute :reserved_ipaddress, :aliases=>'reservedIpAddress'
|
19
|
+
attribute :reserved_ipname, :aliases=>'reservedIpName'
|
17
20
|
attribute :storage_allocated, :aliases=>'storageAllocated'
|
18
21
|
attribute :creation_date, :aliases=>'creationDate'
|
22
|
+
attribute :service_name
|
19
23
|
|
20
24
|
def ip_addr
|
21
25
|
reserved_ip.blank? ? hostname : reserved_ip
|
22
26
|
end
|
27
|
+
|
28
|
+
def ready?
|
29
|
+
status == "Ready"
|
30
|
+
end
|
31
|
+
|
32
|
+
def scale(shape)
|
33
|
+
if !%w(oc3 oc4 oc5 oc6 oc1m oc2m oc3m oc4m).include? shape then
|
34
|
+
raise ArgumentError, "Invalid Shape. Valid values - oc3, oc4, oc5, oc6, oc1m, oc2m, oc3m or oc4m"
|
35
|
+
end
|
36
|
+
service.scale_a_node(service_name, name, :shape=>shape)
|
37
|
+
end
|
38
|
+
|
39
|
+
def scale_in_a_cluster
|
40
|
+
requires :service_name, :identity
|
41
|
+
service.scale_in_a_cluster(service_name, identity)
|
42
|
+
end
|
43
|
+
|
44
|
+
def reload
|
45
|
+
requires :identity, :service_name
|
46
|
+
|
47
|
+
data = begin
|
48
|
+
collection.get(service_name, identity)
|
49
|
+
rescue Excon::Errors::SocketError
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
|
53
|
+
return unless data
|
54
|
+
|
55
|
+
new_attributes = data.attributes
|
56
|
+
merge_attributes(new_attributes)
|
57
|
+
self
|
58
|
+
end
|
23
59
|
end
|
24
60
|
end
|
25
61
|
end
|
@@ -9,8 +9,16 @@ module Fog
|
|
9
9
|
|
10
10
|
def all(service_name)
|
11
11
|
data = service.list_servers(service_name).body['servers']
|
12
|
+
data.each { |s| s['service_name'] = service_name }
|
12
13
|
load(data)
|
13
14
|
end
|
15
|
+
|
16
|
+
def get(service_name, server_name)
|
17
|
+
data = service.get_server(service_name, server_name).body['servers'].first
|
18
|
+
data['service_name'] = service_name
|
19
|
+
new(data)
|
20
|
+
end
|
21
|
+
|
14
22
|
end
|
15
23
|
end
|
16
24
|
end
|
@@ -75,7 +75,8 @@ module Fog
|
|
75
75
|
"storageAllocated": 74752,
|
76
76
|
"creationDate": Time.now.strftime('%Y-%b-%dT%H:%M:%S')
|
77
77
|
}
|
78
|
-
self.data[:servers][data['serviceName']] =
|
78
|
+
self.data[:servers][data['serviceName']] = {}
|
79
|
+
self.data[:servers][data['serviceName']][server[:name]] = server
|
79
80
|
|
80
81
|
response.status = 202
|
81
82
|
response
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Fog
|
2
|
+
module OracleCloud
|
3
|
+
class Java
|
4
|
+
class Real
|
5
|
+
|
6
|
+
def get_server(service_name, server_name)
|
7
|
+
response = request(
|
8
|
+
:expects => 200,
|
9
|
+
:method => 'GET',
|
10
|
+
:path => "/paas/service/jcs/api/v1.1/instances/#{@identity_domain}/#{service_name}/servers/#{server_name}"
|
11
|
+
)
|
12
|
+
response
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Mock
|
17
|
+
def get_server(service_name, server_name)
|
18
|
+
response = Excon::Response.new
|
19
|
+
|
20
|
+
if server = self.data[:servers][service_name][server_name]
|
21
|
+
case server[:status]
|
22
|
+
when 'Maintenance'
|
23
|
+
info = self.data[:maintenance_at][server_name]
|
24
|
+
if Time.now - info['time'] >= Fog::Mock.delay
|
25
|
+
self.data[:servers][service_name][server_name][:status] = 'Ready'
|
26
|
+
self.data[:servers][service_name][server_name][info['attribute']] = info['value']
|
27
|
+
self.data[:maintenance_at].delete(server_name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
response.status = 200
|
32
|
+
response.body = {
|
33
|
+
'servers' => self.data[:servers][service_name].values
|
34
|
+
}
|
35
|
+
response
|
36
|
+
else
|
37
|
+
raise Fog::OracleCloud::Java::NotFound.new("Java Server #{name} does not exist");
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module OracleCloud
|
3
|
+
class Java
|
4
|
+
class Real
|
5
|
+
|
6
|
+
def scale_a_node(service_name, server_name, options={})
|
7
|
+
|
8
|
+
path = "/paas/service/jcs/api/v1.1/instances/#{@identity_domain}/#{service_name}/#{server_name}"
|
9
|
+
body_data = {
|
10
|
+
'shape' => options[:shape],
|
11
|
+
'additionalStorage' => options[:additionalStorage],
|
12
|
+
'ignoreManagedServerHeapError' => options[:ignoreManagedServerHeapError],
|
13
|
+
'scalingVolume' => options[:scalingVolume]
|
14
|
+
}
|
15
|
+
body_data = body_data.reject {|key, value| value.nil?}
|
16
|
+
|
17
|
+
response = request(
|
18
|
+
:expects => 202,
|
19
|
+
:method => 'PUT',
|
20
|
+
:path => path,
|
21
|
+
:body => Fog::JSON.encode(body_data)
|
22
|
+
)
|
23
|
+
response
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class Mock
|
28
|
+
def scale_a_node(service_name, server_name, options={})
|
29
|
+
response = Excon::Response.new
|
30
|
+
|
31
|
+
response.status = 202
|
32
|
+
self.data[:servers][service_name][server_name][:status] = 'Ready'
|
33
|
+
self.data[:servers][service_name][server_name][:shape] = options[:shape]
|
34
|
+
response.body = {
|
35
|
+
"status" => "New",
|
36
|
+
"details" => {
|
37
|
+
"message" => "scaleup.job.submitted",
|
38
|
+
"jobId" => rand(10000).to_s
|
39
|
+
}
|
40
|
+
}
|
41
|
+
response
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Fog
|
2
|
+
module OracleCloud
|
3
|
+
class Java
|
4
|
+
class Real
|
5
|
+
|
6
|
+
def scale_in_a_cluster(service_name, server_name)
|
7
|
+
|
8
|
+
path = "/paas/service/jcs/api/v1.1/instances/#{@identity_domain}/#{service_name}/servers/#{server_name}"
|
9
|
+
|
10
|
+
response = request(
|
11
|
+
:expects => 202,
|
12
|
+
:method => 'DELETE',
|
13
|
+
:path => path
|
14
|
+
)
|
15
|
+
response
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class Mock
|
20
|
+
def scale_in_a_cluster(service_name, server_name)
|
21
|
+
response = Excon::Response.new
|
22
|
+
|
23
|
+
response.status = 202
|
24
|
+
response.body = {
|
25
|
+
"status" => "New",
|
26
|
+
"details" => {
|
27
|
+
"message" => "JAAS-SCALING-044: Scaling in Job (ID: 20) server name [ExampleI_server_4] submitted for service [ExampleInstance]",
|
28
|
+
"jobId" => "20"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
response
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Fog
|
2
|
+
module OracleCloud
|
3
|
+
class Java
|
4
|
+
class Real
|
5
|
+
|
6
|
+
def scale_out_a_cluster(service_name, cluster_name, create_cluster_if_missing)
|
7
|
+
|
8
|
+
path = "/paas/service/jcs/api/v1.1/instances/#{@identity_domain}/#{service_name}/servers/#{cluster_name}"
|
9
|
+
if create_cluster_if_missing then
|
10
|
+
path = "#{path}?createClusterIfMissing=true"
|
11
|
+
end
|
12
|
+
|
13
|
+
response = request(
|
14
|
+
:expects => 202,
|
15
|
+
:method => 'POST',
|
16
|
+
:path => path
|
17
|
+
)
|
18
|
+
response
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Mock
|
23
|
+
def scale_out_a_cluster(service_name, cluster_name, create_cluster_if_missing)
|
24
|
+
response = Excon::Response.new
|
25
|
+
|
26
|
+
response.status = 202
|
27
|
+
response.body = {
|
28
|
+
"status" => "New",
|
29
|
+
"details" => {
|
30
|
+
"message" => "JASS-SCALING-037: Scale out Job (ID: 17) for service [ExampleInstance] in cluster [ExampleI_cluster] submitted",
|
31
|
+
"jobId" => "17"
|
32
|
+
}
|
33
|
+
}
|
34
|
+
response
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -56,6 +56,45 @@ Shindo.tests('Fog::Java[oraclecloud] | java requests', 'java') do
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
tests('test jcs scaling ') do
|
60
|
+
scale_out_server_name = 'TestWLS_server_1'
|
61
|
+
test_service_name = 'TestWLS'
|
62
|
+
|
63
|
+
test "scale out a cluster" do
|
64
|
+
instance = Fog::OracleCloud[:java].instances.get(test_service_name)
|
65
|
+
instance.scale_out_a_cluster('testcluster',false)
|
66
|
+
Fog::OracleCloud[:java].instances.get(test_service_name).wait_for(1800) { ready? }
|
67
|
+
Fog::OracleCloud[:java].instances.get(test_service_name).ready?
|
68
|
+
end
|
69
|
+
|
70
|
+
test('get server') do
|
71
|
+
instance = Fog::OracleCloud[:java].instances.get(test_service_name)
|
72
|
+
instance.ready?
|
73
|
+
server = instance.servers.get(test_service_name,scale_out_server_name)
|
74
|
+
server.ready?
|
75
|
+
end
|
76
|
+
|
77
|
+
test "scale a node" do
|
78
|
+
instance = Fog::OracleCloud[:java].instances.get(test_service_name)
|
79
|
+
instance.ready?
|
80
|
+
server = instance.servers.get(test_service_name,scale_out_server_name)
|
81
|
+
server.scale('oc4')
|
82
|
+
Fog::OracleCloud[:java].instances.get(test_service_name).wait_for(1800) { ready? }
|
83
|
+
server = instance.servers.get(test_service_name,scale_out_server_name)
|
84
|
+
server.ready?
|
85
|
+
server.shape == 'oc4'
|
86
|
+
end
|
87
|
+
|
88
|
+
test "scale in a cluster" do
|
89
|
+
instance = Fog::OracleCloud[:java].instances.get(test_service_name)
|
90
|
+
instance.ready?
|
91
|
+
instance.servers.get(test_service_name,scale_out_server_name).scale_in_a_cluster
|
92
|
+
Fog::OracleCloud[:java].instances.get(test_service_name).wait_for(1800) { ready? }
|
93
|
+
Fog::OracleCloud[:java].instances.get(test_service_name).ready?
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
59
98
|
tests("#java-delete", "create") do
|
60
99
|
instance = Fog::OracleCloud[:java].instances.get('TestWLS')
|
61
100
|
instance.dba_name = 'Admin',
|
@@ -66,4 +105,6 @@ Shindo.tests('Fog::Java[oraclecloud] | java requests', 'java') do
|
|
66
105
|
instance.wait_for { stopped? }
|
67
106
|
end
|
68
107
|
end
|
108
|
+
|
109
|
+
|
69
110
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-oraclecloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Nation
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -245,6 +245,9 @@ files:
|
|
245
245
|
- lib/fog/oraclecloud/requests/java/get_server.rb
|
246
246
|
- lib/fog/oraclecloud/requests/java/list_instances.rb
|
247
247
|
- lib/fog/oraclecloud/requests/java/list_servers.rb
|
248
|
+
- lib/fog/oraclecloud/requests/java/scale_a_node.rb
|
249
|
+
- lib/fog/oraclecloud/requests/java/scale_in_a_cluster.rb
|
250
|
+
- lib/fog/oraclecloud/requests/java/scale_out_a_cluster.rb
|
248
251
|
- lib/fog/oraclecloud/requests/soa/create_instance.rb
|
249
252
|
- lib/fog/oraclecloud/requests/soa/delete_instance.rb
|
250
253
|
- lib/fog/oraclecloud/requests/soa/get_instance.rb
|