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 2016/07/17 21:46:16 UTC
[2/4] jclouds-labs git commit: [JCLOUDS-1141] azurecompute - fix XML
generated by updateRole REST call
[JCLOUDS-1141] azurecompute - fix XML generated by updateRole REST call
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/4e37f701
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/4e37f701
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/4e37f701
Branch: refs/heads/master
Commit: 4e37f701f6864439ff7c5a5480012903a0c97f73
Parents: 913e4be
Author: Josef Cacek <jc...@redhat.com>
Authored: Sat Jul 16 12:50:42 2016 +0200
Committer: Ignasi Barrera <na...@apache.org>
Committed: Sun Jul 17 23:30:03 2016 +0200
----------------------------------------------------------------------
.../jclouds/azurecompute/binders/RoleToXML.java | 17 +++++----
.../features/VirtualMachineApiMockTest.java | 14 +++++++-
.../src/test/resources/role-update-body.xml | 36 ++++++++++++++++++++
3 files changed, 59 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/4e37f701/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
index e5f1b26..7c8d529 100644
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
+++ b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
@@ -24,6 +24,9 @@ import org.jclouds.rest.Binder;
import com.jamesmurty.utils.XMLBuilder;
+/**
+ * Generates XML request body for the <a href="https://msdn.microsoft.com/en-us/library/azure/jj157187.aspx">UpdateRole REST request</a>.
+ */
public class RoleToXML implements Binder {
@Override
@@ -32,14 +35,13 @@ public class RoleToXML implements Binder {
Role role = Role.class.cast(input);
try {
- XMLBuilder builder = XMLBuilder.create("PersistentVMRole", "http://schemas.microsoft.com/windowsazure")
- .e("RoleName").t(role.roleName()).up()
- .e("RoleType").t(role.roleType()).up()
- .e("ConfigurationSets");
-
+ XMLBuilder builder = XMLBuilder.create("PersistentVMRole", "http://schemas.microsoft.com/windowsazure");
+ builder.e("RoleName").t(role.roleName()).up()
+ .e("RoleType").t(role.roleType()).up();
+ XMLBuilder configSetsBuilder = builder.e("ConfigurationSets");
if (!role.configurationSets().isEmpty()) {
for (Role.ConfigurationSet configurationSet : role.configurationSets()) {
- XMLBuilder configBuilder = builder.e("ConfigurationSet"); // Network
+ XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Network
configBuilder.e("ConfigurationSetType").t(configurationSet.configurationSetType()).up();
XMLBuilder inputEndpoints = configBuilder.e("InputEndpoints");
@@ -63,6 +65,7 @@ public class RoleToXML implements Binder {
}
}
}
+
builder.e("DataVirtualHardDisks").up()
.e("OSVirtualHardDisk")
.e("HostCaching").t(role.osVirtualHardDisk().hostCaching()).up()
@@ -70,7 +73,7 @@ public class RoleToXML implements Binder {
.e("MediaLink").t(role.osVirtualHardDisk().mediaLink().toString()).up()
.e("SourceImageName").t(role.osVirtualHardDisk().sourceImageName()).up()
.e("OS").t(role.osVirtualHardDisk().os().toString()).up()
- .up() // DataVirtualHardDisks
+ .up() // OSVirtualHardDisk
.e("RoleSize").t(role.roleSize().getText());
return (R) request.toBuilder().payload(builder.asString()).build();
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/4e37f701/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
index 5bdd3a8..2272c70 100644
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
+++ b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
@@ -18,12 +18,17 @@ package org.jclouds.azurecompute.features;
import static org.assertj.core.api.Assertions.assertThat;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+
import org.jclouds.azurecompute.domain.Role;
import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
import org.jclouds.azurecompute.xml.RoleHandlerTest;
import org.testng.annotations.Test;
+import com.google.common.io.ByteStreams;
import com.squareup.okhttp.mockwebserver.MockWebServer;
+import com.squareup.okhttp.mockwebserver.RecordedRequest;
/*
* Note: Mock test for CaptureVMImage method is in VMImageApiMockTest class
@@ -109,7 +114,14 @@ public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest {
Role role = RoleHandlerTest.expected();
assertThat(api.updateRole("testvnetsg02", role)).isEqualTo("request-1");
- assertSent(server, "PUT", "/services/hostedservices/my-service/deployments/mydeployment/roles/testvnetsg02");
+ RecordedRequest request = assertSent(server, "PUT", "/services/hostedservices/my-service/deployments/mydeployment/roles/testvnetsg02");
+
+ final InputStream is = getClass().getResourceAsStream("/role-update-body.xml");
+ try {
+ assertThat(request.getUtf8Body()).isXmlEqualTo(new String(ByteStreams.toByteArray(is), Charset.forName("UTF-8")));
+ } finally {
+ is.close();
+ }
} finally {
server.shutdown();
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/4e37f701/azurecompute/src/test/resources/role-update-body.xml
----------------------------------------------------------------------
diff --git a/azurecompute/src/test/resources/role-update-body.xml b/azurecompute/src/test/resources/role-update-body.xml
new file mode 100644
index 0000000..c095352
--- /dev/null
+++ b/azurecompute/src/test/resources/role-update-body.xml
@@ -0,0 +1,36 @@
+<PersistentVMRole xmlns="http://schemas.microsoft.com/windowsazure">
+ <RoleName>testvnetsg02</RoleName>
+ <RoleType>PersistentVMRole</RoleType>
+ <ConfigurationSets>
+ <ConfigurationSet>
+ <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
+ <InputEndpoints>
+ <InputEndpoint>
+ <LocalPort>5986</LocalPort>
+ <Name>PowerShell</Name>
+ <Port>5986</Port>
+ <Protocol>tcp</Protocol>
+ </InputEndpoint>
+ <InputEndpoint>
+ <LocalPort>3389</LocalPort>
+ <Name>Remote Desktop</Name>
+ <Port>59440</Port>
+ <Protocol>tcp</Protocol>
+ </InputEndpoint>
+ </InputEndpoints>
+ <SubnetNames>
+ <SubnetName>Subnet-1</SubnetName>
+ </SubnetNames>
+ <NetworkSecurityGroup>vnetnsgsg01</NetworkSecurityGroup>
+ </ConfigurationSet>
+ </ConfigurationSets>
+ <DataVirtualHardDisks />
+ <OSVirtualHardDisk>
+ <HostCaching>ReadWrite</HostCaching>
+ <DiskName>testvnetsg02-testvnetsg02-0-201502180825130518</DiskName>
+ <MediaLink>https://portalvhdsxz8nc6chc32j1.blob.core.windows.net/vhds/testvnetsg02-testvnetsg02-2015-02-18.vhd</MediaLink>
+ <SourceImageName>a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd</SourceImageName>
+ <OS>WINDOWS</OS>
+ </OSVirtualHardDisk>
+ <RoleSize>Small</RoleSize>
+</PersistentVMRole>