Remove deprecated Azure provider
diff --git a/azurecompute/.gitignore b/azurecompute/.gitignore
deleted file mode 100644
index 8fb7bef..0000000
--- a/azurecompute/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# use glob syntax.
-syntax: glob
-target
-.settings
-.classpath
-.project
-jclouds-azurecompute.iml
-jclouds-azurecompute.ipr
-jclouds-azurecompute.iws
diff --git a/azurecompute/README.md b/azurecompute/README.md
deleted file mode 100644
index 7d251d7..0000000
--- a/azurecompute/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## Annotation processing
-In order for value object and service loader auto-generation, you will need to enable annotation processing in your IDE.
-If you notice any inconsistencies in your IDE after you enable annotation processing, try rerunning "Make Project".
-
-## Setting up test credentials
-
-Azure requests are signed by via SSL certificate. You need to upload one into your account in order to run tests.
-
-```bash
-# create the certificate request
-mkdir -m 700 $HOME/.jclouds
-openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout $HOME/.jclouds/azure.pem -out $HOME/.jclouds/azure.pem
-# create the p12 file, and note your export password. This will be your test credentials.
-openssl pkcs12 -export -out $HOME/.jclouds/azure.p12 -in $HOME/.jclouds/azure.pem -name "jclouds :: $USER"
-# create a cer file which you upload to the management console to authorize this certificate.
-# https://manage.windowsazure.com/@ignasibarreragmail.onmicrosoft.com#Workspaces/AdminTasks/ListManagementCertificates
-# note you need to press command+shift+. to display hidden directories in a open dialog in osx
-openssl x509 -inform pem -in $HOME/.jclouds/azure.pem -outform der -out $HOME/.jclouds/azure.cer
-```
-
-Once you do this, you will set the following to run the live tests.
-```bash
-mvn -Plive -Dtest.azurecompute.endpoint=https://management.core.windows.net/12345678-abcd-dcba-abdc-ba0987654321 \
--Dtest.azurecompute.credential=P12_EXPORT_PASSWORD \
--Dtest.azurecompute.identity=$HOME/.jclouds/azure.p12
-```
\ No newline at end of file
diff --git a/azurecompute/pom.xml b/azurecompute/pom.xml
deleted file mode 100644
index c46719d..0000000
--- a/azurecompute/pom.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.jclouds.labs</groupId>
- <artifactId>jclouds-labs</artifactId>
- <version>2.2.0-SNAPSHOT</version>
- </parent>
-
- <!-- TODO: when out of labs, switch to org.jclouds.provider -->
- <artifactId>azurecompute</artifactId>
- <name>jclouds azure compute API</name>
- <description>jclouds components to access an implementation of Azure's Compute Service</description>
- <packaging>bundle</packaging>
-
- <properties>
- <test.jclouds.azurecompute.subscription-id>FIXME_subscription-id</test.jclouds.azurecompute.subscription-id>
- <!-- note that there's no prefix of "test." in the url. This is to ensure that jclouds inteprets the value, as opposed to maven -->
- <test.azurecompute.endpoint>https://management.core.windows.net/${test.jclouds.azurecompute.subscription-id}</test.azurecompute.endpoint>
- <test.azurecompute.api-version>2014-10-01</test.azurecompute.api-version>
- <test.azurecompute.build-version />
- <test.azurecompute.identity>/path/to/cert.p12</test.azurecompute.identity>
- <test.azurecompute.credential>password to cert</test.azurecompute.credential>
- <jclouds.osgi.export>org.jclouds.azurecompute*;version="${project.version}"</jclouds.osgi.export>
- <jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>com.jamesmurty.utils</groupId>
- <artifactId>java-xmlbuilder</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-compute</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.auto.service</groupId>
- <artifactId>auto-service</artifactId>
- <scope>provided</scope>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>com.google.auto.value</groupId>
- <artifactId>auto-value</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-core</artifactId>
- <version>${project.parent.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-compute</artifactId>
- <version>${project.parent.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-slf4j</artifactId>
- <version>${project.parent.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-slf4j</artifactId>
- <version>${project.parent.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-sshj</artifactId>
- <version>${project.parent.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.squareup.okhttp</groupId>
- <artifactId>mockwebserver</artifactId>
- <scope>test</scope>
- <exclusions>
- <!-- Already provided by jclouds-sshj -->
- <exclusion>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk15on</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>live</id>
-
- <build>
- <defaultGoal>clean verify</defaultGoal>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>integration</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <systemPropertyVariables>
- <test.azurecompute.endpoint>${test.azurecompute.endpoint}</test.azurecompute.endpoint>
- <test.azurecompute.api-version>${test.azurecompute.api-version}</test.azurecompute.api-version>
- <test.azurecompute.build-version>${test.azurecompute.build-version}</test.azurecompute.build-version>
- <test.azurecompute.identity>${test.azurecompute.identity}</test.azurecompute.identity>
- <test.azurecompute.credential>${test.azurecompute.credential}</test.azurecompute.credential>
- <test.jclouds.azurecompute.subscription-id>${test.jclouds.azurecompute.subscription-id}</test.jclouds.azurecompute.subscription-id>
- </systemPropertyVariables>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeApi.java
deleted file mode 100644
index d7e78f2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeApi.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute;
-
-import java.io.Closeable;
-
-import javax.ws.rs.PathParam;
-
-import org.jclouds.azurecompute.features.AffinityGroupApi;
-import org.jclouds.azurecompute.features.CloudServiceApi;
-import org.jclouds.azurecompute.features.DeploymentApi;
-import org.jclouds.azurecompute.features.DiskApi;
-import org.jclouds.azurecompute.features.LocationApi;
-import org.jclouds.azurecompute.features.NetworkSecurityGroupApi;
-import org.jclouds.azurecompute.features.OSImageApi;
-import org.jclouds.azurecompute.features.OperationApi;
-import org.jclouds.azurecompute.features.ReservedIPAddressApi;
-import org.jclouds.azurecompute.features.ServiceCertificatesApi;
-import org.jclouds.azurecompute.features.StorageAccountApi;
-import org.jclouds.azurecompute.features.SubscriptionApi;
-import org.jclouds.azurecompute.features.TrafficManagerApi;
-import org.jclouds.azurecompute.features.VirtualMachineApi;
-import org.jclouds.azurecompute.features.VirtualNetworkApi;
-import org.jclouds.azurecompute.features.VMImageApi;
-import org.jclouds.rest.annotations.Delegate;
-
-/**
- * The Windows Azure Service Management API is a REST API for managing your services and deployments.
- * <p/>
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460799" >doc</a>
- */
-public interface AzureComputeApi extends Closeable {
-
- /**
- * The Service Management API includes operations for managing affinity groups in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/azure/ee460798">docs</a>
- */
- @Delegate
- AffinityGroupApi getAffinityGroupApi();
-
- /**
- * The Service Management API includes operations for listing the available data center locations for a cloud service
- * in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441299">docs</a>
- */
- @Delegate
- LocationApi getLocationApi();
-
- /**
- * The Service Management API includes operations for managing the cloud services beneath your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
- */
- @Delegate
- CloudServiceApi getCloudServiceApi();
-
- /**
- * The Service Management API includes operations for managing the virtual machines in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157206">docs</a>
- */
- @Delegate
- DeploymentApi getDeploymentApiForService(@PathParam("serviceName") String serviceName);
-
- /**
- * The Service Management API includes operations for managing the virtual machines in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157206">docs</a>
- */
- // TODO: revisit once we have multi-level @Delegate working
- @Delegate
- VirtualMachineApi getVirtualMachineApiForDeploymentInService(@PathParam("deploymentName") String deploymentName,
- @PathParam("serviceName") String serviceName);
-
- /**
- * The Service Management API includes operations for managing the OS images in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157175">docs</a>
- */
- @Delegate
- OSImageApi getOSImageApi();
-
- /**
- * The Service Management API includes operations for Tracking Asynchronous Service Management Requests.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460791">docs</a>
- */
- @Delegate
- OperationApi getOperationApi();
-
- /**
- * The Service Management API includes operations for managing Disks in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157188">docs</a>
- */
- @Delegate
- DiskApi getDiskApi();
-
- /**
- * The Service Management API includes operations for retrieving information about a subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/azure/gg715315.aspx">docs</a>
- */
- @Delegate
- SubscriptionApi getSubscriptionApi();
-
- /**
- * The Service Management API includes operations for managing the virtual networks in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157182.aspx">docs</a>
- */
- @Delegate
- VirtualNetworkApi getVirtualNetworkApi();
-
- /**
- * The Service Management API includes operations for managing the storage accounts in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460790.aspx">docs</a>
- */
- @Delegate
- StorageAccountApi getStorageAccountApi();
-
- /**
- * The Service Management API includes operations for managing the Network Security Groups in your subscription.
- *
- */
- @Delegate
- NetworkSecurityGroupApi getNetworkSecurityGroupApi();
-
- /**
- * The Service Management API includes operations for creating, updating, listing, and deleting Azure Traffic Manager
- * profiles and definitions.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758255.aspx">docs</a>
- */
- @Delegate
- TrafficManagerApi getTrafficManaerApi();
-
- /**
- * The Service Management API includes operations for managing service certificates in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx">docs</a>
- */
- @Delegate
- ServiceCertificatesApi getServiceCertificatesApi();
-
- /**
- * The Service Management API includes operations for managing the reserved IP addresses in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722420.aspxx">docs</a>
- */
- @Delegate
- ReservedIPAddressApi getReservedIPAddressApi();
- /*
- * The Service Management API includes operations for managing the VM Images in your subscription.
- */
- @Delegate
- VMImageApi getVMImageApi();
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
deleted file mode 100644
index 4a82f67..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureComputeProviderMetadata.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute;
-
-import static org.jclouds.azurecompute.config.AzureComputeProperties.DEALLOCATE_WHEN_SUSPENDING;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_FORMAT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_REGEXP;
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.azurecompute.domain.Region;
-import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.providers.internal.BaseProviderMetadata;
-
-import com.google.auto.service.AutoService;
-
-@AutoService(ProviderMetadata.class)
-public class AzureComputeProviderMetadata extends BaseProviderMetadata {
-
- public static Builder builder() {
- return new Builder();
- }
-
- @Override
- public Builder toBuilder() {
- return builder().fromProviderMetadata(this);
- }
-
- public AzureComputeProviderMetadata() {
- super(builder());
- }
-
- public static Properties defaultProperties() {
- final Properties properties = AzureManagementApiMetadata.defaultProperties();
- properties.setProperty(OPERATION_TIMEOUT, "60000");
- properties.setProperty(OPERATION_POLL_INITIAL_PERIOD, "5");
- properties.setProperty(OPERATION_POLL_MAX_PERIOD, "15");
- properties.setProperty(TCP_RULE_FORMAT, "tcp_%s-%s");
- properties.setProperty(TCP_RULE_REGEXP, "tcp_\\d{1,5}-\\d{1,5}");
- properties.setProperty(DEALLOCATE_WHEN_SUSPENDING, "true");
- return properties;
- }
-
- public AzureComputeProviderMetadata(final Builder builder) {
- super(builder);
- }
-
- public static class Builder extends BaseProviderMetadata.Builder {
-
- protected Builder() {
- super();
-
- id("azurecompute")
- .name("Microsoft Azure Service Management Service")
- .apiMetadata(new AzureManagementApiMetadata())
- .endpoint("https://management.core.windows.net/SUBSCRIPTION_ID")
- .homepage(URI.create("https://www.windowsazure.com/"))
- .console(URI.create("https://windows.azure.com/default.aspx"))
- .linkedServices("azureblob", "azurequeue", "azuretable")
- .iso3166Codes(Region.iso3166Codes())
- .defaultProperties(AzureComputeProviderMetadata.defaultProperties());
- }
-
- @Override
- public AzureComputeProviderMetadata build() {
- return new AzureComputeProviderMetadata(this);
- }
-
- @Override
- public Builder fromProviderMetadata(final ProviderMetadata providerMetadata) {
- super.fromProviderMetadata(providerMetadata);
- return this;
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureManagementApiMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/AzureManagementApiMetadata.java
deleted file mode 100644
index 406b029..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/AzureManagementApiMetadata.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute;
-
-import static org.jclouds.reflect.Reflection2.typeToken;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule;
-import org.jclouds.azurecompute.config.AzureComputeHttpApiModule;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.rest.internal.BaseHttpApiMetadata;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-/**
- * Implementation of {@link ApiMetadata} for Microsoft Service Management Service API
- */
-public class AzureManagementApiMetadata extends BaseHttpApiMetadata<AzureComputeApi> {
-
- @Override
- public Builder toBuilder() {
- return new Builder().fromApiMetadata(this);
- }
-
- public AzureManagementApiMetadata() {
- this(new Builder());
- }
-
- protected AzureManagementApiMetadata(final Builder builder) {
- super(builder);
- }
-
- public static Properties defaultProperties() {
- final Properties properties = BaseHttpApiMetadata.defaultProperties();
- // Sometimes SSH Authentication failure happens in Azure.
- // It seems that the authorized key is injected after ssh has been started.
- properties.setProperty("jclouds.ssh.max-retries", "15");
- properties.setProperty("jclouds.ssh.retry-auth", "true");
- return properties;
- }
-
- public static class Builder extends BaseHttpApiMetadata.Builder<AzureComputeApi, Builder> {
-
- protected Builder() {
- super();
-
- id("azurecompute")
- .name("Microsoft Azure Service Management Service API")
- .version("2014-10-01")
- .identityName("Path to Management Certificate .p12 file, or PEM string")
- .credentialName("Password to Management Certificate")
- .endpointName("Service Management Endpoint ending in your Subscription Id")
- .documentation(URI.create("http://msdn.microsoft.com/en-us/library/ee460799"))
- .defaultProperties(AzureManagementApiMetadata.defaultProperties())
- .view(typeToken(ComputeServiceContext.class))
- .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
- .add(AzureComputeServiceContextModule.class)
- .add(AzureComputeHttpApiModule.class).build());
- }
-
- @Override
- public AzureManagementApiMetadata build() {
- return new AzureManagementApiMetadata(this);
- }
-
- @Override
- protected Builder self() {
- return this;
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CaptureVMImageParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CaptureVMImageParamsToXML.java
deleted file mode 100644
index b8ac478..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CaptureVMImageParamsToXML.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.RoleSize;
-
-import static org.jclouds.azurecompute.domain.VMImage.OSDiskConfiguration.OSState.GENERALIZED;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import static com.google.common.base.Throwables.propagate;
-
-public final class CaptureVMImageParamsToXML implements Binder {
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- CaptureVMImageParams params = CaptureVMImageParams.class.cast(input);
-
- try {
- XMLBuilder builder = XMLBuilder.create("CaptureRoleAsVMImageOperation", "http://schemas.microsoft.com/windowsazure")
- .namespace("i", "http://www.w3.org/2001/XMLSchema-instance")
- .e("OperationType").t("CaptureRoleAsVMImageOperation").up()
- .e("OSState").t(params.osState() == GENERALIZED ? "Generalized" : "Specialized").up()
- .e("VMImageName").t(params.name()).up()
- .e("VMImageLabel").t(params.label()).up();
- add(builder, "Description", params.description());
- add(builder, "Language", params.language());
- add(builder, "ImageFamily", params.imageFamily());
-
- RoleSize.Type vmSize = params.recommendedVMSize();
- if (vmSize != null) {
- String vmSizeText = params.recommendedVMSize().getText();
- builder.e("RecommendedVMSize").t(vmSizeText).up();
- }
-
- builder.up();
-
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
- private XMLBuilder add(XMLBuilder xmlBuilder, String entity, String text) {
- if (text != null) {
- return xmlBuilder.e(entity).t(text).up();
- } else {
- return xmlBuilder.e(entity).up();
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateAffinityGroupParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateAffinityGroupParamsToXML.java
deleted file mode 100644
index 5b71be2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateAffinityGroupParamsToXML.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-public final class CreateAffinityGroupParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final CreateAffinityGroupParams params = CreateAffinityGroupParams.class.cast(input);
-
- try {
- XMLBuilder builder = XMLBuilder.create("CreateAffinityGroup", "http://schemas.microsoft.com/windowsazure")
- .e("Name").t(params.name()).up()
- .e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
- if (params.description() != null) {
- builder.e("Description").t(params.description()).up();
- }
- String xml = builder.e("Location").t(params.location()).up().asString();
- return (R) request.toBuilder().payload(xml).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateStorageServiceParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateStorageServiceParamsToXML.java
deleted file mode 100644
index 9221062..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/CreateStorageServiceParamsToXML.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-import com.jamesmurty.utils.XMLBuilder;
-import java.util.Map;
-
-public final class CreateStorageServiceParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final CreateStorageServiceParams params = CreateStorageServiceParams.class.cast(input);
-
- try {
- final XMLBuilder builder = XMLBuilder.create(
- "CreateStorageServiceInput", "http://schemas.microsoft.com/windowsazure").
- e("ServiceName").t(params.serviceName()).up();
-
- if (params.description() != null) {
- builder.e("Description").t(params.description()).up();
- }
-
- if (params.label() != null) {
- builder.e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
- }
-
- if (params.location() != null) {
- builder.e("Location").t(params.location()).up();
- }
- if (params.affinityGroup() != null) {
- builder.e("AffinityGroup").t(params.affinityGroup()).up();
- }
-
- if (params.extendedProperties() != null) {
- final XMLBuilder extProps = builder.e("ExtendedProperties");
- for (Map.Entry<String, String> entry : params.extendedProperties().entrySet()) {
- final XMLBuilder extProp = extProps.e("ExtendedProperty");
- extProp.e("Name").t(entry.getKey()).up();
- extProp.e("Value").t(entry.getValue()).up();
- extProp.up();
- }
- extProps.up();
- }
-
- builder.e("AccountType").t(params.accountType().name()).up();
-
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
deleted file mode 100644
index d890ebe..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/DeploymentParamsToXML.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-import static org.jclouds.azurecompute.domain.OSImage.Type.LINUX;
-
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-/**
- * Generates XML for <a href="https://msdn.microsoft.com/en-us/library/azure/jj157194.aspx">Create Virtual Machine Deployment</a> REST call.
- */
-public final class DeploymentParamsToXML implements Binder {
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- DeploymentParams params = DeploymentParams.class.cast(input);
-
- try {
- XMLBuilder deploymentBuilder = XMLBuilder.create("Deployment", "http://schemas.microsoft.com/windowsazure")
- .e("Name").t(params.name()).up()
- .e("DeploymentSlot").t("Production").up()
- .e("Label").t(params.name()).up();
- XMLBuilder roleBuilder = deploymentBuilder
- .e("RoleList")
- .e("Role")
- .e("RoleName").t(params.name()).up()
- .e("RoleType").t("PersistentVMRole").up();
- XMLBuilder configSetsBuilder = roleBuilder.e("ConfigurationSets");
-
- if (params.os() == OSImage.Type.WINDOWS) {
- XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Windows
- final String listenerProtocol = params.winrmUseHttps() != null && params.winrmUseHttps() ? "Https" : "Http";
- configBuilder.e("ConfigurationSetType").t("WindowsProvisioningConfiguration").up()
- .e("ComputerName").t(params.name()).up()
- .e("AdminPassword").t(params.password()).up()
- .e("ResetPasswordOnFirstLogon").t("false").up()
- .e("EnableAutomaticUpdate").t("false").up()
- .e("DomainJoin")
- .e("Credentials")
- .e("Domain").t(params.name()).up()
- .e("Username").t(params.username()).up()
- .e("Password").t(params.password()).up()
- .up() // Credentials
- .e("JoinDomain").t(params.name()).up()
- .up() // Domain Join
- .e("StoredCertificateSettings").up()
- .e("WinRM")
- .e("Listeners")
- .e("Listener")
- .e("Protocol").t(listenerProtocol).up().up().up().up()
- .e("AdminUsername").t(params.username()).up()
- .e("AdminPassword").t(params.username()).up()
- .up(); // Windows ConfigurationSet
- } else if (params.os() == OSImage.Type.LINUX) {
- XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Linux
- configBuilder.e("ConfigurationSetType").t("LinuxProvisioningConfiguration").up()
- .e("HostName").t(params.name()).up()
- .e("UserName").t(params.username()).up()
- .e("UserPassword").t(params.password()).up()
- .e("DisableSshPasswordAuthentication").t("false").up()
- .e("SSH")
- .e("PublicKeys").up()
- .e("KeyPairs").up()
- .up(); // Linux ConfigurationSet
- } else {
- throw new IllegalArgumentException("Unrecognized os type " + params);
- }
-
- XMLBuilder configBuilder = configSetsBuilder.e("ConfigurationSet"); // Network
- configBuilder.e("ConfigurationSetType").t("NetworkConfiguration").up();
-
- XMLBuilder inputEndpoints = configBuilder.e("InputEndpoints");
- for (DeploymentParams.ExternalEndpoint endpoint : params.externalEndpoints()) {
- XMLBuilder inputBuilder = inputEndpoints.e("InputEndpoint");
- inputBuilder.e("LocalPort").t(Integer.toString(endpoint.localPort())).up()
- .e("Name").t(endpoint.name()).up()
- .e("Port").t(Integer.toString(endpoint.port())).up()
- .e("Protocol").t(endpoint.protocol().toLowerCase()).up()
- .up(); //InputEndpoint
- }
-
- inputEndpoints.up();
-
- XMLBuilder subnetNames = configBuilder.e("SubnetNames");
- if (!params.subnetNames().isEmpty()) {
- for (String subnetName : params.subnetNames()) {
- subnetNames.e("SubnetName").t(subnetName).up()
- .up(); //subnetName
- }
- }
-
- roleBuilder
- // TODO No Disk should be specified for a Role if using a VMImage
- .e("DataVirtualHardDisks").up()
- .e("OSVirtualHardDisk")
- .e("HostCaching").t("ReadWrite").up()
- .e("MediaLink").t(params.mediaLink().toASCIIString()).up()
- // TODO
- /// If you are using a VM image, it must be specified as VMImageName for the role,
- // not as SourceImageNamefor OSVirtualHardDisk.</Message></Error>]
- .e("SourceImageName").t(params.sourceImageName()).up()
- .e("OS").t(params.os() == LINUX ? "Linux" : "Windows").up()
- .up() //OSVirtualHardDisk
- .e("RoleSize").t(params.size().getText()).up();
- if (params.provisionGuestAgent() != null) {
- roleBuilder.e("ProvisionGuestAgent").t(params.provisionGuestAgent().toString()).up();
- }
- if (params.virtualNetworkName() != null) {
- configSetsBuilder.up().up().up().e("VirtualNetworkName").t(params.virtualNetworkName()).up();
- }
- if (params.reservedIPName() != null) {
- configSetsBuilder.up().up().up().e("ReservedIPName").t(params.reservedIPName()).up();
- }
-
- return (R) request.toBuilder().payload(configSetsBuilder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkConfigurationToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkConfigurationToXML.java
deleted file mode 100644
index ce32b27..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkConfigurationToXML.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public class NetworkConfigurationToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- NetworkConfiguration networkConfiguration = NetworkConfiguration.class.cast(input);
-
- try {
- XMLBuilder builder = XMLBuilder.create(
- "NetworkConfiguration", "http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration")
- .e("VirtualNetworkConfiguration");
- if (networkConfiguration.virtualNetworkConfiguration().dns() == null) {
- builder.e("Dns");
- } else {
- builder.e("Dns").t(networkConfiguration.virtualNetworkConfiguration().dns());
- }
- if (!networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites().isEmpty()) {
- XMLBuilder virtualNetworkSitesBuilder = builder.e("VirtualNetworkSites");
- for (VirtualNetworkSite virtualNetworkSite
- : networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites()) {
-
- XMLBuilder virtualNetworkSiteBuilder = virtualNetworkSitesBuilder.
- e("VirtualNetworkSite").
- a("name", virtualNetworkSite.name()).
- a("Location", virtualNetworkSite.location());
- virtualNetworkSiteBuilder.e("AddressSpace")
- .e("AddressPrefix").
- t(virtualNetworkSite.addressSpace().addressPrefix()).
- up();
- XMLBuilder subnetBuilder = virtualNetworkSiteBuilder.e("Subnets");
- for (Subnet subnet : virtualNetworkSite.subnets()) {
- subnetBuilder.e("Subnet").a("name", subnet.name()).e("AddressPrefix").t(subnet.addressPrefix());
- }
- }
- }
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkSecurityGroupToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkSecurityGroupToXML.java
deleted file mode 100644
index 3a42823..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/NetworkSecurityGroupToXML.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public class NetworkSecurityGroupToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- NetworkSecurityGroup networkSecurityGroup = NetworkSecurityGroup.class.cast(input);
- try {
- XMLBuilder builder = XMLBuilder.create("NetworkSecurityGroup", "http://schemas.microsoft.com/windowsazure")
- .e("Name").t(networkSecurityGroup.name()).up();
- if (networkSecurityGroup.label() != null) {
- builder.e("Label").t(networkSecurityGroup.label()).up();
- }
- if (networkSecurityGroup.location() != null) {
- builder.e("Location").t(networkSecurityGroup.location()).up();
- }
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/OSImageParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/OSImageParamsToXML.java
deleted file mode 100644
index 32eaa0a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/OSImageParamsToXML.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-import static org.jclouds.azurecompute.domain.OSImage.Type.LINUX;
-
-import org.jclouds.azurecompute.domain.OSImageParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public final class OSImageParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- OSImageParams params = OSImageParams.class.cast(input);
- try {
- String xml = XMLBuilder.create("OSImage", "http://schemas.microsoft.com/windowsazure")
- .e("Label").t(params.label()).up()
- .e("MediaLink").t(params.mediaLink().toASCIIString()).up()
- .e("Name").t(params.name()).up()
- .e("OS").t(params.os() == LINUX ? "Linux" : "Windows").up()
- .up().asString();
- return (R) request.toBuilder().payload(xml).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileDefinitionParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileDefinitionParamsToXML.java
deleted file mode 100644
index 413fe8a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileDefinitionParamsToXML.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpointParams;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-
-public final class ProfileDefinitionParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final ProfileDefinitionParams params = ProfileDefinitionParams.class.cast(input);
- try {
- XMLBuilder bld = XMLBuilder.create("Definition", "http://schemas.microsoft.com/windowsazure");
- bld.e("DnsOptions").e("TimeToLiveInSeconds").t(params.ttl().toString()).up().up();
-
- bld.e("Monitors").e("Monitor").e("IntervalInSeconds").t("30").up()
- .e("TimeoutInSeconds").t("10").up()
- .e("ToleratedNumberOfFailures").t("3").up()
- .e("Protocol").t(params.protocol().name()).up()
- .e("Port").t(params.port().toString()).up()
- .e("HttpOptions")
- .e("Verb").t("GET").up()
- .e("RelativePath").t(params.path()).up()
- .e("ExpectedStatusCode").t("200");
-
- bld = bld.e("Policy").e("LoadBalancingMethod").t(params.lb().getValue()).up()
- .e("Endpoints");
-
- for (ProfileDefinitionEndpointParams endpoint : params.endpoints()) {
- bld = bld.e("Endpoint")
- .e("DomainName").t(endpoint.domain()).up()
- .e("Status").t(endpoint.status().getValue()).up();
-
- if (endpoint.type() != null) {
- bld = bld.e("Type").t(endpoint.type().getValue()).up();
- }
- if (endpoint.location() != null) {
- bld = bld.e("Location").t(endpoint.location()).up();
- }
- if (endpoint.min() != null) {
- bld = bld.e("MinChildEndpoints").t(endpoint.min().toString()).up();
- }
- if (endpoint.weight() != null) {
- bld = bld.e("Weight").t(endpoint.weight().toString()).up();
- }
-
- bld = bld.up();
- }
-
- bld.up().up();
-
- return (R) request.toBuilder().payload(bld.up().asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileParamsToXML.java
deleted file mode 100644
index eb6970d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ProfileParamsToXML.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-
-public final class ProfileParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
-
- try {
- final XMLBuilder bld = XMLBuilder.create("Profile", "http://schemas.microsoft.com/windowsazure");
- if (input instanceof CreateProfileParams) {
- final CreateProfileParams params = CreateProfileParams.class.cast(input);
- bld.e("DomainName").t(params.domain()).up();
- bld.e("Name").t(params.name()).up().up();
- return (R) request.toBuilder().payload(bld.up().asString()).build();
- } else {
- final UpdateProfileParams params = UpdateProfileParams.class.cast(input);
- bld.e("Status").t(params.status().getValue()).up();
- bld.e("StatusDetails").e("EnabledVersion").t("1").up().up().up();
- return (R) request.toBuilder().payload(bld.up().asString()).build();
- }
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ReservedIPAddressParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ReservedIPAddressParamsToXML.java
deleted file mode 100644
index bdac946..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ReservedIPAddressParamsToXML.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-
-public final class ReservedIPAddressParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final ReservedIPAddressParams params = ReservedIPAddressParams.class.cast(input);
- try {
- final XMLBuilder bld = XMLBuilder.create("ReservedIP", "http://schemas.microsoft.com/windowsazure")
- .e("Name").t(params.name()).up();
-
- if (params.label() != null) {
- bld.e("Label").t(params.label()).up();
- }
-
- bld.e("Location").t(params.location()).up();
-
- return (R) request.toBuilder().payload(bld.up().asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
deleted file mode 100644
index 9f77d76..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RoleToXML.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.HttpRequest;
-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
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- Role role = Role.class.cast(input);
-
- try {
- 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 = configSetsBuilder.e("ConfigurationSet"); // Network
- configBuilder.e("ConfigurationSetType").t(configurationSet.configurationSetType()).up();
-
- XMLBuilder inputEndpoints = configBuilder.e("InputEndpoints");
- for (Role.ConfigurationSet.InputEndpoint endpoint : configurationSet.inputEndpoints()) {
- XMLBuilder inputBuilder = inputEndpoints.e("InputEndpoint");
- inputBuilder.e("LocalPort").t(Integer.toString(endpoint.localPort())).up()
- .e("Name").t(endpoint.name()).up()
- .e("Port").t(Integer.toString(endpoint.port())).up()
- .e("Protocol").t(endpoint.protocol().toLowerCase()).up()
- .up(); //InputEndpoint
- }
- XMLBuilder subnetNames = configBuilder.e("SubnetNames");
- if (!configurationSet.subnetNames().isEmpty()) {
- for (Role.ConfigurationSet.SubnetName subnetName : configurationSet.subnetNames()) {
- subnetNames.e("SubnetName").t(subnetName.name()).up();
- }
- }
- if (configurationSet.networkSecurityGroup() != null
- && !configurationSet.networkSecurityGroup().isEmpty()) {
- configBuilder.e("NetworkSecurityGroup").t(configurationSet.networkSecurityGroup()).up();
- }
- }
- }
-
- builder.e("DataVirtualHardDisks").up()
- .e("OSVirtualHardDisk")
- .e("HostCaching").t(role.osVirtualHardDisk().hostCaching()).up()
- .e("DiskName").t(role.osVirtualHardDisk().diskName()).up()
- .e("MediaLink").t(role.osVirtualHardDisk().mediaLink().toString()).up()
- .e("SourceImageName").t(role.osVirtualHardDisk().sourceImageName()).up()
- .e("OS").t(role.osVirtualHardDisk().os().toString()).up()
- .up() // OSVirtualHardDisk
- .e("RoleSize").t(role.roleSize().getText());
- if (role.provisionGuestAgent() != null) {
- builder.e("ProvisionGuestAgent").t(role.provisionGuestAgent().toString()).up();
- }
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RuleToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RuleToXML.java
deleted file mode 100644
index bcb1b3a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/RuleToXML.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-public final class RuleToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- Rule rule = Rule.class.cast(input);
- try {
- String xml = XMLBuilder.create("Rule", "http://schemas.microsoft.com/windowsazure")
- .e("Type").t(rule.type().name()).up()
- .e("Priority").t(rule.priority()).up()
- .e("Action").t(rule.action().name()).up()
- .e("SourceAddressPrefix").t(rule.sourceAddressPrefix()).up()
- .e("SourcePortRange").t(rule.sourcePortRange()).up()
- .e("DestinationAddressPrefix").t(rule.destinationAddressPrefix()).up()
- .e("DestinationPortRange").t(rule.destinationPortRange()).up()
- .e("Protocol").t(rule.protocol().getValue()).up().asString();
- return (R) request.toBuilder().payload(xml).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ServiceCertificateParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ServiceCertificateParamsToXML.java
deleted file mode 100644
index 49c18ff..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/ServiceCertificateParamsToXML.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-
-public final class ServiceCertificateParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final ServiceCertificateParams params = ServiceCertificateParams.class.cast(input);
- try {
- final XMLBuilder bld = XMLBuilder.create("CertificateFile", "http://schemas.microsoft.com/windowsazure")
- .e("Data").t(params.data()).up()
- .e("CertificateFormat").t(params.format()).up();
-
- if (params.password() != null) {
- bld.e("Password").t(params.password()).up();
- }
-
- return (R) request.toBuilder().payload(bld.up().asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/StorageServiceKeyTypeToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/StorageServiceKeyTypeToXML.java
deleted file mode 100644
index abc6da5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/StorageServiceKeyTypeToXML.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import static com.google.common.base.Throwables.propagate;
-
-public class StorageServiceKeyTypeToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final StorageServiceKeys.KeyType params = StorageServiceKeys.KeyType.class.cast(input);
-
- try {
- final XMLBuilder builder = XMLBuilder.create(
- "RegenerateKeys", "http://schemas.microsoft.com/windowsazure").
- e("KeyType").t(params.name()).up();
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateAffinityGroupParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateAffinityGroupParamsToXML.java
deleted file mode 100644
index 8e8d591..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateAffinityGroupParamsToXML.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-
-import com.jamesmurty.utils.XMLBuilder;
-
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-public final class UpdateAffinityGroupParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final UpdateAffinityGroupParams params = UpdateAffinityGroupParams.class.cast(input);
-
- try {
- XMLBuilder builder = XMLBuilder.create("UpdateAffinityGroup", "http://schemas.microsoft.com/windowsazure");
- if (params.label() != null) {
- builder.e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
- }
- if (params.description() != null) {
- builder.e("Description").t(params.description()).up();
- }
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateStorageServiceParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateStorageServiceParamsToXML.java
deleted file mode 100644
index 4d80f9a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/UpdateStorageServiceParamsToXML.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.BaseEncoding;
-import com.jamesmurty.utils.XMLBuilder;
-
-import java.util.Map;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-
-public final class UpdateStorageServiceParamsToXML implements Binder {
-
- @Override
- @SuppressWarnings("unchecked")
- public <R extends HttpRequest> R bindToRequest(final R request, final Object input) {
- final UpdateStorageServiceParams params = UpdateStorageServiceParams.class.cast(input);
-
- try {
- final XMLBuilder builder = XMLBuilder.create(
- "UpdateStorageServiceInput", "http://schemas.microsoft.com/windowsazure");
-
- if (params.description() != null) {
- builder.e("Description").t(params.description()).up();
- }
-
- if (params.label() != null) {
- builder.e("Label").t(BaseEncoding.base64().encode(params.label().getBytes(Charsets.UTF_8))).up();
- }
-
- if (params.geoReplicationEnabled() != null) {
- builder.e("geoReplicationEnabled").t(params.geoReplicationEnabled().toString()).up();
- }
-
- if (params.extendedProperties() != null) {
- final XMLBuilder extProps = builder.e("ExtendedProperties");
- for (Map.Entry<String, String> entry : params.extendedProperties().entrySet()) {
- final XMLBuilder extProp = extProps.e("ExtendedProperty");
- extProp.e("Name").t(entry.getKey()).up();
- extProp.e("Value").t(entry.getValue()).up();
- extProp.up();
- }
- extProps.up();
- }
-
- if (params.customDomains() != null) {
- final XMLBuilder custDomains = builder.e("CustomDomains");
- for (UpdateStorageServiceParams.CustomDomain domain : params.customDomains()) {
- final XMLBuilder custDomain = custDomains.e("CustomDomain");
- custDomain.e("Name").t(domain.name()).up();
- custDomain.e("UseSubDomainName").t(domain.useSubDomainName().toString()).up();
- custDomain.up();
- }
- custDomains.up();
- }
-
- if (params.accountType() != null) {
- builder.e("AccountType").t(params.accountType().name()).up();
- }
-
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/VMImageParamsToXML.java b/azurecompute/src/main/java/org/jclouds/azurecompute/binders/VMImageParamsToXML.java
deleted file mode 100644
index 540faa8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/binders/VMImageParamsToXML.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import com.google.common.base.CaseFormat;
-import com.jamesmurty.utils.XMLBuilder;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.Binder;
-
-import java.net.URI;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.Throwables.propagate;
-
-public final class VMImageParamsToXML implements Binder {
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- VMImageParams params = VMImageParams.class.cast(input);
-
- try {
- XMLBuilder builder = XMLBuilder.create("VMImage", "http://schemas.microsoft.com/windowsazure");
- add(builder, "Name", params.name());
- add(builder, "Label", params.label());
- add(builder, "Description", params.description());
- //OSConfig
- VMImageParams.OSDiskConfigurationParams osDiskConfig = params.osDiskConfiguration();
- if (osDiskConfig != null) {
- String cache = CaseFormat.UPPER_UNDERSCORE.to(UPPER_CAMEL, osDiskConfig.hostCaching().toString());
- XMLBuilder osConfigBuilder = builder.e("OSDiskConfiguration");
- osConfigBuilder
- .e("HostCaching").t(cache).up()
- .e("OSState").t(osDiskConfig.osState().toString()).up()
- .e("OS").t(osDiskConfig.os().toString()).up()
- .e("MediaLink").t(osDiskConfig.mediaLink().toASCIIString()).up()
- .up(); //OSDiskConfiguration
- }
- builder.up();
- builder.e("DataDiskConfigurations").up();
- add(builder, "Language", params.language());
- add(builder, "ImageFamily", params.imageFamily());
-
- RoleSize.Type vmSize = params.recommendedVMSize();
- if (vmSize != null) {
- String vmSizeText = params.recommendedVMSize().getText();
- builder.e("RecommendedVMSize").t(vmSizeText).up();
- }
-
- add(builder, "Eula", params.eula());
- add(builder, "IconUri", params.iconUri());
- add(builder, "SmallIconUri", params.smallIconUri());
- add(builder, "PrivacyUri", params.privacyUri());
-
- if (params.showGui() != null) {
- String showGuiText = params.showGui().toString();
- builder.e("ShowGui").t(showGuiText).up();
- }
- builder.up();
-
- return (R) request.toBuilder().payload(builder.asString()).build();
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-
- private XMLBuilder add(XMLBuilder xmlBuilder, String entity, String text) {
- if (text != null) {
- return xmlBuilder.e(entity).t(text).up();
- } else {
- return xmlBuilder.e(entity).up();
- }
- }
-
- private XMLBuilder add(XMLBuilder xmlBuilder, String entity, URI text) {
- if (text != null) {
- return xmlBuilder.e(entity).t(text.toASCIIString()).up();
- } else {
- return xmlBuilder.e(entity).up();
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
deleted file mode 100644
index 44f5f24..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute;
-
-import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Predicates.notNull;
-import static java.lang.String.format;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.util.Predicates2.retry;
-import java.net.URI;
-import java.util.List;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule.AzureComputeConstants;
-import org.jclouds.azurecompute.compute.functions.OSImageToImage;
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.config.AzureComputeProperties;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.DeploymentParams.ExternalEndpoint;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.logging.Logger;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
-/**
- * Defines the connection between the {@link AzureComputeApi} implementation and the jclouds
- * {@link org.jclouds.compute.ComputeService}.
- */
-@Singleton
-public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Deployment, RoleSize, OSImage, Location> {
-
- private static final String DEFAULT_LOGIN_USER = "jclouds";
-
- private static final String DEFAULT_LOGIN_PASSWORD = "Azur3Compute!";
- public static final String POST_SHUTDOWN_ACTION = "StoppedDeallocated";
- private static final String POST_SHUTDOWN_ACTION_NO_DEALLOCATE = "Stopped";
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- private Logger logger = Logger.NULL;
-
- private final AzureComputeApi api;
-
- private final Predicate<String> operationSucceededPredicate;
-
- private final AzureComputeConstants azureComputeConstants;
-
- @Inject
- AzureComputeServiceAdapter(final AzureComputeApi api,
- final Predicate<String> operationSucceededPredicate, final AzureComputeConstants azureComputeConstants) {
-
- this.api = api;
- this.operationSucceededPredicate = operationSucceededPredicate;
- this.azureComputeConstants = azureComputeConstants;
- }
-
- @Override
- public NodeAndInitialCredentials<Deployment> createNodeWithGroupEncodedIntoName(
- final String group, final String name, final Template template) {
-
- // azure-specific options
- final AzureComputeTemplateOptions templateOptions = template.getOptions().as(AzureComputeTemplateOptions.class);
-
- final String loginUser = firstNonNull(templateOptions.getLoginUser(), DEFAULT_LOGIN_USER);
- final String loginPassword = firstNonNull(templateOptions.getLoginPassword(), DEFAULT_LOGIN_PASSWORD);
- final String location = template.getLocation().getId();
- final int[] inboundPorts = template.getOptions().getInboundPorts();
-
- final String storageAccountName = templateOptions.getStorageAccountName();
-
- String message = String.format("Creating a cloud service with name '%s', label '%s' in location '%s'", name, name, location);
- logger.debug(message);
- final String createCloudServiceRequestId = api.getCloudServiceApi().createWithLabelInLocation(name, name, location);
- if (!operationSucceededPredicate.apply(createCloudServiceRequestId)) {
- final String exceptionMessage = generateIllegalStateExceptionMessage(message, createCloudServiceRequestId, azureComputeConstants.operationTimeout());
- logger.warn(exceptionMessage);
- throw new IllegalStateException(exceptionMessage);
- }
- logger.info("Cloud Service (%s) created with operation id: %s", name, createCloudServiceRequestId);
-
- final OSImage.Type os = template.getImage().getOperatingSystem().getFamily() == OsFamily.WINDOWS ?
- OSImage.Type.WINDOWS : OSImage.Type.LINUX;
- final Set<ExternalEndpoint> externalEndpoints = Sets.newHashSet();
- for (int inboundPort : inboundPorts) {
- externalEndpoints.add(ExternalEndpoint.inboundTcpToLocalPort(inboundPort, inboundPort));
- }
-
- final DeploymentParams.Builder paramsBuilder = DeploymentParams.builder()
- .name(name)
- .os(os)
- .username(loginUser)
- .password(loginPassword)
- .sourceImageName(OSImageToImage.fromGeoName(template.getImage().getId())[0])
- .mediaLink(createMediaLink(storageAccountName, name))
- .size(RoleSize.Type.fromString(template.getHardware().getName()))
- .externalEndpoints(externalEndpoints)
- .virtualNetworkName(templateOptions.getVirtualNetworkName())
- .subnetNames(templateOptions.getSubnetNames())
- .provisionGuestAgent(templateOptions.getProvisionGuestAgent());
- if (os.equals(OSImage.Type.WINDOWS)) {
- paramsBuilder.winrmUseHttps(templateOptions.getWinrmUseHttps());
- }
- final DeploymentParams params = paramsBuilder.build();
-
- message = String.format("Creating a deployment with params '%s' ...", params);
- logger.debug(message);
-
- if (!new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getDeploymentApiForService(name).create(params);
- }
- }.apply(name)) {
- final String illegalStateExceptionMessage = generateIllegalStateExceptionMessage(message, createCloudServiceRequestId, azureComputeConstants.operationTimeout());
- logger.warn(illegalStateExceptionMessage);
- logger.debug("Deleting cloud service (%s) ...", name);
- deleteCloudService(name);
- logger.debug("Cloud service (%s) deleted.", name);
- throw new IllegalStateException(illegalStateExceptionMessage);
- }
-
- logger.info("Deployment created with name: %s", name);
-
- final Set<Deployment> deployments = Sets.newHashSet();
- if (!retry(new Predicate<String>() {
- @Override
- public boolean apply(final String name) {
- final Deployment deployment = api.getDeploymentApiForService(name).get(name);
- if (deployment != null) {
- deployments.add(deployment);
- }
- return !deployments.isEmpty();
- }
- }, azureComputeConstants.operationTimeout(), 1, SECONDS).apply(name)) {
- final String illegalStateExceptionMessage = format("Deployment %s was not created within %sms so it will be destroyed.",
- name, azureComputeConstants.operationTimeout());
- logger.warn(illegalStateExceptionMessage);
-
- api.getDeploymentApiForService(name).delete(name);
- api.getCloudServiceApi().delete(name);
-
- throw new IllegalStateException(illegalStateExceptionMessage);
- }
-
- final Deployment deployment = deployments.iterator().next();
-
- // check if the role inside the deployment is ready
- checkRoleStatusInDeployment(name, deployment);
-
- return new NodeAndInitialCredentials<Deployment>(deployment, name,
- LoginCredentials.builder().user(loginUser).password(loginPassword).authenticateSudo(true).build());
- }
-
- @Override
- public Iterable<RoleSize> listHardwareProfiles() {
- return api.getSubscriptionApi().listRoleSizes();
- }
-
- @Override
- public Iterable<OSImage> listImages() {
- final List<OSImage> osImages = Lists.newArrayList();
- for (OSImage osImage : api.getOSImageApi().list()) {
- if (osImage.location() == null) {
- osImages.add(OSImage.create(
- osImage.name(),
- null,
- osImage.affinityGroup(),
- osImage.label(),
- osImage.description(),
- osImage.imageFamily(),
- osImage.category(),
- osImage.os(),
- osImage.publisherName(),
- osImage.mediaLink(),
- osImage.logicalSizeInGB(),
- osImage.eula()
- ));
- } else {
- for (String actualLocation : Splitter.on(';').split(osImage.location())) {
- osImages.add(OSImage.create(
- OSImageToImage.toGeoName(osImage.name(), actualLocation),
- actualLocation,
- osImage.affinityGroup(),
- osImage.label(),
- osImage.description(),
- osImage.imageFamily(),
- osImage.category(),
- osImage.os(),
- osImage.publisherName(),
- osImage.mediaLink(),
- osImage.logicalSizeInGB(),
- osImage.eula()
- ));
- }
- }
- }
- return osImages;
- }
-
- @Override
- public OSImage getImage(final String id) {
- final String[] idParts = OSImageToImage.fromGeoName(id);
- final OSImage image = Iterables.find(api.getOSImageApi().list(), new Predicate<OSImage>() {
- @Override
- public boolean apply(final OSImage input) {
- return idParts[0].equals(input.name());
- }
- });
-
- return image == null
- ? null
- : idParts[1] == null
- ? image
- : OSImage.create(
- id,
- idParts[1],
- image.affinityGroup(),
- image.label(),
- image.description(),
- image.imageFamily(),
- image.category(),
- image.os(),
- image.publisherName(),
- image.mediaLink(),
- image.logicalSizeInGB(),
- image.eula());
- }
-
- @Override
- public Iterable<Location> listLocations() {
- return api.getLocationApi().list();
- }
-
- /** Returns the {@code deployment} argument itself if already settled, otherwise {@code null}. */
- private Deployment isSettled(Deployment deployment) {
- return deployment == null || deployment.roleInstanceList().isEmpty()
- ? null
- : FluentIterable.from(deployment.roleInstanceList()).allMatch(
- new Predicate<RoleInstance>() {
- @Override
- public boolean apply(final RoleInstance input) {
- return input != null && !input.instanceStatus().isTransient();
- }
- })
- ? deployment
- : null;
- }
-
- @Override
- public Deployment getNode(final String id) {
- // all nodes created by this provider will always have a cloud service name equal to deployment name
- final Deployment deployment = api.getDeploymentApiForService(id).get(id);
- if (deployment != null) {
- return isSettled(deployment);
- }
-
- return FluentIterable.from(api.getCloudServiceApi().list()).
- transform(new Function<CloudService, Deployment>() {
- @Override
- public Deployment apply(final CloudService input) {
- final Deployment deployment = api.getDeploymentApiForService(input.name()).get(id);
- return isSettled(deployment);
- }
- }).
- firstMatch(notNull()).
- orNull();
- }
-
- private void trackRequest(final String requestId) {
- if (!operationSucceededPredicate.apply(requestId)) {
- final String message = generateIllegalStateExceptionMessage(
- "tracking request", requestId, azureComputeConstants.operationTimeout());
- logger.warn(message);
- throw new IllegalStateException(message);
- }
- }
-
- public Deployment internalDestroyNode(final String nodeId) {
-
- Deployment deployment = getDeploymentFromNodeId(nodeId);
-
- if (deployment == null) return null;
-
- final String deploymentName = deployment.name();
- String message = String.format("Deleting deployment(%s) of cloud service (%s)", nodeId, deploymentName);
- logger.debug(message);
-
- if (deployment != null) {
- for (Role role : deployment.roleList()) {
- trackRequest(api.getVirtualMachineApiForDeploymentInService(deploymentName, role.roleName()).shutdown(nodeId, POST_SHUTDOWN_ACTION));
- }
-
- deleteDeployment(deploymentName, nodeId);
-
- logger.debug("Deleting cloud service (%s) ...", deploymentName);
- trackRequest(api.getCloudServiceApi().delete(deploymentName));
- logger.debug("Cloud service (%s) deleted.", deploymentName);
-
- for (Role role : deployment.roleList()) {
- final Role.OSVirtualHardDisk disk = role.osVirtualHardDisk();
- if (disk != null) {
- if (!new ConflictManagementPredicate(api, operationSucceededPredicate) {
-
- @Override
- protected String operation() {
- return api.getDiskApi().delete(disk.diskName());
- }
- }.apply(nodeId)) {
- final String illegalStateExceptionMessage = generateIllegalStateExceptionMessage("Delete disk " + disk.diskName(),
- "Delete disk", azureComputeConstants.operationTimeout());
- logger.warn(illegalStateExceptionMessage);
- }
- }
- }
- }
- return deployment;
- }
-
- public Deployment getDeploymentFromNodeId(final String nodeId) {
- final List<Deployment> nodes = Lists.newArrayList();
- retry(new Predicate<String>() {
- @Override
- public boolean apply(final String input) {
- final Deployment deployment = getNode(nodeId);
- if (deployment != null) {
- nodes.add(deployment);
- }
- return !nodes.isEmpty();
- }
- }, 30 * 60, 1, SECONDS).apply(nodeId);
-
- return Iterables.getFirst(nodes, null);
- }
-
- @Override
- public void destroyNode(final String id) {
- logger.debug("Destroying %s ...", id);
- if (internalDestroyNode(id) != null) {
- logger.debug("Destroyed %s!", id);
- } else {
- logger.warn("Can't destroy %s!", id);
- }
- }
-
- @Override
- public void rebootNode(final String id) {
- final CloudService cloudService = api.getCloudServiceApi().get(id);
- if (cloudService != null) {
- logger.debug("Restarting %s ...", id);
- trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).restart(id));
- logger.debug("Restarted %s", id);
- }
- }
-
- @Override
- public void resumeNode(final String id) {
- final CloudService cloudService = api.getCloudServiceApi().get(id);
- if (cloudService != null) {
- logger.debug("Resuming %s ...", id);
- trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).start(id));
-
- // it happens sometimes that even though the trackRequest call above returns successfully,
- // the node is still in the process of starting and this.getNode(id) returns null
- //
- // this is a temporary workaround for JCLOUDS-1092 and should be removed once the issue is resolved properly
- if (!retry(new Predicate<String>() {
- @Override
- public boolean apply(final String id) {
- return getNode(id) != null;
- }
- }, azureComputeConstants.operationTimeout(), 1, SECONDS).apply(id)) {
- final String message = generateIllegalStateExceptionMessage(
- "waiting for node to resume", "", azureComputeConstants.operationTimeout());
- logger.warn(message);
- throw new IllegalStateException(message);
- }
-
- logger.debug("Resumed %s", id);
- }
- }
-
- @Override
- public void suspendNode(final String id) {
- final CloudService cloudService = api.getCloudServiceApi().get(id);
- if (cloudService != null) {
- logger.debug("Suspending %s ...", id);
- String postShutdownAction = azureComputeConstants.deallocateWhenSuspending()
- ? POST_SHUTDOWN_ACTION : POST_SHUTDOWN_ACTION_NO_DEALLOCATE;
- trackRequest(api.getVirtualMachineApiForDeploymentInService(id, cloudService.name()).shutdown(id, postShutdownAction));
- logger.debug("Suspended %s", id);
- }
- }
-
- @Override
- public Iterable<Deployment> listNodes() {
- return FluentIterable.from(api.getCloudServiceApi().list()).
- transform(new Function<CloudService, Deployment>() {
- @Override
- public Deployment apply(final CloudService cloudService) {
- return api.getDeploymentApiForService(cloudService.name()).get(cloudService.name());
- }
- }).
- filter(notNull()).
- toSet();
- }
-
- @Override
- public Iterable<Deployment> listNodesByIds(final Iterable<String> ids) {
- return Iterables.filter(listNodes(), new Predicate<Deployment>() {
- @Override
- public boolean apply(final Deployment input) {
- return Iterables.contains(ids, input.name());
- }
- });
- }
-
- @VisibleForTesting
- public static URI createMediaLink(final String storageServiceName, final String diskName) {
- return URI.create(
- String.format("https://%s.blob.core.windows.net/vhds/disk-%s.vhd", storageServiceName, diskName));
- }
-
- private void deleteCloudService(final String name) {
- if (!new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getCloudServiceApi().delete(name);
- }
-
- }.apply(name)) {
- final String deleteMessage = generateIllegalStateExceptionMessage("Delete cloud service " + name,
- "CloudService delete", azureComputeConstants.operationTimeout());
- logger.warn(deleteMessage);
- throw new IllegalStateException(deleteMessage);
- }
- }
-
- private void deleteDeployment(final String id, final String cloudServiceName) {
- if (!new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getDeploymentApiForService(cloudServiceName).delete(id);
- }
-
- }.apply(id)) {
- final String deleteMessage = generateIllegalStateExceptionMessage("Delete deployment " + cloudServiceName,
- "Deployment delete", azureComputeConstants.operationTimeout());
- logger.warn(deleteMessage);
- throw new IllegalStateException(deleteMessage);
- }
- }
-
-
- private void checkRoleStatusInDeployment(final String name, Deployment deployment) {
- if (!retry(new Predicate<Deployment>() {
-
- @Override
- public boolean apply(Deployment deployment) {
- deployment = api.getDeploymentApiForService(deployment.name()).get(name);
- if (deployment.roleInstanceList() == null || deployment.roleInstanceList().isEmpty()) return false;
- return Iterables.all(deployment.roleInstanceList(), new Predicate<RoleInstance>() {
- @Override
- public boolean apply(RoleInstance input) {
- if (input.instanceStatus() == Deployment.InstanceStatus.PROVISIONING_FAILED) {
- final String message = format("Deployment %s is in provisioning failed status, so it will be destroyed.", name);
- logger.warn(message);
-
- api.getDeploymentApiForService(name).delete(name);
- api.getCloudServiceApi().delete(name);
-
- throw new IllegalStateException(message);
- }
- return input.instanceStatus() == Deployment.InstanceStatus.READY_ROLE;
- }
- });
- }
- }, azureComputeConstants.operationTimeout(), 1, SECONDS).apply(deployment)) {
- final String message = format("Role %s has not reached the READY_ROLE within %sms so it will be destroyed.",
- deployment.name(), azureComputeConstants.operationTimeout());
- logger.warn(message);
-
- api.getDeploymentApiForService(name).delete(name);
- api.getCloudServiceApi().delete(name);
-
- throw new IllegalStateException(message);
- }
- }
-
- public static String generateIllegalStateExceptionMessage(String prefix, final String operationId, final long timeout) {
- final String warnMessage = format("%s - %s has not been completed within %sms.", prefix, operationId, timeout);
- return format("%s. Please, try by increasing `%s` and try again",
- warnMessage, AzureComputeProperties.OPERATION_TIMEOUT);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
deleted file mode 100644
index e6d8812..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/config/AzureComputeServiceContextModule.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.config;
-
-import static org.jclouds.azurecompute.config.AzureComputeProperties.DEALLOCATE_WHEN_SUSPENDING;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_FORMAT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_REGEXP;
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.compute.extensions.AzureComputeSecurityGroupExtension;
-import org.jclouds.azurecompute.compute.functions.DeploymentToNodeMetadata;
-import org.jclouds.azurecompute.compute.functions.LocationToLocation;
-import org.jclouds.azurecompute.compute.functions.OSImageToImage;
-import org.jclouds.azurecompute.compute.functions.RoleSizeToHardware;
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.compute.strategy.GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes;
-import org.jclouds.azurecompute.compute.strategy.UseNodeCredentialsButOverrideFromTemplate;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.config.ComputeServiceAdapterContextModule;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.inject.Inject;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
-
-public class AzureComputeServiceContextModule
- extends ComputeServiceAdapterContextModule<Deployment, RoleSize, OSImage, Location> {
-
- @Override
- protected void configure() {
- super.configure();
-
- bind(new TypeLiteral<ComputeServiceAdapter<Deployment, RoleSize, OSImage, Location>>() {
- }).to(AzureComputeServiceAdapter.class);
- bind(new TypeLiteral<Function<OSImage, org.jclouds.compute.domain.Image>>() {
- }).to(OSImageToImage.class);
- bind(new TypeLiteral<Function<RoleSize, Hardware>>() {
- }).to(RoleSizeToHardware.class);
- bind(new TypeLiteral<Function<Deployment, NodeMetadata>>() {
- }).to(DeploymentToNodeMetadata.class);
-
- bind(PrioritizeCredentialsFromTemplate.class).to(UseNodeCredentialsButOverrideFromTemplate.class);
- bind(new TypeLiteral<Function<Location, org.jclouds.domain.Location>>() {
- }).to(LocationToLocation.class);
-
- bind(TemplateOptions.class).to(AzureComputeTemplateOptions.class);
-
- bind(new TypeLiteral<SecurityGroupExtension>() {
- }).to(AzureComputeSecurityGroupExtension.class);
- bind(CreateNodesInGroupThenAddToSet.class).to(GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.class);
-
- // to have the compute service adapter override default locations
- install(new LocationsFromComputeServiceAdapterModule<Deployment, RoleSize, OSImage, Location>() {
- });
- }
-
- @Provides
- @Singleton
- protected Predicate<String> provideOperationSucceededPredicate(
- final AzureComputeApi api, final AzureComputeConstants azureComputeConstants) {
- return new ConflictManagementPredicate(
- api,
- azureComputeConstants.operationTimeout(),
- azureComputeConstants.operationPollInitialPeriod(),
- azureComputeConstants.operationPollMaxPeriod(),
- TimeUnit.MILLISECONDS);
- }
-
- @Singleton
- public static class AzureComputeConstants {
-
- @Named(OPERATION_TIMEOUT)
- @Inject
- private String operationTimeoutProperty;
-
- @Named(OPERATION_POLL_INITIAL_PERIOD)
- @Inject
- private String operationPollInitialPeriodProperty;
-
- @Named(OPERATION_POLL_MAX_PERIOD)
- @Inject
- private String operationPollMaxPeriodProperty;
-
- @Named(TCP_RULE_FORMAT)
- @Inject
- private String tcpRuleFormatProperty;
-
- @Named(TCP_RULE_REGEXP)
- @Inject
- private String tcpRuleRegexpProperty;
-
- @Named(DEALLOCATE_WHEN_SUSPENDING)
- @Inject
- private String deallocateWhenSuspending;
-
- public Long operationTimeout() {
- return Long.parseLong(operationTimeoutProperty);
- }
-
- public Integer operationPollInitialPeriod() {
- return Integer.parseInt(operationPollInitialPeriodProperty);
- }
-
- public Integer operationPollMaxPeriod() {
- return Integer.parseInt(operationPollMaxPeriodProperty);
- }
-
- public String tcpRuleFormat() {
- return tcpRuleFormatProperty;
- }
-
- public String tcpRuleRegexp() {
- return tcpRuleRegexpProperty;
- }
-
- public boolean deallocateWhenSuspending() {
- return Boolean.parseBoolean(deallocateWhenSuspending);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtension.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtension.java
deleted file mode 100644
index f24c5fe..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtension.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.extensions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.jclouds.azurecompute.compute.AzureComputeServiceAdapter.generateIllegalStateExceptionMessage;
-import java.util.List;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule.AzureComputeConstants;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.azurecompute.util.NetworkSecurityGroups;
-import org.jclouds.compute.domain.SecurityGroup;
-import org.jclouds.compute.domain.SecurityGroupBuilder;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.logging.Logger;
-import org.jclouds.net.domain.IpPermission;
-import org.jclouds.net.domain.IpProtocol;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Multimap;
-
-/**
- * An extension to compute service to allow for the manipulation of {@link org.jclouds.compute.domain.SecurityGroup}s.
- * Implementation is optional by providers.
- *
- * It considers only the custom rules added by the user and ignores the default rules created by Azure
- */
-public class AzureComputeSecurityGroupExtension implements SecurityGroupExtension {
-
- protected final AzureComputeApi api;
-
- private final Predicate<String> operationSucceededPredicate;
-
- private final AzureComputeConstants azureComputeConstants;
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- @Inject
- AzureComputeSecurityGroupExtension(final AzureComputeApi api,
- final Predicate<String> operationSucceededPredicate, final AzureComputeConstants azureComputeConstants) {
-
- this.api = api;
- this.operationSucceededPredicate = operationSucceededPredicate;
- this.azureComputeConstants = azureComputeConstants;
- }
-
- @Override
- public Set<SecurityGroup> listSecurityGroups() {
- return FluentIterable.from(api.getNetworkSecurityGroupApi().list())
- .transform(new NetworkSecurityGroupSecurityGroupFunction())
- .toSet();
- }
-
- @Override
- public Set<SecurityGroup> listSecurityGroupsInLocation(final Location location) {
- return FluentIterable.from(api.getNetworkSecurityGroupApi().list())
- .transform(new NetworkSecurityGroupSecurityGroupFunction())
- .toSet();
- }
-
- /**
- * @param name it represents both cloudservice and deployment name
- * @return Set<SecurityGroup>
- */
- @Override
- public Set<SecurityGroup> listSecurityGroupsForNode(final String name) {
- checkNotNull(name, "name");
-
- final Deployment deployment = api.getDeploymentApiForService(name).get(name);
- final String virtualNetworkName = deployment.virtualNetworkName();
-
- final List<String> subnetNames = FluentIterable.from(deployment.roleList())
- .transformAndConcat(new Function<Role, Iterable<Role.ConfigurationSet>>() {
- @Override
- public Iterable<Role.ConfigurationSet> apply(final Role input) {
- return input.configurationSets();
- }
- })
- .transformAndConcat(new Function<Role.ConfigurationSet, Iterable<Role.ConfigurationSet.SubnetName>>() {
- @Override
- public Iterable<Role.ConfigurationSet.SubnetName> apply(final Role.ConfigurationSet input) {
- return input.subnetNames();
- }
- })
- .transform(new Function<Role.ConfigurationSet.SubnetName, String>() {
- @Override
- public String apply(final Role.ConfigurationSet.SubnetName input) {
- return input.name();
- }
- })
- .toList();
-
- return FluentIterable.from(subnetNames)
- .transform(new Function<String, NetworkSecurityGroup>() {
- @Override
- public NetworkSecurityGroup apply(final String input) {
- return api.getNetworkSecurityGroupApi().
- getNetworkSecurityGroupAppliedToSubnet(virtualNetworkName, input);
- }
- })
- .transform(new NetworkSecurityGroupSecurityGroupFunction())
- .toSet();
- }
-
- @Override
- public SecurityGroup getSecurityGroupById(final String id) {
- return transformNetworkSecurityGroupToSecurityGroup(id);
- }
-
- @Override
- public SecurityGroup createSecurityGroup(final String name, final Location location) {
- checkNotNull(name, "name");
- checkNotNull(location, "location");
-
- final NetworkSecurityGroup networkSecurityGroup = NetworkSecurityGroup.create(
- name, name, location.getId(), null, null);
- final String createNSGRequestId = api.getNetworkSecurityGroupApi().create(networkSecurityGroup);
- if (!operationSucceededPredicate.apply(createNSGRequestId)) {
- final String message = generateIllegalStateExceptionMessage("Create NSG" + name,
- createNSGRequestId, azureComputeConstants.operationTimeout());
- logger.warn(message);
- throw new IllegalStateException(message);
- }
- return transformNetworkSecurityGroupToSecurityGroup(name);
- }
-
- private SecurityGroup transformNetworkSecurityGroupToSecurityGroup(final String name) {
- final NetworkSecurityGroup fullDetails = api.getNetworkSecurityGroupApi().getFullDetails(name);
- return fullDetails == null
- ? null
- : new NetworkSecurityGroupSecurityGroupFunction().apply(fullDetails);
- }
-
- @Override
- public boolean removeSecurityGroup(final String id) {
- final NetworkConfiguration networkConfiguration = api.getVirtualNetworkApi().getNetworkConfiguration();
- if (networkConfiguration != null) {
- for (VirtualNetworkSite virtualNetworkSite
- : networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites()) {
-
- for (NetworkConfiguration.Subnet subnet : virtualNetworkSite.subnets()) {
- final String virtualNetworkName = virtualNetworkSite.name();
- final String subnetName = subnet.name();
- if (virtualNetworkName != null && subnetName != null) {
- final NetworkSecurityGroup networkSecurityGroupAppliedToSubnet = api.getNetworkSecurityGroupApi()
- .getNetworkSecurityGroupAppliedToSubnet(virtualNetworkName, subnetName);
- if (networkSecurityGroupAppliedToSubnet != null
- && networkSecurityGroupAppliedToSubnet.name().equals(id)) {
- logger.debug("Removing a networkSecurityGroup %s is already applied to subnet '%s' ...",
- id, subnetName);
-
- // remove existing nsg from subnet
- if (!new ConflictManagementPredicate(api, operationSucceededPredicate) {
- @Override
- protected String operation() {
- return api.getNetworkSecurityGroupApi().removeFromSubnet(
- virtualNetworkName, subnetName, id);
- }
- }.apply(id)) {
- final String message = generateIllegalStateExceptionMessage("Remove NSG" + id + " from subnet " + subnetName,
- "Remove security group from subnet", azureComputeConstants.operationTimeout());
- logger.warn(message);
- throw new IllegalStateException(message);
- }
- }
- }
- }
- }
- }
- String deleteRequestId = api.getNetworkSecurityGroupApi().delete(id);
- return operationSucceededPredicate.apply(deleteRequestId);
- }
-
- @Override
- public SecurityGroup addIpPermission(final IpPermission ipPermission, final SecurityGroup group) {
- checkNotNull(group, "group");
- checkNotNull(ipPermission, "ipPermission");
-
- final String id = checkNotNull(group.getId(), "group.getId()");
-
- final int priority = NetworkSecurityGroups.getFirstAvailablePriority(
- NetworkSecurityGroups.getCustomRules(api.getNetworkSecurityGroupApi().getFullDetails(group.getName())));
-
- final String ruleName = NetworkSecurityGroups.createRuleName(
- azureComputeConstants.tcpRuleFormat(), ipPermission.getFromPort(), ipPermission.getToPort());
-
- // add rule to NSG
- addRuleToNetworkSecurityGroup(id, ruleName, priority, ipPermission);
-
- return transformNetworkSecurityGroupToSecurityGroup(id);
- }
-
- @Override
- public SecurityGroup addIpPermission(
- final IpProtocol protocol,
- final int startPort,
- final int endPort,
- final Multimap<String, String> tenantIdGroupNamePairs,
- final Iterable<String> ipRanges,
- final Iterable<String> groupIds,
- final SecurityGroup group) {
-
- final IpPermission.Builder permBuilder = IpPermission.builder();
- permBuilder.ipProtocol(protocol);
- permBuilder.fromPort(startPort);
- permBuilder.toPort(endPort);
- permBuilder.tenantIdGroupNamePairs(tenantIdGroupNamePairs);
- permBuilder.cidrBlocks(ipRanges);
- permBuilder.groupIds(groupIds);
-
- return addIpPermission(permBuilder.build(), group);
- }
-
- @Override
- public SecurityGroup removeIpPermission(final IpPermission ipPermission, final SecurityGroup group) {
- checkNotNull(group, "group");
- checkNotNull(ipPermission, "ipPermission");
-
- final String id = checkNotNull(group.getId(), "group.getId()");
-
- final String ruleName = NetworkSecurityGroups.createRuleName(
- azureComputeConstants.tcpRuleFormat(), ipPermission.getFromPort(), ipPermission.getToPort());
-
- // remove rule to NSG
- removeRuleFromNetworkSecurityGroup(id, ruleName);
-
- return transformNetworkSecurityGroupToSecurityGroup(id);
- }
-
- @Override
- public SecurityGroup removeIpPermission(
- final IpProtocol protocol,
- final int startPort,
- final int endPort,
- final Multimap<String, String> tenantIdGroupNamePairs,
- final Iterable<String> ipRanges,
- final Iterable<String> groupIds,
- final SecurityGroup group) {
-
- final IpPermission.Builder permBuilder = IpPermission.builder();
- permBuilder.ipProtocol(protocol);
- permBuilder.fromPort(startPort);
- permBuilder.toPort(endPort);
- permBuilder.tenantIdGroupNamePairs(tenantIdGroupNamePairs);
- permBuilder.cidrBlocks(ipRanges);
- permBuilder.groupIds(groupIds);
-
- return removeIpPermission(permBuilder.build(), group);
- }
-
- @Override
- public boolean supportsTenantIdGroupNamePairs() {
- return false;
- }
-
- @Override
- public boolean supportsTenantIdGroupIdPairs() {
- return false;
- }
-
- @Override
- public boolean supportsGroupIds() {
- return false;
- }
-
- @Override
- public boolean supportsPortRangesForGroups() {
- return false;
- }
-
- @Override
- public boolean supportsExclusionCidrBlocks() {
- return false;
- }
-
- private class RuleToIpPermission implements Function<Rule, IpPermission> {
-
- @Override
- public IpPermission apply(final Rule rule) {
- final IpPermission.Builder builder = IpPermission.builder();
- if (rule.name().matches(azureComputeConstants.tcpRuleRegexp())) {
- builder.fromPort(extractPort(rule.name(), 0))
- .toPort(extractPort(rule.name(), 1));
- }
- builder.ipProtocol(rule.protocol().equals(Rule.Protocol.ALL)
- ? IpProtocol.ALL : IpProtocol.valueOf(rule.protocol().getValue()));
- if (rule.destinationAddressPrefix().equals("*")) {
- builder.cidrBlock("0.0.0.0/0");
- } else {
- builder.cidrBlock(rule.destinationAddressPrefix());
- }
- return builder.build();
- }
-
- private int extractPort(String ruleName, int position) {
- return Integer.parseInt(Iterables.get(Splitter.on("-").omitEmptyStrings().
- split(ruleName.substring(4, ruleName.length())), position));
- }
- }
-
- private class NetworkSecurityGroupSecurityGroupFunction implements Function<NetworkSecurityGroup, SecurityGroup> {
-
- @Override
- public SecurityGroup apply(final NetworkSecurityGroup networkSecurityGroup) {
- final SecurityGroupBuilder securityGroupBuilder = new SecurityGroupBuilder()
- .id(networkSecurityGroup.name())
- .providerId(networkSecurityGroup.label())
- .name(networkSecurityGroup.name());
- if (networkSecurityGroup.rules() != null) {
- final List<Rule> filteredRules = NetworkSecurityGroups.getCustomRules(networkSecurityGroup);
-
- final Iterable<IpPermission> permissions = Iterables.transform(filteredRules, new RuleToIpPermission());
- securityGroupBuilder.ipPermissions(permissions);
- }
- return securityGroupBuilder.build();
- }
- }
-
- private void addRuleToNetworkSecurityGroup(final String networkSecurityGroupId, final String ruleName,
- final int priority, final IpPermission ipPermission) {
-
- final String protocol = ipPermission.getIpProtocol().name();
- final String destinationPortRange = ipPermission.getFromPort() == ipPermission.getToPort()
- ? String.valueOf(ipPermission.getToPort())
- : String.format("%s-%s", ipPermission.getFromPort(), ipPermission.getToPort());
- final String destinationAddressPrefix = ipPermission.getCidrBlocks().isEmpty()
- || Iterables.get(ipPermission.getCidrBlocks(), 0).equals("0.0.0.0/0")
- ? "*"
- : Iterables.get(ipPermission.getCidrBlocks(), 0);
- final String setRuleToNSGRequestId = api.getNetworkSecurityGroupApi().
- setRule(networkSecurityGroupId, ruleName, Rule.create(ruleName, // name
- Rule.Type.Inbound, // type
- String.valueOf(priority), // priority
- Rule.Action.Allow, // action
- "INTERNET", // sourceAddressPrefix
- "*", // sourcePortRange
- destinationAddressPrefix, // destinationAddressPrefix
- destinationPortRange, // destinationPortRange
- Rule.Protocol.fromString(protocol)));
- if (!operationSucceededPredicate.apply(setRuleToNSGRequestId)) {
- final String message = generateIllegalStateExceptionMessage("Add rule " + ruleName,
- setRuleToNSGRequestId, azureComputeConstants.operationTimeout());
- logger.warn(message);
- throw new IllegalStateException(message);
- }
- }
-
- private void removeRuleFromNetworkSecurityGroup(final String id, final String ruleName) {
- String setRuleToNSGRequestId = api.getNetworkSecurityGroupApi().deleteRule(id, ruleName);
- if (!operationSucceededPredicate.apply(setRuleToNSGRequestId)) {
- final String message = generateIllegalStateExceptionMessage("Remove rule " + ruleName,
- setRuleToNSGRequestId, azureComputeConstants.operationTimeout());
- logger.warn(message);
- throw new IllegalStateException(message);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/DeploymentToNodeMetadata.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/DeploymentToNodeMetadata.java
deleted file mode 100644
index 622fd9c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/DeploymentToNodeMetadata.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.util.Map;
-import java.util.Set;
-
-import javax.inject.Inject;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.domain.Credentials;
-import org.jclouds.domain.Location;
-import org.jclouds.location.predicates.LocationPredicates;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Sets;
-
-public class DeploymentToNodeMetadata implements Function<Deployment, NodeMetadata> {
-
- private static final Map<Deployment.InstanceStatus, NodeMetadata.Status> INSTANCESTATUS_TO_NODESTATUS =
- ImmutableMap.<Deployment.InstanceStatus, NodeMetadata.Status>builder().
- put(Deployment.InstanceStatus.BUSY_ROLE, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.CREATING_ROLE, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.CREATING_VM, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.CYCLING_ROLE, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.DELETING_VM, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.FAILED_STARTING_ROLE, NodeMetadata.Status.ERROR).
- put(Deployment.InstanceStatus.FAILED_STARTING_VM, NodeMetadata.Status.ERROR).
- put(Deployment.InstanceStatus.PREPARING, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.PROVISIONING, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.READY_ROLE, NodeMetadata.Status.RUNNING).
- put(Deployment.InstanceStatus.RESTARTING_ROLE, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.STARTING_ROLE, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.STARTING_VM, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.STOPPED_DEALLOCATED, NodeMetadata.Status.SUSPENDED).
- put(Deployment.InstanceStatus.STOPPED_VM, NodeMetadata.Status.SUSPENDED).
- put(Deployment.InstanceStatus.STOPPING_ROLE, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.STOPPING_VM, NodeMetadata.Status.PENDING).
- put(Deployment.InstanceStatus.ROLE_STATE_UNKNOWN, NodeMetadata.Status.UNRECOGNIZED).
- put(Deployment.InstanceStatus.UNRECOGNIZED, NodeMetadata.Status.UNRECOGNIZED).
- build();
-
- private static final Map<Deployment.Status, NodeMetadata.Status> STATUS_TO_NODESTATUS =
- ImmutableMap.<Deployment.Status, NodeMetadata.Status>builder().
- put(Deployment.Status.DELETING, NodeMetadata.Status.PENDING).
- put(Deployment.Status.SUSPENDED_TRANSITIONING, NodeMetadata.Status.PENDING).
- put(Deployment.Status.RUNNING_TRANSITIONING, NodeMetadata.Status.PENDING).
- put(Deployment.Status.DEPLOYING, NodeMetadata.Status.PENDING).
- put(Deployment.Status.STARTING, NodeMetadata.Status.PENDING).
- put(Deployment.Status.SUSPENDED, NodeMetadata.Status.SUSPENDED).
- put(Deployment.Status.RUNNING, NodeMetadata.Status.RUNNING).
- put(Deployment.Status.UNRECOGNIZED, NodeMetadata.Status.UNRECOGNIZED).
- build();
-
- private final AzureComputeApi api;
-
- private final Supplier<Set<? extends Location>> locations;
-
- private final GroupNamingConvention nodeNamingConvention;
-
- private final OSImageToImage osImageToImage;
-
- private final RoleSizeToHardware roleSizeToHardware;
-
- private final Map<String, Credentials> credentialStore;
-
- @Inject
- DeploymentToNodeMetadata(
- AzureComputeApi api,
- @Memoized Supplier<Set<? extends Location>> locations,
- GroupNamingConvention.Factory namingConvention, OSImageToImage osImageToImage,
- RoleSizeToHardware roleSizeToHardware, Map<String, Credentials> credentialStore) {
-
- this.nodeNamingConvention = namingConvention.createWithoutPrefix();
- this.locations = checkNotNull(locations, "locations");
- this.osImageToImage = osImageToImage;
- this.roleSizeToHardware = roleSizeToHardware;
- this.credentialStore = credentialStore;
- this.api = api;
- }
-
- @Override
- public NodeMetadata apply(final Deployment from) {
- final NodeMetadataBuilder builder = new NodeMetadataBuilder();
- builder.id(from.name());
- builder.providerId(from.name());
- builder.name(from.name());
- builder.hostname(getHostname(from));
- builder.group(nodeNamingConvention.groupInUniqueNameOrNull(getHostname(from)));
-
- // TODO: CloudService name is required (see JCLOUDS-849): waiting for JCLOUDS-853.
- final CloudService cloudService = api.getCloudServiceApi().get(from.name());
- if (cloudService != null) {
- final String location = cloudService.location() != null
- ? cloudService.location()
- : api.getAffinityGroupApi().get(cloudService.affinityGroup()).location();
- builder.location(FluentIterable.from(locations.get()).
- firstMatch(LocationPredicates.idEquals(location)).
- orNull());
- }
-
- /* TODO
- if (from.getDatacenter() != null) {
- builder.location(from(locations.get()).firstMatch(
- LocationPredicates.idEquals(from.getDatacenter().getId() + "")).orNull());
- }
- builder.hardware(roleSizeToHardware.apply(from.instanceSize()));
- Image image = osImageToImage.apply(from);
- if (image != null) {
- builder.imageId(image.getId());
- builder.operatingSystem(image.getOperatingSystem());
- }
- */
- if (from.status() != null) {
- final Optional<RoleInstance> roleInstance = tryFindFirstRoleInstanceInDeployment(from);
- if (roleInstance.isPresent() && roleInstance.get().instanceStatus() != null) {
- builder.status(INSTANCESTATUS_TO_NODESTATUS.get(roleInstance.get().instanceStatus()));
- } else {
- builder.status(STATUS_TO_NODESTATUS.get(from.status()));
- }
- } else {
- builder.status(NodeMetadata.Status.UNRECOGNIZED);
- }
-
- final Set<String> publicIpAddresses = Sets.newLinkedHashSet();
- if (from.virtualIPs() != null) {
- for (Deployment.VirtualIP virtualIP : from.virtualIPs()) {
- publicIpAddresses.add(virtualIP.address());
- }
- builder.publicAddresses(publicIpAddresses);
- }
- final Set<String> privateIpAddresses = Sets.newLinkedHashSet();
- if (from.roleInstanceList() != null) {
- for (RoleInstance roleInstance : from.roleInstanceList()) {
- if (roleInstance.ipAddress() != null) {
- privateIpAddresses.add(roleInstance.ipAddress());
- }
- }
- builder.privateAddresses(privateIpAddresses);
- }
- return builder.build();
- }
-
- private String getHostname(final Deployment from) {
- final Optional<RoleInstance> roleInstance = tryFindFirstRoleInstanceInDeployment(from);
- return !roleInstance.isPresent() || roleInstance.get().hostname() == null
- ? from.name()
- : roleInstance.get().hostname();
- }
-
- private Optional<RoleInstance> tryFindFirstRoleInstanceInDeployment(final Deployment deployment) {
- return (deployment.roleInstanceList() == null || deployment.roleInstanceList().isEmpty())
- ? Optional.<RoleInstance>absent()
- : Optional.of(deployment.roleInstanceList().get(0));
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/LocationToLocation.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/LocationToLocation.java
deleted file mode 100644
index f334ac8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/LocationToLocation.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions;
-
-import static com.google.common.collect.Iterables.getOnlyElement;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.Region;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-import org.jclouds.location.suppliers.all.JustProvider;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * Converts an Location into a Location.
- */
-@Singleton
-public class LocationToLocation implements Function<Location, org.jclouds.domain.Location> {
-
- private final JustProvider justProvider;
-
- // allow us to lazy discover the provider of a resource
- @Inject
- LocationToLocation(JustProvider justProvider) {
- this.justProvider = justProvider;
- }
-
- @Override
- public org.jclouds.domain.Location apply(final Location location) {
- final LocationBuilder builder = new LocationBuilder();
- builder.id(location.name());
- builder.description(location.displayName());
- builder.parent(getOnlyElement(justProvider.get()));
-
- builder.scope(LocationScope.REGION);
- final Region region = Region.byName(location.name());
- if (region != null) {
- builder.iso3166Codes(ImmutableSet.of(region.iso3166Code()));
- }
-
- return builder.build();
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/OSImageToImage.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/OSImageToImage.java
deleted file mode 100644
index ed2d8ca..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/OSImageToImage.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Set;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.ImageBuilder;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.location.predicates.LocationPredicates;
-
-import com.google.common.base.Function;
-import com.google.common.base.Splitter;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.inject.Inject;
-
-public class OSImageToImage implements Function<OSImage, Image> {
-
- private static final String UNRECOGNIZED = "UNRECOGNIZED";
-
- private static final String UBUNTU = "Ubuntu";
-
- private static final String WINDOWS = "Windows";
-
- private static final String OPENLOGIC = "openLogic";
-
- private static final String CENTOS = "CentOS";
-
- private static final String COREOS = "CoreOS";
-
- private static final String OPENSUSE = "openSUSE";
-
- private static final String SUSE = "SUSE";
-
- private static final String SQL_SERVER = "SQL Server";
-
- private static final String ORACLE_lINUX = "Oracle Linux";
-
- public static String toGeoName(final String name, final String location) {
- return name + "/" + location;
- }
-
- public static String[] fromGeoName(final String geoName) {
- final String[] parts = checkNotNull(geoName, "geoName").split("/");
- return (parts.length == 1) ? new String[]{geoName, null} : parts;
- }
-
- private final Supplier<Set<? extends org.jclouds.domain.Location>> locations;
-
- @Inject
- OSImageToImage(@Memoized final Supplier<Set<? extends org.jclouds.domain.Location>> locations) {
-
- this.locations = locations;
- }
-
- @Override
- public Image apply(final OSImage image) {
- final ImageBuilder builder = new ImageBuilder()
- .id(image.name())
- .name(image.label())
- .description(image.description())
- .status(Image.Status.AVAILABLE)
- .uri(image.mediaLink())
- .providerId(image.name())
- .location(FluentIterable.from(locations.get())
- .firstMatch(LocationPredicates.idEquals(image.location())).orNull());
-
- final OperatingSystem.Builder osBuilder = osFamily().apply(image);
- return builder.operatingSystem(osBuilder.build()).build();
- }
-
- public static Function<OSImage, OperatingSystem.Builder> osFamily() {
- return new Function<OSImage, OperatingSystem.Builder>() {
- @Override
- public OperatingSystem.Builder apply(final OSImage image) {
- checkNotNull(image.label(), "label");
- final String label = Splitter.on('/').split(image.label()).iterator().next();
-
- boolean is64Bit = false;
-
- OsFamily family = OsFamily.UNRECOGNIZED;
- if (label.contains(CENTOS)) {
- family = OsFamily.CENTOS;
- is64Bit = image.name().contains("x64");
- } else if (label.contains(OPENLOGIC)) {
- family = OsFamily.CENTOS;
- } else if (label.contains(SUSE)) {
- family = OsFamily.SUSE;
- } else if (label.contains(UBUNTU)) {
- family = OsFamily.UBUNTU;
- is64Bit = image.name().contains("amd64");
- } else if (label.contains(WINDOWS)) {
- family = OsFamily.WINDOWS;
- is64Bit = true;
- } else if (label.contains(ORACLE_lINUX)) {
- family = OsFamily.OEL;
- }
-
- String version = UNRECOGNIZED;
- //ex: CoreOS Alpha -> Alpha
- if (label.contains(COREOS)) {
- version = label.replace("CoreOS ", "");
- } //openSUSE 13.1 -> 13.1
- else if (label.contains(OPENSUSE)) {
- version = label.replace("openSUSE ", "");
- } //SUSE Linux Enterprise Server 11 SP3 (Premium Image) -> 11 SP3(Premium Image)
- else if (label.contains(SUSE)) {
- version = label.replace("SUSE ", "");
- } //Ubuntu Server 12.04 LTS -> 12.04 LTS
- else if (label.contains(UBUNTU)) {
- version = label.replace("Ubuntu Server ", "");
- } else if (label.contains(SQL_SERVER)) {
- version = label;
- } else if (label.contains(CENTOS)) {
- version = label;
- } else if (label.contains(WINDOWS)) {
- version = label;
- } else if (label.equals(ORACLE_lINUX)) {
- version = label;
- }
-
- return OperatingSystem.builder().
- family(family != OsFamily.UNRECOGNIZED
- ? family
- : image.os() == OSImage.Type.WINDOWS
- ? OsFamily.WINDOWS
- : OsFamily.LINUX).
- version(version).
- is64Bit(is64Bit).
- description(image.description() + "");
- }
- };
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/RoleSizeToHardware.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/RoleSizeToHardware.java
deleted file mode 100644
index 5421531..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/RoleSizeToHardware.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions;
-
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.VolumeBuilder;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-
-public class RoleSizeToHardware implements Function<RoleSize, Hardware> {
-
- @Override
- public Hardware apply(RoleSize from) {
- final HardwareBuilder builder = new HardwareBuilder().
- ids(from.name().name()).
- name(from.name().name()).
- hypervisor("Hyper-V").
- processors(ImmutableList.of(new Processor(from.cores(), 2))).
- ram(from.memoryInMb());
- if (from.virtualMachineResourceDiskSizeInMb() != null) {
- builder.volume(new VolumeBuilder()
- .size(Float.valueOf(from.virtualMachineResourceDiskSizeInMb()))
- .type(Volume.Type.LOCAL)
- .build());
- }
- return builder.build();
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/internal/OperatingSystems.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/internal/OperatingSystems.java
deleted file mode 100644
index 0cc1927..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/functions/internal/OperatingSystems.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions.internal;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.compute.domain.OsFamily;
-
-import com.google.common.base.Function;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-
-public class OperatingSystems {
-
- protected static final String CENTOS = "CentOS";
-
- protected static final String SUSE = "SUSE";
-
- protected static final String OPENSUSE = "openSUSE";
-
- protected static final String UBUNTU = "Ubuntu";
-
- protected static final String WINDOWS = "Windows";
-
- private static final String MICROSOFT = "Microsoft";
-
- public static final String WINDOWS_SERVER = "Windows Server";
-
- public static final String MICROSOFT_SQL_SERVER = "Microsoft SQL Server";
-
- public static Function<String, OsFamily> osFamily() {
- return new Function<String, OsFamily>() {
- @Override
- public OsFamily apply(final String label) {
- if (label != null) {
- if (label.contains(CENTOS)) {
- return OsFamily.CENTOS;
- } else if (label.contains(SUSE)) {
- return OsFamily.SUSE;
- } else if (label.contains(UBUNTU)) {
- return OsFamily.UBUNTU;
- } else if (label.contains(WINDOWS)) {
- return OsFamily.WINDOWS;
- }
- }
- return OsFamily.UNRECOGNIZED;
- }
- };
- }
-
- public static Function<OSImage, String> version() {
- return new Function<OSImage, String>() {
- @Override
- public String apply(final OSImage osImage) {
- if (osImage.category().matches("Canonical|OpenLogic")) {
- return Iterables.get(Splitter.on(" ").split(osImage.label()), 2);
- } else if (osImage.category().matches(SUSE)) {
- if (osImage.label().startsWith(OPENSUSE)) {
- return osImage.label().substring(OPENSUSE.length() + 1);
- }
- if (osImage.label().startsWith(SUSE)) {
- return Iterables.get(Splitter.on("-").split(osImage.name()), 4);
- }
- } else if (osImage.category().matches(MICROSOFT)) {
- if (osImage.label().startsWith(WINDOWS_SERVER)) {
- return osImage.label().substring(WINDOWS_SERVER.length() + 1);
- }
- if (osImage.label().startsWith(MICROSOFT_SQL_SERVER)) {
- return osImage.label().substring(MICROSOFT_SQL_SERVER.length() + 1);
- }
- } else if (osImage.category().matches("RightScale with Linux|Public ")) {
- final Iterable<String> splittedLabel = Splitter.on("-").split(osImage.label());
- if (Iterables.size(splittedLabel) > 2) {
- return Iterables.get(splittedLabel, 2);
- }
- }
- return null;
- }
- };
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
deleted file mode 100644
index db2c35d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/options/AzureComputeTemplateOptions.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.options;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.util.List;
-import java.util.Map;
-
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.scriptbuilder.domain.Statement;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.collect.ImmutableList;
-
-/**
- * Contains options supported by the {@link org.jclouds.compute.ComputeService#createNodesInGroup(
- * String, int, org.jclouds.compute.options.TemplateOptions)} operation.
- *
- * <h2>Usage</h2> The recommended way to instantiate a {@link AzureComputeTemplateOptions} object is to statically
- * import {@code AzureComputeTemplateOptions.*} and invoke a static creation method followed by an instance mutator (if
- * needed):
- * <p>
- *
- * <pre>
- * import static org.jclouds.compute.options.AzureComputeTemplateOptions.Builder.*;
- * ComputeService client = // get connection
- * templateBuilder.options(inboundPorts(22, 80, 8080, 443));
- * Set<? extends NodeMetadata> set = client.createNodesInGroup(tag, 2, templateBuilder.build());
- * </pre>
- *
- */
-public class AzureComputeTemplateOptions extends TemplateOptions implements Cloneable {
-
- protected String virtualNetworkName;
- protected List<String> subnetNames = ImmutableList.of();
- protected String storageAccountName;
- protected String storageAccountType;
- protected String networkSecurityGroupName;
- protected String reservedIPName;
- protected Boolean provisionGuestAgent;
- protected Boolean winrmUseHttps;
-
- @Override
- public AzureComputeTemplateOptions clone() {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- copyTo(options);
- return options;
- }
-
- @Override
- public void copyTo(final TemplateOptions to) {
- super.copyTo(to);
- if (to instanceof AzureComputeTemplateOptions) {
- final AzureComputeTemplateOptions eTo = AzureComputeTemplateOptions.class.cast(to);
- eTo.virtualNetworkName(virtualNetworkName);
- if (!subnetNames.isEmpty()) {
- eTo.subnetNames(subnetNames);
- }
- eTo.storageAccountName(storageAccountName);
- eTo.storageAccountType(storageAccountType);
- eTo.reservedIPName(reservedIPName);
- eTo.provisionGuestAgent(provisionGuestAgent);
- eTo.winrmUseHttps(winrmUseHttps);
- }
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof AzureComputeTemplateOptions)) return false;
- if (!super.equals(o)) return false;
-
- AzureComputeTemplateOptions that = (AzureComputeTemplateOptions) o;
-
- if (networkSecurityGroupName != null ? !networkSecurityGroupName.equals(that.networkSecurityGroupName) : that.networkSecurityGroupName != null)
- return false;
- if (reservedIPName != null ? !reservedIPName.equals(that.reservedIPName) : that.reservedIPName != null) return false;
- if (storageAccountName != null ? !storageAccountName.equals(that.storageAccountName) : that.storageAccountName != null) return false;
- if (storageAccountType != null ? !storageAccountType.equals(that.storageAccountType) : that.storageAccountType != null) return false;
- if (subnetNames != null ? !subnetNames.equals(that.subnetNames) : that.subnetNames != null) return false;
- if (virtualNetworkName != null ? !virtualNetworkName.equals(that.virtualNetworkName) : that.virtualNetworkName != null) return false;
- if (provisionGuestAgent != null ? !provisionGuestAgent.equals(that.provisionGuestAgent) : that.provisionGuestAgent != null) return false;
- if (winrmUseHttps != null ? !winrmUseHttps.equals(that.winrmUseHttps) : that.winrmUseHttps != null) return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = super.hashCode();
- result = 31 * result + (virtualNetworkName != null ? virtualNetworkName.hashCode() : 0);
- result = 31 * result + (subnetNames != null ? subnetNames.hashCode() : 0);
- result = 31 * result + (storageAccountName != null ? storageAccountName.hashCode() : 0);
- result = 31 * result + (storageAccountType != null ? storageAccountType.hashCode() : 0);
- result = 31 * result + (networkSecurityGroupName != null ? networkSecurityGroupName.hashCode() : 0);
- result = 31 * result + (reservedIPName != null ? reservedIPName.hashCode() : 0);
- result = 31 * result + (provisionGuestAgent != null ? provisionGuestAgent.hashCode() : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("virtualNetworkName", virtualNetworkName)
- .add("subnetNames", subnetNames)
- .add("storageAccountName", storageAccountName)
- .add("storageAccountType", storageAccountType)
- .add("networkSecurityGroupName", networkSecurityGroupName)
- .add("reservedIPName", reservedIPName)
- .add("provisionGuestAgent", provisionGuestAgent)
- .toString();
- }
-
- public AzureComputeTemplateOptions virtualNetworkName(@Nullable String virtualNetworkName) {
- this.virtualNetworkName = virtualNetworkName;
- return this;
- }
-
- public AzureComputeTemplateOptions subnetNames(Iterable<String> subnetNames) {
- this.subnetNames = ImmutableList.copyOf(checkNotNull(subnetNames, "subnetNames"));
- return this;
- }
-
- public AzureComputeTemplateOptions subnetNames(String...subnetNames) {
- return subnetNames(ImmutableList.copyOf(checkNotNull(subnetNames, "subnetNames")));
- }
-
-
- public AzureComputeTemplateOptions networkSecurityGroupName(@Nullable String networkSecurityGroupName) {
- this.networkSecurityGroupName = networkSecurityGroupName;
- return this;
- }
-
- public AzureComputeTemplateOptions storageAccountName(@Nullable String storageAccountName) {
- this.storageAccountName = storageAccountName;
- return this;
- }
-
- public AzureComputeTemplateOptions storageAccountType(@Nullable String storageAccountType) {
- this.storageAccountType = storageAccountType;
- return this;
- }
-
- public AzureComputeTemplateOptions reservedIPName(@Nullable String reservedIPName) {
- this.reservedIPName = reservedIPName;
- return this;
- }
-
- public AzureComputeTemplateOptions provisionGuestAgent(@Nullable Boolean provisionGuestAgent) {
- this.provisionGuestAgent = provisionGuestAgent;
- return this;
- }
-
- public AzureComputeTemplateOptions winrmUseHttps(@Nullable Boolean winrmUseHttps) {
- this.winrmUseHttps = winrmUseHttps;
- return this;
- }
-
- public String getVirtualNetworkName() {
- return virtualNetworkName;
- }
-
- public List<String> getSubnetNames() {
- return subnetNames;
- }
-
- public String getStorageAccountName() {
- return storageAccountName;
- }
-
- public String getStorageAccountType() {
- return storageAccountType;
- }
-
- public String getNetworkSecurityGroupName() {
- return networkSecurityGroupName;
- }
-
- public String getReservedIPName() {
- return reservedIPName;
- }
-
- public Boolean getProvisionGuestAgent() {
- return provisionGuestAgent;
- }
-
- public Boolean getWinrmUseHttps() {
- return winrmUseHttps;
- }
-
- public static class Builder {
-
- /**
- * @see #virtualNetworkName
- */
- public static AzureComputeTemplateOptions virtualNetworkName(final String virtualNetworkName) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.virtualNetworkName(virtualNetworkName);
- }
-
- /**
- * @see #subnetNames
- */
- public static AzureComputeTemplateOptions subnetNames(String...subnetNames) {
- AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.subnetNames(subnetNames);
- }
-
- /**
- * @see #subnetNames
- */
- public static AzureComputeTemplateOptions subnetNames(Iterable<String> subnetNames) {
- AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.subnetNames(subnetNames);
- }
-
- /**
- * @see #storageAccountName
- */
- public static AzureComputeTemplateOptions storageAccountName(final String storageAccountName) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.storageAccountName(storageAccountName);
- }
-
- /**
- * @see #storageAccountType
- */
- public static AzureComputeTemplateOptions storageAccountType(final String storageAccountType) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.storageAccountType(storageAccountType);
- }
-
- /**
- * @see org.jclouds.compute.options.TemplateOptions#inboundPorts(int...)
- */
- public static AzureComputeTemplateOptions inboundPorts(final int... ports) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.inboundPorts(ports);
- }
-
- /**
- * @see org.jclouds.compute.options.TemplateOptions#blockOnPort(int, int)
- */
- public static AzureComputeTemplateOptions blockOnPort(final int port, final int seconds) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.blockOnPort(port, seconds);
- }
-
- /**
- * @see org.jclouds.compute.options.TemplateOptions#userMetadata(java.util.Map)
- */
- public static AzureComputeTemplateOptions userMetadata(final Map<String, String> userMetadata) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.userMetadata(userMetadata);
- }
-
- /**
- * @see org.jclouds.compute.options.TemplateOptions#userMetadata(String, String)
- */
- public static AzureComputeTemplateOptions userMetadata(final String key, final String value) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.userMetadata(key, value);
- }
-
- /**
- * @see org.jclouds.compute.options.TemplateOptions#nodeNames(Iterable)
- */
- public static AzureComputeTemplateOptions nodeNames(final Iterable<String> nodeNames) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.nodeNames(nodeNames);
- }
-
- /**
- * @see org.jclouds.compute.options.TemplateOptions#networks(Iterable)
- */
- public static AzureComputeTemplateOptions networks(final Iterable<String> networks) {
- final AzureComputeTemplateOptions options = new AzureComputeTemplateOptions();
- return options.networks(networks);
- }
- }
-
- // methods that only facilitate returning the correct object type
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions blockOnPort(int port, int seconds) {
- return AzureComputeTemplateOptions.class.cast(super.blockOnPort(port, seconds));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions inboundPorts(int... ports) {
- return AzureComputeTemplateOptions.class.cast(super.inboundPorts(ports));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions authorizePublicKey(String publicKey) {
- return AzureComputeTemplateOptions.class.cast(super.authorizePublicKey(publicKey));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions installPrivateKey(String privateKey) {
- return AzureComputeTemplateOptions.class.cast(super.installPrivateKey(privateKey));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions blockUntilRunning(boolean blockUntilRunning) {
- return AzureComputeTemplateOptions.class.cast(super.blockUntilRunning(blockUntilRunning));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions dontAuthorizePublicKey() {
- return AzureComputeTemplateOptions.class.cast(super.dontAuthorizePublicKey());
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions nameTask(String name) {
- return AzureComputeTemplateOptions.class.cast(super.nameTask(name));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions runAsRoot(boolean runAsRoot) {
- return AzureComputeTemplateOptions.class.cast(super.runAsRoot(runAsRoot));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions runScript(Statement script) {
- return AzureComputeTemplateOptions.class.cast(super.runScript(script));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions overrideLoginCredentials(LoginCredentials overridingCredentials) {
- return AzureComputeTemplateOptions.class.cast(super.overrideLoginCredentials(overridingCredentials));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions overrideLoginPassword(String password) {
- return AzureComputeTemplateOptions.class.cast(super.overrideLoginPassword(password));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions overrideLoginPrivateKey(String privateKey) {
- return AzureComputeTemplateOptions.class.cast(super.overrideLoginPrivateKey(privateKey));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions overrideLoginUser(String loginUser) {
- return AzureComputeTemplateOptions.class.cast(super.overrideLoginUser(loginUser));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions overrideAuthenticateSudo(boolean authenticateSudo) {
- return AzureComputeTemplateOptions.class.cast(super.overrideAuthenticateSudo(authenticateSudo));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions userMetadata(Map<String, String> userMetadata) {
- return AzureComputeTemplateOptions.class.cast(super.userMetadata(userMetadata));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions userMetadata(String key, String value) {
- return AzureComputeTemplateOptions.class.cast(super.userMetadata(key, value));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions nodeNames(Iterable<String> nodeNames) {
- return AzureComputeTemplateOptions.class.cast(super.nodeNames(nodeNames));
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public AzureComputeTemplateOptions networks(Iterable<String> networks) {
- return AzureComputeTemplateOptions.class.cast(super.networks(networks));
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/predicates/StorageServicePredicates.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/predicates/StorageServicePredicates.java
deleted file mode 100644
index 4b8d3f2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/predicates/StorageServicePredicates.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.predicates;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static java.lang.String.format;
-
-import org.jclouds.azurecompute.domain.StorageService;
-
-import com.google.common.base.Predicate;
-
-/**
- * Predicates for working with {@link StorageService} collections.
- */
-public class StorageServicePredicates {
-
-
- public static Predicate<StorageService> sameLocation(final String location) {
- checkNotNull(location, "location must be defined");
-
- return new Predicate<StorageService>() {
- @Override
- public boolean apply(StorageService storageService) {
- return storageService.storageServiceProperties().location().equals(location);
- }
-
- @Override
- public String toString() {
- return "sameLocation(" + location + ")";
- }
- };
- }
-
- public static Predicate<StorageService> status(final StorageService.Status status) {
- checkNotNull(status, "status must be defined");
-
- return new Predicate<StorageService>() {
- @Override
- public boolean apply(StorageService storageService) {
- return storageService.storageServiceProperties().status() == status;
- }
-
- @Override
- public String toString() {
- return "status(" + status + ")";
- }
- };
- }
-
- public static Predicate<StorageService> matchesName(final String defaultStorageAccountPrefix) {
- checkNotNull(defaultStorageAccountPrefix, "defaultStorageAccountPrefix must be defined");
-
- return new Predicate<StorageService>() {
- @Override
- public boolean apply(StorageService storageService) {
- return storageService.serviceName().matches(format("^%s[a-z]{10}$", defaultStorageAccountPrefix));
- }
-
- @Override
- public String toString() {
- return "matchesName(" + defaultStorageAccountPrefix + ")";
- }
- };
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java
deleted file mode 100644
index 348b72d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.strategy;
-
-import static com.google.common.base.MoreObjects.firstNonNull;
-import static com.google.common.base.Predicates.and;
-import static com.google.common.base.Predicates.notNull;
-import static com.google.common.collect.Iterables.tryFind;
-import static java.lang.String.format;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.compute.config.AzureComputeServiceContextModule.AzureComputeConstants;
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.compute.predicates.StorageServicePredicates;
-import org.jclouds.azurecompute.config.AzureComputeProperties;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.compute.config.CustomizationResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.compute.strategy.CreateNodeWithGroupEncodedIntoName;
-import org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory;
-import org.jclouds.compute.strategy.ListNodesStrategy;
-import org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.inject.Inject;
-
-@Singleton
-public class GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes
- extends CreateNodesWithGroupEncodedIntoNameThenAddToSet {
-
- private static final String DEFAULT_STORAGE_ACCOUNT_PREFIX = "jclouds";
- private static final String DEFAULT_STORAGE_SERVICE_TYPE = "Standard_GRS";
-
- private final AzureComputeApi api;
- private final Predicate<String> operationSucceededPredicate;
- private final AzureComputeConstants azureComputeConstants;
-
- @Inject
- protected GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes(
- CreateNodeWithGroupEncodedIntoName addNodeWithGroupStrategy,
- ListNodesStrategy listNodesStrategy,
- GroupNamingConvention.Factory namingConvention,
- @Named("jclouds.user-threads") ListeningExecutorService userExecutor,
- Factory customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory,
- AzureComputeApi api,
- Predicate<String> operationSucceededPredicate,
- AzureComputeConstants azureComputeConstants) {
-
- super(addNodeWithGroupStrategy, listNodesStrategy, namingConvention, userExecutor,
- customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory);
-
- this.api = api;
- this.operationSucceededPredicate = operationSucceededPredicate;
- this.azureComputeConstants = azureComputeConstants;
- }
-
- @Override
- protected ListenableFuture<AtomicReference<NodeMetadata>> createNodeInGroupWithNameAndTemplate(
- final String group, final String name, final Template template) {
-
- return super.createNodeInGroupWithNameAndTemplate(group, name, template);
- }
-
- @Override
- public Map<?, ListenableFuture<Void>> execute(
- final String group, final int count, final Template template,
- final Set<NodeMetadata> goodNodes, final Map<NodeMetadata, Exception> badNodes,
- final Multimap<NodeMetadata, CustomizationResponse> customizationResponses) {
-
- final AzureComputeTemplateOptions templateOptions = template.getOptions().as(AzureComputeTemplateOptions.class);
- final String location = template.getLocation().getId();
- final String storageAccountName = templateOptions.getStorageAccountName();
- final String storageAccountType = firstNonNull(templateOptions.getStorageAccountType(), DEFAULT_STORAGE_SERVICE_TYPE);
- final String virtualNetworkName = templateOptions.getVirtualNetworkName();
-
- final StorageService storageService;
- if (storageAccountName != null) {
- if (api.getStorageAccountApi().get(storageAccountName) == null) {
- String message = String.format("storageAccountName %s specified via AzureComputeTemplateOptions doesn't exist", storageAccountName);
- logger.error(message);
- throw new IllegalStateException(message);
- }
- } else { // get suitable or create storage service
- storageService = tryFindExistingStorageServiceAccountOrCreate(api, location, generateStorageServiceName(DEFAULT_STORAGE_ACCOUNT_PREFIX), storageAccountType);
- templateOptions.storageAccountName(storageService.serviceName());
- }
-
- if (virtualNetworkName != null && templateOptions.getSubnetNames().isEmpty()) {
- String message = "AzureComputeTemplateOption.subnetNames must not be empty, if AzureComputeTemplateOption.virtualNetworkName is defined.";
- logger.warn(message);
- throw new IllegalArgumentException(message);
- }
-
- return super.execute(group, count, template, goodNodes, badNodes, customizationResponses);
- }
-
- /**
- * Tries to find a storage service account whose name matches the regex DEFAULT_STORAGE_ACCOUNT_PREFIX+"[a-z]{10}" in
- * the location, otherwise it creates a new storage service account with name and type in the location
- */
- private StorageService tryFindExistingStorageServiceAccountOrCreate(
- final AzureComputeApi api, final String location, final String storageAccountName, final String type) {
-
- final List<StorageService> storageServices = api.getStorageAccountApi().list();
- logger.debug("Looking for a suitable existing storage account ...");
-
- final Predicate<StorageService> storageServicePredicate = and(
- notNull(),
- StorageServicePredicates.sameLocation(location),
- StorageServicePredicates.status(StorageService.Status.Created),
- StorageServicePredicates.matchesName(DEFAULT_STORAGE_ACCOUNT_PREFIX)
- );
-
- final Optional<StorageService> storageServiceOptional = tryFind(storageServices, storageServicePredicate);
- if (storageServiceOptional.isPresent()) {
- final StorageService storageService = storageServiceOptional.get();
- logger.debug("Found a suitable existing storage service account '%s'", storageService);
- return storageService;
- } else {
- // create
- if (!checkAvailability(storageAccountName)) {
- logger.warn("The storage service account name %s is not available", storageAccountName);
- throw new IllegalStateException(format("Can't create a valid storage account with name %s. "
- + "Please, try by choosing a different `storageAccountName` in templateOptions and try again", storageAccountName));
- }
- logger.debug("Creating a storage service account '%s' in location '%s' ...", storageAccountName, location);
- final String createStorageServiceRequestId = api.getStorageAccountApi().create(
- CreateStorageServiceParams.builder()
- .serviceName(storageAccountName)
- .label(storageAccountName)
- .location(location)
- .accountType(StorageService.AccountType.valueOf(type))
- .build());
- if (!operationSucceededPredicate.apply(createStorageServiceRequestId)) {
- final String warnMessage = format("Create storage service account has not been completed within %sms.",
- azureComputeConstants.operationTimeout());
- logger.warn(warnMessage);
- final String illegalStateExceptionMessage = format("%s. Please, try by increasing `%s` and try again",
- warnMessage, AzureComputeProperties.OPERATION_TIMEOUT);
- throw new IllegalStateException(illegalStateExceptionMessage);
- }
- return api.getStorageAccountApi().get(storageAccountName);
- }
- }
-
- private boolean checkAvailability(final String name) {
- return api.getStorageAccountApi().isAvailable(name).result();
- }
-
- private static String generateStorageServiceName(final String prefix) {
- String characters = "abcdefghijklmnopqrstuvwxyz";
- StringBuilder builder = new StringBuilder();
- builder.append(prefix);
- int charactersLength = characters.length();
- for (int i = 0; i < 10; i++) {
- double index = Math.random() * charactersLength;
- builder.append(characters.charAt((int) index));
- }
- return builder.toString();
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/UseNodeCredentialsButOverrideFromTemplate.java b/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/UseNodeCredentialsButOverrideFromTemplate.java
deleted file mode 100644
index 8987dea..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/compute/strategy/UseNodeCredentialsButOverrideFromTemplate.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.strategy;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.options.RunScriptOptions;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-import org.jclouds.domain.LoginCredentials;
-
-import com.google.common.base.Function;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-
-/**
- * Azure needs the credentials to insert the node so the node credentials already take the Image credentials into
- * account, as such only overriding the TemplateOptions credentials is required.
- */
-@Singleton
-public class UseNodeCredentialsButOverrideFromTemplate extends PrioritizeCredentialsFromTemplate {
-
- @Inject
- public UseNodeCredentialsButOverrideFromTemplate(
- Function<Template, LoginCredentials> credentialsFromImageOrTemplateOptions) {
-
- super(credentialsFromImageOrTemplateOptions);
- }
-
- public LoginCredentials apply(final Template template, final LoginCredentials fromNode) {
- final RunScriptOptions options = checkNotNull(template.getOptions(), "template options are required");
- final LoginCredentials.Builder builder = LoginCredentials.builder(fromNode);
- if (options.getLoginUser() != null) {
- builder.user(template.getOptions().getLoginUser());
- }
- if (options.getLoginPassword() != null) {
- builder.password(options.getLoginPassword());
- }
- if (options.getLoginPrivateKey() != null) {
- builder.privateKey(options.getLoginPrivateKey());
- }
- if (options.shouldAuthenticateSudo() != null && options.shouldAuthenticateSudo()) {
- builder.authenticateSudo(true);
- }
- return builder.build();
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeHttpApiModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeHttpApiModule.java
deleted file mode 100644
index 779de7f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeHttpApiModule.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.config;
-
-import javax.net.ssl.SSLContext;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.handlers.AzureComputeErrorHandler;
-import org.jclouds.azurecompute.suppliers.DelegatingSSLContextSupplier;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.location.config.LocationModule;
-import org.jclouds.location.suppliers.ImplicitLocationSupplier;
-import org.jclouds.location.suppliers.implicit.OnlyLocationOrFirstRegionOptionallyMatchingRegionId;
-import org.jclouds.rest.ConfiguresHttpApi;
-import org.jclouds.rest.config.HttpApiModule;
-
-import com.google.common.base.Supplier;
-import com.google.inject.Scopes;
-import com.google.inject.TypeLiteral;
-
-@ConfiguresHttpApi
-public class AzureComputeHttpApiModule extends HttpApiModule<AzureComputeApi> {
-
- @Override
- protected void bindErrorHandlers() {
- bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(AzureComputeErrorHandler.class);
- bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(AzureComputeErrorHandler.class);
- bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(AzureComputeErrorHandler.class);
- }
-
- @Override
- protected void installLocations() {
- install(new LocationModule());
- bind(ImplicitLocationSupplier.class).
- to(OnlyLocationOrFirstRegionOptionallyMatchingRegionId.class).
- in(Scopes.SINGLETON);
- }
-
- @Override
- protected void configure() {
- install(new AzureComputeParserModule());
- super.configure();
- bind(new TypeLiteral<Supplier<SSLContext>>() {
- }).to(new TypeLiteral<DelegatingSSLContextSupplier>() {
- });
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeParserModule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeParserModule.java
deleted file mode 100644
index f357ad4..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeParserModule.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.config;
-
-import org.jclouds.json.config.GsonModule;
-
-import com.google.inject.AbstractModule;
-
-public class AzureComputeParserModule extends AbstractModule {
-
- @Override
- protected void configure() {
- bind(GsonModule.DateAdapter.class).to(GsonModule.Iso8601DateAdapter.class);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java b/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
deleted file mode 100644
index 381e1b8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/config/AzureComputeProperties.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.config;
-
-/**
- * Configuration properties and constants used in Azure Service Management connections.
- */
-public class AzureComputeProperties {
-
- public static final String OPERATION_TIMEOUT = "jclouds.azurecompute.operation.timeout";
-
- public static final String OPERATION_POLL_INITIAL_PERIOD = "jclouds.azurecompute..operation.poll.initial.period";
-
- public static final String OPERATION_POLL_MAX_PERIOD = "jclouds.azurecompute.operation.poll.max.period";
-
- public static final String TCP_RULE_FORMAT = "jclouds.azurecompute.tcp.rule.format";
-
- public static final String TCP_RULE_REGEXP = "jclouds.azurecompute.tcp.rule.regexp";
-
- public static final String DEALLOCATE_WHEN_SUSPENDING = "jclouds.azurecompute.deallocate.when.suspending";
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/AffinityGroup.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/AffinityGroup.java
deleted file mode 100644
index e4bb196..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/AffinityGroup.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.List;
-
-import com.google.auto.value.AutoValue;
-import java.util.Date;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class AffinityGroup {
-
- public enum Capability {
-
- /**
- * Enables an affinity group to support Virtual Machines.
- */
- PersistentVMRole,
- /**
- * Enables the affinity group to support Virtual Machines that use high memory relative to the number of CPUs.
- */
- HighMemory;
-
- }
-
- AffinityGroup() {
- } // For AutoValue only!
-
- /**
- * Specifies the name of the affinity group.
- *
- * @return the name of the affinity group
- */
- public abstract String name();
-
- /**
- * Specifies the base-64-encoded identifier of the affinity group.
- *
- * @return the identifier of the affinity group
- */
- public abstract String label();
-
- /**
- * Specified the description of this affinity group.
- *
- * @return the description of this affinity group
- */
- @Nullable
- public abstract String description();
-
- /**
- * Specifies the data center in which the affinity group is located.
- *
- * @return the data center in which the affinity group is located
- */
- public abstract String location();
-
- /**
- * Specifies the capabilities that of the affinity group.
- *
- * @return the capabilities that of the affinity group
- */
- public abstract List<Capability> capabilities();
-
- /**
- * Specifies in UTC format when the affinity group was created.
- *
- * @return when the affinity group was created (in UTC)
- */
- public abstract Date createdTime();
-
- /**
- * Specifies the roles sizes that are available for deployments in the affinity group.
- *
- * @return the roles sizes that are available for deployments in the affinity group
- */
- @Nullable
- public abstract ComputeCapabilities computeCapabilities();
-
- public static AffinityGroup create(final String name, final String label, final String description,
- final String location, final List<Capability> capabilities, final Date createdTime,
- final ComputeCapabilities computeCapabilities) {
-
- return new AutoValue_AffinityGroup(name, label, description, location, copyOf(capabilities),
- createdTime, computeCapabilities);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Availability.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Availability.java
deleted file mode 100644
index c770b9e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Availability.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Availability {
-
- Availability() {
- } // For AutoValue only!
-
- public abstract Boolean result();
-
- @Nullable
- public abstract String reason();
-
- public static Availability create(final Boolean result, final String reason) {
- return new AutoValue_Availability(result, reason);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CaptureVMImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CaptureVMImageParams.java
deleted file mode 100644
index a68625e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CaptureVMImageParams.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499768.aspx" >api</a>
- */
-@AutoValue
-public abstract class CaptureVMImageParams {
-
- public abstract VMImage.OSDiskConfiguration.OSState osState();
-
- public abstract String name();
-
- public abstract String label();
-
- @Nullable public abstract String description();
-
- @Nullable public abstract String language();
-
- @Nullable public abstract String imageFamily();
-
- @Nullable public abstract RoleSize.Type recommendedVMSize();
-
- public Builder toBuilder() {
- return builder().fromVMImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
- private VMImage.OSDiskConfiguration.OSState osState;
- private String name;
- private String label;
- private String description;
- private String language;
- private String imageFamily;
- private RoleSize.Type recommendedVMSize;
-
- public Builder osState(VMImage.OSDiskConfiguration.OSState osState) {
- this.osState = osState;
- return this;
- }
-
- public Builder name(String name) {
- this.name = name;
- return this;
- }
-
- public Builder label(String label) {
- this.label = label;
- return this;
- }
-
- public Builder description(String description) {
- this.description = description;
- return this;
- }
-
- public Builder language(String language) {
- this.language = language;
- return this;
- }
-
- public Builder imageFamily(String imageFamily) {
- this.imageFamily = imageFamily;
- return this;
- }
-
- public Builder recommendedVMSize(RoleSize.Type recommendedRoleSize) {
- this.recommendedVMSize = recommendedRoleSize;
- return this;
- }
-
- public Builder fromVMImageParams(CaptureVMImageParams in) {
- return name(in.name())
- .label(in.label())
- .osState(in.osState())
- .description(in.description())
- .language(in.language())
- .imageFamily(in.imageFamily())
- .recommendedVMSize(in.recommendedVMSize());
-
- }
-
- public CaptureVMImageParams build() {
- return CaptureVMImageParams.create(osState, name, label, description, language,
- imageFamily, recommendedVMSize);
- }
-
- }
-
- public static CaptureVMImageParams create(VMImage.OSDiskConfiguration.OSState osState, String name, String label,
- String description, String language, String imageFamily, RoleSize.Type recommendedVMSize) {
- return new AutoValue_CaptureVMImageParams(osState, name, label, description, language, imageFamily,
- recommendedVMSize);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
deleted file mode 100644
index 561c679..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudService.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableMap.copyOf;
-import java.util.Date;
-import java.util.Map;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * System properties for the specified cloud service. These properties include the service name and service type; the
- * name of the affinity group to which the service belongs, or its location if it is not part of an affinity group.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >CloudService</a>
- */
-@AutoValue
-public abstract class CloudService {
-
- public enum Status {
-
- CREATING,
- CREATED,
- DELETING,
- DELETED,
- CHANGING,
- RESOLVING_DNS,
- UNRECOGNIZED;
-
- public static Status fromString(final String text) {
- if (text != null) {
- for (Status status : Status.values()) {
- if (text.equalsIgnoreCase(status.name())) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- CloudService() {
- } // For AutoValue only!
-
- /**
- * The name of the cloud service. This name is the DNS prefix name and can be used to access the cloud service.
- *
- * <p/>
- * For example, if the service name is MyService you could access the access the service by calling:
- * http://MyService.cloudapp.net
- */
- public abstract String name();
-
- /**
- * The geo-location of the cloud service in Windows Azure, if the cloud service is not associated with an affinity
- * group. If a location has been specified, the AffinityGroup element is not returned.
- */
- @Nullable
- public abstract String location();
-
- /**
- * The affinity group with which this cloud service is associated, if any. If the service is associated with an
- * affinity group, the Location element is not returned.
- */
- @Nullable
- public abstract String affinityGroup();
-
- /**
- * The name can be up to 100 characters in length. The name can be used identify the storage account for your
- * tracking purposes.
- */
- public abstract String label();
-
- @Nullable
- public abstract String description();
-
- public abstract Status status();
-
- public abstract Date created();
-
- public abstract Date lastModified();
-
- /**
- * Represents the name of an extended cloud service property. Each extended property must have both a defined name
- * and value. You can have a maximum of 50 extended property name/value pairs.
- *
- * <p/>
- * The maximum length of the Name element is 64 characters, only alphanumeric characters and underscores are valid in
- * the Name, and the name must start with a letter. Each extended property value has a maximum length of 255
- * characters.
- */
- public abstract Map<String, String> extendedProperties();
-
- public static CloudService create(final String name, final String location, final String affinityGroup,
- final String label, final String description, final Status status, final Date created,
- final Date lastModified, final Map<String, String> extendedProperties) {
-
- return new AutoValue_CloudService(name, location, affinityGroup, label, description, status, created,
- lastModified, copyOf(extendedProperties));
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudServiceProperties.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudServiceProperties.java
deleted file mode 100644
index a363b83..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CloudServiceProperties.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static com.google.common.collect.ImmutableMap.copyOf;
-import static com.google.common.collect.ImmutableList.copyOf;
-
-/**
- * System properties for the specified cloud service. These properties include the service name and
- * service type; the name of the affinity group to which the service belongs, or its location if it
- * is not part of an affinity group.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460806.aspx" >CloudService</a>
- */
-@AutoValue
-public abstract class CloudServiceProperties {
-
- public enum Status {
- CREATING, CREATED, DELETING, DELETED, CHANGING, RESOLVING_DNS,
- UNRECOGNIZED;
- }
-
- CloudServiceProperties() {
- } // For AutoValue only!
-
- /**
- * The name of the cloud service. This name is the DNS prefix name and can be used to access the
- * cloud service.
- * <p/>
- * <p/>For example, if the service name is MyService you could access the access the service by
- * calling: http://MyService.cloudapp.net
- */
- public abstract String serviceName();
-
- public abstract URI url();
-
- /**
- * The geo-location of the cloud service in Windows Azure, if the cloud service is not
- * associated with an affinity group. If a location has been specified, the AffinityGroup element
- * is not returned.
- */
- @Nullable public abstract String location();
-
- /**
- * The affinity group with which this cloud service is associated, if any. If the service is
- * associated with an affinity group, the Location element is not returned.
- */
- @Nullable public abstract String affinityGroup();
-
- /**
- * The name can be up to 100 characters in length. The name can be used identify the storage account for your
- * tracking purposes.
- */
- public abstract String label();
-
- @Nullable public abstract String description();
-
- @Nullable public abstract Status status();
-
- @Nullable public abstract Date created();
-
- @Nullable public abstract Date lastModified();
-
- public abstract Map<String, String> extendedProperties();
-
- public abstract List<Deployment> deployments();
-
- public static CloudServiceProperties create(String name, URI url, String location, String affinityGroup,
- String label, String description, Status status, Date created, Date lastModified, Map<String, String> extendedProperties,
- List<Deployment> deployments) {
- return new AutoValue_CloudServiceProperties(name, url, location, affinityGroup, label, description, status,
- created, lastModified, copyOf(extendedProperties), copyOf(deployments));
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ComputeCapabilities.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ComputeCapabilities.java
deleted file mode 100644
index 4c5eba9..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ComputeCapabilities.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-
-/**
- * Shared by {@link Location} and {@link AffinityGroup}.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/gg441293#bk_computecapabilities">docs</a>
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460797.aspx#bk_computecapabilities">docs</a>
- */
-@AutoValue
-public abstract class ComputeCapabilities {
-
- ComputeCapabilities() {
- } // For AutoValue only!
-
- /**
- * Specifies the role size that is available for the type of deployment.
- *
- * @return the role size that is available for the type of deployment
- */
- public abstract List<RoleSize.Type> virtualMachineRoleSizes();
-
- /**
- * Specifies the role size that is available for the type of deployment.
- *
- * @return the role size that is available for the type of deployment
- */
- public abstract List<RoleSize.Type> webWorkerRoleSizes();
-
- public static ComputeCapabilities create(
- final List<RoleSize.Type> virtualMachineRoleSizes, final List<RoleSize.Type> webWorkerRoleSizes) {
-
- return new AutoValue_ComputeCapabilities(
- ImmutableList.copyOf(virtualMachineRoleSizes), ImmutableList.copyOf(webWorkerRoleSizes));
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateAffinityGroupParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateAffinityGroupParams.java
deleted file mode 100644
index 57e853c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateAffinityGroupParams.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * To create a new affinity group.
- */
-@AutoValue
-public abstract class CreateAffinityGroupParams {
-
- CreateAffinityGroupParams() {
- } // For AutoValue only!
-
- /**
- * Specifies the name of the affinity group.
- *
- * @return the name of the affinity group
- */
- public abstract String name();
-
- /**
- * Specifies the base-64-encoded identifier of the affinity group.
- *
- * @return the identifier of the affinity group
- */
- public abstract String label();
-
- /**
- * Specified the description of this affinity group.
- *
- * @return the description of this affinity group
- */
- @Nullable
- public abstract String description();
-
- /**
- * Specifies the data center in which the affinity group is located.
- *
- * @return the data center in which the affinity group is located
- */
- public abstract String location();
-
- public Builder toBuilder() {
- return builder().fromAffinityGroupParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String name;
-
- private String label;
-
- private String description;
-
- private String location;
-
- public Builder name(final String name) {
- this.name = name;
- return this;
- }
-
- public Builder label(final String label) {
- this.label = label;
- return this;
- }
-
- public Builder description(final String description) {
- this.description = description;
- return this;
- }
-
- public Builder location(final String location) {
- this.location = location;
- return this;
- }
-
- public CreateAffinityGroupParams build() {
- return CreateAffinityGroupParams.create(name, label, description, location);
- }
-
- public Builder fromAffinityGroupParams(final CreateAffinityGroupParams in) {
- return name(in.name())
- .label(in.label())
- .description(in.description())
- .location(in.location());
- }
- }
-
- private static CreateAffinityGroupParams create(
- final String name, final String label, final String description, final String location) {
-
- return new AutoValue_CreateAffinityGroupParams(name, label, description, location);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateProfileParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateProfileParams.java
deleted file mode 100644
index 0f2a9a3..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateProfileParams.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * The Create Profile operation creates a new profile for a domain name, owned by the specified subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758254.aspx">docs</a>
- */
-@AutoValue
-public abstract class CreateProfileParams {
-
- CreateProfileParams() {
- } // For AutoValue only!
-
- /**
- * Specifies the name of the domain that the profile is being created for.
- *
- * A valid DNS name of the form <subdomain name>.trafficmanager.net, conforming to RFC 1123 specification.
- *
- * Total length of the domain name must be less than or equal to 253 characters. The <subdomain name> can
- * contain periods and each label within the subdomain must be less or equal to 63 characters.
- *
- * @return profile domain name.
- */
- public abstract String domain();
-
- /**
- * Specifies the name of the profile.
- *
- * The name must be composed of letters, numbers, and hyphens. The maximum length of the profile name is 256
- * characters. Hyphens cannot be the first or last character.
- *
- * @return profile name..
- */
- public abstract String name();
-
- public Builder toBuilder() {
- return builder().fromImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String domain;
- private String name;
-
- public Builder domain(final String domain) {
- this.domain = domain;
- return this;
- }
-
- public Builder name(final String name) {
- this.name = name;
- return this;
- }
-
- public CreateProfileParams build() {
- return CreateProfileParams.create(domain, name);
- }
-
- public Builder fromImageParams(final CreateProfileParams in) {
- return domain(in.domain()).name(in.name());
- }
- }
-
- private static CreateProfileParams create(
- final String domain,
- final String name) {
- return new AutoValue_CreateProfileParams(domain, name);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateStorageServiceParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateStorageServiceParams.java
deleted file mode 100644
index 64bd9c3..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/CreateStorageServiceParams.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableMap;
-import java.util.Map;
-import org.jclouds.azurecompute.domain.StorageService.AccountType;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class CreateStorageServiceParams {
-
- CreateStorageServiceParams() {
- } // For AutoValue only!
-
- /**
- * A name for the storage account that is unique within Azure. Storage account names must be between 3 and 24
- * characters in length and use numbers and lower-case letters only.
- */
- public abstract String serviceName();
-
- /**
- * A description for the storage account. The description may be up to 1024 characters in length.
- */
- @Nullable
- public abstract String description();
-
- /**
- * A label for the storage account specified as a base64-encoded string. The label may be up to 100 characters in
- * length. The label can be used identify the storage account for your tracking purposes.
- */
- public abstract String label();
-
- /**
- * Required if AffinityGroup is not specified. The location where the storage account is created.
- */
- @Nullable
- public abstract String location();
-
- /**
- * Required if Location is not specified. The name of an existing affinity group in the specified subscription.
- */
- @Nullable
- public abstract String affinityGroup();
-
- /**
- * Represents the name of an extended cloud service property. Each extended property must have both a defined name
- * and value. You can have a maximum of 50 extended property name/value pairs.
- *
- * <p/>
- * The maximum length of the Name element is 64 characters, only alphanumeric characters and underscores are valid in
- * the Name, and the name must start with a letter. Each extended property value has a maximum length of 255
- * characters.
- */
- @Nullable
- public abstract Map<String, String> extendedProperties();
-
- /**
- * Specifies whether the account supports locally-redundant storage, geo-redundant storage, zone-redundant storage,
- * or read access geo-redundant storage.
- */
- public abstract AccountType accountType();
-
- public Builder toBuilder() {
- return builder().fromCreateStorageServiceParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String serviceName;
-
- private String description;
-
- private String label;
-
- private String location;
-
- private String affinityGroup;
-
- private Map<String, String> extendedProperties;
-
- private AccountType accountType;
-
- public Builder serviceName(final String serviceName) {
- this.serviceName = serviceName;
- return this;
- }
-
- public Builder description(final String description) {
- this.description = description;
- return this;
- }
-
- public Builder label(final String label) {
- this.label = label;
- return this;
- }
-
- public Builder location(final String location) {
- this.location = location;
- return this;
- }
-
- public Builder affinityGroup(final String affinityGroup) {
- this.affinityGroup = affinityGroup;
- return this;
- }
-
- public Builder extendedProperties(final Map<String, String> extendedProperties) {
- this.extendedProperties = extendedProperties;
- return this;
- }
-
- public Builder accountType(final AccountType accountType) {
- this.accountType = accountType;
- return this;
- }
-
- public CreateStorageServiceParams build() {
- return CreateStorageServiceParams.create(serviceName, description, label, location, affinityGroup,
- extendedProperties, accountType);
- }
-
- public Builder fromCreateStorageServiceParams(final CreateStorageServiceParams storageServiceParams) {
- return serviceName(storageServiceParams.serviceName()).
- description(storageServiceParams.description()).
- label(storageServiceParams.label()).
- location(storageServiceParams.location()).
- affinityGroup(storageServiceParams.affinityGroup()).
- extendedProperties(storageServiceParams.extendedProperties()).
- accountType(storageServiceParams.accountType());
- }
- }
-
- private static CreateStorageServiceParams create(
- final String serviceName, final String description, final String label, final String location,
- final String affinityGroup, final Map<String, String> extendedProperties, final AccountType accountType) {
-
- return new AutoValue_CreateStorageServiceParams(serviceName, description, label, location, affinityGroup,
- extendedProperties == null ? null : ImmutableMap.copyOf(extendedProperties), accountType);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
deleted file mode 100644
index cf482a7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DataVirtualHardDisk.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx#DataVirtualHardDisks" >api</a>
- */
-@AutoValue
-public abstract class DataVirtualHardDisk {
-
- public enum Caching {
-
- READ_ONLY,
- READ_WRITE,
- NONE;
-
- public static Caching fromString(final String text) {
- if (text != null) {
- for (Caching caching : Caching.values()) {
- if (text.equalsIgnoreCase(caching.name())) {
- return caching;
- }
- }
- }
- return NONE;
- }
-
- }
-
- /**
- * Specifies the caching mode of the operating system disk. This setting impacts the consistency and performance of
- * the disk. Possible values are: ReadOnly ReadWrite The default value is ReadWrite
- */
- @Nullable
- public abstract Caching hostCaching();
-
- /**
- * Required if an existing disk is being used to create a Virtual Machine. Specifies the name of a new or existing
- * disk
- */
- @Nullable
- public abstract String diskName();
-
- /**
- * Specifies the Logical Unit Number (LUN) for the data disk. If the disk is the first disk that is added, this
- * element is optional and the default value of 0 is used. If more than one disk is being added, this element is
- * required.
- * <p/>
- * You can use Get Role to find the LUN numbers that are already being used. Valid LUN values are 0 through 31
- */
- @Nullable
- public abstract Integer lun();
-
- /**
- * Specifies the size, in GB, of an empty disk to be attached to the Virtual Machine.If the disk that is being added
- * is already registered in the subscription, this element is ignored.If the disk and VHD is being created by Azure
- * as it is added, this element defines the size of the new disk.
- * <p/>
- * The number of disks that can be added to a Virtual Machine is limited by the size of the machine.
- * <p/>
- * This element is used with the MediaLink element.
- */
- @Nullable
- public abstract Integer logicalDiskSizeInGB();
-
- /**
- * If the disk that is being added is already registered in the subscription or the VHD for the disk already exists
- * in blob storage, this element is ignored. If a VHD file does not exist in blob storage, this element defines the
- * location of the new VHD that is created when the new disk is added. Example:
- * http://example.blob.core.windows.net/disks/mydatadisk.vhd
- */
- @Nullable
- public abstract URI mediaLink();
-
- /**
- * This property identifies the type of the storage account for the backing VHD. If the backing VHD is in an
- * Provisioned Storage account, “Provisioned” is returned otherwise “Standard” is returned.
- * <p/>
- * This property is only returned with a version header of 2014-10-01 or newer
- */
- @Nullable
- public abstract String ioType();
-
- public static DataVirtualHardDisk create(final Caching hostCaching, final String diskName,
- final Integer lun, final Integer logicalDiskSizeInGB, final URI mediaLink, final String ioType) {
-
- return new AutoValue_DataVirtualHardDisk(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink, ioType);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
deleted file mode 100644
index a1db92f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Deployment.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Deployment {
-
- public enum Slot {
-
- PRODUCTION,
- STAGING,
- UNRECOGNIZED;
-
- public static Slot fromString(final String text) {
- if (text != null) {
- for (Slot slot : Slot.values()) {
- if (text.equalsIgnoreCase(slot.name())) {
- return slot;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public enum Status {
-
- RUNNING("Running"),
- SUSPENDED("Suspended"),
- RUNNING_TRANSITIONING("RunningTransitioning"),
- SUSPENDED_TRANSITIONING("SuspendedTransitioning"),
- STARTING("Starting"),
- SUSPENDING("Suspending"),
- DEPLOYING("Deploying"),
- DELETING("Deleting"),
- UNRECOGNIZED("");
-
- private final String key;
-
- private Status(final String key) {
- this.key = key;
- }
-
- public static Status fromString(final String text) {
- if (text != null) {
- for (Status status : Status.values()) {
- if (text.equalsIgnoreCase(status.key)) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public enum InstanceStatus {
-
- ROLE_STATE_UNKNOWN("RoleStateUnknown"),
- CREATING_VM("CreatingVM"),
- STARTING_VM("StartingVM"),
- CREATING_ROLE("CreatingRole"),
- STARTING_ROLE("StartingRole"),
- READY_ROLE("ReadyRole", false),
- BUSY_ROLE("BusyRole"),
- STOPPING_ROLE("StoppingRole"),
- STOPPING_VM("StoppingVM"),
- STOPPED_DEALLOCATED("StoppedDeallocated", false),
- PREPARING("Preparing"),
- DELETING_VM("DeletingVM"),
- STOPPED_VM("StoppedVM", false),
- RESTARTING_ROLE("RestartingRole"),
- CYCLING_ROLE("CyclingRole"),
- FAILED_STARTING_ROLE("FailedStartingRole", false),
- FAILED_STARTING_VM("FailedStartingVM", false),
- UNRESPONSIVE_ROLE("UnresponsiveRole"),
- PROVISIONING("Provisioning"),
- PROVISIONING_FAILED("ProvisioningFailed", false),
- /**
- * Not parsable into one of the above.
- */
- UNRECOGNIZED("");
-
- private final String key;
-
- private final boolean _transient;
-
- private InstanceStatus(final String key) {
- this(key, true);
- }
-
- private InstanceStatus(final String key, final boolean _transient) {
- this.key = key;
- this._transient = _transient;
- }
-
- public boolean isTransient() {
- return _transient;
- }
-
- public static InstanceStatus fromString(final String text) {
- if (text != null) {
- for (InstanceStatus status : InstanceStatus.values()) {
- if (text.equalsIgnoreCase(status.key)) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public enum PowerState {
-
- STARTING("Starting"),
- STARTED("Started"),
- STOPPING("Stopping"),
- STOPPED("Stopped"),
- UNKNOWN("Unknown"),
- /**
- * Not parsable into one of the above.
- */
- UNRECOGNIZED("");
-
- private final String key;
-
- private PowerState(final String key) {
- this.key = key;
- }
-
- public static PowerState fromString(final String text) {
- if (text != null) {
- for (PowerState state : PowerState.values()) {
- if (text.equalsIgnoreCase(state.key)) {
- return state;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- @AutoValue
- public abstract static class VirtualIP {
-
- public abstract String address();
-
- public abstract Boolean isDnsProgrammed();
-
- public abstract String name();
-
- VirtualIP() { // For AutoValue only!
- }
-
- public static VirtualIP create(final String address, final Boolean isDnsProgrammed, final String name) {
- return new AutoValue_Deployment_VirtualIP(address, isDnsProgrammed, name);
- }
- }
-
- @AutoValue
- public abstract static class InstanceEndpoint {
-
- public abstract String name();
-
- public abstract String vip();
-
- public abstract int publicPort();
-
- public abstract int localPort();
-
- public abstract String protocol();
-
- InstanceEndpoint() { // For AutoValue only!
- }
-
- public static InstanceEndpoint create(final String name, final String vip,
- final int publicPort, final int localPort, final String protocol) {
-
- return new AutoValue_Deployment_InstanceEndpoint(name, vip, publicPort, localPort, protocol);
- }
- }
-
- @AutoValue
- public abstract static class RoleInstance {
-
- public abstract String roleName();
-
- public abstract String instanceName();
-
- public abstract InstanceStatus instanceStatus();
-
- public abstract PowerState powerState();
-
- @Nullable // null value in case of StoppedDeallocated
- public abstract Integer instanceUpgradeDomain();
-
- @Nullable // null value in case of StoppedDeallocated
- public abstract Integer instanceFaultDomain();
-
- @Nullable // null value in case of StoppedDeallocated
- public abstract RoleSize.Type instanceSize();
-
- @Nullable // null value in case of StoppedDeallocated
- public abstract String ipAddress();
-
- @Nullable
- public abstract String hostname();
-
- @Nullable
- public abstract List<InstanceEndpoint> instanceEndpoints();
-
- RoleInstance() { // For AutoValue only!
- }
-
- public static RoleInstance create(final String roleName, final String instanceName,
- final InstanceStatus instanceStatus, final PowerState powerState, final Integer instanceUpgradeDomain,
- final Integer instanceFaultDomain, final RoleSize.Type instanceSize,
- final String ipAddress, final String hostname, final List<InstanceEndpoint> instanceEndpoints) {
-
- return new AutoValue_Deployment_RoleInstance(roleName, instanceName, instanceStatus, powerState,
- instanceUpgradeDomain, instanceFaultDomain, instanceSize, ipAddress, hostname,
- instanceEndpoints == null ? null : copyOf(instanceEndpoints));
- }
- }
-
- Deployment() {
- } // For AutoValue only!
-
- /**
- * The user-supplied name for this deployment.
- */
- public abstract String name();
-
- /**
- * The environment to which the cloud service is deployed.
- */
- public abstract Slot slot();
-
- public abstract Status status();
-
- /**
- * The user-supplied name of the deployment returned as a base-64 encoded string. This name can be used identify the
- * deployment for your tracking purposes.
- */
- public abstract String label();
-
- /**
- * The instance state is returned as an English human-readable string that, when present, provides a snapshot of the
- * state of the virtual machine at the time the operation was called.
- *
- * For example, when the instance is first being initialized a "Preparing Windows for first use." could be returned.
- */
- @Nullable
- public abstract String instanceStateDetails();
-
- /**
- * Error code of the latest role or VM start
- *
- * For VMRoles the error codes are:
- *
- * WaitTimeout - The virtual machine did not communicate back to Azure infrastructure within 25 minutes. Typically
- * this indicates that the virtual machine did not start or that the guest agent is not installed.
- *
- * VhdTooLarge - The VHD image selected was too large for the virtual machine hosting the role.
- *
- * AzureInternalError – An internal error has occurred that has caused to virtual machine to fail to start. Contact
- * support for additional assistance.
- *
- * For web and worker roles this field returns an error code that can be provided to Windows Azure support to assist
- * in resolution of errors. Typically this field will be empty.
- */
- @Nullable
- public abstract String instanceErrorCode();
-
- public abstract List<VirtualIP> virtualIPs();
-
- public abstract List<RoleInstance> roleInstanceList();
-
- @Nullable
- public abstract List<Role> roleList();
-
- @Nullable
- public abstract String virtualNetworkName();
-
- public static Deployment create(final String name, final Slot slot, final Status status, final String label,
- final String instanceStateDetails, final String instanceErrorCode,
- final List<VirtualIP> virtualIPs, final List<RoleInstance> roleInstanceList,
- final List<Role> roles, final String virtualNetworkName) {
-
- return new AutoValue_Deployment(name, slot, status, label, instanceStateDetails,
- instanceErrorCode, copyOf(virtualIPs), copyOf(roleInstanceList),
- roles == null ? null : copyOf(roles), virtualNetworkName);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
deleted file mode 100644
index 5d0e5e6..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/DeploymentParams.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Set;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.rest.annotations.SinceApiVersion;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * To create a new deployment/role
- *
- * Warning : the OSType must be the one of the source image used to create the VM
- */
-// TODO: check which can be null.
-@AutoValue
-public abstract class DeploymentParams {
-
- @AutoValue
- public abstract static class ExternalEndpoint {
-
- public abstract String name();
-
- /**
- * Either {@code tcp} or {@code udp}.
- */
- public abstract String protocol();
-
- public abstract int port();
-
- public abstract int localPort();
-
- public static ExternalEndpoint inboundTcpToLocalPort(final int port, final int localPort) {
- return new AutoValue_DeploymentParams_ExternalEndpoint(
- String.format("tcp_%s-%s", port, localPort), "tcp", port, localPort);
- }
-
- public static ExternalEndpoint inboundUdpToLocalPort(final int port, final int localPort) {
- return new AutoValue_DeploymentParams_ExternalEndpoint(
- String.format("udp_%s-%s", port, localPort), "udp", port, localPort);
- }
-
- ExternalEndpoint() { // For AutoValue only!
- }
- }
-
- DeploymentParams() {
- } // For AutoValue only!
-
- /**
- * The user-supplied name for this deployment.
- */
- public abstract String name();
-
- /**
- * The size of the virtual machine to allocate. The default value is Small.
- */
- public abstract RoleSize.Type size();
-
- /**
- * Specifies the name of a user to be created in the sudoers group of the virtual machine. User names are ASCII
- * character strings 1 to 32 characters in length.
- */
- public abstract String username();
-
- /**
- * Specifies the associated password for the user name. Passwords are ASCII character strings 6 to 72 characters in
- * length.
- */
- public abstract String password();
-
- /**
- * {@link OSImage#name() name} of the user or platform image.
- */
- public abstract String sourceImageName();
-
- /**
- * Indicates the {@link OSImage#mediaLink() location} when {@link #sourceImageName() source} is a platform image.
- */
- public abstract URI mediaLink();
-
- /**
- * {@link OSImage#os() Os type} of the {@link #sourceImageName() source image}.
- */
- public abstract OSImage.Type os();
-
- public abstract Set<ExternalEndpoint> externalEndpoints();
-
- /**
- * {@link org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite#name}
- */
- @Nullable
- public abstract String virtualNetworkName();
-
- /**
- * Optional. Specifies the name of a reserved IP address that is to be assigned to the deployment. You must run
- * Create Reserved IP Address before you can assign the address to the deployment using this element.
- *
- * The ReservedIPName element is only available using version 2014-05-01 or higher.
- *
- * @return reserved IP.
- */
- @SinceApiVersion("2014-05-01")
- @Nullable
- public abstract String reservedIPName();
-
- public abstract List<String> subnetNames();
-
- /**
- * Optional. Indicates whether the VM Agent is installed on the Virtual
- * Machine. To run a resource extension in a Virtual Machine, this agent must
- * be installed.
- *
- * @return provisionGuestAgent true/false flag (or null)
- */
- @Nullable
- public abstract Boolean provisionGuestAgent();
-
- /**
- * Optional. Indicates whether Windows VM should be provisioned with Https WinRm listener.
- * By default it will use http listener.
- */
- @Nullable
- public abstract Boolean winrmUseHttps();
-
- public static Builder builder() {
- return new AutoValue_DeploymentParams.Builder()
- .externalEndpoints(ImmutableSet.<ExternalEndpoint> of())
- .subnetNames(ImmutableList.<String> of());
- }
-
- abstract Builder toBuilder();
-
- @AutoValue.Builder
- public abstract static class Builder {
- public abstract Builder name(String name);
- public abstract Builder size(RoleSize.Type roleSize);
- public abstract Builder username(String username);
- public abstract Builder password(String password);
- public abstract Builder winrmUseHttps(Boolean useHttps);
- public abstract Builder sourceImageName(String sourceImageName);
- public abstract Builder mediaLink(URI mediaLink);
- public abstract Builder os(OSImage.Type os);
- public abstract Builder externalEndpoints(Set<ExternalEndpoint> externalEndpoints);
- public abstract Builder virtualNetworkName(String virtualNetworkName);
- public abstract Builder reservedIPName(String reservedIPName);
- public abstract Builder subnetNames(List<String> subnetNames);
- public abstract Builder provisionGuestAgent(Boolean provisionGuestAgent);
-
- abstract Set<ExternalEndpoint> externalEndpoints();
- abstract List<String> subnetNames();
-
- abstract DeploymentParams autoBuild();
-
- public DeploymentParams build() {
- externalEndpoints(externalEndpoints() != null ? ImmutableSet.copyOf(externalEndpoints()) : null);
- subnetNames(subnetNames() != null ? ImmutableList.copyOf(subnetNames()) : null);
- return autoBuild();
- }
- }
-
- public static DeploymentParams create(String name, RoleSize.Type size, String username,
- String password, String sourceImageName, URI mediaLink,
- OSImage.Type os, Set<ExternalEndpoint> externalEndpoints,
- String virtualNetworkName, String reservedIPName,
- List<String> subnetNames, Boolean provisionGuestAgent) {
- return builder().name(name).size(size).username(username).password(password)
- .sourceImageName(sourceImageName).mediaLink(mediaLink).os(os)
- .externalEndpoints(externalEndpoints).virtualNetworkName(virtualNetworkName)
- .reservedIPName(reservedIPName).subnetNames(subnetNames)
- .provisionGuestAgent(provisionGuestAgent)
- .build();
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
deleted file mode 100644
index 7ce31e1..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Disk.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import java.net.URI;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * A disk in the image repository.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-@AutoValue
-public abstract class Disk {
-
- Disk() {
- } // For AutoValue only!
-
- @AutoValue
- public abstract static class Attachment {
-
- Attachment() {
- } // For AutoValue only!
-
- /**
- * The cloud service in which the disk is being used.
- */
- public abstract String hostedService();
-
- /**
- * The deployment in which the disk is being used.
- */
- public abstract String deployment();
-
- /**
- * The virtual machine that the disk is attached to.
- */
- public abstract String virtualMachine();
-
- public static Attachment create(
- final String hostedService, final String deployment, final String virtualMachine) {
-
- return new AutoValue_Disk_Attachment(hostedService, deployment, virtualMachine);
- }
- }
-
- /**
- * The name of the disk. This is the name that is used when creating one or more virtual machines using the disk.
- */
- public abstract String name();
-
- /**
- * The geo-location of the disk in Windows Azure, if the disk is not associated with an affinity group. If a location
- * has been specified, the AffinityGroup element is not returned.
- */
- @Nullable
- public abstract String location();
-
- /**
- * The affinity group with which this disk is associated, if any. If the service is associated with an affinity
- * group, the Location element is not returned.
- */
- @Nullable
- public abstract String affinityGroup();
-
- @Nullable
- public abstract String description();
-
- /**
- * The operating system type of the OS image, or null if a data disk.
- */
- @Nullable
- public abstract OSImage.Type os();
-
- /**
- * The location of the blob in the blob store in which the media for the image is located. The blob location belongs
- * to a storage account in the subscription specified by the
- * <subscription-id> value in the operation call.
- *
- * Example:
- *
- * http://example.blob.core.windows.net/disks/myimage.vhd
- */
- @Nullable
- public abstract URI mediaLink();
-
- @Nullable
- public abstract Integer logicalSizeInGB();
-
- /**
- * Contains properties that specify a virtual machine that currently using the disk. A disk cannot be deleted as long
- * as it is attached to a virtual machine.
- */
- @Nullable
- public abstract Attachment attachedTo();
-
- /**
- * The name of the OS Image from which the disk was created. This property is populated automatically when a disk is
- * created from an OS image by calling the Add Role, Create Deployment, or Provision Disk operations.
- */
- @Nullable
- public abstract String sourceImage();
-
- public static Disk create(final String name, final String location, final String affinityGroup,
- final String description, final OSImage.Type os,
- final URI mediaLink, final Integer logicalSizeInGB, final Attachment attachedTo, final String sourceImage) {
-
- return new AutoValue_Disk(
- name, location, affinityGroup, description, os, mediaLink, logicalSizeInGB, attachedTo, sourceImage);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
deleted file mode 100644
index 1da089a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Error.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460801" >api</a>
- */
-@AutoValue
-public abstract class Error {
-
- public static enum Code {
-
- MISSING_OR_INCORRECT_VERSION_HEADER,
- INVALID_XML_REQUEST,
- MISSING_OR_INVALID_REQUIRED_QUERY_PARAMETER,
- INVALID_HTTP_VERB,
- AUTHENTICATION_FAILED,
- RESOURCE_NOT_FOUND,
- INTERNAL_ERROR,
- OPERATION_TIMED_OUT,
- SERVER_BUSY,
- SUBSCRIPTION_DISABLED,
- BAD_REQUEST,
- CONFLICT_ERROR,
- UNRECOGNIZED;
-
- public static Code fromString(final String text) {
- if (text != null) {
- for (Code code : Code.values()) {
- if (text.equalsIgnoreCase(code.name())) {
- return code;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- Error() {
- } // For AutoValue only!
-
- /**
- * Error code
- */
- public abstract Code code();
-
- /**
- * User message
- */
- public abstract String message();
-
- public static Error create(final Code code, final String message) {
- return new AutoValue_Error(code, message);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Location.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Location.java
deleted file mode 100644
index 3ace3ee..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Location.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-
-import java.util.List;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * A data center location that is valid for your subscription.
- */
-@AutoValue
-public abstract class Location {
-
- Location() {
- } // For AutoValue only!
-
- /**
- * The name of the data center location. Ex. {@code West Europe}.
- */
- public abstract String name();
-
- /**
- * The localized name of the data center location.
- */
- public abstract String displayName();
-
- /**
- * Indicates the services available at this location. Ex. {@code Compute}.
- */
- public abstract List<String> availableServices();
-
- /**
- * Specifies the roles sizes that are available for deployments in the location.
- */
- @Nullable
- public abstract ComputeCapabilities computeCapabilities();
-
- public static Location create(final String name, final String displayName, final List<String> availableServices,
- final ComputeCapabilities computeCapabilities) {
-
- return new AutoValue_Location(name, displayName, copyOf(availableServices), computeCapabilities);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkConfiguration.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkConfiguration.java
deleted file mode 100644
index 86c7027..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkConfiguration.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class NetworkConfiguration {
-
- @AutoValue
- public abstract static class Subnet {
-
- Subnet() {
- } // For AutoValue only!
-
- public abstract String name();
-
- @Nullable
- public abstract String addressPrefix();
-
- @Nullable
- public abstract String networkSecurityGroup();
-
- public static Subnet create(final String name, final String addressPrefix, final String networkSecurityGroup) {
- return new AutoValue_NetworkConfiguration_Subnet(name, addressPrefix, networkSecurityGroup);
- }
- }
-
- @AutoValue
- public abstract static class AddressSpace {
-
- AddressSpace() {
- } // For AutoValue only!
-
- @Nullable
- public abstract String addressPrefix();
-
- public static AddressSpace create(final String addressPrefix) {
- return new AutoValue_NetworkConfiguration_AddressSpace(addressPrefix);
- }
- }
-
- @AutoValue
- public abstract static class VirtualNetworkSite {
-
- VirtualNetworkSite() {
- } // For AutoValue only!
-
- @Nullable
- public abstract String id();
-
- @Nullable
- public abstract String name();
-
- @Nullable
- public abstract String location();
-
- public abstract AddressSpace addressSpace();
-
- public abstract List<Subnet> subnets();
-
- public static VirtualNetworkSite create(
- final String id, final String name, final String location,
- final AddressSpace addressSpace, final List<Subnet> subnets) {
-
- return new AutoValue_NetworkConfiguration_VirtualNetworkSite(id, name, location, addressSpace, subnets);
- }
-
- }
-
- @AutoValue
- public abstract static class VirtualNetworkConfiguration {
-
- VirtualNetworkConfiguration() {
- } // For AutoValue only!
-
- @Nullable
- public abstract String dns();
-
- @Nullable
- public abstract List<VirtualNetworkSite> virtualNetworkSites();
-
- public static VirtualNetworkConfiguration create(
- final String dns, final List<VirtualNetworkSite> virtualNetworkSites) {
-
- return new AutoValue_NetworkConfiguration_VirtualNetworkConfiguration(dns, copyOf(virtualNetworkSites));
- }
- }
-
- public NetworkConfiguration() {
- } // For AutoValue only!
-
- public abstract VirtualNetworkConfiguration virtualNetworkConfiguration();
-
- public static NetworkConfiguration create(final VirtualNetworkConfiguration virtualNetworkConfiguration) {
- return new AutoValue_NetworkConfiguration(virtualNetworkConfiguration);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkSecurityGroup.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkSecurityGroup.java
deleted file mode 100644
index 1d490a7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/NetworkSecurityGroup.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-
-@AutoValue
-public abstract class NetworkSecurityGroup {
-
- public enum State {
-
- CREATED,
- CREATING,
- UPDATING,
- DELETING,
- UNAVAILABLE,
- UNRECOGNIZED;
-
- public static State fromString(final String text) {
- if (text != null) {
- for (State status : State.values()) {
- if (text.equalsIgnoreCase(status.name())) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- NetworkSecurityGroup() {
- } // For AutoValue only!
-
- public abstract String name();
-
- @Nullable
- public abstract String label();
-
- @Nullable
- public abstract String location();
-
- @Nullable
- public abstract State state();
-
- @Nullable
- public abstract List<Rule> rules();
-
- public static NetworkSecurityGroup create(final String name) {
- return new AutoValue_NetworkSecurityGroup(name, null, null, null, null);
- }
-
- public static NetworkSecurityGroup create(
- final String name, final String label, String location, final State state, final List<Rule> rules) {
-
- return new AutoValue_NetworkSecurityGroup(
- name,
- label,
- location,
- state,
- rules == null ? ImmutableList.<Rule>of() : ImmutableList.copyOf(rules));
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImage.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImage.java
deleted file mode 100644
index 4fb7a41..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImage.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * OS image from the image repository
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191">api</a>
- */
-@AutoValue
-public abstract class OSImage {
-
- public enum Type {
-
- LINUX,
- WINDOWS;
-
- }
-
- OSImage() {
- } // For AutoValue only!
-
- public abstract String name();
-
- /**
- * The geo-locations of the image, if the image is not associated with an affinity group.
- */
- @Nullable
- public abstract String location();
-
- /**
- * The affinity group with which this image is associated, if any.
- */
- @Nullable
- public abstract String affinityGroup();
-
- /**
- * The name can be up to 100 characters in length. The name can be used identify the storage account for your
- * tracking purposes.
- */
- public abstract String label();
-
- @Nullable
- public abstract String description();
-
- /**
- * Specifies a value that can be used to group images.
- *
- * @return value that can be used to group images
- */
- @Nullable
- public abstract String imageFamily();
-
- /**
- * The repository classification of image. All user images have the category "User", but categories for other images
- * could be, for example "Canonical"
- */
- @Nullable
- public abstract String category();
-
- /**
- * The operating system type of the OS image.
- */
- public abstract Type os();
-
- //The name of the publisher of the image. All user images have a publisher name of User.
- @Nullable
- public abstract String publisherName();
-
- /**
- * The locations of the blob in the blob store in which the media for the image is located. The blob locations
- * belongs to a storage account in the subscription specified by the
- * <subscription-id> value in the operation call.
- *
- * Example:
- *
- * http://example.blob.core.windows.net/disks/myimage.vhd
- */
- @Nullable
- public abstract URI mediaLink();
-
- public abstract int logicalSizeInGB();
-
- /**
- * The eulas for the image, if available.
- */
- // Not URI as some providers put non-uri data in, such as riverbed.
- public abstract List<String> eula();
-
- public static OSImage create(final String name, final String location, final String affinityGroup, final String label,
- final String description, final String imageFamily, final String category, final Type os,
- final String publisherName, final URI mediaLink, final int logicalSizeInGB, final List<String> eula) {
-
- return new AutoValue_OSImage(name, location, affinityGroup, label, description, imageFamily, category, os,
- publisherName, mediaLink, logicalSizeInGB, copyOf(eula));
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImageParams.java
deleted file mode 100644
index 6c85696..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/OSImageParams.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import java.net.URI;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * To create a new operating system image.
- */
-@AutoValue
-public abstract class OSImageParams {
-
- OSImageParams() {
- } // For AutoValue only!
-
- /**
- * Specifies a name that is used to identify the image when you create a Virtual Machine.
- */
- public abstract String name();
-
- /**
- * Specifies the friendly name of the image.
- */
- public abstract String label();
-
- /**
- * Specifies the location of the vhd file for the image.
- */
- public abstract URI mediaLink();
-
- /**
- * {@link OSImage#os() Os type} of the image.
- */
- public abstract OSImage.Type os();
-
- public Builder toBuilder() {
- return builder().fromImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String name;
-
- private String label;
-
- private URI mediaLink;
-
- private OSImage.Type os;
-
- public Builder name(final String name) {
- this.name = name;
- return this;
- }
-
- public Builder label(final String label) {
- this.label = label;
- return this;
- }
-
- public Builder mediaLink(final URI mediaLink) {
- this.mediaLink = mediaLink;
- return this;
- }
-
- public Builder os(final OSImage.Type os) {
- this.os = os;
- return this;
- }
-
- public OSImageParams build() {
- return OSImageParams.create(name, label, mediaLink, os);
- }
-
- public Builder fromImageParams(final OSImageParams in) {
- return name(in.name())
- .label(in.label())
- .mediaLink(in.mediaLink())
- .os(in.os());
- }
- }
-
- private static OSImageParams create(
- final String name, final String label, final URI mediaLink, final OSImage.Type os) {
-
- return new AutoValue_OSImageParams(name, label, mediaLink, os);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
deleted file mode 100644
index aefa470..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Operation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- *
- * Determines whether the asynchronous operation has succeeded, failed, or is still in progress.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460783" >api</a>
- */
-@AutoValue
-public abstract class Operation {
-
- public enum Status {
-
- IN_PROGRESS,
- SUCCEEDED,
- FAILED,
- UNRECOGNIZED;
-
- public static Status fromString(final String text) {
- if (text != null) {
- for (Status status : Status.values()) {
- if (text.equalsIgnoreCase(status.name())) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- Operation() {
- } // For AutoValue only!
-
- public abstract String id();
-
- public abstract Status status();
-
- @Nullable
- public abstract Integer httpStatusCode();
-
- /**
- * Present when the operation {@link Status#FAILED failed}.
- */
- @Nullable
- public abstract Error error();
-
- public static Operation create(
- final String id, final Status status, final Integer httpStatusCode, final Error error) {
-
- return new AutoValue_Operation(id, status, httpStatusCode, error);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Profile.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Profile.java
deleted file mode 100644
index 7d166f8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Profile.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import java.util.Map;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Traffic Maager profile.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758255.aspx" >Traffic Manager operations</a>
- */
-@AutoValue
-public abstract class Profile {
-
- Profile() {
- } // For AutoValue only!
-
- /**
- * Specifies the domain name, as specified during the creation of the profile.
- *
- * @return domain nae.
- */
- public abstract String domain();
-
- /**
- * Specifies the profile name.
- *
- * @return profile name.
- */
- public abstract String name();
-
- /**
- * Indicates whether a definition of the specified profile is enabled or disabled in Azure Traffic Manager. Possible
- * values are: Enabled, Disabled.
- *
- * @return profile definition status.
- */
- public abstract ProfileDefinition.Status status();
-
- /**
- * Specifies the version of the enabled definition. This value is always 1.
- *
- * @return version.
- */
- @Nullable
- public abstract String version();
-
- /**
- * Specifies the definition for the specified profile, along with the status. Only one definition version exists for
- * a profile.
- *
- * @return profile definitions in terms of version-status pairs;
- */
- public abstract Map<String, ProfileDefinition.Status> definitions();
-
- public static Profile create(
- final String domain,
- final String name,
- final ProfileDefinition.Status status,
- final String version,
- final Map<String, ProfileDefinition.Status> definitions) {
-
- return new AutoValue_Profile(domain, name, status, version, definitions);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinition.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinition.java
deleted file mode 100644
index df0190f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinition.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-
-/**
- * Cloud service certifcate.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx" >ServiceCertificate</a>
- */
-@AutoValue
-public abstract class ProfileDefinition {
-
- public static enum Status {
-
- UNRECOGNIZED(""),
- ENABLED("Enabled"),
- DISABLED("Disabled");
-
- private final String value;
-
- private Status(final String value) {
- this.value = value;
- }
-
- public static Status fromString(final String value) {
- for (Status status : Status.values()) {
- if (status.value.equalsIgnoreCase(value)) {
- return status;
- }
- }
- return UNRECOGNIZED;
- }
-
- public String getValue() {
- return value;
- }
- }
-
- public static enum LBMethod {
-
- UNRECOGNIZED(""),
- PERFORMANCE("Performance"),
- FAILOVER("Failover"),
- ROUNDROBIN("RoundRobin");
-
- private final String value;
-
- private LBMethod(final String value) {
- this.value = value;
- }
-
- public static LBMethod fromString(final String value) {
- for (LBMethod lb : LBMethod.values()) {
- if (lb.value.equalsIgnoreCase(value)) {
- return lb;
- }
- }
- return UNRECOGNIZED;
- }
-
- public String getValue() {
- return value;
- }
- }
-
- public static enum Protocol {
-
- UNRECOGNIZED, HTTP, HTTPS;
-
- public static Protocol fromString(final String value) {
- for (Protocol protocol : Protocol.values()) {
- if (protocol.name().equalsIgnoreCase(value)) {
- return protocol;
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public static enum HealthStatus {
-
- UNRECOGNIZED(""),
- ONLINE("Online"),
- DEGRADED("Degraded"),
- INACTIVE("Inactive"),
- DISABLED("Disabled"),
- STOPPED("Stopped"),
- CHECKINGENDPOINT("CheckingEndpoint");
-
- private final String value;
-
- private HealthStatus(final String value) {
- this.value = value;
- }
-
- public static HealthStatus fromString(final String value) {
- for (HealthStatus status : HealthStatus.values()) {
- if (status.value.equalsIgnoreCase(value)) {
- return status;
- }
- }
- return UNRECOGNIZED;
- }
-
- public String getValue() {
- return value;
- }
- }
-
- ProfileDefinition() {
- } // For AutoValue only!
-
- /**
- * Specifies the DNS Time-To-Live (TTL) that informs the Local DNS resolvers how long to cache DNS entries. The value
- * is an integer from 30 through 999,999.
- *
- * @return DNS cache Time-To-Live (TTL)
- */
- public abstract int ttl();
-
- /**
- * Indicates whether this definition is enabled or disabled for the profile. Possible values are: Enabled, Disabled.
- *
- * @return profile definition status.
- */
- public abstract Status status();
-
- /**
- * Specifies the version of the definition. This value is always 1.
- *
- * @return version.
- */
- public abstract String version();
-
- /**
- * Encapsulates the list of Azure Traffic Manager endpoint monitors. You have to define just 1 monitor in the list.
- *
- * @return profile definition monitors;
- */
- public abstract List<ProfileDefinitionMonitor> monitors();
-
- /**
- * Specifies the load balancing method to use to distribute connection. Possible values are: Performance, Failover,
- * RoundRobin
- *
- * @return load balancing method..
- */
- public abstract LBMethod lb();
-
- /**
- * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
- *
- * @return endpoints.
- * @see EndpointParams
- */
- public abstract List<ProfileDefinitionEndpoint> endpoints();
-
- /**
- * When defined as part of a policy, indicates the health status for the overall load balancing policy. Possible
- * values are: Online, Degraded, Inactive, Disabled, CheckingEndpoints.
- *
- * When defined as part of an endpoint, indicates the health status for the endpoint. Possible values are: Online,
- * Degraded, Inactive, Disabled, Stopped, CheckingEndpoint.
- *
- * @return endpoint health status.
- */
- public abstract ProfileDefinition.HealthStatus healthStatus();
-
- public static ProfileDefinition create(
- final int ttl,
- final Status status,
- final String version,
- final List<ProfileDefinitionMonitor> monitors,
- final LBMethod lb,
- final List<ProfileDefinitionEndpoint> endpoints,
- final ProfileDefinition.HealthStatus healthStatus) {
-
- return new AutoValue_ProfileDefinition(
- ttl, status, version, ImmutableList.copyOf(monitors), lb, ImmutableList.copyOf(endpoints), healthStatus);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpoint.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpoint.java
deleted file mode 100644
index e846a79..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpoint.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.azurecompute.domain.ProfileDefinition.HealthStatus;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionEndpoint {
-
- public static enum Type {
-
- UNRECOGNIZED(""),
- CLOUDSERVICE("CloudService"),
- AZUREWEBSITE("AzureWebsite"),
- ANY("Any"),
- TRAFFICMANAGER("TrafficManager");
-
- private final String value;
-
- private Type(final String value) {
- this.value = value;
- }
-
- public static Type fromString(final String value) {
- for (Type type : Type.values()) {
- if (type.value.equalsIgnoreCase(value)) {
- return type;
- }
- }
- return UNRECOGNIZED;
- }
-
- public String getValue() {
- return value;
- }
- }
-
- ProfileDefinitionEndpoint() {
- } // For AutoValue only!
-
- /**
- * Specifies the endpoint domain name. The value depends on endpoint type. If Type is CloudService, the value must be
- * a fully qualified domain name (FQDN) of a cloud service that belongs to the subscription ID that owns the
- * definition. If Type is AzureWebsite, the value must be an FQDN of an Azure web site that belongs to the
- * subscription ID that owns the definition. If Type is Any, the value can be any FQDN for an Azure service or a
- * service outside of Azure.
- *
- * @return endpoint domain name.
- */
- public abstract String domain();
-
- /**
- * Specifies the status of the monitoring endpoint. If set to Enabled, the endpoint is considered by the load
- * balancing method and is monitored. Possible values are:Enabled, Disabled
- *
- * @return status of the monitoring endpoint.
- */
- public abstract ProfileDefinition.Status status();
-
- /**
- * When defined as part of a policy, indicates the health status for the overall load balancing policy. Possible
- * values are: Online, Degraded, Inactive, Disabled, CheckingEndpoints.
- *
- * When defined as part of an endpoint, indicates the health status for the endpoint. Possible values are: Online,
- * Degraded, Inactive, Disabled, Stopped, CheckingEndpoint.
- *
- * @return endpoint health status.
- */
- public abstract ProfileDefinition.HealthStatus healthStatus();
-
- /**
- * Optional. Specifies the type of endpoint being added to the definition. Possible values are: CloudService,
- * AzureWebsite, Any, TrafficManager.
- *
- * If there is more than one AzureWebsite endpoint, they must be in different datacenters. This limitation doesn’t
- * apply to cloud services. The default value is CloudService. Use the TrafficManager type when configuring nested
- * profiles..
- *
- * @return endpoint type.
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh744833.aspx">Traffic Manager Overview</a>
- */
- public abstract Type type();
-
- /**
- * Required when LoadBalancingMethod is set to Performance and Type is set to Any or TrafficManager. Specifies the
- * name of the Azure region. The Location cannot be specified for endpoints of type CloudService or AzureWebsite, in
- * which the locations are determined from the service.
- *
- * @return endpoint protocol.
- * @see <a href="https://msdn.microsoft.com/en-us/library/gg441293.aspx">List Locations</a>
- */
- @Nullable
- public abstract String location();
-
- /**
- * Optional. Specifies the priority of the endpoint in load balancing. The higher the weight, the more frequently the
- * endpoint will be made available to the load balancer. The value must be greater than 0. For endpoints that do not
- * specify a weight value, a default weight of 1 will be used.
- *
- * @return
- */
- @Nullable
- public abstract Integer weight();
-
- /**
- * Optional. Can be specified when Type is set to TrafficManager. The minimum number of healthy endpoints within a
- * nested profile that determines whether any of the endpoints within that profile can receive traffic. Default value
- * is 1.
- *
- * @return minimum number of healthy endpoints.
- */
- @Nullable
- public abstract Integer min();
-
- public static ProfileDefinitionEndpoint create(
- final String domain,
- final ProfileDefinition.Status status,
- final HealthStatus healthStatus,
- final Type type,
- final String location,
- final Integer weight,
- final Integer min) {
-
- return new AutoValue_ProfileDefinitionEndpoint(
- domain, status, healthStatus, type, location, weight, min);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpointParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpointParams.java
deleted file mode 100644
index 34173f9..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionEndpointParams.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint.Type;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionEndpointParams {
-
- ProfileDefinitionEndpointParams() {
- } // For AutoValue only!
-
- /**
- * Specifies the endpoint domain name. The value depends on endpoint type. If Type is CloudService, the value must be
- * a fully qualified domain name (FQDN) of a cloud service that belongs to the subscription ID that owns the
- * definition. If Type is AzureWebsite, the value must be an FQDN of an Azure web site that belongs to the
- * subscription ID that owns the definition. If Type is Any, the value can be any FQDN for an Azure service or a
- * service outside of Azure.
- *
- * @return endpoint domain name.
- */
- public abstract String domain();
-
- /**
- * Specifies the status of the monitoring endpoint. If set to Enabled, the endpoint is considered by the load
- * balancing method and is monitored. Possible values are:Enabled, Disabled
- *
- * @return status of the monitoring endpoint.
- */
- public abstract Status status();
-
- /**
- * Optional. Specifies the type of endpoint being added to the definition. Possible values are: CloudService,
- * AzureWebsite, Any, TrafficManager.
- *
- * If there is more than one AzureWebsite endpoint, they must be in different datacenters. This limitation doesn’t
- * apply to cloud services. The default value is CloudService. Use the TrafficManager type when configuring nested
- * profiles..
- *
- * @return endpoint type.
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh744833.aspx">Traffic Manager Overview</a>
- */
- @Nullable
- public abstract Type type();
-
- /**
- * Required when LoadBalancingMethod is set to Performance and Type is set to Any or TrafficManager. Specifies the
- * name of the Azure region. The Location cannot be specified for endpoints of type CloudService or AzureWebsite, in
- * which the locations are determined from the service.
- *
- * @return endpoint protocol.
- * @see <a href="https://msdn.microsoft.com/en-us/library/gg441293.aspx">List Locations</a>
- */
- @Nullable
- public abstract String location();
-
- /**
- * Optional. Can be specified when Type is set to TrafficManager. The minimum number of healthy endpoints within a
- * nested profile that determines whether any of the endpoints within that profile can receive traffic. Default value
- * is 1.
- *
- * @return minimum number of healthy endpoints.
- */
- @Nullable
- public abstract Integer min();
-
- /**
- * Optional. Specifies the priority of the endpoint in load balancing. The higher the weight, the more frequently the
- * endpoint will be made available to the load balancer. The value must be greater than 0. For endpoints that do not
- * specify a weight value, a default weight of 1 will be used.
- *
- * @return endpoint priority.
- */
- @Nullable
- public abstract Integer weight();
-
- public Builder toBuilder() {
- return builder().fromImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String domain;
-
- private Status status;
-
- private Type type;
-
- private String location;
-
- private Integer min;
-
- private Integer weight;
-
- public Builder domain(final String domain) {
- this.domain = domain;
- return this;
- }
-
- public Builder status(final Status status) {
- this.status = status;
- return this;
- }
-
- public Builder type(final Type type) {
- this.type = type;
- return this;
- }
-
- public Builder location(final String location) {
- this.location = location;
- return this;
- }
-
- public Builder min(final Integer min) {
- this.min = min;
- return this;
- }
-
- public Builder weight(final Integer weight) {
- this.weight = weight;
- return this;
- }
-
- public ProfileDefinitionEndpointParams build() {
- return ProfileDefinitionEndpointParams.create(
- domain,
- status,
- type,
- location,
- min,
- weight);
- }
-
- public Builder fromImageParams(final ProfileDefinitionEndpointParams in) {
- return domain(in.domain())
- .status(in.status())
- .type(in.type())
- .location(in.location())
- .min(in.min())
- .weight(in.weight());
- }
- }
-
- private static ProfileDefinitionEndpointParams create(
- final String domain,
- final Status status,
- final Type type,
- final String location,
- final Integer min,
- final Integer weight) {
- return new AutoValue_ProfileDefinitionEndpointParams(domain, status, type, location, min, weight);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionMonitor.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionMonitor.java
deleted file mode 100644
index 50dc800..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionMonitor.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Azure Traffic Manager endpoint monitor.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionMonitor {
-
- public static final int DEFAULT_INTERVAL = 30;
- public static final int DEFAULT_TIMEOUT = 10;
- public static final int DEFAULT_TOLERAION = 3;
- public static final int DEFAULT_EXPECTED = 200;
- public static final String DEFAULT_VERB = "GET";
-
- ProfileDefinitionMonitor() {
- } // For AutoValue only!
-
- /**
- * Specifies the number of seconds between consecutive attempts to check the status of a monitoring endpoint. The
- * value must be set to 30.
- *
- * @return intervall in seconds.
- */
- @Nullable
- public abstract Integer intervall();
-
- /**
- * Specifies the time to wait for response from the monitoring endpoint. The value must be set to 10.
- *
- * @return timeout in seconds.
- */
- @Nullable
- public abstract Integer timeout();
-
- /**
- * Specifies the number of consecutive failures to probe an endpoint before taking the endpoint out of rotation. The
- * value must be set to 3.
- *
- * @return tolerated number of failures.
- */
- @Nullable
- public abstract Integer toleration();
-
- /**
- * Specifies the protocol to use to monitor endpoint health. Possible values are: HTTP, HTTPS.
- *
- * @return endpoint protocol.
- */
- public abstract ProfileDefinition.Protocol protocol();
-
- /**
- * Specifies the port used to monitor endpoint health. Accepted values are integer values greater than 0 and less or
- * equal to 65,535.
- *
- * @return endpoint port.
- */
- public abstract int port();
-
- /**
- * Specifies the verb to use when making an HTTP request to monitor endpoint health. The value must be set to GET.
- *
- * @return verb to use when making an HTTP request.
- */
- @Nullable
- public abstract String verb();
-
- /**
- * Specifies the path relative to the endpoint domain name to probe for health state. Restrictions are: The path must
- * be from 1 through 1000 characters. It must start with a forward slash /. It must contain no brackets <>. It
- * must contain no double slashes //. It must be a well-formed URI string.
- *
- * @return endpoint relative path.
- * @see <a href="https://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx">
- * Uri.IsWellFormedUriString Method</a>
- */
- public abstract String path();
-
- /**
- * Specifies the HTTP status code expected from a healthy endpoint. The endpoint is considered unhealthy otherwise.
- * The value must be set to 200.
- *
- * @return expected status code.
- */
- @Nullable
- public abstract Integer expected();
-
- public static ProfileDefinitionMonitor create(
- final Integer intervall,
- final Integer timeout,
- final Integer toleration,
- final ProfileDefinition.Protocol protocol,
- final int port,
- final String verb,
- final String path,
- final Integer expected) {
-
- return new AutoValue_ProfileDefinitionMonitor(
- intervall, timeout, toleration, protocol, port, verb, path, expected);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionParams.java
deleted file mode 100644
index fdd8b20..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ProfileDefinitionParams.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import java.util.List;
-import org.jclouds.azurecompute.domain.ProfileDefinition.LBMethod;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Protocol;
-
-/**
- * The Create Definition operation creates a new definition for a specified profile. This definition will be assigned a
- * version number by the service. For more information about creating a profile, see Create Profile.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758257.aspx">docs</a>
- */
-@AutoValue
-public abstract class ProfileDefinitionParams {
-
- ProfileDefinitionParams() {
- } // For AutoValue only!
-
- /**
- * Specifies the DNS Time-To-Live (TTL) that informs the Local DNS resolvers how long to cache DNS entries. The value
- * is an integer from 30 through 999,999.
- *
- * @return DNS cache Time-To-Live (TTL)
- */
- public abstract Integer ttl();
-
- /**
- * Specifies the protocol to use to monitor endpoint health. Possible values are: HTTP, HTTPS.
- *
- * @return endpoint protocol.
- */
- public abstract Protocol protocol();
-
- /**
- * Specifies the port used to monitor endpoint health. Accepted values are integer values greater than 0 and less or
- * equal to 65,535.
- *
- * @return endpoint port.
- */
- public abstract Integer port();
-
- /**
- * Specifies the path relative to the endpoint domain name to probe for health state. Restrictions are: The path must
- * be from 1 through 1000 characters. It must start with a forward slash /. It must contain no brackets <>. It
- * must contain no double slashes //. It must be a well-formed URI string.
- *
- * @return endpoint relative path.
- * @see <a href="https://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx">
- * Uri.IsWellFormedUriString Method</a>
- */
- public abstract String path();
-
- /**
- * Specifies the load balancing method to use to distribute connection. Possible values are: Performance, Failover,
- * RoundRobin
- *
- * @return load balancing method..
- */
- public abstract LBMethod lb();
-
- /**
- * Encapsulates the list of Azure Traffic Manager endpoints. You can define up to 100 endpoints in the list.
- *
- * @return endpoints.
- * @see ProfileDefinitionEndpointParams
- */
- public abstract List<ProfileDefinitionEndpointParams> endpoints();
-
- public Builder toBuilder() {
- return builder().fromImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private Integer ttl;
-
- private Protocol protocol;
-
- private Integer port;
-
- private String path;
-
- private LBMethod lb;
-
- private List<ProfileDefinitionEndpointParams> endpoints;
-
- public Builder ttl(final Integer ttl) {
- this.ttl = ttl;
- return this;
- }
-
- public Builder protocol(final Protocol protocol) {
- this.protocol = protocol;
- return this;
- }
-
- public Builder port(final Integer port) {
- this.port = port;
- return this;
- }
-
- public Builder path(final String path) {
- this.path = path;
- return this;
- }
-
- public Builder lb(final LBMethod lb) {
- this.lb = lb;
- return this;
- }
-
- public Builder endpoints(final List<ProfileDefinitionEndpointParams> endpoints) {
- this.endpoints = endpoints;
- return this;
- }
-
- public ProfileDefinitionParams build() {
- return ProfileDefinitionParams.create(ttl, protocol, port, path, lb, endpoints);
- }
-
- public Builder fromImageParams(final ProfileDefinitionParams in) {
- return ttl(in.ttl())
- .protocol(in.protocol())
- .port(in.port())
- .path(in.path())
- .lb(in.lb())
- .endpoints(in.endpoints());
- }
- }
-
- private static ProfileDefinitionParams create(
- final Integer ttl,
- final Protocol protocol,
- final Integer port,
- final String path,
- final LBMethod lb,
- final List<ProfileDefinitionEndpointParams> endpoints) {
- return new AutoValue_ProfileDefinitionParams(ttl, protocol, port, path, lb, endpoints);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Region.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Region.java
deleted file mode 100644
index 9ba712d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Region.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import java.util.Arrays;
-import java.util.Set;
-
-/**
- * Regions used in Azure.
- *
- * @see <a href="http://azure.microsoft.com/en-us/regions/">this page</a>
- */
-public enum Region {
-
- CENTRAL_US("Central US", "US-IA"),
- EAST_US("East US", "US-VA"),
- EAST_US_2("East US 2", "US-VA"),
- US_GOV_IOWA("US Gov Iowa", "US-IA"),
- US_GOV_VIRGINIA("US Gov Virginia", "US-VA"),
- NORTH_CENTRAL_US("North Central US", "US-IL"),
- SOUTH_CENTRAL_US("South Central US", "US-TX"),
- WEST_US("West US", "US-CA"),
- NORTH_EUROPE("North Europe", "IE"),
- WEST_EUROPE("West Europe", "NL"),
- EAST_ASIA("East Asia", "HK"),
- SOUTH_EAST_ASIA("Southeast Asia", "SG"),
- JAPAN_EAST("Japan East", "JP-11"),
- JAPAN_WEST("Japan West", "JP-27"),
- BRAZIL_SOUTH("Brazil South", "BR"),
- AUSTRALIA_EAST("Australia East", "AU-NSW"),
- AUSTRALIA_SOUTH_EAST("Australia Southeast", "AU-VIC");
-
- private final String name;
-
- private final String iso3166Code;
-
- Region(final String name, final String iso3166Code) {
- this.name = name;
- this.iso3166Code = iso3166Code;
- }
-
- public String getName() {
- return name;
- }
-
- public String iso3166Code() {
- return iso3166Code;
- }
-
- public static Region byName(final String name) {
- Preconditions.checkNotNull(name);
-
- Region result = null;
- for (Region region : values()) {
- if (name.equals(region.name)) {
- result = region;
- }
- }
-
- return result;
- }
-
- public static Set<String> iso3166Codes() {
- return ImmutableSet.copyOf(Iterables.transform(Arrays.asList(values()), new Function<Region, String>() {
-
- @Override
- public String apply(final Region region) {
- return region.iso3166Code;
- }
- }));
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddress.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddress.java
deleted file mode 100644
index 83ff644..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddress.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * In most cases, you won’t need to specify a Reserved Private IP address (RPIP) for your virtual machine. VMs in a
- * virtual network will automatically receive a private IP address from a range that you specify. But in certain cases,
- * specifying a reserved private IP address for a particular VM makes sense. For example, a VM may provide DNS services,
- * or act as a domain controller, or any othr critical role that relies on known IP address assignment. Also, if you
- * have a VM that you plan to stop and deprovision at some point, but want retain the RPIP for the VM when you provision
- * it again. An RPIP stays with the VM even through a stop/deprovision state. You can specify an RPIP by using
- * PowerShell at the time you create the VM, or you can update an existing VM.
- *
- * If you have both VMs and PaaS instances in your virtual network, you may want to separate the VMs that have static
- * DIPs from your PaaS instances by creating a separate subnet for the VMs and deploying them to that subnet. It’s not
- * only helpful for you to be able to see your static VMs in a separate subnet and know immediately which have an RPIP,
- * but for this release, it also prevents a new PaaS instance from acquiring the RPIP from a VM that is in the process
- * of being stopped/deprovisioned (not just restarted). This is a current limitation in this release for mixed VM/PaaS
- * subnets and RPIPs. This issue doesn’t happen if you deploy only VMs to the subnet, even if some of the VMs don’t have
- * an RPIP. If you’ve already deployed your VMs, you can easily move them to a new subnet to avoid this potential issue.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/dn630228.aspx" >Set a Reserved Private IP Address for a VM</a>
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722412.aspx" >Get Reserved IP Address</a>
- */
-@AutoValue
-public abstract class ReservedIPAddress {
-
- public static enum State {
-
- CREATED,
- CREATING,
- UPDATING,
- DELETING,
- UNAVAILABLE,
- UNRECOGNIZED;
-
- public static State fromString(final String text) {
- if (text != null) {
- for (State state : State.values()) {
- if (text.equalsIgnoreCase(state.name())) {
- return state;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- ReservedIPAddress() {
- } // For AutoValue only!
-
- /**
- * Specifies the name that is assigned to the reserved IP address.
- *
- * @return Reserver IP address name..
- */
- public abstract String name();
-
- /**
- * Specifies the IPv4 address that is reserved.
- *
- * @return IPv4 address.
- */
- public abstract String address();
-
- /**
- * Specifies the unique identifier that was generated for the reserved IP address.
- *
- * @return unique identifier.
- */
- public abstract String id();
-
- /**
- * Specifies a label that can be used to identify the reserved IP address. The label can be up to 100 characters long
- * and can be used for your tracking purposes.
- *
- * @return label.
- */
- @Nullable
- public abstract String label();
-
- /**
- * Specifies the state of the reserved IP address.
- *
- * @return state.
- */
- public abstract State state();
-
- /**
- * Indicates whether the reserved IP address is being used.
- *
- * @return <tt>true</tt> if in use; <tt>false</tt> otherwise.
- */
- @Nullable
- public abstract Boolean inUse();
-
- /**
- * Specifies the name of the cloud service that is associated with the reserved IP address.
- *
- * @return associated cloud service name.
- */
- @Nullable
- public abstract String serviceName();
-
- /**
- * Specifies the name of the deployment that is associated with the reserved IP address.
- *
- * @return associated deployment name.
- */
- @Nullable
- public abstract String deploymentName();
-
- /**
- * Specifies the location of the reserved IP address. This is the same location as the associated cloud service.
- *
- * @return location.
- */
- public abstract String location();
-
- public static ReservedIPAddress create(
- final String name,
- final String address,
- final String id,
- final String label,
- final State state,
- final Boolean inUse,
- final String serviceName,
- final String deploymentName,
- final String location
- ) {
-
- return new AutoValue_ReservedIPAddress(
- name, address, id, label, state, inUse, serviceName, deploymentName, location);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddressParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddressParams.java
deleted file mode 100644
index 9daaf12..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ReservedIPAddressParams.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * The Create Reserved IP Address operation reserves an IPv4 address for the specified subscription. For more
- * information, see Reserved IP Addresses. You can use a small number of reserved IP addresses for free, but unused
- * reserved IP addresses and a number of addresses above the limit will incur charges.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722413.aspx">Create Reserved IP Address</a>
- */
-@AutoValue
-public abstract class ReservedIPAddressParams {
-
- ReservedIPAddressParams() {
- } // For AutoValue only!
-
- /**
- * Specifies the name for the reserved IP address.
- *
- * @return name.
- */
- public abstract String name();
-
- /**
- * Specifies a label for the reserved IP address. The label can be up to 100 characters long and can be used for your
- * tracking purposes.
- *
- * @return label.
- */
- @Nullable
- public abstract String label();
-
- /**
- * Specifies the location of the reserved IP address. This should be the same location that is assigned to the cloud
- * service containing the deployment that will use the reserved IP address.
- *
- * @return location.
- */
- public abstract String location();
-
- public Builder toBuilder() {
- return builder().fromReservedIPAddressParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String name;
-
- private String label;
-
- private String location;
-
- public Builder name(final String data) {
- this.name = data;
- return this;
- }
-
- public Builder label(final String format) {
- this.label = format;
- return this;
- }
-
- public Builder location(final String password) {
- this.location = password;
- return this;
- }
-
- public ReservedIPAddressParams build() {
- return ReservedIPAddressParams.create(name, label, location);
- }
-
- public Builder fromReservedIPAddressParams(final ReservedIPAddressParams in) {
- return name(in.name())
- .label(in.label())
- .location(in.location());
- }
- }
-
- private static ReservedIPAddressParams create(final String name, final String label, final String location) {
- return new AutoValue_ReservedIPAddressParams(name, label, location);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Role.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Role.java
deleted file mode 100644
index 5c28c23..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Role.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx">Role</a>
- */
-@AutoValue
-public abstract class Role {
-
- @AutoValue
- public abstract static class ConfigurationSet {
-
- @AutoValue
- public abstract static class InputEndpoint {
-
- @AutoValue
- public abstract static class LoadBalancerProbe {
-
- public abstract String path();
-
- public abstract int port();
-
- public abstract String protocol();
-
- LoadBalancerProbe() { // For AutoValue only!
- }
-
- public static LoadBalancerProbe create(final String path, final int port, final String protocol) {
- return new AutoValue_Role_ConfigurationSet_InputEndpoint_LoadBalancerProbe(path, port, protocol);
- }
- }
-
- public abstract int localPort();
-
- public abstract String name();
-
- public abstract Integer port();
-
- public abstract String protocol();
-
- @Nullable
- public abstract String vip();
-
- public abstract Boolean enableDirectServerReturn();
-
- @Nullable
- public abstract String loadBalancerName();
-
- @Nullable
- public abstract LoadBalancerProbe loadBalancerProbe();
-
- @Nullable
- public abstract Integer idleTimeoutInMinutes();
-
- InputEndpoint() { // For AutoValue only!
- }
-
- public static InputEndpoint create(
- final String name, final String protocol, final int localPort, final int port,
- final String vip, final boolean enableDirectServerReturn, final String loadBalancerName,
- final LoadBalancerProbe loadBalancerProbe, final Integer idleTimeoutInMinutes) {
-
- return new AutoValue_Role_ConfigurationSet_InputEndpoint(localPort, name, port, protocol, vip,
- enableDirectServerReturn, loadBalancerName, loadBalancerProbe, idleTimeoutInMinutes);
- }
- }
-
- @AutoValue
- public abstract static class SubnetName {
-
- @Nullable
- public abstract String name();
-
- SubnetName() { // For AutoValue only!
- }
-
- public static SubnetName create(final String name) {
- return new AutoValue_Role_ConfigurationSet_SubnetName(name);
- }
- }
-
- @AutoValue
- public abstract static class PublicIP {
-
- public abstract String name();
-
- public abstract int idleTimeoutInMinutes();
-
- PublicIP() { // For AutoValue only!
- }
-
- public static PublicIP create(final String name, final int idleTimeoutInMinutes) {
- return new AutoValue_Role_ConfigurationSet_PublicIP(name, idleTimeoutInMinutes);
- }
- }
-
- public abstract String configurationSetType();
-
- public abstract List<InputEndpoint> inputEndpoints();
-
- @Nullable
- public abstract List<SubnetName> subnetNames();
-
- @Nullable
- public abstract String staticVirtualNetworkIPAddress();
-
- @Nullable
- public abstract List<PublicIP> publicIPs();
-
- @Nullable
- public abstract String networkSecurityGroup();
-
- ConfigurationSet() { // For AutoValue only!
- }
-
- public static ConfigurationSet create(
- final String configurationSetType, final List<InputEndpoint> inputEndpoints,
- final List<SubnetName> subnetNames, final String staticVirtualNetworkIPAddress,
- final List<PublicIP> publicIPs, final String networkSecurityGroup) {
-
- return new AutoValue_Role_ConfigurationSet(configurationSetType, inputEndpoints, subnetNames,
- staticVirtualNetworkIPAddress, publicIPs, networkSecurityGroup);
- }
- }
-
- @AutoValue
- public abstract static class ResourceExtensionReference {
-
- @AutoValue
- public abstract static class ResourceExtensionParameterValue {
-
- public abstract String key();
-
- public abstract String value();
-
- public abstract String type();
-
- ResourceExtensionParameterValue() { // For AutoValue only!
- }
-
- public static ResourceExtensionParameterValue create(
- final String key, final String value, final String type) {
-
- return new AutoValue_Role_ResourceExtensionReference_ResourceExtensionParameterValue(key, value, type);
- }
- }
-
- @Nullable public abstract String referenceName();
-
- @Nullable public abstract String publisher();
-
- @Nullable public abstract String name();
-
- @Nullable public abstract String version();
-
- @Nullable public abstract List<ResourceExtensionParameterValue> resourceExtensionParameterValues();
-
- @Nullable public abstract String state();
-
- ResourceExtensionReference() { // For AutoValue only!
- }
-
- public static ResourceExtensionReference create(
- final String referenceName, final String publisher, final String name, final String version,
- final List<ResourceExtensionParameterValue> resourceExtensionParameterValues, final String state) {
-
- return new AutoValue_Role_ResourceExtensionReference(referenceName, publisher, name, version,
- resourceExtensionParameterValues, state);
- }
- }
-
- @AutoValue
- public abstract static class OSVirtualHardDisk {
-
- public abstract String hostCaching();
-
- public abstract String diskName();
-
- @Nullable
- public abstract Integer lun();
-
- @Nullable
- public abstract Integer logicalDiskSizeInGB();
-
- public abstract URI mediaLink();
-
- @Nullable
- public abstract String sourceImageName();
-
- public abstract OSImage.Type os();
-
- OSVirtualHardDisk() { // For AutoValue only!
- }
-
- public static OSVirtualHardDisk create(final String hostCaching, final String diskName, final Integer lun,
- final Integer logicalDiskSizeInGB, final URI mediaLink, final String sourceImageName,
- final OSImage.Type os) {
-
- return new AutoValue_Role_OSVirtualHardDisk(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink,
- sourceImageName, os);
- }
- }
-
- /**
- * Represents the name of the Virtual Machine.
- */
- public abstract String roleName();
-
- /**
- * Specifies the type of role that is used. For Virtual Machines, this must be PersistentVMRole.
- */
- public abstract String roleType();
-
- /**
- * Specifies the name of the VM Image that was used to create the Virtual Machine.
- */
- @Nullable
- public abstract String vmImage();
-
- /**
- * Specifies the path to the VHD files that are associated with the VM Image.
- */
- @Nullable
- public abstract String mediaLocation();
-
- /**
- * Contains a collection of configuration sets that define system and application settings.
- */
- public abstract List<ConfigurationSet> configurationSets();
-
- /**
- * Optional. Contains a collection of resource extensions that are installed on the Virtual Machine. This element is
- * used if ProvisionGuestAgent is set to true.
- */
- @Nullable
- public abstract List<ResourceExtensionReference> resourceExtensionReferences();
-
- /**
- * Specifies the name of a collection of Virtual Machines. Virtual Machines specified in the same availability set
- * are allocated to different nodes to maximize availability.
- */
- @Nullable
- public abstract String availabilitySetName();
-
- /**
- * Contains the parameters that were used to add a data disk to a Virtual Machine.
- */
- @Nullable
- public abstract List<DataVirtualHardDisk> dataVirtualHardDisks();
-
- /**
- * Contains the parameters that were used to create the operating system disk for a Virtual Machine.
- */
- public abstract OSVirtualHardDisk osVirtualHardDisk();
-
- /**
- * Specifies the size of the Virtual Machine.
- */
- public abstract RoleSize.Type roleSize();
-
- /**
- * Optional. Indicates whether the VM Agent is installed on the Virtual Machine. To run a resource extension in a
- * Virtual Machine, this service must be installed.
- *
- * @return true or false
- */
- @Nullable
- public abstract Boolean provisionGuestAgent();
-
- /**
- * Specifies the read-only thumbprint of the certificate that is used with the HTTPS listener for WinRM.
- */
- @Nullable
- public abstract String defaultWinRmCertificateThumbprint();
-
- public static Role create(final String roleName, final String roleType, final String vmImage,
- final String mediaLocation, final List<ConfigurationSet> configurationSets,
- final List<ResourceExtensionReference> resourceExtensionReferences,
- final String availabilitySetName, final List<DataVirtualHardDisk> dataVirtualHardDisks,
- final OSVirtualHardDisk osVirtualHardDisk, final RoleSize.Type roleSize, final Boolean provisionGuestAgent,
- final String defaultWinRmCertificateThumbprint) {
-
- return new AutoValue_Role(roleName, roleType, vmImage, mediaLocation, copyOf(configurationSets),
- copyOf(resourceExtensionReferences), availabilitySetName, copyOf(dataVirtualHardDisks),
- osVirtualHardDisk, roleSize, provisionGuestAgent, defaultWinRmCertificateThumbprint);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
deleted file mode 100644
index 3b6290e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/RoleSize.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-/**
- * A Role Size that is available in a given subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn469422.aspx" >api</a>
- */
-@AutoValue
-public abstract class RoleSize {
-
- public enum Type {
-
- BASIC_A0("Basic_A0"),
- BASIC_A1("Basic_A1"),
- BASIC_A2("Basic_A2"),
- BASIC_A3("Basic_A3"),
- BASIC_A4("Basic_A4"),
- A0("A0"),
- A1("A1"),
- A2("A2"),
- A3("A3"),
- A4("A4"),
- A5("A5"),
- A6("A6"),
- A7("A7"),
- A8("A8"),
- A9("A9"),
- A10("A10"),
- A11("A11"),
- STANDARD_A0("Standard_A0"),
- STANDARD_A1("Standard_A1"),
- STANDARD_A2("Standard_A2"),
- STANDARD_A3("Standard_A3"),
- STANDARD_A4("Standard_A4"),
- STANDARD_A5("Standard_A5"),
- STANDARD_A6("Standard_A6"),
- STANDARD_A7("Standard_A7"),
- STANDARD_A8("Standard_A8"),
- STANDARD_A9("Standard_A9"),
- STANDARD_D1("Standard_D1"),
- STANDARD_D2("Standard_D2"),
- STANDARD_D3("Standard_D3"),
- STANDARD_D4("Standard_D4"),
- STANDARD_D11("Standard_D11"),
- STANDARD_D12("Standard_D12"),
- STANDARD_D13("Standard_D13"),
- STANDARD_D14("Standard_D14"),
- STANDARD_G1("Standard_G1"),
- STANDARD_G2("Standard_G2"),
- STANDARD_G3("Standard_G3"),
- STANDARD_G4("Standard_G4"),
- STANDARD_G5("Standard_G5"),
- EXTRASMALL("ExtraSmall"),
- SMALL("Small"),
- MEDIUM("Medium"),
- LARGE("Large"),
- EXTRALARGE("ExtraLarge"),
- UNRECOGNIZED("UNRECOGNIZED");
-
- private final String text;
-
- Type(final String text) {
- this.text = text;
- }
-
- public String getText() {
- return this.text;
- }
-
- public static Type fromString(final String text) {
- if (text != null) {
- for (Type type : Type.values()) {
- if (text.equalsIgnoreCase(type.text)) {
- return type;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- RoleSize() {
- } // For AutoValue only!
-
- /**
- * The name of the role size.
- */
- public abstract Type name();
-
- /**
- * The description of the role size.
- */
- @Nullable
- public abstract String label();
-
- /**
- * The number of cores that are available in the role size.
- */
- public abstract Integer cores();
-
- /**
- * The amount of memory that is available in the role size.
- */
- public abstract Integer memoryInMb();
-
- /**
- * Indicates whether the role size supports web roles or worker roles.
- */
- public abstract Boolean supportedByWebWorkerRoles();
-
- /**
- * Indicates whether the role size supports Virtual Machines.
- */
- public abstract Boolean supportedByVirtualMachines();
-
- /**
- * The maximum number of data disks that can be attached to the role.
- */
- public abstract Integer maxDataDiskCount();
-
- /**
- * The size of the resource disk for a web role or worker role.
- */
- public abstract Integer webWorkerResourceDiskSizeInMb();
-
- /**
- * The size of the resource disk for a Virtual Machine.
- */
- public abstract Integer virtualMachineResourceDiskSizeInMb();
-
- public static RoleSize create(final Type name, final String label, final Integer cores,
- final Integer memoryInMb, final Boolean supportedByWebWorkerRoles,
- final Boolean supportedByVirtualMachines, final Integer maxDataDiskCount,
- final Integer webWorkerResourceDiskSizeInMb, final Integer virtualMachineResourceDiskSizeInMb) {
-
- return new AutoValue_RoleSize(name, label, cores, memoryInMb,
- supportedByWebWorkerRoles, supportedByVirtualMachines, maxDataDiskCount, webWorkerResourceDiskSizeInMb,
- virtualMachineResourceDiskSizeInMb);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Rule.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Rule.java
deleted file mode 100644
index a58cb3b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/Rule.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Rule {
-
- public enum Action {
-
- Allow,
- Deny,
- UNRECOGNIZED;
-
- public static Action fromString(final String text) {
- if (text != null) {
- for (Action action : Action.values()) {
- if (text.equalsIgnoreCase(action.name())) {
- return action;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public enum Type {
-
- Inbound,
- Outbound,
- UNRECOGNIZED;
-
- public static Type fromString(final String text) {
- if (text != null) {
- for (Type type : Type.values()) {
- if (text.equalsIgnoreCase(type.name())) {
- return type;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public enum Protocol {
-
- TCP("TCP"),
- UDP("UDP"),
- ALL("*"),
- UNRECOGNIZED("");
-
- private final String value;
-
- Protocol(final String value) {
- this.value = value;
- }
-
- public static Protocol fromString(final String text) {
- if (text != null) {
- for (Protocol protocol : Protocol.values()) {
- if (text.equalsIgnoreCase(protocol.value)) {
- return protocol;
- }
- }
- }
- return UNRECOGNIZED;
- }
-
- public String getValue() {
- return value;
- }
- }
-
- public abstract String name();
-
- public abstract Type type();
-
- public abstract String priority();
-
- public abstract Action action();
-
- public abstract String sourceAddressPrefix();
-
- public abstract String sourcePortRange();
-
- public abstract String destinationAddressPrefix();
-
- public abstract String destinationPortRange();
-
- public abstract Protocol protocol();
-
- public abstract String state();
-
- @Nullable
- public abstract Boolean isDefault();
-
- Rule() {
- } // For AutoValue only!
-
- /**
- * Use this method to create a new rule to be added to a network security group.
- * @param name
- * @param type
- * @param priority
- * @param action
- * @param sourceAddressPrefix
- * @param sourcePortRange
- * @param destinationAddressPrefix
- * @param destinationPortRange
- * @param protocol
- * @return
- */
- public static Rule create(final String name, final Type type, final String priority, final Action action,
- final String sourceAddressPrefix, final String sourcePortRange, final String destinationAddressPrefix,
- final String destinationPortRange, final Protocol protocol) {
-
- return new AutoValue_Rule(name, type, priority, action, sourceAddressPrefix, sourcePortRange,
- destinationAddressPrefix, destinationPortRange, protocol, "Active", null);
- }
-
- public static Rule create(final String name, final Type type, final String priority, final Action action,
- final String sourceAddressPrefix, final String sourcePortRange, final String destinationAddressPrefix,
- final String destinationPortRange, final Protocol protocol, final String state, final Boolean isDefault) {
-
- return new AutoValue_Rule(name, type, priority, action, sourceAddressPrefix, sourcePortRange,
- destinationAddressPrefix, destinationPortRange, protocol, state, isDefault);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificate.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificate.java
deleted file mode 100644
index 1fe0081..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificate.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import java.net.URI;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * Cloud service certifcate.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx" >ServiceCertificate</a>
- */
-@AutoValue
-public abstract class ServiceCertificate {
-
- ServiceCertificate() {
- } // For AutoValue only!
-
- /**
- * The Service Management API request URI used to perform Get Service Certificate requests against the certificate
- * store.
- *
- * @return service certificate URL.
- */
- @Nullable
- public abstract URI url();
-
- /**
- * The X509 certificate thumb print property of the service certificate.
- *
- * @return thumbprint of the service certificate.
- */
- @Nullable
- public abstract String thumbprint();
-
- /**
- * The algorithm that was used to hash the service certificate. Currently SHA-1 is the only supported algorithm.
- *
- * @return thumbprint algorithm of the service certificate.
- */
- @Nullable
- public abstract String thumbprintAlgorithm();
-
- /**
- * The public part of the service certificate as a base-64 encoded .cer file.
- *
- * @return base-64 encoded certificate.
- */
- public abstract String data();
-
- public static ServiceCertificate create(
- final URI url,
- final String thumbprint,
- final String thumbprintAlgorithm,
- final String data) {
-
- return new AutoValue_ServiceCertificate(url, thumbprint, thumbprintAlgorithm, data);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificateParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificateParams.java
deleted file mode 100644
index b739a7e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/ServiceCertificateParams.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * To create a new service certifcate.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460817.aspx">docs</a>
- */
-@AutoValue
-public abstract class ServiceCertificateParams {
-
- ServiceCertificateParams() {
- } // For AutoValue only!
-
- /**
- * The public part of the service certificate as a base-64 encoded .cer file.
- *
- * @return base-64 encoded certificate.
- */
- public abstract String data();
-
- /**
- * Required. Specifies the format of the service certificate. Possible values are: pfx, cer.
- *
- * @return certificate format.
- */
- public abstract String format();
-
- /**
- * Specifies the password for a .pfx certificate. A .cer certificate does not require a password.
- *
- * @return certificate password.
- */
- @Nullable
- public abstract String password();
-
- public Builder toBuilder() {
- return builder().fromServiceCertificateParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String data;
-
- private String format;
-
- private String password;
-
- public Builder data(final String data) {
- this.data = data;
- return this;
- }
-
- public Builder format(final String format) {
- this.format = format;
- return this;
- }
-
- public Builder password(final String password) {
- this.password = password;
- return this;
- }
-
- public ServiceCertificateParams build() {
- return ServiceCertificateParams.create(data, format, password);
- }
-
- public Builder fromServiceCertificateParams(final ServiceCertificateParams in) {
- return data(in.data())
- .format(in.format())
- .password(in.password());
- }
- }
-
- private static ServiceCertificateParams create(final String data, final String format, final String password) {
- return new AutoValue_ServiceCertificateParams(data, format, password);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageService.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageService.java
deleted file mode 100644
index 701ec2c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageService.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.net.URL;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class StorageService {
-
- public enum AccountType {
-
- Standard_LRS,
- Standard_ZRS,
- Standard_GRS,
- Standard_RAGRS,
- Premium_LRS,
- UNRECOGNIZED;
-
- public static AccountType fromString(final String text) {
- if (text != null) {
- for (AccountType type : AccountType.values()) {
- if (text.equalsIgnoreCase(type.name())) {
- return type;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- public enum RegionStatus {
-
- Available,
- Unavailable,
- UNRECOGNIZED;
-
- public static RegionStatus fromString(final String text) {
- if (text != null) {
- for (RegionStatus status : RegionStatus.values()) {
- if (text.equalsIgnoreCase(status.name())) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
-
- }
-
- public enum Status {
-
- Creating,
- Created,
- Deleting,
- Deleted,
- Changing,
- ResolvingDns,
- UNRECOGNIZED;
-
- public static Status fromString(final String text) {
- if (text != null) {
- for (Status status : Status.values()) {
- if (text.equalsIgnoreCase(status.name())) {
- return status;
- }
- }
- }
- return UNRECOGNIZED;
- }
- }
-
- @AutoValue
- public abstract static class StorageServiceProperties {
-
- StorageServiceProperties() {
- } // For AutoValue only!
-
- /**
- * A description for the storage account. The description can be up to 1024 characters in length.
- */
- @Nullable
- public abstract String description();
-
- /**
- * Required if Location is not specified. The name of an existing affinity group associated with this
- * subscription.
- */
- @Nullable
- public abstract String affinityGroup();
-
- /**
- * Required if AffinityGroup is not specified. The location where the storage account will be created.
- */
- @Nullable
- public abstract String location();
-
- /**
- * A name for the hosted service that is base-64 encoded. The name can be up to 100 characters in length. The name
- * can be used identify the storage account for your tracking purposes
- */
- public abstract String label();
-
- /**
- * The status of the storage account.
- */
- public abstract Status status();
-
- /**
- * Specifies the endpoints of the storage account.
- */
- @Nullable
- public abstract List<URL> endpoints();
-
- /**
- * Indicates the primary geographical region in which the storage account exists at this time.
- */
- @Nullable
- public abstract String geoPrimaryRegion();
-
- /**
- * Indicates whether the primary storage region is available.
- */
- @Nullable
- public abstract RegionStatus statusOfPrimary();
-
- /**
- * A timestamp that indicates the most recent instance of a failover to the secondary region. In case of multiple
- * failovers only the latest failover date and time maintained
- */
- @Nullable
- public abstract Date lastGeoFailoverTime();
-
- /**
- * Indicates the geographical region in which the storage account is being replicated.
- */
- @Nullable
- public abstract String geoSecondaryRegion();
-
- /**
- * Indicates whether the secondary storage region is available.
- */
- @Nullable
- public abstract RegionStatus statusOfSecondary();
-
- /**
- * Specifies the time that the storage account was created.
- */
- public abstract Date creationTime();
-
- /**
- * Specifies the custom domains that are associated with the storage account.
- */
- @Nullable
- public abstract List<String> customDomains();
-
- /**
- * Specifies the secondary endpoints of the storage account.
- */
- @Nullable
- public abstract List<URL> secondaryEndpoints();
-
- /**
- * Specifies whether the account supports locally-redundant storage, geo-redundant storage, zone-redundant
- * storage, or read access geo-redundant storage.
- */
- public abstract AccountType accountType();
-
- public static StorageServiceProperties create(final String description, final String affinityGroup,
- final String location, final String label, final Status status, final List<URL> endpoints,
- final String geoPrimaryRegion, final RegionStatus statusOfPrimary,
- final Date lastGeoFailoverTime, final String geoSecondaryRegion, final RegionStatus statusOfSecondary,
- final Date creationTime, final List<String> customDomains, final List<URL> secondaryEndpoints,
- final AccountType accountType) {
-
- return new AutoValue_StorageService_StorageServiceProperties(description, affinityGroup, location,
- label, status, endpoints == null ? null : ImmutableList.copyOf(endpoints),
- geoPrimaryRegion, statusOfPrimary, lastGeoFailoverTime, geoSecondaryRegion, statusOfSecondary,
- creationTime, customDomains,
- secondaryEndpoints == null ? null : ImmutableList.copyOf(secondaryEndpoints), accountType);
- }
- }
-
- StorageService() {
- } // For AutoValue only!
-
- /**
- * Specifies the URI of the storage account.
- */
- public abstract URL url();
-
- /**
- * Specifies the name of the storage account. This name is the DNS prefix name and can be used to access blobs,
- * queues, and tables in the storage account.
- */
- public abstract String serviceName();
-
- /**
- * Specifies the properties of the storage account.
- */
- public abstract StorageServiceProperties storageServiceProperties();
-
- /**
- * Specifies the name and value of an extended property that was added to the storage account.
- */
- @Nullable
- public abstract Map<String, String> extendedProperties();
-
- /**
- * Indicates whether the storage account is able to perform virtual machine related operations. If so, this element
- * returns a string containing PersistentVMRole. Otherwise, this element will not be present.
- */
- @Nullable
- public abstract String capability();
-
- public static StorageService create(final URL url, final String serviceName,
- final StorageServiceProperties storageServiceProperties, final Map<String, String> extendedProperties,
- final String capability) {
-
- return new AutoValue_StorageService(url, serviceName, storageServiceProperties,
- extendedProperties == null ? null : ImmutableMap.copyOf(extendedProperties), capability);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageServiceKeys.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageServiceKeys.java
deleted file mode 100644
index 43f2ce0..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/StorageServiceKeys.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import java.net.URL;
-
-@AutoValue
-public abstract class StorageServiceKeys {
-
- public enum KeyType {
-
- Primary,
- Secondary;
-
- }
-
- StorageServiceKeys() {
- } // For AutoValue only!
-
- /**
- * The Service Management API request URI used to perform Get Storage Account Properties requests against the storage
- * account.
- */
- public abstract URL url();
-
- /**
- * The primary access key for the storage account.
- */
- public abstract String primary();
-
- /**
- * The secondary access key for the storage account.
- */
- public abstract String secondary();
-
- public static StorageServiceKeys create(final URL url, final String primary, final String secondary) {
- return new AutoValue_StorageServiceKeys(url, primary, secondary);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateAffinityGroupParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateAffinityGroupParams.java
deleted file mode 100644
index 7beddb5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateAffinityGroupParams.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * To update an affinity group.
- */
-@AutoValue
-public abstract class UpdateAffinityGroupParams {
-
- UpdateAffinityGroupParams() {
- } // For AutoValue only!
-
- /**
- * Specifies the base-64-encoded identifier of the affinity group.
- *
- * @return the identifier of the affinity group
- */
- @Nullable
- public abstract String label();
-
- /**
- * Specified the description of this affinity group.
- *
- * @return the description of this affinity group
- */
- @Nullable
- public abstract String description();
-
- public Builder toBuilder() {
- return builder().fromUpdateAffinityGroupParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String label;
-
- private String description;
-
- public Builder label(final String label) {
- this.label = label;
- return this;
- }
-
- public Builder description(final String description) {
- this.description = description;
- return this;
- }
-
- public UpdateAffinityGroupParams build() {
- return UpdateAffinityGroupParams.create(label, description);
- }
-
- public Builder fromUpdateAffinityGroupParams(final UpdateAffinityGroupParams in) {
- return label(in.label()).
- description(in.description());
- }
- }
-
- private static UpdateAffinityGroupParams create(final String label, final String description) {
- return new AutoValue_UpdateAffinityGroupParams(label, description);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateProfileParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateProfileParams.java
deleted file mode 100644
index 8fc9242..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateProfileParams.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-/**
- * The Create Profile operation creates a new profile for a status version, owned by the specified subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758254.aspx">docs</a>
- */
-@AutoValue
-public abstract class UpdateProfileParams {
-
- UpdateProfileParams() {
- } // For AutoValue only!
-
- /**
- * Specifies whether the profile should be enabled or disabled. If there is a currently enabled profile, it is
- * disabled. Possible values are: Enabled, Disabled;
- *
- * @return profile status.
- */
- public abstract ProfileDefinition.Status status();
-
- /**
- * This element is not used.
- *
- * @return profile definition version.
- */
- @Nullable
- public abstract String version();
-
- public Builder toBuilder() {
- return builder().fromImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private ProfileDefinition.Status status;
- private String version;
-
- public Builder status(final ProfileDefinition.Status status) {
- this.status = status;
- return this;
- }
-
- public Builder version(final String version) {
- this.version = version;
- return this;
- }
-
- public UpdateProfileParams build() {
- return UpdateProfileParams.create(status, version);
- }
-
- public Builder fromImageParams(final UpdateProfileParams in) {
- return status(in.status()).version(in.version());
- }
- }
-
- private static UpdateProfileParams create(
- final ProfileDefinition.Status status,
- final String version) {
- return new AutoValue_UpdateProfileParams(status, version);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateStorageServiceParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateStorageServiceParams.java
deleted file mode 100644
index e62558d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/UpdateStorageServiceParams.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.util.List;
-import java.util.Map;
-import org.jclouds.javax.annotation.Nullable;
-
-@AutoValue
-public abstract class UpdateStorageServiceParams {
-
- public enum AccountType {
-
- Standard_LRS,
- Standard_GRS,
- Standard_RAGRS;
-
- }
-
- /**
- * Specifies information about a custom domain that is associated with the storage account.
- */
- @AutoValue
- public abstract static class CustomDomain {
-
- CustomDomain() {
- } // For AutoValue only!
-
- /**
- * Specifies the name of the custom domain.
- */
- public abstract String name();
-
- /**
- * Indicates whether indirect CName validation is enabled.
- */
- public abstract Boolean useSubDomainName();
-
- public static CustomDomain create(final String name, final boolean useSubDomainName) {
- return new AutoValue_UpdateStorageServiceParams_CustomDomain(name, useSubDomainName);
- }
- }
-
- UpdateStorageServiceParams() {
- } // For AutoValue only!
-
- /**
- * Specifies a base-64 encoded name for the storage account. The label may be up to 100 characters in length. The
- * label can be used identify the storage account for your tracking purposes. You must specify a value for either
- * Label or Description, or for both.
- */
- @Nullable
- public abstract String label();
-
- /**
- * A description for the storage account. The description may be up to 1024 characters in length. You must specify a
- * value for either Label or Description, or for both.
- */
- @Nullable
- public abstract String description();
-
- /**
- * Enables or disables geo-replication on the specified the storage. If set to true, the data in the storage account
- * is replicated across more than one geographic location so as to enable resilience in the face of catastrophic
- * service loss. If set to false, geo-replication is disabled. If the element is not included in the request body,
- * the current value is left unchanged.
- */
- @Nullable
- public abstract Boolean geoReplicationEnabled();
-
- /**
- * Represents the name of an extended cloud service property. Each extended property must have both a defined name
- * and value. You can have a maximum of 50 extended property name/value pairs.
- *
- * <p/>
- * The maximum length of the Name element is 64 characters, only alphanumeric characters and underscores are valid in
- * the Name, and the name must start with a letter. Each extended property value has a maximum length of 255
- * characters.
- */
- @Nullable
- public abstract Map<String, String> extendedProperties();
-
- /**
- * Specifies the custom domains that are associated with the storage account.
- */
- @Nullable
- public abstract List<CustomDomain> customDomains();
-
- /**
- * Specifies whether the account supports locally-redundant storage, geo-redundant storage, or read access
- * geo-redundant storage. Zone-redundant storage is not an option when you update a storage account.
- */
- @Nullable
- public abstract AccountType accountType();
-
- public Builder toBuilder() {
- return builder().fromUpdateStorageServiceParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
-
- private String label;
-
- private String description;
-
- private Boolean geoReplicationEnabled;
-
- private Map<String, String> extendedProperties;
-
- private List<CustomDomain> customDomains;
-
- private AccountType accountType;
-
- public Builder label(final String label) {
- this.label = label;
- return this;
- }
-
- public Builder description(final String description) {
- this.description = description;
- return this;
- }
-
- public Builder geoReplicationEnabled(final Boolean geoReplicationEnabled) {
- this.geoReplicationEnabled = geoReplicationEnabled;
- return this;
- }
-
- public Builder extendedProperties(final Map<String, String> extendedProperties) {
- this.extendedProperties = extendedProperties;
- return this;
- }
-
- public Builder customDomains(final List<CustomDomain> customDomains) {
- this.customDomains = customDomains;
- return this;
- }
-
- public Builder accountType(final AccountType accountType) {
- this.accountType = accountType;
- return this;
- }
-
- public UpdateStorageServiceParams build() {
- return UpdateStorageServiceParams.create(label, description,
- geoReplicationEnabled, extendedProperties, customDomains, accountType);
- }
-
- public Builder fromUpdateStorageServiceParams(final UpdateStorageServiceParams storageServiceParams) {
- return label(storageServiceParams.label()).
- description(storageServiceParams.description()).
- geoReplicationEnabled(storageServiceParams.geoReplicationEnabled()).
- extendedProperties(storageServiceParams.extendedProperties()).
- customDomains(storageServiceParams.customDomains()).
- accountType(storageServiceParams.accountType());
- }
- }
-
- private static UpdateStorageServiceParams create(final String label, final String description,
- final Boolean geoReplicationEnabled,
- final Map<String, String> extendedProperties, final List<CustomDomain> customDomains,
- final AccountType accountType) {
-
- return new AutoValue_UpdateStorageServiceParams(label, description, geoReplicationEnabled,
- extendedProperties == null ? null : ImmutableMap.copyOf(extendedProperties),
- customDomains == null ? null : ImmutableList.copyOf(customDomains),
- accountType);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImage.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImage.java
deleted file mode 100644
index f7f5edf..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImage.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-
-import static com.google.common.collect.ImmutableList.copyOf;
-/**
- * OS image from the image repository
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499770.aspx" >api</a>
- */
-@AutoValue
-public abstract class VMImage {
-
- @AutoValue
- public abstract static class OSDiskConfiguration {
-
- public enum Caching {
- READ_ONLY,
- READ_WRITE,
- NONE
- }
-
- public enum OSState {
- GENERALIZED,
- SPECIALIZED
- }
-
- /**
- * Specifies the name of the operating system disk.
- */
- public abstract String name();
-
- /**
- * Specifies the caching behavior of the operating system disk.
- * This setting impacts the consistency and performance of the disk.
- * The default value is ReadWrite
- */
- @Nullable public abstract Caching hostCaching();
-
- /**
- * Specifies the state of the operating system in the image.
- * A Virtual Machine that is fully configured and running contains a Specialized operating system.
- * A Virtual Machine on which the Sysprep command has been run with the generalize option contains
- * a Generalized operating system.
- */
- @Nullable public abstract OSState osState();
-
- /**
- * Specifies the operating system type of the image.
- */
- public abstract OSImage.Type os();
-
- /**
- * Specifies the location of the blob in Azure storage. The blob location belongs to a storage account in the
- * subscription specified by the <subscription-id> value in the operation call.
- */
- @Nullable public abstract URI mediaLink();
-
- /**
- * Specifies the size, in GB, of the operating system disk
- */
- @Nullable public abstract Integer logicalSizeInGB();
-
- /**
- * This property identifies the type of the storage account for the backing VHD.
- */
- @Nullable public abstract String ioType();
-
- public static OSDiskConfiguration create(String name, Caching hostCaching, OSState osState, OSImage.Type os,
- URI mediaLink, Integer logicalDiskSizeInGB, String ioType) {
- return new AutoValue_VMImage_OSDiskConfiguration(name, hostCaching, osState, os, mediaLink,
- logicalDiskSizeInGB, ioType);
- }
-
- }
-
- public abstract String name();
-
- /**
- * The name can be up to 100 characters in length. The name can be used identify the storage account for your
- * tracking purposes.
- */
- public abstract String label();
-
- /**
- * The repository classification of image. All user images have the category "User", but
- * categories for other images could be, for example "Canonical"
- */
- @Nullable public abstract String category();
-
- @Nullable public abstract String description();
-
- @Nullable public abstract OSDiskConfiguration osDiskConfiguration();
-
- public abstract List<DataVirtualHardDisk> dataDiskConfiguration();
-
- @Nullable public abstract String serviceName();
-
- @Nullable public abstract String deploymentName();
-
- @Nullable public abstract String roleName();
-
- /**
- * The geo-locations of the image, if the image is not associated with an affinity group.
- */
- @Nullable public abstract String location();
-
- /**
- * The affinity group with which this image is associated, if any.
- */
- @Nullable public abstract String affinityGroup();
-
- @Nullable public abstract Date createdTime();
-
- @Nullable public abstract Date modifiedTime();
-
- @Nullable public abstract String language();
-
- @Nullable public abstract String imageFamily();
-
- @Nullable public abstract RoleSize.Type recommendedVMSize();
-
- @Nullable public abstract Boolean isPremium();
-
- @Nullable public abstract String eula();
-
- @Nullable public abstract URI iconUri();
-
- @Nullable public abstract URI smallIconUri();
-
- @Nullable public abstract URI privacyUri();
-
- @Nullable public abstract Date publishedDate();
-
- public static VMImage create(String name, String label, String category, String description,
- OSDiskConfiguration osDiskConfiguration, List<DataVirtualHardDisk> dataDiskConfiguration, String serviceName,
- String deploymentName, String roleName, String location, String affinityGroup, Date createdTime,
- Date modifiedTime, String language, String imageFamily, RoleSize.Type recommendedVMSize, Boolean isPremium,
- String eula, URI iconUri, URI smallIconUri,
- URI privacyUri, Date publishedDate) {
- return new AutoValue_VMImage(name, label, category, description, osDiskConfiguration, copyOf(dataDiskConfiguration),
- serviceName, deploymentName, roleName, location, affinityGroup, createdTime, modifiedTime, language,
- imageFamily, recommendedVMSize, isPremium, eula, iconUri, smallIconUri, privacyUri, publishedDate);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImageParams.java b/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImageParams.java
deleted file mode 100644
index 7fda79d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/domain/VMImageParams.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.domain;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.Lists;
-import org.jclouds.javax.annotation.Nullable;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * OS image from the image repository
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499770.aspx" >api</a>
- */
-@AutoValue
-public abstract class VMImageParams {
-
- @AutoValue
- public abstract static class OSDiskConfigurationParams {
-
- public enum Caching {
- READ_ONLY,
- READ_WRITE,
- NONE
- }
-
- public enum OSState {
- GENERALIZED,
- SPECIALIZED
- }
-
- /**
- * Specifies the name of the operating system disk.
- */
- @Nullable public abstract String name();
-
- /**
- * Specifies the caching behavior of the operating system disk.
- * This setting impacts the consistency and performance of the disk.
- * The default value is ReadWrite
- */
- @Nullable public abstract Caching hostCaching();
-
- /**
- * Specifies the state of the operating system in the image.
- * A Virtual Machine that is fully configured and running contains a Specialized operating system.
- * A Virtual Machine on which the Sysprep command has been run with the generalize option contains
- * a Generalized operating system.
- */
-
- @Nullable public abstract OSState osState();
-
- /**
- * Specifies the operating system type of the image.
- */
- public abstract OSImage.Type os();
-
- /**
- * Specifies the location of the blob in Azure storage. The blob location belongs to a storage account in the
- * subscription specified by the <subscription-id> value in the operation call.
- */
- @Nullable public abstract URI mediaLink();
-
- /**
- * Specifies the size, in GB, of the operating system disk
- */
- @Nullable public abstract Integer logicalSizeInGB();
-
- /**
- * This property identifies the type of the storage account for the backing VHD.
- */
- @Nullable public abstract String ioType();
-
- public static OSDiskConfigurationParams OSDiskConfiguration(String name, Caching hostCaching, OSState osState,
- OSImage.Type os, URI mediaLink, Integer logicalDiskSizeInGB, String ioType) {
- return new AutoValue_VMImageParams_OSDiskConfigurationParams(name, hostCaching, osState, os, mediaLink,
- logicalDiskSizeInGB, ioType);
- }
-
- }
-
- @Nullable public abstract String name();
-
- /**
- * The name can be up to 100 characters in length. The name can be used identify the storage account for your
- * tracking purposes.
- */
- @Nullable public abstract String label();
-
- @Nullable public abstract String description();
-
- @Nullable public abstract OSDiskConfigurationParams osDiskConfiguration();
-
- public abstract List<DataVirtualHardDisk> dataDiskConfiguration();
-
- @Nullable public abstract String language();
-
- @Nullable public abstract String imageFamily();
-
- @Nullable public abstract RoleSize.Type recommendedVMSize();
-
- @Nullable public abstract String eula();
-
- @Nullable public abstract URI iconUri();
-
- @Nullable public abstract URI smallIconUri();
-
- @Nullable public abstract URI privacyUri();
-
- @Nullable public abstract Boolean showGui();
-
- public Builder toBuilder() {
- return builder().fromVMImageParams(this);
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static final class Builder {
- private String name;
- private String label;
- private String description;
- private OSDiskConfigurationParams osDiskConfiguration;
- private List<DataVirtualHardDisk> dataDiskConfiguration = Lists.newArrayList();
- private String language;
- private String imageFamily;
- private RoleSize.Type recommendedVMSize;
- private String eula;
- private URI iconUri;
- private URI smallIconUri;
- private URI privacyUri;
- private Boolean showGui;
-
- public Builder name(String name) {
- this.name = name;
- return this;
- }
-
- public Builder label(String label) {
- this.label = label;
- return this;
- }
-
- public Builder description(String description) {
- this.description = description;
- return this;
- }
-
- public Builder osDiskConfiguration(OSDiskConfigurationParams osDiskConfig) {
- this.osDiskConfiguration = osDiskConfig;
- return this;
- }
-
- public Builder language(String language) {
- this.language = language;
- return this;
- }
-
- public Builder imageFamily(String imageFamily) {
- this.imageFamily = imageFamily;
- return this;
- }
-
- public Builder recommendedVMSize(RoleSize.Type recommendedRoleSize) {
- this.recommendedVMSize = recommendedRoleSize;
- return this;
- }
-
- public Builder showGui(Boolean showGui) {
- this.showGui = showGui;
- return this;
- }
-
- public Builder eula(String eula) {
- this.eula = eula;
- return this;
- }
-
- public Builder iconUri(URI iconUri) {
- this.iconUri = iconUri;
- return this;
- }
-
- public Builder smallIconUri(URI smallIconUri) {
- this.smallIconUri = smallIconUri;
- return this;
- }
-
- public Builder privacyUri(URI privacyUri) {
- this.privacyUri = smallIconUri;
- return this;
- }
-
- public Builder dataDiskConfiguration(DataVirtualHardDisk dataDiskConfiguration) {
- this.dataDiskConfiguration.add(dataDiskConfiguration);
- return this;
- }
-
- public Builder dataDiskConfigurations(Collection<DataVirtualHardDisk> dataDiskConfiguration) {
- this.dataDiskConfiguration.addAll(dataDiskConfiguration);
- return this;
- }
-
- public VMImageParams build() {
- return VMImageParams
- .create(name, label, description, osDiskConfiguration, dataDiskConfiguration, language,
- imageFamily, recommendedVMSize, eula, iconUri, smallIconUri, privacyUri,
- showGui);
- }
-
- public Builder fromVMImageParams(VMImageParams in) {
- return name(in.name()).label(in.label()).description(in.description())
- .osDiskConfiguration(in.osDiskConfiguration()).dataDiskConfigurations(in.dataDiskConfiguration())
- .language(in.language()).imageFamily(in.imageFamily()).recommendedVMSize(in.recommendedVMSize())
- .eula(in.eula()).iconUri(in.iconUri()).smallIconUri(in.smallIconUri()).privacyUri(in.privacyUri());
- }
-
- }
-
- public static VMImageParams create(String name, String label, String description,
- OSDiskConfigurationParams osDiskConfiguration, List<DataVirtualHardDisk> dataDiskConfiguration,
- String language, String imageFamily, RoleSize.Type recommendedVMSize, String eula, URI iconUri,
- URI smallIconUri, URI privacyUri, Boolean showGui) {
- return new AutoValue_VMImageParams(name, label, description, osDiskConfiguration, dataDiskConfiguration,
- language, imageFamily, recommendedVMSize, eula, iconUri, smallIconUri, privacyUri,
- showGui);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/AffinityGroupApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/AffinityGroupApi.java
deleted file mode 100644
index cb11df0..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/AffinityGroupApi.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.CreateAffinityGroupParamsToXML;
-import org.jclouds.azurecompute.binders.UpdateAffinityGroupParamsToXML;
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.AffinityGroupHandler;
-import org.jclouds.azurecompute.xml.ListAffinityGroupsHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing affinity groups in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/azure/ee460798">docs</a>
- */
-@Path("/affinitygroups")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface AffinityGroupApi {
-
- /**
- * The List Affinity Groups operation lists the affinity groups that are associated with the specified subscription.
- *
- * @return the affinity groups that are associated with the specified subscription
- */
- @Named("ListAffinityGroups")
- @GET
- @XMLResponseParser(ListAffinityGroupsHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<AffinityGroup> list();
-
- /**
- * The Get Affinity Group Properties operation returns the system properties that are associated with the specified
- * affinity group.
- *
- * @param name name of the affinity group
- * @return the system properties that are associated with the specified affinity group
- */
- @Named("GetAffinityGroup")
- @GET
- @Path("/{name}")
- @XMLResponseParser(AffinityGroupHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- AffinityGroup get(@PathParam("name") String name);
-
- /**
- * The Create Affinity Group operation creates a new affinity group for the specified subscription.
- *
- * @param params the affinity group to be created
- * @return a value that uniquely identifies a request made against the management service
- */
- @Named("AddAffinityGroup")
- @POST
- @ResponseParser(ParseRequestIdHeader.class)
- String add(@BinderParam(CreateAffinityGroupParamsToXML.class) CreateAffinityGroupParams params);
-
- /**
- * The Update Affinity Group operation updates the label or the description for an affinity group in the specified
- * subscription.
- *
- * @param params the affinity group to be created
- * @return a value that uniquely identifies a request made against the management service
- */
- @Named("UpdateAffinityGroup")
- @PUT
- @Path("/{name}")
- @ResponseParser(ParseRequestIdHeader.class)
- String update(@PathParam("name") String name,
- @BinderParam(UpdateAffinityGroupParamsToXML.class) UpdateAffinityGroupParams params);
-
- /**
- * The Delete Affinity Group operation deletes an affinity group in the specified subscription.
- *
- * @param name name of the affinity group
- * @return a value that uniquely identifies a request made against the management service
- */
- @Named("DeleteAffinityGroup")
- @DELETE
- @Path("/{name}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("name") String name);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/CloudServiceApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/CloudServiceApi.java
deleted file mode 100644
index 5a3b1ca..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/CloudServiceApi.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.functions.Base64EncodeLabel;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.CloudServiceHandler;
-import org.jclouds.azurecompute.xml.CloudServicePropertiesHandler;
-import org.jclouds.azurecompute.xml.ListCloudServicesHandler;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ParamParser;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the cloud services beneath your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
- */
-@Path("/services/hostedservices")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-public interface CloudServiceApi {
-
- /**
- * The List Cloud Services operation lists the cloud services available under the current subscription.
- *
- * @return the response object
- */
- @Named("ListCloudServices")
- @GET
- @QueryParams(keys = "embed-detail", values = "true")
- @XMLResponseParser(ListCloudServicesHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<CloudService> list();
-
- /**
- * The Create Cloud Service operation creates a new cloud service in Windows Azure.
- *
- * @param name A name for the cloud service that is unique within Windows Azure. This name is the DNS prefix name and
- * can be used to access the cloud service.
- *
- * For example: http://name.cloudapp.net//
- * @param label The name can be used identify the storage account for your tracking purposes. The name can be up to
- * 100 characters in length.
- * @param location The location where the cloud service will be created.
- * @return the requestId to track this async request progress
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
- */
- @Named("CreateCloudService")
- @POST
- @Produces(APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload("<CreateHostedService xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<ServiceName>{name}</ServiceName><Label>{label}</Label>"
- + "<Location>{location}</Location></CreateHostedService>")
- String createWithLabelInLocation(@PayloadParam("name") String name,
- @PayloadParam("label") @ParamParser(Base64EncodeLabel.class) String label,
- @PayloadParam("location") String location);
-
- /**
- * The Get Cloud Service Properties operation retrieves system properties for the specified cloud service. These
- * properties include the service name and service type; the name of the affinity group to which the service belongs,
- * or its location if it is not part of an affinity group.
- *
- * @param name the unique DNS Prefix value in the Windows Azure Management Portal
- */
- @Named("GetCloudServiceProperties")
- @GET
- @Path("/{name}")
- @QueryParams(keys = "embed-detail", values = "true")
- @XMLResponseParser(CloudServiceHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- @Nullable
- CloudService get(@PathParam("name") String name);
-
- /**
- * The Delete Cloud Service operation deletes the specified cloud service from Windows Azure.
- *
- * @param name the unique DNS Prefix value in the Windows Azure Management Portal
- *
- * @return request id or null, if not found
- */
- @Named("DeleteCloudService")
- @DELETE
- @Path("/{name}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("name") String name);
-
- /*
- * The Get Cloud Service Properties operation retrieves properties for the specified cloud service.
- *
- * These properties include the following values:
- * The name and the description of the cloud service.
- *
- * The name of the affinity group to which the cloud service belongs, or its location if it is not part of an affinity group.
- *
- * The label that can be used to track the cloud service.
- *
- * The date and time that the cloud service was created or modified.
- *
- * If details are requested, information about deployments in the cloud service is returned.
- *
- * */
-
- @Named("CloudServiceProperties")
- @GET
- @Path("/{name}")
- @QueryParams(keys = "embed-detail", values = "true")
- @XMLResponseParser(CloudServicePropertiesHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- @Nullable CloudServiceProperties getProperties(@PathParam("name") String name);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DeploymentApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/DeploymentApi.java
deleted file mode 100644
index b7afcf8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DeploymentApi.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.DeploymentParamsToXML;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.DeploymentHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-@Path("/services/hostedservices/{serviceName}/deployments")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface DeploymentApi {
-
- /**
- * The Get Deployment operation returns the specified deployment from Windows Azure.
- *
- * @param name the unique DNS Prefix value in the Windows Azure Management Portal
- */
- @Named("GetDeployment")
- @GET
- @Path("/{name}")
- @XMLResponseParser(DeploymentHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- Deployment get(@PathParam("name") String name);
-
- @Named("CreateVirtualMachineDeployment")
- @POST
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- String create(@BinderParam(DeploymentParamsToXML.class) DeploymentParams params);
-
- /**
- * The Delete Deployment operation deletes the specified deployment from Windows Azure.
- *
- * @param name the unique DNS Prefix value in the Windows Azure Management Portal
- */
- @Named("DeleteDeployment")
- @DELETE
- @Path("/{name}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("name") String name);
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DiskApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/DiskApi.java
deleted file mode 100644
index 22938aa..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/DiskApi.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListDisksHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the disks in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157188">docs</a>
- */
-@Path("/services/disks")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface DiskApi {
-
- /**
- * The List Disks operation retrieves a list of the disks in your image repository.
- */
- @Named("ListDisks")
- @GET
- @XMLResponseParser(ListDisksHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<Disk> list();
-
- /**
- * The Delete Disk operation deletes the specified data or operating system disk from your image repository.
- *
- * @return request id or null, if not found
- */
- @Named("DeleteDisk")
- @DELETE
- @Path("/{diskName}")
- @QueryParams(keys = "comp", values = "media")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("diskName") String diskName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/LocationApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/LocationApi.java
deleted file mode 100644
index 60a3b1a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/LocationApi.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.xml.ListLocationsHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for listing the available data center locations for a cloud service in
- * your subscription.
- * <p/>
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441299">docs</a>
- */
-@Path("/locations")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface LocationApi {
-
- /**
- * The List Locations operation lists all of the data center locations that are valid for your subscription.
- */
- @Named("ListLocations")
- @GET
- @XMLResponseParser(ListLocationsHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<Location> list();
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApi.java
deleted file mode 100644
index d709831..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApi.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.NetworkSecurityGroupToXML;
-import org.jclouds.azurecompute.binders.RuleToXML;
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListNetworkSecurityGroupsHandler;
-import org.jclouds.azurecompute.xml.NetworkSecurityGroupHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the network security groups in your subscription.
- *
- * @see https://msdn.microsoft.com/en-us/library/azure/dn913824.aspx.
- */
-@Path("/services/networking")
-@Produces(MediaType.APPLICATION_XML)
-@Consumes(MediaType.APPLICATION_XML)
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-public interface NetworkSecurityGroupApi {
-
- /**
- * The List Network Security Groups operation returns a list of the network security groups in the specified
- * subscription.
- *
- * @return network security group list.
- */
- @Named("ListNetworkSecurityGroups")
- @Path("/networksecuritygroups")
- @GET
- @XMLResponseParser(ListNetworkSecurityGroupsHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<NetworkSecurityGroup> list();
-
- /**
- * The Create Network Security Group operation creates a new network security group within the context of the
- * specified subscription. For more information, see
- * <a href="https://msdn.microsoft.com/en-us/library/azure/dn848316.aspx">About Network Security Groups</a>.
- *
- * @param networkSecurityGroup network security group.
- * @return request id.
- */
- @Named("CreateNetworkSecurityGroup")
- @Path("/networksecuritygroups")
- @POST
- @ResponseParser(ParseRequestIdHeader.class)
- String create(@BinderParam(NetworkSecurityGroupToXML.class) NetworkSecurityGroup networkSecurityGroup);
-
- /**
- * Deletes the pecified Network Security Group from your subscription. If the Network Security group is still
- * associated with some VM/Role/Subnet, the deletion will fail. In order to successfully delete the Network Security,
- * it needs to be not used.
- *
- * @param networkSecurityGroupName
- * @return request id
- */
- @Named("CreateNetworkSecurityGroup")
- @Path("/networksecuritygroups/{networkSecurityGroupName}")
- @Fallback(NullOnNotFoundOr404.class)
- @DELETE
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
- /**
- * The Get Network Security Group for Subnet operation returns information about the network security group
- * associated with a subnet.
- *
- * @param virtualNetworkName virtual network name.
- * @param subnetName subnet name.
- * @return network security group.
- */
- @Named("GetsNetworkSecurityGroupAppliedToSubnet")
- @Path("/virtualnetwork/{virtualNetworkName}/subnets/{subnetName}/networksecuritygroups")
- @GET
- @XMLResponseParser(NetworkSecurityGroupHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- NetworkSecurityGroup getNetworkSecurityGroupAppliedToSubnet(
- @PathParam("virtualNetworkName") String virtualNetworkName, @PathParam("subnetName") String subnetName);
-
- /**
- * The Get Network Security Group operation returns information about the specified network security group and rules.
- *
- * @param networkSecurityGroupName network security group name.
- * @return network security group.
- */
- @Named("GetDetailsNetworkSecurityGroup")
- @Path("/networksecuritygroups/{networkSecurityGroupName}")
- @GET
- @QueryParams(keys = "detaillevel", values = "Full")
- @XMLResponseParser(NetworkSecurityGroupHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- NetworkSecurityGroup getFullDetails(@PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
- /**
- * The Get Network Security Group operation returns information about the specified network security group.
- *
- * @param networkSecurityGroupName network security group name.
- * @return network security group.
- */
- @Named("GetDetailsNetworkSecurityGroup")
- @Path("/networksecuritygroups/{networkSecurityGroupName}")
- @GET
- @XMLResponseParser(NetworkSecurityGroupHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- NetworkSecurityGroup get(@PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
- /**
- * The Add Network Security Group to Subnet operation associates the network security group with specified subnet in
- * a virtual network. For more information, see
- * <a href="https://msdn.microsoft.com/en-us/library/azure/dn848316.aspx">About Network Security Groups</a>.
- *
- * @param virtualNetworkName virtual network name.
- * @param subnetName subnet name.
- * @param networkSecurityGroupName network security group name.
- * @return request id.
- */
- @Named("AddNetworkSecurityGroupToSubnet")
- @Path("/virtualnetwork/{virtualNetworkName}/subnets/{subnetName}/networksecuritygroups")
- @Payload("<NetworkSecurityGroup xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<Name>{networkSecurityGroupName}</Name></NetworkSecurityGroup>")
- @POST
- @ResponseParser(ParseRequestIdHeader.class)
- String addToSubnet(@PathParam("virtualNetworkName") String virtualNetworkName,
- @PathParam("subnetName") String subnetName,
- @PayloadParam("networkSecurityGroupName") String networkSecurityGroupName);
-
- /**
- * The Remove Network Security Group from Subnet operation removes the association of the specified network security
- * group from the specified subnet.
- *
- * @param virtualNetworkName virtual network name.
- * @param subnetName subnet name.
- * @param networkSecurityGroupName network security group name.
- * @return request id.
- */
- @Named("RemoveNetworkSecurityGroupToSubnet")
- @Path("/virtualnetwork/{virtualNetworkName}/subnets/{subnetName}/networksecuritygroups/{networkSecurityGroupName}")
- @Fallback(NullOnNotFoundOr404.class)
- @DELETE
- @ResponseParser(ParseRequestIdHeader.class)
- String removeFromSubnet(@PathParam("virtualNetworkName") String virtualNetworkName,
- @PathParam("subnetName") String subnetName,
- @PathParam("networkSecurityGroupName") String networkSecurityGroupName);
-
- /**
- * The Set Network Security Rule operation adds or updates a network security rule that is associated with the
- * specified network security group.
- *
- * @param networkSecurityGroupName network security group name.
- * @param ruleName rule name.
- * @param rule rule.
- * @return request id.
- */
- @Named("SetNetworkSecurityRuleToNetworkSecurityGroup")
- @Path("/networksecuritygroups/{networkSecurityGroupName}/rules/{ruleName}")
- @PUT
- @ResponseParser(ParseRequestIdHeader.class)
- String setRule(@PathParam("networkSecurityGroupName") String networkSecurityGroupName,
- @PathParam("ruleName") String ruleName, @BinderParam(RuleToXML.class) Rule rule);
-
- /**
- * The Delete Network Security Rule operation deletes a network security group rule from the specified network
- * security group.
- *
- * @param networkSecurityGroupName network security group name.
- * @param ruleName name of the rule to be deleted.
- * @return request id.
- */
- @Named("SetNetworkSecurityRuleToNetworkSecurityGroup")
- @Path("/networksecuritygroups/{networkSecurityGroupName}/rules/{ruleName}")
- @Fallback(NullOnNotFoundOr404.class)
- @DELETE
- @ResponseParser(ParseRequestIdHeader.class)
- String deleteRule(@PathParam("networkSecurityGroupName") String networkSecurityGroupName,
- @PathParam("ruleName") String ruleName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OSImageApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/OSImageApi.java
deleted file mode 100644
index aaf3ba8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OSImageApi.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.OSImageParamsToXML;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.OSImageParams;
-import org.jclouds.azurecompute.functions.OSImageParamsName;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListOSImagesHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ParamParser;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the OS images in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157175">docs</a>
- */
-@Path("/services/images")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-public interface OSImageApi {
-
- /**
- * The List Cloud Services operation lists the cloud services available under the current subscription.
- */
- @Named("ListImages")
- @GET
- @Produces(APPLICATION_XML)
- @XMLResponseParser(ListOSImagesHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<OSImage> list();
-
- /**
- * The Add OS Image operation adds an OS image that is currently stored in a storage account in your subscription to
- * the image repository.
- */
- @Named("AddImage")
- @POST
- @ResponseParser(ParseRequestIdHeader.class)
- String add(@BinderParam(OSImageParamsToXML.class) OSImageParams params);
-
- /**
- * The Update OS Image operation updates an OS image that in your image repository.
- */
- @Named("UpdateImage")
- @PUT
- @Path("/{imageName}")
- @ResponseParser(ParseRequestIdHeader.class)
- String update(@PathParam("imageName") @ParamParser(OSImageParamsName.class)
- @BinderParam(OSImageParamsToXML.class) OSImageParams params);
-
- /**
- * The Delete Cloud Service operation deletes the specified cloud service from Windows Azure.
- *
- * @param imageName the unique DNS Prefix value in the Windows Azure Management Portal
- */
- @Named("DeleteImage")
- @DELETE
- @Path("/{imageName}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("imageName") String imageName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OperationApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/OperationApi.java
deleted file mode 100644
index bc5e2dc..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/OperationApi.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.azurecompute.xml.OperationHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes one operation for tracking the progress of asynchronous requests.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460796">docs</a>
- */
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface OperationApi {
-
- @Named("GetOperation")
- @GET
- @Path("/operations/{request-id}")
- @XMLResponseParser(OperationHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- Operation get(@PathParam("request-id") String requestId);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ReservedIPAddressApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/ReservedIPAddressApi.java
deleted file mode 100644
index fd93665..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ReservedIPAddressApi.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.ReservedIPAddressParamsToXML;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListReservedIPAddressHandler;
-import org.jclouds.azurecompute.xml.ReservedIPAddressHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the reserved IP addresses in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722420.aspx">docs</a>
- */
-@Path("/services/networking/reservedips")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface ReservedIPAddressApi {
-
- /**
- * The List Reserved IP Addresses operation lists the IP addresses that have been reserved for the specified
- * subscription.
- *
- * @return list of reserved IPs.
- */
- @Named("ListReservedIPAddress")
- @GET
- @XMLResponseParser(ListReservedIPAddressHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<ReservedIPAddress> list();
-
- /**
- * The Get Reserved IP Address operation retrieves information about the specified reserved IP address.
- *
- * @param name reserver IP address name.
- * @return reserved IP.
- */
- @Named("GetReservedIPAddress")
- @GET
- @Path("/{name}")
- @XMLResponseParser(ReservedIPAddressHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- ReservedIPAddress get(@PathParam("name") String name);
-
- /**
- * The Get Reserved IP Address operation retrieves information about the specified reserved IP address.
- *
- * @param name reserver IP address name.
- * @return request id.
- */
- @Named("DeleteReservedIPAddress")
- @DELETE
- @Path("/{name}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("name") String name);
-
- /**
- * The Create Reserved IP Address operation reserves an IPv4 address for the specified subscription. For more
- * information, see Reserved IP Addresses. You can use a small number of reserved IP addresses for free, but unused
- * reserved IP addresses and a number of addresses above the limit will incur charges.
- *
- * @param params reserved IP details to be sent as request body.
- * @return request id.
- */
- @Named("CreateReservedIPAddress")
- @POST
- @ResponseParser(ParseRequestIdHeader.class)
- String create(@BinderParam(ReservedIPAddressParamsToXML.class) ReservedIPAddressParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ServiceCertificatesApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/ServiceCertificatesApi.java
deleted file mode 100644
index 4ddc98e..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/ServiceCertificatesApi.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.ServiceCertificateParamsToXML;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListServiceCertificatesHandler;
-import org.jclouds.azurecompute.xml.ServiceCertificateHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing service certificates in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee795178.aspx">docs</a>
- */
-@Path("/services/hostedservices")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface ServiceCertificatesApi {
-
- /**
- * The List Service Certificates operation lists all of the service certificates associated with the specified cloud
- * service.
- *
- * @param service service name.
- * @return list of cloud service certificates.
- */
- @Named("ListServiceCertificates")
- @GET
- @Path("/{service}/certificates")
- @XMLResponseParser(ListServiceCertificatesHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<ServiceCertificate> list(@PathParam("service") String service);
-
- /**
- * The Get Service Certificate operation returns the public data for the specified X.509 certificate associated with
- * a cloud service.
- *
- * @param service service name.
- * @param thumbprintAlgorithm thumbprint algorithm.
- * @param thumbprintInHexadecimal thumbprint hexadecimal format.
- * @return service certificate including data only.
- */
- @Named("GetServiceCertificate")
- @GET
- @Path("/{service}/certificates/{thumbprintAlgorithm}-{thumbprintInHexadecimal}")
- @XMLResponseParser(ServiceCertificateHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- ServiceCertificate get(
- @PathParam("service") String service,
- @PathParam("thumbprintAlgorithm") String thumbprintAlgorithm,
- @PathParam("thumbprintInHexadecimal") String thumbprintInHexadecimal);
-
- /**
- * The Delete Service Certificate asynchronous operation deletes a service certificate from the certificate store of
- * a cloud service.
- *
- * @param service service name.
- * @param thumbprintAlgorithm thumbprint algorithm.
- * @param thumbprintInHexadecimal thumbprint hexadecimal format.
- * @return request id.
- */
- @Named("DeleteServiceCertificate")
- @DELETE
- @Path("/{service}/certificates/{thumbprintAlgorithm}-{thumbprintInHexadecimal}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(
- @PathParam("service") String service,
- @PathParam("thumbprintAlgorithm") String thumbprintAlgorithm,
- @PathParam("thumbprintInHexadecimal") String thumbprintInHexadecimal);
-
- /**
- * The Add Service Certificate asynchronous operation adds a certificate to a cloud service.
- *
- * @param service service name.
- * @param params service certificate details to be sent as request body.
- * @return request id.
- */
- @Named("AddServiceCertificate")
- @POST
- @Path("/{service}/certificates")
- @ResponseParser(ParseRequestIdHeader.class)
- String add(
- @PathParam("service") String service,
- @BinderParam(ServiceCertificateParamsToXML.class) ServiceCertificateParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/StorageAccountApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/StorageAccountApi.java
deleted file mode 100644
index 336cdc7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/StorageAccountApi.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.StorageServiceKeyTypeToXML;
-import org.jclouds.azurecompute.binders.CreateStorageServiceParamsToXML;
-import org.jclouds.azurecompute.binders.UpdateStorageServiceParamsToXML;
-import org.jclouds.azurecompute.domain.Availability;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.domain.StorageServiceKeys.KeyType;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.AvailabilityHandler;
-import org.jclouds.azurecompute.xml.ListStorageServicesHandler;
-import org.jclouds.azurecompute.xml.StorageServiceHandler;
-import org.jclouds.azurecompute.xml.StorageServiceKeysHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the storage accounts in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/azure/ee460790">docs</a>
- */
-@Path("/services/storageservices")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Produces(MediaType.APPLICATION_XML)
-@Consumes(MediaType.APPLICATION_XML)
-public interface StorageAccountApi {
-
- /**
- * The List Storage Accounts operation lists the storage accounts that are available in the specified subscription.
- */
- @Named("ListStorageAccounts")
- @GET
- @XMLResponseParser(ListStorageServicesHandler.class)
- @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
- List<StorageService> list();
-
- /**
- * The Create Storage Account asynchronous operation creates a new storage account in Microsoft Azure.
- */
- @Named("CreateStorageAccount")
- @POST
- @ResponseParser(ParseRequestIdHeader.class)
- String create(@BinderParam(CreateStorageServiceParamsToXML.class) CreateStorageServiceParams storageServiceParams);
-
- /**
- * The Check Storage Account Name Availability operation checks to see if the specified storage account name is
- * available, or if it has already been taken.
- */
- @Named("CheckStorageAccountNameAvailability")
- @GET
- @Path("/operations/isavailable/{storageAccountName}")
- @XMLResponseParser(AvailabilityHandler.class)
- Availability isAvailable(@PathParam("storageAccountName") String storageAccountName);
-
- /**
- * The Get Storage Account Properties operation returns system properties for the specified storage account.
- */
- @Named("GetStorageAccountProperties")
- @GET
- @Path("/{storageAccountName}")
- @XMLResponseParser(StorageServiceHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- StorageService get(@PathParam("storageAccountName") String storageAccountName);
-
- /**
- * The Get Storage Keys operation returns the primary and secondary access keys for the specified storage account.
- */
- @Named("GetStorageAccountKeys")
- @GET
- @Path("/{storageAccountName}/keys")
- @XMLResponseParser(StorageServiceKeysHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- StorageServiceKeys getKeys(@PathParam("storageAccountName") String storageAccountName);
-
- @Named("RegenerateStorageAccountKeys")
- @POST
- @Path("/{storageAccountName}/keys")
- @QueryParams(keys = "action", values = "regenerate")
- @ResponseParser(ParseRequestIdHeader.class)
- String regenerateKeys(
- @PathParam("storageAccountName") String storageAccountName,
- @BinderParam(StorageServiceKeyTypeToXML.class) KeyType keyType);
-
- /**
- * The Update Storage Account asynchronous operation updates the label, the description, and enables or disables the
- * geo-replication status for the specified storage account.
- */
- @Named("UpdateStorageAccount")
- @PUT
- @Path("/{storageAccountName}")
- @ResponseParser(ParseRequestIdHeader.class)
- String update(
- @PathParam("storageAccountName") String storageAccountName,
- @BinderParam(UpdateStorageServiceParamsToXML.class) UpdateStorageServiceParams storageServiceParams);
-
- @Named("DeleteStorageAccount")
- @DELETE
- @Path("/{serviceName}")
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("serviceName") String serviceName);
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/SubscriptionApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/SubscriptionApi.java
deleted file mode 100644
index c0ac9ca..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/SubscriptionApi.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.xml.ListRoleSizesHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for retrieving information about a subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg715315">docs</a>
- */
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface SubscriptionApi {
-
- /**
- * The List Role Sizes operation lists the role sizes that are available under the specified subscription.
- */
- @Named("ListRoleSizes")
- @GET
- @Path("/rolesizes")
- @XMLResponseParser(ListRoleSizesHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<RoleSize> listRoleSizes();
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/TrafficManagerApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/TrafficManagerApi.java
deleted file mode 100644
index d41cda1..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/TrafficManagerApi.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import org.jclouds.Fallbacks;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.ProfileDefinitionParamsToXML;
-import org.jclouds.azurecompute.binders.ProfileParamsToXML;
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListProfileDefinitionsHandler;
-import org.jclouds.azurecompute.xml.ListProfilesHandler;
-import org.jclouds.azurecompute.xml.ProfileDefinitionHandler;
-import org.jclouds.azurecompute.xml.ProfileHandler;
-import org.jclouds.azurecompute.xml.ResultHandler;
-
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for creating, updating, listing, and deleting Azure Traffic Manager
- * profiles and definitions.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758255.aspx">docs</a>
- */
-@Path("/services/WATM")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(APPLICATION_XML)
-@Produces(APPLICATION_XML)
-public interface TrafficManagerApi {
-
- /**
- * The List Definitions operation returns all definitions of a profile.
- *
- * @param profile profile name.
- * @return profile definitions.
- */
- @Named("ListProfileDefinitions")
- @GET
- @Path("/profiles/{profile}/definitions")
- @XMLResponseParser(ListProfileDefinitionsHandler.class)
- @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
- List<ProfileDefinition> listDefinitions(@PathParam("profile") String profile);
-
- /**
- * The Get Definition operation returns an existing profile definition.
- *
- * @param profile profile name.
- * @return profile definition.
- */
- @Named("GetProfileDefinition")
- @GET
- @Path("/profiles/{profile}/definitions/1")
- @XMLResponseParser(ProfileDefinitionHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- ProfileDefinition getDefinition(@PathParam("profile") String profile);
-
- /**
- * The Create Profile operation creates a new profile for a domain name, owned by the specified subscription.
- *
- * @return traffic manager profiles.
- */
- @Named("ListProfiles")
- @GET
- @Path("/profiles")
- @XMLResponseParser(ListProfilesHandler.class)
- @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
- List<Profile> listProfiles();
-
- /**
- * The Get Profile operation returns profile details, including all definition versions and their statuses.
- *
- * @param profile profile name.
- * @return traffic manager profile.
- */
- @Named("GetProfile")
- @GET
- @Path("/profiles/{profile}")
- @XMLResponseParser(ProfileHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- Profile getProfile(@PathParam("profile") String profile);
-
- /**
- * The Check DNS Prefix Availability operation checks whether the specified DNS prefix is available for creating a
- * profile.
- *
- * @param name DNS name that you want to use. You must include .trafficmanager.net in the name.
- * @return DNS name availability.
- */
- @Named("CheckDNSPrefixAvailability")
- @GET
- @Path("/operations/isavailable/{name}")
- @XMLResponseParser(ResultHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- boolean checkDNSPrefixAvailability(@PathParam("name") String name);
-
- /**
- * The Create Definition operation creates a new definition for a specified profile. This definition will be assigned
- * a version number by the service. For more information about creating a profile, see Create Profile.
- *
- * @param name profile name.
- * @param params profile definition details to be sent as request body.
- * @return request id.
- */
- @Named("CreateProfileDefinition")
- @POST
- @Path("/profiles/{name}/definitions")
- @ResponseParser(ParseRequestIdHeader.class)
- String createDefinition(
- @PathParam("name") String name,
- @BinderParam(ProfileDefinitionParamsToXML.class) ProfileDefinitionParams params);
-
- /**
- * The Delete Profile operation deletes a profile and all of its definitions. This operation cannot be reverted.
- *
- * @param profile traffic manager profile name.
- * @return request id.
- */
- @Named("DeleteProfile")
- @DELETE
- @Path("/profiles/{profile}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- String delete(@PathParam("profile") String profile);
-
- /**
- * The Create Profile operation creates a new profile for a domain name, owned by the specified subscription.
- *
- * @param params profile parameters.
- * @return request id.
- */
- @Named("CreateProfile")
- @POST
- @Path("/profiles")
- @ResponseParser(ParseRequestIdHeader.class)
- String createProfile(@BinderParam(ProfileParamsToXML.class) CreateProfileParams params);
-
- /**
- * The Update Profile operation enables or disables a profile.
- *
- * @param profile traffic manager profile name.
- * @param params update profile params.
- * @return request id.
- */
- @Named("UpdateProfile")
- @PUT
- @Path("/profiles/{profile}")
- @ResponseParser(ParseRequestIdHeader.class)
- String updateProfile(
- @PathParam("profile") String profile, @BinderParam(ProfileParamsToXML.class) UpdateProfileParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VMImageApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/VMImageApi.java
deleted file mode 100644
index 6ad52b2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VMImageApi.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.VMImageParamsToXML;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListVMImagesHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-import org.jclouds.rest.annotations.BinderParam;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import java.util.List;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
-
-/**
- * The Service Management API includes operations for managing the VM Images in your subscription.
- *
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499771.aspx">docs</a>
- */
-@Path("/services/vmimages")
-@Consumes(APPLICATION_XML)
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-public interface VMImageApi {
-
-
- /**
- * The List VM Images operation retrieves a list of the VM Images from the image repository that is associated with
- * the specified subscription.
- */
- @Named("ListVMImages")
- @GET
- @XMLResponseParser(ListVMImagesHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class) List<VMImage> list();
-
- /**
- * The Create VM Image operation creates a VM Image in the image repository that is associated with the specified
- * subscription using a specified set of virtual hard disks.
- */
- @Named("CreateVMImage")
- @POST
- @Produces(APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class) String create(
- @BinderParam(VMImageParamsToXML.class) VMImageParams params);
-
- /**
- * The Create VM Image operation creates a VM Image in the image repository that is associated with the specified
- * subscription using a specified set of virtual hard disks.
- */
- @Named("UpdateVMImage")
- @PUT
- @Path("/{imageName}")
- @Produces(APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class) String update(@PathParam("imageName") String imageName,
- @BinderParam(VMImageParamsToXML.class) VMImageParams params);
-
- /**
- * The Delete VM Image operation deletes the specified VM Image from the image repository that is associated with
- * the specified subscription.
- */
- @Named("DeleteImage")
- @DELETE
- @Path("/{imageName}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class) String delete(@PathParam("imageName") String imageName);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualMachineApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualMachineApi.java
deleted file mode 100644
index 4065195..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualMachineApi.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.CaptureVMImageParamsToXML;
-import org.jclouds.azurecompute.binders.RoleToXML;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.RoleHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-/**
- * The Service Management API includes operations for managing the virtual machines in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157206">docs</a>
- */
-@Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-// NOTE: MS Docs refer to the commands as Role, but in the description, it is always Virtual Machine.
-public interface VirtualMachineApi {
-
- @Named("RestartRole")
- @POST
- // Warning : the url in the documentation is WRONG ! @see
- // http://social.msdn.microsoft.com/Forums/pl-PL/WAVirtualMachinesforWindows/thread/\
- // 7ba2367b-e450-49e0-89e4-46c240e9d213
- @Path("/roleinstances/{name}/Operations")
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<RestartRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<OperationType>RestartRoleOperation</OperationType></RestartRoleOperation>")
- String restart(@PathParam("name") String name);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157201
- */
- @Named("CaptureRole")
- @POST
- @Path("/roleinstances/{name}/Operations")
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<CaptureRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<OperationType>CaptureRoleOperation</OperationType>"
- + "<PostCaptureAction>Delete</PostCaptureAction>"
- + "<TargetImageLabel>{imageLabel}</TargetImageLabel>"
- + "<TargetImageName>{imageName}</TargetImageName></CaptureRoleOperation>")
- String capture(@PathParam("name") String name, @PayloadParam("imageName") String imageName,
- @PayloadParam("imageLabel") String imageLabel);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157195
- */
- @Named("ShutdownRole")
- @POST
- @Path("/roleinstances/{name}/Operations")
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<ShutdownRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<OperationType>ShutdownRoleOperation</OperationType>" +
- "<PostShutdownAction>{postShutdownAction}</PostShutdownAction></ShutdownRoleOperation>")
- String shutdown(@PathParam("name") String name, @PayloadParam("postShutdownAction") String postShutdownAction);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157195
- */
- @Named("ShutdownRole")
- @POST
- @Path("/roleinstances/{name}/Operations")
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<ShutdownRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<OperationType>ShutdownRoleOperation</OperationType></ShutdownRoleOperation>")
- String shutdown(@PathParam("name") String name);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157189
- */
- @Named("StartRole")
- @POST
- @Path("/roleinstances/{name}/Operations")
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<StartRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\">"
- + "<OperationType>StartRoleOperation</OperationType></StartRoleOperation>")
- String start(@PathParam("name") String name);
-
- /**
- * https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx
- */
- @Named("GetRole")
- @GET
- @Path("/roles/{roleName}")
- @Produces(MediaType.APPLICATION_XML)
- @XMLResponseParser(RoleHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- Role getRole(@PathParam("roleName") String roleName);
-
- /**
- * https://msdn.microsoft.com/library/azure/jj157187.aspx
- */
- @Named("UpdateRole")
- @PUT
- @Path("/roles/{roleName}")
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- String updateRole(@PathParam("roleName") String roleName, @BinderParam(RoleToXML.class) Role role);
-
- /**
- * The Capture VM Image operation creates a copy of the operating system virtual hard disk (VHD) and all of the data
- * VHDs that are associated with the Virtual Machine, saves the VHD copies in the same storage location as the original
- * VHDs, and registers the copies as a VM Image in the image repository that is associated with the specified subscription.
- */
- @Named("CaptureVMImage")
- @POST
- @Produces(MediaType.APPLICATION_XML)
- @Path("/roleinstances/{name}/Operations")
- @ResponseParser(ParseRequestIdHeader.class) String capture(@PathParam("name") String name,
- @BinderParam(CaptureVMImageParamsToXML.class) CaptureVMImageParams params);
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualNetworkApi.java b/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualNetworkApi.java
deleted file mode 100644
index 23cba78..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/features/VirtualNetworkApi.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azurecompute.binders.NetworkConfigurationToXML;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.functions.ParseRequestIdHeader;
-import org.jclouds.azurecompute.xml.ListVirtualNetworkSitesHandler;
-import org.jclouds.azurecompute.xml.NetworkConfigurationHandler;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-@Path("/services/networking")
-@Headers(keys = "x-ms-version", values = "{jclouds.api-version}")
-@Consumes(MediaType.APPLICATION_XML)
-public interface VirtualNetworkApi {
-
- /**
- * The Get Network Configuration operation retrieves the network configuration file.
- *
- * @return The response body is a netcfg.cfg file.
- *
- */
- @Named("GetVirtualNetworkConfiguration")
- @Path("/media")
- @GET
- @XMLResponseParser(NetworkConfigurationHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- NetworkConfiguration getNetworkConfiguration();
-
- @Named("ListVirtualNetworkSites")
- @Path("/virtualnetwork")
- @GET
- @XMLResponseParser(ListVirtualNetworkSitesHandler.class)
- @Fallback(EmptyListOnNotFoundOr404.class)
- List<VirtualNetworkSite> list();
-
- @Named("SetVirtualNetworkConfiguration")
- @Path("/media")
- @PUT
- @Produces(MediaType.TEXT_PLAIN)
- @ResponseParser(ParseRequestIdHeader.class)
- String set(@BinderParam(NetworkConfigurationToXML.class) NetworkConfiguration networkConfiguration);
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/Base64EncodeLabel.java b/azurecompute/src/main/java/org/jclouds/azurecompute/functions/Base64EncodeLabel.java
deleted file mode 100644
index 89aa61b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/Base64EncodeLabel.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.functions;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-
-import com.google.common.base.Function;
-
-public final class Base64EncodeLabel implements Function<Object, String> {
-
- @Override
- public String apply(final Object label) {
- return base64().encode(label.toString().getBytes(UTF_8));
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/OSImageParamsName.java b/azurecompute/src/main/java/org/jclouds/azurecompute/functions/OSImageParamsName.java
deleted file mode 100644
index 1f5fa40..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/OSImageParamsName.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.functions;
-
-import org.jclouds.azurecompute.domain.OSImageParams;
-
-import com.google.common.base.Function;
-
-public class OSImageParamsName implements Function<Object, String> {
-
- @Override
- public String apply(final Object input) {
- return OSImageParams.class.cast(input).name();
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/ParseRequestIdHeader.java b/azurecompute/src/main/java/org/jclouds/azurecompute/functions/ParseRequestIdHeader.java
deleted file mode 100644
index 17cc0bb..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/functions/ParseRequestIdHeader.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.functions;
-
-import static org.jclouds.http.HttpUtils.releasePayload;
-
-import javax.inject.Singleton;
-
-import org.jclouds.http.HttpResponse;
-
-import com.google.common.base.Function;
-
-/**
- * Parses an x-ms-request-id the header
- *
- * A value that uniquely identifies a request made against the management service. For an asynchronous operation, you
- * can call get operation status with the value of the header to determine whether the operation is complete, has
- * failed, or is still in progress.
- */
-@Singleton
-public class ParseRequestIdHeader implements Function<HttpResponse, String> {
-
- public String apply(final HttpResponse from) {
- releasePayload(from);
- final String requestId = from.getFirstHeaderOrNull("x-ms-request-id");
- if (requestId != null) {
- return requestId;
- }
- throw new IllegalStateException("did not receive RequestId in: " + from);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/handlers/AzureComputeErrorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/handlers/AzureComputeErrorHandler.java
deleted file mode 100644
index 23a691c..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/handlers/AzureComputeErrorHandler.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.handlers;
-
-import java.io.IOException;
-
-import javax.inject.Singleton;
-
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.jclouds.util.Closeables2;
-import org.jclouds.util.Strings2;
-
-/**
- * This will parse and set an appropriate exception on the command object.
- */
-@Singleton
-public class AzureComputeErrorHandler implements HttpErrorHandler {
-
- @Override
- public void handleError(final HttpCommand command, final HttpResponse response) {
- // it is important to always read fully and close streams
- String message = parseMessage(response);
- Exception exception = message == null
- ? new HttpResponseException(command, response)
- : new HttpResponseException(command, response, message);
- try {
- message = message == null
- ? String.format("%s -> %s", command.getCurrentRequest().getRequestLine(), response.getStatusLine())
- : message;
- switch (response.getStatusCode()) {
- case 401:
- case 403:
- exception = new AuthorizationException(message, exception);
- break;
-
- case 404:
- if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
- exception = new ResourceNotFoundException(message, exception);
- }
- break;
-
- case 409:
- exception = new IllegalStateException(message, exception);
- break;
-
- default:
- }
- } finally {
- Closeables2.closeQuietly(response.getPayload());
- command.setException(exception);
- }
- }
-
- public String parseMessage(final HttpResponse response) {
- if (response.getPayload() == null) {
- return null;
- }
- try {
- return Strings2.toStringAndClose(response.getPayload().openStream());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/DelegatingSSLContextSupplier.java b/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/DelegatingSSLContextSupplier.java
deleted file mode 100644
index bdc81f3..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/DelegatingSSLContextSupplier.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Throwables.propagate;
-
-import com.google.common.base.Supplier;
-import java.io.File;
-import java.security.SecureRandom;
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import org.jclouds.crypto.Crypto;
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpUtils;
-import org.jclouds.http.config.SSLModule.TrustAllCerts;
-import org.jclouds.location.Provider;
-import org.jclouds.rest.AuthorizationException;
-
-/**
- * This supplier handles two different types of authentication: PKCS12 and PEM.
- * <br/>
- * Out of the {@link Credentials} instance:
- * <ol>
- * <li><tt>PKCS12</tt>: where {@link Credentials#identity} is keystore path and {@link Credentials#credential} is
- * keystore password</li>
- * <li><tt>PEM</tt>: where {@link Credentials#identity} is PEM-encoded certificate content and
- * {@link Credentials#credential} is PEM-encoded private key</li>
- * </ol>
- */
-@Singleton
-public class DelegatingSSLContextSupplier implements Supplier<SSLContext> {
-
- private final Crypto crypto;
-
- private final TrustManager[] trustManager;
-
- private final Supplier<Credentials> creds;
-
- @Inject
- DelegatingSSLContextSupplier(
- Crypto crypto, @Provider Supplier<Credentials> creds, HttpUtils utils, TrustAllCerts trustAllCerts) {
-
- this.crypto = crypto;
- this.trustManager = utils.trustAllCerts() ? new TrustManager[]{trustAllCerts} : null;
- this.creds = creds;
- }
-
- @Override
- public SSLContext get() {
- final Credentials currentCreds = checkNotNull(creds.get(), "credential supplier returned null");
- final String identity = checkNotNull(currentCreds.identity, "credential supplier returned null identity");
- final String credential = checkNotNull(currentCreds.credential, "credential supplier returned null credential");
-
- final File pkcs12File = new File(identity);
-
- final KeyManager[] keyManagers = pkcs12File.isFile()
- ? // identity is path to PKCS12 file, credential holds keystore password
- new FileBasedKeyManagersSupplier(pkcs12File, credential.toCharArray()).get()
- : // identity is PEM-encoded certificate content, credentials PEM-encoded private key
- new InMemoryKeyManagersSupplier(crypto, identity).get();
-
- if (keyManagers == null) {
- throw new AuthorizationException("Could not setup any viable authentication method");
- }
-
- try {
- final SSLContext sslContext = SSLContext.getInstance("TLS");
- sslContext.init(keyManagers, trustManager, new SecureRandom());
- return sslContext;
- } catch (Exception e) {
- throw propagate(e);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/FileBasedKeyManagersSupplier.java b/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/FileBasedKeyManagersSupplier.java
deleted file mode 100644
index e388184..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/FileBasedKeyManagersSupplier.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.suppliers;
-
-import com.google.common.base.Supplier;
-import java.io.File;
-import java.io.FileInputStream;
-import java.security.KeyStore;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
-import org.jclouds.util.Closeables2;
-
-import static com.google.common.base.Throwables.propagate;
-
-class FileBasedKeyManagersSupplier implements Supplier<KeyManager[]> {
-
- private final File pkcs12File;
-
- private final char[] credential;
-
- public FileBasedKeyManagersSupplier(final File pkcs12File, final char[] credential) {
- this.pkcs12File = pkcs12File;
- this.credential = credential;
- }
-
- @Override
- public KeyManager[] get() {
- KeyManager[] keyManagers = null;
-
- FileInputStream stream = null;
- try {
- stream = new FileInputStream(pkcs12File);
-
- final KeyStore keyStore = KeyStore.getInstance("PKCS12");
- keyStore.load(stream, credential);
-
- final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
- keyManagerFactory.init(keyStore, credential);
-
- keyManagers = keyManagerFactory.getKeyManagers();
- } catch (Exception e) {
- propagate(e);
- } finally {
- Closeables2.closeQuietly(stream);
- }
-
- return keyManagers;
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/InMemoryKeyManagersSupplier.java b/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/InMemoryKeyManagersSupplier.java
deleted file mode 100644
index d95a928..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/suppliers/InMemoryKeyManagersSupplier.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.suppliers;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Supplier;
-import com.google.common.io.ByteSource;
-import java.io.ByteArrayInputStream;
-import java.net.Socket;
-import java.security.Principal;
-import java.security.PrivateKey;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-import java.security.spec.KeySpec;
-import java.util.Collection;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.X509ExtendedKeyManager;
-import org.jclouds.crypto.Crypto;
-import org.jclouds.crypto.Pems;
-
-import static com.google.common.base.Throwables.propagate;
-
-class InMemoryKeyManagersSupplier implements Supplier<KeyManager[]> {
-
- private final Crypto crypto;
-
- private final String identity;
-
- public InMemoryKeyManagersSupplier(final Crypto crypto, final String identity) {
- this.crypto = crypto;
- this.identity = identity;
- }
-
- @Override
- public KeyManager[] get() {
- KeyManager[] keyManagers = null;
-
- // split in private key and certs
- final int privateKeyBeginIdx = identity.indexOf("-----BEGIN PRIVATE KEY");
- final int privateKeyEndIdx = identity.indexOf("-----END PRIVATE KEY");
- if (privateKeyBeginIdx != -1 && privateKeyEndIdx != -1) {
- try {
- final String pemPrivateKey = identity.substring(privateKeyBeginIdx, privateKeyEndIdx + 26);
-
- final StringBuilder pemCerts = new StringBuilder();
- int certsBeginIdx = 0;
- do {
- certsBeginIdx = identity.indexOf("-----BEGIN CERTIFICATE", certsBeginIdx);
- if (certsBeginIdx >= 0) {
- final int certsEndIdx = identity.indexOf("-----END CERTIFICATE", certsBeginIdx) + 26;
- pemCerts.append(identity.substring(certsBeginIdx, certsEndIdx));
- certsBeginIdx = certsEndIdx;
- }
- } while (certsBeginIdx != -1);
-
- // parse private key
- final KeySpec keySpec = Pems.privateKeySpec(ByteSource.wrap(pemPrivateKey.getBytes(Charsets.UTF_8)));
- final PrivateKey privateKey = crypto.rsaKeyFactory().generatePrivate(keySpec);
-
- // parse cert(s)
- @SuppressWarnings("unchecked")
- final Collection<Certificate> certs = (Collection<Certificate>) CertificateFactory.getInstance("X.509").
- generateCertificates(new ByteArrayInputStream(pemCerts.toString().getBytes(Charsets.UTF_8)));
-
- if (certs.isEmpty()) {
- throw new IllegalStateException("Could not find any valid certificate");
- }
-
- final X509Certificate certificate = (X509Certificate) certs.iterator().next();
-
- keyManagers = new KeyManager[]{new InMemoryKeyManager(certificate, privateKey)};
- } catch (Exception e) {
- propagate(e);
- }
- }
-
- return keyManagers;
- }
-
- private static class InMemoryKeyManager extends X509ExtendedKeyManager {
-
- private static final String DEFAULT_ALIAS = "azure";
-
- private final X509Certificate certificate;
-
- private final PrivateKey privateKey;
-
- public InMemoryKeyManager(final X509Certificate certificate, final PrivateKey privateKey) {
- this.certificate = certificate;
- this.privateKey = privateKey;
- }
-
- @Override
- public String chooseClientAlias(final String[] keyType, final Principal[] issuers, final Socket socket) {
- return DEFAULT_ALIAS;
- }
-
- @Override
- public String chooseServerAlias(final String keyType, final Principal[] issuers, final Socket socket) {
- return DEFAULT_ALIAS;
- }
-
- @Override
- public X509Certificate[] getCertificateChain(final String alias) {
- return new X509Certificate[]{certificate};
- }
-
- @Override
- public String[] getClientAliases(final String keyType, final Principal[] issuers) {
- return new String[]{DEFAULT_ALIAS};
- }
-
- @Override
- public PrivateKey getPrivateKey(final String alias) {
- return privateKey;
- }
-
- @Override
- public String[] getServerAliases(final String keyType, final Principal[] issuers) {
- return new String[]{DEFAULT_ALIAS};
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/util/ConflictManagementPredicate.java b/azurecompute/src/main/java/org/jclouds/azurecompute/util/ConflictManagementPredicate.java
deleted file mode 100644
index 1f940bf..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/util/ConflictManagementPredicate.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.util;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.domain.Operation.Status.FAILED;
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.logging.Logger;
-import org.jclouds.util.Predicates2;
-
-import com.google.common.base.Predicate;
-
-/**
- * Conflict errors (409 response status code) management predicate.
- */
-public class ConflictManagementPredicate implements Predicate<String> {
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- private AzureComputeApi api;
-
- private Predicate<String> operationSucceeded;
-
- private final long timeout = 600000;
- private final long interval = 15000;
-
- public ConflictManagementPredicate() {
- this(null);
- }
-
- /**
- * Constructor.
- *
- * @param api azure api.
- */
- public ConflictManagementPredicate(final AzureComputeApi api) {
- this(api, Predicates2.retry(new OperationSucceededPredicate(api), 600, 5, 5, SECONDS));
- }
-
- /**
- * Constructor.
- *
- * @param api azure api.
- * @param timeout predicate timeout.
- * @param period predicate period.
- * @param maxPeriod max period
- * @param unit timeout and period time unit.
- */
- public ConflictManagementPredicate(
- final AzureComputeApi api, long timeout, long period, long maxPeriod, TimeUnit unit) {
- this(api, Predicates2.retry(new OperationSucceededPredicate(api), timeout, period, maxPeriod, unit));
- }
-
- /**
- * Constructor.
- *
- * @param api azure api.
- * @param operationSucceeded predicate to be applied to the requestId.
- */
- public ConflictManagementPredicate(final AzureComputeApi api, final Predicate<String> operationSucceeded) {
- this.api = api;
- this.operationSucceeded = operationSucceeded;
- }
-
- /**
- * Operation to be executed.
- *
- * @return requestId.
- */
- protected String operation() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * {@inheritDoc }
- *
- * @param input interested object/operation description or requestId.
- * @return predicate evaluation.
- */
- @Override
- public final boolean apply(final String input) {
- Operation operation = null;
- String requestId = null;
-
- boolean retry = true;
-
- long now = System.currentTimeMillis();
- long end = now + timeout;
-
- while (retry && now < end) {
- try {
- requestId = operation();
- logger.debug("Executed operation on %s", input);
-
- // If request id is not available let's assume operation succeeded.
- if (requestId == null) {
- logger.debug("No request id available. Assume operation succeeded.");
- return true;
- }
-
- operation = api.getOperationApi().get(requestId);
- logger.debug("Operation %s status: %s", operation.id(), operation.status().name());
-
- if (operation.status() == FAILED) {
- // rise an exception based on HTTP status code
- if (operation.httpStatusCode() == 409 || operation.httpStatusCode() == 500) {
- logger.info("Retry operation %s with (code %d)", operation.id(), operation.httpStatusCode());
- } else {
- logger.info("Not retriable operation %s (code %d)", operation.id(), operation.httpStatusCode());
- retry = false;
- }
- } else {
- logger.debug("Tracking for operation %s ...", operation.id());
- retry = false;
- }
- } catch (UnsupportedOperationException e) {
- requestId = input;
- retry = false;
- logger.debug("Tracking for operation %s ...", input);
- } catch (RuntimeException e) {
- final HttpResponseException re = (e instanceof HttpResponseException)
- ? HttpResponseException.class.cast(e) : (e.getCause() instanceof HttpResponseException)
- ? HttpResponseException.class.cast(e.getCause())
- : null;
- if (re == null) {
- throw e;
- } else {
- final HttpResponse res = re.getResponse();
- logger.info("[%s (%d)] Performing operation on %s", res.getStatusLine(), res.getStatusCode(), input);
- if (res.getStatusCode() == 409 || res.getStatusCode() == 500) {
- logger.info("Retry operation %s", operation == null ? "" : operation.id(), res.getStatusCode());
- } else {
- throw re;
- }
- }
- }
-
- if (retry) {
- try {
- Thread.sleep(interval);
- } catch (InterruptedException ex) {
- // ignore
- }
-
- now = System.currentTimeMillis();
- }
- }
-
- if (now >= end) {
- throw new RuntimeException(new TimeoutException(requestId));
- }
-
- return operationSucceeded.apply(requestId);
- }
-
- private static class OperationSucceededPredicate implements Predicate<String> {
-
- private final AzureComputeApi api;
-
- public OperationSucceededPredicate(final AzureComputeApi api) {
- this.api = checkNotNull(api, "api must not be null");
- }
-
- @Override
- public boolean apply(final String input) {
- final Operation operation = api.getOperationApi().get(input);
- switch (operation.status()) {
- case SUCCEEDED:
- return true;
-
- case IN_PROGRESS:
- case UNRECOGNIZED:
- return false;
-
- case FAILED:
- throw new RuntimeException(new CancellationException(input));
-
- default:
- throw new IllegalStateException("Operation is in invalid status: " + operation.status().name());
- }
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/util/NetworkSecurityGroups.java b/azurecompute/src/main/java/org/jclouds/azurecompute/util/NetworkSecurityGroups.java
deleted file mode 100644
index 7035d70..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/util/NetworkSecurityGroups.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.util;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
-
-public class NetworkSecurityGroups {
-
- public static List<Rule> getCustomRules(final NetworkSecurityGroup networkSecurityGroup) {
- final List<Rule> rules = networkSecurityGroup.rules();
- return FluentIterable.from(rules)
- .filter(Predicates.notNull())
- .filter(new Predicate<Rule>() {
- @Override
- public boolean apply(final Rule rule) {
- return rule.isDefault() == null || !rule.isDefault();
- }
- })
- .toSortedList(new Comparator<Rule>() {
- @Override
- public int compare(final Rule r1, final Rule r2) {
- final int p1 = Integer.parseInt(r1.priority());
- final int p2 = Integer.parseInt(r2.priority());
- return p1 < p2 ? -1 : p1 == p2 ? 0 : 1;
-
- }
- });
- }
-
- public static int getFirstAvailablePriority(final List<Rule> rules) {
- int priority;
- if (rules.isEmpty()) {
- priority = 100;
- } else {
- priority = Integer.parseInt(Collections.max(rules, new Comparator<Rule>() {
- @Override
- public int compare(final Rule rule1, final Rule rule2) {
- return Integer.valueOf(rule1.priority()).compareTo(Integer.valueOf(rule2.priority()));
- }
- }).priority()) + 1;
- }
- return priority;
- }
-
- public static String createRuleName(final String format, final int fromPort, final int toPort) {
- return String.format(format, fromPort, toPort);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AddressSpaceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AddressSpaceHandler.java
deleted file mode 100644
index ad2d52d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AddressSpaceHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.AddressSpace;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class AddressSpaceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<AddressSpace> {
-
- private String addressPrefix;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {
- }
-
- @Override
- public AddressSpace getResult() {
- AddressSpace result = AddressSpace.create(addressPrefix);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- addressPrefix = null;
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if (qName.equals("AddressPrefix")) {
- addressPrefix = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AffinityGroupHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AffinityGroupHandler.java
deleted file mode 100644
index 05dff68..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AffinityGroupHandler.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.Date;
-import java.util.List;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.AffinityGroup.Capability;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191">api</a>
- */
-public final class AffinityGroupHandler extends ParseSax.HandlerForGeneratedRequestWithResult<AffinityGroup> {
-
- private final StringBuilder currentText = new StringBuilder();
-
- private final ComputeCapabilitiesHandler computeCapabilitiesHandler;
-
- private String name;
-
- private String label;
-
- private String description;
-
- private String location;
-
- private final List<Capability> capabilities = Lists.newArrayList();
-
- private Date createdTime;
-
- private ComputeCapabilities computeCapabilities;
-
- private boolean inComputeCapabilities = false;
-
- @Inject
- AffinityGroupHandler(final ComputeCapabilitiesHandler computeCapabilitiesHandler) {
- this.computeCapabilitiesHandler = computeCapabilitiesHandler;
- }
-
- @Override
- public AffinityGroup getResult() {
- final AffinityGroup result = AffinityGroup.create(
- name, label, description, location, capabilities, createdTime, computeCapabilities);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = null;
- label = null;
- description = null;
- location = null;
- capabilities.clear();
- createdTime = null;
- computeCapabilities = null;
- }
-
- @Override
- public void startElement(final String uri, final String localName, final String qName, final Attributes attributes)
- throws SAXException {
-
- if ("ComputeCapabilities".equals(qName)) {
- inComputeCapabilities = true;
- } else if (inComputeCapabilities) {
- computeCapabilitiesHandler.startElement(uri, localName, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if ("Name".equals(qName)) {
- name = currentOrNull(currentText);
- } else if ("Label".equals(qName)) {
- label = new String(base64().decode(currentOrNull(currentText)), UTF_8);
- } else if ("Description".equals(qName)) {
- description = currentOrNull(currentText);
- } else if ("Location".equals(qName)) {
- location = currentOrNull(currentText);
- } else if ("Capability".equals(qName)) {
- final String capabilityText = currentOrNull(currentText);
- if (capabilityText != null) {
- capabilities.add(Capability.valueOf(capabilityText));
- }
- } else if ("CreatedTime".equals(qName)) {
- final String createdTimeText = currentOrNull(currentText);
- if (createdTimeText != null) {
- createdTime = new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse(createdTimeText);
- }
- } else if ("ComputeCapabilities".equals(qName)) {
- inComputeCapabilities = false;
- computeCapabilities = computeCapabilitiesHandler.getResult();
- } else if (inComputeCapabilities) {
- computeCapabilitiesHandler.endElement(ignoredUri, ignoredName, qName);
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inComputeCapabilities) {
- computeCapabilitiesHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AttachmentHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AttachmentHandler.java
deleted file mode 100644
index 5b7e658..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AttachmentHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.http.functions.ParseSax;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-final class AttachmentHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Attachment> {
-
- private String hostedService;
-
- private String deployment;
-
- private String virtualMachine;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Attachment getResult() {
- final Attachment result = Attachment.create(hostedService, deployment, virtualMachine);
- hostedService = deployment = virtualMachine = null; // handler could be called in a loop.
- return result;
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if (qName.equals("HostedServiceName")) {
- hostedService = currentOrNull(currentText);
- } else if (qName.equals("DeploymentName")) {
- deployment = currentOrNull(currentText);
- } else if (qName.equals("RoleName")) {
- virtualMachine = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AvailabilityHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AvailabilityHandler.java
deleted file mode 100644
index e7b1d7b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/AvailabilityHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Availability;
-import org.jclouds.http.functions.ParseSax;
-
-public class AvailabilityHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Availability> {
-
- private Boolean result;
-
- private String reason;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Availability getResult() {
- return Availability.create(result, reason);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Result")) {
- String resultText = currentOrNull(currentText);
- if (resultText != null) {
- result = Boolean.valueOf(resultText);
- }
- } else if (qName.equals("Reason")) {
- reason = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
deleted file mode 100644
index 9af6141..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServiceHandler.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.Date;
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.date.DateService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class CloudServiceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<CloudService> {
-
- private String name;
-
- private String location;
-
- private String affinityGroup;
-
- private String label;
-
- private String description;
-
- private CloudService.Status status;
-
- private Date created;
-
- private Date lastModified;
-
- private Map<String, String> extendedProperties = Maps.newLinkedHashMap();
-
- private boolean inHostedServiceProperties;
-
- private String propertyName;
-
- private StringBuilder currentText = new StringBuilder();
-
- private final DateService dateService;
-
- @Inject
- CloudServiceHandler(DateService dateService) {
- this.dateService = dateService;
- }
-
- @Override
- public CloudService getResult() {
- CloudService result = CloudService.create(name, location, affinityGroup, label, description, status, created, //
- lastModified, ImmutableMap.copyOf(extendedProperties));
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = description = location = affinityGroup = label = null;
- status = null;
- created = lastModified = null;
- extendedProperties.clear();
- inHostedServiceProperties = false;
- propertyName = null;
- }
-
- @Override
- public void startElement(String ignoredUri, String ignoredLocalName, String qName, Attributes ignoredAttributes) {
- if (qName.equals("HostedServiceProperties")) {
- inHostedServiceProperties = true;
- }
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("HostedServiceProperties")) {
- inHostedServiceProperties = false;
- } else if (inHostedServiceProperties) {
- if (qName.equals("DateCreated")) {
- created = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- } else if (qName.equals("DateLastModified")) {
- lastModified = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- } else if (qName.equals("Status")) {
- String statusText = currentOrNull(currentText);
- status = CloudService.Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
- } else if (qName.equals("Name")) {
- propertyName = currentOrNull(currentText);
- } else if (qName.equals("Value")) {
- extendedProperties.put(propertyName, currentOrNull(currentText));
- propertyName = null;
- } else if (qName.equals("Description")) {
- description = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("AffinityGroup")) {
- affinityGroup = currentOrNull(currentText);
- } else if (qName.equals("Label")) {
- label = new String(base64().decode(currentOrNull(currentText)), UTF_8);
- }
- } else if (qName.equals("ServiceName")) {
- name = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandler.java
deleted file mode 100644
index a692df2..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandler.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.date.DateService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import javax.inject.Inject;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460806.aspx" >Response body description</a>
- */
-public final class CloudServicePropertiesHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<CloudServiceProperties> {
- private String name;
- private URI url;
- private String location;
- private String affinityGroup;
- private String label;
- private String description;
- private CloudServiceProperties.Status status;
- private Date created;
- private Date lastModified;
- private Map<String, String> extendedProperties = Maps.newLinkedHashMap();
- private List<Deployment> deploymentList = Lists.newArrayList();
-
- private boolean inHostedServiceProperties;
- private boolean inDeployment;
- private String propertyName;
- private StringBuilder currentText = new StringBuilder();
- private final DateService dateService;
- private final DeploymentHandler deploymentHandler;
-
- @Inject CloudServicePropertiesHandler(DateService dateService, DeploymentHandler deploymentHandler) {
- this.dateService = dateService;
- this.deploymentHandler = deploymentHandler;
- }
-
- @Override public CloudServiceProperties getResult() {
- CloudServiceProperties result = CloudServiceProperties
- .create(name, url, location, affinityGroup, label, description, status, created, //
- lastModified, ImmutableMap.copyOf(extendedProperties), ImmutableList.copyOf(deploymentList));
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = description = location = affinityGroup = label = null;
- status = null;
- created = lastModified = null;
- extendedProperties.clear();
- inHostedServiceProperties = false;
- propertyName = null;
- }
-
- @Override public void startElement(String ignoredUri, String ignoredLocalName, String qName,
- Attributes ignoredAttributes) {
- if (qName.equals("HostedServiceProperties")) {
- inHostedServiceProperties = true;
- } else if (qName.equals("Deployment")) {
- inDeployment = true;
- }
- if (inDeployment) {
- deploymentHandler.startElement(ignoredUri, ignoredLocalName, qName, ignoredAttributes);
- }
- }
-
- @Override public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("HostedServiceProperties")) {
- inHostedServiceProperties = false;
- } else if (inHostedServiceProperties) {
- if (qName.equals("DateCreated")) {
- created = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- } else if (qName.equals("DateLastModified")) {
- lastModified = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- } else if (qName.equals("Status")) {
- String statusText = currentOrNull(currentText);
- if (statusText != null) {
- status = status(statusText);
- }
- } else if (qName.equals("Name")) {
- propertyName = currentOrNull(currentText);
- } else if (qName.equals("Value")) {
- extendedProperties.put(propertyName, currentOrNull(currentText));
- propertyName = null;
- } else if (qName.equals("Description")) {
- description = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("AffinityGroup")) {
- affinityGroup = currentOrNull(currentText);
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
- }
- } else if (qName.equals("ServiceName")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Deployment")) {
- deploymentList.add(deploymentHandler.getResult());
- inDeployment = false;
- } else if (inDeployment) {
- deploymentHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("Url")) {
- String link = currentOrNull(currentText);
- if (link != null) {
- url = URI.create(link);
- }
- }
- currentText.setLength(0);
- }
-
- @Override public void characters(char[] ch, int start, int length) {
- if (inDeployment) {
- deploymentHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
- private static CloudServiceProperties.Status status(String status) {
- try {
- return CloudServiceProperties.Status.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, status));
- } catch (IllegalArgumentException e) {
- return CloudServiceProperties.Status.UNRECOGNIZED;
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ComputeCapabilitiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ComputeCapabilitiesHandler.java
deleted file mode 100644
index 706e6d7..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ComputeCapabilitiesHandler.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.collect.Lists;
-import java.util.List;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-public class ComputeCapabilitiesHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<ComputeCapabilities> {
-
- private final StringBuilder currentText = new StringBuilder();
-
- private final List<RoleSize.Type> virtualMachineRoleSizes = Lists.newArrayList();
-
- private final List<RoleSize.Type> webWorkerRoleSizes = Lists.newArrayList();
-
- private boolean inVirtualMachineRoleSizes = false;
-
- private boolean inWebWorkerRoleSizes = false;
-
- @Override
- public ComputeCapabilities getResult() {
- final ComputeCapabilities result = ComputeCapabilities.create(virtualMachineRoleSizes, webWorkerRoleSizes);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- virtualMachineRoleSizes.clear();
- webWorkerRoleSizes.clear();
- }
-
- @Override
- public void startElement(final String uri, final String localName, final String qName, final Attributes attributes)
- throws SAXException {
-
- if ("WebWorkerRoleSizes".equals(qName)) {
- inWebWorkerRoleSizes = true;
- } else if ("VirtualMachinesRoleSizes".equals(qName)) {
- inVirtualMachineRoleSizes = true;
- }
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if ("RoleSize".equals(qName)) {
- final RoleSize.Type roleSizeType = RoleSize.Type.fromString(currentOrNull(currentText));
- if (inVirtualMachineRoleSizes) {
- virtualMachineRoleSizes.add(roleSizeType);
- } else if (inWebWorkerRoleSizes) {
- webWorkerRoleSizes.add(roleSizeType);
- }
- } else if ("WebWorkerRoleSizes".equals(qName)) {
- inWebWorkerRoleSizes = false;
- } else if ("VirtualMachinesRoleSizes".equals(qName)) {
- inVirtualMachineRoleSizes = false;
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ConfigurationSetHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ConfigurationSetHandler.java
deleted file mode 100644
index 4065f72..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ConfigurationSetHandler.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.PublicIP;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.SubnetName;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public class ConfigurationSetHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ConfigurationSet> {
-
- private String configurationSetType;
-
- private List<InputEndpoint> inputEndpoint = Lists.newArrayList();
-
- private List<SubnetName> subnetNames = Lists.newArrayList();
-
- private String staticVirtualNetworkIPAddress;
-
- private List<PublicIP> publicIPs = Lists.newArrayList();
-
- private String networkSecurityGroup;
-
- private boolean inInputEndpoint;
-
- private boolean inSubnetNames;
-
- private final InputEndpointHandler inputEndpointHandler;
-
- private final SubnetNameHandler subnetNameHandler;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Inject
- ConfigurationSetHandler(InputEndpointHandler inputEndpointHandler, SubnetNameHandler subnetNameHandler) {
- this.inputEndpointHandler = inputEndpointHandler;
- this.subnetNameHandler = subnetNameHandler;
- }
-
- @Override
- public ConfigurationSet getResult() {
- ConfigurationSet result = ConfigurationSet.create(configurationSetType, inputEndpoint, subnetNames,
- staticVirtualNetworkIPAddress, publicIPs, networkSecurityGroup);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- configurationSetType = staticVirtualNetworkIPAddress = networkSecurityGroup = null;
- inputEndpoint = Lists.newArrayList();
- subnetNames = Lists.newArrayList();
- publicIPs = Lists.newArrayList();
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equals("InputEndpoint")) {
- inInputEndpoint = true;
- }
- if (inInputEndpoint) {
- inputEndpointHandler.startElement(uri, localName, qName, attributes);
- }
- if (qName.equals("SubnetNames")) {
- inSubnetNames = true;
- }
- if (inSubnetNames) {
- subnetNameHandler.startElement(uri, localName, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("InputEndpoint")) {
- inInputEndpoint = false;
- inputEndpoint.add(inputEndpointHandler.getResult());
- } else if (qName.equals("SubnetNames")) {
- inSubnetNames = false;
- subnetNames.add(subnetNameHandler.getResult());
- } else if (inInputEndpoint) {
- inputEndpointHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (inSubnetNames) {
- subnetNameHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("ConfigurationSetType")) {
- configurationSetType = currentOrNull(currentText);
- } else if (qName.equals("NetworkSecurityGroup")) {
- networkSecurityGroup = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inInputEndpoint) {
- inputEndpointHandler.characters(ch, start, length);
- } else if (inSubnetNames) {
- subnetNameHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
deleted file mode 100644
index 22472bb..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DataVirtualHardDiskHandler.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx#DataVirtualHardDisks" >api</a>
- */
-final class DataVirtualHardDiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<DataVirtualHardDisk> {
-
- private DataVirtualHardDisk.Caching hostCaching;
-
- private String diskName;
-
- private Integer lun;
-
- private Integer logicalDiskSizeInGB;
-
- private URI mediaLink;
-
- private String ioType;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- }
-
- @Override
- public DataVirtualHardDisk getResult() {
- DataVirtualHardDisk result = DataVirtualHardDisk
- .create(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink, ioType);
- return result;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
-
- if (qName.equals("HostCaching")) {
- String hostCachingText = currentOrNull(currentText);
- if (hostCachingText != null)
- hostCaching = DataVirtualHardDisk.Caching.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, hostCachingText));
- } else if (qName.equals("DiskName") || qName.equals("Name")) {
- diskName = currentOrNull(currentText);
- } else if (qName.equals("Lun")) {
- String lunText = currentOrNull(currentText);
- if (lunText != null) {
- lun = Integer.parseInt(lunText);
- }
- } else if (qName.equals("LogicalDiskSizeInGB")) {
- String gb = currentOrNull(currentText);
- if (gb != null) {
- logicalDiskSizeInGB = Integer.parseInt(gb);
- }
- } else if (qName.equals("MediaLink")) {
- String link = currentOrNull(currentText);
- if (link != null) {
- mediaLink = URI.create(link);
- }
- } else if (qName.equals("IOType")) {
- ioType = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
deleted file mode 100644
index a3fc96f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DeploymentHandler.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.Slot;
-import org.jclouds.azurecompute.domain.Deployment.Status;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460804" >Response body description</a>.
- */
-public final class DeploymentHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Deployment> {
-
- private String name;
-
- private Slot slot;
-
- private Status status;
-
- private String label;
-
- private String instanceStateDetails;
-
- private String virtualNetworkName;
-
- private List<Deployment.VirtualIP> virtualIPs = Lists.newArrayList();
-
- private List<Deployment.RoleInstance> roleInstanceList = Lists.newArrayList();
-
- private List<Role> roleList = Lists.newArrayList();
-
- private String instanceErrorCode;
-
- private boolean inRoleInstanceList;
-
- private boolean inRoleList;
-
- private boolean inListVirtualIPs;
-
- private final VirtualIPHandler virtualIPHandler;
-
- private final RoleInstanceHandler roleInstanceHandler;
-
- private final RoleHandler roleHandler;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Inject
- DeploymentHandler(VirtualIPHandler virtualIPHandler, RoleInstanceHandler roleInstanceHandler, RoleHandler roleHandler) {
- this.virtualIPHandler = virtualIPHandler;
- this.roleInstanceHandler = roleInstanceHandler;
- this.roleHandler = roleHandler;
- }
-
- @Override
- public Deployment getResult() { // Fields don't need to be reset as this isn't used in a loop.
- return Deployment.create(name, slot, status, label, //
- instanceStateDetails, instanceErrorCode, virtualIPs, roleInstanceList, roleList, virtualNetworkName);
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("VirtualIPs")) {
- inListVirtualIPs = true;
- } else if (qName.equals("RoleInstanceList")) {
- inRoleInstanceList = true;
- } else if (qName.equals("RoleList")) {
- inRoleList = true;
- }
- if (inRoleInstanceList) {
- roleInstanceHandler.startElement(url, name, qName, attributes);
- }
- if (inRoleList) {
- roleHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("RoleInstanceList")) {
- inRoleInstanceList = false;
- } else if (qName.equals("RoleInstance")) {
- roleInstanceList.add(roleInstanceHandler.getResult());
- } else if (inRoleInstanceList) {
- roleInstanceHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("RoleList")) {
- inRoleList = false;
- } else if (qName.equals("Role")) {
- roleList.add(roleHandler.getResult());
- } else if (inRoleList) {
- roleHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("VirtualIPs")) {
- inListVirtualIPs = false;
- } else if (qName.equals("VirtualIP")) {
- virtualIPs.add(virtualIPHandler.getResult());
- } else if (inListVirtualIPs) {
- virtualIPHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("Name") && name == null) {
- name = currentOrNull(currentText);
- } else if (qName.equals("DeploymentSlot")) {
- String slotText = currentOrNull(currentText);
- slot = Slot.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, slotText));
- } else if (qName.equals("Status")) {
- String statusText = currentOrNull(currentText);
- if (status == null && statusText != null) {
- status = Status.fromString(statusText);
- }
- } else if (qName.equals("Label")) {
- String labelText = currentOrNull(currentText);
- if (labelText != null) {
- label = new String(base64().decode(labelText), UTF_8);
- }
- } else if (qName.equals("InstanceStateDetails")) {
- instanceStateDetails = currentOrNull(currentText);
- } else if (qName.equals("InstanceErrorCode")) {
- instanceErrorCode = currentOrNull(currentText);
- } else if (qName.equals("VirtualNetworkName")) {
- virtualNetworkName = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inListVirtualIPs) {
- virtualIPHandler.characters(ch, start, length);
- } else if (inRoleInstanceList) {
- roleInstanceHandler.characters(ch, start, length);
- } else if (inRoleList) {
- roleHandler.characters(ch, start, length);
- } else if (!inListVirtualIPs && !inRoleInstanceList && !inRoleList) {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
deleted file mode 100644
index 0800d51..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/DiskHandler.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-final class DiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Disk> {
-
- private String name;
-
- private String location;
-
- private String affinityGroup;
-
- private String description;
-
- private OSImage.Type os;
-
- private URI mediaLink;
-
- private Integer logicalSizeInGB;
-
- private Attachment attachedTo;
-
- private String sourceImage;
-
- private boolean inAttachment;
-
- private final AttachmentHandler attachmentHandler = new AttachmentHandler();
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Disk getResult() {
- Disk result = Disk.create(name, location, affinityGroup, description, os, mediaLink, logicalSizeInGB, attachedTo,
- sourceImage);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = location = affinityGroup = description = sourceImage = null;
- os = null;
- mediaLink = null;
- logicalSizeInGB = null;
- attachedTo = null;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equals("AttachedTo")) {
- inAttachment = true;
- }
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("AttachedTo")) {
- attachedTo = attachmentHandler.getResult();
- inAttachment = false;
- } else if (inAttachment) {
- attachmentHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("OS")) {
- String osText = currentOrNull(currentText);
- if (osText != null) {
- os = OSImage.Type.valueOf(osText.toUpperCase());
- }
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("LogicalDiskSizeInGB")) {
- String gb = currentOrNull(currentText);
- if (gb != null) {
- logicalSizeInGB = Integer.parseInt(gb);
- }
- } else if (qName.equals("Description")) {
- description = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("AffinityGroup")) {
- affinityGroup = currentOrNull(currentText);
- } else if (qName.equals("MediaLink")) {
- String link = currentOrNull(currentText);
- if (link != null) {
- mediaLink = URI.create(link);
- }
- } else if (qName.equals("SourceImageName")) {
- sourceImage = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inAttachment) {
- attachmentHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
deleted file mode 100644
index 8ab50dd..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ErrorHandler.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Error;
-import org.jclouds.azurecompute.domain.Error.Code;
-import org.jclouds.http.functions.ParseSax;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460801" >api</a>
- */
-public final class ErrorHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Error> {
-
- private Code code;
-
- private String message;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public Error getResult() {
- return Error.create(code, message);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Code")) {
- String codeText = currentOrNull(currentText);
- code = Code.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, codeText));
- } else if (qName.equals("Message")) {
- message = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ExtendedPropertiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ExtendedPropertiesHandler.java
deleted file mode 100644
index be675b8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ExtendedPropertiesHandler.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.collect.Lists;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class ExtendedPropertiesHandler extends DefaultHandler {
-
- private final List<String> extendedProperties = Lists.newArrayList();
-
- private final StringBuilder currentText = new StringBuilder();
-
- public Map<String, String> getResult() {
- final Map<String, String> result = new HashMap<String, String>();
- for (int i = 0; i < extendedProperties.size(); i += 2) {
- result.put(extendedProperties.get(i), extendedProperties.get(i + 1));
- }
- extendedProperties.clear();
- return result;
- }
-
- @Override
- public void endElement(final String uri, final String localName, final String qName) {
- if ("Name".equals(qName) || "Value".equals(qName)) {
- extendedProperties.add(currentOrNull(currentText));
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InputEndpointHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InputEndpointHandler.java
deleted file mode 100644
index ad5a13f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InputEndpointHandler.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint.LoadBalancerProbe;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class InputEndpointHandler extends ParseSax.HandlerForGeneratedRequestWithResult<InputEndpoint> {
-
- private Integer localPort;
-
- private String name;
-
- private Integer port;
-
- private String protocol;
-
- private Boolean enableDirectServerReturn;
-
- private String vip;
-
- private String loadBalancerName;
-
- private LoadBalancerProbe loadBalancerProbe;
-
- private Integer idleTimeoutInMinutes;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- }
-
- @Override
- public InputEndpoint getResult() {
- InputEndpoint result = InputEndpoint.create(name, protocol, localPort, port, vip,
- enableDirectServerReturn, loadBalancerName, loadBalancerProbe, idleTimeoutInMinutes);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = vip = protocol = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Vip")) {
- vip = currentOrNull(currentText);
- } else if (qName.equals("LocalPort")) {
- String localPortText = currentOrNull(currentText);
- if (localPortText != null) {
- localPort = Integer.parseInt(localPortText);
- }
- } else if (qName.equals("Port")) {
- String portText = currentOrNull(currentText);
- if (portText != null) {
- port = Integer.parseInt(portText);
- }
- } else if (qName.equals("Protocol")) {
- protocol = currentOrNull(currentText);
- } else if (qName.equals("EnableDirectServerReturn")) {
- String enableDirectServerReturnText = currentOrNull(currentText);
- if (enableDirectServerReturnText != null) {
- enableDirectServerReturn = Boolean.parseBoolean(enableDirectServerReturnText);
- }
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InstanceEndpointHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InstanceEndpointHandler.java
deleted file mode 100644
index 2d254d4..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/InstanceEndpointHandler.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Deployment.InstanceEndpoint;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class InstanceEndpointHandler extends ParseSax.HandlerForGeneratedRequestWithResult<InstanceEndpoint> {
-
- private String name;
-
- private String vip;
-
- private Integer publicPort;
-
- private Integer localPort;
-
- private String protocol;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- }
-
- @Override
- public InstanceEndpoint getResult() {
- InstanceEndpoint result = InstanceEndpoint.create(name, vip, publicPort, localPort, protocol);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = vip = protocol = null;
- publicPort = localPort = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Vip")) {
- vip = currentOrNull(currentText);
- } else if (qName.equals("PublicPort")) {
- String publicPortText = currentOrNull(currentText);
- if (publicPortText != null) {
- publicPort = Integer.parseInt(publicPortText);
- }
- } else if (qName.equals("LocalPort")) {
- String localPortText = currentOrNull(currentText);
- if (localPortText != null) {
- localPort = Integer.parseInt(localPortText);
- }
- } else if (qName.equals("Protocol")) {
- protocol = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandler.java
deleted file mode 100644
index 98d3d63..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.xml.sax.SAXException;
-
-public final class ListAffinityGroupsHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<List<AffinityGroup>> {
-
- private final Builder<AffinityGroup> affinityGroups = ImmutableList.builder();
-
- private final AffinityGroupHandler affinityGroupHandler;
-
- private boolean inAffinityGroup;
-
- @Inject
- ListAffinityGroupsHandler(AffinityGroupHandler affinityGroupHandler) {
- this.affinityGroupHandler = affinityGroupHandler;
- }
-
- @Override
- public List<AffinityGroup> getResult() {
- return affinityGroups.build();
- }
-
- @Override
- public void startElement(final String url, final String name, final String qName, final Attributes attributes)
- throws SAXException {
-
- if ("AffinityGroup".equals(qName)) {
- inAffinityGroup = true;
- } else if (inAffinityGroup) {
- affinityGroupHandler.startElement(url, qName, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if ("AffinityGroup".equals(qName)) {
- inAffinityGroup = false;
- affinityGroups.add(affinityGroupHandler.getResult());
- } else if (inAffinityGroup) {
- affinityGroupHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inAffinityGroup) {
- affinityGroupHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListCloudServicesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListCloudServicesHandler.java
deleted file mode 100644
index 98eae83..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListCloudServicesHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460781">Response body description</a>
- */
-public final class ListCloudServicesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<CloudService>> {
-
- private boolean inHostedService;
-
- private final CloudServiceHandler cloudServiceHandler;
-
- private final Builder<CloudService> hostedServices = ImmutableList.builder();
-
- @Inject
- ListCloudServicesHandler(CloudServiceHandler cloudServiceHandler) {
- this.cloudServiceHandler = cloudServiceHandler;
- }
-
- @Override
- public List<CloudService> getResult() {
- return hostedServices.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("HostedService")) {
- inHostedService = true;
- }
- if (inHostedService) {
- cloudServiceHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("HostedService")) {
- inHostedService = false;
- hostedServices.add(cloudServiceHandler.getResult());
- } else if (inHostedService) {
- cloudServiceHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inHostedService) {
- cloudServiceHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandler.java
deleted file mode 100644
index a37bc41..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import java.util.List;
-
-public final class ListDataVirtualHardDisksHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<List<DataVirtualHardDisk>> {
-
- private boolean inDataVHD;
-
- private final DataVirtualHardDiskHandler dataVirtualHardDiskHandler;
-
- private final Builder<DataVirtualHardDisk> VHDs = ImmutableList.builder();
-
- @Inject
- ListDataVirtualHardDisksHandler(DataVirtualHardDiskHandler dataVirtualHardDiskHandler) {
- this.dataVirtualHardDiskHandler = dataVirtualHardDiskHandler;
- }
-
- @Override
- public List<DataVirtualHardDisk> getResult() {
- return VHDs.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("DataVirtualHardDisk")) {
- inDataVHD = true;
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("DataVirtualHardDisk")) {
- inDataVHD = false;
- VHDs.add(dataVirtualHardDiskHandler.getResult());
- } else if (inDataVHD) {
- dataVirtualHardDiskHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inDataVHD) {
- dataVirtualHardDiskHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDisksHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDisksHandler.java
deleted file mode 100644
index 4014647..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListDisksHandler.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-
-public final class ListDisksHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<Disk>> {
-
- private boolean inDisk;
-
- private final DiskHandler diskHandler;
-
- private final Builder<Disk> disks = ImmutableList.builder();
-
- @Inject
- ListDisksHandler(DiskHandler diskHandler) {
- this.diskHandler = diskHandler;
- }
-
- @Override
- public List<Disk> getResult() {
- return disks.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("Disk")) {
- inDisk = true;
- }
- if (inDisk) {
- diskHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("Disk")) {
- inDisk = false;
- disks.add(diskHandler.getResult());
- } else if (inDisk) {
- diskHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inDisk) {
- diskHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListLocationsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListLocationsHandler.java
deleted file mode 100644
index 926be98..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListLocationsHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-
-public final class ListLocationsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<Location>> {
-
- private boolean inLocation;
-
- private final LocationHandler locationHandler;
-
- private final Builder<Location> locations = ImmutableList.builder();
-
- @Inject
- ListLocationsHandler(LocationHandler locationHandler) {
- this.locationHandler = locationHandler;
- }
-
- @Override
- public List<Location> getResult() {
- return locations.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("Location")) {
- inLocation = true;
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("Location")) {
- inLocation = false;
- locations.add(locationHandler.getResult());
- } else if (inLocation) {
- locationHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inLocation) {
- locationHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandler.java
deleted file mode 100644
index ad47e77..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public class ListNetworkSecurityGroupsHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<NetworkSecurityGroup>> {
-
- private boolean inNetworkSecurityGroup;
-
- private final NetworkSecurityGroupHandler networkSecurityGroupHandler;
-
- private final ImmutableList.Builder<NetworkSecurityGroup> networkSecurityGroups = ImmutableList.builder();
-
- @Inject
- ListNetworkSecurityGroupsHandler(NetworkSecurityGroupHandler networkSecurityGroupHandler) {
- this.networkSecurityGroupHandler = networkSecurityGroupHandler;
- }
-
- @Override
- public List<NetworkSecurityGroup> getResult() {
- return networkSecurityGroups.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("NetworkSecurityGroup")) {
- inNetworkSecurityGroup = true;
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("NetworkSecurityGroup")) {
- inNetworkSecurityGroup = false;
- networkSecurityGroups.add(networkSecurityGroupHandler.getResult());
- } else if (inNetworkSecurityGroup) {
- networkSecurityGroupHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inNetworkSecurityGroup) {
- networkSecurityGroupHandler.characters(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListOSImagesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListOSImagesHandler.java
deleted file mode 100644
index 29e7df4..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListOSImagesHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-
-public final class ListOSImagesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<OSImage>> {
-
- private boolean inOSImage;
-
- private final OSImageHandler osImageHandler;
-
- private final Builder<OSImage> images = ImmutableList.builder();
-
- @Inject
- ListOSImagesHandler(OSImageHandler osImageHandler) {
- this.osImageHandler = osImageHandler;
- }
-
- @Override
- public List<OSImage> getResult() {
- return images.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("OSImage")) {
- inOSImage = true;
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("OSImage")) {
- inOSImage = false;
- images.add(osImageHandler.getResult());
- } else if (inOSImage) {
- osImageHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inOSImage) {
- osImageHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandler.java
deleted file mode 100644
index 733b002..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758252.aspx">Response body description</a>
- */
-public final class ListProfileDefinitionsHandler extends
- ParseSax.HandlerForGeneratedRequestWithResult<List<ProfileDefinition>> {
-
- private boolean inDefinition;
-
- private final ProfileDefinitionHandler profileDefinitionHandler;
-
- private final Builder<ProfileDefinition> definitions = ImmutableList.builder();
-
- @Inject
- ListProfileDefinitionsHandler(ProfileDefinitionHandler profileDefinitionHandler) {
- this.profileDefinitionHandler = profileDefinitionHandler;
- }
-
- @Override
- public List<ProfileDefinition> getResult() {
- return definitions.build();
- }
-
- @Override
- public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
- if (qName.equals("Definition")) {
- inDefinition = true;
- }
-
- if (inDefinition) {
- profileDefinitionHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if (qName.equals("Definition")) {
- inDefinition = false;
- definitions.add(profileDefinitionHandler.getResult());
- } else if (inDefinition) {
- profileDefinitionHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inDefinition) {
- profileDefinitionHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfilesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfilesHandler.java
deleted file mode 100644
index 2602afc..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListProfilesHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.Profile;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758249.aspx">Response body description</a>
- */
-public final class ListProfilesHandler extends
- ParseSax.HandlerForGeneratedRequestWithResult<List<Profile>> {
-
- private boolean inProfile;
-
- private final ProfileHandler profileHandler;
-
- private final Builder<Profile> profiles = ImmutableList.builder();
-
- @Inject
- ListProfilesHandler(ProfileHandler profileHandler) {
- this.profileHandler = profileHandler;
- }
-
- @Override
- public List<Profile> getResult() {
- return profiles.build();
- }
-
- @Override
- public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
- if (qName.equals("Profile")) {
- inProfile = true;
- }
-
- if (inProfile) {
- profileHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if (qName.equals("Profile")) {
- inProfile = false;
- profiles.add(profileHandler.getResult());
- } else if (inProfile) {
- profileHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inProfile) {
- profileHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandler.java
deleted file mode 100644
index b576662..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722418.aspx">Response body description</a>
- */
-public final class ListReservedIPAddressHandler extends
- ParseSax.HandlerForGeneratedRequestWithResult<List<ReservedIPAddress>> {
-
- private boolean inReservedIP;
-
- private final ReservedIPAddressHandler reservedIPAddressHandler;
-
- private final Builder<ReservedIPAddress> ips = ImmutableList.builder();
-
- @Inject
- ListReservedIPAddressHandler(ReservedIPAddressHandler reservedIPAddressHandler) {
- this.reservedIPAddressHandler = reservedIPAddressHandler;
- }
-
- @Override
- public List<ReservedIPAddress> getResult() {
- return ips.build();
- }
-
- @Override
- public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
- if (qName.equals("ReservedIP")) {
- inReservedIP = true;
- }
- if (inReservedIP) {
- reservedIPAddressHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if (qName.equals("ReservedIP")) {
- inReservedIP = false;
- ips.add(reservedIPAddressHandler.getResult());
- } else if (inReservedIP) {
- reservedIPAddressHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inReservedIP) {
- reservedIPAddressHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListRoleSizesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListRoleSizesHandler.java
deleted file mode 100644
index 94b7d75..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListRoleSizesHandler.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public final class ListRoleSizesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<RoleSize>> {
-
- private boolean inRoleSize;
-
- private final RoleSizeHandler roleSizeHandler;
-
- private final ImmutableList.Builder<RoleSize> roleSizes = ImmutableList.builder();
-
- @Inject
- ListRoleSizesHandler(RoleSizeHandler roleSizeHandler) {
- this.roleSizeHandler = roleSizeHandler;
- }
-
- @Override
- public List<RoleSize> getResult() {
- return roleSizes.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("RoleSize")) {
- inRoleSize = true;
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("RoleSize")) {
- inRoleSize = false;
- roleSizes.add(roleSizeHandler.getResult());
- } else if (inRoleSize) {
- roleSizeHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inRoleSize) {
- roleSizeHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListServiceCertificatesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListServiceCertificatesHandler.java
deleted file mode 100644
index 5310f01..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListServiceCertificatesHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/ee460788.aspx">Response body description</a>
- */
-public final class ListServiceCertificatesHandler extends
- ParseSax.HandlerForGeneratedRequestWithResult<List<ServiceCertificate>> {
-
- private boolean inCertificate;
-
- private final ServiceCertificateHandler serviceCertificateHandler;
-
- private final Builder<ServiceCertificate> certificates = ImmutableList.builder();
-
- @Inject
- ListServiceCertificatesHandler(ServiceCertificateHandler serviceCertificateHandler) {
- this.serviceCertificateHandler = serviceCertificateHandler;
- }
-
- @Override
- public List<ServiceCertificate> getResult() {
- return certificates.build();
- }
-
- @Override
- public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
- if (qName.equals("Certificate")) {
- inCertificate = true;
- }
- if (inCertificate) {
- serviceCertificateHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if (qName.equals("Certificate")) {
- inCertificate = false;
- certificates.add(serviceCertificateHandler.getResult());
- } else if (inCertificate) {
- serviceCertificateHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inCertificate) {
- serviceCertificateHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListStorageServicesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListStorageServicesHandler.java
deleted file mode 100644
index 284131f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListStorageServicesHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public class ListStorageServicesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<StorageService>> {
-
- private boolean inStorageService;
-
- private final StorageServiceHandler storageServiceHandler;
-
- private final ImmutableList.Builder<StorageService> storageAccounts = ImmutableList.builder();
-
- @Inject
- ListStorageServicesHandler(final StorageServiceHandler storageServiceHandler) {
- this.storageServiceHandler = storageServiceHandler;
- }
-
- @Override
- public List<StorageService> getResult() {
- return storageAccounts.build();
- }
-
- @Override
- public void startElement(final String url, final String name, final String qName, final Attributes attributes) {
- if ("StorageService".equals(qName)) {
- inStorageService = true;
- }
- if (inStorageService) {
- storageServiceHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if ("StorageService".equals(qName)) {
- inStorageService = false;
- storageAccounts.add(storageServiceHandler.getResult());
- } else if (inStorageService) {
- storageServiceHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inStorageService) {
- storageServiceHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVMImagesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVMImagesHandler.java
deleted file mode 100644
index 7818abc..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVMImagesHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-import java.util.List;
-
-public final class ListVMImagesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<VMImage>> {
- private boolean inVMImage;
- private final VMImageHandler vmImageHandler;
- private final Builder<VMImage> images = ImmutableList.builder();
-
- @Inject ListVMImagesHandler(VMImageHandler vmImageHandler) {
- this.vmImageHandler = vmImageHandler;
- }
-
- @Override
- public List<VMImage> getResult() {
- return images.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) throws SAXException {
- if (qName.equals("VMImage")) {
- inVMImage = true;
- }
- if (inVMImage) {
- vmImageHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("VMImage")) {
- inVMImage = false;
- images.add(vmImageHandler.getResult());
- }
- if (inVMImage) {
- vmImageHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inVMImage) {
- vmImageHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandler.java
deleted file mode 100644
index cd8aed5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Inject;
-
-public class ListVirtualNetworkSitesHandler extends ParseSax.HandlerForGeneratedRequestWithResult<List<VirtualNetworkSite>> {
-
- private boolean inVirtualNetworkSite;
-
- private final VirtualNetworkSiteHandler virtualNetworkSiteHandler;
-
- private final ImmutableList.Builder<VirtualNetworkSite> virtualNetworkSites = ImmutableList.builder();
-
- @Inject
- ListVirtualNetworkSitesHandler(VirtualNetworkSiteHandler virtualNetworkSiteHandler) {
- this.virtualNetworkSiteHandler = virtualNetworkSiteHandler;
- }
-
- @Override
- public List<VirtualNetworkSite> getResult() {
- return virtualNetworkSites.build();
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("VirtualNetworkSite")) {
- inVirtualNetworkSite = true;
- }
- if (inVirtualNetworkSite) {
- virtualNetworkSiteHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("VirtualNetworkSite")) {
- inVirtualNetworkSite = false;
- virtualNetworkSites.add(virtualNetworkSiteHandler.getResult());
- } else if (inVirtualNetworkSite) {
- virtualNetworkSiteHandler.endElement(uri, name, qName);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inVirtualNetworkSite) {
- virtualNetworkSiteHandler.characters(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/LocationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/LocationHandler.java
deleted file mode 100644
index 2b226c5..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/LocationHandler.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.http.functions.ParseSax;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >api</a>
- */
-final class LocationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Location> {
-
- private String name;
-
- private String displayName;
-
- private final List<String> availableServices = Lists.newArrayList();
-
- private ComputeCapabilities computeCapabilities;
-
- private boolean inComputeCapabilities = false;
-
- private final ComputeCapabilitiesHandler computeCapabilitiesHandler;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Inject
- LocationHandler(final ComputeCapabilitiesHandler computeCapabilitiesHandler) {
- this.computeCapabilitiesHandler = computeCapabilitiesHandler;
- }
-
- @Override
- public Location getResult() {
- Location result = Location.create(
- name, displayName, ImmutableList.copyOf(availableServices), computeCapabilities);
-
- // handler is called in a loop.
- name = displayName = null;
- availableServices.clear();
- computeCapabilities = null;
-
- return result;
- }
-
- @Override
- public void startElement(final String uri, final String localName, final String qName, final Attributes attributes)
- throws SAXException {
-
- if ("ComputeCapabilities".equals(qName)) {
- inComputeCapabilities = true;
- } else if (inComputeCapabilities) {
- computeCapabilitiesHandler.startElement(uri, localName, qName, attributes);
- }
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("DisplayName")) {
- displayName = currentOrNull(currentText);
- } else if (qName.equals("AvailableService")) {
- availableServices.add(currentOrNull(currentText));
- } else if ("ComputeCapabilities".equals(qName)) {
- inComputeCapabilities = false;
- computeCapabilities = computeCapabilitiesHandler.getResult();
- } else if (inComputeCapabilities) {
- computeCapabilitiesHandler.endElement(ignoredUri, ignoredName, qName);
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inComputeCapabilities) {
- computeCapabilitiesHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandler.java
deleted file mode 100644
index 1679d6a..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandler.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.inject.Inject;
-
-public class NetworkConfigurationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<NetworkConfiguration> {
-
- private VirtualNetworkConfiguration virtualNetworkConfiguration;
-
- private boolean inVirtualNetworkConfiguration;
-
- private final VirtualNetworkConfigurationHandler virtualNetworkConfigurationHandler;
-
- @Inject
- NetworkConfigurationHandler(VirtualNetworkConfigurationHandler virtualNetworkConfigurationHandler) {
- this.virtualNetworkConfigurationHandler = virtualNetworkConfigurationHandler;
- }
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("VirtualNetworkConfiguration")) {
- inVirtualNetworkConfiguration = true;
- }
- if (inVirtualNetworkConfiguration) {
- virtualNetworkConfigurationHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public NetworkConfiguration getResult() {
- return NetworkConfiguration.create(virtualNetworkConfiguration);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("VirtualNetworkConfiguration")) {
- virtualNetworkConfiguration = virtualNetworkConfigurationHandler.getResult();
- } else if (inVirtualNetworkConfiguration) {
- virtualNetworkConfigurationHandler.endElement(ignoredUri, ignoredName, qName);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inVirtualNetworkConfiguration) {
- virtualNetworkConfigurationHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandler.java
deleted file mode 100644
index 876cfe8..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandler.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class NetworkSecurityGroupHandler extends ParseSax.HandlerForGeneratedRequestWithResult<NetworkSecurityGroup> {
-
- private String name;
-
- private String label;
-
- private String location;
-
- private NetworkSecurityGroup.State state;
-
- private List<Rule> rules = Lists.newArrayList();
-
- private boolean inRule;
-
- private final RuleHandler ruleHandler = new RuleHandler();
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equals("Rule")) {
- inRule = true;
- }
- }
-
- @Override
- public NetworkSecurityGroup getResult() {
- NetworkSecurityGroup result = NetworkSecurityGroup.create(name, label, location, state, rules);
- name = label = location = null; // handler is called in a loop.
- this.state = null;
- rules = Lists.newArrayList();
- return result;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Rule")) {
- inRule = false;
- rules.add(ruleHandler.getResult());
- } else if (inRule) {
- ruleHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("State")) {
- state = NetworkSecurityGroup.State.fromString(currentOrNull(currentText));
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inRule) {
- ruleHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSConfigHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSConfigHandler.java
deleted file mode 100644
index 2d4998b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSConfigHandler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.http.functions.ParseSax;
-
-import java.net.URI;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/jj157193.aspx#DataVirtualHardDisks" >api</a>
- */
-final class OSConfigHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VMImage.OSDiskConfiguration> {
-
- private VMImage.OSDiskConfiguration.Caching hostCaching;
- private String name;
- private VMImage.OSDiskConfiguration.OSState osState;
- private OSImage.Type os;
- private Integer logicalDiskSizeInGB;
- private URI mediaLink;
- private String ioType;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public VMImage.OSDiskConfiguration getResult() {
- return VMImage.OSDiskConfiguration
- .create(name, hostCaching, osState, os, mediaLink, logicalDiskSizeInGB, ioType);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
-
- if (qName.equals("HostCaching")) {
- String hostCachingText = currentOrNull(currentText);
- if (hostCachingText != null) {
- hostCaching = parseHostCache(hostCachingText);
- }
- } else if (qName.equals("OSState")) {
- String osStateText = currentOrNull(currentText);
- if (osStateText != null) {
- osState = VMImage.OSDiskConfiguration.OSState.valueOf(osStateText.toUpperCase());
- }
- } else if (qName.equals("OS")) {
- String osText = currentOrNull(currentText);
- if (osText != null) {
- os = OSImage.Type.valueOf(osText.toUpperCase());
- }
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("LogicalDiskSizeInGB")) {
- String gb = currentOrNull(currentText);
- if (gb != null) {
- logicalDiskSizeInGB = Integer.parseInt(gb);
- }
- } else if (qName.equals("MediaLink")) {
- String link = currentOrNull(currentText);
- if (link != null) {
- mediaLink = URI.create(link);
- }
- } else if (qName.equals("IOType")) {
- ioType = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- private static VMImage.OSDiskConfiguration.Caching parseHostCache(String hostCaching) {
- try {
- return VMImage.OSDiskConfiguration.Caching.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, hostCaching));
- } catch (IllegalArgumentException e) {
- return VMImage.OSDiskConfiguration.Caching.NONE;
- }
- }
-
- private static VMImage.OSDiskConfiguration.OSState parseOSState(String osState) {
- try {
- return VMImage.OSDiskConfiguration.OSState.valueOf(UPPER_CAMEL.to(UPPER_UNDERSCORE, osState));
- } catch (IllegalArgumentException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSImageHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSImageHandler.java
deleted file mode 100644
index 0932c08..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSImageHandler.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.Strings.emptyToNull;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.ParseSax;
-
-import com.google.common.base.Splitter;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157191" >api</a>
- */
-final class OSImageHandler extends ParseSax.HandlerForGeneratedRequestWithResult<OSImage> {
-
- private String name;
-
- private String location;
-
- private String affinityGroup;
-
- private String label;
-
- private String category;
-
- private String description;
-
- private String imageFamily;
-
- private OSImage.Type os;
-
- private URI mediaLink;
-
- private Integer logicalSizeInGB;
-
- private final List<String> eulas = Lists.newArrayList();
-
- private Date publishedDate;
-
- private String iconUri;
-
- private String smallIconUri;
-
- private URI privacyUri;
-
- private URI pricingDetailLink;
-
- private String recommendedVMSize;
-
- private Boolean isPremium;
-
- private Boolean showInGui;
-
- private String publisherName;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public OSImage getResult() {
- OSImage result = OSImage.create(name, location, affinityGroup, label, description, imageFamily, category, os,
- publisherName, mediaLink, logicalSizeInGB, ImmutableList.copyOf(eulas));
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = affinityGroup = label = description = category = imageFamily = iconUri = smallIconUri = recommendedVMSize
- = publisherName = null;
- os = null;
- publisherName = null;
- mediaLink = null;
- logicalSizeInGB = null;
- publishedDate = null;
- privacyUri = pricingDetailLink = null;
- isPremium = null;
- showInGui = null;
- eulas.clear();
- location = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("OS")) {
- String osText = currentOrNull(currentText);
- if (osText != null) {
- os = OSImage.Type.valueOf(currentOrNull(currentText).toUpperCase());
- }
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("LogicalSizeInGB")) {
- String gb = currentOrNull(currentText);
- if (gb != null) {
- logicalSizeInGB = Integer.parseInt(gb);
- }
- } else if (qName.equals("Description")) {
- description = currentOrNull(currentText);
- } else if (qName.equals("Category")) {
- category = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("AffinityGroup")) {
- affinityGroup = currentOrNull(currentText);
- } else if (qName.equals("PublisherName")) {
- publisherName = currentOrNull(currentText);
- } else if (qName.equals("MediaLink")) {
- String link = currentOrNull(currentText);
- if (link != null) {
- mediaLink = URI.create(link);
- }
- } else if (qName.equals("Eula")) {
- String eulaField = currentOrNull(currentText);
- if (eulaField != null) {
- for (String eula : Splitter.on(';').split(eulaField)) {
- if ((eula = emptyToNull(eula.trim())) != null) { // Dirty data in RightScale eulas field.
- eulas.add(eula);
- }
- }
- }
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
- } else if (qName.equals("ImageFamily")) {
- imageFamily = currentOrNull(currentText);
- } else if (qName.equals("PublishedDate")) {
- String date = currentOrNull(currentText);
- if (date != null) {
- publishedDate = new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse(date);
- }
- } else if (qName.equals("IconUri")) {
- iconUri = currentOrNull(currentText);
- } else if (qName.equals("SmallIconUri")) {
- smallIconUri = currentOrNull(currentText);
- } else if (qName.equals("PrivacyUri")) {
- String uri = currentOrNull(currentText);
- if (uri != null) {
- privacyUri = URI.create(uri);
- }
- } else if (qName.equals("RecommendedVMSize")) {
- recommendedVMSize = currentOrNull(currentText);
- } else if (qName.equals("IsPremium")) {
- String premium = currentOrNull(currentText);
- if (premium != null) {
- isPremium = Boolean.valueOf(premium);
- }
- } else if (qName.equals("ShowInGui")) {
- String show = currentOrNull(currentText);
- if (show != null) {
- showInGui = Boolean.valueOf(show);
- }
- } else if (qName.equals("PublisherName")) {
- publisherName = currentOrNull(currentText);
- } else if (qName.equals("PricingDetailLink")) {
- String uri = currentOrNull(currentText);
- if (uri != null) {
- pricingDetailLink = URI.create(uri);
- }
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSVirtualHardDiskHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSVirtualHardDiskHandler.java
deleted file mode 100644
index 265e786..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OSVirtualHardDiskHandler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.functions.ParseSax;
-
-public class OSVirtualHardDiskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Role.OSVirtualHardDisk> {
-
- private String hostCaching;
-
- private String diskName;
-
- private URI mediaLink;
-
- private String sourceImageName;
-
- private OSImage.Type os;
-
- private Integer lun;
-
- private Integer logicalDiskSizeInGB;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Role.OSVirtualHardDisk getResult() {
- return Role.OSVirtualHardDisk.create(hostCaching, diskName, lun, logicalDiskSizeInGB, mediaLink, sourceImageName, os);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("HostCaching")) {
- hostCaching = currentOrNull(currentText);
- } else if (qName.equals("DiskName")) {
- diskName = currentOrNull(currentText);
- } else if (qName.equals("MediaLink")) {
- String link = currentOrNull(currentText);
- if (link != null) {
- mediaLink = URI.create(link);
- }
- } else if (qName.equals("SourceImageName")) {
- sourceImageName = currentOrNull(currentText);
- } else if (qName.equals("OS")) {
- String osText = currentOrNull(currentText);
- if (osText != null) {
- os = OSImage.Type.valueOf(currentOrNull(currentText).toUpperCase());
- }
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
deleted file mode 100644
index 321316d..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/OperationHandler.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.CaseFormat.UPPER_CAMEL;
-import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Error;
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.azurecompute.domain.Operation.Status;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460783" >api</a>
- */
-public final class OperationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Operation> {
-
- private String id;
-
- private Status status;
-
- private Integer httpStatusCode;
-
- private Error error;
-
- private boolean inError;
-
- private final ErrorHandler errorHandler = new ErrorHandler();
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Operation getResult() {
- return Operation.create(id, status, httpStatusCode, error);
- }
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("Error")) {
- inError = true;
- }
- }
-
- @Override
- public void endElement(String uri, String name, String qName) {
- if (qName.equals("Error")) {
- error = errorHandler.getResult();
- inError = false;
- } else if (inError) {
- errorHandler.endElement(uri, name, qName);
- } else if (qName.equals("ID")) {
- id = currentOrNull(currentText);
- } else if (qName.equals("Status")) {
- String statusText = currentOrNull(currentText);
- status = Status.fromString(UPPER_CAMEL.to(UPPER_UNDERSCORE, statusText));
- } else if (qName.equals("HttpStatusCode")) {
- httpStatusCode = Integer.parseInt(currentOrNull(currentText));
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inError) {
- errorHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionEndpointHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionEndpointHandler.java
deleted file mode 100644
index 8266a17..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionEndpointHandler.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinition.HealthStatus;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-
-import org.jclouds.http.functions.ParseSax;
-
-import org.xml.sax.Attributes;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ProfileDefinitionEndpointHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<ProfileDefinitionEndpoint> {
-
- private String domain;
-
- private Status status;
-
- private HealthStatus healthStatus;
-
- private ProfileDefinitionEndpoint.Type type;
-
- private String location;
-
- private Integer weight;
-
- private Integer min;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public ProfileDefinitionEndpoint getResult() {
- final ProfileDefinitionEndpoint result = ProfileDefinitionEndpoint.create(
- domain, status, healthStatus, type, location, weight, min);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- domain = location = null;
- min = null;
- status = null;
- type = null;
- }
-
- @Override
- public void startElement(
- final String ignoredUri,
- final String ignoredLocalName,
- final String qName,
- final Attributes ignoredAttributes) {
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if (qName.equals("DomainName")) {
- domain = currentOrNull(currentText);
- } else if (qName.equals("Status")) {
- final String value = currentText.toString().trim();
- status = value.isEmpty()
- ? null
- : Status.fromString(value);
- } else if (qName.equals("MonitorStatus")) {
- final String value = currentText.toString().trim();
- healthStatus = value.isEmpty()
- ? null
- : ProfileDefinition.HealthStatus.fromString(value);
- } else if (qName.equals("Type")) {
- final String value = currentText.toString().trim();
- type = value.isEmpty()
- ? ProfileDefinitionEndpoint.Type.CLOUDSERVICE
- : ProfileDefinitionEndpoint.Type.fromString(value);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("Weight")) {
- final String value = currentText.toString().trim();
- weight = value.isEmpty() ? 1 : Integer.parseInt(value);
- } else if (qName.equals("MinChildEndpoints")) {
- final String value = currentText.toString().trim();
- min = value.isEmpty() ? 1 : Integer.parseInt(value);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandler.java
deleted file mode 100644
index 98a8804..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandler.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import javax.inject.Inject;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ProfileDefinitionHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ProfileDefinition> {
-
- private Integer ttl;
-
- private ProfileDefinition.Status status;
-
- private String version;
-
- private Builder<ProfileDefinitionMonitor> monitors = ImmutableList.<ProfileDefinitionMonitor>builder();
-
- private ProfileDefinition.LBMethod lb;
-
- private Builder<ProfileDefinitionEndpoint> endpoints = ImmutableList.<ProfileDefinitionEndpoint>builder();
-
- private ProfileDefinition.HealthStatus healthStatus;
-
- private final StringBuilder currentText = new StringBuilder();
-
- private final ProfileDefinitionMonitorHandler monitorHandler;
-
- private final ProfileDefinitionEndpointHandler endpointHandler;
-
- private boolean inMonitor = false;
- private boolean inEndpoint = false;
-
- @Inject
- public ProfileDefinitionHandler(
- ProfileDefinitionMonitorHandler monitorHandler, ProfileDefinitionEndpointHandler endpointHandler) {
- this.monitorHandler = monitorHandler;
- this.endpointHandler = endpointHandler;
- }
-
- @Override
- public ProfileDefinition getResult() {
- final ProfileDefinition result = ProfileDefinition.create(
- ttl, status, version, monitors.build(), lb, endpoints.build(), healthStatus);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- ttl = null;
- status = null;
- version = null;
- monitors = ImmutableList.<ProfileDefinitionMonitor>builder();
- lb = null;
- endpoints = ImmutableList.<ProfileDefinitionEndpoint>builder();
- inMonitor = false;
- inEndpoint = false;
- }
-
- @Override
- public void startElement(
- final String url,
- final String name,
- final String qName,
- final Attributes attributes) {
-
- if (!inEndpoint && qName.equals("Monitor")) {
- inMonitor = true;
- }
-
- if (!inMonitor && qName.equals("Endpoint")) {
- inEndpoint = true;
- }
-
- if (inMonitor) {
- monitorHandler.startElement(url, name, qName, attributes);
- } else if (inEndpoint) {
- endpointHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public void endElement(final String uri, final String name, final String qName) {
- if (!inEndpoint && qName.equals("Monitor")) {
- inMonitor = false;
- monitors.add(monitorHandler.getResult());
- } else if (!inMonitor && qName.equals("Endpoint")) {
- inEndpoint = false;
- endpoints.add(endpointHandler.getResult());
- } else if (inMonitor) {
- monitorHandler.endElement(uri, name, qName);
- } else if (inEndpoint) {
- endpointHandler.endElement(uri, name, qName);
- } else {
- if (qName.equals("TimeToLiveInSeconds")) {
- ttl = Integer.parseInt(currentOrNull(currentText));
- } else if (qName.equals("Status")) {
- status = ProfileDefinition.Status.fromString(currentOrNull(currentText));
- } else if (qName.equals("Version")) {
- version = currentOrNull(currentText);
- } else if (qName.equals("LoadBalancingMethod")) {
- lb = ProfileDefinition.LBMethod.fromString(currentOrNull(currentText));
- } else if (qName.equals("MonitorStatus")) {
- final String value = currentText.toString().trim();
- healthStatus = value.isEmpty()
- ? null
- : ProfileDefinition.HealthStatus.fromString(value);
- }
- currentText.setLength(0);
- }
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inMonitor) {
- monitorHandler.characters(ch, start, length);
- } else if (inEndpoint) {
- endpointHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionMonitorHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionMonitorHandler.java
deleted file mode 100644
index 2a19158..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileDefinitionMonitorHandler.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ProfileDefinitionMonitorHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<ProfileDefinitionMonitor> {
-
- private Integer intervall;
-
- private Integer timeout;
-
- private Integer toleration;
-
- private ProfileDefinition.Protocol protocol;
-
- private Integer port;
-
- private String verb;
-
- private String path;
-
- private Integer expected;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public ProfileDefinitionMonitor getResult() {
- final ProfileDefinitionMonitor result = ProfileDefinitionMonitor.create(
- intervall, timeout, toleration, protocol, port, verb, path, expected);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- intervall = timeout = toleration = port = expected = null;
- protocol = null;
- verb = path = null;
- }
-
- @Override
- public void startElement(
- final String ignoredUri,
- final String ignoredLocalName,
- final String qName,
- final Attributes ignoredAttributes) {
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if (qName.equals("IntervalInSeconds")) {
- final String value = currentText.toString().trim();
- intervall = value.isEmpty()
- ? ProfileDefinitionMonitor.DEFAULT_INTERVAL
- : Integer.parseInt(value);
- } else if (qName.equals("TimeoutInSeconds")) {
- final String value = currentText.toString().trim();
- timeout = value.isEmpty()
- ? ProfileDefinitionMonitor.DEFAULT_TIMEOUT
- : Integer.parseInt(value);
- } else if (qName.equals("ToleratedNumberOfFailures")) {
- final String value = currentText.toString().trim();
- toleration = value.isEmpty()
- ? ProfileDefinitionMonitor.DEFAULT_TOLERAION
- : Integer.parseInt(value);
- } else if (qName.equals("Protocol")) {
- protocol = ProfileDefinition.Protocol.fromString(currentOrNull(currentText));
- } else if (qName.equals("Port")) {
- port = Integer.parseInt(currentOrNull(currentText));
- } else if (qName.equals("Verb")) {
- final String value = currentText.toString().trim();
- verb = value.isEmpty()
- ? ProfileDefinitionMonitor.DEFAULT_VERB
- : value;
- } else if (qName.equals("RelativePath")) {
- path = currentOrNull(currentText);
- } else if (qName.equals("ExpectedStatusCode")) {
- final String value = currentText.toString().trim();
- expected = value.isEmpty()
- ? ProfileDefinitionMonitor.DEFAULT_EXPECTED
- : Integer.parseInt(value);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileHandler.java
deleted file mode 100644
index 8df6a85..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ProfileHandler.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableMap;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/hh758251.aspx" >Response body description</a>
- */
-public final class ProfileHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Profile> {
-
- private String domain;
-
- private String name;
-
- private ProfileDefinition.Status status;
-
- private String version;
-
- private ImmutableMap.Builder<String, ProfileDefinition.Status> definitions
- = ImmutableMap.<String, ProfileDefinition.Status>builder();
-
- private final StringBuilder currentText = new StringBuilder();
-
- private boolean inDefinition = false;
-
- private String definitionVersion = null;
- private ProfileDefinition.Status definitionStatus = null;
-
- @Override
- public Profile getResult() {
- final Profile result = Profile.create(domain, name, status, version, definitions.build());
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- domain = name = version = null;
- status = null;
- definitions = ImmutableMap.<String, ProfileDefinition.Status>builder();
- inDefinition = false;
- }
-
- @Override
- public void startElement(
- final String url,
- final String name,
- final String qName,
- final Attributes attributes) {
-
- if (qName.equals("Definition")) {
- inDefinition = true;
- }
- }
-
- @Override
- public void endElement(final String ignoredURI, final String ignoredName, final String qName) {
- if (qName.equals("Definition")) {
- inDefinition = false;
- definitions.put(definitionVersion, definitionStatus);
- } else if (inDefinition) {
- if (qName.equals("Status")) {
- final String value = currentText.toString().trim();
- definitionStatus = value.isEmpty()
- ? null
- : ProfileDefinition.Status.fromString(value);
- } else if (qName.equals("Version")) {
- definitionVersion = currentOrNull(currentText);
- }
- } else {
- if (qName.equals("DomainName")) {
- domain = currentOrNull(currentText);
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Status")) {
- final String value = currentText.toString().trim();
- status = value.isEmpty()
- ? null
- : ProfileDefinition.Status.fromString(value);
- } else if (qName.equals("EnabledVersion")) {
- version = currentOrNull(currentText);
- }
- }
- currentText.setLength(0);
-
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandler.java
deleted file mode 100644
index c3838e0..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandler.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.azurecompute.domain.ReservedIPAddress.State;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn722412.aspx" >Response body description</a>
- */
-public final class ReservedIPAddressHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ReservedIPAddress> {
-
- private String name;
-
- private String address;
-
- private String id;
-
- private String label;
-
- private State state;
-
- private Boolean inUse;
-
- private String serviceName;
-
- private String deploymentName;
-
- private String location;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public ReservedIPAddress getResult() {
- final ReservedIPAddress result = ReservedIPAddress.create(
- name, address, id, label, state, inUse, serviceName, deploymentName, location);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = address = id = label = serviceName = deploymentName = location = null;
- state = null;
- inUse = null;
- }
-
- @Override
- public void startElement(
- final String ignoredUri,
- final String ignoredLocalName,
- final String qName,
- final Attributes ignoredAttributes) {
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Address")) {
- address = currentOrNull(currentText);
- } else if (qName.equals("Id")) {
- id = currentOrNull(currentText);
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
- } else if (qName.equals("State")) {
- state = State.fromString(currentOrNull(currentText));
- } else if (qName.equals("InUse")) {
- final String use = currentOrNull(currentText);
- inUse = use == null ? null : Boolean.valueOf(use);
- } else if (qName.equals("ServiceName")) {
- serviceName = currentOrNull(currentText);
- } else if (qName.equals("DeploymentName")) {
- deploymentName = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionParameterValueHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionParameterValueHandler.java
deleted file mode 100644
index a858195..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionParameterValueHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference.ResourceExtensionParameterValue;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public final class ResourceExtensionParameterValueHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ResourceExtensionParameterValue> {
-
- private String key;
-
- private String value;
-
- private String type;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- }
-
- @Override
- public ResourceExtensionParameterValue getResult() {
- ResourceExtensionParameterValue result = ResourceExtensionParameterValue.create(key, value, type);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- key = value = type = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Key")) {
- key = currentOrNull(currentText);
- } else if (qName.equals("Value")) {
- value = currentOrNull(currentText);
- } else if (qName.equals("Type")) {
- type = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionReferenceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionReferenceHandler.java
deleted file mode 100644
index 9a0a4ef..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResourceExtensionReferenceHandler.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference;
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference.ResourceExtensionParameterValue;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public class ResourceExtensionReferenceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ResourceExtensionReference> {
-
- private String referenceName;
-
- private String publisher;
-
- private String name;
-
- private String version;
-
- private List<ResourceExtensionParameterValue> resourceExtensionParameterValues = Lists.newArrayList();
-
- private String state;
-
- private final ResourceExtensionParameterValueHandler resourceExtensionParameterValueHandler;
-
- private boolean inResourceExtensionParameterValue = false;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Inject
- ResourceExtensionReferenceHandler(ResourceExtensionParameterValueHandler resourceExtensionParameterValueHandler) {
- this.resourceExtensionParameterValueHandler = resourceExtensionParameterValueHandler;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equals("ResourceExtensionParameterValue")) {
- inResourceExtensionParameterValue = true;
- }
- if (inResourceExtensionParameterValue) {
- resourceExtensionParameterValueHandler.startElement(uri, localName, qName, attributes);
- }
- }
-
- @Override
- public ResourceExtensionReference getResult() {
- ResourceExtensionReference result = ResourceExtensionReference.create(referenceName, publisher, name, version,
- resourceExtensionParameterValues, state);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- referenceName = publisher = version = name = state = null;
- resourceExtensionParameterValues = Lists.newArrayList();
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("ResourceExtensionParameterValue")) {
- inResourceExtensionParameterValue = false;
- resourceExtensionParameterValues.add(resourceExtensionParameterValueHandler.getResult());
- } else if (inResourceExtensionParameterValue) {
- resourceExtensionParameterValueHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("ReferenceName")) {
- referenceName = currentOrNull(currentText);
- } else if (qName.equals("Publisher")) {
- publisher = currentOrNull(currentText);
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Version")) {
- version = currentOrNull(currentText);
- } else if (qName.equals("State")) {
- state = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inResourceExtensionParameterValue) {
- resourceExtensionParameterValueHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResultHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResultHandler.java
deleted file mode 100644
index 4b78499..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ResultHandler.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-/**
- * @see for example <a href="https://msdn.microsoft.com/en-us/library/azure/dn510368.aspx">Check DNS Prefix
- * Availability</a>
- */
-public final class ResultHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Boolean> {
-
- private boolean result = false;
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Boolean getResult() {
- final boolean res = result;
- resetState(); // handler is called in a loop.
- return res;
- }
-
- private void resetState() {
- result = false;
- }
-
- @Override
- public void startElement(
- final String url,
- final String name,
- final String qName,
- final Attributes attributes) {
- }
-
- @Override
- public void endElement(final String ignoredURI, final String ignoredName, final String qName) {
- if (qName.equals("Result")) {
- final String value = currentText.toString().trim();
- result = value.isEmpty() ? false : Boolean.parseBoolean(value);
- }
- currentText.setLength(0);
-
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
deleted file mode 100644
index 3dd1481..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleHandler.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ResourceExtensionReference;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public class RoleHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Role> {
-
- private String roleName;
-
- private String roleType;
-
- private String vmImage;
-
- private String mediaLocation;
-
- private List<ConfigurationSet> configurationSets = Lists.newArrayList();
-
- private List<ResourceExtensionReference> resourceExtensionReferences = Lists.newArrayList();
-
- private String availabilitySetName;
-
- private List<DataVirtualHardDisk> dataVirtualHardDisks = Lists.newArrayList();
-
- private Role.OSVirtualHardDisk osVirtualHardDisk;
-
- private RoleSize.Type roleSize;
-
- private Boolean provisionGuestAgent;
-
- private String defaultWinRmCertificateThumbprint;
-
- private boolean inConfigurationSets;
-
- private boolean inOSVirtualHardDisk;
-
- private boolean inDataVirtualHardDisks;
-
- private boolean inResourceExtensionReference;
-
- private final ConfigurationSetHandler configurationSetHandler;
-
- private final OSVirtualHardDiskHandler osVirtualDiskHandler;
-
- private final DataVirtualHardDiskHandler dataVirtualHardDiskHandler;
-
- private final ResourceExtensionReferenceHandler resourceExtensionReferenceHandler;
-
- @Inject
- RoleHandler(ConfigurationSetHandler configurationSetHandler, OSVirtualHardDiskHandler osVirtualDiskHandler,
- DataVirtualHardDiskHandler dataVirtualHardDiskHandler, ResourceExtensionReferenceHandler resourceExtensionReferenceHandler) {
- this.configurationSetHandler = configurationSetHandler;
- this.osVirtualDiskHandler = osVirtualDiskHandler;
- this.dataVirtualHardDiskHandler = dataVirtualHardDiskHandler;
- this.resourceExtensionReferenceHandler = resourceExtensionReferenceHandler;
- }
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equals("ConfigurationSets")) {
- inConfigurationSets = true;
- }
- if (inConfigurationSets) {
- configurationSetHandler.startElement(uri, localName, qName, attributes);
- }
- if (qName.equals("OSVirtualHardDisk")) {
- inOSVirtualHardDisk = true;
- }
- if (qName.equals("DataVirtualHardDisks")) {
- inDataVirtualHardDisks = true;
- }
- if (inDataVirtualHardDisks) {
- dataVirtualHardDiskHandler.startElement(uri, localName, qName, attributes);
- }
- if (qName.equals("ResourceExtensionReference")) {
- inResourceExtensionReference = true;
- }
- if (inResourceExtensionReference) {
- resourceExtensionReferenceHandler.startElement(uri, localName, qName, attributes);
- }
-
- }
-
- private void resetState() {
- roleName = roleType = vmImage = mediaLocation = availabilitySetName = defaultWinRmCertificateThumbprint = null;
- configurationSets = null;
- osVirtualHardDisk = null;
- configurationSets = Lists.newArrayList();
- resourceExtensionReferences = Lists.newArrayList();
- dataVirtualHardDisks = Lists.newArrayList();
- roleSize = null;
- provisionGuestAgent = null;
- }
-
- @Override
- public Role getResult() {
- Role result = Role.create(roleName, roleType, vmImage, mediaLocation, configurationSets,
- resourceExtensionReferences, availabilitySetName, dataVirtualHardDisks, osVirtualHardDisk, roleSize,
- provisionGuestAgent, defaultWinRmCertificateThumbprint);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("DataVirtualHardDisks")) {
- inDataVirtualHardDisks = false;
- } else if (qName.equals("ConfigurationSet")) {
- inConfigurationSets = false;
- configurationSets.add(configurationSetHandler.getResult());
- } else if (inConfigurationSets) {
- configurationSetHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("DataVirtualHardDisks")) {
- inDataVirtualHardDisks = false;
- dataVirtualHardDisks.add(dataVirtualHardDiskHandler.getResult());
- } else if (inDataVirtualHardDisks) {
- dataVirtualHardDiskHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("RoleName")) {
- roleName = currentOrNull(currentText);
- } else if (qName.equals("VMImage")) {
- vmImage = currentOrNull(currentText);
- } else if (qName.equals("MediaLocation")) {
- mediaLocation = currentOrNull(currentText);
- } else if (qName.equals("AvailabilitySetName")) {
- availabilitySetName = currentOrNull(currentText);
- } else if (qName.equals("DefaultWinRmCertificateThumbprint")) {
- defaultWinRmCertificateThumbprint = currentOrNull(currentText);
- } else if (qName.equals("RoleType")) {
- roleType = currentOrNull(currentText);
- } else if (qName.equals("OSVirtualHardDisk")) {
- inOSVirtualHardDisk = false;
- osVirtualHardDisk = osVirtualDiskHandler.getResult();
- } else if (inOSVirtualHardDisk) {
- osVirtualDiskHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("RoleSize")) {
- roleSize = RoleSize.Type.fromString(currentOrNull(currentText).toUpperCase());
- } else if (qName.equals("ProvisionGuestAgent")) {
- String provisionGuestAgentString = currentOrNull(currentText);
- if (provisionGuestAgentString != null) {
- provisionGuestAgent = Boolean.valueOf(provisionGuestAgentString);
- }
- } else if (qName.equals("ResourceExtensionReferences")) {
- inResourceExtensionReference = false;
- } else if (qName.equals("ResourceExtensionReference")) {
- resourceExtensionReferences.add(resourceExtensionReferenceHandler.getResult());
- } else if (inResourceExtensionReference) {
- resourceExtensionReferenceHandler.endElement(ignoredUri, ignoredName, qName);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inConfigurationSets) {
- configurationSetHandler.characters(ch, start, length);
- } else if (inOSVirtualHardDisk) {
- osVirtualDiskHandler.characters(ch, start, length);
- } else if (inResourceExtensionReference) {
- resourceExtensionReferenceHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
deleted file mode 100644
index 524b644..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleInstanceHandler.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Deployment.InstanceEndpoint;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
-import org.jclouds.azurecompute.domain.Deployment.PowerState;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class RoleInstanceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<RoleInstance> {
-
- private String roleName;
-
- private String instanceName;
-
- private InstanceStatus instanceStatus;
-
- private PowerState powerState;
-
- private int instanceUpgradeDomain;
-
- private int instanceFaultDomain;
-
- private RoleSize.Type instanceSize;
-
- private String ipAddress;
-
- private String hostname;
-
- private boolean inInstanceEndpoints;
-
- private final InstanceEndpointHandler instanceEndpointHandler = new InstanceEndpointHandler();
-
- private List<InstanceEndpoint> instanceEndpoints = Lists.newArrayList();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equals("InstanceEndpoints")) {
- inInstanceEndpoints = true;
- }
- if (inInstanceEndpoints) {
- instanceEndpointHandler.startElement(uri, localName, qName, attributes);
- }
- }
-
- private void resetState() {
- roleName = instanceName = ipAddress = hostname = null;
- instanceStatus = null;
- powerState = null;
- instanceUpgradeDomain = instanceFaultDomain = -1;
- instanceSize = null;
- instanceEndpoints = Lists.newArrayList();
- }
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public RoleInstance getResult() {
- RoleInstance result = RoleInstance.create(roleName, instanceName, instanceStatus, powerState,
- instanceUpgradeDomain, instanceFaultDomain, instanceSize, ipAddress, hostname, instanceEndpoints);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("InstanceEndpoints")) {
- inInstanceEndpoints = false;
- } else if (qName.equals("InstanceEndpoint")) {
- instanceEndpoints.add(instanceEndpointHandler.getResult());
- } else if (inInstanceEndpoints) {
- instanceEndpointHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("RoleName")) {
- roleName = currentOrNull(currentText);
- } else if (qName.equals("InstanceName")) {
- instanceName = currentOrNull(currentText);
- } else if (qName.equals("InstanceStatus")) {
- instanceStatus = InstanceStatus.fromString(currentOrNull(currentText));
- } else if (qName.equals("PowerState")) {
- powerState = PowerState.fromString(currentOrNull(currentText));
- } else if (qName.equals("InstanceUpgradeDomain")) {
- String upgradeDomain = currentOrNull(currentText);
- if (upgradeDomain != null) {
- instanceUpgradeDomain = Integer.parseInt(upgradeDomain);
- }
- } else if (qName.equals("InstanceFaultDomain")) {
- String faultDomain = currentOrNull(currentText);
- if (faultDomain != null) {
- instanceFaultDomain = Integer.parseInt(faultDomain);
- }
- } else if (qName.equals("InstanceSize")) {
- String size = currentOrNull(currentText);
- if (size != null) {
- instanceSize = RoleSize.Type.fromString(size);
- }
- } else if (qName.equals("IpAddress")) {
- ipAddress = currentOrNull(currentText);
- } else if (qName.equals("HostName")) {
- hostname = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inInstanceEndpoints) {
- instanceEndpointHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
deleted file mode 100644
index f343d7f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RoleSizeHandler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/dn469422.aspx" >api</a>
- */
-final class RoleSizeHandler extends ParseSax.HandlerForGeneratedRequestWithResult<RoleSize> {
-
- private RoleSize.Type name;
-
- private String label;
-
- private Integer cores;
-
- private Integer memoryInMb;
-
- private Boolean supportedByWebWorkerRoles;
-
- private Boolean supportedByVirtualMachines;
-
- private Integer maxDataDiskCount;
-
- private Integer webWorkerResourceDiskSizeInMb;
-
- private Integer virtualMachineResourceDiskSizeInMb;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public RoleSize getResult() {
- return RoleSize.create(name, label, cores, memoryInMb, supportedByWebWorkerRoles,
- supportedByVirtualMachines, maxDataDiskCount, webWorkerResourceDiskSizeInMb, virtualMachineResourceDiskSizeInMb);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name")) {
- String type = currentOrNull(currentText);
- name = RoleSize.Type.fromString(currentOrNull(currentText).toUpperCase());
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
-
- } else if (qName.equals("Cores")) {
- String coresString = currentOrNull(currentText);
- if (coresString != null) {
- cores = Integer.parseInt(coresString);
- }
- } else if (qName.equals("MemoryInMb")) {
- String memoryInMbString = currentOrNull(currentText);
- if (memoryInMbString != null) {
- memoryInMb = Integer.parseInt(memoryInMbString);
- }
- } else if (qName.equals("SupportedByWebWorkerRoles")) {
- String supportedByWebWorkerRolesString = currentOrNull(currentText);
- if (supportedByWebWorkerRolesString != null) {
- supportedByWebWorkerRoles = Boolean.valueOf(supportedByWebWorkerRolesString);
- }
- } else if (qName.equals("SupportedByVirtualMachines")) {
- String supportedByVirtualMachinesString = currentOrNull(currentText);
- if (supportedByVirtualMachinesString != null) {
- supportedByVirtualMachines = Boolean.valueOf(supportedByVirtualMachinesString);
- }
- } else if (qName.equals("MaxDataDiskCount")) {
- String maxDataDiskCountString = currentOrNull(currentText);
- if (maxDataDiskCountString != null) {
- maxDataDiskCount = Integer.parseInt(maxDataDiskCountString);
- }
- } else if (qName.equals("WebWorkerResourceDiskSizeInMb")) {
- String webWorkerResourceDiskSizeInMbString = currentOrNull(currentText);
- if (webWorkerResourceDiskSizeInMbString != null) {
- webWorkerResourceDiskSizeInMb = Integer.parseInt(webWorkerResourceDiskSizeInMbString);
- }
- } else if (qName.equals("VirtualMachineResourceDiskSizeInMb")) {
- String virtualMachineResourceDiskSizeInMbString = currentOrNull(currentText);
- if (virtualMachineResourceDiskSizeInMbString != null) {
- virtualMachineResourceDiskSizeInMb = Integer.parseInt(virtualMachineResourceDiskSizeInMbString);
- }
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RuleHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RuleHandler.java
deleted file mode 100644
index 6c9229b..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/RuleHandler.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.functions.ParseSax;
-
-final class RuleHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Rule> {
-
- private String name;
-
- private Rule.Type type;
-
- private String priority;
-
- private Rule.Action action;
-
- private String sourceAddressPrefix;
-
- private String sourcePortRange;
-
- private String destinationAddressPrefix;
-
- private String destinationPortRange;
-
- private Rule.Protocol protocol;
-
- private String state;
-
- private Boolean isDefault;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public Rule getResult() {
- Rule result = Rule.create(name, type, priority, action, sourceAddressPrefix, sourcePortRange,
- destinationAddressPrefix, destinationPortRange, protocol, state, isDefault);
-
- name = priority = sourceAddressPrefix = sourcePortRange = destinationAddressPrefix
- = destinationPortRange = state = null; // handler is called in a loop.
- protocol = null;
- action = null;
- type = null;
- isDefault = false;
- return result;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Type")) {
- type = Rule.Type.fromString(currentOrNull(currentText));
- } else if (qName.equals("Priority")) {
- priority = currentOrNull(currentText);
- } else if (qName.equals("Action")) {
- action = Rule.Action.fromString(currentOrNull(currentText));
- } else if (qName.equals("SourceAddressPrefix")) {
- sourceAddressPrefix = currentOrNull(currentText);
- } else if (qName.equals("SourcePortRange")) {
- sourcePortRange = currentOrNull(currentText);
- } else if (qName.equals("DestinationAddressPrefix")) {
- destinationAddressPrefix = currentOrNull(currentText);
- } else if (qName.equals("DestinationPortRange")) {
- destinationPortRange = currentOrNull(currentText);
- } else if (qName.equals("Protocol")) {
- protocol = Rule.Protocol.fromString(currentOrNull(currentText));
- } else if (qName.equals("State")) {
- state = currentOrNull(currentText);
- } else if (qName.equals("IsDefault")) {
- String isDefaultString = currentOrNull(currentText);
- if (isDefaultString != null) {
- isDefault = Boolean.valueOf(isDefaultString);
- }
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ServiceCertificateHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ServiceCertificateHandler.java
deleted file mode 100644
index 475e837..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/ServiceCertificateHandler.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import java.net.URI;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >Response body description</a>
- */
-public final class ServiceCertificateHandler extends ParseSax.HandlerForGeneratedRequestWithResult<ServiceCertificate> {
-
- private URI url;
-
- private String thumbprint;
-
- private String thumbprintAlgorithm;
-
- private String data;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public ServiceCertificate getResult() {
- final ServiceCertificate result = ServiceCertificate.create(url, thumbprint, thumbprintAlgorithm, data);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- url = null;
- thumbprint = thumbprintAlgorithm = data = null;
- }
-
- @Override
- public void startElement(
- final String ignoredUri,
- final String ignoredLocalName,
- final String qName,
- final Attributes ignoredAttributes) {
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if (qName.equals("CertificateUrl")) {
- url = URI.create(currentOrNull(currentText));
- } else if (qName.equals("Thumbprint")) {
- thumbprint = currentOrNull(currentText);
- } else if (qName.equals("ThumbprintAlgorithm")) {
- thumbprintAlgorithm = currentOrNull(currentText);
- } else if (qName.equals("Data")) {
- data = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceHandler.java
deleted file mode 100644
index 133fefe..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceHandler.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.Maps;
-import com.google.inject.Inject;
-import org.jclouds.date.DateService;
-
-public class StorageServiceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<StorageService> {
-
- private URL url;
-
- private String serviceName;
-
- private StorageService.StorageServiceProperties storageServiceProperties;
-
- private boolean inStorageServiceProperties;
-
- private final StorageServicePropertiesHandler storageServicePropertiesHandler;
-
- private final Map<String, String> extendedProperties = Maps.newHashMap();
-
- private boolean inExtendedProperties;
-
- private final ExtendedPropertiesHandler extendedPropertiesHandler = new ExtendedPropertiesHandler();
-
- private String capability;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Inject
- StorageServiceHandler(final DateService dateService) {
- this.storageServicePropertiesHandler = new StorageServicePropertiesHandler(dateService);
- }
-
- @Override
- public StorageService getResult() {
- final StorageService result = StorageService.create(
- url, serviceName, storageServiceProperties, extendedProperties, capability);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- serviceName = null;
- url = null;
- storageServiceProperties = null;
- extendedProperties.clear();
- capability = null;
- }
-
- @Override
- public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {
- if ("StorageServiceProperties".equals(qName)) {
- inStorageServiceProperties = true;
- } else if (inStorageServiceProperties) {
- storageServicePropertiesHandler.startElement(uri, localName, qName, attributes);
- } else if ("ExtendedProperties".equals(qName)) {
- inExtendedProperties = true;
- }
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if ("StorageServiceProperties".equals(qName)) {
- inStorageServiceProperties = false;
- storageServiceProperties = storageServicePropertiesHandler.getResult();
- } else if (inStorageServiceProperties) {
- storageServicePropertiesHandler.endElement(ignoredUri, ignoredName, qName);
- } else if ("ExtendedProperties".equals(qName)) {
- inExtendedProperties = false;
- extendedProperties.putAll(extendedPropertiesHandler.getResult());
- } else if (inExtendedProperties) {
- extendedPropertiesHandler.endElement(ignoredUri, ignoredName, qName);
- } else if ("ServiceName".equals(qName)) {
- serviceName = currentOrNull(currentText);
- } else if ("Url".equals(qName)) {
- final String urlText = currentOrNull(currentText);
- if (urlText != null) {
- try {
- url = new URL(urlText);
- } catch (MalformedURLException e) {
- throw Throwables.propagate(e);
- }
- }
- } else if ("Capability".equals(qName)) {
- capability = currentOrNull(currentText);
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- if (inStorageServiceProperties) {
- storageServicePropertiesHandler.characters(ch, start, length);
- } else if (inExtendedProperties) {
- extendedPropertiesHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceKeysHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceKeysHandler.java
deleted file mode 100644
index ee528aa..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServiceKeysHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.base.Throwables;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.http.functions.ParseSax;
-
-public class StorageServiceKeysHandler extends ParseSax.HandlerForGeneratedRequestWithResult<StorageServiceKeys> {
-
- private URL url;
-
- private String primary;
-
- private String secondary;
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public StorageServiceKeys getResult() {
- final StorageServiceKeys result = StorageServiceKeys.create(url, primary, secondary);
- url = null;
- primary = null;
- secondary = null;
- return result;
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if ("Url".equals(qName)) {
- final String urlText = currentOrNull(currentText);
- if (urlText != null) {
- try {
- url = new URL(urlText);
- } catch (MalformedURLException e) {
- throw Throwables.propagate(e);
- }
- }
- } else if ("Primary".equals(qName)) {
- primary = currentOrNull(currentText);
- } else if ("Secondary".equals(qName)) {
- secondary = currentOrNull(currentText);
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServicePropertiesHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServicePropertiesHandler.java
deleted file mode 100644
index 41f6236..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/StorageServicePropertiesHandler.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.io.BaseEncoding.base64;
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageService.AccountType;
-import org.jclouds.azurecompute.domain.StorageService.RegionStatus;
-import org.jclouds.azurecompute.domain.StorageService.Status;
-import org.jclouds.date.DateService;
-import org.jclouds.http.functions.ParseSax;
-
-import org.xml.sax.Attributes;
-
-public class StorageServicePropertiesHandler
- extends ParseSax.HandlerForGeneratedRequestWithResult<StorageService.StorageServiceProperties> {
-
- private String description;
-
- private String affinityGroup;
-
- private String location;
-
- private String label;
-
- private StorageService.Status status;
-
- private final List<URL> endpoints = Lists.newArrayList();
-
- private boolean inEndpoints;
-
- private String geoPrimaryRegion;
-
- private StorageService.RegionStatus statusOfPrimary;
-
- private Date lastGeoFailoverTime;
-
- private String geoSecondaryRegion;
-
- private StorageService.RegionStatus statusOfSecondary;
-
- private Date creationTime;
-
- private final List<String> customDomains = Lists.newArrayList();
-
- private final List<URL> secondaryEndpoints = Lists.newArrayList();
-
- private boolean inSecondaryEndpoints;
-
- private AccountType accountType;
-
- private final DateService dateService;
-
- private final StringBuilder currentText = new StringBuilder();
-
- public StorageServicePropertiesHandler(final DateService dateService) {
- this.dateService = dateService;
- }
-
- @Override
- public StorageService.StorageServiceProperties getResult() {
- final StorageService.StorageServiceProperties result = StorageService.StorageServiceProperties.create(
- description, affinityGroup, location, label, status, endpoints,
- geoPrimaryRegion, statusOfPrimary, lastGeoFailoverTime, geoSecondaryRegion, statusOfSecondary,
- creationTime, customDomains, secondaryEndpoints, accountType);
-
- description = affinityGroup = location = label = null;
- status = null;
- endpoints.clear();
- geoPrimaryRegion = null;
- statusOfPrimary = null;
- lastGeoFailoverTime = null;
- geoSecondaryRegion = null;
- statusOfSecondary = null;
- creationTime = null;
- customDomains.clear();
- secondaryEndpoints.clear();
- accountType = null;
-
- return result;
- }
-
- @Override
- public void startElement(final String uri, final String localName, final String qName, final Attributes attributes) {
- if ("Endpoints".equals(qName)) {
- inEndpoints = true;
- } else if ("SecondaryEndpoints".equals(qName)) {
- inSecondaryEndpoints = true;
- }
- }
-
- @Override
- public void endElement(final String ignoredUri, final String ignoredName, final String qName) {
- if ("Description".equals(qName)) {
- description = currentOrNull(currentText);
- } else if ("AffinityGroup".equals(qName)) {
- affinityGroup = currentOrNull(currentText);
- } else if ("Location".equals(qName)) {
- location = currentOrNull(currentText);
- } else if ("Label".equals(qName)) {
- label = new String(base64().decode(currentOrNull(currentText)), UTF_8);
- } else if ("Status".equals(qName)) {
- status = Status.fromString(currentOrNull(currentText));
- } else if ("Endpoints".equals(qName)) {
- inEndpoints = false;
- } else if ("SecondaryEndpoints".equals(qName)) {
- inSecondaryEndpoints = false;
- } else if ("Endpoint".equals(qName)) {
- final String urlText = currentOrNull(currentText);
- try {
- if (inEndpoints) {
- endpoints.add(new URL(urlText));
- } else if (inSecondaryEndpoints) {
- secondaryEndpoints.add(new URL(urlText));
- }
- } catch (MalformedURLException e) {
- throw Throwables.propagate(e);
- }
- } else if ("GeoPrimaryRegion".equals(qName)) {
- geoPrimaryRegion = currentOrNull(currentText);
- } else if ("StatusOfPrimary".equals(qName)) {
- statusOfPrimary = RegionStatus.fromString(currentOrNull(currentText));
- } else if ("LastGeoFailoverTime".equals(qName)) {
- lastGeoFailoverTime = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- } else if ("GeoSecondaryRegion".equals(qName)) {
- geoSecondaryRegion = currentOrNull(currentText);
- } else if ("StatusOfSecondary".equals(qName)) {
- final String text = currentOrNull(currentText);
- if (text != null) {
- statusOfSecondary = RegionStatus.fromString(text);
- }
- } else if ("CreationTime".equals(qName)) {
- creationTime = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- } else if ("Name".equals(qName)) {
- final String text = currentOrNull(currentText);
- if (text != null) {
- customDomains.add(text);
- }
- } else if ("AccountType".equals(qName)) {
- accountType = AccountType.fromString(currentOrNull(currentText));
- }
-
- currentText.setLength(0);
- }
-
- @Override
- public void characters(final char[] ch, final int start, final int length) {
- currentText.append(ch, start, length);
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetHandler.java
deleted file mode 100644
index c60f610..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class SubnetHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Subnet> {
-
- private String name;
-
- private String addressPrefix;
-
- private String networkSecurityGroup;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equalsIgnoreCase("Subnet")) {
- name = attributes.getValue("name");
- }
- }
-
- @Override
- public Subnet getResult() {
- Subnet result = Subnet.create(name, addressPrefix, networkSecurityGroup);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = addressPrefix = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("AddressPrefix")) {
- addressPrefix = currentOrNull(currentText);
- } else if (qName.equals("NetworkSecurityGroup")) {
- networkSecurityGroup = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetNameHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetNameHandler.java
deleted file mode 100644
index 3853478..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/SubnetNameHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public class SubnetNameHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Role.ConfigurationSet.SubnetName> {
-
- private String name;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- }
-
- @Override
- public Role.ConfigurationSet.SubnetName getResult() {
- Role.ConfigurationSet.SubnetName result = Role.ConfigurationSet.SubnetName.create(name);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("SubnetName")) {
- name = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VMImageHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VMImageHandler.java
deleted file mode 100644
index 9812018..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VMImageHandler.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.List;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-/**
- * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn499770.aspx" >api</a>
- */
-final class VMImageHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VMImage> {
- private String name;
- private String label;
- private String category;
- private String description;
- private VMImage.OSDiskConfiguration osDiskConfiguration;
- private String serviceName;
- private String deploymentName;
- private String roleName;
- private String location;
- private String affinityGroup;
- private Date createdTime;
- private Date modifiedTime;
- private String language;
- private String imageFamily;
- private RoleSize.Type recommendedVMSize;
- private Boolean isPremium;
- private String eula;
- private URI iconUri;
- private URI smallIconUri;
- private URI privacyUri;
- private Date publishedDate;
-
- private final StringBuilder currentText = new StringBuilder();
-
- private final DataVirtualHardDiskHandler dataVirtualHardDiskHandler;
- private final OSConfigHandler osConfigHandler;
- private List<DataVirtualHardDisk> dataDiskConfigurations = Lists.newArrayList();
-
- private boolean inOSConfig;
- private boolean inDataConfig;
- private final DateService dateService = new SimpleDateFormatDateService();
-
- @Inject VMImageHandler(DataVirtualHardDiskHandler dataVirtualHardDiskHandler, OSConfigHandler osConfigHandler) {
- this.dataVirtualHardDiskHandler = dataVirtualHardDiskHandler;
- this.osConfigHandler = osConfigHandler;
- }
-
- @Override
- public VMImage getResult() {
- VMImage result = VMImage
- .create(name, label, category, description, osDiskConfiguration, dataDiskConfigurations,
- serviceName, deploymentName, roleName, location, affinityGroup, createdTime, modifiedTime, language,
- imageFamily, recommendedVMSize, isPremium, eula, iconUri, smallIconUri, privacyUri, publishedDate);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- @Override
- public void startElement(String ignoredUri, String ignoredLocalName, String qName,
- Attributes ignoredAttributes) throws SAXException {
-
- if (qName.equals("OSDiskConfiguration")) {
- inOSConfig = true;
- }
- if (inOSConfig) {
- osConfigHandler.endElement(ignoredUri, ignoredLocalName, qName);
- }
- if (qName.equals("DataDiskConfiguration")) {
- inDataConfig = true;
- }
- if (inDataConfig) {
- dataVirtualHardDiskHandler.startElement(ignoredUri, ignoredLocalName, qName, ignoredAttributes);
- }
- }
-
- private void resetState() {
- name = affinityGroup = label = description = category = null;
- serviceName = deploymentName = roleName = location = affinityGroup = null;
- createdTime = modifiedTime = null;
- language = imageFamily = eula = null;
- recommendedVMSize = null;
- isPremium = Boolean.FALSE;
- iconUri = smallIconUri = privacyUri = null;
- publishedDate = null;
- osDiskConfiguration = null;
- dataDiskConfigurations = Lists.newArrayList();
- }
-
- @Override public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Name") && !inDataConfig && !inOSConfig) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
- } else if (qName.equals("Category")) {
- category = currentOrNull(currentText);
- } else if (qName.equals("Description")) {
- description = currentOrNull(currentText);
- } else if (qName.equals("OSDiskConfiguration")) {
- osDiskConfiguration = osConfigHandler.getResult();
- inOSConfig = false;
- } else if (inOSConfig) {
- osConfigHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("DataDiskConfiguration") && !inOSConfig) {
- dataDiskConfigurations.add(dataVirtualHardDiskHandler.getResult());
- inDataConfig = false;
- } else if (inDataConfig) {
- dataVirtualHardDiskHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("ServiceName")) {
- serviceName = currentOrNull(currentText);
- } else if (qName.equals("DeploymentName")) {
- deploymentName = currentOrNull(currentText);
- } else if (qName.equals("RoleName")) {
- roleName = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- } else if (qName.equals("AffinityGroup")) {
- affinityGroup = currentOrNull(currentText);
- } else if (qName.equals("CreatedTime")) {
- createdTime = dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText));
- } else if (qName.equals("ModifiedTime")) {
- modifiedTime = dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText));
- } else if (qName.equals("Language")) {
- language = currentOrNull(currentText);
- } else if (qName.equals("ImageFamily")) {
- imageFamily = currentOrNull(currentText);
- } else if (qName.equals("Label")) {
- label = currentOrNull(currentText);
- } else if (qName.equals("RecommendedVMSize")) {
- String vmSizeText = currentOrNull(currentText);
- if (vmSizeText != null) {
- recommendedVMSize = parseRoleSize(vmSizeText);
- }
- } else if (qName.equals("IconUri")) {
- String uri = currentOrNull(currentText);
- if (uri != null) {
- iconUri = URI.create(uri);
- }
- } else if (qName.equals("SmallIconUri")) {
- String uri = currentOrNull(currentText);
- if (uri != null) {
- smallIconUri = URI.create(uri);
- }
- } else if (qName.equals("PrivacyUri")) {
- String uri = currentOrNull(currentText);
- if (uri != null) {
- privacyUri = URI.create(uri);
- }
- } else if (qName.equals("IsPremium")) {
- String isPremiumText = currentOrNull(currentText);
- if (isPremiumText != null) {
- isPremium = Boolean.parseBoolean(isPremiumText);
- }
- } else if (qName.equals("Eula")) {
- eula = currentOrNull(currentText);
- } else if (qName.equals("PublishedDate")) {
- publishedDate = dateService.iso8601SecondsDateParse(currentOrNull(currentText));
- }
- currentText.setLength(0);
- }
-
- @Override public void characters(char[] ch, int start, int length) {
- if (inDataConfig) {
- dataVirtualHardDiskHandler.characters(ch, start, length);
- } else if (inOSConfig) {
- osConfigHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-
- private static RoleSize.Type parseRoleSize(String roleSize) {
- try {
- return RoleSize.Type.valueOf(roleSize.toUpperCase().replace(" ", ""));
- } catch (IllegalArgumentException e) {
- return RoleSize.Type.UNRECOGNIZED;
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualIPHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualIPHandler.java
deleted file mode 100644
index 0ce1b52..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualIPHandler.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-
-import org.jclouds.azurecompute.domain.Deployment.VirtualIP;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-public final class VirtualIPHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VirtualIP> {
-
- private String address;
-
- private Boolean isDnsProgrammed;
-
- private String name;
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- }
-
- @Override
- public VirtualIP getResult() {
- VirtualIP result = VirtualIP.create(address, isDnsProgrammed, name);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- private void resetState() {
- name = address = null;
- isDnsProgrammed = null;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Address")) {
- address = currentOrNull(currentText);
- } else if (qName.equals("IsDnsProgrammed")) {
- String dnsProgrammed = currentOrNull(currentText);
- if (dnsProgrammed != null) {
- isDnsProgrammed = Boolean.valueOf(dnsProgrammed);
- }
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkConfigurationHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkConfigurationHandler.java
deleted file mode 100644
index 2f6d11f..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkConfigurationHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class VirtualNetworkConfigurationHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VirtualNetworkConfiguration> {
-
- private String dns;
-
- private List<NetworkConfiguration.VirtualNetworkSite> virtualNetworkSites = Lists.newArrayList();
-
- private boolean inVirtualNetworkSite;
-
- private final VirtualNetworkSiteHandler virtualNetworkSiteHandler = new VirtualNetworkSiteHandler();
-
- private final StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String url, String name, String qName, Attributes attributes) {
- if (qName.equals("VirtualNetworkSite")) {
- inVirtualNetworkSite = true;
- }
- if (inVirtualNetworkSite) {
- virtualNetworkSiteHandler.startElement(url, name, qName, attributes);
- }
- }
-
- @Override
- public VirtualNetworkConfiguration getResult() {
- return VirtualNetworkConfiguration.create(dns, virtualNetworkSites);
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("Dns")) {
- dns = currentOrNull(currentText);
- } else if (qName.equals("VirtualNetworkSites")) {
- inVirtualNetworkSite = false;
- } else if (qName.equals("VirtualNetworkSite")) {
- virtualNetworkSites.add(virtualNetworkSiteHandler.getResult());
- } else if (inVirtualNetworkSite) {
- virtualNetworkSiteHandler.endElement(ignoredUri, ignoredName, qName);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inVirtualNetworkSite) {
- virtualNetworkSiteHandler.characters(ch, start, length);
- } else {
- currentText.append(ch, start, length);
- }
- }
-}
diff --git a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkSiteHandler.java b/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkSiteHandler.java
deleted file mode 100644
index dd9c7ee..0000000
--- a/azurecompute/src/main/java/org/jclouds/azurecompute/xml/VirtualNetworkSiteHandler.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration.AddressSpace;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-
-import com.google.common.collect.Lists;
-
-public class VirtualNetworkSiteHandler extends ParseSax.HandlerForGeneratedRequestWithResult<VirtualNetworkSite> {
-
- private String id;
-
- private String name;
-
- private String location;
-
- private AddressSpace addressSpace;
-
- private List<Subnet> subnets = Lists.newArrayList();
-
- private boolean inSubnet;
-
- private boolean inAddressSpace;
-
- private final SubnetHandler subnetHandler = new SubnetHandler();
-
- private final AddressSpaceHandler addressSpaceHandler = new AddressSpaceHandler();
-
- private StringBuilder currentText = new StringBuilder();
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) {
- if (qName.equalsIgnoreCase("VirtualNetworkSite")) {
- name = attributes.getValue("name");
- location = attributes.getValue("Location");
- }
-
- if (qName.equals("AddressSpace")) {
- inAddressSpace = true;
- } else if (qName.equals("Subnet")) {
- inSubnet = true;
- }
- if (inAddressSpace) {
- addressSpaceHandler.startElement(uri, name, qName, attributes);
- }
- if (inSubnet) {
- subnetHandler.startElement(uri, name, qName, attributes);
- }
- }
-
- private void resetState() {
- id = name = location = null;
- subnets = Lists.newArrayList();
- addressSpace = null;
- }
-
- @Override
- public VirtualNetworkSite getResult() {
- VirtualNetworkSite result = VirtualNetworkSite.create(id, name, location, addressSpace, subnets);
- resetState(); // handler is called in a loop.
- return result;
- }
-
- @Override
- public void endElement(String ignoredUri, String ignoredName, String qName) {
- if (qName.equals("AddressSpace")) {
- inAddressSpace = false;
- addressSpace = addressSpaceHandler.getResult();
- } else if (inAddressSpace) {
- addressSpaceHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("Subnet")) {
- inSubnet = false;
- subnets.add(subnetHandler.getResult());
- } else if (inSubnet) {
- subnetHandler.endElement(ignoredUri, ignoredName, qName);
- } else if (qName.equals("Id")) {
- id = currentOrNull(currentText);
- } else if (qName.equals("Name")) {
- name = currentOrNull(currentText);
- } else if (qName.equals("Location")) {
- location = currentOrNull(currentText);
- }
- currentText.setLength(0);
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- if (inAddressSpace) {
- addressSpaceHandler.characters(ch, start, length);
- } else if (inSubnet) {
- subnetHandler.characters(ch, start, length);
- } else if (!inAddressSpace && !inSubnet) {
- currentText.append(ch, start, length);
- }
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureComputeProviderMetadataTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/AzureComputeProviderMetadataTest.java
deleted file mode 100644
index a7e7eb7..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureComputeProviderMetadataTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute;
-
-import org.jclouds.providers.internal.BaseProviderMetadataTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "AzureManagementProviderMetadataTest")
-public class AzureComputeProviderMetadataTest extends BaseProviderMetadataTest {
-
- public AzureComputeProviderMetadataTest() {
- super(new AzureComputeProviderMetadata(), new AzureManagementApiMetadata());
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureTestUtils.java b/azurecompute/src/test/java/org/jclouds/azurecompute/AzureTestUtils.java
deleted file mode 100644
index 029c6d2..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/AzureTestUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute;
-
-import com.google.common.base.Predicate;
-import java.util.ArrayList;
-import java.util.List;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.features.VirtualNetworkApi;
-
-public class AzureTestUtils {
-
- public static List<NetworkConfiguration.VirtualNetworkSite> getVirtualNetworkSite(AzureComputeApi api) {
- final VirtualNetworkApi vnapi = api.getVirtualNetworkApi();
- final NetworkConfiguration netConf = vnapi.getNetworkConfiguration();
-
- return netConf == null
- ? new ArrayList<NetworkConfiguration.VirtualNetworkSite>()
- : new ArrayList<NetworkConfiguration.VirtualNetworkSite>(netConf.virtualNetworkConfiguration().
- virtualNetworkSites());
-
- }
-
- public static class SameVirtualNetworkSiteNamePredicate
- implements Predicate<NetworkConfiguration.VirtualNetworkSite> {
-
- private final String virtualNetworkSiteName;
-
- public SameVirtualNetworkSiteNamePredicate(final String virtualNetworkSiteName) {
- this.virtualNetworkSiteName = virtualNetworkSiteName;
- }
-
- @Override
- public boolean apply(final NetworkConfiguration.VirtualNetworkSite input) {
- return input.name().equals(virtualNetworkSiteName);
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/binders/DeploymentParamsToXMLTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/binders/DeploymentParamsToXMLTest.java
deleted file mode 100644
index cc21a98..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/binders/DeploymentParamsToXMLTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.binders;
-
-import static org.testng.Assert.assertEquals;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.HttpRequest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-/**
- * Tests behavior of {@code DeploymentParamsToXML}
- */
-@Test(groups = "unit")
-public class DeploymentParamsToXMLTest {
- Injector injector = Guice.createInjector();
- DeploymentParamsToXML binder = injector
- .getInstance(DeploymentParamsToXML.class);
-
- public void testDeploymentParamsToXmlString() {
- DeploymentParams.Builder paramsBuilder = DeploymentParams.builder()
- .name("name")
- .os(OSImage.Type.LINUX)
- .username("loginUser")
- .password("loginPassword")
- .sourceImageName("sourceImageName")
- .mediaLink(URI.create("http://medialink"))
- .size(RoleSize.Type.BASIC_A0)
- .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
- .virtualNetworkName("virtualNetworkName")
- .reservedIPName("reservedIPName")
- .subnetNames(ImmutableList.of("subnetName"));
-
- HttpRequest request = HttpRequest.builder().method("POST").endpoint("http://localhost")
- .addFormParam("InstanceId", "i-foo").build();
- request = binder.bindToRequest(request, paramsBuilder.build());
- assertEquals(
- request.getPayload().getRawContent(),
- "<Deployment xmlns=\"http://schemas.microsoft.com/windowsazure\"><Name>name</Name><DeploymentSlot>Production</DeploymentSlot><Label>name</Label><RoleList><Role><RoleName>name</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType><HostName>name</HostName><UserName>loginUser</UserName><UserPassword>loginPassword</UserPassword><DisableSshPasswordAuthentication>false</DisableSshPasswordAuthentication><SSH><PublicKeys/><KeyPairs/></SSH></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><InputEndpoints><InputEndpoint><LocalPort>22</LocalPort><Name>tcp_22-22</Name><Port>22</Port><Protocol>tcp</Protocol></InputEndpoint></InputEndpoints><SubnetNames><SubnetName>subnetName</SubnetName></SubnetNames></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>http://medialink</MediaLink><SourceImageName>sourceImageName</SourceImageName><OS>Linux</OS></OSVirtualHardDisk><RoleSize>Basic_A0</RoleSize></Role></RoleList><VirtualNetworkName>virtualNetworkName</VirtualNetworkName><ReservedIPName>reservedIPName</ReservedIPName></Deployment>");
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceContextLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceContextLiveTest.java
deleted file mode 100644
index dbcfd38..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceContextLiveTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.compute.predicates.NodePredicates.inGroup;
-import static org.jclouds.compute.predicates.NodePredicates.runningInGroup;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-
-import org.jclouds.azurecompute.compute.options.AzureComputeTemplateOptions;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.compute.RunNodesException;
-import org.jclouds.compute.RunScriptOnNodesException;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.google.inject.Module;
-
-@Test(groups = "live", testName = "AzureComputeServiceContextLiveTest")
-public class AzureComputeServiceContextLiveTest extends BaseComputeServiceContextLiveTest {
-
- private static final int COUNT = 2;
-
- @Override
- protected Module getSshModule() {
- return new SshjSshClientModule();
- }
-
- public AzureComputeServiceContextLiveTest() {
- provider = "azurecompute";
- }
-
-
- @Test
- public void testWindowsNode() throws RunNodesException {
- final String groupName = String.format("win-%s", System.getProperty("user.name"));
-
- final TemplateBuilder templateBuilder = view.getComputeService().templateBuilder();
- //templateBuilder.imageId("3a50f22b388a4ff7ab41029918570fa6__Windows-Server-2012-Essentials-20141204-enus");
- templateBuilder.imageId("a699494373c04fc0bc8f2bb1389d6106__Nano_TP4_Azure_20151118_8GB.vhd");
- templateBuilder.hardwareId("BASIC_A2");
- templateBuilder.locationId(BaseAzureComputeApiLiveTest.LOCATION);
- final Template template = templateBuilder.build();
-
- // test passing custom options
- final AzureComputeTemplateOptions options = template.getOptions().as(AzureComputeTemplateOptions.class);
- options.inboundPorts(5985);
-
- try {
- Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(groupName, 1, template);
- assertThat(nodes).hasSize(1);
- } finally {
- view.getComputeService().destroyNodesMatching(inGroup(groupName));
- }
- }
-
- @Test
- public void testLaunchNodes() throws RunNodesException {
- final int rand = new Random().nextInt(999);
- final String groupName = String.format("%s%d-group-acsclt", System.getProperty("user.name"), rand);
-
- final TemplateBuilder templateBuilder = view.getComputeService().templateBuilder();
- templateBuilder.imageId(BaseAzureComputeApiLiveTest.IMAGE_NAME);
- templateBuilder.hardwareId("BASIC_A0");
- templateBuilder.locationId(BaseAzureComputeApiLiveTest.LOCATION);
- final Template template = templateBuilder.build();
-
- // test passing custom options
- final AzureComputeTemplateOptions options = template.getOptions().as(AzureComputeTemplateOptions.class);
- options.inboundPorts(22);
-
- try {
- Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(groupName, COUNT, template);
- assertThat(nodes).hasSize(COUNT);
-
- Map<? extends NodeMetadata, ExecResponse> responses = view.getComputeService().runScriptOnNodesMatching(runningInGroup(groupName), "echo hello");
- assertThat(responses).hasSize(COUNT);
-
- for (ExecResponse execResponse : responses.values()) {
- assertThat(execResponse.getOutput().trim()).isEqualTo("hello");
- }
- } catch (RunScriptOnNodesException e) {
- Assert.fail();
- } finally {
- view.getComputeService().destroyNodesMatching(inGroup(groupName));
- }
- }
-
- @Test(expectedExceptions = { IllegalStateException.class })
- public void testNotExistingStorageAccount() throws RunNodesException {
- final int rand = new Random().nextInt(999);
- final String groupName = String.format("%s%d-group-acsclt", System.getProperty("user.name"), rand);
-
- final String storageServiceName = "not3x1st1ng";
-
- final Template template = view.getComputeService().templateBuilder().build();
-
- // test passing custom options
- final AzureComputeTemplateOptions options = template.getOptions().as(AzureComputeTemplateOptions.class);
- options.storageAccountName(storageServiceName);
-
- Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(groupName, 1, template);
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceLiveTest.java
deleted file mode 100644
index 6eb0220..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureComputeServiceLiveTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.internal.BaseComputeServiceLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-@Test(groups = {"integration", "live"}, singleThreaded = true, testName = "AzureComputeServiceLiveTest", alwaysRun = false)
-public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest {
-
- public AzureComputeServiceLiveTest() {
- super();
- provider = "azurecompute";
- // this is 30 seconds by default, but Azure will take anyway longer because we need to wait for a non-null
- // Deployment object to be returned: see the end of AzureComputeServiceAdapter#createNodeWithGroupEncodedIntoName
- nonBlockDurationSeconds = 600;
- }
-
- @Override
- protected void checkUserMetadataContains(final NodeMetadata node, final ImmutableMap<String, String> userMetadata) {
- // Azure doe not support user metadata
- }
-
- @Override
- protected void checkTagsInNodeEquals(final NodeMetadata node, final ImmutableSet<String> tags) {
- // Azure does not support tags
- }
-
- @Override
- protected Module getSshModule() {
- return new SshjSshClientModule();
- }
-
- protected Template buildTemplate(TemplateBuilder templateBuilder) {
- return templateBuilder.imageId(BaseAzureComputeApiLiveTest.IMAGE_NAME)
- .hardwareId("BASIC_A1")
- .locationId(BaseAzureComputeApiLiveTest.LOCATION)
- .build();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureTemplateBuilderLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureTemplateBuilderLiveTest.java
deleted file mode 100644
index f900c34..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/AzureTemplateBuilderLiveTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute;
-
-import java.util.Set;
-import org.jclouds.azurecompute.AzureComputeProviderMetadata;
-import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest;
-import org.jclouds.providers.ProviderMetadata;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "AzureTemplateBuilderLiveTest")
-public class AzureTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
-
- private AzureComputeProviderMetadata providerMeta;
-
- public AzureTemplateBuilderLiveTest() {
- super();
-
- provider = "azurecompute";
- }
-
- @Override
- protected ProviderMetadata createProviderMetadata() {
- if (providerMeta == null) {
- providerMeta = new AzureComputeProviderMetadata();
- }
- return providerMeta;
- }
-
- @Override
- protected Set<String> getIso3166Codes() {
- return createProviderMetadata().getIso3166Codes();
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtensionLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtensionLiveTest.java
deleted file mode 100644
index 50a88c0..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/extensions/AzureComputeSecurityGroupExtensionLiveTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.extensions;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.inject.Module;
-
-import org.jclouds.compute.extensions.internal.BaseSecurityGroupExtensionLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.domain.SecurityGroup;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-
-/**
- * Live test for AzureCompute {@link org.jclouds.compute.extensions.SecurityGroupExtension} implementation.
- */
-@Test(groups = "live", singleThreaded = true, testName = "AzureComputeSecurityGroupExtensionLiveTest")
-public class AzureComputeSecurityGroupExtensionLiveTest extends BaseSecurityGroupExtensionLiveTest {
-
- public AzureComputeSecurityGroupExtensionLiveTest() {
- super();
- provider = "azurecompute";
- }
-
- @Override
- protected Iterable<Module> setupModules() {
- return ImmutableSet.of(getLoggingModule(), credentialStoreModule, getSshModule());
- }
-
- @Override
- protected Module getSshModule() {
- return new SshjSshClientModule();
- }
-
- @BeforeClass(groups = {"integration", "live"})
- public void setup() {
- final ComputeService computeService = view.getComputeService();
-
- final Optional<SecurityGroupExtension> securityGroupExtension = computeService.getSecurityGroupExtension();
- if (securityGroupExtension.isPresent()) {
- final Optional<SecurityGroup> group = Iterables.tryFind(securityGroupExtension.get().listSecurityGroups(),
- new Predicate<SecurityGroup>() {
- @Override
- public boolean apply(final SecurityGroup input) {
- return input.getId().equals(secGroupName);
- }
- });
-
- if (group.isPresent()) {
- securityGroupExtension.get().removeSecurityGroup(group.get().getId());
- }
- }
- }
-
- @AfterClass(groups = {"integration", "live"}, alwaysRun = true)
- @Override
- protected void tearDownContext() {
- super.tearDownContext();
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/functions/OSImageToImageTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/compute/functions/OSImageToImageTest.java
deleted file mode 100644
index c4ae3dd..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/compute/functions/OSImageToImageTest.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.compute.functions;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import com.google.common.base.Supplier;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Region;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "OSImageToImageTest")
-public class OSImageToImageTest {
-
- public void testImageTransform() {
- final OSImageToImage imageToImage = new OSImageToImage(new Supplier<Set<? extends Location>>() {
-
- private Location getLocation(final String input) {
- final LocationBuilder builder = new LocationBuilder();
- builder.id(input);
- builder.description(input);
-
- builder.scope(LocationScope.REGION);
- final Region region = Region.byName(input);
- if (region != null) {
- builder.iso3166Codes(ImmutableSet.of(region.iso3166Code()));
- }
-
- return builder.build();
- }
-
- @Override
- public Set<? extends Location> get() {
- return ImmutableSet.of(getLocation("Central US"), getLocation("North Europe"));
- }
- });
-
- for (OSImage osImage : createOSImage()) {
- final org.jclouds.compute.domain.Image transformed = imageToImage.apply(osImage);
- final OperatingSystem os = OSImageToImage.osFamily().apply(osImage).build();
- assertNotNull(osImage.label());
- assertNotNull(transformed.getId());
- assertEquals(transformed.getId(), osImage.name());
- assertEquals(transformed.getName(), osImage.label());
- assertEquals(transformed.getOperatingSystem().getFamily(), os.getFamily());
- assertEquals(transformed.getOperatingSystem().getVersion(), os.getVersion());
- assertEquals(transformed.getProviderId(), osImage.name());
- final Location location = transformed.getLocation();
- assertEquals(location.getId(), osImage.location());
- }
- }
-
- public void testOperatingSystem() {
- ImmutableList<String> version = ImmutableList.of(
- "13.1",
- "12.04 LTS",
- "Windows Server 2008 R2 SP1, June 2012",
- "Microsoft SQL Server 2012 Evaluation Edition",
- "Windows Server 2012 Release Candidate, July 2012",
- "Windows Server 2008 R2 SP1, July 2012",
- "OpenLogic CentOS 6.2",
- "12.1",
- "Linux Enterprise Server",
- "RightImage-CentOS-6.4-x64-v13.4"
- );
- ImmutableList<OsFamily> osFamily = ImmutableList.of(
- OsFamily.SUSE,
- OsFamily.UBUNTU,
- OsFamily.WINDOWS,
- OsFamily.WINDOWS,
- OsFamily.WINDOWS,
- OsFamily.WINDOWS,
- OsFamily.CENTOS,
- OsFamily.SUSE,
- OsFamily.SUSE,
- OsFamily.CENTOS
- );
-
- List<OSImage> images = createOSImage();
- for (int i = 0; i < images.size(); i++) {
- OSImage osImage = images.get(i);
- OperatingSystem os = OSImageToImage.osFamily().apply(osImage).build();
- assertEquals(os.getFamily(), osFamily.get(i));
- assertEquals(os.getVersion(), version.get(i));
- }
- }
-
- private static ImmutableList<OSImage> createOSImage() {
- return ImmutableList.of(
- OSImage.create(
- "SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd", // name
- "Central US", // location
- null, // affinityGroup
- "openSUSE 13.1", // label
- "openSUSE 13.1 brings updated desktop environments and software, lot of polishing, a brand new KDE theme, "
- + "complete systemd integration and many other features.", // description
- null, // imageFamily
- "MSDN", // category
- OSImage.Type.WINDOWS, // os
- "SUSE", // publisherName
- URI.create("http://example.blob.core.windows.net/disks/myimage.vhd"), // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://www.ubuntu.com/project/about-ubuntu/licensing")// eula
- ),
- OSImage.create(
- "CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "Ubuntu Server 12.04 LTS", // label
- "Ubuntu Server 12.04 LTS amd64 20120528 Cloud Image", //description
- null, // imageFamily
- "Canonical", // category
- OSImage.Type.LINUX, // os
- "Canonical", // publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://www.ubuntu.com/project/about-ubuntu/licensing") // eula
- ),
- OSImage.create( //
- "MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "Windows Server 2008 R2 SP1, June 2012", // label
- "Windows Server 2008 R2 is a multi-purpose server.", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- URI.create("http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd"),
- // mediaLink
- 30, // logicalSizeInGB
- Collections.<String>emptyList() // eula
- ),
- OSImage.create( //
- "MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "Microsoft SQL Server 2012 Evaluation Edition", // label
- "SQL Server 2012 Evaluation Edition (64-bit).", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://go.microsoft.com/fwlink/?LinkID=251820",
- "http://go.microsoft.com/fwlink/?LinkID=131004") // eula
- ),
- OSImage.create( //
- "MSFT__Win2K12RC-Datacenter-201207.02-en.us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "Windows Server 2012 Release Candidate, July 2012", // label
- "Windows Server 2012 incorporates Microsoft's experience building.", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Collections.<String>emptyList() // eula
- ),
- OSImage.create( //
- "MSFT__Win2K8R2SP1-Datacenter-201207.01-en.us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "Windows Server 2008 R2 SP1, July 2012", // label
- "Windows Server 2008 R2 is a multi-purpose server.", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Collections.<String>emptyList() // eula
- ),
- OSImage.create( //
- "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "OpenLogic CentOS 6.2", // label
- "This distribution of Linux is based on CentOS.", //description
- null, // imageFamily
- "OpenLogic", // category
- OSImage.Type.LINUX, // os
- "openLogic", //publisherName
- URI.create("http://blobs/disks/mydeployment/OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd"),
- // mediaLink
- 30, //logicalSizeInGB
- Arrays.asList("http://www.openlogic.com/azure/service-agreement/") // eula
- ),
- OSImage.create( //
- "SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "openSUSE 12.1", // label
- "openSUSE is a free and Linux-based operating system!", //description
- null, // imageFamily
- "SUSE", // category
- OSImage.Type.LINUX, // os
- "SUSE", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://opensuse.org/") // eula
- ),
- OSImage.create( //
- "SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "SUSE Linux Enterprise Server", // label
- "SUSE Linux Enterprise Server is a highly reliable value.", //description
- null, // imageFamily
- "SUSE", // category
- OSImage.Type.LINUX, // os
- "SUSE", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://www.novell.com/licensing/eula/") // eula
- ),
- OSImage.create( //
- "0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.4-x64-v13.4", // name
- "North Europe", // locations
- null, // affinityGroup
- "RightImage-CentOS-6.4-x64-v13.4", // label
- null, //description
- null, // imageFamily
- "RightScale with Linux", // category
- OSImage.Type.LINUX, // os
- "RightScale with Linux",
- null, // mediaLink
- 10, // logicalSizeInGB
- Collections.<String>emptyList() // No EULA, as RightScale stuffed ';' into the field.
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiLiveTest.java
deleted file mode 100644
index 62bab24..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiLiveTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNotNull;
-
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "AffinityGroupApiLiveTest")
-public class AffinityGroupApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- private static final String GROUP_NAME = String.format("%3.24s",
- System.getProperty("user.name") + RAND + "-securityGroup");
-
- private AffinityGroupApi api() {
- return api.getAffinityGroupApi();
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testList() {
- final List<AffinityGroup> groups = api().list();
- assertFalse(groups.isEmpty());
-
- final AffinityGroup matching = Iterables.find(groups, new Predicate<AffinityGroup>() {
-
- @Override
- public boolean apply(final AffinityGroup group) {
- return GROUP_NAME.equals(group.name());
- }
- });
- assertNotNull(matching);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testRead() {
- final AffinityGroup group = api().get(GROUP_NAME);
- assertNotNull(group);
- assertEquals(group.name(), GROUP_NAME);
- }
-
- public void testCreate() {
- final CreateAffinityGroupParams params = CreateAffinityGroupParams.builder().
- name(GROUP_NAME).
- label(GROUP_NAME).
- location(LOCATION).
- build();
-
- final String requestId = api().add(params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testUpdate() {
- final UpdateAffinityGroupParams params = UpdateAffinityGroupParams.builder().
- description(GROUP_NAME + " description").
- build();
-
- final String requestId = api().update(GROUP_NAME, params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- @AfterClass(alwaysRun = true)
- public void testDelete() throws Exception {
- final String requestId = api().delete(GROUP_NAME);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiMockTest.java
deleted file mode 100644
index 65960c2..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/AffinityGroupApiMockTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListAffinityGroupsHandlerTest;
-import org.jclouds.azurecompute.domain.CreateAffinityGroupParams;
-import org.jclouds.azurecompute.domain.UpdateAffinityGroupParams;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "AffinityGroupApiMockTest")
-public class AffinityGroupApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testList() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/affinityGroups.xml"));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- assertEquals(api.list(), ListAffinityGroupsHandlerTest.expected());
-
- assertSent(server, "GET", "/affinitygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void testEmptyList() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- assertTrue(api.list().isEmpty());
-
- assertSent(server, "GET", "/affinitygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void testRead() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/affinityGroup.xml"));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- assertEquals(api.get("Test1"), ListAffinityGroupsHandlerTest.expected().get(0));
-
- assertSent(server, "GET", "/affinitygroups/Test1");
- } finally {
- server.shutdown();
- }
- }
-
- public void testNullRead() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- assertNull(api.get("Test1"));
-
- assertSent(server, "GET", "/affinitygroups/Test1");
- } finally {
- server.shutdown();
- }
- }
-
- public void testAdd() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- final CreateAffinityGroupParams params = CreateAffinityGroupParams.builder().name("mygroup").label("foo").
- location("West Europe").build();
-
- assertEquals(api.add(params), "request-1");
-
- assertSent(server, "POST", "/affinitygroups", "/createaffinitygroupparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testUpdate() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-2"));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- final UpdateAffinityGroupParams params = UpdateAffinityGroupParams.builder().label("foo").
- description("mygroup description").build();
-
- assertEquals(api.update("mygroup", params), "request-2");
-
- assertSent(server, "PUT", "/affinitygroups/mygroup", "/updateaffinitygroupparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testDelete() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-3"));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- assertEquals(api.delete("mygroup"), "request-3");
-
- assertSent(server, "DELETE", "/affinitygroups/mygroup");
- } finally {
- server.shutdown();
- }
- }
-
- public void testNullDelete() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final AffinityGroupApi api = api(server.getUrl("/")).getAffinityGroupApi();
-
- assertNull(api.delete("mygroup"));
-
- assertSent(server, "DELETE", "/affinitygroups/mygroup");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiLiveTest.java
deleted file mode 100644
index b0dcbd8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiLiveTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.azurecompute.domain.CloudService.Status.UNRECOGNIZED;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudService.Status;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import java.util.logging.Level;
-
-@Test(groups = "live", testName = "CloudServiceApiLiveTest", singleThreaded = true)
-public class CloudServiceApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String CLOUD_SERVICE = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, CloudServiceApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private Predicate<CloudService> cloudServiceCreated;
-
- private Predicate<CloudService> cloudServiceGone;
-
- @BeforeClass(groups = {"integration", "live"})
- @Override
- public void setup() {
- super.setup();
- cloudServiceCreated = retry(new Predicate<CloudService>() {
-
- @Override
- public boolean apply(CloudService input) {
- return api().get(input.name()).status() == Status.CREATED;
- }
- }, 600, 5, 5, SECONDS);
- cloudServiceGone = retry(new Predicate<CloudService>() {
-
- @Override
- public boolean apply(CloudService input) {
- return api().get(input.name()) == null;
- }
- }, 600, 5, 5, SECONDS);
- }
-
- private CloudService cloudService;
-
- public void testCreate() {
- String requestId = api().createWithLabelInLocation(CLOUD_SERVICE, CLOUD_SERVICE, LOCATION);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
- cloudService = api().get(CLOUD_SERVICE);
- Logger.getAnonymousLogger().log(Level.INFO, "created cloudService: {0}", cloudService);
-
- assertEquals(cloudService.name(), CLOUD_SERVICE);
-
- checkHostedService(cloudService);
-
- assertTrue(cloudServiceCreated.apply(cloudService), cloudService.toString());
- cloudService = api().get(cloudService.name());
- Logger.getAnonymousLogger().log(Level.INFO, "cloudService available: {0}", cloudService);
-
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGet() {
- CloudService foundCloudService = api().get(cloudService.name());
- assertThat(foundCloudService).isEqualToComparingFieldByField(cloudService);
- }
-
- @Test(dependsOnMethods = "testGet")
- public void testDelete() {
- String requestId = api().delete(cloudService.name());
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
- assertTrue(cloudServiceGone.apply(cloudService), cloudService.toString());
- Logger.getAnonymousLogger().log(Level.INFO, "cloudService deleted: {0}", cloudService);
- }
-
- @Override
- @AfterClass(groups = "live", alwaysRun = true)
- protected void tearDown() {
- String requestId = api().delete(CLOUD_SERVICE);
- if (requestId != null) {
- operationSucceeded.apply(requestId);
- }
-
- super.tearDown();
- }
-
- public void testList() {
- List<CloudService> response = api().list();
-
- for (CloudService cs : response) {
- checkHostedService(cs);
- }
-
- if (!response.isEmpty()) {
- CloudService cs = response.iterator().next();
- assertEquals(api().get(cs.name()), cs);
- }
- }
-
- private void checkHostedService(CloudService cloudService) {
- assertNotNull(cloudService.name(), "ServiceName cannot be null for " + cloudService);
- assertTrue(cloudService.location() != null || cloudService.affinityGroup() != null,
- "Location or AffinityGroup must be present for " + cloudService);
- assertNotNull(cloudService.label(), "Label cannot be null for " + cloudService);
- assertNotNull(cloudService.status(), "Status cannot be null for " + cloudService);
- assertNotEquals(cloudService.status(), UNRECOGNIZED, "Status cannot be UNRECOGNIZED for " + cloudService);
- assertNotNull(cloudService.created(), "Created cannot be null for " + cloudService);
- assertNotNull(cloudService.lastModified(), "LastModified cannot be null for " + cloudService);
- assertNotNull(cloudService.extendedProperties(), "ExtendedProperties cannot be null for " + cloudService);
- }
-
- private CloudServiceApi api() {
- return api.getCloudServiceApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiMockTest.java
deleted file mode 100644
index c321d5d..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/CloudServiceApiMockTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.CloudServiceHandlerTest;
-import org.jclouds.azurecompute.xml.CloudServicePropertiesHandlerTest;
-import org.jclouds.azurecompute.xml.ListCloudServicesHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "CloudServiceApiMockTest")
-public class CloudServiceApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void listWhenFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/hostedservices.xml"));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertEquals(api.list(), ListCloudServicesHandlerTest.expected());
-
- assertSent(server, "GET", "/services/hostedservices?embed-detail=true");
- } finally {
- server.shutdown();
- }
- }
-
- public void listWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertTrue(api.list().isEmpty());
-
- assertSent(server, "GET", "/services/hostedservices?embed-detail=true");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/hostedservice.xml"));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertEquals(api.get("myservice"), CloudServiceHandlerTest.expected());
-
- assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertNull(api.get("myservice"));
-
- assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
- } finally {
- server.shutdown();
- }
- }
-
- public void getPropertiesWhenFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/cloudserviceproperties.xml"));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertEquals(api.getProperties("myservice"), CloudServicePropertiesHandlerTest.expected());
-
- assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
- } finally {
- server.shutdown();
- }
- }
-
- public void getPropertiesWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertNull(api.getProperties("myservice"));
-
- assertSent(server, "GET", "/services/hostedservices/myservice?embed-detail=true");
- } finally {
- server.shutdown();
- }
- }
-
- public void createWithLabelInLocation() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertEquals(api.createWithLabelInLocation("myservice", "service mine", "West US"), "request-1");
-
- assertSent(server, "POST", "/services/hostedservices", "/create_hostedservice_location.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertEquals(api.delete("myservice"), "request-1");
-
- assertSent(server, "DELETE", "/services/hostedservices/myservice");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- CloudServiceApi api = api(server.getUrl("/")).getCloudServiceApi();
-
- assertNull(api.delete("myservice"));
-
- assertSent(server, "DELETE", "/services/hostedservices/myservice");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiLiveTest.java
deleted file mode 100644
index 6982300..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiLiveTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "live", testName = "DeploymentApiLiveTest", singleThreaded = true)
-public class DeploymentApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String CLOUD_SERVICE = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, DeploymentApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private static final String DEPLOYMENT = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, DeploymentApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private Predicate<Deployment> deploymentCreated;
-
- private Predicate<Deployment> deploymentGone;
-
- private Deployment deployment;
-
- private CloudService cloudService;
-
- @BeforeClass(groups = {"integration", "live"})
- @Override
- public void setup() {
- super.setup();
-
- cloudService = getOrCreateCloudService(CLOUD_SERVICE, LOCATION);
-
- deploymentCreated = retry(new Predicate<Deployment>() {
-
- @Override
- public boolean apply(final Deployment input) {
- return api().get(input.name()).status() == Deployment.Status.RUNNING;
- }
- }, 600, 5, 5, SECONDS);
-
- deploymentGone = retry(new Predicate<Deployment>() {
-
- @Override
- public boolean apply(final Deployment input) {
- return api().get(input.name()) == null;
- }
- }, 600, 5, 5, SECONDS);
- }
-
- public void testCreate() {
- final DeploymentParams params = DeploymentParams.builder()
- .name(DEPLOYMENT)
- .os(OSImage.Type.LINUX)
- .sourceImageName(DeploymentApiLiveTest.IMAGE_NAME)
- .mediaLink(AzureComputeServiceAdapter.createMediaLink(storageService.serviceName(), DEPLOYMENT))
- .username("test")
- .password("supersecurePassword1!")
- .size(RoleSize.Type.BASIC_A0)
- .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
- .build();
- final String requestId = api().create(params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
-
- deployment = api().get(DEPLOYMENT);
- assertNotNull(deployment);
- assertTrue(deploymentCreated.apply(deployment), deployment.toString());
- assertThat(deployment.name()).isEqualTo(DEPLOYMENT);
- assertThat(deployment.status()).isEqualTo(Deployment.Status.RUNNING);
- assertThat(deployment.label()).isEqualTo(DEPLOYMENT);
- assertThat(deployment.slot()).isEqualTo(Deployment.Slot.PRODUCTION);
- assertThat(deployment.roleList().size()).isEqualTo(1);
- assertThat(deployment.roleInstanceList().size()).isEqualTo(1);
-
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGet() {
- Deployment foundDeployment = api().get(deployment.name());
- assertThat(foundDeployment).isEqualToComparingFieldByField(deployment);
- }
-
- // Test CloudServiceProperties with a deployment
- @Test(dependsOnMethods = "testCreate")
- public void testGetProperties() {
- CloudServiceProperties cloudServiceProperties = api.getCloudServiceApi().getProperties(cloudService.name());
- assertNotNull(cloudServiceProperties);
- assertEquals(cloudServiceProperties.serviceName(), CLOUD_SERVICE);
-
- Deployment deployment = cloudServiceProperties.deployments().get(0);
- checkDeployment(deployment);
- }
-
- @Test(dependsOnMethods = "testGet")
- public void testDelete() {
- final List<Role> roles = api.getDeploymentApiForService(cloudService.name()).get(DEPLOYMENT).roleList();
-
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().delete(deployment.name());
- }
- }.apply(deployment.name()));
-
- assertTrue(deploymentGone.apply(deployment), deployment.toString());
- Logger.getAnonymousLogger().log(Level.INFO, "deployment deleted: {0}", deployment);
-
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getCloudServiceApi().delete(cloudService.name());
- }
- }.apply(cloudService.name()));
-
- for (Role r : roles) {
- final Role.OSVirtualHardDisk disk = r.osVirtualHardDisk();
- if (disk != null) {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getDiskApi().delete(disk.diskName());
- }
- }.apply(disk.diskName()));
- }
- }
- }
-
- private void checkDeployment(Deployment deployment) {
- assertNotNull(deployment);
- assertNotNull(deployment.name(), "Name cannot be Null for Deployment" + deployment);
- assertTrue(deployment.roleList().size() > 0, "There should be atleast 1 Virtual machine for a deployment ");
- assertNotNull(deployment.label(), "Label cannot be Null for Deployment" + deployment);
-
- Deployment.Slot slot = deployment.slot();
- assertTrue((slot == Deployment.Slot.PRODUCTION) || (slot == Deployment.Slot.STAGING));
- assertEquals(deployment.name(), DEPLOYMENT);
- }
-
- @Override
- @AfterClass(groups = "live", alwaysRun = true)
- protected void tearDown() {
- super.tearDown();
- }
-
- private DeploymentApi api() {
- return api.getDeploymentApiForService(cloudService.name());
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
deleted file mode 100644
index d41901d..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DeploymentApiMockTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.jclouds.azurecompute.domain.DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort;
-import static org.jclouds.azurecompute.domain.DeploymentParams.ExternalEndpoint.inboundUdpToLocalPort;
-import static org.testng.Assert.assertEquals;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.DeploymentHandlerTest;
-import org.jclouds.azurecompute.xml.ListOSImagesHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "DeploymentApiMockTest")
-public class DeploymentApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testCreateLinux() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
- OSImage osImage = ListOSImagesHandlerTest.expected().get(5); // Centos
-
- DeploymentParams params = DeploymentParams.builder()
- .name("mydeployment")
- .size(RoleSize.Type.MEDIUM)
- .sourceImageName(osImage.name()).mediaLink(URI.create("https://mydeployment.blob.core.windows.net/vhds/disk-mydeployment.vhd")).os(osImage.os())
- .username("username").password("testpwd")
- .virtualNetworkName("my-virtualNetworkName")
- .reservedIPName("myreservedip")
- .externalEndpoints(ImmutableSet.of(inboundTcpToLocalPort(80, 8080), inboundUdpToLocalPort(53, 53)))
- .build();
-
- assertEquals(api.create(params), "request-1");
-
- assertSent(server, "POST", "/services/hostedservices/myservice/deployments", "/deploymentparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testCreateWindows() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
- OSImage osImage = ListOSImagesHandlerTest.expected().get(1); // Windows
-
- DeploymentParams params = DeploymentParams.builder()
- .name("mydeployment")
- .size(RoleSize.Type.MEDIUM)
- .sourceImageName(osImage.name()).mediaLink(osImage.mediaLink()).os(osImage.os())
- .username("username").password("testpwd")
- .virtualNetworkName("my-virtualNetworkName")
- .externalEndpoints(ImmutableSet.of(inboundTcpToLocalPort(80, 8080), inboundUdpToLocalPort(53, 53)))
- .build();
-
- assertEquals(api.create(params), "request-1");
-
- assertSent(server, "POST", "/services/hostedservices/myservice/deployments", "/deploymentparams-windows.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testGet() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/deployment.xml"));
-
- try {
- DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
- assertEquals(api.get("mydeployment"), DeploymentHandlerTest.expected());
-
- assertSent(server, "GET", "/services/hostedservices/myservice/deployments/mydeployment");
- } finally {
- server.shutdown();
- }
- }
-
- public void testDelete() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- DeploymentApi api = api(server.getUrl("/")).getDeploymentApiForService("myservice");
-
- assertEquals(api.delete("mydeployment"), "request-1");
-
- assertSent(server, "DELETE", "/services/hostedservices/myservice/deployments/mydeployment");
- } finally {
- server.shutdown();
- }
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
deleted file mode 100644
index 1847f1f..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiLiveTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static com.google.common.collect.Iterables.transform;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "live", testName = "DiskApiLiveTest")
-public class DiskApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- private ImmutableSet<String> locations;
-
- private ImmutableSet<String> images;
-
- private ImmutableSet<String> groups;
-
- @BeforeClass(groups = {"integration", "live"})
- @Override
- public void setup() {
- super.setup();
-
- locations = ImmutableSet.copyOf(transform(api.getLocationApi().list(),
- new Function<Location, String>() {
-
- @Override
- public String apply(final Location location) {
- return location.name();
- }
- }));
- images = ImmutableSet.copyOf(transform(api.getOSImageApi().list(), new Function<OSImage, String>() {
-
- @Override
- public String apply(final OSImage image) {
- return image.name();
- }
- }));
- groups = ImmutableSet.copyOf(transform(api.getAffinityGroupApi().list(), new Function<AffinityGroup, String>() {
-
- @Override
- public String apply(final AffinityGroup group) {
- return group.name();
- }
- }));
- }
-
- public void testList() {
- for (Disk disk : api().list()) {
- checkDisk(disk);
- }
- }
-
- // TODO testDeleteDisk, if we will need testCreateDisk
- private void checkDisk(Disk disk) {
- assertNotNull(disk.name(), "Name cannot be null for: " + disk);
-
- if (disk.attachedTo() != null) {
- // TODO: verify you can lookup the role
- }
-
- if (disk.logicalSizeInGB() != null) {
- assertTrue(disk.logicalSizeInGB() > 0, "LogicalSizeInGB should be positive, if set" + disk);
- }
-
- if (disk.mediaLink() != null) {
- assertTrue(ImmutableSet.of("http", "https").contains(disk.mediaLink().getScheme()),
- "MediaLink should be an http(s) url" + disk);
- }
-
- if (disk.location() != null) {
- assertTrue(locations.contains(disk.location()), "Location not in " + locations + " :" + disk);
- }
-
- if (disk.sourceImage() != null) {
- //TODO disk can be generated from a `VM Image` that listDisk doesn't consider
- // assertTrue(images.contains(disk.sourceImage()), "SourceImage not in " + images + " :" + disk);
- }
-
- if (disk.affinityGroup() != null) {
- assertTrue(groups.contains(disk.affinityGroup()), "AffinityGroup not in " + groups + " :" + disk);
- }
- }
-
- private DiskApi api() {
- return api.getDiskApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiMockTest.java
deleted file mode 100644
index a9b6900..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/DiskApiMockTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListDisksHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "DiskApiMockTest")
-public class DiskApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testList() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/disks.xml"));
-
- try {
- DiskApi api = api(server.getUrl("/")).getDiskApi();
-
- assertEquals(api.list(), ListDisksHandlerTest.expected());
-
- assertSent(server, "GET", "/services/disks");
- } finally {
- server.shutdown();
- }
- }
-
- public void testDelete() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- DiskApi api = api(server.getUrl("/")).getDiskApi();
-
- assertEquals(api.delete("my-disk"), "request-1");
-
- assertSent(server, "DELETE", "/services/disks/my-disk?comp=media");
- } finally {
- server.shutdown();
- }
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiLiveTest.java
deleted file mode 100644
index 8b43292..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiLiveTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "LocationApiLiveTest")
-public class LocationApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- private static final List<String> KNOWN_SERVICES = Arrays
- .asList("Compute", "Storage", "PersistentVMRole", "HighMemory");
-
- @Test
- public void testList() {
- for (Location location : api().list()) {
- checkLocation(location);
- }
- }
-
- private void checkLocation(final Location location) {
- assertNotNull(location.name(), "Name cannot be null for a Location.");
- assertNotNull(location.displayName(), "DisplayName cannot be null for: " + location);
- assertNotNull(location.availableServices(), "AvailableServices cannot be null for: " + location.name());
- assertTrue(KNOWN_SERVICES.containsAll(location.availableServices()),
- "AvailableServices in " + location + " didn't match: " + KNOWN_SERVICES);
- }
-
- private LocationApi api() {
- return api.getLocationApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiMockTest.java
deleted file mode 100644
index c6f1924..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/LocationApiMockTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListLocationsHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "LocationApiMockTest")
-public class LocationApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testList() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/locations.xml"));
-
- try {
- LocationApi api = api(server.getUrl("/")).getLocationApi();
-
- assertThat(api.list()).containsExactlyElementsOf(ListLocationsHandlerTest.expected());
-
- assertSent(server, "GET", "/locations");
- } finally {
- server.shutdown();
- }
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiLiveTest.java
deleted file mode 100644
index 7e41eb7..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiLiveTest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "NetworkSecurityGroupApiLiveTest", singleThreaded = true)
-public class NetworkSecurityGroupApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String GROUP1 = System.getProperty("user.name") + RAND + "-1";
-
- private static final String GROUP2 = System.getProperty("user.name") + RAND + "-2";
-
- @BeforeClass
- public void groupSetup() {
- // ----------------------------
- // Clean before start
- // ----------------------------
- try {
- final NetworkSecurityGroup group = api().
- getNetworkSecurityGroupAppliedToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME);
-
- if (group != null && (group.name().equals(GROUP1) || group.name().equals(GROUP2))) {
- api().removeFromSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, group.name());
- }
- } catch (Exception e) {
- // ignore
- }
-
- try {
- if (api().get(GROUP1) != null) {
- operationSucceeded.apply(api.getNetworkSecurityGroupApi().delete(GROUP1));
- }
- } catch (Exception e) {
- // ignore
- }
-
- try {
- if (api().get(GROUP2) != null) {
- operationSucceeded.apply(api.getNetworkSecurityGroupApi().delete(GROUP2));
- }
- } catch (Exception e) {
- // ignore
- }
- // ----------------------------
-
- String requestId = api().create(
- NetworkSecurityGroup.create(GROUP1, GROUP1 + " security group", LOCATION, null, null));
-
- assertTrue(operationSucceeded.apply(requestId), GROUP1);
-
- requestId = api().create(
- NetworkSecurityGroup.create(GROUP2, GROUP2 + " security group", LOCATION, null, null));
-
- assertTrue(operationSucceeded.apply(requestId), GROUP2);
- }
-
- @Test
- public void list() {
- final List<NetworkSecurityGroup> groups = api().list();
- assertFalse(groups.isEmpty());
- }
-
- @Test
- public void get() {
- final NetworkSecurityGroup group = api().get(GROUP1);
- assertEquals(group.name(), GROUP1);
- assertEquals(group.label(), GROUP1 + " security group");
- assertEquals(group.location(), LOCATION);
- assertTrue(group.state() == NetworkSecurityGroup.State.CREATED);
- assertTrue(group.rules().isEmpty());
- }
-
- @Test
- public void getFullDetails() {
- final NetworkSecurityGroup group = api().getFullDetails(GROUP2);
- assertEquals(group.name(), GROUP2);
- assertEquals(group.label(), GROUP2 + " security group");
- assertEquals(group.location(), LOCATION);
- assertTrue(group.state() == NetworkSecurityGroup.State.CREATED);
- assertFalse(group.rules().isEmpty());
- }
-
- @Test
- public void setRule() {
- final String ruleName = "newrule";
-
- final String requestId = api().setRule(GROUP1, ruleName, Rule.create(
- ruleName,
- Rule.Type.Inbound,
- "100",
- Rule.Action.Allow,
- "INTERNET",
- "*",
- "10.0.0.0/0",
- "*",
- Rule.Protocol.ALL));
-
- assertTrue(operationSucceeded.apply(requestId), ruleName);
-
- Rule newrule = null;
-
- for (Rule rule : api().getFullDetails(GROUP1).rules()) {
- if (ruleName.equals(rule.name())) {
- newrule = rule;
- }
- }
-
- assertNotNull(newrule);
-
- assertNull(newrule.isDefault());
- assertEquals(newrule.action(), Rule.Action.Allow);
- assertEquals(newrule.type(), Rule.Type.Inbound);
- assertEquals(newrule.protocol(), Rule.Protocol.ALL);
- assertEquals(newrule.state(), "Active");
- }
-
- @Test(dependsOnMethods = {"setRule"})
- public void removeRule() {
- final String ruleName = "newrule";
-
- final String requestId = api().deleteRule(GROUP1, ruleName);
- assertTrue(operationSucceeded.apply(requestId), ruleName);
-
- Rule newrule = null;
-
- for (Rule rule : api().getFullDetails(GROUP1).rules()) {
- if (ruleName.equals(rule.name())) {
- newrule = rule;
- }
- }
-
- assertNull(newrule);
- }
-
- @Test(dependsOnMethods = {"removeRule"})
- public void addToSubnet() {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().addToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, GROUP1);
- }
- }.apply(GROUP1));
- }
-
- @Test(dependsOnMethods = {"addToSubnet"})
- public void getForSubnet() {
- final NetworkSecurityGroup group = api().
- getNetworkSecurityGroupAppliedToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME);
- assertEquals(group.state(), NetworkSecurityGroup.State.CREATED);
- }
-
- @Test(dependsOnMethods = {"getForSubnet"})
- public void removeFromSubnet() {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().removeFromSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, GROUP1);
- }
- }.apply(GROUP1));
- }
-
- @AfterClass
- public void cleanup() {
- // no assertion is required: just to be sure to remove for subnet
- final NetworkSecurityGroup group = api().
- getNetworkSecurityGroupAppliedToSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME);
-
- if (group != null) {
- api().removeFromSubnet(VIRTUAL_NETWORK_NAME, DEFAULT_SUBNET_NAME, group.name());
- }
-
- String requestId = api.getNetworkSecurityGroupApi().delete(GROUP1);
- assertTrue(operationSucceeded.apply(requestId), GROUP1);
-
- requestId = api.getNetworkSecurityGroupApi().delete(GROUP2);
- assertTrue(operationSucceeded.apply(requestId), GROUP2);
- }
-
- private NetworkSecurityGroupApi api() {
- return api.getNetworkSecurityGroupApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiMockTest.java
deleted file mode 100644
index 3a1bd54..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/NetworkSecurityGroupApiMockTest.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.azurecompute.xml.ListNetworkSecurityGroupsHandlerTest;
-import org.jclouds.azurecompute.xml.NetworkSecurityGroupHandlerTest;
-
-@Test(groups = "unit", testName = "NetworkSecurityGroupApiMockTest")
-public class NetworkSecurityGroupApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void list() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/networksecuritygroups.xml"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.list(), ListNetworkSecurityGroupsHandlerTest.expected());
- assertSent(server, "GET", "/services/networking/networksecuritygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void listWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertTrue(api.list().isEmpty());
- assertSent(server, "GET", "/services/networking/networksecuritygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void getFullDetails() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/networksecuritygroupfulldetails.xml"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.getFullDetails("jclouds-NSG"), NetworkSecurityGroupHandlerTest.expectedFull());
- assertSent(server, "GET", "/services/networking/networksecuritygroups/jclouds-NSG?detaillevel=Full");
- } finally {
- server.shutdown();
- }
- }
-
- public void getFullDetailsWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertNull(api.getFullDetails("jclouds-NSG"));
- assertSent(server, "GET", "/services/networking/networksecuritygroups/jclouds-NSG?detaillevel=Full");
- } finally {
- server.shutdown();
- }
- }
-
- public void get() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/networksecuritygroup.xml"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.get("group1"), NetworkSecurityGroupHandlerTest.expected());
- assertSent(server, "GET", "/services/networking/networksecuritygroups/group1");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertNull(api.get("group1"));
- assertSent(server, "GET", "/services/networking/networksecuritygroups/group1");
- } finally {
- server.shutdown();
- }
- }
-
- public void getNetworkSecurityGroupAppliedToSubnet() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/networksecuritygroupforsubnet.xml"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.getNetworkSecurityGroupAppliedToSubnet("myvn", "mysubnet"),
- NetworkSecurityGroupHandlerTest.expectedForSubnet());
- assertSent(server, "GET", "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void getNetworkSecurityGroupAppliedToSubnetWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertNull(api.getNetworkSecurityGroupAppliedToSubnet("myvn", "mysubnet"));
- assertSent(server, "GET", "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteGroup() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.delete("mygroup"), "request-1");
- assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteGroupWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertNull(api.delete("mygroup"));
- assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteRule() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.deleteRule("mygroup", "myrule"), "request-1");
- assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup/rules/myrule");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteRuleWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertNull(api.deleteRule("mygroup", "myrule"));
- assertSent(server, "DELETE", "/services/networking/networksecuritygroups/mygroup/rules/myrule");
- } finally {
- server.shutdown();
- }
- }
-
- public void removeFromSubnet() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.removeFromSubnet("myvn", "mysubnet", "mygroup"), "request-1");
- assertSent(server, "DELETE",
- "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups/mygroup");
- } finally {
- server.shutdown();
- }
- }
-
- public void removeFromSubnetWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertNull(api.removeFromSubnet("myvn", "mysubnet", "mygroup"));
- assertSent(server, "DELETE",
- "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups/mygroup");
- } finally {
- server.shutdown();
- }
- }
-
- public void addToSubnet() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.addToSubnet("myvn", "mysubnet", "mygroup"), "request-1");
- assertSent(server, "POST",
- "/services/networking/virtualnetwork/myvn/subnets/mysubnet/networksecuritygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void create() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.create(NetworkSecurityGroup.create("mygroup", "sec mygroup", "North Europe", null, null)),
- "request-1");
- assertSent(server, "POST", "/services/networking/networksecuritygroups");
- } finally {
- server.shutdown();
- }
- }
-
- public void setRule() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final NetworkSecurityGroupApi api = networkSecurityGroupApi(server);
- assertEquals(api.setRule("mygroup", "myrule", Rule.create(
- "myrule",
- Rule.Type.Inbound,
- "100",
- Rule.Action.Allow,
- "192.168.0.2",
- "*",
- "192.168.0.1",
- "80",
- Rule.Protocol.TCP
- )), "request-1");
-
- assertSent(server, "PUT", "/services/networking/networksecuritygroups/mygroup/rules/myrule");
- } finally {
- server.shutdown();
- }
- }
-
- private NetworkSecurityGroupApi networkSecurityGroupApi(final MockWebServer server) {
- return api(server.getUrl("/")).getNetworkSecurityGroupApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiLiveTest.java
deleted file mode 100644
index edff894..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiLiveTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static com.google.common.collect.Iterables.transform;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "live", testName = "OSImageApiLiveTest")
-public class OSImageApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- private ImmutableSet<String> locations;
-
- @BeforeClass(groups = {"integration", "live"})
- @Override
- public void setup() {
- super.setup();
-
- locations = ImmutableSet.copyOf(transform(api.getLocationApi().list(), new Function<Location, String>() {
-
- @Override
- public String apply(final Location location) {
- return location.name();
- }
- }));
- }
-
- public void testList() {
- for (OSImage osImage : api().list()) {
- checkOSImage(osImage);
- }
- }
-
- private void checkOSImage(final OSImage osImage) {
- assertNotNull(osImage.label(), "Label cannot be null for " + osImage);
- assertNotNull(osImage.name(), "Name cannot be null for " + osImage);
- assertNotNull(osImage.os(), "OS cannot be null for " + osImage);
- assertTrue(osImage.logicalSizeInGB() > 0, "LogicalSizeInGB should be positive, if set" + osImage);
-
- if (osImage.category() != null) {
- assertNotEquals("", osImage.category().trim(), "Invalid Category for " + osImage);
- }
-
- if (osImage.mediaLink() != null) {
- assertTrue(ImmutableSet.of("http", "https").contains(osImage.mediaLink().getScheme()),
- "MediaLink should be an http(s) url" + osImage);
- }
-
- // Ex. Dirty data in RightScale eula field comes out as an empty string.
- assertFalse(osImage.eula().contains(""));
- if (osImage.affinityGroup() != null) {
- assertTrue(locations.contains(osImage.affinityGroup()), "No " + osImage.affinityGroup() + " in " + locations);
- }
- }
-
- private OSImageApi api() {
- return api.getOSImageApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiMockTest.java
deleted file mode 100644
index 2483ce4..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OSImageApiMockTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.OSImageParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListOSImagesHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "OSImageApiMockTest")
-public class OSImageApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testList() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/images.xml"));
-
- try {
- OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
- assertEquals(api.list(), ListOSImagesHandlerTest.expected());
-
- assertSent(server, "GET", "/services/images");
- } finally {
- server.shutdown();
- }
- }
-
- public void testAdd() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
- OSImageParams params = OSImageParams.builder().name("myimage").label("foo").os(OSImage.Type.LINUX)
- .mediaLink(URI.create("http://example.blob.core.windows.net/disks/mydisk.vhd")).build();
-
- assertEquals(api.add(params), "request-1");
-
- assertSent(server, "POST", "/services/images", "/imageparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testUpdate() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
- OSImageParams params = OSImageParams.builder().name("myimage").label("foo").os(OSImage.Type.LINUX)
- .mediaLink(URI.create("http://example.blob.core.windows.net/disks/mydisk.vhd")).build();
-
- assertEquals(api.update(params), "request-1");
-
- assertSent(server, "PUT", "/services/images/myimage", "/imageparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testDelete() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- OSImageApi api = api(server.getUrl("/")).getOSImageApi();
-
- assertEquals(api.delete("myimage"), "request-1");
-
- assertSent(server, "DELETE", "/services/images/myimage");
- } finally {
- server.shutdown();
- }
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OperationApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/OperationApiMockTest.java
deleted file mode 100644
index f155f33..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/OperationApiMockTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.OperationHandlerTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "OperationApiMockTest")
-public class OperationApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testGet() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/operation.xml"));
-
- try {
- final OperationApi api = api(server.getUrl("/")).getOperationApi();
- assertEquals(api.get("request-id"), OperationHandlerTest.expected());
- assertSent(server, "GET", "/operations/request-id");
- } finally {
- server.shutdown();
- }
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiLiveTest.java
deleted file mode 100644
index 79c9bf8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiLiveTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-import static org.testng.Assert.assertTrue;
-
-import com.google.common.base.Predicate;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.azurecompute.domain.ReservedIPAddress.State;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-import org.jclouds.util.Predicates2;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "ReservedIPAddressApiLiveTest", singleThreaded = true)
-public class ReservedIPAddressApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- private static final String RESERVED_IP_NAME = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, ReservedIPAddressApiLiveTest.class.getSimpleName()).toLowerCase();
-
- @Test
- public void testCreate() {
- final String requestId = api().create(
- ReservedIPAddressParams.builder().name(RESERVED_IP_NAME).location(LOCATION).build());
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGet() {
- assertTrue(Predicates2.retry(new Predicate<String>() {
-
- @Override
- public boolean apply(final String input) {
- final ReservedIPAddress res = api().get(input);
- Assert.assertEquals(res.name(), RESERVED_IP_NAME);
- Assert.assertNull(res.label());
- Assert.assertEquals(res.location(), LOCATION);
- Assert.assertNull(res.serviceName());
- Assert.assertNull(res.deploymentName());
- return res.state().equals(State.CREATED);
- }
- }, 60, 5, 5).apply(RESERVED_IP_NAME));
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testList() {
- final ReservedIPAddress res = api().list().get(0);
- Assert.assertEquals(res.name(), RESERVED_IP_NAME);
- Assert.assertNull(res.label());
- Assert.assertEquals(res.location(), LOCATION);
- Assert.assertNull(res.serviceName());
- Assert.assertNull(res.deploymentName());
- }
-
- @AfterClass(alwaysRun = true)
- public void testDelete() {
- final ReservedIPAddress res = api().get(RESERVED_IP_NAME);
-
- if (res != null) {
- final String requestId = api().delete(RESERVED_IP_NAME);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- Assert.assertNull(api().get(RESERVED_IP_NAME));
- }
-
- private ReservedIPAddressApi api() {
- return api.getReservedIPAddressApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiMockTest.java
deleted file mode 100644
index 8e598dd..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ReservedIPAddressApiMockTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.ReservedIPAddressParams;
-import org.jclouds.azurecompute.xml.ListReservedIPAddressHandlerTest;
-import org.jclouds.azurecompute.xml.ReservedIPAddressHandlerTest;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "ReservedIPAddressApiMockTest")
-public class ReservedIPAddressApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void listWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/listreservedipaddress.xml"));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
- assertEquals(api.list(), ListReservedIPAddressHandlerTest.expected());
- assertSent(server, "GET", "/services/networking/reservedips");
- } finally {
- server.shutdown();
- }
- }
-
- public void listWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
- assertTrue(api.list().isEmpty());
- assertSent(server, "GET", "/services/networking/reservedips");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/reservedipaddress.xml"));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
- assertEquals(api.get("myreservedip"), ReservedIPAddressHandlerTest.expected());
- assertSent(server, "GET", "/services/networking/reservedips/myreservedip");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
- assertNull(api.get("myreservedip"));
- assertSent(server, "GET", "/services/networking/reservedips/myreservedip");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
- assertEquals(api.delete("myreservedip"), "request-1");
- assertSent(server, "DELETE", "/services/networking/reservedips/myreservedip");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
- assertNull(api.delete("myreservedip"));
- assertSent(server, "DELETE", "/services/networking/reservedips/myreservedip");
- } finally {
- server.shutdown();
- }
- }
-
- public void create() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final ReservedIPAddressApi api = api(server.getUrl("/")).getReservedIPAddressApi();
-
- final ReservedIPAddressParams params = ReservedIPAddressParams.builder().
- name("myreservedip").
- label("myreservedip label").
- location("West Europe").build();
-
- assertEquals(api.create(params), "request-1");
- assertSent(server, "POST", "/services/networking/reservedips", "/reservedipaddressparams.xml");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiLiveTest.java
deleted file mode 100644
index e7aa14c..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiLiveTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-import org.testng.Assert;
-import static org.testng.Assert.assertTrue;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "ServiceCertificatesApiLivTest", singleThreaded = true)
-public class ServiceCertificatesApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String CLOUD_SERVICE = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, ServiceCertificatesApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private static final String FORMAT = "pfx";
- private static final String PASSWORD = "password";
-
- private static final String THUMBPRINT = "8D6ED1395205C57D23E518672903FDAF144EE8AE";
- private static final String THUMBPRINT_ALGO = "sha1";
- private static final String DATA
- = "MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQ"
- + "HDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIh"
- + "vcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJ"
- + "JVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyY"
- + "XNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVn"
- + "b5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARm"
- + "ObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZ"
- + "KbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfO"
- + "SZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblN"
- + "TTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAF"
- + "DqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9"
- + "g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz"
- + "39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq"
- + "5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YX"
- + "Tg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO";
-
- @BeforeClass
- @Override
- public void setup() {
- super.setup();
- final String requestId
- = api.getCloudServiceApi().createWithLabelInLocation(CLOUD_SERVICE, CLOUD_SERVICE, LOCATION);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test
- public void testAdd() {
-
- final String requestId = api().add(CLOUD_SERVICE,
- ServiceCertificateParams.builder().data(DATA).format(FORMAT).password(PASSWORD).build());
-
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test(dependsOnMethods = "testAdd")
- public void testList() {
- final List<ServiceCertificate> res = api().list(CLOUD_SERVICE);
- Assert.assertEquals(res.size(), 1);
- Assert.assertEquals(res.get(0).data(), DATA);
- Assert.assertEquals(res.get(0).thumbprintAlgorithm(), THUMBPRINT_ALGO);
- Assert.assertEquals(res.get(0).thumbprint(), THUMBPRINT);
- }
-
- @Test(dependsOnMethods = "testList")
- public void testGet() {
- Assert.assertNotNull(api().get(CLOUD_SERVICE, THUMBPRINT_ALGO, THUMBPRINT));
- }
-
- @Test(dependsOnMethods = "testGet")
- public void testDelete() {
- final String requestId = api().delete(CLOUD_SERVICE, THUMBPRINT_ALGO, THUMBPRINT);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
- Assert.assertNull(api().get(CLOUD_SERVICE, THUMBPRINT_ALGO, THUMBPRINT));
- }
-
- @Override
- @AfterClass(alwaysRun = true)
- protected void tearDown() {
- final String requestId = api.getCloudServiceApi().delete(CLOUD_SERVICE);
- if (requestId != null) {
- operationSucceeded.apply(requestId);
- }
-
- super.tearDown();
- }
-
- private ServiceCertificatesApi api() {
- return api.getServiceCertificatesApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiMockTest.java
deleted file mode 100644
index 29d5177..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/ServiceCertificatesApiMockTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.ServiceCertificateParams;
-import org.jclouds.azurecompute.xml.ListServiceCertificatessHandlerTest;
-import org.jclouds.azurecompute.xml.ServiceCertificateHandlerTest;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "ServiceCertificatesApiMockTest")
-public class ServiceCertificatesApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void listWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/servicecertificates.xml"));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
- assertEquals(api.list("myservice"), ListServiceCertificatessHandlerTest.expected());
- assertSent(server, "GET", "/services/hostedservices/myservice/certificates");
- } finally {
- server.shutdown();
- }
- }
-
- public void listWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
- assertTrue(api.list("myservice").isEmpty());
- assertSent(server, "GET", "/services/hostedservices/myservice/certificates");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/servicecertificate.xml"));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
- assertEquals(api.get("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"),
- ServiceCertificateHandlerTest.expected());
- assertSent(server, "GET",
- "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
- } finally {
- server.shutdown();
- }
- }
-
- public void getWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
- assertNull(api.get("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"));
- assertSent(server, "GET",
- "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
- assertEquals(api.delete("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"), "request-1");
- assertSent(server, "DELETE",
- "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
-
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
- assertNull(api.delete("myservice", "sha1", "8D6ED1395205C57D23E518672903FDAF144EE8AE"));
- assertSent(server, "DELETE",
- "/services/hostedservices/myservice/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE");
- } finally {
- server.shutdown();
- }
- }
-
- public void add() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final ServiceCertificatesApi api = api(server.getUrl("/")).getServiceCertificatesApi();
-
- final ServiceCertificateParams params = ServiceCertificateParams.builder().
- data("MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQ"
- + "HDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIh"
- + "vcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJ"
- + "JVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyY"
- + "XNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVn"
- + "b5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARm"
- + "ObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZ"
- + "KbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfO"
- + "SZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblN"
- + "TTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAF"
- + "DqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9"
- + "g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz"
- + "39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq"
- + "5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YX"
- + "Tg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO").
- format("pfx").
- password("password").build();
-
- assertEquals(api.add("myservice", params), "request-1");
- assertSent(server, "POST", "/services/hostedservices/myservice/certificates", "/servicecertificateparams.xml");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiLiveTest.java
deleted file mode 100644
index 536be67..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiLiveTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import com.google.common.collect.ImmutableMap;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "StorageAccountApiLiveTest")
-public class StorageAccountApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String NAME = String.format("%3.24s",
- RAND + StorageAccountApiLiveTest.class.getSimpleName().toLowerCase());
-
- private void check(final StorageService storage) {
- assertNotNull(storage.url());
- assertNotNull(storage.serviceName());
- assertNotNull(storage.storageServiceProperties());
- assertNotNull(storage.storageServiceProperties().accountType());
- assertFalse(storage.storageServiceProperties().endpoints().isEmpty());
- assertNotNull(storage.storageServiceProperties().creationTime());
- }
-
- public void testList() {
- for (StorageService storage : api().list()) {
- check(storage);
- }
- }
-
- public void testIsAvailable() {
- assertTrue(api().isAvailable(NAME).result());
- }
-
- @Test(dependsOnMethods = "testIsAvailable")
- public void testCreate() {
- final CreateStorageServiceParams params = CreateStorageServiceParams.builder().
- serviceName(NAME).
- description("description").
- label("label").
- location(LOCATION).
- extendedProperties(ImmutableMap.of("property_name", "property_value")).
- accountType(StorageService.AccountType.Standard_ZRS).
- build();
- final String requestId = api().create(params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGet() {
- final StorageService service = api().get(NAME);
- assertNotNull(service);
- assertEquals(service.serviceName(), NAME);
- assertEquals(service.storageServiceProperties().description(), "description");
- assertEquals(service.storageServiceProperties().location(), LOCATION);
- assertEquals(service.storageServiceProperties().label(), "label");
- assertEquals(service.storageServiceProperties().accountType(), StorageService.AccountType.Standard_ZRS);
- assertTrue(service.extendedProperties().containsKey("property_name"));
- assertEquals(service.extendedProperties().get("property_name"), "property_value");
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGetKeys() {
- final StorageServiceKeys keys = api().getKeys(NAME);
- assertNotNull(keys);
- assertNotNull(keys.url());
- assertNotNull(keys.primary());
- assertNotNull(keys.secondary());
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testRegenerateKeys() {
- final String requestId = api().regenerateKeys(NAME, StorageServiceKeys.KeyType.Primary);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testUpdate() {
- final UpdateStorageServiceParams params = UpdateStorageServiceParams.builder().
- extendedProperties(ImmutableMap.of("another_property_name", "another_property_value")).
- build();
- final String requestId = api().update(NAME, params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- @AfterClass(alwaysRun = true)
- public void testDelete() {
- final String requestId = api().delete(NAME);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- private StorageAccountApi api() {
- return api.getStorageAccountApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiMockTest.java
deleted file mode 100644
index 05e84ce..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/StorageAccountApiMockTest.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import java.net.URL;
-import org.jclouds.azurecompute.domain.Availability;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.domain.StorageServiceKeys;
-import org.jclouds.azurecompute.domain.UpdateStorageServiceParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListStorageServiceHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "StorageAccountApiMockTest")
-public class StorageAccountApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testList() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/storageservices.xml"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertEquals(api.list(), ListStorageServiceHandlerTest.expected());
-
- assertSent(server, "GET", "/services/storageservices");
- } finally {
- server.shutdown();
- }
- }
-
- public void testEmptyList() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertTrue(api.list().isEmpty());
-
- assertSent(server, "GET", "/services/storageservices");
- } finally {
- server.shutdown();
- }
- }
-
- public void testCreate() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- final CreateStorageServiceParams params = CreateStorageServiceParams.builder().
- serviceName("name-of-storage-account").
- description("description-of-storage-account").
- label("base64-encoded-label").
- location("location-of-storage-account").
- extendedProperties(ImmutableMap.of("property_name", "property_value")).
- accountType(StorageService.AccountType.Premium_LRS).
- build();
-
- assertEquals(api.create(params), "request-1");
-
- assertSent(server, "POST", "/services/storageservices", "/createstorageserviceparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testIsAvailable() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/isavailablestorageservice.xml"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertEquals(api.isAvailable("serviceName"),
- Availability.create(false, "The storage account named 'serviceName' is already taken."));
-
- assertSent(server, "GET", "/services/storageservices/operations/isavailable/serviceName");
- } finally {
- server.shutdown();
- }
- }
-
- public void testGet() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/storageservices.xml"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertEquals(api.get("serviceName"), ListStorageServiceHandlerTest.expected().get(0));
-
- assertSent(server, "GET", "/services/storageservices/serviceName");
- } finally {
- server.shutdown();
- }
- }
-
- public void testNullGet() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertNull(api.get("serviceName"));
-
- assertSent(server, "GET", "/services/storageservices/serviceName");
- } finally {
- server.shutdown();
- }
- }
-
- public void testGetKeys() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/storageaccountkeys.xml"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertEquals(api.getKeys("serviceName"), StorageServiceKeys.create(
- new URL("https://management.core.windows.net/subscriptionid/services/storageservices/serviceName"),
- "bndO7lydwDkMo4Y0mFvmfLyi2f9aZY7bwfAVWoJWv4mOVK6E9c/exLnFsSm/NMWgifLCfxC/c6QBTbdEvWUA7w==",
- "/jMLLT3kKqY4K+cUtJTbh7pCBdvG9EMKJxUvaJJAf6W6aUiZe1A1ulXHcibrqRVA2RJE0oUeXQGXLYJ2l85L7A=="));
-
- assertSent(server, "GET", "/services/storageservices/serviceName/keys");
- } finally {
- server.shutdown();
- }
- }
-
- public void testNullGetKeys() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertNull(api.getKeys("serviceName"));
-
- assertSent(server, "GET", "/services/storageservices/serviceName/keys");
- } finally {
- server.shutdown();
- }
- }
-
- public void testRegenerateKeys() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertEquals(api.regenerateKeys("serviceName", StorageServiceKeys.KeyType.Primary), "request-1");
-
- assertSent(server, "POST", "/services/storageservices/serviceName/keys?action=regenerate",
- "/storageaccountregeneratekeys.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testUpdate() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- final UpdateStorageServiceParams params = UpdateStorageServiceParams.builder().
- description("description-of-storage-account").
- label("base64-encoded-label").
- extendedProperties(ImmutableMap.of("property_name", "property_value")).
- customDomains(ImmutableList.of(
- UpdateStorageServiceParams.CustomDomain.create("name-of-custom-domain", false))).
- accountType(UpdateStorageServiceParams.AccountType.Standard_GRS).
- build();
-
- assertEquals(api.update("serviceName", params), "request-1");
-
- assertSent(server, "PUT", "/services/storageservices/serviceName", "/updatestorageserviceparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testDelete() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final StorageAccountApi api = api(server.getUrl("/")).getStorageAccountApi();
-
- assertEquals(api.delete("serviceName"), "request-1");
-
- assertSent(server, "DELETE", "/services/storageservices/serviceName");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiLiveTest.java
deleted file mode 100644
index 7ae63f8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiLiveTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertNotNull;
-
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.AbstractAzureComputeApiLiveTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "SubscriptionApiLiveTest")
-public class SubscriptionApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- @Test
- public void testList() {
- for (RoleSize roleSize : api().listRoleSizes()) {
- checkLocation(roleSize);
- }
- }
-
- private void checkLocation(final RoleSize roleSize) {
- assertNotNull(roleSize.name(), "Name cannot be null for a Location.");
- assertNotNull(roleSize.label(), "Label cannot be null for: " + roleSize);
- assertNotNull(roleSize.cores(), "Cores cannot be null for: " + roleSize.name());
- }
-
- private SubscriptionApi api() {
- return api.getSubscriptionApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiMockTest.java
deleted file mode 100644
index b74a243..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/SubscriptionApiMockTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListRoleSizesHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "SubscriptionApiMockTest")
-public class SubscriptionApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testList() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/rolesizes.xml"));
-
- try {
- final SubscriptionApi api = api(server.getUrl("/")).getSubscriptionApi();
-
- assertEquals(api.listRoleSizes(), ListRoleSizesHandlerTest.expected());
-
- assertSent(server, "GET", "/rolesizes");
- } finally {
- server.shutdown();
- }
- }
-
- public void testEmptyList() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final SubscriptionApi api = api(server.getUrl("/")).getSubscriptionApi();
-
- assertTrue(api.listRoleSizes().isEmpty());
-
- assertSent(server, "GET", "/rolesizes");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiLiveTest.java
deleted file mode 100644
index de8275c..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiLiveTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpointParams;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import static org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest.LOCATION;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.Assert;
-import static org.testng.Assert.assertTrue;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "ServiceCertificatesApiLivTest", singleThreaded = true)
-public class TrafficManagerApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String CLOUD1 = String.format("%s%d-%s1",
- System.getProperty("user.name"), RAND, TrafficManagerApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private static final String CLOUD2 = String.format("%s%d-%s2",
- System.getProperty("user.name"), RAND, TrafficManagerApiLiveTest.class.getSimpleName()).toLowerCase();
-
- @BeforeClass
- @Override
- public void setup() {
- super.setup();
- String requestId = api.getCloudServiceApi().createWithLabelInLocation(CLOUD1, CLOUD1, LOCATION);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
- requestId = api.getCloudServiceApi().createWithLabelInLocation(CLOUD2, CLOUD2, LOCATION);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test
- public void createProfile() throws Exception {
- final CreateProfileParams params = CreateProfileParams.builder().
- domain(String.format("%s.trafficmanager.net", CLOUD1)).name(CLOUD1).build();
-
- final String requestId = api().createProfile(params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test(dependsOnMethods = "createProfile")
- public void createDefinition() throws Exception {
- final ImmutableList.Builder<ProfileDefinitionEndpointParams> endpoints
- = ImmutableList.<ProfileDefinitionEndpointParams>builder();
-
- endpoints.add(ProfileDefinitionEndpointParams.builder()
- .domain(String.format("%s.cloudapp.net", CLOUD1))
- .status(ProfileDefinition.Status.ENABLED)
- .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
- .weight(1).build());
-
- endpoints.add(ProfileDefinitionEndpointParams.builder()
- .domain(String.format("%s.cloudapp.net", CLOUD2))
- .status(ProfileDefinition.Status.ENABLED)
- .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
- .weight(1).build());
-
- final ProfileDefinitionParams params = ProfileDefinitionParams.builder()
- .ttl(300)
- .lb(ProfileDefinition.LBMethod.ROUNDROBIN)
- .path("/")
- .port(80)
- .protocol(ProfileDefinition.Protocol.HTTP)
- .endpoints(endpoints.build())
- .build();
-
- final String requestId = api().createDefinition(CLOUD1, params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test(dependsOnMethods = "createDefinition")
- public void updateProfile() throws Exception {
- final UpdateProfileParams params = UpdateProfileParams.builder().
- status(ProfileDefinition.Status.DISABLED).build();
-
- final String requestId = api().updateProfile(CLOUD1, params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- }
-
- @Test(dependsOnMethods = "createDefinition")
- public void listDefinitions() throws Exception {
- final List<ProfileDefinition> defs = api().listDefinitions(CLOUD1);
- Assert.assertEquals(defs.size(), 1);
- Assert.assertEquals(defs.get(0).endpoints().size(), 2);
- Assert.assertEquals(defs.get(0).monitors().size(), 1);
- Assert.assertEquals(defs.get(0).lb(), ProfileDefinition.LBMethod.ROUNDROBIN);
- Assert.assertEquals(defs.get(0).ttl(), 300, 0);
- Assert.assertEquals(defs.get(0).status(), ProfileDefinition.Status.ENABLED);
- Assert.assertEquals(defs.get(0).monitors().get(0).port(), 80, 0);
- Assert.assertEquals(defs.get(0).monitors().get(0).path(), "/");
- Assert.assertEquals(defs.get(0).endpoints().get(0).type(), ProfileDefinitionEndpoint.Type.CLOUDSERVICE);
- Assert.assertNull(defs.get(0).endpoints().get(0).location());
- }
-
- @Test(dependsOnMethods = "createDefinition")
- public void getDefinitions() throws Exception {
- final ProfileDefinition def = api().getDefinition(CLOUD1);
- Assert.assertEquals(def.endpoints().size(), 2);
- Assert.assertEquals(def.monitors().size(), 1);
- Assert.assertEquals(def.lb(), ProfileDefinition.LBMethod.ROUNDROBIN);
- Assert.assertEquals(def.ttl(), 300, 0);
- Assert.assertEquals(def.status(), ProfileDefinition.Status.ENABLED);
- Assert.assertEquals(def.monitors().get(0).port(), 80, 0);
- Assert.assertEquals(def.monitors().get(0).path(), "/");
- Assert.assertEquals(def.endpoints().get(0).type(), ProfileDefinitionEndpoint.Type.CLOUDSERVICE);
- Assert.assertNull(def.endpoints().get(0).location());
- }
-
- @Test(dependsOnMethods = "createDefinition")
- public void listProfile() throws Exception {
- final List<Profile> profs = api().listProfiles();
- Assert.assertFalse(profs.isEmpty());
-
- final Profile prof = api().getProfile(CLOUD1);
- Assert.assertEquals(prof.domain(), String.format("%s.trafficmanager.net", CLOUD1));
- Assert.assertEquals(prof.name(), CLOUD1);
- Assert.assertEquals(prof.status(), ProfileDefinition.Status.ENABLED);
- Assert.assertEquals(prof.version(), "1");
- Assert.assertFalse(prof.definitions().isEmpty());
- }
-
- @Override
- @AfterClass(alwaysRun = true)
- protected void tearDown() {
- final String requestId = api().delete(CLOUD1);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
-
- assertTrue(new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getCloudServiceApi().delete(CLOUD1);
- }
- }.apply(CLOUD1));
-
- assertTrue(new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getCloudServiceApi().delete(CLOUD2);
- }
- }.apply(CLOUD2));
-
- super.tearDown();
- }
-
- private TrafficManagerApi api() {
- return api.getTrafficManaerApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiMockTest.java
deleted file mode 100644
index e94a339..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/TrafficManagerApiMockTest.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import com.google.common.collect.ImmutableList;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.CreateProfileParams;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpointParams;
-import org.jclouds.azurecompute.domain.ProfileDefinitionParams;
-import org.jclouds.azurecompute.domain.UpdateProfileParams;
-import org.jclouds.azurecompute.xml.ListProfileDefinitionsHandlerTest;
-import org.jclouds.azurecompute.xml.ListProfilesHandlerTest;
-import org.jclouds.azurecompute.xml.ProfileDefinitionHandlerTest;
-import org.jclouds.azurecompute.xml.ProfileHandlerTest;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "TrafficManagerApiMockTest")
-public class TrafficManagerApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void listDefWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/listprofiledefinitions.xml"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertEquals(api.listDefinitions("myprofile"), ListProfileDefinitionsHandlerTest.expected());
- assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions");
- } finally {
- server.shutdown();
- }
- }
-
- public void listDefWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertTrue(api.listDefinitions("myprofile").isEmpty());
- assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions");
- } finally {
- server.shutdown();
- }
- }
-
- public void getDefWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/profiledefinition.xml"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertEquals(api.getDefinition("myprofile"), ProfileDefinitionHandlerTest.expected());
- assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions/1");
- } finally {
- server.shutdown();
- }
- }
-
- public void getDefWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertNull(api.getDefinition("myprofile"));
- assertSent(server, "GET", "/services/WATM/profiles/myprofile/definitions/1");
- } finally {
- server.shutdown();
- }
- }
-
- public void listProfWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/listprofiles.xml"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertEquals(api.listProfiles(), ListProfilesHandlerTest.expected());
- assertSent(server, "GET", "/services/WATM/profiles");
- } finally {
- server.shutdown();
- }
- }
-
- public void listProfWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertTrue(api.listProfiles().isEmpty());
- assertSent(server, "GET", "/services/WATM/profiles");
- } finally {
- server.shutdown();
- }
- }
-
- public void getProfWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/profile.xml"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertEquals(api.getProfile("myprofile"), ProfileHandlerTest.expected());
- assertSent(server, "GET", "/services/WATM/profiles/myprofile");
- } finally {
- server.shutdown();
- }
- }
-
- public void getProfWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertNull(api.getProfile("myprofile"));
- assertSent(server, "GET", "/services/WATM/profiles/myprofile");
- } finally {
- server.shutdown();
- }
- }
-
- public void checkDNSPrefixAvailability() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/checkdnsprefixavailability.xml"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertTrue(api.checkDNSPrefixAvailability("jclouds.trafficmanager.net"));
- assertSent(server, "GET", "/services/WATM/operations/isavailable/jclouds.trafficmanager.net");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertEquals(api.delete("myprofile"), "request-1");
- assertSent(server, "DELETE", "/services/WATM/profiles/myprofile");
-
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenNotFound() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
- assertNull(api.delete("myprofile"));
- assertSent(server, "DELETE", "/services/WATM/profiles/myprofile");
- } finally {
- server.shutdown();
- }
- }
-
- public void createProfile() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-
- final CreateProfileParams params = CreateProfileParams.builder()
- .domain("jclouds.trafficmanager.net").name("jclouds").build();
-
- assertEquals(api.createProfile(params), "request-1");
- assertSent(server, "POST", "/services/WATM/profiles", "/createprofileparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void updateProfile() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-
- final UpdateProfileParams params = UpdateProfileParams.builder()
- .status(ProfileDefinition.Status.ENABLED).build();
-
- assertEquals(api.updateProfile("myprofile", params), "request-1");
- assertSent(server, "PUT", "/services/WATM/profiles/myprofile", "/updateprofileparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void createDefinition() throws Exception {
- final MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- final TrafficManagerApi api = api(server.getUrl("/")).getTrafficManaerApi();
-
- final ImmutableList.Builder<ProfileDefinitionEndpointParams> endpoints
- = ImmutableList.<ProfileDefinitionEndpointParams>builder();
-
- endpoints.add(ProfileDefinitionEndpointParams.builder()
- .domain("jclouds1.cloudapp.net")
- .status(ProfileDefinition.Status.ENABLED)
- .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
- .weight(1).build());
-
- endpoints.add(ProfileDefinitionEndpointParams.builder()
- .domain("jclouds2.cloudapp.net")
- .status(ProfileDefinition.Status.ENABLED)
- .type(ProfileDefinitionEndpoint.Type.CLOUDSERVICE)
- .weight(1).build());
-
- final ProfileDefinitionParams params = ProfileDefinitionParams.builder()
- .ttl(300)
- .lb(ProfileDefinition.LBMethod.ROUNDROBIN)
- .path("/")
- .port(80)
- .protocol(ProfileDefinition.Protocol.HTTP)
- .endpoints(endpoints.build())
- .build();
-
- assertEquals(api.createDefinition("myprofile", params), "request-1");
- assertSent(server, "POST", "/services/WATM/profiles/myprofile/definitions", "/profiledefinitioncsparams.xml");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiLiveTest.java
deleted file mode 100644
index b9afed0..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiLiveTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.domain.Deployment.InstanceStatus.READY_ROLE;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import java.net.URI;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-@Test(groups = "live", testName = "VMImageApiLiveTest")
-public class VMImageApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String CLOUD_SERVICE = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, VMImageApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private static final String DEPLOYMENT = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, VMImageApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private static final String CAPTURED_IMAGE_NAME = "captured-image";
-
- private static final String CREATE_IMAGE_NAME = "create-image";
-
- private String roleName;
-
- private String diskName;
-
- private Predicate<String> roleInstanceReady;
-
- private CloudService cloudService;
-
- @BeforeClass(groups = {"integration", "live"})
- @Override
- public void setup() {
- super.setup();
- cloudService = getOrCreateCloudService(CLOUD_SERVICE, LOCATION);
-
- roleInstanceReady = retry(new Predicate<String>() {
-
- @Override
- public boolean apply(String input) {
- Deployment.RoleInstance roleInstance = getFirstRoleInstanceInDeployment(input);
- return roleInstance != null && roleInstance.instanceStatus() == READY_ROLE;
- }
- }, 600, 5, 5, SECONDS);
-
- final DeploymentParams params = DeploymentParams.builder()
- .name(DEPLOYMENT)
- .os(OSImage.Type.LINUX)
- .sourceImageName(BaseAzureComputeApiLiveTest.IMAGE_NAME)
- .mediaLink(AzureComputeServiceAdapter.createMediaLink(storageService.serviceName(), DEPLOYMENT))
- .username("test")
- .password("supersecurePassword1!")
- .size(RoleSize.Type.BASIC_A2)
- .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
- .build();
- Deployment deployment = getOrCreateDeployment(cloudService.name(), params);
- Deployment.RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
- assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
- roleName = roleInstance.roleName();
- diskName = deployment.roleList().get(0).osVirtualHardDisk().diskName();
- }
-
- @Test(dependsOnMethods = "testCaptureVMImage")
- public void testCreate() {
- Date date = new Date();
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- VMImage image = api().list().get(5);
- VMImageParams.OSDiskConfigurationParams osParams = VMImageParams.OSDiskConfigurationParams
- .OSDiskConfiguration(CREATE_IMAGE_NAME + "osdisk",
- VMImageParams.OSDiskConfigurationParams.Caching.READ_ONLY,
- VMImageParams.OSDiskConfigurationParams.OSState.SPECIALIZED,
- image.osDiskConfiguration().os(),
- URI.create(
- "https://" + storageService.serviceName()
- + ".blob.core.windows.net/vhds/" + CAPTURED_IMAGE_NAME + "-os-" + dateFormat.format(date) + ".vhd"),
- 30,
- "Standard");
- VMImageParams params = VMImageParams.builder().name(CREATE_IMAGE_NAME).label(CREATE_IMAGE_NAME)
- .description(image.description()).recommendedVMSize(image.recommendedVMSize())
- .osDiskConfiguration(osParams).imageFamily(image.imageFamily())
- .build();
-
- String requestId = api().create(params);
- assertNotNull(requestId);
- operationSucceeded.apply(requestId);
- }
-
- @Test
- public void testCaptureVMImage() {
- String shutdownRequest = api.getVirtualMachineApiForDeploymentInService(DEPLOYMENT, CLOUD_SERVICE).shutdown(roleName);
- assertTrue(operationSucceeded.apply(shutdownRequest), shutdownRequest);
-
- CaptureVMImageParams captureParams = CaptureVMImageParams.builder()
- .osState(VMImage.OSDiskConfiguration.OSState.GENERALIZED).name(CAPTURED_IMAGE_NAME)
- .label(CAPTURED_IMAGE_NAME).recommendedVMSize(RoleSize.Type.MEDIUM).build();
-
- String requestId = api.getVirtualMachineApiForDeploymentInService(DEPLOYMENT, CLOUD_SERVICE)
- .capture(roleName, captureParams);
- assertNotNull(requestId);
- operationSucceeded.apply(requestId);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testUpdateVMImage() {
- VMImage image = api().list().get(5);
- VMImageParams params = VMImageParams.builder()
- .label("UpdatedLabel")
- .description(image.description()).recommendedVMSize(RoleSize.Type.A7)
- .build();
-
- String requestId = api().update(CAPTURED_IMAGE_NAME, params);
- assertNotNull(requestId);
- operationSucceeded.apply(requestId);
- }
-
- @Test
- public void testList() {
- List<VMImage> vmImageList = api().list();
- assertTrue(vmImageList.size() > 0);
- for (VMImage vmImage : vmImageList) {
- checkVMImage(vmImage);
- }
- }
-
- @Test(dependsOnMethods = {"testList", "testUpdateVMImage"})
- public void testDelete() {
- String requestId = api().delete(CAPTURED_IMAGE_NAME);
- assertNotNull(requestId);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- }
-
- private void checkVMImage(VMImage image) {
- assertNotNull(image.label(), "Label cannot be null for " + image);
- assertNotNull(image.name(), "Name cannot be null for " + image);
- assertNotNull(image.location(), "Location cannot be null for " + image);
-
- //OSImage
- VMImage.OSDiskConfiguration osDiskConfiguration = image.osDiskConfiguration();
- assertNotNull(osDiskConfiguration);
- assertNotNull(osDiskConfiguration.name());
- assertTrue(osDiskConfiguration.logicalSizeInGB() > 0);
-
- if (osDiskConfiguration.mediaLink() != null) {
- assertTrue(ImmutableSet.of("http", "https").contains(osDiskConfiguration.mediaLink().getScheme()),
- "MediaLink should be an http(s) url" + image);
- }
-
- if (image.category() != null) {
- assertNotEquals("", image.category().trim(), "Invalid Category for " + image);
- }
- }
-
- @AfterClass
- @Override
- protected void tearDown() {
- assertTrue(new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getDiskApi().delete(diskName);
- }
- }.apply(diskName));
- assertTrue(new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getCloudServiceApi().delete(cloudService.name());
- }
- }.apply(cloudService.name()));
- super.tearDown();
- }
-
- private VMImageApi api() {
- return api.getVMImageApi();
- }
-
- private Deployment.RoleInstance getFirstRoleInstanceInDeployment(String deployment) {
- return Iterables.getOnlyElement(api.getDeploymentApiForService(cloudService.name()).get(deployment).
- roleInstanceList());
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiMockTest.java
deleted file mode 100644
index 2396bb0..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VMImageApiMockTest.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertEquals;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.VMImageParams;
-import org.jclouds.azurecompute.domain.CaptureVMImageParams;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListVMImagesHandlerTest;
-import org.testng.annotations.Test;
-
-import java.net.URI;
-
-@Test(groups = "unit", testName = "VMImageApiMockTest")
-public class VMImageApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void listWhenFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/vmimages.xml"));
-
- try {
- VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
- assertEquals(api.list(), ListVMImagesHandlerTest.expected());
-
- assertSent(server, "GET", "/services/vmimages");
- } finally {
- server.shutdown();
- }
- }
-
- public void listWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
- assertTrue(api.list().isEmpty());
-
- assertSent(server, "GET", "/services/vmimages");
- } finally {
- server.shutdown();
- }
- }
-
- public void create() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
- VMImageParams.OSDiskConfigurationParams osParams = VMImageParams.OSDiskConfigurationParams
- .OSDiskConfiguration("ClouderaGolden-os_disk",
- VMImageParams.OSDiskConfigurationParams.Caching.READ_ONLY,
- VMImageParams.OSDiskConfigurationParams.OSState.SPECIALIZED,
- OSImage.Type.LINUX,
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
- 30,
- "Standard");
- VMImageParams params = VMImageParams.builder()
- .name("ClouderaGolden")
- .label("CDH 5.1 Evaluation")
- .description("Single click deployment")
- .recommendedVMSize(RoleSize.Type.LARGE)
- .osDiskConfiguration(osParams)
- .imageFamily("Ubuntu")
- .language("en")
- .eula("http://www.gnu.org/copyleft/gpl.html")
- .iconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
- .smallIconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
- .privacyUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
- .showGui(Boolean.TRUE)
- .build();
-
- assertEquals(api.create(params), "request-1");
-
- assertSent(server, "POST", "/services/vmimages", "/vmimageparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testUpdate() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
- VMImageParams.OSDiskConfigurationParams osParams = VMImageParams.OSDiskConfigurationParams
- .OSDiskConfiguration("ClouderaGolden-os_disk",
- VMImageParams.OSDiskConfigurationParams.Caching.READ_ONLY,
- VMImageParams.OSDiskConfigurationParams.OSState.SPECIALIZED,
- OSImage.Type.LINUX,
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
- 30,
- "Standard");
- VMImageParams params = VMImageParams.builder()
- .name("ClouderaGolden")
- .label("CDH 5.1 Evaluation")
- .description("Single click deployment")
- .recommendedVMSize(RoleSize.Type.LARGE)
- .osDiskConfiguration(osParams)
- .imageFamily("Ubuntu")
- .language("en")
- .eula("http://www.gnu.org/copyleft/gpl.html")
- .iconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
- .smallIconUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
- .privacyUri(URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"))
- .showGui(Boolean.TRUE)
- .build();
-
- assertEquals(api.update("myvmimage", params), "request-1");
-
- assertSent(server, "PUT", "/services/vmimages/myvmimage", "/vmimageparams.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
- assertEquals(api.delete("myvmimage"), "request-1");
-
- assertSent(server, "DELETE", "/services/vmimages/myvmimage");
- } finally {
- server.shutdown();
- }
- }
-
- public void deleteWhenNotFound() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(new MockResponse().setResponseCode(404));
-
- try {
- VMImageApi api = api(server.getUrl("/")).getVMImageApi();
-
- assertNull(api.delete("myvmimage"));
-
- assertSent(server, "DELETE", "/services/vmimages/myvmimage");
- } finally {
- server.shutdown();
- }
- }
-
- @Test
- public void testCaptureVMImage() throws Exception {
-
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- CaptureVMImageParams captureParams = CaptureVMImageParams.builder()
- .osState(VMImage.OSDiskConfiguration.OSState.GENERALIZED).name("capturedimage")
- .label("CapturedImage").recommendedVMSize(RoleSize.Type.MEDIUM).build();
-
- VirtualMachineApi api = api(server.getUrl("/")).
- getVirtualMachineApiForDeploymentInService("mydeployment", "myservice");
-
- assertEquals(api.capture("myvirtualmachine", captureParams), "request-1");
- assertSent(server, "POST",
- "/services/hostedservices/myservice/deployments/mydeployment/roleinstances/" +
- "myvirtualmachine/Operations",
- "/vmimageparams_mock.xml");
- } finally {
- server.shutdown();
- }
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiLiveTest.java
deleted file mode 100644
index 22d50e6..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiLiveTest.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.domain.Deployment.InstanceStatus.READY_ROLE;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertTrue;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.compute.AzureComputeServiceAdapter;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.RoleInstance;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-/*
- * Note: Live test for CaptureVMImage method is in VMImageApiLiveTest class
- */
-@Test(groups = "live", testName = "VirtualMachineApiLiveTest", singleThreaded = true)
-public class VirtualMachineApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String CLOUD_SERVICE = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, VirtualMachineApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private static final String DEPLOYMENT = String.format("%s%d-%s",
- System.getProperty("user.name"), RAND, VirtualMachineApiLiveTest.class.getSimpleName()).toLowerCase();
-
- private String roleName;
-
- private Predicate<String> roleInstanceReady;
-
- private Predicate<String> roleInstanceStopped;
-
- private CloudService cloudService;
-
- @BeforeClass(groups = {"integration", "live"})
- @Override
- public void setup() {
- super.setup();
- cloudService = getOrCreateCloudService(CLOUD_SERVICE, LOCATION);
-
- roleInstanceReady = retry(new Predicate<String>() {
-
- @Override
- public boolean apply(String input) {
- RoleInstance roleInstance = getFirstRoleInstanceInDeployment(input);
- return roleInstance != null && roleInstance.instanceStatus() == READY_ROLE;
- }
- }, 600, 5, 15, SECONDS);
-
- roleInstanceStopped = retry(new Predicate<String>() {
-
- @Override
- public boolean apply(String input) {
- RoleInstance roleInstance = getFirstRoleInstanceInDeployment(input);
- return roleInstance != null && roleInstance.instanceStatus() == Deployment.InstanceStatus.STOPPED_VM;
- }
- }, 600, 5, 15, SECONDS);
-
- final DeploymentParams params = DeploymentParams.builder()
- .name(DEPLOYMENT)
- .os(OSImage.Type.LINUX)
- .sourceImageName(BaseAzureComputeApiLiveTest.IMAGE_NAME)
- .mediaLink(AzureComputeServiceAdapter.createMediaLink(storageService.serviceName(), DEPLOYMENT))
- .username("test")
- .password("supersecurePassword1!")
- .size(RoleSize.Type.BASIC_A0)
- .externalEndpoints(ImmutableSet.of(DeploymentParams.ExternalEndpoint.inboundTcpToLocalPort(22, 22)))
- .build();
- getOrCreateDeployment(cloudService.name(), params);
- RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
- assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
- roleName = roleInstance.roleName();
- }
-
- public void testUpdate() {
- final Role role = api().getRole(roleName);
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().updateRole(roleName,
- Role.create(
- role.roleName(),
- role.roleType(),
- role.vmImage(),
- role.mediaLocation(),
- role.configurationSets(),
- role.resourceExtensionReferences(),
- role.availabilitySetName(),
- role.dataVirtualHardDisks(),
- role.osVirtualHardDisk(),
- role.roleSize(),
- role.provisionGuestAgent(),
- role.defaultWinRmCertificateThumbprint()));
- }
- }.apply(role.roleName()));
- }
-
- @Test(dependsOnMethods = "testUpdate")
- public void testShutdown() {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().shutdown(roleName);
- }
- }.apply(roleName));
-
- RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
- assertTrue(roleInstanceStopped.apply(DEPLOYMENT), roleInstance.toString());
- Logger.getAnonymousLogger().log(Level.INFO, "roleInstance stopped: {0}", roleInstance);
- }
-
- @Test(dependsOnMethods = "testShutdown")
- public void testStart() {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().start(roleName);
- }
- }.apply(roleName));
-
- RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
- assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
- Logger.getAnonymousLogger().log(Level.INFO, "roleInstance started: {0}", roleInstance);
- }
-
- @Test(dependsOnMethods = "testStart")
- public void testRestart() {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api().restart(roleName);
- }
- }.apply(roleName));
-
- final RoleInstance roleInstance = getFirstRoleInstanceInDeployment(DEPLOYMENT);
- assertTrue(roleInstanceReady.apply(DEPLOYMENT), roleInstance.toString());
- Logger.getAnonymousLogger().log(Level.INFO, "roleInstance restarted: {0}", roleInstance);
- }
-
- @AfterClass
- @Override
- protected void tearDown() {
- if (cloudService != null && api.getDeploymentApiForService(cloudService.name()).get(DEPLOYMENT) != null) {
- final List<Role> roles = api.getDeploymentApiForService(cloudService.name()).get(DEPLOYMENT).roleList();
-
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getDeploymentApiForService(cloudService.name()).delete(DEPLOYMENT);
- }
- }.apply(DEPLOYMENT));
-
- for (Role r : roles) {
- final Role.OSVirtualHardDisk disk = r.osVirtualHardDisk();
- if (disk != null) {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getDiskApi().delete(disk.diskName());
- }
- }.apply(disk.diskName()));
- }
- }
-
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getCloudServiceApi().delete(cloudService.name());
- }
- }.apply(cloudService.name()));
-
- super.tearDown();
- }
- }
-
- private VirtualMachineApi api() {
- return api.getVirtualMachineApiForDeploymentInService(DEPLOYMENT, cloudService.name());
- }
-
- private RoleInstance getFirstRoleInstanceInDeployment(String deployment) {
- return Iterables.getOnlyElement(api.getDeploymentApiForService(cloudService.name()).get(deployment).
- roleInstanceList());
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
deleted file mode 100644
index 2272c70..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualMachineApiMockTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-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
- */
-@Test(groups = "unit", testName = "VirtualMachineApiMockTest")
-public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testStart() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VirtualMachineApi api = vmApi(server);
-
- assertThat(api.start("myvm")).isEqualTo("request-1");
-
- assertSent(server, "POST",
- "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
- "/startrolepayload.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testRestart() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VirtualMachineApi api = vmApi(server);
-
- assertThat(api.restart("myvm")).isEqualTo("request-1");
-
- assertSent(server, "POST",
- "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
- "/restartrolepayload.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testShutdown() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VirtualMachineApi api = vmApi(server);
-
- assertThat(api.shutdown("myvm")).isEqualTo("request-1");
-
- assertSent(server, "POST",
- "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
- "/shutdownrolepayload.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testCapture() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VirtualMachineApi api = vmApi(server);
-
- assertThat(api.capture("myvm", "myImageName", "myImageLabel")).isEqualTo("request-1");
-
- assertSent(server, "POST",
- "/services/hostedservices/my-service/deployments/mydeployment/roleinstances/myvm/Operations",
- "/capturerolepayload.xml");
- } finally {
- server.shutdown();
- }
- }
-
- public void testUpdate() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VirtualMachineApi api = vmApi(server);
-
- Role role = RoleHandlerTest.expected();
- assertThat(api.updateRole("testvnetsg02", role)).isEqualTo("request-1");
-
- 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();
- }
- }
-
- private VirtualMachineApi vmApi(MockWebServer server) {
- return api(server.getUrl("/")).getVirtualMachineApiForDeploymentInService("mydeployment", "my-service");
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiLiveTest.java
deleted file mode 100644
index 705a377..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiLiveTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import java.util.List;
-
-import org.jclouds.azurecompute.AzureTestUtils;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiLiveTest;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-@Test(groups = "live", testName = "VirtualNetworkApiLiveTest", singleThreaded = true)
-public class VirtualNetworkApiLiveTest extends BaseAzureComputeApiLiveTest {
-
- private static final String DEFAULT_ADDRESS_SPACE = "10.0.0.0/20";
- private static final String DEFAULT_SUBNET_ADDRESS_SPACE = "10.0.0.0/23";
- private List<VirtualNetworkSite> initialVirtualNetworkSite;
-
- @BeforeSuite
- @Override
- public void setup() {
- super.setup();
-
- initialVirtualNetworkSite = AzureTestUtils.getVirtualNetworkSite(api);
-
- virtualNetworkSite = getOrCreateVirtualNetworkSite(VIRTUAL_NETWORK_NAME, LOCATION);
-
- final List<VirtualNetworkSite> virtualNetworkSites = Lists.newArrayList(Iterables.filter(
- AzureTestUtils.getVirtualNetworkSite(api),
- new AzureTestUtils.SameVirtualNetworkSiteNamePredicate(VIRTUAL_NETWORK_NAME)));
-
- final NetworkConfiguration.AddressSpace addressSpace = NetworkConfiguration.AddressSpace.create(
- DEFAULT_ADDRESS_SPACE);
-
- final ImmutableList<NetworkConfiguration.Subnet> subnets = ImmutableList.of(NetworkConfiguration.Subnet.create(
- DEFAULT_SUBNET_NAME, DEFAULT_SUBNET_ADDRESS_SPACE, null));
-
- final NetworkConfiguration networkConfiguration = api().getNetworkConfiguration();
- assertThat(networkConfiguration.virtualNetworkConfiguration().dns()).isEqualTo(
- networkConfiguration.virtualNetworkConfiguration().dns());
-
- assertThat(virtualNetworkSites.size()).isEqualTo(1);
- assertThat(virtualNetworkSites.get(0).name()).isEqualTo(VIRTUAL_NETWORK_NAME);
- assertThat(virtualNetworkSites.get(0).location()).isEqualTo(LOCATION);
- assertThat(virtualNetworkSites.get(0).addressSpace()).isEqualTo(addressSpace);
- assertThat(virtualNetworkSites.get(0).subnets()).isEqualTo(subnets);
- }
-
- @AfterSuite
- @Override
- protected void tearDown() {
- super.tearDown();
-
- final NetworkConfiguration networkConfiguration = NetworkConfiguration.create(NetworkConfiguration.VirtualNetworkConfiguration.create(null, initialVirtualNetworkSite));
- assertTrue(new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getVirtualNetworkApi().set(networkConfiguration);
- }
- }.apply("Revert VirtualNetworkConfiguration"));
- }
-
- @Test
- public void testList() {
- for (VirtualNetworkSite vns : api().list()) {
- checkVirtualNetworkSite(vns);
- }
- }
-
- private void checkVirtualNetworkSite(VirtualNetworkSite virtualNetworkSite) {
- assertNotNull(virtualNetworkSite.name(), "Name cannot be null for a VirtualNetworkSite.");
- assertNotNull(virtualNetworkSite.addressSpace(), "AddressSpace cannot be null for: " + virtualNetworkSite);
- assertNotNull(virtualNetworkSite.subnets(), "Subnets cannot be null for: " + virtualNetworkSite);
- }
-
- @Test
- public void testGetNetworkConfiguration() {
- final NetworkConfiguration networkConfiguration = api().getNetworkConfiguration();
- assertThat(networkConfiguration).isNotNull();
- for (VirtualNetworkSite vns : networkConfiguration.virtualNetworkConfiguration().virtualNetworkSites()) {
- assertThat(vns.name()).isNotEqualTo("not-existing");
- }
- }
-
- private VirtualNetworkApi api() {
- return api.getVirtualNetworkApi();
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiMockTest.java
deleted file mode 100644
index 85f13af..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/features/VirtualNetworkApiMockTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.features;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.testng.Assert.assertEquals;
-import java.util.UUID;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.azurecompute.internal.BaseAzureComputeApiMockTest;
-import org.jclouds.azurecompute.xml.ListVirtualNetworkSitesHandlerTest;
-import org.jclouds.azurecompute.xml.NetworkConfigurationHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-@Test(groups = "unit", testName = "VirtualNetworkApiMockTest")
-public class VirtualNetworkApiMockTest extends BaseAzureComputeApiMockTest {
-
- public void testGetNetworkConfiguration() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/networkconfiguration.xml"));
-
- try {
- VirtualNetworkApi api = virtualNetworkApi(server);
-
- assertEquals(api.getNetworkConfiguration(), NetworkConfigurationHandlerTest.expected());
-
- assertSent(server, "GET", "/services/networking/media");
- } finally {
- server.shutdown();
- }
- }
-
- public void testSet() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(requestIdResponse("request-1"));
-
- try {
- VirtualNetworkApi api = virtualNetworkApi(server);
-
- assertThat(api.set(NetworkConfiguration.create(
- VirtualNetworkConfiguration.create(null,
- ImmutableList.of(NetworkConfiguration.VirtualNetworkSite.create(
- UUID.randomUUID().toString(),
- "jclouds-virtual-network",
- "West Europe",
- NetworkConfiguration.AddressSpace.create("10.0.0.0/20"),
- ImmutableList.of(NetworkConfiguration.Subnet.create("jclouds-1", "10.0.0.0/23",
- null)))))))
- ).isEqualTo("request-1");
-
- assertSent(server, "PUT", "/services/networking/media");
- } finally {
- server.shutdown();
- }
- }
-
- public void testList() throws Exception {
- MockWebServer server = mockAzureManagementServer();
- server.enqueue(xmlResponse("/virtualnetworksites.xml"));
-
- try {
- VirtualNetworkApi api = virtualNetworkApi(server);
-
- assertThat(api.list()).containsExactlyElementsOf(ListVirtualNetworkSitesHandlerTest.expected());
-
- assertSent(server, "GET",
- "/services/networking/virtualnetwork");
- } finally {
- server.shutdown();
- }
- }
-
- private VirtualNetworkApi virtualNetworkApi(MockWebServer server) {
- return api(server.getUrl("/")).getVirtualNetworkApi();
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/AbstractAzureComputeApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/internal/AbstractAzureComputeApiLiveTest.java
deleted file mode 100644
index 47bfb5a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/AbstractAzureComputeApiLiveTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.internal;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_INITIAL_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_POLL_MAX_PERIOD;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.OPERATION_TIMEOUT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_FORMAT;
-import static org.jclouds.azurecompute.config.AzureComputeProperties.TCP_RULE_REGEXP;
-import java.util.Properties;
-import java.util.Random;
-
-import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.jclouds.compute.config.ComputeServiceProperties;
-import org.testng.annotations.BeforeClass;
-
-import com.google.common.base.Predicate;
-
-public abstract class AbstractAzureComputeApiLiveTest extends BaseApiLiveTest<AzureComputeApi> {
-
- protected static final int RAND = new Random().nextInt(999);
-
- protected Predicate<String> operationSucceeded;
-
- public AbstractAzureComputeApiLiveTest() {
- provider = "azurecompute";
- }
-
- @Override protected Properties setupProperties() {
- Properties properties = super.setupProperties();
- properties.put(ComputeServiceProperties.POLL_INITIAL_PERIOD, 1000);
- properties.put(ComputeServiceProperties.POLL_MAX_PERIOD, 10000);
- properties.setProperty(OPERATION_TIMEOUT, "60000");
- properties.setProperty(OPERATION_POLL_INITIAL_PERIOD, "5");
- properties.setProperty(OPERATION_POLL_MAX_PERIOD, "15");
- properties.setProperty(TCP_RULE_FORMAT, "tcp_%s-%s");
- properties.setProperty(TCP_RULE_REGEXP, "tcp_\\d{1,5}-\\d{1,5}");
- return properties;
- }
-
- @BeforeClass
- @Override
- public void setup() {
- super.setup();
- operationSucceeded = new ConflictManagementPredicate(api, 600, 5, 5, SECONDS);
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiLiveTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiLiveTest.java
deleted file mode 100644
index 220b592..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiLiveTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.internal;
-
-import static com.google.common.collect.Iterables.find;
-import static com.google.common.collect.Iterables.tryFind;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.jclouds.azurecompute.AzureTestUtils;
-import org.jclouds.azurecompute.AzureTestUtils.SameVirtualNetworkSiteNamePredicate;
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CreateStorageServiceParams;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.DeploymentParams;
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.AddressSpace;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.Subnet;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.azurecompute.util.ConflictManagementPredicate;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-
-public class BaseAzureComputeApiLiveTest extends AbstractAzureComputeApiLiveTest {
-
- public static final String DEFAULT_ADDRESS_SPACE = "10.0.0.0/20";
-
- public static final String DEFAULT_SUBNET_ADDRESS_SPACE = "10.0.0.0/23";
-
- public static final String VIRTUAL_NETWORK_NAME = "jclouds-virtual-network-live-test";
-
- public static final String DEFAULT_SUBNET_NAME = "jclouds-1";
-
- public static final String LOCATION = "West Europe";
-
- public static final String IMAGE_NAME
- = "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20150123-en-us-30GB";
-
- protected StorageService storageService;
-
- protected VirtualNetworkSite virtualNetworkSite;
-
- private String storageServiceName = null;
-
- protected String getStorageServiceName() {
- if (storageServiceName == null) {
- storageServiceName = String.format("%3.24s",
- System.getProperty("user.name") + RAND + this.getClass().getSimpleName()).toLowerCase();
- }
- return storageServiceName;
- }
-
- @BeforeClass
- @Override
- public void setup() {
- super.setup();
-
- operationSucceeded = new ConflictManagementPredicate(api, 600, 5, 5, SECONDS);
-
- final CreateStorageServiceParams params = CreateStorageServiceParams.builder().
- serviceName(getStorageServiceName()).
- label(getStorageServiceName()).
- location(LOCATION).
- accountType(StorageService.AccountType.Standard_LRS).
- build();
- storageService = getOrCreateStorageService(getStorageServiceName(), params);
- }
-
- @AfterClass(alwaysRun = true)
- @Override
- protected void tearDown() {
- super.tearDown();
-
- assertTrue(new ConflictManagementPredicate(api) {
- @Override
- protected String operation() {
- return api.getStorageAccountApi().delete(getStorageServiceName());
- }
- }.apply(getStorageServiceName()));
-
-
-
- }
-
- protected CloudService getOrCreateCloudService(final String cloudServiceName, final String location) {
- CloudService cloudService = api.getCloudServiceApi().get(cloudServiceName);
- if (cloudService != null) {
- return cloudService;
- }
-
- String requestId = api.getCloudServiceApi().createWithLabelInLocation(
- cloudServiceName, cloudServiceName, location);
-
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- cloudService = api.getCloudServiceApi().get(cloudServiceName);
- Logger.getAnonymousLogger().log(Level.INFO, "created cloudService: {0}", cloudService);
- return cloudService;
- }
-
- protected Deployment getOrCreateDeployment(final String serviceName, final DeploymentParams params) {
- Deployment deployment = api.getDeploymentApiForService(serviceName).get(params.name());
- if (deployment != null) {
- return deployment;
- }
-
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getDeploymentApiForService(serviceName).create(params);
- }
- }.apply(getStorageServiceName()));
-
- deployment = api.getDeploymentApiForService(serviceName).get(params.name());
-
- Logger.getAnonymousLogger().log(Level.INFO, "created deployment: {0}", deployment);
- return deployment;
- }
-
- protected StorageService getOrCreateStorageService(String storageServiceName, CreateStorageServiceParams params) {
- StorageService ss = api.getStorageAccountApi().get(storageServiceName);
- if (ss != null) {
- return ss;
- }
- String requestId = api.getStorageAccountApi().create(params);
- assertTrue(operationSucceeded.apply(requestId), requestId);
- Logger.getAnonymousLogger().log(Level.INFO, "operation succeeded: {0}", requestId);
- ss = api.getStorageAccountApi().get(storageServiceName);
-
- Logger.getAnonymousLogger().log(Level.INFO, "created storageService: {0}", ss);
- return ss;
- }
-
- protected VirtualNetworkSite getOrCreateVirtualNetworkSite(final String virtualNetworkSiteName, String location) {
- final List<VirtualNetworkSite> current = AzureTestUtils.getVirtualNetworkSite(api);
-
- final Optional<VirtualNetworkSite> optionalVirtualNetworkSite = tryFind(
- current,
- new SameVirtualNetworkSiteNamePredicate(virtualNetworkSiteName));
-
- if (optionalVirtualNetworkSite.isPresent()) {
- return optionalVirtualNetworkSite.get();
- }
-
- current.add(VirtualNetworkSite.create(UUID.randomUUID().toString(),
- virtualNetworkSiteName,
- location,
- AddressSpace.create(DEFAULT_ADDRESS_SPACE),
- ImmutableList.of(Subnet.create(DEFAULT_SUBNET_NAME, DEFAULT_SUBNET_ADDRESS_SPACE, null))));
-
- final NetworkConfiguration networkConfiguration
- = NetworkConfiguration.create(VirtualNetworkConfiguration.create(null, current));
-
- VirtualNetworkSite vns;
- try {
- vns = find(
- api.getVirtualNetworkApi().getNetworkConfiguration().virtualNetworkConfiguration().
- virtualNetworkSites(),
- new SameVirtualNetworkSiteNamePredicate(virtualNetworkSiteName));
- } catch (Exception e) {
- assertTrue(new ConflictManagementPredicate(api) {
-
- @Override
- protected String operation() {
- return api.getVirtualNetworkApi().set(networkConfiguration);
- }
- }.apply(virtualNetworkSiteName));
-
- vns = find(
- api.getVirtualNetworkApi().getNetworkConfiguration().virtualNetworkConfiguration().
- virtualNetworkSites(),
- new SameVirtualNetworkSiteNamePredicate(virtualNetworkSiteName));
-
- Logger.getAnonymousLogger().log(Level.INFO, "created virtualNetworkSite: {0}", vns);
- }
- return vns;
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiMockTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiMockTest.java
deleted file mode 100644
index ced04f8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/internal/BaseAzureComputeApiMockTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.internal;
-
-import static com.google.common.base.Charsets.UTF_8;
-import static com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Properties;
-import java.util.Set;
-
-import org.jclouds.ContextBuilder;
-import org.jclouds.azurecompute.AzureComputeApi;
-import org.jclouds.concurrent.config.ExecutorServiceModule;
-import org.jclouds.util.Strings2;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-public class BaseAzureComputeApiMockTest {
-
- private final Set<Module> modules = ImmutableSet.<Module>of(new ExecutorServiceModule(newDirectExecutorService()));
-
- protected String provider;
-
- private final String identity;
-
- private final String credential;
-
- public BaseAzureComputeApiMockTest() {
- provider = "azurecompute";
- // self-signed dummy cert:
- // keytool -genkey -alias test -keyalg RSA -keysize 1024 -validity 5475 -dname "CN=localhost" -keystore azure-test.p12 -storepass azurepass -storetype pkcs12
- identity = this.getClass().getResource("/azure-test.p12").getFile();
- credential = "azurepass";
- }
-
- public AzureComputeApi api(URL url) {
- Properties properties = new Properties();
- //properties.setProperty(SUBSCRIPTION_ID, "1234-1234-1234");
- return ContextBuilder.newBuilder(provider).credentials(identity, credential).endpoint(url.toString())
- .modules(modules).overrides(properties).buildApi(AzureComputeApi.class);
- }
-
- protected static MockWebServer mockAzureManagementServer() throws IOException {
- MockWebServer server = new MockWebServer();
- server.play();
- return server;
- }
-
- protected MockResponse xmlResponse(String resource) {
- return new MockResponse().addHeader("Content-Type", "application/xml").setBody(stringFromResource(resource));
- }
-
- protected MockResponse requestIdResponse(String requestId) {
- return new MockResponse().addHeader("x-ms-request-id", requestId);
- }
-
- protected String stringFromResource(String resourceName) {
- try {
- return Strings2.toStringAndClose(getClass().getResourceAsStream(resourceName));
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
- }
-
- protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
- RecordedRequest request = server.takeRequest();
- assertThat(request.getMethod()).isEqualTo(method);
- assertThat(request.getPath()).isEqualTo(path);
- assertThat(request.getHeader("x-ms-version")).isEqualTo("2014-10-01");
- assertThat(request.getHeader("Accept")).isEqualTo("application/xml");
- return request;
- }
-
- protected RecordedRequest assertSent(MockWebServer server, String method, String path, String resource)
- throws InterruptedException {
- RecordedRequest request = assertSent(server, method, path);
- assertThat(new String(request.getBody(), UTF_8)).isEqualTo(stringFromResource(resource).trim());
- return request;
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServiceHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServiceHandlerTest.java
deleted file mode 100644
index b11ae0e..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServiceHandlerTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.Collections;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudService.Status;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "HostedServiceHandlerTest")
-public class CloudServiceHandlerTest extends BaseHandlerTest {
-
- private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/hostedservice.xml");
- CloudService result = factory.create(new CloudServiceHandler(DATE_SERVICE)).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static CloudService expected() {
- return CloudService.create( //
- "neotys", // name
- "West Europe", // location
- null, // affinityGroup
- "neotys", // label
- "Implicitly created cloud service2012-08-06 14:55", // description
- Status.CREATED, // status
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T14:55:17Z"), // created
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T15:50:34Z"), // lastModified
- Collections.<String, String>emptyMap() // extendedProperties
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandlerTest.java
deleted file mode 100644
index 6390442..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/CloudServicePropertiesHandlerTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.CloudServiceProperties;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
-import org.jclouds.azurecompute.domain.Deployment.Slot;
-import org.jclouds.azurecompute.domain.Deployment.Status;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.OSVirtualHardDisk;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-@Test(groups = "unit", testName = "CloudServicePropertiesHandlerTest")
-public class CloudServicePropertiesHandlerTest extends BaseHandlerTest {
-
- private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/cloudserviceproperties.xml");
- CloudServiceProperties result = factory.create(
- new CloudServicePropertiesHandler(DATE_SERVICE, new DeploymentHandler(
- new VirtualIPHandler(),
- new RoleInstanceHandler(),
- new RoleHandler(
- new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
- new OSVirtualHardDiskHandler(),
- new DataVirtualHardDiskHandler(),
- new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler())))))
- .parse(is);
- assertEquals(result, expected());
- }
-
- public static CloudServiceProperties expected() {
- return CloudServiceProperties.create("neotys",
- URI.create("https://api/services/hostedservices/neotys"),
- "West Europe",
- null,
- "bmVvdHlz",
- "Implicitly created cloud service2012-08-06 14:55",
- CloudServiceProperties.Status.CREATED,
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T14:55:17Z"), // created
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T15:50:34Z"),
- ImmutableMap.<String, String>builder().build(),
- deploymentList()
- );
- }
-
- private static List<Deployment> deploymentList() {
- return ImmutableList.of(
- Deployment.create( //
- "node1855162607153993262-b26", // name
- Slot.PRODUCTION, // slot
- Status.RUNNING, // status
- "node1855162607153993262-b26", // label
- null, // instanceStateDetails
- null, // instanceErrorCode
- ImmutableList.of(Deployment.VirtualIP.create("191.233.85.49", true,
- "node1855162607153993262-b26ContractContract")), //virtualIPs
- ImmutableList.of(Deployment.RoleInstance.create(
- "node1855162607153993262-b26", // roleName
- "node1855162607153993262-b26", // instanceName
- InstanceStatus.READY_ROLE, //instanceStatus
- Deployment.PowerState.STARTED,
- 0,
- 0,
- RoleSize.Type.BASIC_A0,
- "10.0.2.6",
- "node1855162607153993262-b26", // hostname
- ImmutableList.of(
- Deployment.InstanceEndpoint.create(
- "tcp_22-22", // name
- "191.233.85.49", // vip
- 22, // publicPort
- 22, // localPort
- "tcp" // protocol
- )
- )
- )),
- ImmutableList.of(Role.create(
- "node1855162607153993262-b26",
- "PersistentVMRole",
- null,
- null,
- ImmutableList.of(ConfigurationSet.create(
- "NetworkConfiguration",
- ImmutableList.of(
- InputEndpoint.create("tcp_22-22", "tcp", 22, 22, "191.233.85.49",
- false, null, null, null),
- InputEndpoint.create("tcp_2375-2375", "tcp", 2375, 2375,
- "191.233.85.49", false, null, null, null)
- ),
- ImmutableList.of(ConfigurationSet.SubnetName.create("Subnet-1")),
- null,
- ImmutableList.<ConfigurationSet.PublicIP>of(),
- null)),
- ImmutableList.<Role.ResourceExtensionReference>of(),
- null,
- ImmutableList.<DataVirtualHardDisk>of(),
- OSVirtualHardDisk.create(
- "ReadWrite",
- "node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597",
- null,
- null,
- URI.create(
- "https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd"),
- "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB",
- OSImage.Type.LINUX),
- RoleSize.Type.BASIC_A0,
- null,
- null
- )),
- "jclouds" // virtualNetworkName
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
deleted file mode 100644
index 0b24069..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/DeploymentHandlerTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.Deployment;
-import org.jclouds.azurecompute.domain.Deployment.InstanceStatus;
-import org.jclouds.azurecompute.domain.Deployment.Slot;
-import org.jclouds.azurecompute.domain.Deployment.Status;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet;
-import org.jclouds.azurecompute.domain.Role.ConfigurationSet.InputEndpoint;
-import org.jclouds.azurecompute.domain.Role.OSVirtualHardDisk;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "DeploymentHandlerTest")
-public class DeploymentHandlerTest extends BaseHandlerTest {
-
- private InstanceStatus parseInstanceStatus(final String instanceStatus) {
- return InstanceStatus.fromString(instanceStatus);
- }
-
- /**
- * Covers values listed
- * <a href="http://msdn.microsoft.com/en-us/library/azure/ee460804.aspx#RoleInstanceList">here</a>.
- */
- public void parseInstanceStatus_Recognized() {
- assertEquals(parseInstanceStatus("RoleStateUnknown"), InstanceStatus.ROLE_STATE_UNKNOWN);
- assertEquals(parseInstanceStatus("CreatingVM"), InstanceStatus.CREATING_VM);
- assertEquals(parseInstanceStatus("StartingVM"), InstanceStatus.STARTING_VM);
- assertEquals(parseInstanceStatus("CreatingRole"), InstanceStatus.CREATING_ROLE);
- assertEquals(parseInstanceStatus("StartingRole"), InstanceStatus.STARTING_ROLE);
- assertEquals(parseInstanceStatus("ReadyRole"), InstanceStatus.READY_ROLE);
- assertEquals(parseInstanceStatus("BusyRole"), InstanceStatus.BUSY_ROLE);
- assertEquals(parseInstanceStatus("StoppingRole"), InstanceStatus.STOPPING_ROLE);
- assertEquals(parseInstanceStatus("StoppingVM"), InstanceStatus.STOPPING_VM);
- assertEquals(parseInstanceStatus("DeletingVM"), InstanceStatus.DELETING_VM);
- assertEquals(parseInstanceStatus("StoppedVM"), InstanceStatus.STOPPED_VM);
- assertEquals(parseInstanceStatus("RestartingRole"), InstanceStatus.RESTARTING_ROLE);
- assertEquals(parseInstanceStatus("CyclingRole"), InstanceStatus.CYCLING_ROLE);
- assertEquals(parseInstanceStatus("FailedStartingRole"), InstanceStatus.FAILED_STARTING_ROLE);
- assertEquals(parseInstanceStatus("FailedStartingVM"), InstanceStatus.FAILED_STARTING_VM);
- assertEquals(parseInstanceStatus("UnresponsiveRole"), InstanceStatus.UNRESPONSIVE_ROLE);
- assertEquals(parseInstanceStatus("StoppedDeallocated"), InstanceStatus.STOPPED_DEALLOCATED);
- assertEquals(parseInstanceStatus("Preparing"), InstanceStatus.PREPARING);
- }
-
- public void parseInstanceStatus_Unrecognized() {
- assertEquals(parseInstanceStatus("FooAddedToday"), InstanceStatus.UNRECOGNIZED);
- }
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/deployment.xml");
- Deployment result = factory.create(new DeploymentHandler(
- new VirtualIPHandler(),
- new RoleInstanceHandler(),
- new RoleHandler(
- new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
- new OSVirtualHardDiskHandler(),
- new DataVirtualHardDiskHandler(),
- new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler()))))
- .parse(is);
-
- assertEquals(result, expected());
- }
-
- public static Deployment expected() {
- return Deployment.create( //
- "node1855162607153993262-b26", // name
- Slot.PRODUCTION, // slot
- Status.RUNNING, // status
- "node1855162607153993262-b26", // label
- null, // instanceStateDetails
- null, // instanceErrorCode
- ImmutableList.of(Deployment.VirtualIP.create("191.233.85.49", true, "node1855162607153993262-b26ContractContract")), //virtualIPs
- ImmutableList.of(Deployment.RoleInstance.create(
- "node1855162607153993262-b26", // roleName
- "node1855162607153993262-b26", // instanceName
- InstanceStatus.READY_ROLE, //instanceStatus
- Deployment.PowerState.STARTED,
- 0,
- 0,
- RoleSize.Type.BASIC_A0,
- "10.0.2.6",
- "node1855162607153993262-b26", // hostname
- ImmutableList.of(
- Deployment.InstanceEndpoint.create(
- "tcp_22-22", // name
- "191.233.85.49", // vip
- 22, // publicPort
- 22, // localPort
- "tcp" // protocol
- )
- )
- )),
- ImmutableList.of(Role.create(
- "node1855162607153993262-b26",
- "PersistentVMRole",
- null,
- null,
- ImmutableList.of(ConfigurationSet.create(
- "NetworkConfiguration",
- ImmutableList.of(
- InputEndpoint.create("tcp_22-22", "tcp", 22, 22, "191.233.85.49", false, null, null, null),
- InputEndpoint.create("tcp_2375-2375", "tcp", 2375, 2375, "191.233.85.49", false, null, null, null)
- ),
- ImmutableList.of(ConfigurationSet.SubnetName.create("Subnet-1")),
- null,
- ImmutableList.<ConfigurationSet.PublicIP>of(),
- null)),
- ImmutableList.<Role.ResourceExtensionReference>of(),
- null,
- ImmutableList.<DataVirtualHardDisk>of(),
- OSVirtualHardDisk.create(
- "ReadWrite",
- "node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597",
- null,
- null,
- URI.create("https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd"),
- "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB",
- OSImage.Type.LINUX),
- RoleSize.Type.BASIC_A0,
- null,
- null
- )),
- "jclouds" // virtualNetworkName
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ErrorHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ErrorHandlerTest.java
deleted file mode 100644
index d627c23..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ErrorHandlerTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.Error;
-import org.jclouds.azurecompute.domain.Error.Code;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ErrorHandlerTest")
-public class ErrorHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/error.xml");
- Error result = factory.create(new ErrorHandler()).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static Error expected() {
- return Error.create(Code.MISSING_OR_INVALID_REQUIRED_QUERY_PARAMETER,
- "A required query parameter was not specified for this request or was specified incorrectly.");
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandlerTest.java
deleted file mode 100644
index 747b0d2..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListAffinityGroupsHandlerTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.AffinityGroup;
-import org.jclouds.azurecompute.domain.ComputeCapabilities;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListAffinityGroupsHandlerTest")
-public class ListAffinityGroupsHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream input = getClass().getResourceAsStream("/affinityGroups.xml");
- final List<AffinityGroup> result = factory.create(new ListAffinityGroupsHandler(
- new AffinityGroupHandler(new ComputeCapabilitiesHandler()))).parse(input);
-
- assertEquals(result, expected());
- }
-
- public static List<AffinityGroup> expected() {
- return ImmutableList.of(
- AffinityGroup.create(
- "Test1",
- "Test1",
- "Test 1 description",
- "West Europe",
- ImmutableList.of(
- AffinityGroup.Capability.PersistentVMRole,
- AffinityGroup.Capability.HighMemory
- ),
- new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse("2015-03-09T15:15:29Z"),
- ComputeCapabilities.create(
- ImmutableList.of(
- RoleSize.Type.A10,
- RoleSize.Type.A11
- ),
- ImmutableList.of(
- RoleSize.Type.A10,
- RoleSize.Type.A11)
- )
- ),
- AffinityGroup.create(
- "Test2",
- "Test2",
- null,
- "Southeast Asia",
- ImmutableList.of(
- AffinityGroup.Capability.PersistentVMRole,
- AffinityGroup.Capability.HighMemory
- ),
- new SimpleDateFormatDateService().iso8601DateOrSecondsDateParse("2015-03-09T15:16:10Z"),
- ComputeCapabilities.create(
- ImmutableList.of(
- RoleSize.Type.EXTRALARGE,
- RoleSize.Type.EXTRASMALL
- ),
- ImmutableList.of(
- RoleSize.Type.EXTRALARGE,
- RoleSize.Type.EXTRASMALL
- )
- )
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListCloudServicesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListCloudServicesHandlerTest.java
deleted file mode 100644
index 7f98ca7..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListCloudServicesHandlerTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.CloudService;
-import org.jclouds.azurecompute.domain.CloudService.Status;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListHostedServicesHandlerTest")
-public class ListCloudServicesHandlerTest extends BaseHandlerTest {
-
- private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/hostedservices.xml");
- ListCloudServicesHandler handler = new ListCloudServicesHandler(new CloudServiceHandler(DATE_SERVICE));
- List<CloudService> result = factory.create(handler).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<CloudService> expected() {
- return ImmutableList.of( //
- CloudService.create( //
- "neotys", // name
- "West Europe", // location
- null, // affinityGroup
- "neotys", // label
- "Implicitly created cloud service2012-08-06 14:55", // description
- Status.CREATED, // status
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T14:55:17Z"), // created
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-06T15:50:34Z"), // lastModified
- Collections.<String, String>emptyMap() // extendedProperties
- ), //
- CloudService.create( //
- "neotys3", // name
- "West Europe", // location
- null, // affinityGroup
- "neotys3", // label
- null, // description
- Status.CREATED, // status
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-07T09:00:02Z"), // created
- DATE_SERVICE.iso8601SecondsDateParse("2012-08-07T09:00:02Z"), // lastModified
- Collections.<String, String>emptyMap() // extendedProperties
- ));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandlerTest.java
deleted file mode 100644
index df7968a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDataVirtualHardDisksHandlerTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-
-@Test(groups = "unit", testName = "ListDataVirtualHardDiskHandlerTest")
-public class ListDataVirtualHardDisksHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/datavirtualharddisk.xml");
- List<DataVirtualHardDisk> result = factory
- .create(new ListDataVirtualHardDisksHandler(new DataVirtualHardDiskHandler())).parse(is);
- assertEquals(result, expected());
- }
-
- public static List<DataVirtualHardDisk> expected() {
- return ImmutableList.of(
- DataVirtualHardDisk.create(
- DataVirtualHardDisk.Caching.READ_ONLY,
- "testimage1-testimage1-0-20120817095145",
- 10,
- 30,
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
- "Standard"
- ),
- DataVirtualHardDisk.create(
- DataVirtualHardDisk.Caching.READ_WRITE,
- "testimage2-testimage2-0-20120817095145",
- 10,
- 30,
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
- "Standard"
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
deleted file mode 100644
index 8e80cea..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListDisksHandlerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Disk;
-import org.jclouds.azurecompute.domain.Disk.Attachment;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListDisksHandlerTest")
-public class ListDisksHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/disks.xml");
- List<Disk> result = factory.create(new ListDisksHandler(new DiskHandler())).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<Disk> expected() {
- return ImmutableList.of( //
- Disk.create( //
- "testimage2-testimage2-0-20120817095145", // name
- "West Europe", // location
- null, // affinityGroup
- null, //description
- OSImage.Type.LINUX, // os
- URI.create("http://blobs/vhds/testimage2-testimage2-2012-08-17.vhd"), // mediaLink
- 30, // logicalSizeInGB
- null, // attachedTo
- "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd" // sourceImage
- ), Disk.create( //
- "neotysss-neotysss-0-20120824091357", // name
- "West Europe", // location
- null, // affinityGroup
- null, //description
- OSImage.Type.WINDOWS, // os
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"), // mediaLink
- 30, // logicalSizeInGB
- Attachment.create("neotysss", "neotysss", "neotysss"), // attachedTo
- "MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd" // sourceImage
- ));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListLocationsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListLocationsHandlerTest.java
deleted file mode 100644
index 9196ccd..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListLocationsHandlerTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.Location;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListLocationsHandlerTest")
-public class ListLocationsHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/locations.xml");
- List<Location> result = factory.create(
- new ListLocationsHandler(new LocationHandler(new ComputeCapabilitiesHandler()))).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<Location> expected() {
- List<String> availableServices = ImmutableList.of("Compute", "Storage", "PersistentVMRole");
- return ImmutableList.of(
- Location.create("West US", "West US", availableServices, null),
- Location.create("East US", "East US", availableServices, null),
- Location.create("East Asia", "East Asia", availableServices, null),
- Location.create("Southeast Asia", "Southeast Asia", availableServices, null),
- Location.create("North Europe", "North Europe", availableServices, null),
- Location.create("West Europe", "West Europe", availableServices, null)
- );
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandlerTest.java
deleted file mode 100644
index 30ef02a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListNetworkSecurityGroupsHandlerTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-
-@Test(groups = "unit", testName = "ListNetworkSecurityGroupsHandlerTest")
-public class ListNetworkSecurityGroupsHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/networksecuritygroups.xml");
- final List<NetworkSecurityGroup> result = factory.create(
- new ListNetworkSecurityGroupsHandler(new NetworkSecurityGroupHandler())).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<NetworkSecurityGroup> expected() {
- return ImmutableList.of(
- NetworkSecurityGroup.create("group1", "sec group 1", "West Europe", null, null),
- NetworkSecurityGroup.create("group2", "sec group 2", "North Europe", null, null));
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListOSImagesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListOSImagesHandlerTest.java
deleted file mode 100644
index 593da0c..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListOSImagesHandlerTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListImagesHandlerTest")
-public class ListOSImagesHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/images.xml");
- List<OSImage> result = factory.create(new ListOSImagesHandler(new OSImageHandler())).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<OSImage> expected() {
- return ImmutableList.of( //
- OSImage.create( //
- "CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "Ubuntu Server 12.04 LTS", // label
- "Ubuntu Server 12.04 LTS amd64 20120528 Cloud Image", //description
- "Ubuntu Server 12.04 LTS", // imageFamily
- "Canonical", // category
- OSImage.Type.LINUX, // os
- "Canonical", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://www.ubuntu.com/project/about-ubuntu/licensing") // eula
- ),
- OSImage.create( //
- "MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd", // name
- "North Europe", // locations
- null, // affinityGroup
- "Windows Server 2008 R2 SP1, June 2012", // label
- "Windows Server 2008 R2 is a multi-purpose server.", //description
- "Windows Server 2008 R2 SP1", // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- URI.create("http://blobs/disks/mydeployment/"
- + "MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd"),
- // mediaLink
- 30, // logicalSizeInGB
- Collections.<String>emptyList() // eula
- ),
- OSImage.create( //
- "MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "Microsoft SQL Server 2012 Evaluation Edition", // label
- "SQL Server 2012 Evaluation Edition (64-bit).", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://go.microsoft.com/fwlink/?LinkID=251820",
- "http://go.microsoft.com/fwlink/?LinkID=131004") // eula
- ),
- OSImage.create( //
- "MSFT__Win2K12RC-Datacenter-201207.02-en.us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "Windows Server 2012 Release Candidate, July 2012", // label
- "Windows Server 2012 incorporates Microsoft's experience building.", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Collections.<String>emptyList() // eula
- ),
- OSImage.create( //
- "MSFT__Win2K8R2SP1-Datacenter-201207.01-en.us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "Windows Server 2008 R2 SP1, July 2012", // label
- "Windows Server 2008 R2 is a multi-purpose server.", //description
- null, // imageFamily
- "Microsoft", // category
- OSImage.Type.WINDOWS, // os
- "Microsoft", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Collections.<String>emptyList() // eula
- ),
- OSImage.create( //
- "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "OpenLogic CentOS 6.2", // label
- "This distribution of Linux is based on CentOS.", //description
- null, // imageFamily
- "OpenLogic", // category
- OSImage.Type.LINUX, // os
- "openLogic", //publisherName
- URI.create("http://blobs/disks/mydeployment/"
- + "OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd"),
- // mediaLink
- 30, //logicalSizeInGB
- Arrays.asList("http://www.openlogic.com/azure/service-agreement/") // eula
- ),
- OSImage.create( //
- "SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "openSUSE 12.1", // label
- "openSUSE is a free and Linux-based operating system!", //description
- null, // imageFamily
- "SUSE", // category
- OSImage.Type.LINUX, // os
- "SUSE", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://opensuse.org/") // eula
- ),
- OSImage.create( //
- "SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd", // name
- null, // locations
- null, // affinityGroup
- "SUSE Linux Enterprise Server", // label
- "SUSE Linux Enterprise Server is a highly reliable value.", //description
- null, // imageFamily
- "SUSE", // category
- OSImage.Type.LINUX, // os
- "SUSE", //publisherName
- null, // mediaLink
- 30, // logicalSizeInGB
- Arrays.asList("http://www.novell.com/licensing/eula/") // eula
- ),
- OSImage.create( //
- "0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.4-x64-v13.4", // name
- null, // locations
- null, // affinityGroup
- "RightImage-CentOS-6.4-x64-v13.4", // label
- null, //description
- null, // imageFamily
- "RightScale with Linux", // category
- OSImage.Type.LINUX, // os
- "RightScale with Linux",
- null, // mediaLink
- 10, // logicalSizeInGB
- Collections.<String>emptyList() // No EULA, as RightScale stuffed ';' into the field.
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandlerTest.java
deleted file mode 100644
index c14c2ee..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfileDefinitionsHandlerTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-
-@Test(groups = "unit", testName = "ListProfileDefinitionsHandlerTest")
-public class ListProfileDefinitionsHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/listprofiledefinitions.xml");
- final ListProfileDefinitionsHandler handler
- = new ListProfileDefinitionsHandler(new ProfileDefinitionHandler(
- new ProfileDefinitionMonitorHandler(), new ProfileDefinitionEndpointHandler()));
- final List<ProfileDefinition> result = factory.create(handler).parse(is);
- assertEquals(result, expected());
- }
-
- public static List<ProfileDefinition> expected() {
- final ArrayList<ProfileDefinitionMonitor> monitors = new ArrayList<ProfileDefinitionMonitor>();
- monitors.add(ProfileDefinitionMonitor.create(
- 30, 10, 3, ProfileDefinition.Protocol.HTTP, 80, "GET", "/", 200));
-
- final ArrayList<ProfileDefinitionEndpoint> endpoints = new ArrayList<ProfileDefinitionEndpoint>();
- endpoints.add(ProfileDefinitionEndpoint.create("jclouds1.cloudapp.net",
- ProfileDefinition.Status.ENABLED,
- ProfileDefinition.HealthStatus.STOPPED,
- ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
- null,
- 1,
- null));
-
- endpoints.add(ProfileDefinitionEndpoint.create("jclouds2.cloudapp.net",
- ProfileDefinition.Status.ENABLED,
- ProfileDefinition.HealthStatus.STOPPED,
- ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
- null,
- 1,
- null));
-
- return ImmutableList.of(ProfileDefinition.create(300,
- ProfileDefinition.Status.ENABLED,
- "1",
- monitors,
- ProfileDefinition.LBMethod.ROUNDROBIN,
- endpoints,
- ProfileDefinition.HealthStatus.INACTIVE));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfilesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfilesHandlerTest.java
deleted file mode 100644
index e062cd8..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListProfilesHandlerTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-
-@Test(groups = "unit", testName = "ListProfilesHandlerTest")
-public class ListProfilesHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/listprofiles.xml");
- final ListProfilesHandler handler = new ListProfilesHandler(new ProfileHandler());
- final List<Profile> result = factory.create(handler).parse(is);
- assertEquals(result, expected());
- }
-
- public static List<Profile> expected() {
- return ImmutableList.of(
- Profile.create("jclouds.trafficmanager.net",
- "jclouds",
- ProfileDefinition.Status.ENABLED,
- "1",
- ImmutableMap.<String, ProfileDefinition.Status>builder().put("1", ProfileDefinition.Status.ENABLED).build()
- ),
- Profile.create("jclouds2.trafficmanager.net",
- "jclouds2",
- ProfileDefinition.Status.DISABLED,
- null,
- ImmutableMap.<String, ProfileDefinition.Status>builder().build()
- ));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandlerTest.java
deleted file mode 100644
index f39ac96..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListReservedIPAddressHandlerTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-
-@Test(groups = "unit", testName = "ListReservedIPAddressHandlerTest")
-public class ListReservedIPAddressHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/listreservedipaddress.xml");
- final ListReservedIPAddressHandler handler
- = new ListReservedIPAddressHandler(new ReservedIPAddressHandler());
- final List<ReservedIPAddress> result = factory.create(handler).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<ReservedIPAddress> expected() {
- return ImmutableList.of(
- ReservedIPAddress.create(
- "jclouds_ip1",
- "23.101.78.155",
- "582c04d0-b169-4791-a706-f2b2bc36a742",
- null,
- ReservedIPAddress.State.CREATED,
- true,
- "jclouds_s",
- "jclouds_d",
- "West Europe"),
- ReservedIPAddress.create(
- "jclouds_ip2",
- "23.101.69.44",
- "4e00454a-351a-4dae-aabd-c933b60e967c",
- "jclouds ip2 label",
- ReservedIPAddress.State.CREATED,
- null,
- null,
- null,
- "West Europe"));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListRoleSizesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListRoleSizesHandlerTest.java
deleted file mode 100644
index d65df87..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListRoleSizesHandlerTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.RoleSize;
-
-@Test(groups = "unit", testName = "ListRoleSizesHandlerTest")
-public class ListRoleSizesHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/rolesizes.xml");
- final List<RoleSize> result = factory.create(new ListRoleSizesHandler(new RoleSizeHandler())).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<RoleSize> expected() {
- return ImmutableList.of(
- RoleSize.create(
- RoleSize.Type.A10,
- "A10 (8 cores, 57344 MB)",
- 8,
- 57344,
- Boolean.TRUE,
- Boolean.TRUE,
- 16,
- 1861268,
- 391828),
- RoleSize.create(
- RoleSize.Type.A11,
- "A11 (16 cores, 114688 MB)",
- 16,
- 114688,
- Boolean.TRUE,
- Boolean.TRUE,
- 16,
- 1861268,
- 391828)
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListServiceCertificatessHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListServiceCertificatessHandlerTest.java
deleted file mode 100644
index a7e59df..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListServiceCertificatessHandlerTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import java.net.URI;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-
-@Test(groups = "unit", testName = "ListServiceCertificatessHandlerTest")
-public class ListServiceCertificatessHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/servicecertificates.xml");
- final ListServiceCertificatesHandler handler
- = new ListServiceCertificatesHandler(new ServiceCertificateHandler());
- final List<ServiceCertificate> result = factory.create(handler).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<ServiceCertificate> expected() {
- return ImmutableList.of(
- ServiceCertificate.create(
- URI.create("https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/"
- + "hostedservices/prova/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE"),
- "8D6ED1395205C57D23E518672903FDAF144EE8AE",
- "sha1",
- "MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQ"
- + "HDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJ"
- + "KoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswC"
- + "QYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1"
- + "UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60tx"
- + "g8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42"
- + "VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZ"
- + "gq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqx"
- + "rvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQY"
- + "DVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE"
- + "FOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3D"
- + "QEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLb"
- + "ucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj"
- + "8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB7"
- + "7aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnl"
- + "wJJc/hIna1VjQJO"
- ),
- ServiceCertificate.create(
- URI.create("https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/"
- + "hostedservices/prova/certificates/sha1-CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73"),
- "CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73",
- "sha1",
- "MIIDzTCCArWgAwIBAgICEAYwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQ"
- + "QHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAY"
- + "JKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MTI2WhcNMTYwMzAzMTQ1MTI2WjBXMQsw"
- + "CQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQwwCgYDVQQLDANJZE0xFzAVB"
- + "gNVBAMMDmlkbS50aXJhc2EubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1G1ejg5eHZzhVc"
- + "a8OOD6pq0fj5VDEYIxG7CGDl4I8N3NE+svIGTYumdKUn1+FFyfgxsPCh7zfoSq0hnelRpBI3w9wfic1856/wN"
- + "z4ZsLQgcrm6wwwVXEfWGKYF1r8pTBzAYqNzQFqypSL9kU/YJfeY8XR3eJ3vQersAiKUQVQqk1H10R2aURqlCF"
- + "s1xc/ta9INNS+SLgWEBmQNnpwHfb7IsIYmPfqvbZsfAJ9KDqIdA5mjPz1elHNLLMi4phGPpbAH7AszZbrRaFt"
- + "bI0o5nAL6tS37f3iEV1L7cWo/am6MGg0PF4T9GRdL8D0gl9BDskMUHD+n8cJOEO2sQVJBKszwIDAQABo3sweT"
- + "AJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4"
- + "EFgQU4GbbmOK+5WNBil8edbwKYHIhCJMwHwYDVR0jBBgwFoAUOqF46Xh2ldh6WE8L9sz5V03UBekwDQYJKoZI"
- + "hvcNAQELBQADggEBAMqr+GoBBf7UPo4dBoQef4OhrNGCcYz6E0B8WID7ZG6KLv6TyTi5iEna/bbc60HisVqUo"
- + "FIMyMa+bHiLNwObNQ/+edklNyPe48OHYX2421x3H//M/n6SpRxP5i1NSlqtcw6WnXzaTHUwV8v+5ctG1QAKrJ"
- + "+nwwDRWzALxPJvw4TDeggRIkzAqIySrN+nRkVNliGlnZEI8NjJdelS/83E02LAxj3sPJp1yS5lWia88eNg6UX"
- + "Y2vQf9CwrXjOz0aOvVOwHJxXBxS0tqv+bg0D5B640WdcZOhgzDxte6DDkiSU+P7nZUW1Bwtk0WD9GKN2+YPg/"
- + "ElLLB5nSEGZSVN6Xfn8="
- ));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListStorageServiceHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListStorageServiceHandlerTest.java
deleted file mode 100644
index 4f9935a..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListStorageServiceHandlerTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import org.assertj.core.util.Lists;
-import org.jclouds.azurecompute.domain.StorageService;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ListStorageServiceHandlerTest")
-public class ListStorageServiceHandlerTest extends BaseHandlerTest {
-
- private static final DateService DATE_SERVICE = new SimpleDateFormatDateService();
-
- public void list() throws MalformedURLException {
- final InputStream input = getClass().getResourceAsStream("/storageservices.xml");
- final List<StorageService> result = factory.create(
- new ListStorageServicesHandler(new StorageServiceHandler(DATE_SERVICE))).
- parse(input);
- assertEquals(result, expected());
- }
-
- public static List<StorageService> expected() throws MalformedURLException {
- final StorageService.StorageServiceProperties props = StorageService.StorageServiceProperties.create(
- null,
- null,
- "West Europe",
- "serviceName",
- StorageService.Status.Created,
- ImmutableList.of(
- new URL("https://serviceName.blob.core.windows.net/"),
- new URL("https://serviceName.queue.core.windows.net/"),
- new URL("https://serviceName.table.core.windows.net/")),
- "West Europe",
- StorageService.RegionStatus.Available,
- null,
- null,
- null,
- DATE_SERVICE.iso8601DateOrSecondsDateParse("2015-03-30T10:15:00Z"),
- Lists.<String>emptyList(),
- Lists.<URL>emptyList(),
- StorageService.AccountType.Standard_LRS);
- final Map<String, String> extProps = ImmutableMap.of(
- "ResourceGroup", "Default-Storage-WestEurope",
- "ResourceLocation", "West Europe");
-
- return ImmutableList.of(StorageService.create(
- new URL("https://management.core.windows.net/subscriptionid/services/storageservices/serviceName"),
- "serviceName",
- props,
- extProps,
- null));
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVMImagesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVMImagesHandlerTest.java
deleted file mode 100644
index 4befa28..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVMImagesHandlerTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import com.google.common.collect.ImmutableList;
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.VMImage;
-import org.jclouds.date.DateService;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-
-@Test(groups = "unit", testName = "ListVMImagesHandlerTest")
-public class ListVMImagesHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/vmimages.xml");
- List<VMImage> result = factory.create(new ListVMImagesHandler(new VMImageHandler(
- new DataVirtualHardDiskHandler(),
- new OSConfigHandler()
- ))).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<VMImage> expected() {
- DateService dateService = new SimpleDateFormatDateService();
- return ImmutableList.of(
- VMImage.create("1acf693f34c74e86a50be61cb631ddfe__ClouderaGolden-202406-699696",
- "CDH 5.1 Evaluation",
- "Public",
- "Single click deployment of CDH 5.1 Evaluation for MR, HDFS and HIVE",
- OSDiskConfig(),
- dataDiskConfig(),
- null,
- null,
- null,
- "East Asia;Southeast Asia;Australia East;Australia Southeast;Brazil South;North Europe",
- null,
- dateService.iso8601DateOrSecondsDateParse("2014-07-05T14:55:17Z"),
- dateService.iso8601DateOrSecondsDateParse("2014-09-06T22:58:11Z"),
- null,
- "CDH 5.1 Evaluation",
- null,
- false,
- "http://www.gnu.org/copyleft/gpl.html",
- null,
- null,
- URI.create("http://www.cloudera.com/content/cloudera/en/privacy-policy.html"),
- dateService.iso8601DateOrSecondsDateParse("2012-07-05T14:55:17Z")
- )
- );
- }
-
- public static VMImage.OSDiskConfiguration OSDiskConfig() {
- return VMImage.OSDiskConfiguration.create("ClouderaGolden-202406-699696-os-2014-10-06",
- VMImage.OSDiskConfiguration.Caching.READ_WRITE,
- VMImage.OSDiskConfiguration.OSState.SPECIALIZED,
- OSImage.Type.LINUX,
- null,
- 30,
- null);
- }
-
- public static List<DataVirtualHardDisk> dataDiskConfig() {
- return ImmutableList.of(
- DataVirtualHardDisk.create(
- DataVirtualHardDisk.Caching.READ_ONLY,
- "testimage1-testimage1-0-20120817095145",
- 10,
- 30,
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
- "Standard"
- ),
- DataVirtualHardDisk.create(
- DataVirtualHardDisk.Caching.READ_WRITE,
- "testimage2-testimage2-0-20120817095145",
- 20,
- 30,
- URI.create("http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd"),
- "Standard"
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandlerTest.java
deleted file mode 100644
index ecbb663..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ListVirtualNetworkSitesHandlerTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-import java.io.InputStream;
-import java.util.List;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.azurecompute.domain.NetworkConfiguration.VirtualNetworkSite;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "ListVirtualNetworkSitesHandlerTest")
-public class ListVirtualNetworkSitesHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/virtualnetworksites.xml");
- List<VirtualNetworkSite> result = factory.create(new ListVirtualNetworkSitesHandler(new VirtualNetworkSiteHandler())).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static List<VirtualNetworkSite> expected() {
- return ImmutableList.of(
- VirtualNetworkSite.create(
- "39d0d14b-fc1d-496f-8928-b5a13a6f4b64",
- "Group Group testDocker",
- "West Europe",
- NetworkConfiguration.AddressSpace.create("10.1.0.0/16"),
- ImmutableList.of(NetworkConfiguration.Subnet.create("Subnet-1", "10.1.0.0/24", null))
- ),
- VirtualNetworkSite.create(
- "12252126-cffc-4fac-8ba4-afa7150a8d4a",
- "Group Group-1 dockertest",
- "West Europe",
- NetworkConfiguration.AddressSpace.create("10.2.0.0/16"),
- ImmutableList.of(NetworkConfiguration.Subnet.create("Subnet-1", "10.2.0.0/24", null))
- )
- );
- }
-
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandlerTest.java
deleted file mode 100644
index b6a7e65..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkConfigurationHandlerTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.NetworkConfiguration;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "NetworkConfigurationHandlerTest")
-public class NetworkConfigurationHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/networkconfiguration.xml");
- NetworkConfiguration result = factory.create(new NetworkConfigurationHandler(new VirtualNetworkConfigurationHandler())).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static NetworkConfiguration expected() {
- return NetworkConfiguration.create(
- NetworkConfiguration.VirtualNetworkConfiguration.create(null,
- ImmutableList.of(NetworkConfiguration.VirtualNetworkSite.create(
- null,
- "jclouds-virtual-network",
- "West Europe",
- NetworkConfiguration.AddressSpace.create("10.0.0.0/20"),
- ImmutableList.of(NetworkConfiguration.Subnet.create("jclouds-1", "10.0.0.0/23", null))))
- )
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandlerTest.java
deleted file mode 100644
index ccf6c82..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/NetworkSecurityGroupHandlerTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.NetworkSecurityGroup;
-import org.jclouds.azurecompute.domain.Rule;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "NetworkSecurityGroupHandlerTest")
-public class NetworkSecurityGroupHandlerTest extends BaseHandlerTest {
-
- public void testFull() {
- final InputStream is = getClass().getResourceAsStream("/networksecuritygroupfulldetails.xml");
- final NetworkSecurityGroup result = factory.create(new NetworkSecurityGroupHandler()).parse(is);
- assertEquals(result, expectedFull());
- }
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/networksecuritygroup.xml");
- final NetworkSecurityGroup result = factory.create(new NetworkSecurityGroupHandler()).parse(is);
- assertEquals(result, expected());
- }
-
- public void testForSubnet() {
- final InputStream is = getClass().getResourceAsStream("/networksecuritygroupforsubnet.xml");
- final NetworkSecurityGroup result = factory.create(new NetworkSecurityGroupHandler()).parse(is);
- assertEquals(result, expectedForSubnet());
- }
-
- public static NetworkSecurityGroup expected() {
- return NetworkSecurityGroup.create("group1", "sec group 1", "West Europe", null, null);
- }
-
- public static NetworkSecurityGroup expectedForSubnet() {
- return NetworkSecurityGroup.create("group1", null, null, NetworkSecurityGroup.State.CREATED, null);
- }
-
- public static NetworkSecurityGroup expectedFull() {
- return NetworkSecurityGroup.create( //
- "jclouds-NSG", // name
- "jclouds-NSG", // label
- "West Europe", // location
- null, // Network Security Group state
- ImmutableList.of(
- Rule.create("tcp_10-20", // name
- Rule.Type.Inbound, // type
- "100", // priority
- Rule.Action.Allow, // action
- "INTERNET", // sourceAddressPrefix
- "*", // sourcePortRange
- "*", // destinationAddressPrefix
- "10-20", // destinationPortRange
- Rule.Protocol.TCP, // protocol
- "Active", // state
- null // isDefault
- ),
- Rule.create("ALLOW VNET INBOUND", // name
- Rule.Type.Inbound, // type
- "65000", // priority
- Rule.Action.Allow, // action
- "VIRTUAL_NETWORK", // sourceAddressPrefix
- "*", // sourcePortRange
- "VIRTUAL_NETWORK", // destinationAddressPrefix
- "*", // destinationPortRange
- Rule.Protocol.ALL, // protocol
- "Active", // state
- true // isDefault
- ),
- Rule.create("ALLOW VNET OUTBOUND", // name
- Rule.Type.Outbound, // type
- "65000", // priority
- Rule.Action.Allow, // action
- "VIRTUAL_NETWORK", // sourceAddressPrefix
- "*", // sourcePortRange
- "VIRTUAL_NETWORK", // destinationAddressPrefix
- "*", // destinationPortRange
- Rule.Protocol.ALL, // protocol
- "Active", // state
- true // isDefault
- ),
- Rule.create("ALLOW AZURE LOAD BALANCER INBOUND", // name
- Rule.Type.Inbound, // type
- "65001", // priority
- Rule.Action.Allow, // action
- "AZURE_LOADBALANCER", // sourceAddressPrefix
- "*", // sourcePortRange
- "*", // destinationAddressPrefix
- "*", // destinationPortRange
- Rule.Protocol.ALL, // protocol
- "Active", // state
- true // isDefault
- ),
- Rule.create("ALLOW INTERNET OUTBOUND", // name
- Rule.Type.Outbound, // type
- "65001", // priority
- Rule.Action.Allow, // action
- "*", // sourceAddressPrefix
- "*", // sourcePortRange
- "INTERNET", // destinationAddressPrefix
- "*", // destinationPortRange
- Rule.Protocol.ALL, // protocol
- "Active", // state
- true // isDefault
- ),
- Rule.create("DENY ALL OUTBOUND", // name
- Rule.Type.Outbound, // type
- "65500", // priority
- Rule.Action.Deny, // action
- "*", // sourceAddressPrefix
- "*", // sourcePortRange
- "*", // destinationAddressPrefix
- "*", // destinationPortRange
- Rule.Protocol.ALL, // protocol
- "Active", // state
- true // isDefault
- ),
- Rule.create("DENY ALL INBOUND", // name
- Rule.Type.Inbound, // type
- "65500", // priority
- Rule.Action.Deny, // action
- "*", // sourceAddressPrefix
- "*", // sourcePortRange
- "*", // destinationAddressPrefix
- "*", // destinationPortRange
- Rule.Protocol.ALL, // protocol
- "Active", // state
- true // isDefault
- )
- ) // rules
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/OperationHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/OperationHandlerTest.java
deleted file mode 100644
index 635c5df..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/OperationHandlerTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.Operation;
-import org.jclouds.azurecompute.domain.Operation.Status;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "OperationHandlerTest")
-public class OperationHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/operation.xml");
- Operation result = factory.create(new OperationHandler()).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static Operation expected() {
- return Operation.create("request-id", Status.FAILED, 400, ErrorHandlerTest.expected());
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandlerTest.java
deleted file mode 100644
index 292a46e..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileDefinitionHandlerTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import org.jclouds.azurecompute.domain.ProfileDefinition;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-import org.jclouds.azurecompute.domain.ProfileDefinitionEndpoint;
-import org.jclouds.azurecompute.domain.ProfileDefinitionMonitor;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ProfileDefinitionHandlerTest")
-public class ProfileDefinitionHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/profiledefinition.xml");
- final ProfileDefinition result = factory.create(new ProfileDefinitionHandler(
- new ProfileDefinitionMonitorHandler(), new ProfileDefinitionEndpointHandler())).parse(is);
- assertEquals(result, expected());
- }
-
- public static ProfileDefinition expected() {
- final ArrayList<ProfileDefinitionMonitor> monitors = new ArrayList<ProfileDefinitionMonitor>();
- monitors.add(ProfileDefinitionMonitor.create(
- 30, 10, 3, ProfileDefinition.Protocol.HTTP, 80, "GET", "/", 200));
-
- final ArrayList<ProfileDefinitionEndpoint> endpoints = new ArrayList<ProfileDefinitionEndpoint>();
- endpoints.add(ProfileDefinitionEndpoint.create("jclouds1.cloudapp.net",
- Status.ENABLED,
- ProfileDefinition.HealthStatus.STOPPED,
- ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
- null,
- 1,
- null));
-
- endpoints.add(ProfileDefinitionEndpoint.create("jclouds2.cloudapp.net",
- Status.ENABLED,
- ProfileDefinition.HealthStatus.STOPPED,
- ProfileDefinitionEndpoint.Type.CLOUDSERVICE,
- null,
- 1,
- null));
-
- return ProfileDefinition.create(300,
- Status.ENABLED,
- "1",
- monitors,
- ProfileDefinition.LBMethod.ROUNDROBIN,
- endpoints,
- ProfileDefinition.HealthStatus.INACTIVE
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileHandlerTest.java
deleted file mode 100644
index 173534b..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ProfileHandlerTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.azurecompute.domain.Profile;
-import org.jclouds.azurecompute.domain.ProfileDefinition.Status;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-
-@Test(groups = "unit", testName = "ProfileHandlerTest")
-public class ProfileHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/profile.xml");
- final Profile result = factory.create(new ProfileHandler()).parse(is);
- assertEquals(result, expected());
- }
-
- public static Profile expected() {
- return Profile.create("jclouds.trafficmanager.net",
- "jclouds",
- Status.ENABLED,
- "1",
- ImmutableMap.<String, Status>builder().put("1", Status.ENABLED).build()
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandlerTest.java
deleted file mode 100644
index 8758254..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ReservedIPAddressHandlerTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import org.jclouds.azurecompute.domain.ReservedIPAddress;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ReservedIPAddressHandlerTest")
-public class ReservedIPAddressHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/reservedipaddress.xml");
- final ReservedIPAddress result = factory.create(new ReservedIPAddressHandler()).parse(is);
- assertEquals(result, expected());
- }
-
- public static ReservedIPAddress expected() {
- return ReservedIPAddress.create(
- "jclouds_ip1",
- "23.101.78.155",
- "582c04d0-b169-4791-a706-f2b2bc36a742",
- null,
- ReservedIPAddress.State.CREATED,
- true,
- "jclouds_s",
- "jclouds_d",
- "West Europe");
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/RoleHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/RoleHandlerTest.java
deleted file mode 100644
index 7b2c5d6..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/RoleHandlerTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.jclouds.azurecompute.domain.DataVirtualHardDisk;
-import org.jclouds.azurecompute.domain.OSImage;
-import org.jclouds.azurecompute.domain.Role;
-import org.jclouds.azurecompute.domain.RoleSize;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "unit", testName = "RoleHandlerTest")
-public class RoleHandlerTest extends BaseHandlerTest {
-
- public void test() {
- InputStream is = getClass().getResourceAsStream("/role.xml");
- Role result = factory.create(new RoleHandler(new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
- new OSVirtualHardDiskHandler(),
- new DataVirtualHardDiskHandler(),
- new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler()))).parse(is);
-
- assertEquals(result, expected());
- }
-
- public static Role expected() {
- return Role.create(
- "testvnetsg02",
- "PersistentVMRole",
- null,
- null,
- ImmutableList.of(Role.ConfigurationSet.create(
- "NetworkConfiguration",
- ImmutableList.of(
- Role.ConfigurationSet.InputEndpoint.create("PowerShell", "tcp", 5986, 5986, "23.101.193.92", false, null, null, null),
- Role.ConfigurationSet.InputEndpoint.create("Remote Desktop", "tcp", 3389, 59440, "23.101.193.92", false, null, null, null)
- ),
- ImmutableList.of(Role.ConfigurationSet.SubnetName.create("Subnet-1")),
- null,
- ImmutableList.<Role.ConfigurationSet.PublicIP>of(),
- "vnetnsgsg01")
- ),
- ImmutableList.of(
- Role.ResourceExtensionReference.create("BGInfo", "Microsoft.Compute", "BGInfo", "1.*", ImmutableList.<Role.ResourceExtensionReference.ResourceExtensionParameterValue>of(), "Enable")
- ),
- null,
- ImmutableList.<DataVirtualHardDisk>of(),
- Role.OSVirtualHardDisk.create(
- "ReadWrite",
- "testvnetsg02-testvnetsg02-0-201502180825130518",
- null,
- null,
- URI.create("https://portalvhdsxz8nc6chc32j1.blob.core.windows.net/vhds/testvnetsg02-testvnetsg02-2015-02-18.vhd"),
- "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd",
- OSImage.Type.WINDOWS),
- RoleSize.Type.SMALL,
- true,
- null
- );
- }
-
- public void test2() {
- InputStream is = getClass().getResourceAsStream("/role2.xml");
- Role result = factory.create(new RoleHandler(new ConfigurationSetHandler(new InputEndpointHandler(), new SubnetNameHandler()),
- new OSVirtualHardDiskHandler(),
- new DataVirtualHardDiskHandler(),
- new ResourceExtensionReferenceHandler(new ResourceExtensionParameterValueHandler()))).parse(is);
-
- assertEquals(result, expected2());
- }
-
- public static Role expected2() {
- return Role.create(
- "test",
- "PersistentVMRole",
- null,
- null,
- ImmutableList.of(Role.ConfigurationSet.create(
- "NetworkConfiguration",
- ImmutableList.of(
- Role.ConfigurationSet.InputEndpoint.create("SSH", "tcp", 22, 22, "168.61.166.228", false, null, null, null)
- ),
- ImmutableList.of(Role.ConfigurationSet.SubnetName.create("Subnet-1")),
- null,
- ImmutableList.<Role.ConfigurationSet.PublicIP>of(),
- null)
- ),
- ImmutableList.<Role.ResourceExtensionReference>of(),
- null,
- ImmutableList.<DataVirtualHardDisk>of(),
- Role.OSVirtualHardDisk.create(
- "ReadWrite",
- "test-1452267291453",
- null,
- null,
- URI.create("test"),
- null,
- OSImage.Type.LINUX),
- RoleSize.Type.BASIC_A1,
- true,
- null
- );
- }
-}
diff --git a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ServiceCertificateHandlerTest.java b/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ServiceCertificateHandlerTest.java
deleted file mode 100644
index b98b2a3..0000000
--- a/azurecompute/src/test/java/org/jclouds/azurecompute/xml/ServiceCertificateHandlerTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.azurecompute.xml;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import org.jclouds.azurecompute.domain.ServiceCertificate;
-import org.jclouds.http.functions.BaseHandlerTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "ServiceCertificateHandlerTest")
-public class ServiceCertificateHandlerTest extends BaseHandlerTest {
-
- public void test() {
- final InputStream is = getClass().getResourceAsStream("/servicecertificate.xml");
- final ServiceCertificate result = factory.create(new ServiceCertificateHandler()).parse(is);
- assertEquals(result, expected());
- }
-
- public static ServiceCertificate expected() {
- return ServiceCertificate.create(
- null,
- null,
- null,
- "MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXN"
- + "jYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRp"
- + "cmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPM"
- + "A0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPAD"
- + "CCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP"
- + "8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7"
- + "v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1v"
- + "FoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3"
- + "BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl"
- + "4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN"
- + "3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdH"
- + "nj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK"
- + "+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO"
- );
- }
-}
diff --git a/azurecompute/src/test/resources/affinityGroup.xml b/azurecompute/src/test/resources/affinityGroup.xml
deleted file mode 100644
index 694cd98..0000000
--- a/azurecompute/src/test/resources/affinityGroup.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<AffinityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Name>Test1</Name>
- <Label>VGVzdDE=</Label>
- <Description>Test 1 description</Description>
- <Location>West Europe</Location>
- <Capabilities>
- <Capability>PersistentVMRole</Capability>
- <Capability>HighMemory</Capability>
- </Capabilities>
- <CreatedTime>2015-03-09T15:15:29Z</CreatedTime>
- <ComputeCapabilities>
- <WebWorkerRoleSizes>
- <RoleSize>A10</RoleSize>
- <RoleSize>A11</RoleSize>
- </WebWorkerRoleSizes>
- <VirtualMachinesRoleSizes>
- <RoleSize>A10</RoleSize>
- <RoleSize>A11</RoleSize>
- </VirtualMachinesRoleSizes>
- </ComputeCapabilities>
-</AffinityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/affinityGroups.xml b/azurecompute/src/test/resources/affinityGroups.xml
deleted file mode 100644
index 75a1968..0000000
--- a/azurecompute/src/test/resources/affinityGroups.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<AffinityGroups xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <AffinityGroup>
- <Name>Test1</Name>
- <Label>VGVzdDE=</Label>
- <Description>Test 1 description</Description>
- <Location>West Europe</Location>
- <Capabilities>
- <Capability>PersistentVMRole</Capability>
- <Capability>HighMemory</Capability>
- </Capabilities>
- <CreatedTime>2015-03-09T15:15:29Z</CreatedTime>
- <ComputeCapabilities>
- <WebWorkerRoleSizes>
- <RoleSize>A10</RoleSize>
- <RoleSize>A11</RoleSize>
- </WebWorkerRoleSizes>
- <VirtualMachinesRoleSizes>
- <RoleSize>A10</RoleSize>
- <RoleSize>A11</RoleSize>
- </VirtualMachinesRoleSizes>
- </ComputeCapabilities>
- </AffinityGroup>
- <AffinityGroup>
- <Name>Test2</Name>
- <Label>VGVzdDI=</Label>
- <Description/>
- <Location>Southeast Asia</Location>
- <Capabilities>
- <Capability>PersistentVMRole</Capability>
- <Capability>HighMemory</Capability>
- </Capabilities>
- <CreatedTime>2015-03-09T15:16:10Z</CreatedTime>
- <ComputeCapabilities>
- <WebWorkerRoleSizes>
- <RoleSize>ExtraLarge</RoleSize>
- <RoleSize>ExtraSmall</RoleSize>
- </WebWorkerRoleSizes>
- <VirtualMachinesRoleSizes>
- <RoleSize>ExtraLarge</RoleSize>
- <RoleSize>ExtraSmall</RoleSize>
- </VirtualMachinesRoleSizes>
- </ComputeCapabilities>
- </AffinityGroup>
-</AffinityGroups>
diff --git a/azurecompute/src/test/resources/azure-test.p12 b/azurecompute/src/test/resources/azure-test.p12
deleted file mode 100644
index 5250dd6..0000000
--- a/azurecompute/src/test/resources/azure-test.p12
+++ /dev/null
Binary files differ
diff --git a/azurecompute/src/test/resources/capturerolepayload.xml b/azurecompute/src/test/resources/capturerolepayload.xml
deleted file mode 100644
index 36396ff..0000000
--- a/azurecompute/src/test/resources/capturerolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CaptureRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>CaptureRoleOperation</OperationType><PostCaptureAction>Delete</PostCaptureAction><TargetImageLabel>myImageLabel</TargetImageLabel><TargetImageName>myImageName</TargetImageName></CaptureRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/checkdnsprefixavailability.xml b/azurecompute/src/test/resources/checkdnsprefixavailability.xml
deleted file mode 100644
index 1b525ad..0000000
--- a/azurecompute/src/test/resources/checkdnsprefixavailability.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<AvailabilityResponse xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Result>true</Result>
-</AvailabilityResponse>
diff --git a/azurecompute/src/test/resources/cloudserviceproperties.xml b/azurecompute/src/test/resources/cloudserviceproperties.xml
deleted file mode 100644
index bd2d58f..0000000
--- a/azurecompute/src/test/resources/cloudserviceproperties.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<HostedService xmlns="http://schemas.microsoft.com/windowsazure">
- <Url>https://api/services/hostedservices/neotys</Url>
- <ServiceName>neotys</ServiceName>
- <HostedServiceProperties>
- <Description>Implicitly created cloud service2012-08-06 14:55</Description>
- <Location>West Europe</Location>
- <Label>bmVvdHlz</Label>
- <Status>Created</Status>
- <DateCreated>2012-08-06T14:55:17Z</DateCreated>
- <DateLastModified>2012-08-06T15:50:34Z</DateLastModified>
- <ExtendedProperties/>
- </HostedServiceProperties>
- <Deployments>
- <Deployment xmlns="http://schemas.microsoft.com/windowsazure">
- <Name>node1855162607153993262-b26</Name>
- <DeploymentSlot>Production</DeploymentSlot>
- <PrivateID>706868c87c1847f28a47644b68f3babf</PrivateID>
- <Status>Running</Status>
- <Label>bm9kZTE4NTUxNjI2MDcxNTM5OTMyNjItYjI2</Label>
- <Url>http://node1855162607153993262-b26.cloudapp.net/</Url>
- <Configuration>
- PFNlcnZpY2VDb25maWd1cmF0aW9uIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlcnZpY2VIb3N0aW5nLzIwMDgvMTAvU2VydmljZUNvbmZpZ3VyYXRpb24iPg0KICA8Um9sZSBuYW1lPSJub2RlMTg1NTE2MjYwNzE1Mzk5MzI2Mi1iMjYiPg0KICAgIDxJbnN0YW5jZXMgY291bnQ9IjEiIC8+DQogIDwvUm9sZT4NCjwvU2VydmljZUNvbmZpZ3VyYXRpb24+
- </Configuration>
- <RoleInstanceList>
- <RoleInstance>
- <RoleName>node1855162607153993262-b26</RoleName>
- <InstanceName>node1855162607153993262-b26</InstanceName>
- <InstanceStatus>ReadyRole</InstanceStatus>
- <InstanceUpgradeDomain>0</InstanceUpgradeDomain>
- <InstanceFaultDomain>0</InstanceFaultDomain>
- <InstanceSize>Basic_A0</InstanceSize>
- <InstanceStateDetails/>
- <IpAddress>10.0.2.6</IpAddress>
- <InstanceEndpoints>
- <InstanceEndpoint>
- <Name>tcp_22-22</Name>
- <Vip>191.233.85.49</Vip>
- <PublicPort>22</PublicPort>
- <LocalPort>22</LocalPort>
- <Protocol>tcp</Protocol>
- </InstanceEndpoint>
- </InstanceEndpoints>
- <PowerState>Started</PowerState>
- <HostName>node1855162607153993262-b26</HostName>
- </RoleInstance>
- </RoleInstanceList>
- <UpgradeDomainCount>1</UpgradeDomainCount>
- <RoleList>
- <Role>
- <RoleName>node1855162607153993262-b26</RoleName>
- <OsVersion/>
- <RoleType>PersistentVMRole</RoleType>
- <ConfigurationSets>
- <ConfigurationSet>
- <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
- <InputEndpoints>
- <InputEndpoint>
- <LocalPort>22</LocalPort>
- <Name>tcp_22-22</Name>
- <Port>22</Port>
- <Protocol>tcp</Protocol>
- <Vip>191.233.85.49</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- <InputEndpoint>
- <LocalPort>2375</LocalPort>
- <Name>tcp_2375-2375</Name>
- <Port>2375</Port>
- <Protocol>tcp</Protocol>
- <Vip>191.233.85.49</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- </InputEndpoints>
- <SubnetNames>
- <SubnetName>Subnet-1</SubnetName>
- </SubnetNames>
- </ConfigurationSet>
- </ConfigurationSets>
- <DataVirtualHardDisks/>
- <OSVirtualHardDisk>
- <HostCaching>ReadWrite</HostCaching>
- <DiskName>node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597
- </DiskName>
- <MediaLink>
- https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd
- </MediaLink>
- <SourceImageName>
- b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB
- </SourceImageName>
- <OS>Linux</OS>
- </OSVirtualHardDisk>
- <RoleSize>Basic_A0</RoleSize>
- </Role>
- </RoleList>
- <SdkVersion/>
- <Locked>false</Locked>
- <RollbackAllowed>false</RollbackAllowed>
- <VirtualNetworkName>jclouds</VirtualNetworkName>
- <CreatedTime>2014-12-22T17:04:35Z</CreatedTime>
- <LastModifiedTime>2014-12-22T17:07:02Z</LastModifiedTime>
- <ExtendedProperties/>
- <PersistentVMDowntime>
- <StartTime>2014-12-02T01:25:12Z</StartTime>
- <EndTime>2014-12-04T01:25:12Z</EndTime>
- <Status>PersistentVMUpdateScheduled</Status>
- </PersistentVMDowntime>
- <VirtualIPs>
- <VirtualIP>
- <Address>191.233.85.49</Address>
- <IsDnsProgrammed>true</IsDnsProgrammed>
- <Name>node1855162607153993262-b26ContractContract</Name>
- </VirtualIP>
- </VirtualIPs>
- <InternalDnsSuffix>node1855162607153993262-b26.a5.internal.cloudapp.net</InternalDnsSuffix>
- <LoadBalancers/>
- </Deployment>
- </Deployments>
- <DefaultWinRmCertificateThumbprint>thumbprint-of-winrm-certificate</DefaultWinRmCertificateThumbprint>
-</HostedService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/create_hostedservice_location.xml b/azurecompute/src/test/resources/create_hostedservice_location.xml
deleted file mode 100644
index 076f562..0000000
--- a/azurecompute/src/test/resources/create_hostedservice_location.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CreateHostedService xmlns="http://schemas.microsoft.com/windowsazure"><ServiceName>myservice</ServiceName><Label>c2VydmljZSBtaW5l</Label><Location>West US</Location></CreateHostedService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/createaffinitygroupparams.xml b/azurecompute/src/test/resources/createaffinitygroupparams.xml
deleted file mode 100644
index 40969e2..0000000
--- a/azurecompute/src/test/resources/createaffinitygroupparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CreateAffinityGroup xmlns="http://schemas.microsoft.com/windowsazure"><Name>mygroup</Name><Label>Zm9v</Label><Location>West Europe</Location></CreateAffinityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/createprofileparams.xml b/azurecompute/src/test/resources/createprofileparams.xml
deleted file mode 100644
index aa518b5..0000000
--- a/azurecompute/src/test/resources/createprofileparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Profile xmlns="http://schemas.microsoft.com/windowsazure"><DomainName>jclouds.trafficmanager.net</DomainName><Name>jclouds</Name></Profile>
diff --git a/azurecompute/src/test/resources/createstorageserviceparams.xml b/azurecompute/src/test/resources/createstorageserviceparams.xml
deleted file mode 100644
index 566bd82..0000000
--- a/azurecompute/src/test/resources/createstorageserviceparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CreateStorageServiceInput xmlns="http://schemas.microsoft.com/windowsazure"><ServiceName>name-of-storage-account</ServiceName><Description>description-of-storage-account</Description><Label>YmFzZTY0LWVuY29kZWQtbGFiZWw=</Label><Location>location-of-storage-account</Location><ExtendedProperties><ExtendedProperty><Name>property_name</Name><Value>property_value</Value></ExtendedProperty></ExtendedProperties><AccountType>Premium_LRS</AccountType></CreateStorageServiceInput>
diff --git a/azurecompute/src/test/resources/datavirtualharddisk.xml b/azurecompute/src/test/resources/datavirtualharddisk.xml
deleted file mode 100644
index c4bff06..0000000
--- a/azurecompute/src/test/resources/datavirtualharddisk.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<DataVirtualHardDisks xmlns="http://schemas.microsoft.com/windowsazure">
- <DataVirtualHardDisk>
- <HostCaching>ReadOnly</HostCaching>
- <DiskName>testimage1-testimage1-0-20120817095145</DiskName>
- <Lun>10</Lun>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
- <IOType>Standard</IOType>
- </DataVirtualHardDisk>
- <DataVirtualHardDisk>
- <HostCaching>ReadWrite</HostCaching>
- <DiskName>testimage2-testimage2-0-20120817095145</DiskName>
- <Lun>10</Lun>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
- <IOType>Standard</IOType>
- </DataVirtualHardDisk>
-</DataVirtualHardDisks>
diff --git a/azurecompute/src/test/resources/deployment.xml b/azurecompute/src/test/resources/deployment.xml
deleted file mode 100644
index c7db84d..0000000
--- a/azurecompute/src/test/resources/deployment.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Name>node1855162607153993262-b26</Name>
- <DeploymentSlot>Production</DeploymentSlot>
- <PrivateID>706868c87c1847f28a47644b68f3babf</PrivateID>
- <Status>Running</Status>
- <Label>bm9kZTE4NTUxNjI2MDcxNTM5OTMyNjItYjI2</Label>
- <Url>http://node1855162607153993262-b26.cloudapp.net/</Url>
- <Configuration>PFNlcnZpY2VDb25maWd1cmF0aW9uIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlcnZpY2VIb3N0aW5nLzIwMDgvMTAvU2VydmljZUNvbmZpZ3VyYXRpb24iPg0KICA8Um9sZSBuYW1lPSJub2RlMTg1NTE2MjYwNzE1Mzk5MzI2Mi1iMjYiPg0KICAgIDxJbnN0YW5jZXMgY291bnQ9IjEiIC8+DQogIDwvUm9sZT4NCjwvU2VydmljZUNvbmZpZ3VyYXRpb24+</Configuration>
- <RoleInstanceList>
- <RoleInstance>
- <RoleName>node1855162607153993262-b26</RoleName>
- <InstanceName>node1855162607153993262-b26</InstanceName>
- <InstanceStatus>ReadyRole</InstanceStatus>
- <InstanceUpgradeDomain>0</InstanceUpgradeDomain>
- <InstanceFaultDomain>0</InstanceFaultDomain>
- <InstanceSize>Basic_A0</InstanceSize>
- <InstanceStateDetails />
- <IpAddress>10.0.2.6</IpAddress>
- <InstanceEndpoints>
- <InstanceEndpoint>
- <Name>tcp_22-22</Name>
- <Vip>191.233.85.49</Vip>
- <PublicPort>22</PublicPort>
- <LocalPort>22</LocalPort>
- <Protocol>tcp</Protocol>
- </InstanceEndpoint>
- </InstanceEndpoints>
- <PowerState>Started</PowerState>
- <HostName>node1855162607153993262-b26</HostName>
- </RoleInstance>
- </RoleInstanceList>
- <UpgradeDomainCount>1</UpgradeDomainCount>
- <RoleList>
- <Role i:type="PersistentVMRole">
- <RoleName>node1855162607153993262-b26</RoleName>
- <OsVersion />
- <RoleType>PersistentVMRole</RoleType>
- <ConfigurationSets>
- <ConfigurationSet i:type="NetworkConfigurationSet">
- <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
- <InputEndpoints>
- <InputEndpoint>
- <LocalPort>22</LocalPort>
- <Name>tcp_22-22</Name>
- <Port>22</Port>
- <Protocol>tcp</Protocol>
- <Vip>191.233.85.49</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- <InputEndpoint>
- <LocalPort>2375</LocalPort>
- <Name>tcp_2375-2375</Name>
- <Port>2375</Port>
- <Protocol>tcp</Protocol>
- <Vip>191.233.85.49</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- </InputEndpoints>
- <SubnetNames>
- <SubnetName>Subnet-1</SubnetName>
- </SubnetNames>
- </ConfigurationSet>
- </ConfigurationSets>
- <DataVirtualHardDisks />
- <OSVirtualHardDisk>
- <HostCaching>ReadWrite</HostCaching>
- <DiskName>node1855162607153993262-b26-node1855162607153993262-b26-0-201412221704390597</DiskName>
- <MediaLink>https://test.blob.core.windows.net/clockerblob/container-node1855162607153993262-b26.vhd</MediaLink>
- <SourceImageName>b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu_DAILY_BUILD-trusty-14_04_1-LTS-amd64-server-20141212-en-us-30GB</SourceImageName>
- <OS>Linux</OS>
- </OSVirtualHardDisk>
- <RoleSize>Basic_A0</RoleSize>
- </Role>
- </RoleList>
- <SdkVersion />
- <Locked>false</Locked>
- <RollbackAllowed>false</RollbackAllowed>
- <VirtualNetworkName>jclouds</VirtualNetworkName>
- <CreatedTime>2014-12-22T17:04:35Z</CreatedTime>
- <LastModifiedTime>2014-12-22T17:07:02Z</LastModifiedTime>
- <ExtendedProperties />
- <PersistentVMDowntime>
- <StartTime>2014-12-02T01:25:12Z</StartTime>
- <EndTime>2014-12-04T01:25:12Z</EndTime>
- <Status>PersistentVMUpdateScheduled</Status>
- </PersistentVMDowntime>
- <VirtualIPs>
- <VirtualIP>
- <Address>191.233.85.49</Address>
- <IsDnsProgrammed>true</IsDnsProgrammed>
- <Name>node1855162607153993262-b26ContractContract</Name>
- </VirtualIP>
- </VirtualIPs>
- <InternalDnsSuffix>node1855162607153993262-b26.a5.internal.cloudapp.net</InternalDnsSuffix>
- <LoadBalancers />
-</Deployment>
diff --git a/azurecompute/src/test/resources/deploymentparams-windows.xml b/azurecompute/src/test/resources/deploymentparams-windows.xml
deleted file mode 100644
index a60c2e5..0000000
--- a/azurecompute/src/test/resources/deploymentparams-windows.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/windowsazure"><Name>mydeployment</Name><DeploymentSlot>Production</DeploymentSlot><Label>mydeployment</Label><RoleList><Role><RoleName>mydeployment</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType><ComputerName>mydeployment</ComputerName><AdminPassword>testpwd</AdminPassword><ResetPasswordOnFirstLogon>false</ResetPasswordOnFirstLogon><EnableAutomaticUpdate>false</EnableAutomaticUpdate><DomainJoin><Credentials><Domain>mydeployment</Domain><Username>username</Username><Password>testpwd</Password></Credentials><JoinDomain>mydeployment</JoinDomain></DomainJoin><StoredCertificateSettings/><WinRM><Listeners><Listener><Protocol>Http</Protocol></Listener></Listeners></WinRM><AdminUsername>username</AdminUsername><AdminPassword>username</AdminPassword></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><InputEndpoints><InputEndpoint><LocalPort>8080</LocalPort><Name>tcp_80-8080</Name><Port>80</Port><Protocol>tcp</Protocol></InputEndpoint><InputEndpoint><LocalPort>53</LocalPort><Name>udp_53-53</Name><Port>53</Port><Protocol>udp</Protocol></InputEndpoint></InputEndpoints><SubnetNames/></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink><SourceImageName>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</SourceImageName><OS>Windows</OS></OSVirtualHardDisk><RoleSize>Medium</RoleSize></Role></RoleList><VirtualNetworkName>my-virtualNetworkName</VirtualNetworkName></Deployment>
diff --git a/azurecompute/src/test/resources/deploymentparams.xml b/azurecompute/src/test/resources/deploymentparams.xml
deleted file mode 100644
index a2572ab..0000000
--- a/azurecompute/src/test/resources/deploymentparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/windowsazure"><Name>mydeployment</Name><DeploymentSlot>Production</DeploymentSlot><Label>mydeployment</Label><RoleList><Role><RoleName>mydeployment</RoleName><RoleType>PersistentVMRole</RoleType><ConfigurationSets><ConfigurationSet><ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType><HostName>mydeployment</HostName><UserName>username</UserName><UserPassword>testpwd</UserPassword><DisableSshPasswordAuthentication>false</DisableSshPasswordAuthentication><SSH><PublicKeys/><KeyPairs/></SSH></ConfigurationSet><ConfigurationSet><ConfigurationSetType>NetworkConfiguration</ConfigurationSetType><InputEndpoints><InputEndpoint><LocalPort>8080</LocalPort><Name>tcp_80-8080</Name><Port>80</Port><Protocol>tcp</Protocol></InputEndpoint><InputEndpoint><LocalPort>53</LocalPort><Name>udp_53-53</Name><Port>53</Port><Protocol>udp</Protocol></InputEndpoint></InputEndpoints><SubnetNames/></ConfigurationSet></ConfigurationSets><DataVirtualHardDisks/><OSVirtualHardDisk><HostCaching>ReadWrite</HostCaching><MediaLink>https://mydeployment.blob.core.windows.net/vhds/disk-mydeployment.vhd</MediaLink><SourceImageName>OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</SourceImageName><OS>Linux</OS></OSVirtualHardDisk><RoleSize>Medium</RoleSize></Role></RoleList><VirtualNetworkName>my-virtualNetworkName</VirtualNetworkName><ReservedIPName>myreservedip</ReservedIPName></Deployment>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/disks.xml b/azurecompute/src/test/resources/disks.xml
deleted file mode 100644
index 2e9b453..0000000
--- a/azurecompute/src/test/resources/disks.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<Disks xmlns="http://schemas.microsoft.com/windowsazure">
- <Disk>
- <OS>Linux</OS>
- <Location>West Europe</Location>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <MediaLink>http://blobs/vhds/testimage2-testimage2-2012-08-17.vhd</MediaLink>
- <Name>testimage2-testimage2-0-20120817095145</Name>
- <SourceImageName>OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</SourceImageName>
- </Disk>
- <Disk>
- <AttachedTo>
- <DeploymentName>neotysss</DeploymentName>
- <HostedServiceName>neotysss</HostedServiceName>
- <RoleName>neotysss</RoleName>
- </AttachedTo>
- <OS>Windows</OS>
- <Location>West Europe</Location>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
- <Name>neotysss-neotysss-0-20120824091357</Name>
- <SourceImageName>MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</SourceImageName>
- </Disk>
-</Disks>
diff --git a/azurecompute/src/test/resources/error.xml b/azurecompute/src/test/resources/error.xml
deleted file mode 100644
index a9f9b2f..0000000
--- a/azurecompute/src/test/resources/error.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Error>
- <Code>MissingOrInvalidRequiredQueryParameter</Code>
- <Message>A required query parameter was not specified for this request or was specified incorrectly.</Message>
-</Error>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/hostedservice.xml b/azurecompute/src/test/resources/hostedservice.xml
deleted file mode 100644
index f3619b8..0000000
--- a/azurecompute/src/test/resources/hostedservice.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<HostedService xmlns="http://schemas.microsoft.com/windowsazure">
- <Url>https://api/services/hostedservices/neotys</Url>
- <ServiceName>neotys</ServiceName>
- <HostedServiceProperties>
- <Description>Implicitly created cloud service2012-08-06 14:55</Description>
- <Location>West Europe</Location>
- <Label>bmVvdHlz</Label>
- <Status>Created</Status>
- <DateCreated>2012-08-06T14:55:17Z</DateCreated>
- <DateLastModified>2012-08-06T15:50:34Z</DateLastModified>
- <ExtendedProperties />
- </HostedServiceProperties>
-</HostedService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/hostedservices.xml b/azurecompute/src/test/resources/hostedservices.xml
deleted file mode 100644
index 817ab52..0000000
--- a/azurecompute/src/test/resources/hostedservices.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<HostedServices xmlns="http://schemas.microsoft.com/windowsazure"
- xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <HostedService>
- <Url>https://api/services/hostedservices/neotys</Url>
- <ServiceName>neotys</ServiceName>
- <HostedServiceProperties>
- <Description>Implicitly created cloud service2012-08-06 14:55</Description>
- <Location>West Europe</Location>
- <Label>bmVvdHlz</Label>
- <Status>Created</Status>
- <DateCreated>2012-08-06T14:55:17Z</DateCreated>
- <DateLastModified>2012-08-06T15:50:34Z</DateLastModified>
- <ExtendedProperties />
- </HostedServiceProperties>
- </HostedService>
- <HostedService>
- <Url>https://api/services/hostedservices/neotys3</Url>
- <ServiceName>neotys3</ServiceName>
- <HostedServiceProperties>
- <Description i:nil="true" />
- <Location>West Europe</Location>
- <Label>bmVvdHlzMw==</Label>
- <Status>Created</Status>
- <DateCreated>2012-08-07T09:00:02Z</DateCreated>
- <DateLastModified>2012-08-07T09:00:02Z</DateLastModified>
- <ExtendedProperties />
- </HostedServiceProperties>
- </HostedService>
-</HostedServices>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/imageparams.xml b/azurecompute/src/test/resources/imageparams.xml
deleted file mode 100644
index d3279ba..0000000
--- a/azurecompute/src/test/resources/imageparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<OSImage xmlns="http://schemas.microsoft.com/windowsazure"><Label>foo</Label><MediaLink>http://example.blob.core.windows.net/disks/mydisk.vhd</MediaLink><Name>myimage</Name><OS>Linux</OS></OSImage>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/images.xml b/azurecompute/src/test/resources/images.xml
deleted file mode 100644
index 24df711..0000000
--- a/azurecompute/src/test/resources/images.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<Images xmlns="http://schemas.microsoft.com/windowsazure">
- <OSImage>
- <Category>Canonical</Category>
- <Label>Ubuntu Server 12.04 LTS</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd</Name>
- <OS>Linux</OS>
- <PublisherName>Canonical</PublisherName>
- <Eula>http://www.ubuntu.com/project/about-ubuntu/licensing</Eula>
- <Description>Ubuntu Server 12.04 LTS amd64 20120528 Cloud Image</Description>
- <ImageFamily>Ubuntu Server 12.04 LTS</ImageFamily>
- </OSImage>
- <OSImage>
- <Category>Microsoft</Category>
- <Label>Windows Server 2008 R2 SP1, June 2012</Label>
- <Location>North Europe</Location>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</Name>
- <MediaLink>http://blobs/disks/mydeployment/MSFT__Win2K8R2SP1-120612-1520-121206-01-en-us-30GB.vhd</MediaLink>
- <OS>Windows</OS>
- <PublisherName>Microsoft</PublisherName>
- <Eula />
- <Description>Windows Server 2008 R2 is a multi-purpose server.</Description>
- <ImageFamily>Windows Server 2008 R2 SP1</ImageFamily>
- </OSImage>
- <OSImage>
- <Category>Microsoft</Category>
- <Label>Microsoft SQL Server 2012 Evaluation Edition</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd</Name>
- <OS>Windows</OS>
- <PublisherName>Microsoft</PublisherName>
- <Eula>http://go.microsoft.com/fwlink/?LinkID=251820;http://go.microsoft.com/fwlink/?LinkID=131004</Eula>
- <Description>SQL Server 2012 Evaluation Edition (64-bit).</Description>
- </OSImage>
- <OSImage>
- <Category>Microsoft</Category>
- <Label>Windows Server 2012 Release Candidate, July 2012</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>MSFT__Win2K12RC-Datacenter-201207.02-en.us-30GB.vhd</Name>
- <OS>Windows</OS>
- <PublisherName>Microsoft</PublisherName>
- <Eula />
- <Description>Windows Server 2012 incorporates Microsoft's experience building.</Description>
- </OSImage>
- <OSImage>
- <Category>Microsoft</Category>
- <Label>Windows Server 2008 R2 SP1, July 2012</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>MSFT__Win2K8R2SP1-Datacenter-201207.01-en.us-30GB.vhd</Name>
- <OS>Windows</OS>
- <PublisherName>Microsoft</PublisherName>
- <Eula />
- <Description>Windows Server 2008 R2 is a multi-purpose server.</Description>
- </OSImage>
- <OSImage>
- <Category>OpenLogic</Category>
- <Label>OpenLogic CentOS 6.2</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</Name>
- <MediaLink>http://blobs/disks/mydeployment/OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd</MediaLink>
- <OS>Linux</OS>
- <PublisherName>openLogic</PublisherName>
- <Eula>http://www.openlogic.com/azure/service-agreement/</Eula>
- <Description>This distribution of Linux is based on CentOS.</Description>
- </OSImage>
- <OSImage>
- <Category>SUSE</Category>
- <Label>openSUSE 12.1</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd</Name>
- <OS>Linux</OS>
- <PublisherName>SUSE</PublisherName>
- <Eula>http://opensuse.org/</Eula>
- <Description>openSUSE is a free and Linux-based operating system!</Description>
- </OSImage>
- <OSImage>
- <Category>SUSE</Category>
- <Label>SUSE Linux Enterprise Server</Label>
- <LogicalSizeInGB>30</LogicalSizeInGB>
- <Name>SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd</Name>
- <OS>Linux</OS>
- <PublisherName>SUSE</PublisherName>
- <Eula>http://www.novell.com/licensing/eula/</Eula>
- <Description>SUSE Linux Enterprise Server is a highly reliable value.</Description>
- </OSImage>
- <OSImage>
- <Category>RightScale with Linux</Category>
- <Label>RightImage-CentOS-6.4-x64-v13.4</Label>
- <LogicalSizeInGB>10</LogicalSizeInGB>
- <Name>0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.4-x64-v13.4</Name>
- <OS>Linux</OS>
- <PublisherName>RightScale with Linux</PublisherName>
- <Eula>;</Eula>
- <Description/>
- </OSImage>
-</Images>
-
diff --git a/azurecompute/src/test/resources/isavailablestorageservice.xml b/azurecompute/src/test/resources/isavailablestorageservice.xml
deleted file mode 100644
index 1c5a0e2..0000000
--- a/azurecompute/src/test/resources/isavailablestorageservice.xml
+++ /dev/null
@@ -1 +0,0 @@
-<AvailabilityResponse xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Result>false</Result><Reason>The storage account named 'serviceName' is already taken.</Reason></AvailabilityResponse>
diff --git a/azurecompute/src/test/resources/listprofiledefinitions.xml b/azurecompute/src/test/resources/listprofiledefinitions.xml
deleted file mode 100644
index eff1b51..0000000
--- a/azurecompute/src/test/resources/listprofiledefinitions.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Definitions xmlns="http://schemas.microsoft.com/windowsazure">
- <Definition>
- <DnsOptions>
- <TimeToLiveInSeconds>300</TimeToLiveInSeconds>
- </DnsOptions>
- <Status>Enabled</Status>
- <Version>1</Version>
- <Monitors>
- <Monitor>
- <IntervalInSeconds>30</IntervalInSeconds>
- <TimeoutInSeconds>10</TimeoutInSeconds>
- <ToleratedNumberOfFailures>3</ToleratedNumberOfFailures>
- <Protocol>HTTP</Protocol>
- <Port>80</Port>
- <HttpOptions>
- <Verb>GET</Verb>
- <RelativePath>/</RelativePath>
- <ExpectedStatusCode>200</ExpectedStatusCode>
- </HttpOptions>
- </Monitor>
- </Monitors>
- <Policy>
- <LoadBalancingMethod>RoundRobin</LoadBalancingMethod>
- <Endpoints>
- <Endpoint>
- <DomainName>jclouds1.cloudapp.net</DomainName>
- <Status>Enabled</Status>
- <Type>CloudService</Type>
- <MonitorStatus>Stopped</MonitorStatus>
- <Weight>1</Weight>
- </Endpoint>
- <Endpoint>
- <DomainName>jclouds2.cloudapp.net</DomainName>
- <Status>Enabled</Status>
- <Type>CloudService</Type>
- <MonitorStatus>Stopped</MonitorStatus>
- <Weight>1</Weight>
- </Endpoint>
- </Endpoints>
- <MonitorStatus>Inactive</MonitorStatus>
- </Policy>
- </Definition>
-</Definitions>
diff --git a/azurecompute/src/test/resources/listprofiles.xml b/azurecompute/src/test/resources/listprofiles.xml
deleted file mode 100644
index 5ffa7cd..0000000
--- a/azurecompute/src/test/resources/listprofiles.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<Profiles xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Profile>
- <DomainName>jclouds.trafficmanager.net</DomainName>
- <Name>jclouds</Name>
- <Status>Enabled</Status>
- <StatusDetails>
- <EnabledVersion>1</EnabledVersion>
- </StatusDetails>
- <Definitions>
- <Definition>
- <Status>Enabled</Status>
- <Version>1</Version>
- </Definition>
- </Definitions>
- </Profile>
- <Profile>
- <DomainName>jclouds2.trafficmanager.net</DomainName>
- <Name>jclouds2</Name>
- <Status>Disabled</Status>
- <Definitions/>
- </Profile>
-</Profiles>
diff --git a/azurecompute/src/test/resources/listreservedipaddress.xml b/azurecompute/src/test/resources/listreservedipaddress.xml
deleted file mode 100644
index bdcdafd..0000000
--- a/azurecompute/src/test/resources/listreservedipaddress.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<ReservedIPs xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <ReservedIP>
- <Name>jclouds_ip1</Name>
- <Address>23.101.78.155</Address>
- <Id>582c04d0-b169-4791-a706-f2b2bc36a742</Id>
- <State>Created</State>
- <Location>West Europe</Location>
- <InUse>true</InUse>
- <ServiceName>jclouds_s</ServiceName>
- <DeploymentName>jclouds_d</DeploymentName>
- </ReservedIP>
- <ReservedIP>
- <Name>jclouds_ip2</Name>
- <Address>23.101.69.44</Address>
- <Id>4e00454a-351a-4dae-aabd-c933b60e967c</Id>
- <Label>jclouds ip2 label</Label>
- <State>Created</State>
- <Location>West Europe</Location>
- </ReservedIP>
-</ReservedIPs>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/locations.xml b/azurecompute/src/test/resources/locations.xml
deleted file mode 100644
index 5937871..0000000
--- a/azurecompute/src/test/resources/locations.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?>
-<Locations xmlns="http://schemas.microsoft.com/windowsazure">
- <Location>
- <Name>West US</Name>
- <DisplayName>West US</DisplayName>
- <AvailableServices>
- <AvailableService>Compute</AvailableService>
- <AvailableService>Storage</AvailableService>
- <AvailableService>PersistentVMRole</AvailableService>
- </AvailableServices>
- </Location>
- <Location>
- <Name>East US</Name>
- <DisplayName>East US</DisplayName>
- <AvailableServices>
- <AvailableService>Compute</AvailableService>
- <AvailableService>Storage</AvailableService>
- <AvailableService>PersistentVMRole</AvailableService>
- </AvailableServices>
- </Location>
- <Location>
- <Name>East Asia</Name>
- <DisplayName>East Asia</DisplayName>
- <AvailableServices>
- <AvailableService>Compute</AvailableService>
- <AvailableService>Storage</AvailableService>
- <AvailableService>PersistentVMRole</AvailableService>
- </AvailableServices>
- </Location>
- <Location>
- <Name>Southeast Asia</Name>
- <DisplayName>Southeast Asia</DisplayName>
- <AvailableServices>
- <AvailableService>Compute</AvailableService>
- <AvailableService>Storage</AvailableService>
- <AvailableService>PersistentVMRole</AvailableService>
- </AvailableServices>
- </Location>
- <Location>
- <Name>North Europe</Name>
- <DisplayName>North Europe</DisplayName>
- <AvailableServices>
- <AvailableService>Compute</AvailableService>
- <AvailableService>Storage</AvailableService>
- <AvailableService>PersistentVMRole</AvailableService>
- </AvailableServices>
- </Location>
- <Location>
- <Name>West Europe</Name>
- <DisplayName>West Europe</DisplayName>
- <AvailableServices>
- <AvailableService>Compute</AvailableService>
- <AvailableService>Storage</AvailableService>
- <AvailableService>PersistentVMRole</AvailableService>
- </AvailableServices>
- </Location>
-</Locations>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/logback-test.xml b/azurecompute/src/test/resources/logback-test.xml
deleted file mode 100644
index c823913..0000000
--- a/azurecompute/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<configuration>
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>- %msg%n</pattern>
- </encoder>
- </appender>
- <root level="info">
- <appender-ref ref="STDOUT"/>
- </root>
- <logger name="jclouds.compute" level="debug"/>
- <logger name="net.schmizz" level="warn"/>
- <logger name="jclouds.wire" level="debug"/>
- <logger name="jclouds.headers" level="debug"/>
- <logger name="jclouds.ssh" level="debug"/>
-</configuration>
diff --git a/azurecompute/src/test/resources/networkconfiguration.xml b/azurecompute/src/test/resources/networkconfiguration.xml
deleted file mode 100644
index f20c7df..0000000
--- a/azurecompute/src/test/resources/networkconfiguration.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<NetworkConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration">
- <VirtualNetworkConfiguration>
- <Dns/>
- <VirtualNetworkSites>
- <VirtualNetworkSite name="jclouds-virtual-network" Location="West Europe">
- <AddressSpace>
- <AddressPrefix>10.0.0.0/20</AddressPrefix>
- </AddressSpace>
- <Subnets>
- <Subnet name="jclouds-1">
- <AddressPrefix>10.0.0.0/23</AddressPrefix>
- </Subnet>
- </Subnets>
- </VirtualNetworkSite>
- </VirtualNetworkSites>
- </VirtualNetworkConfiguration>
-</NetworkConfiguration>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/networksecuritygroup.xml b/azurecompute/src/test/resources/networksecuritygroup.xml
deleted file mode 100644
index f37b191..0000000
--- a/azurecompute/src/test/resources/networksecuritygroup.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<NetworkSecurityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Name>group1</Name>
- <Label>sec group 1</Label>
- <Location>West Europe</Location>
-</NetworkSecurityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/networksecuritygroupforsubnet.xml b/azurecompute/src/test/resources/networksecuritygroupforsubnet.xml
deleted file mode 100644
index 0ed3a67..0000000
--- a/azurecompute/src/test/resources/networksecuritygroupforsubnet.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<NetworkSecurityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Name>group1</Name>
- <State>Created</State>
-</NetworkSecurityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/networksecuritygroupfulldetails.xml b/azurecompute/src/test/resources/networksecuritygroupfulldetails.xml
deleted file mode 100644
index 35d9b84..0000000
--- a/azurecompute/src/test/resources/networksecuritygroupfulldetails.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<NetworkSecurityGroup xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Name>jclouds-NSG</Name>
- <Label>jclouds-NSG</Label>
- <Location>West Europe</Location>
- <Rules>
- <Rule>
- <Name>tcp_10-20</Name>
- <Type>Inbound</Type>
- <Priority>100</Priority>
- <Action>Allow</Action>
- <SourceAddressPrefix>INTERNET</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>*</DestinationAddressPrefix>
- <DestinationPortRange>10-20</DestinationPortRange>
- <Protocol>TCP</Protocol>
- <State>Active</State>
- </Rule>
- <Rule>
- <Name>ALLOW VNET INBOUND</Name>
- <Type>Inbound</Type>
- <Priority>65000</Priority>
- <Action>Allow</Action>
- <SourceAddressPrefix>VIRTUAL_NETWORK</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>VIRTUAL_NETWORK</DestinationAddressPrefix>
- <DestinationPortRange>*</DestinationPortRange>
- <Protocol>*</Protocol>
- <State>Active</State>
- <IsDefault>true</IsDefault>
- </Rule>
- <Rule>
- <Name>ALLOW VNET OUTBOUND</Name>
- <Type>Outbound</Type>
- <Priority>65000</Priority>
- <Action>Allow</Action>
- <SourceAddressPrefix>VIRTUAL_NETWORK</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>VIRTUAL_NETWORK</DestinationAddressPrefix>
- <DestinationPortRange>*</DestinationPortRange>
- <Protocol>*</Protocol>
- <State>Active</State>
- <IsDefault>true</IsDefault>
- </Rule>
- <Rule>
- <Name>ALLOW AZURE LOAD BALANCER INBOUND</Name>
- <Type>Inbound</Type>
- <Priority>65001</Priority>
- <Action>Allow</Action>
- <SourceAddressPrefix>AZURE_LOADBALANCER</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>*</DestinationAddressPrefix>
- <DestinationPortRange>*</DestinationPortRange>
- <Protocol>*</Protocol>
- <State>Active</State>
- <IsDefault>true</IsDefault>
- </Rule>
- <Rule>
- <Name>ALLOW INTERNET OUTBOUND</Name>
- <Type>Outbound</Type>
- <Priority>65001</Priority>
- <Action>Allow</Action>
- <SourceAddressPrefix>*</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>INTERNET</DestinationAddressPrefix>
- <DestinationPortRange>*</DestinationPortRange>
- <Protocol>*</Protocol>
- <State>Active</State>
- <IsDefault>true</IsDefault>
- </Rule>
- <Rule>
- <Name>DENY ALL OUTBOUND</Name>
- <Type>Outbound</Type>
- <Priority>65500</Priority>
- <Action>Deny</Action>
- <SourceAddressPrefix>*</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>*</DestinationAddressPrefix>
- <DestinationPortRange>*</DestinationPortRange>
- <Protocol>*</Protocol>
- <State>Active</State>
- <IsDefault>true</IsDefault>
- </Rule>
- <Rule>
- <Name>DENY ALL INBOUND</Name>
- <Type>Inbound</Type>
- <Priority>65500</Priority>
- <Action>Deny</Action>
- <SourceAddressPrefix>*</SourceAddressPrefix>
- <SourcePortRange>*</SourcePortRange>
- <DestinationAddressPrefix>*</DestinationAddressPrefix>
- <DestinationPortRange>*</DestinationPortRange>
- <Protocol>*</Protocol>
- <State>Active</State>
- <IsDefault>true</IsDefault>
- </Rule>
- </Rules>
-</NetworkSecurityGroup>
diff --git a/azurecompute/src/test/resources/networksecuritygroups.xml b/azurecompute/src/test/resources/networksecuritygroups.xml
deleted file mode 100644
index e81bdd5..0000000
--- a/azurecompute/src/test/resources/networksecuritygroups.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<NetworkSecurityGroups xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <NetworkSecurityGroup>
- <Name>group1</Name>
- <Label>sec group 1</Label>
- <Location>West Europe</Location>
- </NetworkSecurityGroup>
- <NetworkSecurityGroup>
- <Name>group2</Name>
- <Label>sec group 2</Label>
- <Location>North Europe</Location>
- </NetworkSecurityGroup>
-</NetworkSecurityGroups>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/operation.xml b/azurecompute/src/test/resources/operation.xml
deleted file mode 100644
index 498d1f0..0000000
--- a/azurecompute/src/test/resources/operation.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Operation xmlns="http://schemas.microsoft.com/windowsazure">
- <ID>request-id</ID>
- <Status>Failed</Status>
- <HttpStatusCode>400</HttpStatusCode>
- <Error>
- <Code>MissingOrInvalidRequiredQueryParameter</Code>
- <Message>A required query parameter was not specified for this request or was specified incorrectly.</Message>
- </Error>
-</Operation>
diff --git a/azurecompute/src/test/resources/profile.xml b/azurecompute/src/test/resources/profile.xml
deleted file mode 100644
index f69931f..0000000
--- a/azurecompute/src/test/resources/profile.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<Profile xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <DomainName>jclouds.trafficmanager.net</DomainName>
- <Name>jclouds</Name>
- <Status>Enabled</Status>
- <StatusDetails>
- <EnabledVersion>1</EnabledVersion>
- </StatusDetails>
- <Definitions>
- <Definition>
- <Status>Enabled</Status>
- <Version>1</Version>
- </Definition>
- </Definitions>
-</Profile>
diff --git a/azurecompute/src/test/resources/profiledefinition.xml b/azurecompute/src/test/resources/profiledefinition.xml
deleted file mode 100644
index f272e00..0000000
--- a/azurecompute/src/test/resources/profiledefinition.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<Definition xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <DnsOptions>
- <TimeToLiveInSeconds>300</TimeToLiveInSeconds>
- </DnsOptions>
- <Status>Enabled</Status>
- <Version>1</Version>
- <Monitors>
- <Monitor>
- <IntervalInSeconds>30</IntervalInSeconds>
- <TimeoutInSeconds>10</TimeoutInSeconds>
- <ToleratedNumberOfFailures>3</ToleratedNumberOfFailures>
- <Protocol>HTTP</Protocol>
- <Port>80</Port>
- <HttpOptions>
- <Verb>GET</Verb>
- <RelativePath>/</RelativePath>
- <ExpectedStatusCode>200</ExpectedStatusCode>
- </HttpOptions>
- </Monitor>
- </Monitors>
- <Policy>
- <LoadBalancingMethod>RoundRobin</LoadBalancingMethod>
- <Endpoints>
- <Endpoint>
- <DomainName>jclouds1.cloudapp.net</DomainName>
- <Status>Enabled</Status>
- <Type>CloudService</Type>
- <MonitorStatus>Stopped</MonitorStatus>
- <Weight>1</Weight>
- </Endpoint>
- <Endpoint>
- <DomainName>jclouds2.cloudapp.net</DomainName>
- <Status>Enabled</Status>
- <Type>CloudService</Type>
- <MonitorStatus>Stopped</MonitorStatus>
- <Weight>1</Weight>
- </Endpoint>
- </Endpoints>
- <MonitorStatus>Inactive</MonitorStatus>
- </Policy>
-</Definition>
diff --git a/azurecompute/src/test/resources/profiledefinitioncsparams.xml b/azurecompute/src/test/resources/profiledefinitioncsparams.xml
deleted file mode 100644
index 42bbdcf..0000000
--- a/azurecompute/src/test/resources/profiledefinitioncsparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Definition xmlns="http://schemas.microsoft.com/windowsazure"><DnsOptions><TimeToLiveInSeconds>300</TimeToLiveInSeconds></DnsOptions><Monitors><Monitor><IntervalInSeconds>30</IntervalInSeconds><TimeoutInSeconds>10</TimeoutInSeconds><ToleratedNumberOfFailures>3</ToleratedNumberOfFailures><Protocol>HTTP</Protocol><Port>80</Port><HttpOptions><Verb>GET</Verb><RelativePath>/</RelativePath><ExpectedStatusCode>200</ExpectedStatusCode></HttpOptions></Monitor></Monitors><Policy><LoadBalancingMethod>RoundRobin</LoadBalancingMethod><Endpoints><Endpoint><DomainName>jclouds1.cloudapp.net</DomainName><Status>Enabled</Status><Type>CloudService</Type><Weight>1</Weight></Endpoint><Endpoint><DomainName>jclouds2.cloudapp.net</DomainName><Status>Enabled</Status><Type>CloudService</Type><Weight>1</Weight></Endpoint></Endpoints></Policy></Definition>
diff --git a/azurecompute/src/test/resources/profiledefinitiontmparams.xml b/azurecompute/src/test/resources/profiledefinitiontmparams.xml
deleted file mode 100644
index 312f4be..0000000
--- a/azurecompute/src/test/resources/profiledefinitiontmparams.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<Definition xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <DnsOptions>
- <TimeToLiveInSeconds>300</TimeToLiveInSeconds>
- </DnsOptions>
- <Monitors>
- <Monitor>
- <IntervalInSeconds>30</IntervalInSeconds>
- <TimeoutInSeconds>10</TimeoutInSeconds>
- <ToleratedNumberOfFailures>3</ToleratedNumberOfFailures>
- <Protocol>HTTP</Protocol>
- <Port>80</Port>
- <HttpOptions>
- <Verb>GET</Verb>
- <RelativePath>/</RelativePath>
- <ExpectedStatusCode>200</ExpectedStatusCode>
- </HttpOptions>
- </Monitor>
- </Monitors>
-
- <Policy>
- <LoadBalancingMethod>RoundRobin</LoadBalancingMethod>
-
- <Endpoints>
- <Endpoint>
- <DomainName>jcloudsprova.cloudapp.net</DomainName>
- <Status>Enabled</Status>
- <Type>TrafficManager</Type>
- <Location>West Europe</Location>
- <MinChildEndpoints>1</MinChildEndpoints>
- <Weight>1</Weight>
- </Endpoint>
- </Endpoints>
-
- </Policy>
-</Definition>
diff --git a/azurecompute/src/test/resources/reservedipaddress.xml b/azurecompute/src/test/resources/reservedipaddress.xml
deleted file mode 100644
index a1a4a7d..0000000
--- a/azurecompute/src/test/resources/reservedipaddress.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<ReservedIP xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Name>jclouds_ip1</Name>
- <Address>23.101.78.155</Address>
- <Id>582c04d0-b169-4791-a706-f2b2bc36a742</Id>
- <State>Created</State>
- <Location>West Europe</Location>
- <InUse>true</InUse>
- <ServiceName>jclouds_s</ServiceName>
- <DeploymentName>jclouds_d</DeploymentName>
-</ReservedIP>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/reservedipaddressparams.xml b/azurecompute/src/test/resources/reservedipaddressparams.xml
deleted file mode 100644
index 55aab93..0000000
--- a/azurecompute/src/test/resources/reservedipaddressparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<ReservedIP xmlns="http://schemas.microsoft.com/windowsazure"><Name>myreservedip</Name><Label>myreservedip label</Label><Location>West Europe</Location></ReservedIP>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/restartrolepayload.xml b/azurecompute/src/test/resources/restartrolepayload.xml
deleted file mode 100644
index 54ccf84..0000000
--- a/azurecompute/src/test/resources/restartrolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<RestartRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>RestartRoleOperation</OperationType></RestartRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/role-update-body.xml b/azurecompute/src/test/resources/role-update-body.xml
deleted file mode 100644
index 841ffb5..0000000
--- a/azurecompute/src/test/resources/role-update-body.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<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>
- <ProvisionGuestAgent>true</ProvisionGuestAgent>
-</PersistentVMRole>
diff --git a/azurecompute/src/test/resources/role.xml b/azurecompute/src/test/resources/role.xml
deleted file mode 100644
index 5417791..0000000
--- a/azurecompute/src/test/resources/role.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<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>
- <Vip>23.101.193.92</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- <InputEndpoint>
- <LocalPort>3389</LocalPort>
- <Name>Remote Desktop</Name>
- <Port>59440</Port>
- <Protocol>tcp</Protocol>
- <Vip>23.101.193.92</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- </InputEndpoints>
- <SubnetNames>
- <SubnetName>Subnet-1</SubnetName>
- </SubnetNames>
- <PublicIPs/>
- <NetworkInterfaces/>
- <NetworkSecurityGroup>vnetnsgsg01</NetworkSecurityGroup>
- <StoredCertificateSettings/>
- </ConfigurationSet>
- </ConfigurationSets>
- <ResourceExtensionReferences>
- <ResourceExtensionReference>
- <ReferenceName>BGInfo</ReferenceName>
- <Publisher>Microsoft.Compute</Publisher>
- <Name>BGInfo</Name>
- <Version>1.*</Version>
- <ResourceExtensionParameterValues/>
- <State>Enable</State>
- </ResourceExtensionReference>
- </ResourceExtensionReferences>
- <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>
- <ProvisionGuestAgent>true</ProvisionGuestAgent>
-</PersistentVMRole>
diff --git a/azurecompute/src/test/resources/role2.xml b/azurecompute/src/test/resources/role2.xml
deleted file mode 100644
index da89dae..0000000
--- a/azurecompute/src/test/resources/role2.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<PersistentVMRole xmlns="http://schemas.microsoft.com/windowsazure">
- <RoleName>test</RoleName>
- <OsVersion/>
- <RoleType>PersistentVMRole</RoleType>
- <ConfigurationSets>
- <ConfigurationSet>
- <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
- <InputEndpoints>
- <InputEndpoint>
- <LocalPort>22</LocalPort>
- <Name>SSH</Name>
- <Port>22</Port>
- <Protocol>tcp</Protocol>
- <Vip>168.61.166.228</Vip>
- <EnableDirectServerReturn>false</EnableDirectServerReturn>
- </InputEndpoint>
- </InputEndpoints>
- <SubnetNames>
- <SubnetName>Subnet-1</SubnetName>
- </SubnetNames>
- </ConfigurationSet>
- </ConfigurationSets>
- <DataVirtualHardDisks/>
- <OSVirtualHardDisk>
- <HostCaching>ReadWrite</HostCaching>
- <DiskName>test-1452267291453</DiskName>
- <MediaLink>test</MediaLink>
- <OS>Linux</OS>
- <RemoteSourceImageLink>test</RemoteSourceImageLink>
- <IOType>Standard</IOType>
- </OSVirtualHardDisk>
- <RoleSize>Basic_A1</RoleSize>
- <ProvisionGuestAgent>true</ProvisionGuestAgent>
-</PersistentVMRole>
diff --git a/azurecompute/src/test/resources/rolesizes.xml b/azurecompute/src/test/resources/rolesizes.xml
deleted file mode 100644
index 47c6394..0000000
--- a/azurecompute/src/test/resources/rolesizes.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<RoleSizes xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <RoleSize>
- <Name>A10</Name>
- <Label>A10 (8 cores, 57344 MB)</Label>
- <Cores>8</Cores>
- <MemoryInMb>57344</MemoryInMb>
- <SupportedByWebWorkerRoles>true</SupportedByWebWorkerRoles>
- <SupportedByVirtualMachines>true</SupportedByVirtualMachines>
- <MaxDataDiskCount>16</MaxDataDiskCount>
- <WebWorkerResourceDiskSizeInMb>1861268</WebWorkerResourceDiskSizeInMb>
- <VirtualMachineResourceDiskSizeInMb>391828</VirtualMachineResourceDiskSizeInMb>
- </RoleSize>
- <RoleSize>
- <Name>A11</Name>
- <Label>A11 (16 cores, 114688 MB)</Label>
- <Cores>16</Cores>
- <MemoryInMb>114688</MemoryInMb>
- <SupportedByWebWorkerRoles>true</SupportedByWebWorkerRoles>
- <SupportedByVirtualMachines>true</SupportedByVirtualMachines>
- <MaxDataDiskCount>16</MaxDataDiskCount>
- <WebWorkerResourceDiskSizeInMb>1861268</WebWorkerResourceDiskSizeInMb>
- <VirtualMachineResourceDiskSizeInMb>391828</VirtualMachineResourceDiskSizeInMb>
- </RoleSize>
-</RoleSizes>
diff --git a/azurecompute/src/test/resources/servicecertificate.xml b/azurecompute/src/test/resources/servicecertificate.xml
deleted file mode 100644
index 82b28e4..0000000
--- a/azurecompute/src/test/resources/servicecertificate.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<Certificate xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Data>MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO</Data>
-</Certificate>
-
diff --git a/azurecompute/src/test/resources/servicecertificateparams.xml b/azurecompute/src/test/resources/servicecertificateparams.xml
deleted file mode 100644
index aed8229..0000000
--- a/azurecompute/src/test/resources/servicecertificateparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CertificateFile xmlns="http://schemas.microsoft.com/windowsazure"><Data>MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO</Data><CertificateFormat>pfx</CertificateFormat><Password>password</Password></CertificateFile>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/servicecertificates.xml b/azurecompute/src/test/resources/servicecertificates.xml
deleted file mode 100644
index ca47e6e..0000000
--- a/azurecompute/src/test/resources/servicecertificates.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<Certificates xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <Certificate>
- <CertificateUrl>https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/hostedservices/prova/certificates/sha1-8D6ED1395205C57D23E518672903FDAF144EE8AE</CertificateUrl>
- <Thumbprint>8D6ED1395205C57D23E518672903FDAF144EE8AE</Thumbprint>
- <ThumbprintAlgorithm>sha1</ThumbprintAlgorithm>
- <Data>MIIDyzCCArOgAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MzQwWhcNMTYwMzAzMTQ1MzQwWjBVMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQswCQYDVQQLDAJBTTEWMBQGA1UEAwwNYW0udGlyYXNhLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzqTZFbzahmEqp60txg8aUYw4Y7PL44A7rzHVnb5cb01/4VVjNeijmROOL8o5ZEbkNkQly43zjoZcrkw4bpvOz95OP8/NH/ZgyYKR42VqcTlxcj/22iq2Ie1XhWsKARmObdnNUcFCsdqXWXBo0bLF+WuUYh4ZoMxFMlP7YYl7WOCCgekE8E9sL02RuLZgq7v2M6fsxhT5rEG81jzUlmY5c/jXZKbUIBaltKtzC3DnBpuk9u+S87WseqTeuhUzF6VvgwmiQ+zeHdr5Hjqxrvmq445DPz+2U3PYN1vFoB/6QzjtZVakSfOSZ0YAtFhZFHmR11kJTNMfVQ5k5oIQPtHksCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOIYM6WyNdc4odsThFVtOefT/xg1MB8GA1UdIwQYMBaAFDqheOl4dpXYelhPC/bM+VdN1AXpMA0GCSqGSIb3DQEBCwUAA4IBAQB33qLYghIYa2j1ycHBpeZVadsb8xb4AnfnAW9g5dYfZP1eIvmKzOxN3CjpuCRKNI4vyKHiLbucfFDl5zi9BdYwwdduPbYTgE8F8Ilyit3irSRJFk1wHICX0sBPq5ulz39MPZsP2Fmzbrphr9BrRZOc1RJdHnj8C7phrfBneGSfwoY+qH5H6/h5A5rS8oDAraeklR2RJK4ztK+yDvp8orRDJQq5LAALQtWDhdW8Qj7WoIbGUeB77aJLluLOgriJLK+kKaGoUuAaKFRJXPyTmtUC17CJUJbapmtDwivILhU/dSdz6+1YXTg0ddNNlug3I6L5VVRnlwJJc/hIna1VjQJO</Data>
- </Certificate>
- <Certificate>
- <CertificateUrl>https://management.core.windows.net/d6769fbe-4649-453f-8435-c07f0cc0709d/services/hostedservices/prova/certificates/sha1-CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73</CertificateUrl>
- <Thumbprint>CCA59C5AA24866BB292F01B81E6A77FAF8FCDC73</Thumbprint>
- <ThumbprintAlgorithm>sha1</ThumbprintAlgorithm>
- <Data>MIIDzTCCArWgAwIBAgICEAYwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UEBhMCSVQxDjAMBgNVBAgMBUl0YWx5MRAwDgYDVQQHDAdQZXNjYXJhMQ8wDQYDVQQKDAZUaXJhc2ExDDAKBgNVBAsMA0lUQzEPMA0GA1UEAwwGVGlyYXNhMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHRpcmFzYS5uZXQwHhcNMTUwMzA0MTQ1MTI2WhcNMTYwMzAzMTQ1MTI2WjBXMQswCQYDVQQGEwJJVDEQMA4GA1UECAwHUGVzY2FyYTEPMA0GA1UECgwGVGlyYXNhMQwwCgYDVQQLDANJZE0xFzAVBgNVBAMMDmlkbS50aXJhc2EubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1G1ejg5eHZzhVca8OOD6pq0fj5VDEYIxG7CGDl4I8N3NE+svIGTYumdKUn1+FFyfgxsPCh7zfoSq0hnelRpBI3w9wfic1856/wNz4ZsLQgcrm6wwwVXEfWGKYF1r8pTBzAYqNzQFqypSL9kU/YJfeY8XR3eJ3vQersAiKUQVQqk1H10R2aURqlCFs1xc/ta9INNS+SLgWEBmQNnpwHfb7IsIYmPfqvbZsfAJ9KDqIdA5mjPz1elHNLLMi4phGPpbAH7AszZbrRaFtbI0o5nAL6tS37f3iEV1L7cWo/am6MGg0PF4T9GRdL8D0gl9BDskMUHD+n8cJOEO2sQVJBKszwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU4GbbmOK+5WNBil8edbwKYHIhCJMwHwYDVR0jBBgwFoAUOqF46Xh2ldh6WE8L9sz5V03UBekwDQYJKoZIhvcNAQELBQADggEBAMqr+GoBBf7UPo4dBoQef4OhrNGCcYz6E0B8WID7ZG6KLv6TyTi5iEna/bbc60HisVqUoFIMyMa+bHiLNwObNQ/+edklNyPe48OHYX2421x3H//M/n6SpRxP5i1NSlqtcw6WnXzaTHUwV8v+5ctG1QAKrJ+nwwDRWzALxPJvw4TDeggRIkzAqIySrN+nRkVNliGlnZEI8NjJdelS/83E02LAxj3sPJp1yS5lWia88eNg6UXY2vQf9CwrXjOz0aOvVOwHJxXBxS0tqv+bg0D5B640WdcZOhgzDxte6DDkiSU+P7nZUW1Bwtk0WD9GKN2+YPg/ElLLB5nSEGZSVN6Xfn8=</Data>
- </Certificate>
-</Certificates>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/shutdownrolepayload.xml b/azurecompute/src/test/resources/shutdownrolepayload.xml
deleted file mode 100644
index 5048ca3..0000000
--- a/azurecompute/src/test/resources/shutdownrolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<ShutdownRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>ShutdownRoleOperation</OperationType></ShutdownRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/startrolepayload.xml b/azurecompute/src/test/resources/startrolepayload.xml
deleted file mode 100644
index 6b6d7a3..0000000
--- a/azurecompute/src/test/resources/startrolepayload.xml
+++ /dev/null
@@ -1 +0,0 @@
-<StartRoleOperation xmlns="http://schemas.microsoft.com/windowsazure"><OperationType>StartRoleOperation</OperationType></StartRoleOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/storageaccountkeys.xml b/azurecompute/src/test/resources/storageaccountkeys.xml
deleted file mode 100644
index eace1f5..0000000
--- a/azurecompute/src/test/resources/storageaccountkeys.xml
+++ /dev/null
@@ -1 +0,0 @@
-<StorageService xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Url>https://management.core.windows.net/subscriptionid/services/storageservices/serviceName</Url><StorageServiceKeys><Primary>bndO7lydwDkMo4Y0mFvmfLyi2f9aZY7bwfAVWoJWv4mOVK6E9c/exLnFsSm/NMWgifLCfxC/c6QBTbdEvWUA7w==</Primary><Secondary>/jMLLT3kKqY4K+cUtJTbh7pCBdvG9EMKJxUvaJJAf6W6aUiZe1A1ulXHcibrqRVA2RJE0oUeXQGXLYJ2l85L7A==</Secondary></StorageServiceKeys></StorageService>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/storageaccountregeneratekeys.xml b/azurecompute/src/test/resources/storageaccountregeneratekeys.xml
deleted file mode 100644
index 01f2a40..0000000
--- a/azurecompute/src/test/resources/storageaccountregeneratekeys.xml
+++ /dev/null
@@ -1 +0,0 @@
-<RegenerateKeys xmlns="http://schemas.microsoft.com/windowsazure"><KeyType>Primary</KeyType></RegenerateKeys>
diff --git a/azurecompute/src/test/resources/storageservices.xml b/azurecompute/src/test/resources/storageservices.xml
deleted file mode 100644
index 6935444..0000000
--- a/azurecompute/src/test/resources/storageservices.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<StorageServices xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <StorageService>
- <Url>https://management.core.windows.net/subscriptionid/services/storageservices/serviceName</Url>
- <ServiceName>serviceName</ServiceName>
- <StorageServiceProperties>
- <Description i:nil="true"/>
- <Location>West Europe</Location>
- <Label>c2VydmljZU5hbWU=</Label>
- <Status>Created</Status>
- <Endpoints>
- <Endpoint>https://serviceName.blob.core.windows.net/</Endpoint>
- <Endpoint>https://serviceName.queue.core.windows.net/</Endpoint>
- <Endpoint>https://serviceName.table.core.windows.net/</Endpoint>
- </Endpoints>
- <GeoPrimaryRegion>West Europe</GeoPrimaryRegion>
- <StatusOfPrimary>Available</StatusOfPrimary>
- <GeoSecondaryRegion/>
- <StatusOfSecondary/>
- <CreationTime>2015-03-30T10:15:00Z</CreationTime>
- <CustomDomains/>
- <AccountType>Standard_LRS</AccountType>
- </StorageServiceProperties>
- <ExtendedProperties>
- <ExtendedProperty>
- <Name>ResourceGroup</Name>
- <Value>Default-Storage-WestEurope</Value>
- </ExtendedProperty>
- <ExtendedProperty>
- <Name>ResourceLocation</Name>
- <Value>West Europe</Value>
- </ExtendedProperty>
- </ExtendedProperties>
- </StorageService>
-</StorageServices>
diff --git a/azurecompute/src/test/resources/updateaffinitygroupparams.xml b/azurecompute/src/test/resources/updateaffinitygroupparams.xml
deleted file mode 100644
index f49a6b9..0000000
--- a/azurecompute/src/test/resources/updateaffinitygroupparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<UpdateAffinityGroup xmlns="http://schemas.microsoft.com/windowsazure"><Label>Zm9v</Label><Description>mygroup description</Description></UpdateAffinityGroup>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/updateprofileparams.xml b/azurecompute/src/test/resources/updateprofileparams.xml
deleted file mode 100644
index ee61d13..0000000
--- a/azurecompute/src/test/resources/updateprofileparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<Profile xmlns="http://schemas.microsoft.com/windowsazure"><Status>Enabled</Status><StatusDetails><EnabledVersion>1</EnabledVersion></StatusDetails></Profile>
diff --git a/azurecompute/src/test/resources/updatestorageserviceparams.xml b/azurecompute/src/test/resources/updatestorageserviceparams.xml
deleted file mode 100644
index a401936..0000000
--- a/azurecompute/src/test/resources/updatestorageserviceparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<UpdateStorageServiceInput xmlns="http://schemas.microsoft.com/windowsazure"><Description>description-of-storage-account</Description><Label>YmFzZTY0LWVuY29kZWQtbGFiZWw=</Label><ExtendedProperties><ExtendedProperty><Name>property_name</Name><Value>property_value</Value></ExtendedProperty></ExtendedProperties><CustomDomains><CustomDomain><Name>name-of-custom-domain</Name><UseSubDomainName>false</UseSubDomainName></CustomDomain></CustomDomains><AccountType>Standard_GRS</AccountType></UpdateStorageServiceInput>
diff --git a/azurecompute/src/test/resources/virtualIPs.xml b/azurecompute/src/test/resources/virtualIPs.xml
deleted file mode 100644
index c684d75..0000000
--- a/azurecompute/src/test/resources/virtualIPs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<VirtualIPs>
- <VirtualIP>
- <Address>104.40.193.219</Address>
- <IsDnsProgrammed>true</IsDnsProgrammed>
- <Name>__PseudoBackEndContractVip</Name>
- </VirtualIP>
-</VirtualIPs>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/virtualnetworksites.xml b/azurecompute/src/test/resources/virtualnetworksites.xml
deleted file mode 100644
index 5f62b11..0000000
--- a/azurecompute/src/test/resources/virtualnetworksites.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<VirtualNetworkSites xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <VirtualNetworkSite>
- <Name>Group Group testDocker</Name>
- <Id>39d0d14b-fc1d-496f-8928-b5a13a6f4b64</Id>
- <State>Created</State>
- <AddressSpace>
- <AddressPrefixes>
- <AddressPrefix>10.1.0.0/16</AddressPrefix>
- </AddressPrefixes>
- </AddressSpace>
- <Subnets>
- <Subnet>
- <Name>Subnet-1</Name>
- <AddressPrefix>10.1.0.0/24</AddressPrefix>
- </Subnet>
- </Subnets>
- <Location>West Europe</Location>
- </VirtualNetworkSite>
- <VirtualNetworkSite>
- <Name>Group Group-1 dockertest</Name>
- <Id>12252126-cffc-4fac-8ba4-afa7150a8d4a</Id>
- <State>Created</State>
- <AddressSpace>
- <AddressPrefixes>
- <AddressPrefix>10.2.0.0/16</AddressPrefix>
- </AddressPrefixes>
- </AddressSpace>
- <Subnets>
- <Subnet>
- <Name>Subnet-1</Name>
- <AddressPrefix>10.2.0.0/24</AddressPrefix>
- </Subnet>
- </Subnets>
- <Location>West Europe</Location>
- </VirtualNetworkSite>
-</VirtualNetworkSites>
diff --git a/azurecompute/src/test/resources/vmimageparams.xml b/azurecompute/src/test/resources/vmimageparams.xml
deleted file mode 100644
index 43a54bf..0000000
--- a/azurecompute/src/test/resources/vmimageparams.xml
+++ /dev/null
@@ -1 +0,0 @@
-<VMImage xmlns="http://schemas.microsoft.com/windowsazure"><Name>ClouderaGolden</Name><Label>CDH 5.1 Evaluation</Label><Description>Single click deployment</Description><OSDiskConfiguration><HostCaching>ReadOnly</HostCaching><OSState>SPECIALIZED</OSState><OS>LINUX</OS><MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink></OSDiskConfiguration><DataDiskConfigurations/><Language>en</Language><ImageFamily>Ubuntu</ImageFamily><RecommendedVMSize>Large</RecommendedVMSize><Eula>http://www.gnu.org/copyleft/gpl.html</Eula><IconUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</IconUri><SmallIconUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</SmallIconUri><PrivacyUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</PrivacyUri><ShowGui>true</ShowGui></VMImage>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/vmimageparams_mock.xml b/azurecompute/src/test/resources/vmimageparams_mock.xml
deleted file mode 100644
index bd62d9c..0000000
--- a/azurecompute/src/test/resources/vmimageparams_mock.xml
+++ /dev/null
@@ -1 +0,0 @@
-<CaptureRoleAsVMImageOperation xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><OperationType>CaptureRoleAsVMImageOperation</OperationType><OSState>Generalized</OSState><VMImageName>capturedimage</VMImageName><VMImageLabel>CapturedImage</VMImageLabel><Description/><Language/><ImageFamily/><RecommendedVMSize>Medium</RecommendedVMSize></CaptureRoleAsVMImageOperation>
\ No newline at end of file
diff --git a/azurecompute/src/test/resources/vmimages.xml b/azurecompute/src/test/resources/vmimages.xml
deleted file mode 100644
index f92e74b..0000000
--- a/azurecompute/src/test/resources/vmimages.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<VMImages xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <VMImage>
- <Name>1acf693f34c74e86a50be61cb631ddfe__ClouderaGolden-202406-699696</Name>
- <Label>CDH 5.1 Evaluation</Label>
- <Category>Public</Category>
- <Description>Single click deployment of CDH 5.1 Evaluation for MR, HDFS and HIVE</Description>
- <OSDiskConfiguration>
- <Name>ClouderaGolden-202406-699696-os-2014-10-06</Name>
- <HostCaching>ReadWrite</HostCaching>
- <OSState>SPECIALIZED</OSState>
- <OS>Linux</OS>
- <MediaLink/>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <IOType/>
- </OSDiskConfiguration>
- <DataDiskConfigurations>
- <DataDiskConfiguration>
- <Name>testimage1-testimage1-0-20120817095145</Name>
- <HostCaching>ReadOnly</HostCaching>
- <Lun>10</Lun>
- <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <IOType>Standard</IOType>
- </DataDiskConfiguration>
- <DataDiskConfiguration>
- <Name>testimage2-testimage2-0-20120817095145</Name>
- <HostCaching>ReadWrite</HostCaching>
- <Lun>20</Lun>
- <MediaLink>http://blobs/disks/neotysss/MSFT__Win2K8R2SP1-ABCD-en-us-30GB.vhd</MediaLink>
- <LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
- <IOType>Standard</IOType>
- </DataDiskConfiguration>
- </DataDiskConfigurations>
- <ServiceName/>
- <DeploymentName/>
- <RoleName/>
- <Location>
- East Asia;Southeast Asia;Australia East;Australia Southeast;Brazil South;North Europe
- </Location>
- <AffinityGroup/>
- <CreatedTime>2014-07-05T14:55:17Z</CreatedTime>
- <ModifiedTime>2014-09-06T22:58:11Z</ModifiedTime>
- <Language/>
- <ImageFamily>CDH 5.1 Evaluation</ImageFamily>
- <RecommendedVMSize/>
- <IsPremium>False</IsPremium>
- <Eula>http://www.gnu.org/copyleft/gpl.html</Eula>
- <IconUri/>
- <SmallIconUri></SmallIconUri>
- <PrivacyUri>http://www.cloudera.com/content/cloudera/en/privacy-policy.html</PrivacyUri>
- <PublisherName>publisher-identifier</PublisherName>
- <PublishedDate>2012-07-05T14:55:17Z</PublishedDate>
- <ShowInGui>indicator-of-availability</ShowInGui>
- <PricingDetailLink>pricing-details</PricingDetailLink>
- </VMImage>
-</VMImages>
diff --git a/pom.xml b/pom.xml
index cddd17e..278dc40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,6 @@
</repositories>
<modules>
- <module>azurecompute</module>
<module>cdmi</module>
<module>cloudsigma2</module>
<module>cloudsigma2-hnl</module>