Skip to content

Commit 45eb829

Browse files
authored
Merge pull request #64 from oracle/release_2018-05-17
Releasing version 1.2.38
2 parents c68cbbc + 0f892f8 commit 45eb829

File tree

114 files changed

+7980
-406
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+7980
-406
lines changed

CHANGELOG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,19 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
1313
### Added
1414
- N/A
1515

16+
## 1.2.38 - 2018-05-17
17+
18+
### Fixed
19+
- Allow deserializing multiple query params
20+
- Updated `GetInstancePublicIpExample` to now account for public IPs that may be associated with secondary private IP addresses
21+
22+
### Added
23+
- Support for launching a database system from a backup in the Database service
24+
- Support for backup or clone of multiple volumes at once using volume groups in the Block Storage service
25+
- Support for the ability to optionally specify a compartment filter when listing exports in the File Storage service
26+
- Support for tagging virtual cloud network resources in the Networking service
27+
- Support for specifying the `PARAVIRTUALIZED` remote volume type when creating a virtual image or launching a new instance in the Compute service
28+
1629
## 1.2.37 - 2018-05-03
1730

1831
### Fixed
@@ -22,6 +35,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
2235
### Added
2336
- Support for returning names for events in the Audit service
2437
- Support for multiple hostnames per listener in the Load Balancing service
38+
- Support waiting on multiple target states in `Waiter`
2539

2640
## 1.2.35 - 2018-04-19
2741

@@ -32,7 +46,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
3246
### Added
3347
- Support for tagging DbSystem and Database resources in the Database Service
3448
- Support for filtering by `dbSystemId` in `listDbVersions` operation in Database Service
35-
- Support waiting on multiple target states in `Waiter`
3649

3750
## 1.2.34 - 2018-04-05
3851

bmc-audit/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk</artifactId>
8-
<version>1.2.37</version>
8+
<version>1.2.38</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

@@ -18,7 +18,7 @@
1818
<dependency>
1919
<groupId>com.oracle.oci.sdk</groupId>
2020
<artifactId>oci-java-sdk-common</artifactId>
21-
<version>1.2.37</version>
21+
<version>1.2.38</version>
2222
</dependency>
2323
</dependencies>
2424

bmc-bom/pom.xml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk</artifactId>
8-
<version>1.2.37</version>
8+
<version>1.2.38</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111
<artifactId>oci-java-sdk-bom</artifactId>
@@ -19,62 +19,62 @@
1919
<dependency>
2020
<groupId>com.oracle.oci.sdk</groupId>
2121
<artifactId>oci-java-sdk-common</artifactId>
22-
<version>1.2.37</version>
22+
<version>1.2.38</version>
2323
<optional>false</optional>
2424
</dependency>
2525
<!-- Service modules, alpha sorted -->
2626
<dependency>
2727
<groupId>com.oracle.oci.sdk</groupId>
2828
<artifactId>oci-java-sdk-audit</artifactId>
29-
<version>1.2.37</version>
29+
<version>1.2.38</version>
3030
<optional>false</optional>
3131
</dependency>
3232
<dependency>
3333
<groupId>com.oracle.oci.sdk</groupId>
3434
<artifactId>oci-java-sdk-core</artifactId>
35-
<version>1.2.37</version>
35+
<version>1.2.38</version>
3636
<optional>false</optional>
3737
</dependency>
3838
<dependency>
3939
<groupId>com.oracle.oci.sdk</groupId>
4040
<artifactId>oci-java-sdk-database</artifactId>
41-
<version>1.2.37</version>
41+
<version>1.2.38</version>
4242
<optional>false</optional>
4343
</dependency>
4444
<dependency>
4545
<groupId>com.oracle.oci.sdk</groupId>
4646
<artifactId>oci-java-sdk-dns</artifactId>
47-
<version>1.2.37</version>
47+
<version>1.2.38</version>
4848
<optional>false</optional>
4949
</dependency>
5050
<dependency>
5151
<groupId>com.oracle.oci.sdk</groupId>
5252
<artifactId>oci-java-sdk-email</artifactId>
53-
<version>1.2.37</version>
53+
<version>1.2.38</version>
5454
<optional>false</optional>
5555
</dependency>
5656
<dependency>
5757
<groupId>com.oracle.oci.sdk</groupId>
5858
<artifactId>oci-java-sdk-filestorage</artifactId>
59-
<version>1.2.37</version>
59+
<version>1.2.38</version>
6060
<optional>false</optional>
6161
</dependency>
6262
<dependency>
6363
<groupId>com.oracle.oci.sdk</groupId>
6464
<artifactId>oci-java-sdk-identity</artifactId>
65-
<version>1.2.37</version>
65+
<version>1.2.38</version>
6666
<optional>false</optional>
6767
</dependency>
6868
<dependency>
6969
<groupId>com.oracle.oci.sdk</groupId>
7070
<artifactId>oci-java-sdk-loadbalancer</artifactId>
71-
<version>1.2.37</version>
71+
<version>1.2.38</version>
7272
<optional>false</optional>
7373
</dependency>
7474
<dependency>
7575
<groupId>com.oracle.oci.sdk</groupId>
7676
<artifactId>oci-java-sdk-objectstorage</artifactId>
77-
<version>1.2.37</version>
77+
<version>1.2.38</version>
7878
<optional>false</optional>
7979
<type>pom</type>
8080
</dependency>

bmc-common/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk</artifactId>
8-
<version>1.2.37</version>
8+
<version>1.2.38</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
3+
*/
4+
package com.oracle.bmc.auth.exception;
5+
6+
/**
7+
* Failed to fetch Instance Principal cert from the Instance Metadata Service.
8+
*/
9+
public class InstancePrincipalUnavailableException extends IllegalArgumentException {
10+
public InstancePrincipalUnavailableException(String message, Exception cause) {
11+
super(message, cause);
12+
}
13+
14+
public InstancePrincipalUnavailableException(String message) {
15+
super(message);
16+
}
17+
}

bmc-common/src/main/java/com/oracle/bmc/auth/internal/AuthUtils.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.security.interfaces.RSAPublicKey;
1919
import java.security.spec.RSAPublicKeySpec;
2020

21+
import com.oracle.bmc.auth.exception.InstancePrincipalUnavailableException;
2122
import org.apache.commons.codec.binary.Base64;
2223
import org.apache.commons.lang3.StringUtils;
2324
import org.bouncycastle.asn1.x500.AttributeTypeAndValue;
@@ -223,9 +224,11 @@ public static String getTenantIdFromCertificate(X509Certificate certificate) {
223224
}
224225
}
225226
} catch (CertificateEncodingException ex) {
226-
throw new IllegalArgumentException("The certificate is not valid one.", ex);
227+
throw new InstancePrincipalUnavailableException(
228+
"The certificate is not valid one.", ex);
227229
}
228230

229-
throw new IllegalArgumentException("The certificate does not contain tenant id.");
231+
throw new InstancePrincipalUnavailableException(
232+
"The certificate does not contain tenant id.");
230233
}
231234
}

bmc-common/src/main/java/com/oracle/bmc/util/internal/HttpUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,9 @@ public static <T> WrappedWebTarget encodeCollectionFormatQueryParam(
215215
queryParamName,
216216
attemptEncodeQueryParam(StringUtils.join(valuesToUse, '\t')));
217217
} else if (collectionFormatType == CollectionFormatType.Multi) {
218-
final List<Object> encodedValuesToUse = new ArrayList<>();
219-
for (Object v : valuesToUse) {
220-
encodedValuesToUse.add(attemptEncodeQueryParam(v));
218+
final Object[] encodedValuesToUse = new Object[valuesToUse.size()];
219+
for (int i = 0; i < valuesToUse.size(); i++) {
220+
encodedValuesToUse[i] = attemptEncodeQueryParam(valuesToUse.get(i));
221221
}
222222
target = target.queryParam(queryParamName, encodedValuesToUse);
223223
} else {

bmc-common/src/test/java/com/oracle/bmc/util/internal/HttpUtilsTest.java

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,7 @@ public void encodeCollectionFormatQueryParam_singleElementList() {
228228
WrappedWebTarget result =
229229
HttpUtils.encodeCollectionFormatQueryParam(wrapped, "unitTest", values, cft);
230230

231-
if (cft == CollectionFormatType.Multi) {
232-
final List<Object> expected = new ArrayList<>();
233-
expected.add("single");
234-
verify(target).queryParam("unitTest", expected);
235-
} else {
236-
verify(target).queryParam("unitTest", "single");
237-
}
231+
verify(target).queryParam("unitTest", "single");
238232
}
239233
}
240234

@@ -260,10 +254,7 @@ public void encodeCollectionFormatQueryParam_multipleElementList() {
260254
} else if (cft == CollectionFormatType.TabSeparated) {
261255
verify(target).queryParam("unitTest", "number1%09number2");
262256
} else if (cft == CollectionFormatType.Multi) {
263-
final List<Object> expected = new ArrayList<>();
264-
expected.add("number1");
265-
expected.add("number2");
266-
verify(target).queryParam("unitTest", expected);
257+
verify(target).queryParam("unitTest", "number1", "number2");
267258
} else {
268259
fail("Unrecognized CollectionFormatType: " + cft.toString());
269260
}
@@ -292,10 +283,7 @@ public void encodeCollectionFormatQueryParam_enumListMembers() {
292283
} else if (cft == CollectionFormatType.TabSeparated) {
293284
verify(target).queryParam("unitTest", "PROVISIONING%09STOPPING");
294285
} else if (cft == CollectionFormatType.Multi) {
295-
final List<Object> expected = new ArrayList<>();
296-
expected.add("PROVISIONING");
297-
expected.add("STOPPING");
298-
verify(target).queryParam("unitTest", expected);
286+
verify(target).queryParam("unitTest", "PROVISIONING", "STOPPING");
299287
} else {
300288
fail("Unrecognized CollectionFormatType: " + cft.toString());
301289
}
@@ -324,9 +312,7 @@ public void encodeCollectionFormatQueryParam_nullMembersIgnored() {
324312
} else if (cft == CollectionFormatType.TabSeparated) {
325313
verify(target).queryParam("unitTest", "RUNNING");
326314
} else if (cft == CollectionFormatType.Multi) {
327-
final List<Object> expected = new ArrayList<>();
328-
expected.add("RUNNING");
329-
verify(target).queryParam("unitTest", expected);
315+
verify(target).queryParam("unitTest", "RUNNING");
330316
} else {
331317
fail("Unrecognized CollectionFormatType: " + cft.toString());
332318
}

bmc-core/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk</artifactId>
8-
<version>1.2.37</version>
8+
<version>1.2.38</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

@@ -18,7 +18,7 @@
1818
<dependency>
1919
<groupId>com.oracle.oci.sdk</groupId>
2020
<artifactId>oci-java-sdk-common</artifactId>
21-
<version>1.2.37</version>
21+
<version>1.2.38</version>
2222
</dependency>
2323
</dependencies>
2424

bmc-core/src/main/java/com/oracle/bmc/core/Blockstorage.java

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,28 @@ public interface Blockstorage extends AutoCloseable {
8484
CreateVolumeBackupPolicyAssignmentResponse createVolumeBackupPolicyAssignment(
8585
CreateVolumeBackupPolicyAssignmentRequest request);
8686

87+
/**
88+
* Creates a new volume group in the specified compartment. A volume group can have at most 20 block volumes.
89+
* A volume group is a collection of volumes and may be created from a list of volumes, cloning an existing
90+
* volume group or by restoring a volume group backup.
91+
* You may optionally specify a *display name* for the volume group, which is simply a friendly name or
92+
* description. It does not have to be unique, and you can change it. Avoid entering confidential information.
93+
*
94+
* @param request The request object containing the details to send
95+
* @return A response object containing details about the completed operation
96+
* @throws BmcException when an error occurs.
97+
*/
98+
CreateVolumeGroupResponse createVolumeGroup(CreateVolumeGroupRequest request);
99+
100+
/**
101+
* Creates a new group backup of the specified volume group.
102+
*
103+
* @param request The request object containing the details to send
104+
* @return A response object containing details about the completed operation
105+
* @throws BmcException when an error occurs.
106+
*/
107+
CreateVolumeGroupBackupResponse createVolumeGroupBackup(CreateVolumeGroupBackupRequest request);
108+
87109
/**
88110
* Deletes the specified boot volume. The volume cannot have an active connection to an instance.
89111
* To disconnect the boot volume from a connected instance, see
@@ -125,6 +147,23 @@ CreateVolumeBackupPolicyAssignmentResponse createVolumeBackupPolicyAssignment(
125147
DeleteVolumeBackupPolicyAssignmentResponse deleteVolumeBackupPolicyAssignment(
126148
DeleteVolumeBackupPolicyAssignmentRequest request);
127149

150+
/**
151+
* Deletes the specified volume group. This will NOT delete data volumes.
152+
*
153+
* @param request The request object containing the details to send
154+
* @return A response object containing details about the completed operation
155+
* @throws BmcException when an error occurs.
156+
*/
157+
DeleteVolumeGroupResponse deleteVolumeGroup(DeleteVolumeGroupRequest request);
158+
159+
/**
160+
* Deletes a volume group backup. This will NOT delete backups within the volume group backup.
161+
* @param request The request object containing the details to send
162+
* @return A response object containing details about the completed operation
163+
* @throws BmcException when an error occurs.
164+
*/
165+
DeleteVolumeGroupBackupResponse deleteVolumeGroupBackup(DeleteVolumeGroupBackupRequest request);
166+
128167
/**
129168
* Gets information for the specified boot volume.
130169
* @param request The request object containing the details to send
@@ -178,6 +217,22 @@ GetVolumeBackupPolicyAssetAssignmentResponse getVolumeBackupPolicyAssetAssignmen
178217
GetVolumeBackupPolicyAssignmentResponse getVolumeBackupPolicyAssignment(
179218
GetVolumeBackupPolicyAssignmentRequest request);
180219

220+
/**
221+
* Gets information for the specified volume group.
222+
* @param request The request object containing the details to send
223+
* @return A response object containing details about the completed operation
224+
* @throws BmcException when an error occurs.
225+
*/
226+
GetVolumeGroupResponse getVolumeGroup(GetVolumeGroupRequest request);
227+
228+
/**
229+
* Gets information for the specified volume group backup.
230+
* @param request The request object containing the details to send
231+
* @return A response object containing details about the completed operation
232+
* @throws BmcException when an error occurs.
233+
*/
234+
GetVolumeGroupBackupResponse getVolumeGroupBackup(GetVolumeGroupBackupRequest request);
235+
181236
/**
182237
* Lists the boot volumes in the specified compartment and Availability Domain.
183238
*
@@ -205,6 +260,24 @@ ListVolumeBackupPoliciesResponse listVolumeBackupPolicies(
205260
*/
206261
ListVolumeBackupsResponse listVolumeBackups(ListVolumeBackupsRequest request);
207262

263+
/**
264+
* Lists the backups for volume groups in the specified compartment. You can filter the results by volume group.
265+
*
266+
* @param request The request object containing the details to send
267+
* @return A response object containing details about the completed operation
268+
* @throws BmcException when an error occurs.
269+
*/
270+
ListVolumeGroupBackupsResponse listVolumeGroupBackups(ListVolumeGroupBackupsRequest request);
271+
272+
/**
273+
* Lists the volume groups in the specified compartment and Availability Domain.
274+
*
275+
* @param request The request object containing the details to send
276+
* @return A response object containing details about the completed operation
277+
* @throws BmcException when an error occurs.
278+
*/
279+
ListVolumeGroupsResponse listVolumeGroups(ListVolumeGroupsRequest request);
280+
208281
/**
209282
* Lists the volumes in the specified compartment and Availability Domain.
210283
*
@@ -242,6 +315,25 @@ ListVolumeBackupPoliciesResponse listVolumeBackupPolicies(
242315
*/
243316
UpdateVolumeBackupResponse updateVolumeBackup(UpdateVolumeBackupRequest request);
244317

318+
/**
319+
* Updates the set of volumes in a volume group along with (optionally) it's display name. This call can be used
320+
* to add or remove volumes in a volume group. The entire list of volume ids must be specified.
321+
* Avoid entering confidential information.
322+
*
323+
* @param request The request object containing the details to send
324+
* @return A response object containing details about the completed operation
325+
* @throws BmcException when an error occurs.
326+
*/
327+
UpdateVolumeGroupResponse updateVolumeGroup(UpdateVolumeGroupRequest request);
328+
329+
/**
330+
* Updates the display name for the specified volume group backup.
331+
* @param request The request object containing the details to send
332+
* @return A response object containing details about the completed operation
333+
* @throws BmcException when an error occurs.
334+
*/
335+
UpdateVolumeGroupBackupResponse updateVolumeGroupBackup(UpdateVolumeGroupBackupRequest request);
336+
245337
/**
246338
* Gets the pre-configured waiters available for resources for this service.
247339
*

0 commit comments

Comments
 (0)