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.
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