http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Router.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Router.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Router.java deleted file mode 100644 index 5096ed9..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Router.java +++ /dev/null @@ -1,149 +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.openstack.neutron.v2_0.domain; - -import com.google.common.base.Objects; - -import java.beans.ConstructorProperties; - -/** - * A Neutron Router - * - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/router_ext_concepts.html">api doc</a> - */ -public class Router extends ReferenceWithName { - - private final Boolean adminStateUp; - private final State state; - private final ExternalGatewayInfo externalGatewayInfo; - - @ConstructorProperties({ - "id", "tenant_id", "name", "admin_state_up", "status", "external_gateway_info" - }) - protected Router(String id, String tenantId, String name, Boolean adminStateUp, State state, ExternalGatewayInfo externalGatewayInfo) { - super(id, tenantId, name); - this.adminStateUp = adminStateUp; - this.state = state; - this.externalGatewayInfo = externalGatewayInfo; - } - - /** - * @return the administrative state of the router - */ - public Boolean getAdminStateUp() { - return adminStateUp; - } - - /** - * @return the current state of the router - */ - public State getState() { - return state; - } - - /** - * @return the information on external gateway for the router - */ - public ExternalGatewayInfo getExternalGatewayInfo() { - return externalGatewayInfo; - } - - @Override - public int hashCode() { - return Objects.hashCode(super.hashCode(), adminStateUp, state, externalGatewayInfo); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - Router that = Router.class.cast(obj); - return super.equals(obj) - && Objects.equal(this.adminStateUp, that.adminStateUp) - && Objects.equal(this.state, that.state) - && Objects.equal(this.externalGatewayInfo, that.externalGatewayInfo); - } - - protected Objects.ToStringHelper string() { - return super.string() - .add("adminStateUp", adminStateUp).add("state", state).add("externalGatewayInfo", externalGatewayInfo != null ? externalGatewayInfo.toString() : ""); - } - - @Override - public String toString() { - return string().toString(); - } - - public static Builder<?> builder() { - return new ConcreteBuilder(); - } - - public Builder<?> toBuilder() { - return new ConcreteBuilder().fromRouter(this); - } - - public abstract static class Builder<T extends Builder<T>> extends ReferenceWithName.Builder<T> { - - protected Boolean adminStateUp; - protected State state; - protected ExternalGatewayInfo externalGatewayInfo; - - /** - * @see Router#getAdminStateUp() - */ - public T adminStateUp(Boolean adminStateUp) { - this.adminStateUp = adminStateUp; - return self(); - } - - /** - * @see Router#getState() - */ - public T state(State state) { - this.state = state; - return self(); - } - - /** - * @see Router#getExternalGatewayInfo() - */ - public T externalGatewayInfo(ExternalGatewayInfo externalGatewayInfo) { - this.externalGatewayInfo = externalGatewayInfo; - return self(); - } - - public Router build() { - return new Router(id, tenantId, name, adminStateUp, state, externalGatewayInfo); - } - - public T fromRouter(Router in) { - return super.fromReference(in) - .adminStateUp(in.getAdminStateUp()) - .state(in.getState()) - .externalGatewayInfo(in.getExternalGatewayInfo()); - } - } - - private static class ConcreteBuilder extends Builder<ConcreteBuilder> { - @Override - protected ConcreteBuilder self() { - return this; - } - } - -}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/RouterInterface.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/RouterInterface.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/RouterInterface.java deleted file mode 100644 index f1a9c70..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/RouterInterface.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.openstack.neutron.v2_0.domain; - -import com.google.common.base.Objects; - -import java.beans.ConstructorProperties; - -/** - * A Neutron Router Interface - * - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/router_add_interface.html">api doc</a> - */ -public class RouterInterface { - - private final String subnetId; - private final String portId; - - @ConstructorProperties({ - "subnet_id", "port_id" - }) - protected RouterInterface(String subnetId, String portId) { - this.subnetId = subnetId; - this.portId = portId; - } - - /** - * @return the id of the subnet this router interface is associated with - */ - public String getSubnetId() { - return subnetId; - } - - /** - * @return the id of the port this router interface is associated with - */ - public String getPortId() { - return portId; - } - - @Override - public int hashCode() { - return Objects.hashCode(subnetId, portId); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - RouterInterface that = RouterInterface.class.cast(obj); - return Objects.equal(this.subnetId, that.subnetId) && Objects.equal(this.portId, that.portId); - } - - protected Objects.ToStringHelper string() { - return Objects.toStringHelper(this) - .add("subnetId", subnetId).add("portId", portId); - } - - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new ConcreteBuilder(); - } - - public Builder toBuilder() { - return new ConcreteBuilder().fromRouterInterface(this); - } - - public abstract static class Builder { - protected abstract Builder self(); - - protected String subnetId; - protected String portId; - - /** - * @see RouterInterface#getSubnetId() - */ - public Builder subnetId(String subnetId) { - this.subnetId = subnetId; - return self(); - } - - /** - * @see RouterInterface#getPortId() - */ - public Builder portId(String portId) { - this.portId = portId; - return self(); - } - - public RouterInterface build() { - return new RouterInterface(subnetId, portId); - } - - public Builder fromRouterInterface(RouterInterface in) { - return this.subnetId(in.getSubnetId()).portId(in.getPortId()); - } - } - - private static class ConcreteBuilder extends Builder { - @Override - protected ConcreteBuilder self() { - return this; - } - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/State.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/State.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/State.java deleted file mode 100644 index e276df8..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/State.java +++ /dev/null @@ -1,27 +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.openstack.neutron.v2_0.domain; - -/** - * The possible state of an entity - * - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/Concepts-d1e369.html">api doc</a> - */ -public enum State { - ACTIVE, DOWN, BUILD, ERROR -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Subnet.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Subnet.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Subnet.java deleted file mode 100644 index 9faf8bd..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/domain/Subnet.java +++ /dev/null @@ -1,264 +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.openstack.neutron.v2_0.domain; - -import com.google.common.base.Objects; -import com.google.common.base.Objects.ToStringHelper; -import com.google.common.collect.ImmutableSet; - -import java.beans.ConstructorProperties; -import java.util.Collection; -import java.util.Set; - -import static com.google.common.base.Preconditions.checkNotNull; - -/** - * A Neutron subnet - * - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/Subnets.html">api doc</a> - */ -public class Subnet extends ReferenceWithName { - - private final String networkId; - private final String gatewayIp; - private final Integer ipVersion; - private final String cidr; - private final Set<AllocationPool> allocationPools; - private final Boolean enableDhcp; - private final Set<String> dnsNameServers; - private final Set<HostRoute> hostRoutes; - - @ConstructorProperties({ - "id", "tenant_id", "name", "network_id", "gateway_ip", "ip_version", "cidr", "allocation_pools", "enable_dhcp", "dns_nameservers", "host_routes" - }) - protected Subnet(String id, String tenantId, String name, String networkId, - String gatewayIp, Integer ipVersion, String cidr, Set<AllocationPool> allocationPools, - Boolean enableDhcp, Set<String> dnsNameServers, Set<HostRoute> hostRoutes) { - super(id, tenantId, name); - this.networkId = checkNotNull(networkId, "networkId"); - this.gatewayIp = gatewayIp; - this.ipVersion = checkNotNull(ipVersion, "ipVersion"); - this.cidr = checkNotNull(cidr, "cidr"); - this.allocationPools = allocationPools != null ? ImmutableSet.copyOf(allocationPools) : ImmutableSet.<AllocationPool>of(); - this.enableDhcp = enableDhcp; - this.dnsNameServers = dnsNameServers != null ? ImmutableSet.copyOf(dnsNameServers) : ImmutableSet.<String>of(); - this.hostRoutes = hostRoutes != null ? ImmutableSet.copyOf(hostRoutes) : ImmutableSet.<HostRoute>of(); - } - - /** - * @return the id of the network this subnet is associated with - */ - public String getNetworkId() { - return networkId; - } - - /** - * @return the default gateway used by devices in this subnet - */ - public String getGatewayIp() { - return gatewayIp; - } - - /** - * @return the ip version used by this subnet - */ - public Integer getIpVersion() { - return ipVersion; - } - - /** - * @return the cidr representing the IP range for this subnet, based on IP version - */ - public String getCidr() { - return cidr; - } - - /** - * @return the sub-ranges of cidr available for dynamic allocation to ports - */ - public Set<AllocationPool> getAllocationPools() { - return allocationPools; - } - - /** - * @return true if DHCP is enabled for this subnet, false if not. - */ - public Boolean getEnableDhcp() { - return enableDhcp; - } - - /** - * @return the set of DNS name servers used by hosts in this subnet. - */ - public Set<String> getDnsNameServers() { - return dnsNameServers; - } - - /** - * @return the set of routes that should be used by devices with IPs from this subnet - */ - public Set<HostRoute> getHostRoutes() { - return hostRoutes; - } - - @Override - public int hashCode() { - return Objects.hashCode(super.hashCode(), networkId, gatewayIp, ipVersion, cidr, - allocationPools, enableDhcp, dnsNameServers, hostRoutes); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - Subnet that = Subnet.class.cast(obj); - return super.equals(obj) - && Objects.equal(this.networkId, that.networkId) - && Objects.equal(this.gatewayIp, that.gatewayIp) - && Objects.equal(this.ipVersion, that.ipVersion) - && Objects.equal(this.cidr, that.cidr) - && Objects.equal(this.allocationPools, that.allocationPools) - && Objects.equal(this.enableDhcp, that.enableDhcp) - && Objects.equal(this.dnsNameServers, that.dnsNameServers) - && Objects.equal(this.hostRoutes, that.hostRoutes); - } - - protected ToStringHelper string() { - return super.string() - .add("networkId", networkId) - .add("gatewayIp", gatewayIp) - .add("ipVersion", ipVersion) - .add("cidr", cidr) - .add("enableDHCP", enableDhcp) - .add("allocationPools", allocationPools) - .add("dnsNameServers", dnsNameServers) - .add("hostRoutes", hostRoutes); - } - - @Override - public String toString() { - return string().toString(); - } - - public static Builder<?> builder() { - return new ConcreteBuilder(); - } - - public Builder<?> toBuilder() { - return new ConcreteBuilder().fromSubnet(this); - } - - public abstract static class Builder<T extends Builder<T>> extends ReferenceWithName.Builder<T> { - protected String networkId; - protected String gatewayIp; - protected Integer ipVersion; - protected String cidr; - protected Set<AllocationPool> allocationPools; - protected Boolean enableDhcp; - protected Set<String> dnsNameServers; - protected Set<HostRoute> hostRoutes; - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getNetworkId() - */ - public T networkId(String networkId) { - this.networkId = networkId; - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getGatewayIp() - */ - public T gatewayIp(String gatewayIp) { - this.gatewayIp = gatewayIp; - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getIpVersion() - */ - public T ipVersion(Integer ipVersion) { - this.ipVersion = ipVersion; - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getCidr() - */ - public T cidr(String cidr) { - this.cidr = cidr; - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getAllocationPools() - */ - public T allocationPools(Collection<AllocationPool> allocationPools) { - this.allocationPools = ImmutableSet.copyOf(allocationPools); - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getEnableDhcp() - */ - public T enableDhcp(Boolean enableDhcp) { - this.enableDhcp = enableDhcp; - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getDnsNameServers() - */ - public T dnsNameServers(Collection<String> dnsNameServers) { - this.dnsNameServers = ImmutableSet.copyOf(dnsNameServers); - return self(); - } - - /** - * @see org.jclouds.openstack.neutron.v2_0.domain.Subnet#getHostRoutes() - */ - public T hostRoutes(Collection<HostRoute> hostRoutes) { - this.hostRoutes = ImmutableSet.copyOf(hostRoutes); - return self(); - } - - public Subnet build() { - return new Subnet(id, tenantId, name, networkId, gatewayIp, ipVersion, cidr, allocationPools, enableDhcp, dnsNameServers, hostRoutes); - } - - public T fromSubnet(Subnet in) { - return super.fromReference(in) - .networkId(in.getNetworkId()) - .gatewayIp(in.getGatewayIp()) - .ipVersion(in.getIpVersion()) - .cidr(in.getCidr()) - .allocationPools(in.getAllocationPools()) - .enableDhcp(in.getEnableDhcp()) - .dnsNameServers(in.getDnsNameServers()) - .hostRoutes(in.getHostRoutes()); - } - } - - private static class ConcreteBuilder extends Builder<ConcreteBuilder> { - @Override - protected ConcreteBuilder self() { - return this; - } - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApi.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApi.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApi.java deleted file mode 100644 index 3da0e34..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApi.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.openstack.neutron.v2_0.extensions; - -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.core.MediaType; - -import org.jclouds.Fallbacks; -import org.jclouds.collect.PagedIterable; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404; -import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.domain.Router; -import org.jclouds.openstack.neutron.v2_0.domain.RouterInterface; -import org.jclouds.openstack.neutron.v2_0.functions.ParseRouterDetails; -import org.jclouds.openstack.neutron.v2_0.functions.ParseRouters; -import org.jclouds.openstack.neutron.v2_0.options.CreateRouterOptions; -import org.jclouds.openstack.neutron.v2_0.options.EmptyOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateRouterOptions; -import org.jclouds.openstack.v2_0.options.PaginationOptions; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.annotations.Transform; - -/** - * Provides access to Router operations for the OpenStack Networking (Neutron) v2 API. - * <p/> - * A logical entity for forwarding packets across internal subnets and NATting them on external - * networks through an appropriate external gateway. - * - * @deprecated Please use {@link org.jclouds.openstack.neutron.v2.extensions.RouterApi} instead. - * To be removed in jclouds 2.0. - */ -@Deprecated -@Path("/v2.0/routers") -@RequestFilters(AuthenticateRequest.class) -@Consumes(MediaType.APPLICATION_JSON) -public interface RouterApi { - - /** - * Returns the list of all routers currently defined in Neutron for the current tenant. The list provides the unique - * identifier of each router configured for the tenant - * - * @return the list of all router references configured for the tenant. - */ - @Named("router:list") - @GET - @ResponseParser(ParseRouters.class) - @Transform(ParseRouters.ToPagedIterable.class) - @Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("router:list") - @GET - @ResponseParser(ParseRouters.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(PaginationOptions options); - - /** - * Returns all routers currently defined in Neutron for the current tenant. - * - * @return the list of all routers configured for the tenant - */ - @Named("router:list") - @GET - @ResponseParser(ParseRouterDetails.class) - @Transform(ParseRouterDetails.ToPagedIterable.class) - @Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class) - PagedIterable<? extends Router> listInDetail(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("router:list") - @GET - @ResponseParser(ParseRouterDetails.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - PagedIterable<? extends Router> listInDetail(PaginationOptions options); - - /** - * Returns the specific router. - * - * @param id the id of the router to return - * @return Router or null if not found - */ - @Named("router:get") - @GET - @Path("/{id}") - @SelectJson("router") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - @Nullable - Router get(@PathParam("id") String id); - - /** - * Create a new router - * - * @param options optional arguments - * @return the newly created router - */ - @Named("router:create") - @POST - @SelectJson("router") - @MapBinder(CreateRouterOptions.class) - Router create(CreateRouterOptions... options); - - /** - * Update a router - * - * @param id the id of the router to update - * @param options the attributes to update - * @return true if update successful, false if not - */ - @Named("router:update") - @PUT - @Path("/{id}") - @MapBinder(UpdateRouterOptions.class) - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean update(@PathParam("id") String id, UpdateRouterOptions... options); - - /** - * Deletes the specified router - * - * @param id the id of the router to delete - * @return true if delete successful, false if not - */ - @Named("router:delete") - @DELETE - @Path("/{id}") - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean delete(@PathParam("id") String id); - - /** - * Add a interface to a router to connect to the specified subnet - * - * @param routerId the id of the router to create the interface at - * @param subnetId the id of the subnet to connect with the interface - * @return the newly-created router interface - */ - @Named("router:addInterfaceForSubnet") - @PUT - @Path("/{id}/add_router_interface") - @MapBinder(EmptyOptions.class) - RouterInterface addInterfaceForSubnet(@PathParam("id") String routerId, @PayloadParam("subnet_id") String subnetId); - - /** - * Add a interface to a router to connect to the specified port - * - * @param routerId the id of the router to create the interface at - * @param portId the id of the port to connect with the interface - * @return the newly-created router interface - */ - @Named("router:addInterfaceForPort") - @PUT - @Path("{id}/add_router_interface") - @MapBinder(EmptyOptions.class) - RouterInterface addInterfaceForPort(@PathParam("id") String routerId, @PayloadParam("port_id") String portId); - - /** - * Remove the interface where the specified subnet is connected to - * - * @param routerId the id of the router to remove the interface from - * @param subnetId the id of the subnet to disconnect from the interface - */ - @Named("router:removeInterfaceForSubnet") - @PUT - @Path("/{id}/remove_router_interface") - @MapBinder(EmptyOptions.class) - boolean removeInterfaceForSubnet(@PathParam("id") String routerId, @PayloadParam("subnet_id") String subnetId); - - /** - * Remove the interface where the specified port is connected to - * - * @param routerId the id of the router to remove the interface from - * @param portId the id of the port to disconnect from the interface - */ - @Named("router:removeInterfaceForPort") - @PUT - @Path("{id}/remove_router_interface") - @MapBinder(EmptyOptions.class) - boolean removeInterfaceForPort(@PathParam("id") String routerId, @PayloadParam("port_id") String portId); - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApi.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApi.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApi.java deleted file mode 100644 index dc7b005..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApi.java +++ /dev/null @@ -1,179 +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.openstack.neutron.v2_0.features; - -import com.google.common.collect.FluentIterable; -import org.jclouds.Fallbacks; -import org.jclouds.collect.PagedIterable; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.openstack.neutron.v2_0.domain.Network; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.functions.ParseNetworkDetails; -import org.jclouds.openstack.neutron.v2_0.functions.ParseNetworks; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateNetworkOptions; -import org.jclouds.openstack.v2_0.options.PaginationOptions; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.annotations.Transform; - -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.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.core.MediaType; - -import static org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404; -import static org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404; - -/** - * Provides access to Network operations for the OpenStack Networking (Neutron) v2 API. - * <p/> - * Each tenant can define one or more networks. A network is a virtual isolated layer-2 broadcast domain reserved to the - * tenant. A tenant can create several ports for a network, and plug virtual interfaces into these ports. - * - * @see <a href= - * "http://docs.openstack.org/api/openstack-network/2.0/content/Networks.html">api doc</a> - * @deprecated Please use {@link org.jclouds.openstack.neutron.v2.features.NetworkApi} instead. - * To be removed in jclouds 2.0. - */ -@Deprecated -@Path("/v2.0/networks") -@RequestFilters(AuthenticateRequest.class) -@Consumes(MediaType.APPLICATION_JSON) -public interface NetworkApi { - - /** - * Returns the list of all networks currently defined in Neutron for the current tenant. The list provides the unique - * identifier of each network configured for the tenant. - * - * @return the list of all network references configured for the tenant - */ - @Named("network:list") - @GET - @ResponseParser(ParseNetworks.class) - @Transform(ParseNetworks.ToPagedIterable.class) - @Fallback(EmptyPagedIterableOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("network:list") - @GET - @ResponseParser(ParseNetworks.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(PaginationOptions options); - - /** - * Returns all networks currently defined in Neutron for the current tenant. - * - * @return the list of all networks configured for the tenant - */ - @Named("network:list") - @GET - @ResponseParser(ParseNetworkDetails.class) - @Transform(ParseNetworkDetails.ToPagedIterable.class) - @Fallback(EmptyPagedIterableOnNotFoundOr404.class) - PagedIterable<? extends Network> listInDetail(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("network:list") - @GET - @ResponseParser(ParseNetworkDetails.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - PagedIterable<? extends Network> listInDetail(PaginationOptions options); - - /** - * Return a specific network - * - * @param id the id of the network to return - * @return Network or null if not found - */ - @Named("network:get") - @GET - @Path("/{id}") - @SelectJson("network") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - @Nullable - Network get(@PathParam("id") String id); - - /** - * Create a new network with the specified type - * - * @param options optional arguments - * @return a reference of the newly-created network - */ - @Named("network:create") - @POST - @SelectJson("network") - @MapBinder(CreateNetworkOptions.class) - Network create(CreateNetworkOptions... options); - - /** - * Create multiple networks - * - * @param networks the bulk of networks to create - * @return list of references of the newly-created networks - */ - @Named("network:createBulk") - @POST - @SelectJson("networks") - @MapBinder(CreateNetworkBulkOptions.class) - FluentIterable<? extends Network> createBulk(CreateNetworkBulkOptions networks); - - /** - * Update a network - * - * @param id the id of the network to update - * @param options the attributes to update - * @return true if update successful, false if not - */ - @Named("network:update") - @PUT - @Path("/{id}") - @MapBinder(UpdateNetworkOptions.class) - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean update(@PathParam("id") String id, UpdateNetworkOptions... options); - - /** - * Deletes the specified network - * - * @param id the id of the network to delete - * @return true if delete was successful, false if not - */ - @Named("network:delete") - @DELETE - @Path("/{id}") - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean delete(@PathParam("id") String id); -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/PortApi.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/PortApi.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/PortApi.java deleted file mode 100644 index 4aef5cd..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/PortApi.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.openstack.neutron.v2_0.features; - -import com.google.common.collect.FluentIterable; -import org.jclouds.Fallbacks; -import org.jclouds.collect.PagedIterable; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.openstack.neutron.v2_0.domain.Port; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.functions.ParsePortDetails; -import org.jclouds.openstack.neutron.v2_0.functions.ParsePorts; -import org.jclouds.openstack.neutron.v2_0.options.CreatePortBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreatePortOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdatePortOptions; -import org.jclouds.openstack.v2_0.options.PaginationOptions; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.annotations.Transform; - - -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.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.core.MediaType; - -import static org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404; -import static org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404; - -/** - * Provides access to Port operations for the OpenStack Networking (Neutron) v2 API. - * <p/> - * A port represents a virtual switch port on a logical network switch where all the interfaces attached to a given network are connected. - * <p/> - * A port has an administrative state which is either 'DOWN' or 'ACTIVE'. Ports which are administratively down will not be able to receive/send traffic. - - * @see <a href= - * "http://docs.openstack.org/api/openstack-network/2.0/content/Ports.html">api doc</a> - * @deprecated Please use {@link org.jclouds.openstack.neutron.v2.features.PortApi} instead. - * To be removed in jclouds 2.0. - */ -@Deprecated -@Path("/v2.0/ports") -@RequestFilters(AuthenticateRequest.class) -@Consumes(MediaType.APPLICATION_JSON) -public interface PortApi { - - /** - * Returns the list of all ports currently defined in Neutron for the current tenant. The list provides the unique - * identifier of each network configured for the tenant. - * - * @return the list of all port references configured for the tenant - */ - @Named("port:list") - @GET - @ResponseParser(ParsePorts.class) - @Transform(ParsePorts.ToPagedIterable.class) - @Fallback(EmptyPagedIterableOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("port:list") - @GET - @ResponseParser(ParsePorts.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(PaginationOptions options); - - /** - * Returns the set of ports currently defined in Neutron for the requested network. - * - * @return the list of all ports configured for the tenant - */ - @Named("port:list") - @GET - @ResponseParser(ParsePortDetails.class) - @Transform(ParsePortDetails.ToPagedIterable.class) - @Fallback(EmptyPagedIterableOnNotFoundOr404.class) - PagedIterable<? extends Port> listInDetail(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("port:list") - @GET - @ResponseParser(ParsePortDetails.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - PagedIterable<? extends Port> listInDetail(PaginationOptions options); - - /** - * Returns the specific port - * - * @param id the id of the port to return - * @return Port or null if not found - */ - @Named("port:get") - @GET - @Path("/{id}") - @SelectJson("port") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - @Nullable - Port get(@PathParam("id") String id); - - /** - * Create a new port in the specified network - * - * @param networkId the id of the network to associate this port with - * @param options optional arguments - * @return a reference of the newly-created port - */ - @Named("port:create") - @POST - @SelectJson("port") - @MapBinder(CreatePortOptions.class) - Port create(@PayloadParam("network_id") String networkId, CreatePortOptions... options); - - /** - * Create multiple ports - * - * @param ports the bulk of ports to create - * @return list of references of the newly-created ports - */ - @Named("port:createBulk") - @POST - @SelectJson("ports") - @MapBinder(CreatePortBulkOptions.class) - FluentIterable<? extends Port> createBulk(CreatePortBulkOptions ports); - - /** - * Update a port - * - * @param id the id of the port to update - * @param options the attributes to update - * @return true if update successful, false if not - */ - @Named("port:update") - @PUT - @Path("/{id}") - @MapBinder(UpdatePortOptions.class) - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean update(@PathParam("id") String id, UpdatePortOptions... options); - - /** - * Delete a port - * - * @param id the id of the port to delete - * @return true if delete successful, false if not - */ - @Named("port:delete") - @DELETE - @Path("/{id}") - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean delete(@PathParam("id") String id); -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApi.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApi.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApi.java deleted file mode 100644 index 24ce4b3..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApi.java +++ /dev/null @@ -1,182 +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.openstack.neutron.v2_0.features; - -import com.google.common.collect.FluentIterable; -import org.jclouds.Fallbacks; -import org.jclouds.collect.PagedIterable; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.domain.Subnet; -import org.jclouds.openstack.neutron.v2_0.functions.ParseSubnetDetails; -import org.jclouds.openstack.neutron.v2_0.functions.ParseSubnets; -import org.jclouds.openstack.neutron.v2_0.options.CreateSubnetBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateSubnetOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateSubnetOptions; -import org.jclouds.openstack.v2_0.options.PaginationOptions; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.annotations.Transform; - -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.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.core.MediaType; - -import static org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404; -import static org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404; - -/** - * Provides access to Subnet operations for the OpenStack Networking (Neutron) v2 API. - * - - * @see <a href= - * "http://docs.openstack.org/api/openstack-network/2.0/content/Subnets.html">api doc</a> - * @deprecated Please use {@link org.jclouds.openstack.neutron.v2.features.SubnetApi} instead. - * To be removed in jclouds 2.0. - */ -@Deprecated -@Path("/v2.0/subnets") -@RequestFilters(AuthenticateRequest.class) -@Consumes(MediaType.APPLICATION_JSON) -public interface SubnetApi { - - /** - * Returns the list of all subnets currently defined in Neutron for the current tenant. The list provides the unique - * identifier of each subnet configured for the tenant. - * - * @return the list of all subnet references configured for the tenant - */ - @Named("subnet:list") - @GET - @ResponseParser(ParseSubnets.class) - @Transform(ParseSubnets.ToPagedIterable.class) - @Fallback(EmptyPagedIterableOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("subnet:list") - @GET - @ResponseParser(ParseSubnets.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - @QueryParams(keys = {"fields", "fields", "fields"}, values = {"id", "tenant_id", "name"}) - PagedIterable<? extends ReferenceWithName> list(PaginationOptions options); - - /** - * Returns all subnets currently defined in Neutron for the current tenant. - * - * @return the list of all subnets configured for the tenant - */ - @Named("subnet:list") - @GET - @ResponseParser(ParseSubnetDetails.class) - @Transform(ParseSubnetDetails.ToPagedIterable.class) - @Fallback(EmptyPagedIterableOnNotFoundOr404.class) - PagedIterable<? extends Subnet> listInDetail(); - - /** - * @see <a href="http://docs.openstack.org/api/openstack-network/2.0/content/pagination.html">api doc</a> - */ - @Named("subnet:list") - @GET - @ResponseParser(ParseSubnetDetails.class) - @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) - PagedIterable<? extends Subnet> listInDetail(PaginationOptions options); - - /** - * Returns the specific Subnet. - * - * @param id the id of the subnet to return - * @return Subnet or null if not found - */ - @Named("subnet:get") - @GET - @Path("/{id}") - @SelectJson("subnet") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - @Nullable - Subnet get(@PathParam("id") String id); - - /** - * Create a subnet within a specified network - * - * @param networkId the id of the network to associate the subnet with - * @param ipVersion the ip version of this subnet - * @param cidr the cidr for this subnet - * @param options optional arugments - * @return a reference of the newly-created subnet - */ - @Named("subnet:create") - @POST - @SelectJson("subnet") - @MapBinder(CreateSubnetOptions.class) - Subnet create(@PayloadParam("network_id") String networkId, @PayloadParam("ip_version") Integer ipVersion, - @PayloadParam("cidr") String cidr, CreateSubnetOptions... options); - - /** - * Create multiple subnets - * - * @param subnets the bulk of subnets to create - * @return list of references of the newly-created subnets - */ - @Named("subnet:createBulk") - @POST - @SelectJson("subnets") - @MapBinder(CreateSubnetBulkOptions.class) - FluentIterable<? extends Subnet> createBulk(CreateSubnetBulkOptions subnets); - - /** - * Update a subnet - * - * @param id the id of the subnet to update - * @param options the attributes to update - * @return true if update was successful, false if not - */ - @Named("subnet:update") - @PUT - @Path("/{id}") - @MapBinder(UpdateSubnetOptions.class) - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean update(@PathParam("id") String id, UpdateSubnetOptions... options); - - /** - * Delete a subnet - * - * @param id the id of the subnet to delete - * @return true if delete successful, false if not - */ - @Named("subnet:delete") - @DELETE - @Path("/{id}") - @Fallback(Fallbacks.FalseOnNotFoundOr404.class) - boolean delete(@PathParam("id") String id); -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworkDetails.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworkDetails.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworkDetails.java deleted file mode 100644 index 421bf71..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworkDetails.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.Network; -import org.jclouds.openstack.neutron.v2_0.features.NetworkApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParseNetworkDetails.Networks; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; -import org.jclouds.openstack.v2_0.options.PaginationOptions; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParseNetworkDetails extends ParseJson<Networks> { - static class Networks extends PaginatedCollection<Network> { - - @ConstructorProperties({ "networks", "networks_links" }) - protected Networks(Iterable<Network> networks, Iterable<Link> networksLinks) { - super(networks, networksLinks); - } - - } - - @Inject - public ParseNetworkDetails(Json json) { - super(json, TypeLiteral.get(Networks.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<Network, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<Network>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final NetworkApi networkApi = api.getNetworkApiForZone(zone); - return new Function<Object, IterableWithMarker<Network>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<Network> apply(Object input) { - PaginationOptions paginationOptions = PaginationOptions.class.cast(input); - return IterableWithMarker.class.cast(networkApi.listInDetail(paginationOptions)); - } - - @Override - public String toString() { - return "listNetworksInDetail()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworks.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworks.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworks.java deleted file mode 100644 index a1c1448..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseNetworks.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.features.NetworkApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParseNetworks.Networks; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; -import org.jclouds.openstack.v2_0.options.PaginationOptions; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParseNetworks extends ParseJson<Networks> { - static class Networks extends PaginatedCollection<ReferenceWithName> { - - @ConstructorProperties({ "networks", "networks_links" }) - protected Networks(Iterable<ReferenceWithName> networks, Iterable<Link> networksLinks) { - super(networks, networksLinks); - } - - } - - @Inject - public ParseNetworks(Json json) { - super(json, TypeLiteral.get(Networks.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<ReferenceWithName, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<ReferenceWithName>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final NetworkApi networkApi = api.getNetworkApiForZone(zone); - return new Function<Object, IterableWithMarker<ReferenceWithName>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<ReferenceWithName> apply(Object input) { - PaginationOptions paginationOptions = PaginationOptions.class.cast(input); - return IterableWithMarker.class.cast(networkApi.list(paginationOptions)); - } - - @Override - public String toString() { - return "listNetworks()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePortDetails.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePortDetails.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePortDetails.java deleted file mode 100644 index a4e461e..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePortDetails.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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.Port; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.features.PortApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParsePortDetails.Ports; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; -import org.jclouds.openstack.v2_0.options.PaginationOptions; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParsePortDetails extends ParseJson<Ports> { - static class Ports extends PaginatedCollection<Port> { - - @ConstructorProperties({ "ports", "ports_links" }) - protected Ports(Iterable<Port> ports, Iterable<Link> portsLinks) { - super(ports, portsLinks); - } - - } - - @Inject - public ParsePortDetails(Json json) { - super(json, TypeLiteral.get(Ports.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<ReferenceWithName, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<ReferenceWithName>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final PortApi portApi = api.getPortApiForZone(zone); - return new Function<Object, IterableWithMarker<ReferenceWithName>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<ReferenceWithName> apply(Object input) { - PaginationOptions paginationOptions = PaginationOptions.class.cast(input); - return IterableWithMarker.class.cast(portApi.listInDetail(paginationOptions)); - } - - @Override - public String toString() { - return "listPortsInDetail()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePorts.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePorts.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePorts.java deleted file mode 100644 index 1a11231..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParsePorts.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.features.PortApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParsePorts.Ports; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; -import org.jclouds.openstack.v2_0.options.PaginationOptions; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParsePorts extends ParseJson<Ports> { - static class Ports extends PaginatedCollection<ReferenceWithName> { - - @ConstructorProperties({ "ports", "ports_links" }) - protected Ports(Iterable<ReferenceWithName> ports, Iterable<Link> portsLinks) { - super(ports, portsLinks); - } - - } - - @Inject - public ParsePorts(Json json) { - super(json, TypeLiteral.get(Ports.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<ReferenceWithName, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<ReferenceWithName>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final PortApi portApi = api.getPortApiForZone(zone); - return new Function<Object, IterableWithMarker<ReferenceWithName>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<ReferenceWithName> apply(Object input) { - PaginationOptions paginationOptions = PaginationOptions.class.cast(input); - return IterableWithMarker.class.cast(portApi.list(paginationOptions)); - } - - @Override - public String toString() { - return "listPorts()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouterDetails.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouterDetails.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouterDetails.java deleted file mode 100644 index 537cc97..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouterDetails.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.openstack.v2_0.options.PaginationOptions.Builder.marker; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.Router; -import org.jclouds.openstack.neutron.v2_0.extensions.RouterApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParseRouterDetails.Routers; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParseRouterDetails extends ParseJson<Routers> { - static class Routers extends PaginatedCollection<Router> { - - @ConstructorProperties({ "routers", "routers_links" }) - protected Routers(Iterable<Router> routers, Iterable<Link> routersLinks) { - super(routers, routersLinks); - } - - } - - @Inject - public ParseRouterDetails(Json json) { - super(json, TypeLiteral.get(Routers.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<Router, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<Router>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final RouterApi routerApi = api.getRouterExtensionForZone(zone).get(); - return new Function<Object, IterableWithMarker<Router>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<Router> apply(Object input) { - return IterableWithMarker.class.cast(routerApi.listInDetail(marker(input.toString()))); - } - - @Override - public String toString() { - return "listRoutersInDetail()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouters.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouters.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouters.java deleted file mode 100644 index eb612f4..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseRouters.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.openstack.v2_0.options.PaginationOptions.Builder.marker; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.extensions.RouterApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParseRouters.Routers; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParseRouters extends ParseJson<Routers> { - static class Routers extends PaginatedCollection<ReferenceWithName> { - - @ConstructorProperties({ "routers", "routers_links" }) - protected Routers(Iterable<ReferenceWithName> routers, Iterable<Link> routersLinks) { - super(routers, routersLinks); - } - - } - - @Inject - public ParseRouters(Json json) { - super(json, TypeLiteral.get(Routers.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<ReferenceWithName, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<ReferenceWithName>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final RouterApi routerApi = api.getRouterExtensionForZone(zone).get(); - return new Function<Object, IterableWithMarker<ReferenceWithName>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<ReferenceWithName> apply(Object input) { - return IterableWithMarker.class.cast(routerApi.list(marker(input.toString()))); - } - - @Override - public String toString() { - return "listRouters()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnetDetails.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnetDetails.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnetDetails.java deleted file mode 100644 index 17201f2..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnetDetails.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.Subnet; -import org.jclouds.openstack.neutron.v2_0.features.SubnetApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParseSubnetDetails.Subnets; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; -import org.jclouds.openstack.v2_0.options.PaginationOptions; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParseSubnetDetails extends ParseJson<Subnets> { - static class Subnets extends PaginatedCollection<Subnet> { - - @ConstructorProperties({ "subnets", "subnets_links" }) - protected Subnets(Iterable<Subnet> subnets, Iterable<Link> subnetsLinks) { - super(subnets, subnetsLinks); - } - - } - - @Inject - public ParseSubnetDetails(Json json) { - super(json, TypeLiteral.get(Subnets.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<Subnet, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<Subnet>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final SubnetApi subnetApi = api.getSubnetApiForZone(zone); - return new Function<Object, IterableWithMarker<Subnet>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<Subnet> apply(Object input) { - PaginationOptions paginationOptions = PaginationOptions.class.cast(input); - return IterableWithMarker.class.cast(subnetApi.listInDetail(paginationOptions)); - } - - @Override - public String toString() { - return "listSubnetsInDetail()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnets.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnets.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnets.java deleted file mode 100644 index bc7ef13..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/functions/ParseSubnets.java +++ /dev/null @@ -1,93 +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.openstack.neutron.v2_0.functions; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.internal.Arg0ToPagedIterable; -import org.jclouds.http.functions.ParseJson; -import org.jclouds.json.Json; -import org.jclouds.openstack.neutron.v2_0.NeutronApi; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.features.SubnetApi; -import org.jclouds.openstack.neutron.v2_0.functions.ParseSubnets.Subnets; -import org.jclouds.openstack.v2_0.domain.Link; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; -import org.jclouds.openstack.v2_0.options.PaginationOptions; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.inject.TypeLiteral; - -/** - */ -@Beta -@Singleton -public class ParseSubnets extends ParseJson<Subnets> { - static class Subnets extends PaginatedCollection<ReferenceWithName> { - - @ConstructorProperties({ "subnets", "subnets_links" }) - protected Subnets(Iterable<ReferenceWithName> subnets, Iterable<Link> subnetsLinks) { - super(subnets, subnetsLinks); - } - - } - - @Inject - public ParseSubnets(Json json) { - super(json, TypeLiteral.get(Subnets.class)); - } - - public static class ToPagedIterable extends Arg0ToPagedIterable.FromCaller<ReferenceWithName, ToPagedIterable> { - - private final NeutronApi api; - - @Inject - protected ToPagedIterable(NeutronApi api) { - this.api = checkNotNull(api, "api"); - } - - @Override - protected Function<Object, IterableWithMarker<ReferenceWithName>> markerToNextForArg0(Optional<Object> arg0) { - String zone = arg0.isPresent() ? arg0.get().toString() : null; - final SubnetApi subnetApi = api.getSubnetApiForZone(zone); - return new Function<Object, IterableWithMarker<ReferenceWithName>>() { - - @SuppressWarnings("unchecked") - @Override - public IterableWithMarker<ReferenceWithName> apply(Object input) { - PaginationOptions paginationOptions = PaginationOptions.class.cast(input); - return IterableWithMarker.class.cast(subnetApi.list(paginationOptions)); - } - - @Override - public String toString() { - return "listSubnets()"; - } - }; - } - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/handlers/NeutronErrorHandler.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/handlers/NeutronErrorHandler.java b/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/handlers/NeutronErrorHandler.java deleted file mode 100644 index 87c28c5..0000000 --- a/apis/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/handlers/NeutronErrorHandler.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.openstack.neutron.v2_0.handlers; - -import static org.jclouds.http.HttpUtils.closeClientButKeepContentStream; - -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; - -/** - * This will parse and set an appropriate exception on the command object. - */ -@Singleton -public class NeutronErrorHandler implements HttpErrorHandler { - public void handleError(HttpCommand command, HttpResponse response) { - // it is important to always read fully and close streams - byte[] data = closeClientButKeepContentStream(response); - String message = data != null ? new String(data) : null; - - Exception exception = message != null ? new HttpResponseException(command, response, message) - : new HttpResponseException(command, response); - message = message != null ? message : String.format("%s -> %s", command.getCurrentRequest().getRequestLine(), - response.getStatusLine()); - switch (response.getStatusCode()) { - case 400: - break; - case 401: - case 403: - exception = new AuthorizationException(message, exception); - break; - case 404: - if (!command.getCurrentRequest().getMethod().equals("DELETE")) { - exception = new ResourceNotFoundException(message, exception); - } - break; - } - command.setException(exception); - } -}
