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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/fog-oracle.gemspec +3 -2
  3. data/lib/fog/oraclecloud/compute.rb +28 -0
  4. data/lib/fog/oraclecloud/models/compute/ip_network.rb +51 -0
  5. data/lib/fog/oraclecloud/models/compute/ip_networks.rb +22 -0
  6. data/lib/fog/oraclecloud/models/compute/ip_reservation.rb +54 -0
  7. data/lib/fog/oraclecloud/models/compute/ip_reservations.rb +22 -0
  8. data/lib/fog/oraclecloud/models/compute/storage_attachment.rb +41 -0
  9. data/lib/fog/oraclecloud/models/compute/storage_attachments.rb +22 -0
  10. data/lib/fog/oraclecloud/models/java/access_rule.rb +63 -0
  11. data/lib/fog/oraclecloud/models/java/access_rules.rb +32 -0
  12. data/lib/fog/oraclecloud/models/monitoring/metrics_report.rb +12 -0
  13. data/lib/fog/oraclecloud/models/monitoring/metrics_reports.rb +24 -0
  14. data/lib/fog/oraclecloud/monitoring.rb +104 -0
  15. data/lib/fog/oraclecloud/requests/compute/create_ip_network.rb +46 -0
  16. data/lib/fog/oraclecloud/requests/compute/create_ip_reservation.rb +48 -0
  17. data/lib/fog/oraclecloud/requests/compute/create_storage_attachment.rb +55 -0
  18. data/lib/fog/oraclecloud/requests/compute/delete_ip_network.rb +29 -0
  19. data/lib/fog/oraclecloud/requests/compute/delete_ip_reservation.rb +29 -0
  20. data/lib/fog/oraclecloud/requests/compute/get_ip_network.rb +36 -0
  21. data/lib/fog/oraclecloud/requests/compute/get_ip_reservation.rb +36 -0
  22. data/lib/fog/oraclecloud/requests/compute/get_storage_attachment.rb +36 -0
  23. data/lib/fog/oraclecloud/requests/compute/list_ip_networks.rb +28 -0
  24. data/lib/fog/oraclecloud/requests/compute/list_ip_reservations.rb +28 -0
  25. data/lib/fog/oraclecloud/requests/compute/list_storage_attachments.rb +28 -0
  26. data/lib/fog/oraclecloud/requests/compute/update_ip_reservation.rb +39 -0
  27. data/lib/fog/oraclecloud/requests/java/create_access_rule.rb +27 -0
  28. data/lib/fog/oraclecloud/requests/java/delete_access_rule.rb +35 -0
  29. data/lib/fog/oraclecloud/requests/java/enable_access_rule.rb +33 -0
  30. data/lib/fog/oraclecloud/requests/java/list_access_rules.rb +30 -0
  31. data/lib/fog/oraclecloud/requests/monitoring/list_metrics_reports.rb +29 -0
  32. data/lib/fog/oraclecloud/version.rb +1 -1
  33. data/lib/fog/oraclecloud.rb +2 -0
  34. data/tests/requests/compute/auto-storage_tests.rb +32 -0
  35. data/tests/requests/compute/ip_network_tests.rb +42 -0
  36. data/tests/requests/compute/ip_tests.rb +58 -0
  37. data/tests/requests/compute/storage_attachments_tests.rb +42 -0
  38. data/tests/requests/monitoring_tests.rb +11 -0
  39. metadata +57 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b5dc7f1557e8c37f5f2f8a1970b80eb36785a77
4
- data.tar.gz: 28c71f5e220187f8ab8bad9a5cbf7779c6c30736
3
+ metadata.gz: e26158d660439a6c29046eda1a67a5a7c2361fb2
4
+ data.tar.gz: af30c4a641467086dbcef181fc79470898767e39
5
5
  SHA512:
6
- metadata.gz: 083b3e775808dbe63a9fe1ccb690aa46e7c71443a5c66a19294bea8250b4d97daddd0925e7da3aa5ffd36a8a21528488e94094e30db63a4003668260658289ff
7
- data.tar.gz: c62eaf8a025bc0864e8df9f830e51f2401a01091ebabbc4ebdd14629d6a702edee6782d945e7514499ee0a12efa61d420547f4a06ac0bb7e35e90ffb9994b01b
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,12 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Monitoring
6
+ class MetricsReport < Fog::Model
7
+
8
+
9
+ end
10
+ end
11
+ end
12
+ 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