You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2019/08/09 10:27:59 UTC
[jclouds] branch 2.1.x updated: Add tag support to azure disks
This is an automated email from the ASF dual-hosted git repository.
nacx pushed a commit to branch 2.1.x
in repository https://gitbox.apache.org/repos/asf/jclouds.git
The following commit(s) were added to refs/heads/2.1.x by this push:
new bd59263 Add tag support to azure disks
bd59263 is described below
commit bd59263d470f4307fe1a70a064e11c1ebeea064a
Author: Simone Locci <si...@cloudesire.com>
AuthorDate: Tue Aug 6 17:34:19 2019 +0200
Add tag support to azure disks
---
.../jclouds/azurecompute/arm/features/DiskApi.java | 11 +++++++++++
.../azurecompute/arm/features/DiskApiLiveTest.java | 4 +++-
.../azurecompute/arm/features/DiskApiMockTest.java | 20 ++++++++++++++++++++
.../test/resources/creatediskwithtagsresponse.json | 14 ++++++++++++++
4 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
index 10e9ac6..e8b6cf2 100644
--- a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
+++ b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java
@@ -18,6 +18,7 @@ package org.jclouds.azurecompute.arm.features;
import java.net.URI;
import java.util.List;
+import java.util.Map;
import javax.inject.Named;
import javax.ws.rs.Consumes;
@@ -34,6 +35,7 @@ import org.jclouds.azurecompute.arm.domain.Disk;
import org.jclouds.azurecompute.arm.domain.DiskProperties;
import org.jclouds.azurecompute.arm.filters.ApiVersionFilter;
import org.jclouds.azurecompute.arm.functions.URIParser;
+import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.filters.OAuthFilter;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.MapBinder;
@@ -62,6 +64,15 @@ public interface DiskApi {
@PayloadParam("location") String location,
@PayloadParam("properties") DiskProperties properties);
+ @Named("disk:create_or_update")
+ @PUT
+ @MapBinder(BindToJsonPayload.class)
+ @Path("/{diskName}")
+ Disk createOrUpdate(@PathParam("diskName") String diskName,
+ @PayloadParam("location") String location,
+ @Nullable @PayloadParam("tags") Map<String, String> tags,
+ @PayloadParam("properties") DiskProperties properties);
+
@Named("disk:get")
@Path("/{diskName}")
@GET
diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java
index f5af885..7975522 100644
--- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java
+++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiLiveTest.java
@@ -30,6 +30,7 @@ import org.testng.annotations.Test;
import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import static org.testng.Assert.assertNotNull;
@@ -58,9 +59,10 @@ public class DiskApiLiveTest extends BaseAzureComputeApiLiveTest {
@Test
public void createDisk() {
DiskProperties properties = DiskProperties.builder().creationData(CreationData.create(CreationData.CreateOptions.EMPTY)).diskSizeGB(2).build();
- Disk dataDisk = api().createOrUpdate(diskName, LOCATION, properties);
+ Disk dataDisk = api().createOrUpdate(diskName, LOCATION, ImmutableMap.of("exampleTag", "jclouds-test-tag"), properties);
assertTrue(waitUntilAvailable(diskName), "creation operation did not complete in the configured timeout");
assertTrue(dataDisk.properties().diskSizeGB() == 2);
+ assertTrue(dataDisk.tags().containsValue("jclouds-test-tag"));
}
@Test(dependsOnMethods = "createDisk")
diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java
index 4c8ba2e..d3a0ca0 100644
--- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java
+++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/DiskApiMockTest.java
@@ -19,6 +19,7 @@ package org.jclouds.azurecompute.arm.features;
import java.net.URI;
import java.util.List;
+import com.google.common.collect.ImmutableMap;
import org.jclouds.azurecompute.arm.domain.CreationData;
import org.jclouds.azurecompute.arm.domain.Disk;
import org.jclouds.azurecompute.arm.domain.DiskProperties;
@@ -58,6 +59,25 @@ public class DiskApiMockTest extends BaseAzureComputeApiMockTest {
assertTrue(dataDisk.properties().diskSizeGB() == 2);
}
+ public void createDiskWithTags() throws InterruptedException {
+
+ server.enqueue(jsonResponse("/creatediskwithtagsresponse.json").setResponseCode(200));
+
+ final DiskApi diskApi = api.getDiskApi(resourcegroup);
+
+ DiskProperties properties = DiskProperties.builder().diskSizeGB(2).creationData(CreationData.create(CreationData.CreateOptions.EMPTY)).build();
+
+ Disk dataDisk = diskApi.createOrUpdate(diskName, "westus", ImmutableMap.of("exampleTag", "jclouds-test-tag"), properties);
+
+ String path = String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Compute/disks/%s?%s", subscriptionid, resourcegroup, diskName, apiVersion);
+ String json = "{\"location\":\"westus\",\"tags\":{\"exampleTag\":\"jclouds-test-tag\"},\"properties\":{\"diskSizeGB\":2,\"creationData\":{\"createOption\":\"Empty\"}}}";
+ assertSent(server, "PUT", path, json);
+
+ assertEquals(dataDisk.properties().provisioningState(), "Updating");
+ assertTrue(dataDisk.properties().diskSizeGB() == 2);
+ assertTrue(dataDisk.tags().containsValue("jclouds-test-tag"));
+ }
+
public void getDisk() throws InterruptedException {
server.enqueue(jsonResponse("/getdisk.json").setResponseCode(200));
diff --git a/providers/azurecompute-arm/src/test/resources/creatediskwithtagsresponse.json b/providers/azurecompute-arm/src/test/resources/creatediskwithtagsresponse.json
new file mode 100644
index 0000000..ff9d625
--- /dev/null
+++ b/providers/azurecompute-arm/src/test/resources/creatediskwithtagsresponse.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 2,
+ "provisioningState": "Updating",
+ "isArmResource": true
+ },
+ "tags": {
+ "exampleTag": "jclouds-test-tag"
+ },
+ "location": "westeurope"
+}