You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/10/02 23:53:12 UTC
[08/11] JCLOUDS-664 Updating Azure compute provider
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/SSHKey.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/SSHKey.java b/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/SSHKey.java
deleted file mode 100644
index bf85b86..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/SSHKey.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.azure.management.domain.role.conf;
-
-import javax.xml.bind.annotation.XmlElement;
-
-public class SSHKey {
-
- /**
- * Specifies the SHA1 fingerprint of an X509 certificate associated with the hosted service that
- * includes the SSH public key.
- */
- @XmlElement(required = true, name = "FingerPrint")
- protected String fingerPrint;
-
- /**
- * Specifies the full path of a file, on the virtual machine, which stores the SSH public key. If
- * the file already exists, the specified key is appended to the file.
- */
- @XmlElement(required = true, name = "Path")
- protected String path;
-
- public SSHKey() {
- }
-
- public String getFingerPrint() {
- return fingerPrint;
- }
-
- public void setFingerPrint(String fingerPrint) {
- this.fingerPrint = fingerPrint;
- }
-
- public String getPath() {
- return path;
- }
-
- public void setPath(String path) {
- this.path = path;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/WindowsProvisioningConfiguration.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/WindowsProvisioningConfiguration.java b/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/WindowsProvisioningConfiguration.java
deleted file mode 100644
index c7a0cb1..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/WindowsProvisioningConfiguration.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.azure.management.domain.role.conf;
-
-import java.util.List;
-import java.util.TimeZone;
-
-import com.google.common.collect.Lists;
-
-//@XmlRootElement(name = "ConfigurationSet")
-public class WindowsProvisioningConfiguration extends ConfigurationSet {
-
- public static final String ID = "WindowsProvisioningConfiguration";
-
- /**
- * Specifies the computer name for the virtual machine
- *
- * Computer names must be 1 to 15 characters in length.
- */
- // @XmlElement(name = "ComputerName")
- private String computerName;
- /**
- * Specifies the base-64 encoded string representing the administrator password to use for the
- * virtual machine.
- */
- // @XmlElement(required = true, name = "AdminPassword")
- private String adminPassword;
- /**
- * Specifies whether the user must change the administrator password on first logon. The default
- * value is false.
- */
- // @XmlElement(required = true, name = "ResetPasswordOnFirstLogon")
- private Boolean resetPasswordOnFirstLogon;
- /**
- * Specifies whether automatic updates are enabled for the virtual machine. The default value is
- * true.
- */
- // @XmlElement(name = "EnableAutomaticUpdates")
- private Boolean enableAutomaticUpdates;
- /**
- * Specifies the time zone for the virtual machine.
- */
- // @XmlElement(name = "TimeZone")
- private TimeZone timeZone;
- /**
- * Contains properties that specify a domain to which the virtual machine will be joined. The
- * DomainJoin node contains either credentials or provisioning information.
- */
- // @XmlElement(name = "DomainJoin")
- private DomainJoin domainJoin;
- /**
- * Contains a list of service certificates with which to provision to the new virtual machine.
- */
- // @XmlElementWrapper(required = true, name = "StoredCertificateSettings")
- // @XmlElement(name = "CertificateSetting")
- private List<CertificateSetting> storedCertificateSettings = Lists.newArrayList();
-
- public WindowsProvisioningConfiguration() {
-
- }
-
- public String getComputerName() {
- return computerName;
- }
-
- public void setComputerName(String computerName) {
- this.computerName = computerName;
- }
-
- public String getAdminPassword() {
- return adminPassword;
- }
-
- public void setAdminPassword(String adminPassword) {
- this.adminPassword = adminPassword;
- }
-
- public Boolean getResetPasswordOnFirstLogon() {
- return resetPasswordOnFirstLogon;
- }
-
- public void setResetPasswordOnFirstLogon(Boolean resetPasswordOnFirstLogon) {
- this.resetPasswordOnFirstLogon = resetPasswordOnFirstLogon;
- }
-
- public Boolean getEnableAutomaticUpdates() {
- return enableAutomaticUpdates;
- }
-
- public void setEnableAutomaticUpdates(Boolean enableAutomaticUpdates) {
- this.enableAutomaticUpdates = enableAutomaticUpdates;
- }
-
- public TimeZone getTimeZone() {
- return timeZone;
- }
-
- public void setTimeZone(TimeZone timeZone) {
- this.timeZone = timeZone;
- }
-
- public DomainJoin getDomainJoin() {
- return domainJoin;
- }
-
- public void setDomainJoin(DomainJoin domainJoin) {
- this.domainJoin = domainJoin;
- }
-
- public List<CertificateSetting> getStoredCertificateSettings() {
- return storedCertificateSettings;
- }
-
- public void setStoredCertificateSettings(List<CertificateSetting> storedCertificateSettings) {
- this.storedCertificateSettings = storedCertificateSettings;
- }
-
- @Override
- public String toString() {
- return "WindowsProvisioningConfigurationSet [computerName=" + computerName + ", adminPassword=" + adminPassword
- + ", resetPasswordOnFirstLogon=" + resetPasswordOnFirstLogon + ", enableAutomaticUpdates="
- + enableAutomaticUpdates + ", timeZone=" + timeZone + ", domainJoin=" + domainJoin
- + ", storedCertificateSettings=" + storedCertificateSettings + "]";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/package-info.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/package-info.java b/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/package-info.java
deleted file mode 100644
index 4f7b323..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/conf/package-info.java
+++ /dev/null
@@ -1,25 +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.
- */
-@XmlSchema(namespace = "http://schemas.microsoft.com/windowsazure", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-@XmlAccessorType(XmlAccessType.FIELD)
-//@XmlJavaTypeAdapters({@XmlJavaTypeAdapter(NetworkConfigurationSetAdapter.class),@XmlJavaTypeAdapter(LinuxProvisioningConfigurationSetAdapter.class)})
-package org.jclouds.azure.management.domain.role.conf;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlSchema;
-
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/domain/role/package-info.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/package-info.java b/azure-management/src/main/java/org/jclouds/azure/management/domain/role/package-info.java
deleted file mode 100644
index 3d9ed50..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/domain/role/package-info.java
+++ /dev/null
@@ -1,25 +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.
- */
-@XmlSchema(namespace = "http://schemas.microsoft.com/windowsazure", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-@XmlAccessorType(XmlAccessType.FIELD)
-//@XmlJavaTypeAdapters({@XmlJavaTypeAdapter(NetworkConfigurationSetAdapter.class),@XmlJavaTypeAdapter(LinuxProvisioningConfigurationSetAdapter.class)})
-package org.jclouds.azure.management.domain.role;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlSchema;
-
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/DiskApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/DiskApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/DiskApi.java
deleted file mode 100644
index 68f91c5..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/DiskApi.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.azure.management.features;
-
-import java.util.Set;
-import org.jclouds.azure.management.domain.Disk;
-
-/**
- * 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>
- * @see DiskAsyncApi
- */
-public interface DiskApi {
-
- /**
- * The List Disks operation retrieves a list of the disks in your image repository.
- */
- Set<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
- *
- */
- String delete(String diskName);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/DiskAsyncApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/DiskAsyncApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/DiskAsyncApi.java
deleted file mode 100644
index 2c32b5e..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/DiskAsyncApi.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.azure.management.features;
-
-import java.util.Set;
-
-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.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.azure.management.domain.Disk;
-import org.jclouds.azure.management.functions.ParseRequestIdHeader;
-import org.jclouds.azure.management.xml.ListDisksHandler;
-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 com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * The Service Management API includes operations for managing the virtual machines Disk in your
- * subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157188">docs</a>
- * @see DiskApi
- */
-@Headers(keys = "x-ms-version", values = "2012-03-01")
-public interface DiskAsyncApi {
-
- /**
- * @see DiskApi#list()
- */
- @Named("ListDisks")
- @GET
- @Path("/services/disks")
- @XMLResponseParser(ListDisksHandler.class)
- @Fallback(EmptySetOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Set<Disk>> list();
-
- /**
- * @see DiskApi#delete
- */
- @Named("DeleteDisk")
- @DELETE
- @Path("/services/disks/{diskName}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- ListenableFuture<String> delete(@PathParam("diskName") String imageName);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceApi.java
deleted file mode 100644
index 25dad7e..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceApi.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.azure.management.features;
-
-import java.util.Set;
-import org.jclouds.azure.management.domain.Deployment;
-import org.jclouds.azure.management.domain.HostedService;
-import org.jclouds.azure.management.domain.HostedServiceWithDetailedProperties;
-import org.jclouds.azure.management.options.CreateHostedServiceOptions;
-
-/**
- * The Service Management API includes operations for managing the hosted services beneath your
- * subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
- * @see HostedServiceAsyncApi
- */
-public interface HostedServiceApi {
-
- /**
- * The List Hosted Services operation lists the hosted services available under the current
- * subscription.
- *
- * @return the response object
- */
- Set<HostedServiceWithDetailedProperties> list();
-
- /**
- * The Create Hosted Service operation creates a new hosted service in Windows Azure.
- *
- * @param serviceName
- * A name for the hosted service that is unique within Windows Azure. This name is the
- * DNS prefix name and can be used to access the hosted service.
- *
- * For example: http://ServiceName.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 hosted 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>
- */
- String createServiceWithLabelInLocation(String serviceName, String label, String location);
-
- /**
- * same as {@link #createServiceWithLabelInLocation(String, String, String)} , except you can
- * specify optional parameters such as extended properties or a description.
- *
- * @param options
- * parameters such as extended properties or a description.
- */
- String createServiceWithLabelInLocation(String serviceName, String label, String location,
- CreateHostedServiceOptions options);
-
- /**
- * The Get Hosted Service Properties operation retrieves system properties for the specified
- * hosted 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 serviceName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- */
- HostedService get(String serviceName);
-
- /**
- * like {@link #get(String)}, except additional data such as status and deployment information is
- * returned.
- *
- * @param serviceName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- */
- HostedServiceWithDetailedProperties getDetails(String serviceName);
-
- /**
- * The Delete Hosted Service operation deletes the specified hosted service from Windows Azure.
- *
- * @param serviceName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- *
- * @return request id or null, if not found
- */
- String delete(String serviceName);
-
- /**
- * http://msdn.microsoft.com/en-us/library/ee460813
- *
- * @param serviceName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- * @param deploymentSlotName
- * "staging" or "production", depending on where you wish to deploy your service
- * package
- * @param createDeployment
- * the deployment to create
- */
- // This is a PaaS REST service !
-// void createDeployment(String serviceName, String deploymentSlotName, CreateDeployment createDeployment);
-
- /**
- * The Delete Deployment operation deletes the specified deployment from Windows Azure.
- *
- * @param serviceName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- * @param deploymentName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- */
- String deleteDeployment(String serviceName, String deploymentName);
-
-
- /**
- * The Get Deployment operation returns the specified deployment from Windows Azure.
- *
- * @param serviceName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- * @param deploymentName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- */
- Deployment getDeployment(String serviceName, String deploymentName);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceAsyncApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceAsyncApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceAsyncApi.java
deleted file mode 100644
index 699b6dc..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/HostedServiceAsyncApi.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.azure.management.features;
-
-import java.util.Set;
-
-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.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.azure.management.binders.BindCreateHostedServiceToXmlPayload;
-import org.jclouds.azure.management.domain.Deployment;
-import org.jclouds.azure.management.domain.HostedService;
-import org.jclouds.azure.management.domain.HostedServiceWithDetailedProperties;
-import org.jclouds.azure.management.functions.ParseRequestIdHeader;
-import org.jclouds.azure.management.options.CreateHostedServiceOptions;
-import org.jclouds.azure.management.xml.DeploymentHandler;
-import org.jclouds.azure.management.xml.HostedServiceHandler;
-import org.jclouds.azure.management.xml.HostedServiceWithDetailedPropertiesHandler;
-import org.jclouds.azure.management.xml.ListHostedServicesHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * The Service Management API includes operations for managing the hosted services beneath your
- * subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460812">docs</a>
- * @see HostedServiceApi
- */
-@Headers(keys = "x-ms-version", values = "2012-03-01")
-public interface HostedServiceAsyncApi {
-
- /**
- * @see HostedServiceApi#list()
- */
- @Named("ListHostedServices")
- @GET
- @Path("/services/hostedservices")
- @XMLResponseParser(ListHostedServicesHandler.class)
- @Fallback(EmptySetOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Set<HostedServiceWithDetailedProperties>> list();
-
- /**
- * @see HostedServiceApi#createServiceWithLabelInLocation(String, String, String)
- */
- @Named("CreateHostedService")
- @POST
- @Path("/services/hostedservices")
- @MapBinder(BindCreateHostedServiceToXmlPayload.class)
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- ListenableFuture<String> createServiceWithLabelInLocation(@PayloadParam("serviceName") String serviceName,
- @PayloadParam("label") String label, @PayloadParam("location") String location);
-
- /**
- * @see HostedServiceApi#createServiceWithLabelInLocation(String, String, String,
- * CreateHostedServiceOptions)
- */
- @Named("CreateHostedService")
- @POST
- @Path("/services/hostedservices")
- @MapBinder(BindCreateHostedServiceToXmlPayload.class)
- @Produces(MediaType.APPLICATION_XML)
- @ResponseParser(ParseRequestIdHeader.class)
- ListenableFuture<String> createServiceWithLabelInLocation(@PayloadParam("serviceName") String serviceName,
- @PayloadParam("label") String label, @PayloadParam("location") String location,
- @PayloadParam("options") CreateHostedServiceOptions options);
-
- /**
- * @see HostedServiceApi#get(String)
- */
- @Named("GetHostedServiceProperties")
- @GET
- @Path("/services/hostedservices/{serviceName}")
- @XMLResponseParser(HostedServiceHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<HostedService> get(@PathParam("serviceName") String serviceName);
-
- /**
- * @see HostedServiceApi#getDetails(String)
- */
- @Named("GetHostedServiceProperties")
- @GET
- @Path("/services/hostedservices/{serviceName}")
- @QueryParams(keys = "embed-detail", values = "true")
- @XMLResponseParser(HostedServiceWithDetailedPropertiesHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<HostedServiceWithDetailedProperties> getDetails(@PathParam("serviceName") String serviceName);
-
- /**
- * @see HostedServiceApi#delete(String)
- */
- @Named("DeleteHostedService")
- @DELETE
- @Path("/services/hostedservices/{serviceName}")
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- ListenableFuture<String> delete(@PathParam("serviceName") String serviceName);
-
- /**
- * @see HostedServiceApi#deleteDeployment(String, String)
- */
- @Named("DeleteDeployment")
- @DELETE
- @Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}")
- @Fallback(VoidOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- ListenableFuture<String> deleteDeployment(@PathParam("serviceName") String serviceName,
- @PathParam("deploymentName") String deploymentName);
-
- /**
- * @see HostedServiceApi#get(String,String)
- */
- @Named("GetDeployment")
- @GET
- @Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}")
- @XMLResponseParser(DeploymentHandler.class)
- @Fallback(VoidOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Deployment> getDeployment(@PathParam("serviceName") String serviceName, @PathParam("deploymentName") String deploymentName);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/LocationApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/LocationApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/LocationApi.java
deleted file mode 100644
index 8c73f03..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/LocationApi.java
+++ /dev/null
@@ -1,40 +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.azure.management.features;
-
-import java.util.Set;
-import org.jclouds.azure.management.domain.Location;
-
-/**
- * The Service Management API includes operations for listing the available data center locations
- * for a hosted service in your subscription.
- * <p/>
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441299" />
- * @see LocationAsyncApi
- */
-public interface LocationApi {
-
- /**
- * The List Locations operation lists all of the data center locations that are valid for your
- * subscription.
- *
- * @return the response object
- */
- Set<Location> list();
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/LocationAsyncApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/LocationAsyncApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/LocationAsyncApi.java
deleted file mode 100644
index fcc1749..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/LocationAsyncApi.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.azure.management.features;
-
-import java.util.Set;
-
-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.EmptySetOnNotFoundOr404;
-import org.jclouds.azure.management.domain.Location;
-import org.jclouds.azure.management.xml.ListLocationsHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * The Service Management API includes operations for listing the available data center locations
- * for a hosted service in your subscription.
- * <p/>
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441299" />
- * @see LocationApi
- */
-@Headers(keys = "x-ms-version", values = "2012-03-01")
-public interface LocationAsyncApi {
-
- /**
- * @see LocationApi#list()
- */
- @Named("ListLocations")
- @GET
- @Path("/locations")
- @XMLResponseParser(ListLocationsHandler.class)
- @Fallback(EmptySetOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Set<Location>> list();
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageApi.java
deleted file mode 100644
index dc02e4f..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageApi.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.azure.management.features;
-
-import java.util.Set;
-import org.jclouds.azure.management.domain.OSImage;
-import org.jclouds.azure.management.domain.OSImageParams;
-
-/**
- * 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>
- * @see OSImageAsyncApi
- */
-public interface OSImageApi {
-
- /**
- * The List Hosted Services operation lists the hosted services available under the current
- * subscription.
- *
- * @return the response object
- */
- Set<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.
- *
- * @param params
- * the required parameters needed to add an image
- */
- void add(OSImageParams params);
-
- /**
- * The Update OS Image operation updates an OS image that in your image repository.
- *
- * @param params
- * the required parameters needed to update an image
- */
- void update(OSImageParams params);
-
- /**
- * The Delete Hosted Service operation deletes the specified hosted service from Windows Azure.
- *
- * @param imageName
- * the unique DNS Prefix value in the Windows Azure Management Portal
- */
- void delete(String imageName);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageAsyncApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageAsyncApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageAsyncApi.java
deleted file mode 100644
index 23df1d2..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/OSImageAsyncApi.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.azure.management.features;
-
-import java.util.Set;
-
-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.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.azure.management.binders.BindOSImageParamsToXmlPayload;
-import org.jclouds.azure.management.domain.OSImage;
-import org.jclouds.azure.management.domain.OSImageParams;
-import org.jclouds.azure.management.functions.OSImageParamsName;
-import org.jclouds.azure.management.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.XMLResponseParser;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * The Service Management API includes operations for managing the OS images in your subscription.
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj5775">docs</a>
- * @see OSImageApi
- */
-@Headers(keys = "x-ms-version", values = "2012-03-01")
-public interface OSImageAsyncApi {
-
- /**
- * @see OSImageApi#list()
- */
- @Named("ListOsImages")
- @GET
- @Path("/services/images")
- @XMLResponseParser(ListOSImagesHandler.class)
- @Fallback(EmptySetOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Set<OSImage>> list();
-
- /**
- * @see OSImageApi#add(String)
- */
- @Named("AddOsImage")
- @POST
- @Path("/services/images")
- @Produces(MediaType.APPLICATION_XML)
- ListenableFuture<Void> add(@BinderParam(BindOSImageParamsToXmlPayload.class) OSImageParams params);
-
- /**
- * @see OSImageApi#update(String)
- */
- @Named("UpdateOsImage")
- @PUT
- @Path("/services/images/{imageName}")
- @Produces(MediaType.APPLICATION_XML)
- ListenableFuture<Void> update(
- @PathParam("imageName") @ParamParser(OSImageParamsName.class) @BinderParam(BindOSImageParamsToXmlPayload.class) OSImageParams params);
-
- /**
- * @see OSImageApi#delete(String)
- */
- @Named("DeleteOsImage")
- @DELETE
- @Path("/services/images/{imageName}")
- @Fallback(VoidOnNotFoundOr404.class)
- ListenableFuture<Void> delete(@PathParam("imageName") String imageName);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/OperationApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/OperationApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/OperationApi.java
deleted file mode 100644
index c2655d7..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/OperationApi.java
+++ /dev/null
@@ -1,31 +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.azure.management.features;
-
-import org.jclouds.azure.management.domain.Operation;
-
-/**
- * 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>
- * @see OperationAsyncApi
- */
-public interface OperationApi {
-
- Operation get(String requestId);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/OperationAsyncApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/OperationAsyncApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/OperationAsyncApi.java
deleted file mode 100644
index 06011b2..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/OperationAsyncApi.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.azure.management.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.azure.management.domain.Operation;
-import org.jclouds.azure.management.xml.OperationHandler;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.XMLResponseParser;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * 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>
- * @see OperationApi
- */
-@Headers(keys = "x-ms-version", values = "2012-03-01")
-public interface OperationAsyncApi {
-
- /**
- * @see OperationApi#get(String)
- */
- @Named("GetOperation")
- @GET
- @Path("/operations/{request-id}")
- @XMLResponseParser(OperationHandler.class)
- @Fallback(NullOnNotFoundOr404.class)
- @Consumes(MediaType.APPLICATION_XML)
- ListenableFuture<Operation> get(@PathParam("request-id") String requestId);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/RoleApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/RoleApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/RoleApi.java
deleted file mode 100644
index cca3408..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/RoleApi.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.azure.management.features;
-
-import org.jclouds.azure.management.domain.DeploymentParams;
-import org.jclouds.azure.management.domain.role.PersistentVMRole;
-
-/**
- * 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>
- * @see RoleAsyncApi
- */
-public interface RoleApi {
-
- // TODO: this is not the good REST call !!! Use getDeployment instead :@
- PersistentVMRole getRole(String serviceName, String deploymentName, String roleName);
-
- String restartRole(String serviceName, String deploymentName, String roleName);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157194
- *
- * @param serviceName
- * @param deploymentParams
- * @return
- */
- String createDeployment(String serviceName, DeploymentParams deploymentParams);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157201
- *
- * @return
- */
- String captureRole(String serviceName, String deploymentName, String roleName, String imageName, String imageLabel);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157195
- *
- * @param serviceName
- * @param deploymentName
- * @param roleName
- * @return
- */
- String shutdownRole(String serviceName, String deploymentName, String roleName);
-
- /**
- * http://msdn.microsoft.com/en-us/library/jj157189
- *
- * @param serviceName
- * @param deploymentName
- * @param roleName
- * @return
- */
- String startRole(String serviceName, String deploymentName, String roleName);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/features/RoleAsyncApi.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/features/RoleAsyncApi.java b/azure-management/src/main/java/org/jclouds/azure/management/features/RoleAsyncApi.java
deleted file mode 100644
index 2b1ee22..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/features/RoleAsyncApi.java
+++ /dev/null
@@ -1,137 +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.azure.management.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-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.azure.management.binders.BindDeploymentParamsToXmlPayload;
-import org.jclouds.azure.management.domain.DeploymentParams;
-import org.jclouds.azure.management.domain.role.PersistentVMRole;
-import org.jclouds.azure.management.functions.ParseRequestIdHeader;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.Headers;
-import org.jclouds.rest.annotations.JAXBResponseParser;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.ResponseParser;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * 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>
- * @see RoleApi
- */
-@Headers(keys = "x-ms-version", values = "2012-03-01")
-public interface RoleAsyncApi {
-
- /**
- * @see RoleApi#getRole(String, String, String)
- */
- @Named("GetRole")
- @GET
- @Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}/roles/{roleName}")
- @Consumes(MediaType.APPLICATION_ATOM_XML)
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<PersistentVMRole> getRole(@PathParam("serviceName") String serviceName,
- @PathParam("deploymentName") String deploymentName, @PathParam("roleName") String roleName);
-
- /**
- * @see RoleApi#restartRole(String, String, String)
- */
- @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("/services/hostedservices/{serviceName}/deployments/{deploymentName}/roleInstances/{roleName}/Operations")
- @Consumes(MediaType.APPLICATION_ATOM_XML)
- @Produces(MediaType.APPLICATION_ATOM_XML)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<RestartRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><OperationType>RestartRoleOperation</OperationType></RestartRoleOperation>")
- ListenableFuture<String> restartRole(@PathParam("serviceName") String serviceName,
- @PathParam("deploymentName") String deploymentName, @PathParam("roleName") String roleName);
-
- /**
- * @see RoleApi#createDeployment(String, DeploymentParams)
- */
- @Named("CreateVirtualMachineDeployment")
- @POST
- @Path("/services/hostedservices/{serviceName}/deployments")
- @Produces(MediaType.APPLICATION_ATOM_XML)
- @Consumes(MediaType.APPLICATION_ATOM_XML)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- ListenableFuture<String> createDeployment(@PathParam("serviceName") String serviceName,
- @BinderParam(BindDeploymentParamsToXmlPayload.class) DeploymentParams deploymentParams);
-
- /**
- * @see RoleApi#captureRole(String, String, String, String, String)
- */
- @Named("CaptureRole")
- @POST
- @Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}/roleInstances/{roleName}/Operations")
- @Consumes(MediaType.APPLICATION_ATOM_XML)
- @Produces(MediaType.APPLICATION_ATOM_XML)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<CaptureRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><OperationType>CaptureRoleOperation</OperationType><PostCaptureAction>Delete</PostCaptureAction><TargetImageLabel>{imageLabel}</TargetImageLabel><TargetImageName>{imageName}</TargetImageName></CaptureRoleOperation>")
- ListenableFuture<String> captureRole(@PathParam("serviceName") String serviceName,
- @PathParam("deploymentName") String deploymentName, @PathParam("roleName") String roleName,
- @PayloadParam("imageName") String imageName, @PayloadParam("imageLabel") String imageLabel);
-
- /**
- * @see RoleApi#shutdownRole(String, String, String)
- */
- @Named("ShutdownRole")
- @POST
- @Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}/roleInstances/{roleName}/Operations")
- @Consumes(MediaType.APPLICATION_ATOM_XML)
- @Produces(MediaType.APPLICATION_ATOM_XML)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<ShutdownRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><OperationType>ShutdownRoleOperation</OperationType></ShutdownRoleOperation>")
- ListenableFuture<String> shutdownRole(@PathParam("serviceName") String serviceName,
- @PathParam("deploymentName") String deploymentName, @PathParam("roleName") String roleName);
-
- /**
- * @see RoleApi#startRole(String, String, String)
- */
- @Named("StartRole")
- @POST
- @Path("/services/hostedservices/{serviceName}/deployments/{deploymentName}/roleInstances/{roleName}/Operations")
- @Consumes(MediaType.APPLICATION_ATOM_XML)
- @Produces(MediaType.APPLICATION_ATOM_XML)
- @Fallback(NullOnNotFoundOr404.class)
- @ResponseParser(ParseRequestIdHeader.class)
- @Payload(value = "<StartRoleOperation xmlns=\"http://schemas.microsoft.com/windowsazure\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><OperationType>StartRoleOperation</OperationType></StartRoleOperation>")
- ListenableFuture<String> startRole(@PathParam("serviceName") String serviceName,
- @PathParam("deploymentName") String deploymentName, @PathParam("roleName") String roleName);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/functions/OSImageParamsName.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/functions/OSImageParamsName.java b/azure-management/src/main/java/org/jclouds/azure/management/functions/OSImageParamsName.java
deleted file mode 100644
index 7be216a..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/functions/OSImageParamsName.java
+++ /dev/null
@@ -1,37 +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.azure.management.functions;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import javax.inject.Singleton;
-
-import org.jclouds.azure.management.domain.OSImageParams;
-
-import com.google.common.base.Function;
-
-@Singleton
-public class OSImageParamsName implements Function<Object, String> {
- @Override
- public String apply(Object input) {
- checkArgument(checkNotNull(input, "input") instanceof OSImageParams,
- "this function is only valid for OSImageParams!");
- return checkNotNull(OSImageParams.class.cast(input), "OSImageParams").getName();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/functions/ParseRequestIdHeader.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/functions/ParseRequestIdHeader.java b/azure-management/src/main/java/org/jclouds/azure/management/functions/ParseRequestIdHeader.java
deleted file mode 100644
index fe0b517..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/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.azure.management.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(HttpResponse from) {
- releasePayload(from);
- String requestId = from.getFirstHeaderOrNull("x-ms-request-id");
- if (requestId != null) {
- return requestId;
- }
- throw new IllegalStateException("did not receive RequestId in: " + from);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/options/CreateHostedServiceOptions.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/options/CreateHostedServiceOptions.java b/azure-management/src/main/java/org/jclouds/azure/management/options/CreateHostedServiceOptions.java
deleted file mode 100644
index f33308a..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/options/CreateHostedServiceOptions.java
+++ /dev/null
@@ -1,126 +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.azure.management.options;
-
-import java.util.Map;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-
-/**
- * Optional parameters for creating a hosted service
- *
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441304" >docs</a>
- */
-public class CreateHostedServiceOptions implements Cloneable {
-
- private Optional<String> description = Optional.absent();
- private Optional<Map<String, String>> extendedProperties = Optional.absent();
-
- /**
- * @see CreateHostedServiceOptions#getDescription()
- */
- public CreateHostedServiceOptions description(String description) {
- this.description = Optional.fromNullable(description);
- return this;
- }
-
- /**
- * @see CreateHostedServiceOptions#getExtendedProperties()
- */
- public CreateHostedServiceOptions extendedProperties(Map<String, String> extendedProperties) {
- this.extendedProperties = Optional.fromNullable(extendedProperties);
- return this;
- }
-
- /**
- * A description for the hosted service. The description can be up to 1024 characters in length.
- */
- public Optional<String> getDescription() {
- return description;
- }
-
- /**
- * Represents the name of an extended hosted 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.
- *
- * 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 Optional<Map<String, String>> getExtendedProperties() {
- return extendedProperties;
- }
-
- public static class Builder {
-
- /**
- * @see CreateHostedServiceOptions#getDescription()
- */
- public static CreateHostedServiceOptions description(String description) {
- return new CreateHostedServiceOptions().description(description);
- }
-
- /**
- * @see CreateHostedServiceOptions#getExtendedProperties()
- */
- public static CreateHostedServiceOptions extendedProperties(Map<String, String> extendedProperties) {
- return new CreateHostedServiceOptions().extendedProperties(extendedProperties);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode() {
- return Objects.hashCode(description, extendedProperties);
- }
-
- @Override
- public CreateHostedServiceOptions clone() {
- return new CreateHostedServiceOptions().description(description.orNull()).extendedProperties(
- extendedProperties.orNull());
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- CreateHostedServiceOptions other = CreateHostedServiceOptions.class.cast(obj);
- return Objects.equal(this.description, other.description)
- && Objects.equal(this.extendedProperties, other.extendedProperties);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return MoreObjects.toStringHelper("").omitNullValues().add("description", description.orNull())
- .add("extendedProperties", extendedProperties.orNull()).toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/suppliers/KeyStoreSupplier.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/suppliers/KeyStoreSupplier.java b/azure-management/src/main/java/org/jclouds/azure/management/suppliers/KeyStoreSupplier.java
deleted file mode 100644
index c72257b..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/suppliers/KeyStoreSupplier.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.azure.management.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Throwables.propagate;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.KeySpec;
-import java.util.Collection;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.crypto.Crypto;
-import org.jclouds.crypto.Pems;
-import org.jclouds.domain.Credentials;
-import org.jclouds.io.InputSuppliers;
-import org.jclouds.location.Provider;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Supplier;
-import com.google.common.io.ByteSource;
-
-/**
- * TODO this code needs to be completely refactored. It needs to stop using KeyStore of at all possible and definitely
- * the local filesystem. Please look at oauth for examples on how to do this via PEMs.
- */
-@Deprecated
-@Singleton
-public class KeyStoreSupplier implements Supplier<KeyStore> {
- private final Crypto crypto;
- private final Supplier<Credentials> creds;
-
- @Inject
- KeyStoreSupplier(Crypto crypto, @Provider Supplier<Credentials> creds) {
- this.crypto = crypto;
- this.creds = creds;
- }
-
- @Override
- public KeyStore get() {
- Credentials currentCreds = checkNotNull(creds.get(), "credential supplier returned null");
- String cert = checkNotNull(currentCreds.identity, "credential supplier returned null identity (should be cert)");
- String keyStorePassword = checkNotNull(currentCreds.credential,
- "credential supplier returned null credential (should be keyStorePassword)");
- try {
- KeyStore keyStore = KeyStore.getInstance("PKCS12");
-
- File certFile = new File(checkNotNull(cert));
- if (certFile.isFile()) { // cert is path to pkcs12 file
- FileInputStream stream = new FileInputStream(certFile);
- try {
- keyStore.load(stream, keyStorePassword.toCharArray());
- } finally {
- stream.close();
- }
- } else { // cert is PEM encoded, containing private key and certs
-
- // split in private key and certs
- int privateKeyBeginIdx = cert.indexOf("-----BEGIN PRIVATE KEY");
- int privateKeyEndIdx = cert.indexOf("-----END PRIVATE KEY");
- String pemPrivateKey = cert.substring(privateKeyBeginIdx, privateKeyEndIdx + 26);
-
- StringBuilder pemCerts = new StringBuilder();
- int certsBeginIdx = 0;
-
- do {
- certsBeginIdx = cert.indexOf("-----BEGIN CERTIFICATE", certsBeginIdx);
-
- if (certsBeginIdx >= 0) {
- int certsEndIdx = cert.indexOf("-----END CERTIFICATE", certsBeginIdx) + 26;
- pemCerts.append(cert.substring(certsBeginIdx, certsEndIdx));
- certsBeginIdx = certsEndIdx;
- }
- } while (certsBeginIdx != -1);
-
- // parse private key
- KeySpec keySpec = Pems.privateKeySpec(ByteSource.wrap(pemPrivateKey.getBytes(Charsets.UTF_8)));
- PrivateKey privateKey = crypto.rsaKeyFactory().generatePrivate(keySpec);
-
- // populate keystore with private key and certs
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
- @SuppressWarnings("unchecked")
- Collection<Certificate> certs = (Collection<Certificate>) cf.generateCertificates(new ByteArrayInputStream(
- pemCerts.toString().getBytes(Charsets.UTF_8)));
- keyStore.load(null);
- keyStore.setKeyEntry("dummy", privateKey, keyStorePassword.toCharArray(),
- certs.toArray(new java.security.cert.Certificate[0]));
-
- }
- return keyStore;
- } catch (NoSuchAlgorithmException e) {
- throw propagate(e);
- } catch (KeyStoreException e) {
- throw propagate(e);
- } catch (CertificateException e) {
- throw propagate(e);
- } catch (FileNotFoundException e) {
- throw propagate(e);
- } catch (IOException e) {
- throw propagate(e);
- } catch (InvalidKeySpecException e) {
- throw propagate(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/suppliers/SSLContextWithKeysSupplier.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/suppliers/SSLContextWithKeysSupplier.java b/azure-management/src/main/java/org/jclouds/azure/management/suppliers/SSLContextWithKeysSupplier.java
deleted file mode 100644
index 7392b70..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/suppliers/SSLContextWithKeysSupplier.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.azure.management.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Throwables.propagate;
-
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.UnrecoverableKeyException;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-
-import org.jclouds.domain.Credentials;
-import org.jclouds.http.HttpUtils;
-import org.jclouds.http.config.SSLModule.TrustAllCerts;
-import org.jclouds.location.Provider;
-
-import com.google.common.base.Supplier;
-
-/**
- * TODO this code needs to be completely refactored. It needs to stop using KeyStore of at all possible and definitely
- * the local filesystem. Please look at oauth for examples on how to do this via PEMs.
- */
-@Deprecated
-@Singleton
-public class SSLContextWithKeysSupplier implements Supplier<SSLContext> {
- private final Supplier<KeyStore> keyStore;
- private final TrustManager[] trustManager;
- private final Supplier<Credentials> creds;
-
- @Inject
- SSLContextWithKeysSupplier(Supplier<KeyStore> keyStore, @Provider Supplier<Credentials> creds, HttpUtils utils,
- TrustAllCerts trustAllCerts) {
- this.keyStore = keyStore;
- this.trustManager = utils.trustAllCerts() ? new TrustManager[] { trustAllCerts } : null;
- this.creds = creds;
- }
-
- @Override
- public SSLContext get() {
- Credentials currentCreds = checkNotNull(creds.get(), "credential supplier returned null");
- String keyStorePassword = checkNotNull(currentCreds.credential,
- "credential supplier returned null credential (should be keyStorePassword)");
- KeyManagerFactory kmf;
- try {
- kmf = KeyManagerFactory.getInstance("SunX509");
- kmf.init(keyStore.get(), keyStorePassword.toCharArray());
- SSLContext sc = SSLContext.getInstance("TLS");
- sc.init(kmf.getKeyManagers(), trustManager, new SecureRandom());
- return sc;
- } catch (NoSuchAlgorithmException e) {
- throw propagate(e);
- } catch (UnrecoverableKeyException e) {
- throw propagate(e);
- } catch (KeyStoreException e) {
- throw propagate(e);
- } catch (KeyManagementException e) {
- throw propagate(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/xml/AttachmentHandler.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/xml/AttachmentHandler.java b/azure-management/src/main/java/org/jclouds/azure/management/xml/AttachmentHandler.java
deleted file mode 100644
index 70699d8..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/xml/AttachmentHandler.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.azure.management.xml;
-
-import org.jclouds.azure.management.domain.Disk.Attachment;
-import org.jclouds.http.functions.ParseSax;
-import org.jclouds.util.SaxUtils;
-import org.xml.sax.SAXException;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/jj157176" >api</a>
- */
-public class AttachmentHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Attachment> {
-
- private StringBuilder currentText = new StringBuilder();
- private Attachment.Builder builder = Attachment.builder();
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Attachment getResult() {
- try {
- return builder.build();
- } finally {
- builder = Attachment.builder();
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void endElement(String uri, String name, String qName) throws SAXException {
- if (qName.equals("HostedServiceName")) {
- builder.hostedService(SaxUtils.currentOrNull(currentText));
- } else if (qName.equals("DeploymentName")) {
- builder.deployment(SaxUtils.currentOrNull(currentText));
- } else if (qName.equals("RoleName")) {
- builder.role(SaxUtils.currentOrNull(currentText));
- }
- currentText.setLength(0);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void characters(char ch[], int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/xml/DeploymentHandler.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/xml/DeploymentHandler.java b/azure-management/src/main/java/org/jclouds/azure/management/xml/DeploymentHandler.java
deleted file mode 100644
index 68eaf22..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/xml/DeploymentHandler.java
+++ /dev/null
@@ -1,126 +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.azure.management.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 static org.jclouds.util.SaxUtils.equalsOrSuffix;
-
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.azure.management.domain.Deployment;
-import org.jclouds.azure.management.domain.DeploymentSlot;
-import org.jclouds.azure.management.domain.DeploymentStatus;
-import org.jclouds.azure.management.domain.InstanceStatus;
-import org.jclouds.azure.management.domain.RoleSize;
-import org.jclouds.http.functions.ParseSax;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-import com.google.common.collect.Lists;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/ee460804" >api</a>
- */
-public class DeploymentHandler extends
- ParseSax.HandlerForGeneratedRequestWithResult<Deployment> {
-
- private List<String> elements = Lists.newArrayList();
- protected StringBuilder currentText = new StringBuilder();
- private Deployment.Builder builder = Deployment.builder();
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Deployment getResult() {
- try {
- return builder.build();
- } finally {
- builder = Deployment.builder();
- }
- }
-
-
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- elements.add(qName);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void endElement(String uri, String name, String qName)
- throws SAXException {
- if (equalsOrSuffix(qName, "Name") && "Deployment".equals(elements.get(elements.size()-2))) {
- builder.deploymentName(currentOrNull(currentText));
- } else if (equalsOrSuffix(qName, "DeploymentSlot")) {
- final String dpltSlot = currentOrNull(currentText);
- if (dpltSlot != null)
- builder.deploymentSlot(DeploymentSlot.fromValue(dpltSlot));
- } else if (equalsOrSuffix(qName, "Status")) {
- String deploymentStatus = currentOrNull(currentText);
- if (deploymentStatus != null)
- builder.deploymentStatus(DeploymentStatus
- .fromValue(deploymentStatus));
- } else if (equalsOrSuffix(qName, "Label")) {
- String label = currentOrNull(currentText);
- if (label != null)
- builder.deploymentLabel(new String(base64().decode(label), UTF_8));
- } else if (equalsOrSuffix(qName, "Url")) {
- final String url = currentOrNull(currentText);
- if (url != null)
- builder.deploymentURL(URI.create(url));
- } else if (equalsOrSuffix(qName, "RoleName")) {
- builder.roleName(currentOrNull(currentText));
- } else if (equalsOrSuffix(qName, "InstanceName")) {
- builder.instanceName(currentOrNull(currentText));
- } else if (equalsOrSuffix(qName, "InstanceStatus")) {
- String instanceStatus = currentOrNull(currentText);
- if (instanceStatus != null)
- builder.instanceStatus(InstanceStatus.fromValue(instanceStatus));
- } else if (equalsOrSuffix(qName, "InstanceStateDetails")) {
- builder.instanceStateDetails(currentOrNull(currentText));
- } else if (equalsOrSuffix(qName, "InstanceErrorCode")) {
- builder.instanceErrorCode(currentOrNull(currentText));
- } else if (equalsOrSuffix(qName, "InstanceSize")) {
- String instanceSize = currentOrNull(currentText);
- if (instanceSize != null)
- builder.instanceSize(RoleSize.fromValue(instanceSize));
- } else if (equalsOrSuffix(qName, "IpAddress")) {
- builder.privateIpAddress(currentOrNull(currentText));
- } else if (equalsOrSuffix(qName, "Vip")) {
- builder.publicIpAddress(currentOrNull(currentText));
- }
-
- currentText.setLength(0);
- elements.remove(elements.size()-1);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void characters(char ch[], int start, int length) {
- currentText.append(ch, start, length);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6ab58bd2/azure-management/src/main/java/org/jclouds/azure/management/xml/DetailedHostedServicePropertiesHandler.java
----------------------------------------------------------------------
diff --git a/azure-management/src/main/java/org/jclouds/azure/management/xml/DetailedHostedServicePropertiesHandler.java b/azure-management/src/main/java/org/jclouds/azure/management/xml/DetailedHostedServicePropertiesHandler.java
deleted file mode 100644
index fef02d7..0000000
--- a/azure-management/src/main/java/org/jclouds/azure/management/xml/DetailedHostedServicePropertiesHandler.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.azure.management.xml;
-
-import static org.jclouds.util.SaxUtils.currentOrNull;
-import static org.jclouds.util.SaxUtils.equalsOrSuffix;
-
-import javax.inject.Inject;
-
-import org.jclouds.azure.management.domain.DetailedHostedServiceProperties;
-import org.jclouds.azure.management.domain.HostedService.Status;
-import org.jclouds.date.DateService;
-import org.xml.sax.SAXException;
-
-/**
- * @see <a href="http://msdn.microsoft.com/en-us/library/gg441293" >api</a>
- */
-public class DetailedHostedServicePropertiesHandler extends HostedServicePropertiesHandler {
-
- protected final DateService dateService;
-
- @Inject
- protected DetailedHostedServicePropertiesHandler(DateService dateService) {
- this.dateService = dateService;
- }
-
- private DetailedHostedServiceProperties.Builder<?> builder = DetailedHostedServiceProperties.builder();
-
- private String name;
-
- /**
- * {@inheritDoc}
- */
- @Override
- public DetailedHostedServiceProperties getResult() {
- try {
- return builder.fromHostedServiceProperties(super.getResult()).build();
- } finally {
- builder = DetailedHostedServiceProperties.builder();
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void endElement(String uri, String name, String qName) throws SAXException {
- if (equalsOrSuffix(qName, "DateCreated")) {
- builder.created(dateService.iso8601SecondsDateParse(currentOrNull(currentText)));
- } else if (equalsOrSuffix(qName, "DateLastModified")) {
- builder.lastModified(dateService.iso8601SecondsDateParse(currentOrNull(currentText)));
- } else if (equalsOrSuffix(qName, "Status")) {
- String rawStatus = currentOrNull(currentText);
- builder.rawStatus(rawStatus);
- builder.status(Status.fromValue(rawStatus));
- } else if (equalsOrSuffix(qName, "Name")) {
- this.name = currentOrNull(currentText);
- } else if (equalsOrSuffix(qName, "Value")) {
- builder.addExtendedProperty(this.name, currentOrNull(currentText));
- this.name = null;
- } else {
- super.endElement(uri, name, qName);
- }
- currentText.setLength(0);
- }
-
-}