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,129 +1,129 @@
1
- module Fog
2
- module OracleCloud
3
- class Database < Fog::Service
4
- requires :oracle_username, :oracle_password, :oracle_domain
5
- recognizes :oracle_region
6
-
7
- model_path 'fog/oraclecloud/models/database'
8
- model :instance
9
- collection :instances
10
- model :backup
11
- collection :backups
12
- model :recovery
13
- collection :recoveries
14
- model :snapshot
15
- collection :snapshots
16
- model :server
17
- collection :servers
18
- model :patch
19
- collection :patches
20
-
21
- request_path 'fog/oraclecloud/requests/database'
22
- request :list_instances
23
- request :get_instance
24
- request :get_instance_from_job
25
- request :create_instance
26
- request :delete_instance
27
- request :list_backups
28
- request :list_recoveries
29
- request :list_snapshots
30
- request :get_snapshot
31
- request :create_snapshot
32
- request :delete_snapshot
33
- request :list_servers
34
- request :scale_instance
35
- request :backup_instance
36
- request :recover_instance
37
- request :list_patches
38
-
39
- class Real
40
-
41
- def initialize(options={})
42
- @username = options[:oracle_username]
43
- @password = options[:oracle_password]
44
- @identity_domain = options[:oracle_domain]
45
- region_url = options[:oracle_region] == 'emea' ? 'https://dbcs.emea.oraclecloud.com' : 'https://dbaas.oraclecloud.com'
46
- Excon.ssl_verify_peer = false
47
-
48
- @connection = Fog::XML::Connection.new(region_url)
49
- end
50
-
51
- def username
52
- @username
53
- end
54
-
55
- def password
56
- @password
57
- end
58
-
59
- def auth_header
60
- auth_header ||= 'Basic ' + Base64.encode64("#{@username}:#{@password}").gsub("\n",'')
61
- end
62
-
63
- def request(params, parse_json = true, &block)
64
- begin
65
- response = @connection.request(params.merge!({
66
- :headers => {
67
- 'Authorization' => auth_header,
68
- 'X-ID-TENANT-NAME' => @identity_domain,
69
- 'Content-Type' => 'application/json',
70
- #'Accept' => 'application/json'
71
- }.merge!(params[:headers] || {})
72
- }), &block)
73
- rescue Excon::Errors::HTTPStatusError => error
74
- raise case error
75
- when Excon::Errors::NotFound
76
- Fog::OracleCloud::Database::NotFound.slurp(error)
77
- else
78
- error
79
- end
80
- end
81
- #https://jaas.oraclecloud.com/paas/service/jcs/api/v1.1/instances/agriculture/status/create/job/2781084
82
- if !response.body.empty? && parse_json
83
- # The Oracle Cloud doesn't return the Content-Type header as application/json, rather as application/vnd.com.oracle.oracloud.provisioning.Pod+json
84
- # Should add check here to validate, but not sure if this might change in future
85
- response.body = Fog::JSON.decode(response.body)
86
- end
87
- response
88
- end
89
- end
90
-
91
- class Mock
92
- def initialize(options={})
93
- @username = options[:oracle_username]
94
- @password = options[:oracle_password]
95
- @identity_domain = options[:oracle_domain]
96
- end
97
-
98
- def username
99
- @username
100
- end
101
-
102
- def password
103
- @password
104
- end
105
-
106
- def self.data
107
- @data ||= {
108
- :instances => {},
109
- :snapshots => {},
110
- :servers => {},
111
- :backups => {},
112
- :recoveries => {},
113
- :deleted_at => {},
114
- :created_at => {},
115
- :maintenance_at => {}
116
- }
117
- end
118
-
119
- def self.reset
120
- @data = nil
121
- end
122
-
123
- def data
124
- self.class.data
125
- end
126
- end
127
- end
128
- end
129
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Database < Fog::Service
4
+ requires :oracle_username, :oracle_password, :oracle_domain
5
+ recognizes :oracle_region
6
+
7
+ model_path 'fog/oraclecloud/models/database'
8
+ model :instance
9
+ collection :instances
10
+ model :backup
11
+ collection :backups
12
+ model :recovery
13
+ collection :recoveries
14
+ model :snapshot
15
+ collection :snapshots
16
+ model :server
17
+ collection :servers
18
+ model :patch
19
+ collection :patches
20
+
21
+ request_path 'fog/oraclecloud/requests/database'
22
+ request :list_instances
23
+ request :get_instance
24
+ request :get_instance_from_job
25
+ request :create_instance
26
+ request :delete_instance
27
+ request :list_backups
28
+ request :list_recoveries
29
+ request :list_snapshots
30
+ request :get_snapshot
31
+ request :create_snapshot
32
+ request :delete_snapshot
33
+ request :list_servers
34
+ request :scale_instance
35
+ request :backup_instance
36
+ request :recover_instance
37
+ request :list_patches
38
+
39
+ class Real
40
+
41
+ def initialize(options={})
42
+ @username = options[:oracle_username]
43
+ @password = options[:oracle_password]
44
+ @identity_domain = options[:oracle_domain]
45
+ region_url = options[:oracle_region] == 'emea' ? 'https://dbcs.emea.oraclecloud.com' : 'https://dbaas.oraclecloud.com'
46
+ Excon.ssl_verify_peer = false
47
+
48
+ @connection = Fog::XML::Connection.new(region_url)
49
+ end
50
+
51
+ def username
52
+ @username
53
+ end
54
+
55
+ def password
56
+ @password
57
+ end
58
+
59
+ def auth_header
60
+ auth_header ||= 'Basic ' + Base64.encode64("#{@username}:#{@password}").gsub("\n",'')
61
+ end
62
+
63
+ def request(params, parse_json = true, &block)
64
+ begin
65
+ response = @connection.request(params.merge!({
66
+ :headers => {
67
+ 'Authorization' => auth_header,
68
+ 'X-ID-TENANT-NAME' => @identity_domain,
69
+ 'Content-Type' => 'application/json',
70
+ #'Accept' => 'application/json'
71
+ }.merge!(params[:headers] || {})
72
+ }), &block)
73
+ rescue Excon::Errors::HTTPStatusError => error
74
+ raise case error
75
+ when Excon::Errors::NotFound
76
+ Fog::OracleCloud::Database::NotFound.slurp(error)
77
+ else
78
+ error
79
+ end
80
+ end
81
+ #https://jaas.oraclecloud.com/paas/service/jcs/api/v1.1/instances/agriculture/status/create/job/2781084
82
+ if !response.body.empty? && parse_json
83
+ # The Oracle Cloud doesn't return the Content-Type header as application/json, rather as application/vnd.com.oracle.oracloud.provisioning.Pod+json
84
+ # Should add check here to validate, but not sure if this might change in future
85
+ response.body = Fog::JSON.decode(response.body)
86
+ end
87
+ response
88
+ end
89
+ end
90
+
91
+ class Mock
92
+ def initialize(options={})
93
+ @username = options[:oracle_username]
94
+ @password = options[:oracle_password]
95
+ @identity_domain = options[:oracle_domain]
96
+ end
97
+
98
+ def username
99
+ @username
100
+ end
101
+
102
+ def password
103
+ @password
104
+ end
105
+
106
+ def self.data
107
+ @data ||= {
108
+ :instances => {},
109
+ :snapshots => {},
110
+ :servers => {},
111
+ :backups => {},
112
+ :recoveries => {},
113
+ :deleted_at => {},
114
+ :created_at => {},
115
+ :maintenance_at => {}
116
+ }
117
+ end
118
+
119
+ def self.reset
120
+ @data = nil
121
+ end
122
+
123
+ def data
124
+ self.class.data
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
@@ -1,115 +1,123 @@
1
- module Fog
2
- module OracleCloud
3
- class Java < Fog::Service
4
- requires :oracle_username, :oracle_password, :oracle_domain
5
- recognizes :oracle_region
6
-
7
- model_path 'fog/oraclecloud/models/java'
8
- model :instance
9
- collection :instances
10
- model :server
11
- collection :servers
12
-
13
- request_path 'fog/oraclecloud/requests/java'
14
- request :list_instances
15
- request :create_instance
16
- request :get_instance
17
- request :delete_instance
18
- request :list_servers
19
- request :get_server
20
- request :scale_out_a_cluster
21
- request :scale_in_a_cluster
22
- request :scale_a_node
23
-
24
- class Real
25
-
26
- def initialize(options={})
27
- @username = options[:oracle_username]
28
- @password = options[:oracle_password]
29
- @identity_domain = options[:oracle_domain]
30
- region_url = options[:oracle_region] == 'emea' ? 'https://jcs.emea.oraclecloud.com' : 'https://jaas.oraclecloud.com'
31
- Excon.ssl_verify_peer = false
32
- @connection = Fog::XML::Connection.new(region_url)
33
- end
34
-
35
- def username
36
- @username
37
- end
38
-
39
- def password
40
- @password
41
- end
42
-
43
-
44
- def auth_header
45
- auth_header ||= 'Basic ' + Base64.encode64("#{@username}:#{@password}").gsub("\n",'')
46
- end
47
-
48
- def request(params, parse_json = true, &block)
49
- begin
50
- response = @connection.request(params.merge!({
51
- :headers => {
52
- 'Authorization' => auth_header,
53
- 'X-ID-TENANT-NAME' => @identity_domain,
54
- 'Content-Type' => 'application/json',
55
- #'Accept' => 'application/json'
56
- }.merge!(params[:headers] || {})
57
- }), &block)
58
- rescue Excon::Errors::HTTPStatusError => error
59
- raise case error
60
- when Excon::Errors::NotFound
61
- Fog::OracleCloud::Java::NotFound.slurp(error)
62
- else
63
- error
64
- end
65
- end
66
- if !response.body.empty? && parse_json
67
- # The Oracle Cloud doesn't return the Content-Type header as application/json, rather as application/vnd.com.oracle.oracloud.provisioning.Pod+json
68
- # Should add check here to validate, but not sure if this might change in future
69
- response.body = Fog::JSON.decode(response.body)
70
- end
71
- response
72
- end
73
- end
74
-
75
- class Mock
76
- def initialize(options={})
77
- @username = options[:oracle_username]
78
- @password = options[:oracle_password]
79
- @identity_domain = options[:oracle_domain]
80
- @region_url = options[:oracle_region] == 'emea' ? 'https://jcs.emea.oraclecloud.com' : 'https://jaas.oraclecloud.com'
81
- end
82
-
83
- def username
84
- @username
85
- end
86
-
87
- def password
88
- @password
89
- end
90
-
91
- def region_url
92
- @region_url
93
- end
94
-
95
- def self.data
96
- @data ||= {
97
- :instances => {},
98
- :servers => {},
99
- :maintenance_at => {},
100
- :deleted_at => {},
101
- :created_at => {}
102
- }
103
- end
104
-
105
- def self.reset
106
- @data = nil
107
- end
108
-
109
- def data
110
- self.class.data
111
- end
112
- end
113
- end
114
- end
115
- end
1
+ module Fog
2
+ module OracleCloud
3
+ class Java < Fog::Service
4
+ requires :oracle_username, :oracle_password, :oracle_domain
5
+ recognizes :oracle_region
6
+
7
+ model_path 'fog/oraclecloud/models/java'
8
+ model :instance
9
+ collection :instances
10
+ model :server
11
+ collection :servers
12
+ model :access_rule
13
+ collection :access_rules
14
+
15
+ request_path 'fog/oraclecloud/requests/java'
16
+ request :list_instances
17
+ request :create_instance
18
+ request :get_instance
19
+ request :delete_instance
20
+ request :list_servers
21
+ request :get_server
22
+ request :scale_out_a_cluster
23
+ request :scale_in_a_cluster
24
+ request :scale_a_node
25
+
26
+ request :list_access_rules
27
+ request :create_access_rule
28
+ request :delete_access_rule
29
+ request :enable_access_rule
30
+
31
+ class Real
32
+
33
+ def initialize(options={})
34
+ @username = options[:oracle_username]
35
+ @password = options[:oracle_password]
36
+ @identity_domain = options[:oracle_domain]
37
+ region_url = options[:oracle_region] == 'emea' ? 'https://jcs.emea.oraclecloud.com' : 'https://jaas.oraclecloud.com'
38
+ Excon.ssl_verify_peer = false
39
+ @connection = Fog::XML::Connection.new(region_url)
40
+ end
41
+
42
+ def username
43
+ @username
44
+ end
45
+
46
+ def password
47
+ @password
48
+ end
49
+
50
+
51
+ def auth_header
52
+ auth_header ||= 'Basic ' + Base64.encode64("#{@username}:#{@password}").gsub("\n",'')
53
+ end
54
+
55
+ def request(params, parse_json = true, &block)
56
+ begin
57
+ response = @connection.request(params.merge!({
58
+ :headers => {
59
+ 'Authorization' => auth_header,
60
+ 'X-ID-TENANT-NAME' => @identity_domain,
61
+ 'Content-Type' => 'application/json',
62
+ #'Accept' => 'application/json'
63
+ }.merge!(params[:headers] || {})
64
+ }), &block)
65
+ rescue Excon::Errors::HTTPStatusError => error
66
+ raise case error
67
+ when Excon::Errors::NotFound
68
+ Fog::OracleCloud::Java::NotFound.slurp(error)
69
+ else
70
+ error
71
+ end
72
+ end
73
+ if !response.body.empty? && parse_json
74
+ # The Oracle Cloud doesn't return the Content-Type header as application/json, rather as application/vnd.com.oracle.oracloud.provisioning.Pod+json
75
+ # Should add check here to validate, but not sure if this might change in future
76
+ response.body = Fog::JSON.decode(response.body)
77
+ end
78
+ response
79
+ end
80
+ end
81
+
82
+ class Mock
83
+ def initialize(options={})
84
+ @username = options[:oracle_username]
85
+ @password = options[:oracle_password]
86
+ @identity_domain = options[:oracle_domain]
87
+ @region_url = options[:oracle_region] == 'emea' ? 'https://jcs.emea.oraclecloud.com' : 'https://jaas.oraclecloud.com'
88
+ end
89
+
90
+ def username
91
+ @username
92
+ end
93
+
94
+ def password
95
+ @password
96
+ end
97
+
98
+ def region_url
99
+ @region_url
100
+ end
101
+
102
+ def self.data
103
+ @data ||= {
104
+ :instances => {},
105
+ :servers => {},
106
+ :access_rules => {},
107
+ :maintenance_at => {},
108
+ :deleted_at => {},
109
+ :created_at => {}
110
+ }
111
+ end
112
+
113
+ def self.reset
114
+ @data = nil
115
+ end
116
+
117
+ def data
118
+ self.class.data
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end