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,101 +1,101 @@
1
- module Fog
2
- module OracleCloud
3
- class Database
4
- class Real
5
-
6
- def create_instance(config, options)
7
- parameters = options.select{|key, value| [:admin_password, :backup_destination, :charset, :cloud_storage_container, :cloud_storage_pwd, :cloud_storage_user, :cloud_storage_if_missing, :disaster_recovery, :failover_database, :golden_gate, :is_rac, :ncharset, :pdb_name, :sid, :timezone, :usable_storage, :create_storage_container_if_missing].include?(key)}
8
- params = {
9
- 'type' => 'db'
10
- }
11
- parameters.each { |key, value|
12
- if !value.nil? then
13
- if key == :cloud_storage_container then
14
- if !value.start_with?("Storage-") then
15
- value = "Storage-#{@identity_domain}/#{value}"
16
- end
17
- end
18
- new_key = key.to_s.split('_').collect(&:capitalize).join
19
- new_key = new_key[0,1].downcase + new_key[1..-1]
20
- params[new_key] = value
21
- end
22
- }
23
- body_data = {
24
- 'serviceName' => config[:service_name],
25
- 'version' => config[:version],
26
- 'level' => config[:level],
27
- 'edition' => config[:edition],
28
- 'subscriptionType' => config[:subscription_type],
29
- 'description' => config[:description],
30
- 'shape' => config[:shape],
31
- 'vmPublicKeyText' => config[:ssh_key],
32
- 'parameters' => [params]
33
- }
34
- body_data = body_data.reject {|key, value| value.nil?}
35
-
36
- request(
37
- :method => 'POST',
38
- :expects => 202,
39
- :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}",
40
- :body => Fog::JSON.encode(body_data),
41
- #:headers => {
42
- # 'Content-Type'=>'application/vnd.com.oracle.oracloud.provisioning.Service+json'
43
- #}
44
- )
45
- end
46
-
47
- end
48
-
49
- class Mock
50
- def create_instance(config, options)
51
- response = Excon::Response.new
52
- job_id = rand(10000).to_s
53
- data = {
54
- 'serviceName' => config[:service_name],
55
- 'shape' => config[:shape],
56
- 'edition' => config[:edition],
57
- 'version' => config[:version],
58
- 'status' => 'Starting Provisioning', # Not a valid status, but we use it to simulate the time that the Oracle Cloud takes to add this to the list of instances
59
- 'charset' => 'AL32UTF8',
60
- 'ncharset' => 'AL16UTF16',
61
- 'pdbName' => 'pdb1', # Note this is only valid for 12c instances. Too hard to fix for mocking
62
- 'timezone' => 'UTC',
63
- 'creation_job_id' => job_id,
64
- 'totalSharedStorage' => options[:usable_storage],
65
- 'domainName' => @identity_domain,
66
- 'creation_date'=>Time.now.strftime('%Y-%b-%dT%H:%M:%S'),
67
- 'serviceType'=>'DBaaS',
68
- 'creator'=>@username
69
- }
70
- .merge(config.select {|key, value| [:description, :level, :subscription_type].include?(key) })
71
- .merge(options.select {|key, value| [:backup_destination, :failover_database, :cloud_storage_container, :is_rac, :ncharset, :pdb_name, :sid, :timezone].include?(key) })
72
-
73
- self.data[:instances][config[:service_name]] = data
74
- self.data[:created_at][config[:service_name]] = Time.now
75
-
76
- # Also create some compute nodes
77
- node = {
78
- "status"=>"Running",
79
- "creation_job_id"=>"5495118",
80
- "creation_time"=>"Tue Jun 28 23:52:45 UTC 2016",
81
- "created_by"=>"dbaasadmin",
82
- "shape"=>"oc4",
83
- "sid"=>"ORCL1",
84
- "pdbName"=>"PDB1",
85
- "listenerPort"=> 1521,
86
- "connect_descriptor"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac2)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac1)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))",
87
- "connect_descriptor_with_public_ip"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.176)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.112)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))",
88
- "initialPrimary"=> true,
89
- "storageAllocated"=> 97280,
90
- "reservedIP"=>"129.144.23.112",
91
- "hostname"=>"db12c-xp-rac1"
92
- }
93
- self.data[:servers][config[:service_name]] = [node]
94
- response.headers['Location'] = "https://dbaas.oraclecloud.com:443/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/status/create/job/#{job_id}"
95
- response.status = 202
96
- response
97
- end
98
- end
99
- end
100
- end
101
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Database
4
+ class Real
5
+
6
+ def create_instance(config, options)
7
+ parameters = options.select{|key, value| [:admin_password, :backup_destination, :charset, :cloud_storage_container, :cloud_storage_pwd, :cloud_storage_user, :cloud_storage_if_missing, :disaster_recovery, :failover_database, :golden_gate, :is_rac, :ncharset, :pdb_name, :sid, :timezone, :usable_storage, :create_storage_container_if_missing].include?(key)}
8
+ params = {
9
+ 'type' => 'db'
10
+ }
11
+ parameters.each { |key, value|
12
+ if !value.nil? then
13
+ if key == :cloud_storage_container then
14
+ if !value.start_with?("Storage-") then
15
+ value = "Storage-#{@identity_domain}/#{value}"
16
+ end
17
+ end
18
+ new_key = key.to_s.split('_').collect(&:capitalize).join
19
+ new_key = new_key[0,1].downcase + new_key[1..-1]
20
+ params[new_key] = value
21
+ end
22
+ }
23
+ body_data = {
24
+ 'serviceName' => config[:service_name],
25
+ 'version' => config[:version],
26
+ 'level' => config[:level],
27
+ 'edition' => config[:edition],
28
+ 'subscriptionType' => config[:subscription_type],
29
+ 'description' => config[:description],
30
+ 'shape' => config[:shape],
31
+ 'vmPublicKeyText' => config[:ssh_key],
32
+ 'parameters' => [params]
33
+ }
34
+ body_data = body_data.reject {|key, value| value.nil?}
35
+
36
+ request(
37
+ :method => 'POST',
38
+ :expects => 202,
39
+ :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}",
40
+ :body => Fog::JSON.encode(body_data),
41
+ #:headers => {
42
+ # 'Content-Type'=>'application/vnd.com.oracle.oracloud.provisioning.Service+json'
43
+ #}
44
+ )
45
+ end
46
+
47
+ end
48
+
49
+ class Mock
50
+ def create_instance(config, options)
51
+ response = Excon::Response.new
52
+ job_id = rand(10000).to_s
53
+ data = {
54
+ 'serviceName' => config[:service_name],
55
+ 'shape' => config[:shape],
56
+ 'edition' => config[:edition],
57
+ 'version' => config[:version],
58
+ 'status' => 'Starting Provisioning', # Not a valid status, but we use it to simulate the time that the Oracle Cloud takes to add this to the list of instances
59
+ 'charset' => 'AL32UTF8',
60
+ 'ncharset' => 'AL16UTF16',
61
+ 'pdbName' => 'pdb1', # Note this is only valid for 12c instances. Too hard to fix for mocking
62
+ 'timezone' => 'UTC',
63
+ 'creation_job_id' => job_id,
64
+ 'totalSharedStorage' => options[:usable_storage],
65
+ 'domainName' => @identity_domain,
66
+ 'creation_date'=>Time.now.strftime('%Y-%b-%dT%H:%M:%S'),
67
+ 'serviceType'=>'DBaaS',
68
+ 'creator'=>@username
69
+ }
70
+ .merge(config.select {|key, value| [:description, :level, :subscription_type].include?(key) })
71
+ .merge(options.select {|key, value| [:backup_destination, :failover_database, :cloud_storage_container, :is_rac, :ncharset, :pdb_name, :sid, :timezone].include?(key) })
72
+
73
+ self.data[:instances][config[:service_name]] = data
74
+ self.data[:created_at][config[:service_name]] = Time.now
75
+
76
+ # Also create some compute nodes
77
+ node = {
78
+ "status"=>"Running",
79
+ "creation_job_id"=>"5495118",
80
+ "creation_time"=>"Tue Jun 28 23:52:45 UTC 2016",
81
+ "created_by"=>"dbaasadmin",
82
+ "shape"=>"oc4",
83
+ "sid"=>"ORCL1",
84
+ "pdbName"=>"PDB1",
85
+ "listenerPort"=> 1521,
86
+ "connect_descriptor"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac2)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac1)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))",
87
+ "connect_descriptor_with_public_ip"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.176)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.112)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))",
88
+ "initialPrimary"=> true,
89
+ "storageAllocated"=> 97280,
90
+ "reservedIP"=>"129.144.23.112",
91
+ "hostname"=>"db12c-xp-rac1"
92
+ }
93
+ self.data[:servers][config[:service_name]] = [node]
94
+ response.headers['Location'] = "https://dbaas.oraclecloud.com:443/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/status/create/job/#{job_id}"
95
+ response.status = 202
96
+ response
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -1,50 +1,50 @@
1
- module Fog
2
- module OracleCloud
3
- class Database
4
- class Real
5
-
6
- def create_snapshot(name, description, database_id)
7
- body_data = {
8
- 'name' => name,
9
- 'description' => description
10
- }
11
- body_data = body_data.reject {|key, value| value.nil?}
12
-
13
- response = request(
14
- :method => 'POST',
15
- :expects => 202,
16
- :path => "/paas/api/v1.1/instancemgmt/#{@identity_domain}/services/dbaas/instances/#{database_id}/snapshots",
17
- :body => Fog::JSON.encode(body_data),
18
- )
19
- # Store the database reference in the model, so that we can use it later
20
- response.database_id = service_name
21
- response
22
- end
23
- end
24
-
25
- class Mock
26
- def create_snapshot(name, description, database_id)
27
- response = Excon::Response.new
28
-
29
- data = {
30
- 'name' => name,
31
- 'description' => description,
32
- 'creationTime' => Time.now,
33
- 'clonedServicesSize' => 1,
34
- 'status'=>'In Progress',
35
- 'database_id'=>database_id,
36
- 'clonedServices'=>[{
37
- 'clonedServiceName'=>'ClonedService1',
38
- 'clonedServiceCreationTime'=> Time.now
39
- }]
40
- }
41
- if !self.data[:snapshots].key?(database_id) then self.data[:snapshots][database_id] = {} end
42
- self.data[:snapshots][database_id][name] = data
43
- self.data[:created_at][name] = Time.now
44
- response.status = 202
45
- response
46
- end
47
- end
48
- end
49
- end
50
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Database
4
+ class Real
5
+
6
+ def create_snapshot(name, description, database_id)
7
+ body_data = {
8
+ 'name' => name,
9
+ 'description' => description
10
+ }
11
+ body_data = body_data.reject {|key, value| value.nil?}
12
+
13
+ response = request(
14
+ :method => 'POST',
15
+ :expects => 202,
16
+ :path => "/paas/api/v1.1/instancemgmt/#{@identity_domain}/services/dbaas/instances/#{database_id}/snapshots",
17
+ :body => Fog::JSON.encode(body_data),
18
+ )
19
+ # Store the database reference in the model, so that we can use it later
20
+ response.database_id = service_name
21
+ response
22
+ end
23
+ end
24
+
25
+ class Mock
26
+ def create_snapshot(name, description, database_id)
27
+ response = Excon::Response.new
28
+
29
+ data = {
30
+ 'name' => name,
31
+ 'description' => description,
32
+ 'creationTime' => Time.now,
33
+ 'clonedServicesSize' => 1,
34
+ 'status'=>'In Progress',
35
+ 'database_id'=>database_id,
36
+ 'clonedServices'=>[{
37
+ 'clonedServiceName'=>'ClonedService1',
38
+ 'clonedServiceCreationTime'=> Time.now
39
+ }]
40
+ }
41
+ if !self.data[:snapshots].key?(database_id) then self.data[:snapshots][database_id] = {} end
42
+ self.data[:snapshots][database_id][name] = data
43
+ self.data[:created_at][name] = Time.now
44
+ response.status = 202
45
+ response
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,26 +1,26 @@
1
- module Fog
2
- module OracleCloud
3
- class Database
4
- class Real
5
-
6
- def delete_instance(service_name)
7
- request(
8
- :method => 'DELETE',
9
- :expects => 202,
10
- :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{service_name}"
11
- )
12
- end
13
- end
14
-
15
- class Mock
16
- def delete_instance(name)
17
- response = Excon::Response.new
18
- self.data[:instances][name]['status'] = 'Terminating'
19
- self.data[:deleted_at][name] = Time.now
20
- response.status = 204
21
- response
22
- end
23
- end
24
- end
25
- end
26
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Database
4
+ class Real
5
+
6
+ def delete_instance(service_name)
7
+ request(
8
+ :method => 'DELETE',
9
+ :expects => 202,
10
+ :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{service_name}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def delete_instance(name)
17
+ response = Excon::Response.new
18
+ self.data[:instances][name]['status'] = 'Terminating'
19
+ self.data[:deleted_at][name] = Time.now
20
+ response.status = 204
21
+ response
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,26 +1,26 @@
1
- module Fog
2
- module OracleCloud
3
- class Database
4
- class Real
5
-
6
- def delete_snapshot(db_name, snapshot_name)
7
- request(
8
- :method => 'DELETE',
9
- :expects => 202,
10
- :path => "/paas/api/v1.1/instancemgmt/#{@identity_domain}/services/dbaas/instances/#{db_name}/snapshots/#{snapshot_name}"
11
- )
12
- end
13
- end
14
-
15
- class Mock
16
- def delete_snapshot(db_name, snapshot_name)
17
- response = Excon::Response.new
18
- self.data[:snapshots][db_name][snapshot_name]['status'] = 'Terminating'
19
- self.data[:deleted_at][snapshot_name] = Time.now
20
- response.status = 204
21
- response
22
- end
23
- end
24
- end
25
- end
26
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Database
4
+ class Real
5
+
6
+ def delete_snapshot(db_name, snapshot_name)
7
+ request(
8
+ :method => 'DELETE',
9
+ :expects => 202,
10
+ :path => "/paas/api/v1.1/instancemgmt/#{@identity_domain}/services/dbaas/instances/#{db_name}/snapshots/#{snapshot_name}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def delete_snapshot(db_name, snapshot_name)
17
+ response = Excon::Response.new
18
+ self.data[:snapshots][db_name][snapshot_name]['status'] = 'Terminating'
19
+ self.data[:deleted_at][snapshot_name] = Time.now
20
+ response.status = 204
21
+ response
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,63 +1,63 @@
1
- module Fog
2
- module OracleCloud
3
- class Database
4
- class Real
5
-
6
- def get_instance(instance_id)
7
- response = request(
8
- :expects => 200,
9
- :method => 'GET',
10
- :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{instance_id}"
11
- )
12
- response
13
- end
14
- end
15
-
16
- class Mock
17
- def get_instance(name)
18
- response = Excon::Response.new
19
-
20
- if instance = self.data[:instances][name]
21
- case instance['status']
22
- when 'Starting Provisioning'
23
- self.data[:instances][name]['status'] = 'In Progress'
24
- # This simulates the few seconds the Oracle Cloud takes to add this instance to the GET request after creating
25
- raise(
26
- Excon::Errors.status_error(
27
- { :expects => 200 },
28
- Excon::Response.new({
29
- :status => 404,
30
- :body => 'No such service exists, check domain and service name'
31
- })
32
- )
33
- )
34
- when 'Terminating'
35
- if Time.now - self.data[:deleted_at][name] >= Fog::Mock.delay
36
- self.data[:deleted_at].delete(name)
37
- self.data[:instances].delete(name)
38
- end
39
- when 'In Progress'
40
- if Time.now - self.data[:created_at][name] >= Fog::Mock.delay
41
- self.data[:instances][name]['status'] = 'Running'
42
- instance = self.data[:instances][name]
43
- self.data[:created_at].delete(name)
44
- end
45
- when 'Maintenance'
46
- info = self.data[:maintenance_at][name]
47
- if Time.now - info['time'] >= Fog::Mock.delay
48
- self.data[:instances][name]['status'] = 'Running'
49
- self.data[:instances][name][info['attribute']] = info['value']
50
- self.data[:maintenance_at].delete(name)
51
- end
52
- end
53
- response.status = 200
54
- response.body = instance
55
- response
56
- else
57
- raise Fog::OracleCloud::Database::NotFound.new("Database #{name} does not exist");
58
- end
59
- end
60
- end
61
- end
62
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Database
4
+ class Real
5
+
6
+ def get_instance(instance_id)
7
+ response = request(
8
+ :expects => 200,
9
+ :method => 'GET',
10
+ :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{instance_id}"
11
+ )
12
+ response
13
+ end
14
+ end
15
+
16
+ class Mock
17
+ def get_instance(name)
18
+ response = Excon::Response.new
19
+
20
+ if instance = self.data[:instances][name]
21
+ case instance['status']
22
+ when 'Starting Provisioning'
23
+ self.data[:instances][name]['status'] = 'In Progress'
24
+ # This simulates the few seconds the Oracle Cloud takes to add this instance to the GET request after creating
25
+ raise(
26
+ Excon::Errors.status_error(
27
+ { :expects => 200 },
28
+ Excon::Response.new({
29
+ :status => 404,
30
+ :body => 'No such service exists, check domain and service name'
31
+ })
32
+ )
33
+ )
34
+ when 'Terminating'
35
+ if Time.now - self.data[:deleted_at][name] >= Fog::Mock.delay
36
+ self.data[:deleted_at].delete(name)
37
+ self.data[:instances].delete(name)
38
+ end
39
+ when 'In Progress'
40
+ if Time.now - self.data[:created_at][name] >= Fog::Mock.delay
41
+ self.data[:instances][name]['status'] = 'Running'
42
+ instance = self.data[:instances][name]
43
+ self.data[:created_at].delete(name)
44
+ end
45
+ when 'Maintenance'
46
+ info = self.data[:maintenance_at][name]
47
+ if Time.now - info['time'] >= Fog::Mock.delay
48
+ self.data[:instances][name]['status'] = 'Running'
49
+ self.data[:instances][name][info['attribute']] = info['value']
50
+ self.data[:maintenance_at].delete(name)
51
+ end
52
+ end
53
+ response.status = 200
54
+ response.body = instance
55
+ response
56
+ else
57
+ raise Fog::OracleCloud::Database::NotFound.new("Database #{name} does not exist");
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
63
  end