fog-oraclecloud 0.1.12 → 0.1.13

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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +12 -10
  3. data/Gemfile +4 -4
  4. data/LICENSE +20 -20
  5. data/README.md +153 -153
  6. data/Rakefile +2 -2
  7. data/bin/console +14 -14
  8. data/bin/setup +8 -8
  9. data/fog-oracle.gemspec +32 -31
  10. data/lib/fog/oraclecloud.rb +29 -29
  11. data/lib/fog/oraclecloud/compute.rb +184 -184
  12. data/lib/fog/oraclecloud/database.rb +129 -129
  13. data/lib/fog/oraclecloud/java.rb +123 -115
  14. data/lib/fog/oraclecloud/models/compute/image.rb +43 -43
  15. data/lib/fog/oraclecloud/models/compute/image_list.rb +39 -39
  16. data/lib/fog/oraclecloud/models/compute/image_lists.rb +22 -22
  17. data/lib/fog/oraclecloud/models/compute/images.rb +22 -22
  18. data/lib/fog/oraclecloud/models/compute/instance.rb +74 -69
  19. data/lib/fog/oraclecloud/models/compute/instances.rb +22 -22
  20. data/lib/fog/oraclecloud/models/compute/object_plan.rb +16 -16
  21. data/lib/fog/oraclecloud/models/compute/object_plans.rb +12 -12
  22. data/lib/fog/oraclecloud/models/compute/orchestration.rb +89 -89
  23. data/lib/fog/oraclecloud/models/compute/orchestrations.rb +20 -20
  24. data/lib/fog/oraclecloud/models/compute/security_application.rb +42 -42
  25. data/lib/fog/oraclecloud/models/compute/security_applications.rb +22 -22
  26. data/lib/fog/oraclecloud/models/compute/security_list.rb +26 -26
  27. data/lib/fog/oraclecloud/models/compute/security_lists.rb +22 -22
  28. data/lib/fog/oraclecloud/models/compute/security_rule.rb +41 -41
  29. data/lib/fog/oraclecloud/models/compute/security_rules.rb +22 -22
  30. data/lib/fog/oraclecloud/models/compute/ssh_key.rb +37 -37
  31. data/lib/fog/oraclecloud/models/compute/ssh_keys.rb +22 -22
  32. data/lib/fog/oraclecloud/models/compute/volume.rb +47 -47
  33. data/lib/fog/oraclecloud/models/compute/volumes.rb +20 -20
  34. data/lib/fog/oraclecloud/models/database/backup.rb +37 -37
  35. data/lib/fog/oraclecloud/models/database/backups.rb +30 -30
  36. data/lib/fog/oraclecloud/models/database/instance.rb +331 -331
  37. data/lib/fog/oraclecloud/models/database/instances.rb +25 -25
  38. data/lib/fog/oraclecloud/models/database/patch.rb +34 -34
  39. data/lib/fog/oraclecloud/models/database/patches.rb +18 -18
  40. data/lib/fog/oraclecloud/models/database/recoveries.rb +26 -26
  41. data/lib/fog/oraclecloud/models/database/recovery.rb +43 -43
  42. data/lib/fog/oraclecloud/models/database/server.rb +28 -28
  43. data/lib/fog/oraclecloud/models/database/servers.rb +18 -18
  44. data/lib/fog/oraclecloud/models/database/snapshot.rb +60 -60
  45. data/lib/fog/oraclecloud/models/database/snapshots.rb +22 -22
  46. data/lib/fog/oraclecloud/models/java/database.rb +17 -17
  47. data/lib/fog/oraclecloud/models/java/databases.rb +17 -17
  48. data/lib/fog/oraclecloud/models/java/instance.rb +269 -265
  49. data/lib/fog/oraclecloud/models/java/instances.rb +23 -23
  50. data/lib/fog/oraclecloud/models/java/server.rb +62 -62
  51. data/lib/fog/oraclecloud/models/java/servers.rb +25 -25
  52. data/lib/fog/oraclecloud/models/soa/instance.rb +163 -163
  53. data/lib/fog/oraclecloud/models/soa/instances.rb +54 -54
  54. data/lib/fog/oraclecloud/models/storage/container.rb +33 -33
  55. data/lib/fog/oraclecloud/models/storage/containers.rb +24 -24
  56. data/lib/fog/oraclecloud/models/storage/object.rb +27 -27
  57. data/lib/fog/oraclecloud/models/storage/objects.rb +27 -27
  58. data/lib/fog/oraclecloud/requests/compute/create_image.rb +30 -30
  59. data/lib/fog/oraclecloud/requests/compute/create_image_list.rb +27 -27
  60. data/lib/fog/oraclecloud/requests/compute/create_instance.rb +53 -53
  61. data/lib/fog/oraclecloud/requests/compute/create_orchestration.rb +82 -82
  62. data/lib/fog/oraclecloud/requests/compute/create_security_application.rb +28 -28
  63. data/lib/fog/oraclecloud/requests/compute/create_security_rule.rb +29 -29
  64. data/lib/fog/oraclecloud/requests/compute/create_ssh_key.rb +46 -46
  65. data/lib/fog/oraclecloud/requests/compute/create_volume.rb +28 -28
  66. data/lib/fog/oraclecloud/requests/compute/delete_image.rb +19 -19
  67. data/lib/fog/oraclecloud/requests/compute/delete_image_list.rb +19 -19
  68. data/lib/fog/oraclecloud/requests/compute/delete_instance.rb +33 -33
  69. data/lib/fog/oraclecloud/requests/compute/delete_orchestration.rb +36 -36
  70. data/lib/fog/oraclecloud/requests/compute/delete_security_application.rb +20 -20
  71. data/lib/fog/oraclecloud/requests/compute/delete_security_rule.rb +20 -20
  72. data/lib/fog/oraclecloud/requests/compute/delete_ssh_key.rb +32 -32
  73. data/lib/fog/oraclecloud/requests/compute/get_image.rb +21 -21
  74. data/lib/fog/oraclecloud/requests/compute/get_image_list.rb +21 -21
  75. data/lib/fog/oraclecloud/requests/compute/get_instance.rb +45 -45
  76. data/lib/fog/oraclecloud/requests/compute/get_orchestration.rb +39 -39
  77. data/lib/fog/oraclecloud/requests/compute/get_security_application.rb +20 -20
  78. data/lib/fog/oraclecloud/requests/compute/get_security_rule.rb +20 -20
  79. data/lib/fog/oraclecloud/requests/compute/get_ssh_key.rb +39 -39
  80. data/lib/fog/oraclecloud/requests/compute/list_image_lists.rb +29 -29
  81. data/lib/fog/oraclecloud/requests/compute/list_images.rb +16 -16
  82. data/lib/fog/oraclecloud/requests/compute/list_instances.rb +28 -28
  83. data/lib/fog/oraclecloud/requests/compute/list_orchestrations.rb +28 -28
  84. data/lib/fog/oraclecloud/requests/compute/list_security_applications.rb +21 -21
  85. data/lib/fog/oraclecloud/requests/compute/list_security_lists.rb +16 -16
  86. data/lib/fog/oraclecloud/requests/compute/list_security_rules.rb +21 -21
  87. data/lib/fog/oraclecloud/requests/compute/list_ssh_keys.rb +29 -29
  88. data/lib/fog/oraclecloud/requests/compute/list_volumes.rb +16 -16
  89. data/lib/fog/oraclecloud/requests/compute/start_orchestration.rb +39 -39
  90. data/lib/fog/oraclecloud/requests/compute/stop_orchestration.rb +39 -39
  91. data/lib/fog/oraclecloud/requests/compute/update_image.rb +27 -27
  92. data/lib/fog/oraclecloud/requests/compute/update_image_list.rb +27 -27
  93. data/lib/fog/oraclecloud/requests/compute/update_orchestration.rb +80 -80
  94. data/lib/fog/oraclecloud/requests/compute/update_ssh_key.rb +49 -49
  95. data/lib/fog/oraclecloud/requests/database/backup_instance.rb +45 -45
  96. data/lib/fog/oraclecloud/requests/database/create_instance.rb +101 -101
  97. data/lib/fog/oraclecloud/requests/database/create_snapshot.rb +50 -50
  98. data/lib/fog/oraclecloud/requests/database/delete_instance.rb +26 -26
  99. data/lib/fog/oraclecloud/requests/database/delete_snapshot.rb +26 -26
  100. data/lib/fog/oraclecloud/requests/database/get_instance.rb +62 -62
  101. data/lib/fog/oraclecloud/requests/database/get_instance_from_job.rb +31 -31
  102. data/lib/fog/oraclecloud/requests/database/get_snapshot.rb +43 -43
  103. data/lib/fog/oraclecloud/requests/database/list_backups.rb +39 -39
  104. data/lib/fog/oraclecloud/requests/database/list_instances.rb +29 -29
  105. data/lib/fog/oraclecloud/requests/database/list_patches.rb +51 -51
  106. data/lib/fog/oraclecloud/requests/database/list_recoveries.rb +40 -40
  107. data/lib/fog/oraclecloud/requests/database/list_servers.rb +27 -27
  108. data/lib/fog/oraclecloud/requests/database/list_snapshots.rb +27 -27
  109. data/lib/fog/oraclecloud/requests/database/recover_instance.rb +83 -83
  110. data/lib/fog/oraclecloud/requests/database/scale_instance.rb +40 -40
  111. data/lib/fog/oraclecloud/requests/java/create_instance.rb +156 -87
  112. data/lib/fog/oraclecloud/requests/java/delete_instance.rb +37 -37
  113. data/lib/fog/oraclecloud/requests/java/get_instance.rb +43 -43
  114. data/lib/fog/oraclecloud/requests/java/get_server.rb +42 -42
  115. data/lib/fog/oraclecloud/requests/java/list_instances.rb +29 -29
  116. data/lib/fog/oraclecloud/requests/java/list_servers.rb +30 -30
  117. data/lib/fog/oraclecloud/requests/java/scale_a_node.rb +45 -45
  118. data/lib/fog/oraclecloud/requests/java/scale_in_a_cluster.rb +35 -35
  119. data/lib/fog/oraclecloud/requests/java/scale_out_a_cluster.rb +38 -38
  120. data/lib/fog/oraclecloud/requests/soa/create_instance.rb +71 -71
  121. data/lib/fog/oraclecloud/requests/soa/delete_instance.rb +35 -35
  122. data/lib/fog/oraclecloud/requests/soa/get_instance.rb +42 -42
  123. data/lib/fog/oraclecloud/requests/soa/get_job_status.rb +22 -22
  124. data/lib/fog/oraclecloud/requests/soa/list_instances.rb +29 -29
  125. data/lib/fog/oraclecloud/requests/storage/create_container.rb +41 -41
  126. data/lib/fog/oraclecloud/requests/storage/delete_container.rb +15 -15
  127. data/lib/fog/oraclecloud/requests/storage/get_container.rb +63 -63
  128. data/lib/fog/oraclecloud/requests/storage/list_containers.rb +27 -27
  129. data/lib/fog/oraclecloud/soa.rb +106 -106
  130. data/lib/fog/oraclecloud/storage.rb +98 -98
  131. data/lib/fog/oraclecloud/version.rb +5 -5
  132. data/tests/helper.rb +5 -3
  133. data/tests/helpers/mock_helper.rb +14 -14
  134. data/tests/requests/compute_tests.rb +9 -9
  135. data/tests/requests/database_tests.rb +241 -241
  136. data/tests/requests/instance_tests.rb +68 -61
  137. data/tests/requests/java_tests.rb +149 -109
  138. data/tests/requests/orchestrations_tests.rb +90 -90
  139. data/tests/requests/soa_tests.rb +151 -151
  140. data/tests/requests/ssh_keys_tests.rb +53 -53
  141. data/tests/requests/storage_tests.rb +54 -54
  142. metadata +17 -3
@@ -1,25 +1,25 @@
1
- require 'fog/core/collection'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Instances < Fog::Collection
7
-
8
- model Fog::OracleCloud::Database::Instance
9
-
10
- def all
11
- data = service.list_instances().body['services']
12
- load(data)
13
- end
14
-
15
- def get(id)
16
- new(service.get_instance(id).body)
17
- end
18
-
19
- def get_from_job(job_id)
20
- new(service.get_instance_from_job(job_id).body)
21
- end
22
- end
23
- end
24
- end
25
- end
1
+ require 'fog/core/collection'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Instances < Fog::Collection
7
+
8
+ model Fog::OracleCloud::Database::Instance
9
+
10
+ def all
11
+ data = service.list_instances().body['services']
12
+ load(data)
13
+ end
14
+
15
+ def get(id)
16
+ new(service.get_instance(id).body)
17
+ end
18
+
19
+ def get_from_job(job_id)
20
+ new(service.get_instance_from_job(job_id).body)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,34 +1,34 @@
1
- require 'fog/core/model'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Patch < Fog::Model
7
- identity :id, :aliases=>'patchId'
8
-
9
- attribute :number, :aliases=>'patchNumber'
10
- attribute :category, :aliases=>'patchCategory'
11
- attribute :severity, :aliases=>'patchSeverity'
12
- attribute :includes_config_upgrade, :aliases=>'includesConfigUpgrade'
13
- attribute :description, :aliases=>'patchDescription'
14
- attribute :release_url, :aliases=>'patchReleaseUrl'
15
- attribute :service_type, :aliases=>'serviceType'
16
- attribute :service_version, :aliases=>'serviceVersion'
17
- attribute :release_date, :aliases=>'releaseDate'
18
- attribute :entry_date, :aliases=>'entryDate'
19
- attribute :entry_user_id, :aliases=>'entryUserId'
20
- attribute :patch_type, :aliases=>'patchType'
21
- attribute :requires_restart, :aliases=>'requiresRestart'
22
- attribute :is_deleted, :aliases=>'isDeleted'
23
- attribute :is_customer_visible, :aliases=>'isCustomerVisible'
24
- attribute :is_auto_apply, :aliases=>'isAutoApply'
25
- attribute :induce_down_time, :aliases=>'induceDownTime'
26
- attribute :display_name, :aliases=>'displayName'
27
- attribute :release_version, :aliases=>'releaseVersion'
28
- attribute :service_editions, :aliases=>'serviceEditions'
29
-
30
-
31
- end
32
- end
33
- end
34
- end
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Patch < Fog::Model
7
+ identity :id, :aliases=>'patchId'
8
+
9
+ attribute :number, :aliases=>'patchNumber'
10
+ attribute :category, :aliases=>'patchCategory'
11
+ attribute :severity, :aliases=>'patchSeverity'
12
+ attribute :includes_config_upgrade, :aliases=>'includesConfigUpgrade'
13
+ attribute :description, :aliases=>'patchDescription'
14
+ attribute :release_url, :aliases=>'patchReleaseUrl'
15
+ attribute :service_type, :aliases=>'serviceType'
16
+ attribute :service_version, :aliases=>'serviceVersion'
17
+ attribute :release_date, :aliases=>'releaseDate'
18
+ attribute :entry_date, :aliases=>'entryDate'
19
+ attribute :entry_user_id, :aliases=>'entryUserId'
20
+ attribute :patch_type, :aliases=>'patchType'
21
+ attribute :requires_restart, :aliases=>'requiresRestart'
22
+ attribute :is_deleted, :aliases=>'isDeleted'
23
+ attribute :is_customer_visible, :aliases=>'isCustomerVisible'
24
+ attribute :is_auto_apply, :aliases=>'isAutoApply'
25
+ attribute :induce_down_time, :aliases=>'induceDownTime'
26
+ attribute :display_name, :aliases=>'displayName'
27
+ attribute :release_version, :aliases=>'releaseVersion'
28
+ attribute :service_editions, :aliases=>'serviceEditions'
29
+
30
+
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,18 +1,18 @@
1
- require 'fog/core/collection'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Patches < Fog::Collection
7
-
8
- model Fog::OracleCloud::Database::Patch
9
-
10
- def all(db_name)
11
- data = service.list_patches(db_name).body['availablePatches']
12
- load(data)
13
- end
14
-
15
- end
16
- end
17
- end
18
- end
1
+ require 'fog/core/collection'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Patches < Fog::Collection
7
+
8
+ model Fog::OracleCloud::Database::Patch
9
+
10
+ def all(db_name)
11
+ data = service.list_patches(db_name).body['availablePatches']
12
+ load(data)
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,26 +1,26 @@
1
- require 'fog/core/collection'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Recoveries < Fog::Collection
7
-
8
- model Fog::OracleCloud::Database::Recovery
9
-
10
- def all(db_name)
11
- data = service.list_recoveries(db_name).body['recoveryList']
12
- load(data)
13
- end
14
-
15
- # There is no get service for recoveries in the Oracle Cloud
16
- # Call the list and extract the recovery
17
- def get(db_name, type=nil, value=nil)
18
- clean_type = 'dbTag' if type == 'tag'
19
- clean_type, value = ['latest', true] if type.nil?
20
- data = service.list_recoveries(db_name).body['recoveryList'].find { |r| r[clean_type] == value }
21
- new(data)
22
- end
23
- end
24
- end
25
- end
26
- end
1
+ require 'fog/core/collection'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Recoveries < Fog::Collection
7
+
8
+ model Fog::OracleCloud::Database::Recovery
9
+
10
+ def all(db_name)
11
+ data = service.list_recoveries(db_name).body['recoveryList']
12
+ load(data)
13
+ end
14
+
15
+ # There is no get service for recoveries in the Oracle Cloud
16
+ # Call the list and extract the recovery
17
+ def get(db_name, type=nil, value=nil)
18
+ clean_type = 'dbTag' if type == 'tag'
19
+ clean_type, value = ['latest', true] if type.nil?
20
+ data = service.list_recoveries(db_name).body['recoveryList'].find { |r| r[clean_type] == value }
21
+ new(data)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,43 +1,43 @@
1
- require 'fog/core/model'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Recovery < Fog::Model
7
-
8
- attribute :db_tag, :aliases=>'dbTag'
9
- attribute :recovery_start_date, :aliases=>'recoveryStartDate'
10
- attribute :recovery_complete_date, :aliases=>'recoveryCompleteDate'
11
- attribute :status
12
- attribute :latest
13
- attribute :timestamp
14
- attribute :database_id
15
-
16
- def completed?
17
- status == "COMPLETED"
18
- end
19
-
20
- private
21
-
22
- def reload
23
- requires :database_id
24
-
25
- data = begin
26
- if !db_tag.nil? then
27
- collection.get(database_id, 'tag', db_tag)
28
- else
29
- collection.get(database_id)
30
- end
31
- rescue Excon::Errors::SocketError
32
- nil
33
- end
34
- return unless data
35
-
36
- new_attributes = data.attributes
37
- merge_attributes(new_attributes)
38
- self
39
- end
40
- end
41
- end
42
- end
43
- end
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Recovery < Fog::Model
7
+
8
+ attribute :db_tag, :aliases=>'dbTag'
9
+ attribute :recovery_start_date, :aliases=>'recoveryStartDate'
10
+ attribute :recovery_complete_date, :aliases=>'recoveryCompleteDate'
11
+ attribute :status
12
+ attribute :latest
13
+ attribute :timestamp
14
+ attribute :database_id
15
+
16
+ def completed?
17
+ status == "COMPLETED"
18
+ end
19
+
20
+ private
21
+
22
+ def reload
23
+ requires :database_id
24
+
25
+ data = begin
26
+ if !db_tag.nil? then
27
+ collection.get(database_id, 'tag', db_tag)
28
+ else
29
+ collection.get(database_id)
30
+ end
31
+ rescue Excon::Errors::SocketError
32
+ nil
33
+ end
34
+ return unless data
35
+
36
+ new_attributes = data.attributes
37
+ merge_attributes(new_attributes)
38
+ self
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,28 +1,28 @@
1
- require 'fog/core/model'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Server < Fog::Model
7
- identity :hostname
8
-
9
- attribute :connect_descriptor
10
- attribute :connect_descriptor_with_public_ip
11
- attribute :created_by
12
- attribute :creation_job_id
13
- attribute :creation_time
14
- attribute :initial_primary, :aliases=>'initialPrimary'
15
- attribute :listener_port, :aliases=>'listenerPort'
16
- attribute :pdb_name, :aliases=>'pdbName'
17
- attribute :reserved_ip, :aliases=>'reservedIP'
18
- attribute :shape
19
- attribute :sid
20
- attribute :status
21
- attribute :storage_allocated, :aliases=>'storageAllocated'
22
-
23
- private
24
-
25
- end
26
- end
27
- end
28
- end
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Server < Fog::Model
7
+ identity :hostname
8
+
9
+ attribute :connect_descriptor
10
+ attribute :connect_descriptor_with_public_ip
11
+ attribute :created_by
12
+ attribute :creation_job_id
13
+ attribute :creation_time
14
+ attribute :initial_primary, :aliases=>'initialPrimary'
15
+ attribute :listener_port, :aliases=>'listenerPort'
16
+ attribute :pdb_name, :aliases=>'pdbName'
17
+ attribute :reserved_ip, :aliases=>'reservedIP'
18
+ attribute :shape
19
+ attribute :sid
20
+ attribute :status
21
+ attribute :storage_allocated, :aliases=>'storageAllocated'
22
+
23
+ private
24
+
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,18 +1,18 @@
1
- require 'fog/core/collection'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Servers < Fog::Collection
7
-
8
- model Fog::OracleCloud::Database::Server
9
-
10
- def all(db_name)
11
- data = service.list_servers(db_name).body
12
- load(data)
13
- end
14
-
15
- end
16
- end
17
- end
18
- end
1
+ require 'fog/core/collection'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Servers < Fog::Collection
7
+
8
+ model Fog::OracleCloud::Database::Server
9
+
10
+ def all(db_name)
11
+ data = service.list_servers(db_name).body
12
+ load(data)
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,60 +1,60 @@
1
- require 'fog/core/model'
2
-
3
- module Fog
4
- module OracleCloud
5
- class Database
6
- class Snapshot < Fog::Model
7
- identity :name
8
-
9
- attribute :cloned_services_size, :aliases=>'clonedServicesSize'
10
- attribute :creation_time, :aliases=>'creationTime'
11
- attribute :cloned_services, :aliases=>'clonedServices'
12
- attribute :status
13
- attribute :description
14
-
15
- attribute :database_id
16
-
17
- def completed?
18
- status == "Succeeded"
19
- end
20
-
21
- def deleting?
22
- status == "Terminating"
23
- end
24
-
25
- def save
26
- create
27
- end
28
-
29
- def destroy
30
- requires :name, :database_id
31
- service.delete_snapshot(database_id, name).body
32
- end
33
-
34
- # Had to override snapshot as we need to pass the database_id
35
- def reload
36
- requires :identity, :database_id
37
-
38
- data = begin
39
- collection.get(database_id, identity)
40
- rescue Excon::Errors::SocketError
41
- nil
42
- end
43
-
44
- return unless data
45
-
46
- new_attributes = data.attributes
47
- merge_attributes(new_attributes)
48
- self
49
- end
50
-
51
- private
52
-
53
- def create
54
- requires :name, :description, :database_id
55
- data = service.create_snapshot(name, description, database_id)
56
- end
57
- end
58
- end
59
- end
60
- end
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module OracleCloud
5
+ class Database
6
+ class Snapshot < Fog::Model
7
+ identity :name
8
+
9
+ attribute :cloned_services_size, :aliases=>'clonedServicesSize'
10
+ attribute :creation_time, :aliases=>'creationTime'
11
+ attribute :cloned_services, :aliases=>'clonedServices'
12
+ attribute :status
13
+ attribute :description
14
+
15
+ attribute :database_id
16
+
17
+ def completed?
18
+ status == "Succeeded"
19
+ end
20
+
21
+ def deleting?
22
+ status == "Terminating"
23
+ end
24
+
25
+ def save
26
+ create
27
+ end
28
+
29
+ def destroy
30
+ requires :name, :database_id
31
+ service.delete_snapshot(database_id, name).body
32
+ end
33
+
34
+ # Had to override snapshot as we need to pass the database_id
35
+ def reload
36
+ requires :identity, :database_id
37
+
38
+ data = begin
39
+ collection.get(database_id, identity)
40
+ rescue Excon::Errors::SocketError
41
+ nil
42
+ end
43
+
44
+ return unless data
45
+
46
+ new_attributes = data.attributes
47
+ merge_attributes(new_attributes)
48
+ self
49
+ end
50
+
51
+ private
52
+
53
+ def create
54
+ requires :name, :description, :database_id
55
+ data = service.create_snapshot(name, description, database_id)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end