fog-oraclecloud 0.1.13 → 0.1.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fog-oracle.gemspec +3 -2
- data/lib/fog/oraclecloud/compute.rb +28 -0
- data/lib/fog/oraclecloud/models/compute/ip_network.rb +51 -0
- data/lib/fog/oraclecloud/models/compute/ip_networks.rb +22 -0
- data/lib/fog/oraclecloud/models/compute/ip_reservation.rb +54 -0
- data/lib/fog/oraclecloud/models/compute/ip_reservations.rb +22 -0
- data/lib/fog/oraclecloud/models/compute/storage_attachment.rb +41 -0
- data/lib/fog/oraclecloud/models/compute/storage_attachments.rb +22 -0
- data/lib/fog/oraclecloud/models/java/access_rule.rb +63 -0
- data/lib/fog/oraclecloud/models/java/access_rules.rb +32 -0
- data/lib/fog/oraclecloud/models/monitoring/metrics_report.rb +12 -0
- data/lib/fog/oraclecloud/models/monitoring/metrics_reports.rb +24 -0
- data/lib/fog/oraclecloud/monitoring.rb +104 -0
- data/lib/fog/oraclecloud/requests/compute/create_ip_network.rb +46 -0
- data/lib/fog/oraclecloud/requests/compute/create_ip_reservation.rb +48 -0
- data/lib/fog/oraclecloud/requests/compute/create_storage_attachment.rb +55 -0
- data/lib/fog/oraclecloud/requests/compute/delete_ip_network.rb +29 -0
- data/lib/fog/oraclecloud/requests/compute/delete_ip_reservation.rb +29 -0
- data/lib/fog/oraclecloud/requests/compute/get_ip_network.rb +36 -0
- data/lib/fog/oraclecloud/requests/compute/get_ip_reservation.rb +36 -0
- data/lib/fog/oraclecloud/requests/compute/get_storage_attachment.rb +36 -0
- data/lib/fog/oraclecloud/requests/compute/list_ip_networks.rb +28 -0
- data/lib/fog/oraclecloud/requests/compute/list_ip_reservations.rb +28 -0
- data/lib/fog/oraclecloud/requests/compute/list_storage_attachments.rb +28 -0
- data/lib/fog/oraclecloud/requests/compute/update_ip_reservation.rb +39 -0
- data/lib/fog/oraclecloud/requests/java/create_access_rule.rb +27 -0
- data/lib/fog/oraclecloud/requests/java/delete_access_rule.rb +35 -0
- data/lib/fog/oraclecloud/requests/java/enable_access_rule.rb +33 -0
- data/lib/fog/oraclecloud/requests/java/list_access_rules.rb +30 -0
- data/lib/fog/oraclecloud/requests/monitoring/list_metrics_reports.rb +29 -0
- data/lib/fog/oraclecloud/version.rb +1 -1
- data/lib/fog/oraclecloud.rb +2 -0
- data/tests/requests/compute/auto-storage_tests.rb +32 -0
- data/tests/requests/compute/ip_network_tests.rb +42 -0
- data/tests/requests/compute/ip_tests.rb +58 -0
- data/tests/requests/compute/storage_attachments_tests.rb +42 -0
- data/tests/requests/monitoring_tests.rb +11 -0
- metadata +57 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e26158d660439a6c29046eda1a67a5a7c2361fb2
|
4
|
+
data.tar.gz: af30c4a641467086dbcef181fc79470898767e39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37f66b5e65edb56dd33db39336e1ef96bc9034291f4fb0e5117608e70e3d68ddabcd20a2e1be8c46fa618efe2eb814c7a2e436abe783b3623a9f1e9f927ee4d6
|
7
|
+
data.tar.gz: 9d96a9c26db2629bc43440ac21a440d2681fe4c99651d75ff89f67e3e21da88ac0a3cc6f164f9d9c9c20de03b4be883777ab08aa57b84e4ce0b5d964299540d0
|
data/fog-oracle.gemspec
CHANGED
@@ -22,11 +22,12 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.12"
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
24
|
spec.add_development_dependency "shindo", "~> 0.3"
|
25
|
-
spec.add_development_dependency "byebug"
|
25
|
+
spec.add_development_dependency "byebug", '~>9.0'
|
26
26
|
|
27
27
|
spec.add_dependency 'fog-core', '~> 1.38'
|
28
28
|
spec.add_dependency 'fog-json', '~>1.0'
|
29
29
|
spec.add_dependency 'fog-xml', '~>0.1'
|
30
30
|
spec.add_dependency 'ipaddress', '~>0.8'
|
31
|
-
spec.add_dependency 'mime-types'
|
31
|
+
spec.add_dependency 'mime-types', '~>3.1'
|
32
|
+
spec.add_dependency 'activesupport', '~>5.0'
|
32
33
|
end
|
@@ -33,6 +33,14 @@ module Fog
|
|
33
33
|
model :volume
|
34
34
|
collection :volumes
|
35
35
|
|
36
|
+
model :ip_reservation
|
37
|
+
collection :ip_reservations
|
38
|
+
model :ip_network
|
39
|
+
collection :ip_networks
|
40
|
+
|
41
|
+
model :storage_attachment
|
42
|
+
collection :storage_attachments
|
43
|
+
|
36
44
|
request_path 'fog/oraclecloud/requests/compute'
|
37
45
|
request :list_security_applications
|
38
46
|
request :create_security_application
|
@@ -79,6 +87,21 @@ module Fog
|
|
79
87
|
request :list_volumes
|
80
88
|
request :create_volume
|
81
89
|
|
90
|
+
request :list_ip_reservations
|
91
|
+
request :get_ip_reservation
|
92
|
+
request :create_ip_reservation
|
93
|
+
request :delete_ip_reservation
|
94
|
+
request :update_ip_reservation
|
95
|
+
|
96
|
+
request :list_ip_networks
|
97
|
+
request :get_ip_network
|
98
|
+
request :create_ip_network
|
99
|
+
request :delete_ip_network
|
100
|
+
|
101
|
+
request :list_storage_attachments
|
102
|
+
request :get_storage_attachment
|
103
|
+
request :create_storage_attachment
|
104
|
+
|
82
105
|
class Real
|
83
106
|
|
84
107
|
def initialize(options={})
|
@@ -126,11 +149,13 @@ module Fog
|
|
126
149
|
rescue Excon::Errors::HTTPStatusError => error
|
127
150
|
raise case error
|
128
151
|
when Excon::Errors::NotFound
|
152
|
+
puts "not found"
|
129
153
|
Fog::Compute::OracleCloud::NotFound.slurp(error)
|
130
154
|
when Excon::Errors::Conflict
|
131
155
|
data = Fog::JSON.decode(error.response.body)
|
132
156
|
raise Error.new(data['message'])
|
133
157
|
else
|
158
|
+
puts "else"
|
134
159
|
error
|
135
160
|
end
|
136
161
|
end
|
@@ -155,6 +180,9 @@ module Fog
|
|
155
180
|
:instances => {},
|
156
181
|
:sshkeys => {},
|
157
182
|
:orchestrations => {},
|
183
|
+
:ip_reservations => {},
|
184
|
+
:ip_networks => {},
|
185
|
+
:storage_attachments => {},
|
158
186
|
:image_lists => {
|
159
187
|
"/oracle/public/Oracle_Linux_7" => {
|
160
188
|
"name" => "/oracle/public/Oracle_Linux_7",
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OracleCloud
|
6
|
+
class IpNetwork < Fog::Model
|
7
|
+
identity :name
|
8
|
+
|
9
|
+
attribute :uri
|
10
|
+
attribute :description
|
11
|
+
attribute :tags
|
12
|
+
attribute :ip_address_prefix, :aliases=>'ipAddressPrefix'
|
13
|
+
attribute :ip_network_exchange, :aliases=>'ipNetworkExchange'
|
14
|
+
attribute :public_napt_enabled_flag, :aliases=>'publicNaptEnabledFlag'
|
15
|
+
|
16
|
+
def save
|
17
|
+
requires :name, :ip_address_prefix
|
18
|
+
if !name.nil? && !name.start_with?("/Compute-") then
|
19
|
+
create
|
20
|
+
else
|
21
|
+
update
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def create
|
26
|
+
data = service.create_ip_network({
|
27
|
+
:name => name,
|
28
|
+
:ipAddressPrefix => ip_address_prefix,
|
29
|
+
:ipNetworkExchange => ip_network_exchange,
|
30
|
+
})
|
31
|
+
merge_attributes(data.body)
|
32
|
+
end
|
33
|
+
|
34
|
+
def update
|
35
|
+
data = service.update_ip_network({
|
36
|
+
:name => name,
|
37
|
+
:ipAddressPrefix => ip_address_prefix,
|
38
|
+
:ipNetworkExchange => ip_network_exchange,
|
39
|
+
})
|
40
|
+
merge_attributes(data.body)
|
41
|
+
end
|
42
|
+
|
43
|
+
def destroy
|
44
|
+
requires :name
|
45
|
+
service.delete_ip_network(name)
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OracleCloud
|
6
|
+
class IpNetworks < Fog::Collection
|
7
|
+
|
8
|
+
model Fog::Compute::OracleCloud::IpNetwork
|
9
|
+
|
10
|
+
def all
|
11
|
+
data = service.list_ip_networks().body['result']
|
12
|
+
load(data)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(name)
|
16
|
+
data = service.get_ip_network(name).body
|
17
|
+
new(data)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OracleCloud
|
6
|
+
class IpReservation < Fog::Model
|
7
|
+
identity :name
|
8
|
+
|
9
|
+
attribute :account
|
10
|
+
attribute :ip
|
11
|
+
attribute :parentpool
|
12
|
+
attribute :permanent
|
13
|
+
attribute :quota
|
14
|
+
attribute :tags
|
15
|
+
attribute :uri
|
16
|
+
attribute :used
|
17
|
+
|
18
|
+
def save
|
19
|
+
if !name.nil? && !name.start_with?("/Compute-") then
|
20
|
+
create
|
21
|
+
else
|
22
|
+
update
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def create
|
27
|
+
data = service.create_ip_reservation({
|
28
|
+
:name => name,
|
29
|
+
:parentpool => parentpool || '/oracle/public/ippool',
|
30
|
+
:permanent => permanent || true,
|
31
|
+
:tags => tags
|
32
|
+
})
|
33
|
+
merge_attributes(data.body)
|
34
|
+
end
|
35
|
+
|
36
|
+
def update
|
37
|
+
data = service.update_ip_reservation({
|
38
|
+
:name => name,
|
39
|
+
:parentpool => parentpool,
|
40
|
+
:permanent => permanent,
|
41
|
+
:tags => tags
|
42
|
+
})
|
43
|
+
merge_attributes(data.body)
|
44
|
+
end
|
45
|
+
|
46
|
+
def destroy
|
47
|
+
requires :name
|
48
|
+
service.delete_ip_reservation(name)
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OracleCloud
|
6
|
+
class IpReservations < Fog::Collection
|
7
|
+
|
8
|
+
model Fog::Compute::OracleCloud::IpReservation
|
9
|
+
|
10
|
+
def all
|
11
|
+
data = service.list_ip_reservations().body['result']
|
12
|
+
load(data)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(name)
|
16
|
+
data = service.get_ip_reservation(name).body
|
17
|
+
new(data)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OracleCloud
|
6
|
+
class StorageAttachment < Fog::Model
|
7
|
+
identity :uri
|
8
|
+
|
9
|
+
attribute :account
|
10
|
+
attribute :hypervisor
|
11
|
+
attribute :index
|
12
|
+
attribute :instance_name
|
13
|
+
attribute :read_only, :aliases=>'readonly'
|
14
|
+
attribute :state
|
15
|
+
attribute :storage_volume_name
|
16
|
+
attribute :name
|
17
|
+
|
18
|
+
def save
|
19
|
+
#identity ? update : create
|
20
|
+
create
|
21
|
+
end
|
22
|
+
|
23
|
+
def create
|
24
|
+
requires :index, :instance_name, :storage_volume_name
|
25
|
+
data = service.create_storage_attachment({
|
26
|
+
:index => index,
|
27
|
+
:instance_name => instance_name,
|
28
|
+
:storage_volume_name => storage_volume_name,
|
29
|
+
})
|
30
|
+
merge_attributes(data.body)
|
31
|
+
end
|
32
|
+
|
33
|
+
def destroy
|
34
|
+
requires :name
|
35
|
+
service.delete_storage_container(name)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OracleCloud
|
6
|
+
class StorageAttachments < Fog::Collection
|
7
|
+
|
8
|
+
model Fog::Compute::OracleCloud::StorageAttachment
|
9
|
+
|
10
|
+
def all
|
11
|
+
data = service.list_storage_attachments().body['result']
|
12
|
+
load(data)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(name)
|
16
|
+
data = service.get_storage_attachment(name).body
|
17
|
+
new(data)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Fog
|
2
|
+
module OracleCloud
|
3
|
+
class Java
|
4
|
+
class AccessRule < Fog::Model
|
5
|
+
identity :rule_name, :aliases=>'ruleName'
|
6
|
+
|
7
|
+
attribute :description
|
8
|
+
attribute :status
|
9
|
+
attribute :source
|
10
|
+
attribute :destination
|
11
|
+
attribute :ports
|
12
|
+
attribute :protocol
|
13
|
+
attribute :rule_type, :aliases=>'ruleType'
|
14
|
+
|
15
|
+
attribute :service_name
|
16
|
+
|
17
|
+
def save
|
18
|
+
#identity ? update : create
|
19
|
+
create
|
20
|
+
end
|
21
|
+
|
22
|
+
def create
|
23
|
+
requires :description, :destination, :ports, :rule_name, :source, :status, :service_name
|
24
|
+
|
25
|
+
params = {
|
26
|
+
:ruleName => rule_name,
|
27
|
+
:description => description,
|
28
|
+
:ports => ports,
|
29
|
+
:status => status,
|
30
|
+
:destination => destination,
|
31
|
+
:protocol => protocol,
|
32
|
+
:ruleType => 'USER',
|
33
|
+
:source => source
|
34
|
+
}
|
35
|
+
service.create_access_rule(service_name, params)
|
36
|
+
|
37
|
+
Fog.wait_for { self.reload rescue nil } unless Fog.mock?
|
38
|
+
end
|
39
|
+
|
40
|
+
def destroy
|
41
|
+
requires :rule_name, :service_name
|
42
|
+
data = service.delete_access_rule(service_name, rule_name).body
|
43
|
+
merge_attributes(data)
|
44
|
+
|
45
|
+
Fog.wait_for { self.reload rescue nil } unless Fog.mock?
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
def enable
|
50
|
+
requires :rule_name, :service_name
|
51
|
+
data = service.enable_access_rule(service_name, rule_name).body
|
52
|
+
merge_attributes(data)
|
53
|
+
end
|
54
|
+
|
55
|
+
def disable
|
56
|
+
requires :rule_name, :service_name
|
57
|
+
data = service.disable_access_rule(service_name, rule_name).body
|
58
|
+
merge_attributes(data)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module OracleCloud
|
5
|
+
class Java
|
6
|
+
class AccessRules < Fog::Collection
|
7
|
+
attribute :instance
|
8
|
+
|
9
|
+
model Fog::OracleCloud::Java::AccessRule
|
10
|
+
|
11
|
+
def all
|
12
|
+
data = service.list_access_rules(instance.service_name).body['accessRules']
|
13
|
+
load(data)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(rule_name)
|
17
|
+
data = service.list_access_rules(instance.service_name).body['accessRules']
|
18
|
+
rule = load(data).detect { |r| r.rule_name === rule_name }
|
19
|
+
if !rule.nil?
|
20
|
+
rule
|
21
|
+
else
|
22
|
+
raise Fog::OracleCloud::Java::NotFound.new("Access Rule #{rule_name} does not exist");
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def new(attributes = {})
|
27
|
+
super({:service_name=>instance.service_name}.merge!(attributes))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module OracleCloud
|
5
|
+
class Monitoring
|
6
|
+
class MetricsReports < Fog::Collection
|
7
|
+
|
8
|
+
model Fog::OracleCloud::Monitoring::MetricsReport
|
9
|
+
|
10
|
+
def all
|
11
|
+
data = service.list_metrics_reports().body['items']
|
12
|
+
pp data
|
13
|
+
load(data)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(service_name)
|
17
|
+
new(service.get_instance(service_name).body)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|