fog-oraclecloud 0.1.13 → 0.1.14
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/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
|