fog-oraclecloud 0.1.12 → 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
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