Repository: jclouds Updated Branches: refs/heads/master 867c7a407 -> 8cb2cb449
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/pom.xml ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/pom.xml b/providers/enterprise-chef/pom.xml deleted file mode 100644 index 944701b..0000000 --- a/providers/enterprise-chef/pom.xml +++ /dev/null @@ -1,110 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.jclouds</groupId> - <artifactId>jclouds-project</artifactId> - <version>1.8.0-SNAPSHOT</version> - <relativePath>../../project/pom.xml</relativePath> - </parent> - <groupId>org.apache.jclouds.provider</groupId> - <artifactId>enterprisechef</artifactId> - <name>jclouds Enterprise Chef provider</name> - <description>jclouds components to access Enterprise Chef</description> - - <properties> - <test.enterprisechef.org>YOUR_ORG</test.enterprisechef.org> - <test.enterprisechef.endpoint>https://api.opscode.com/organizations/${test.enterprisechef.org}</test.enterprisechef.endpoint> - <test.enterprisechef.api-version /> - <test.enterprisechef.build-version /> - <test.enterprisechef.identity>YOUR_USER</test.enterprisechef.identity> - <test.enterprisechef.credential>${user.home}/.chef/${test.enterprisechef.org}/${test.enterprisechef.identity}.pem</test.enterprisechef.credential> - <jclouds.osgi.export>org.jclouds.enterprisechef*;version="${project.version}"</jclouds.osgi.export> - <jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.jclouds.api</groupId> - <artifactId>chef</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.jclouds.api</groupId> - <artifactId>chef</artifactId> - <version>${project.version}</version> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds</groupId> - <artifactId>jclouds-core</artifactId> - <version>${project.version}</version> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds.driver</groupId> - <artifactId>jclouds-slf4j</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>ch.qos.logback</groupId> - <artifactId>logback-classic</artifactId> - <version>1.0.9</version> - <scope>test</scope> - </dependency> - </dependencies> - - <profiles> - <profile> - <id>live</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <executions> - <execution> - <id>integration</id> - <phase>integration-test</phase> - <goals> - <goal>test</goal> - </goals> - <configuration> - <systemPropertyVariables> - <test.enterprisechef.org>${test.enterprisechef.org}</test.enterprisechef.org> - <test.enterprisechef.endpoint>${test.enterprisechef.endpoint}</test.enterprisechef.endpoint> - <test.enterprisechef.api-version>${test.enterprisechef.api-version}</test.enterprisechef.api-version> - <test.enterprisechef.build-version>${test.enterprisechef.build-version}</test.enterprisechef.build-version> - <test.enterprisechef.identity>${test.enterprisechef.identity}</test.enterprisechef.identity> - <test.enterprisechef.credential>${test.enterprisechef.credential}</test.enterprisechef.credential> - </systemPropertyVariables> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> -</project> http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java deleted file mode 100644 index 8f1a0ed..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef; - -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.core.MediaType; - -import org.jclouds.Constants; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.chef.ChefApi; -import org.jclouds.chef.filters.SignedHeaderAuth; -import org.jclouds.chef.functions.ParseKeySetFromJson; -import org.jclouds.enterprisechef.binders.BindGroupToUpdateRequestJsonPayload; -import org.jclouds.enterprisechef.binders.GroupName; -import org.jclouds.enterprisechef.domain.Group; -import org.jclouds.enterprisechef.domain.User; -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.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.WrapWith; - -/** - * Provides synchronous access to the Enterprise Chef Api. - */ -@RequestFilters(SignedHeaderAuth.class) -@Consumes(MediaType.APPLICATION_JSON) -@Headers(keys = "X-Chef-Version", values = "{" + Constants.PROPERTY_API_VERSION + "}") -public interface EnterpriseChefApi extends ChefApi -{ - /** - * Retrieves an existing user. - * - * @param name The name of the user to get. - * @return The details of the user or <code>null</code> if not found. - */ - @Named("user:get") - @GET - @Path("/users/{name}") - @Fallback(NullOnNotFoundOr404.class) - User getUser(@PathParam("name") String name); - - /** - * List all existing groups. - * - * @return The list of groups. - */ - @Named("group:list") - @GET - @Path("/groups") - @ResponseParser(ParseKeySetFromJson.class) - Set<String> listGroups(); - - /** - * Retrieves an existing group. - * - * @param name The name of the group to get. - * @return The details of the group or <code>null</code> if not found. - */ - @Named("group:get") - @GET - @Path("/groups/{name}") - @Fallback(NullOnNotFoundOr404.class) - Group getGroup(@PathParam("name") String name); - - /** - * Creates a new group. - * - * @param name The name of the group to create. - */ - @Named("group:create") - @POST - @Path("/groups") - void createGroup(@WrapWith("groupname") String name); - - /** - * Updates a group. - * <p> - * This method can be used to add actors (clients, groups) to the group. - * - * @param group The group with the updated information. - */ - @Named("group:update") - @PUT - @Path("/groups/{name}") - void updateGroup( - @PathParam("name") @ParamParser(GroupName.class) @BinderParam(BindGroupToUpdateRequestJsonPayload.class) Group group); - - /** - * Deletes a group. - * - * @param name The name of the group to delete. - */ - @Named("group:delete") - @DELETE - @Path("/groups/{name}") - void deleteGroup(@PathParam("name") String name); - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApiMetadata.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApiMetadata.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApiMetadata.java deleted file mode 100644 index fdccf46..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApiMetadata.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef; - -import java.net.URI; -import java.util.Properties; - -import org.jclouds.chef.ChefApiMetadata; -import org.jclouds.chef.ChefContext; -import org.jclouds.chef.config.ChefBootstrapModule; -import org.jclouds.chef.config.ChefParserModule; -import org.jclouds.enterprisechef.config.EnterpriseChefHttpApiModule; -import org.jclouds.ohai.config.JMXOhaiModule; -import org.jclouds.rest.internal.BaseHttpApiMetadata; - -import com.google.common.collect.ImmutableSet; -import com.google.inject.Module; - -/** - * Implementation of {@link ApiMetadata} for the Enterprise Chef api. - */ -public class EnterpriseChefApiMetadata extends BaseHttpApiMetadata<EnterpriseChefApi> { - - @Override - public Builder toBuilder() { - return new Builder().fromApiMetadata(this); - } - - public EnterpriseChefApiMetadata() { - this(new Builder()); - } - - protected EnterpriseChefApiMetadata(Builder builder) { - super(builder); - } - - public static Properties defaultProperties() { - return ChefApiMetadata.defaultProperties(); - } - - public static class Builder extends BaseHttpApiMetadata.Builder<EnterpriseChefApi, Builder> { - - protected Builder() { - id("enterprisechef") - .name("Enterprise Chef Api") - .identityName("User") - .credentialName("Certificate") - .version(ChefApiMetadata.DEFAULT_API_VERSION) - .documentation(URI.create("http://www.opscode.com/support")) - .defaultEndpoint("https://api.opscode.com") - .view(ChefContext.class) - .defaultProperties(EnterpriseChefApiMetadata.defaultProperties()) - .defaultModules( - ImmutableSet.<Class<? extends Module>> of(EnterpriseChefHttpApiModule.class, - ChefParserModule.class, ChefBootstrapModule.class, JMXOhaiModule.class)); - } - - @Override - public EnterpriseChefApiMetadata build() { - return new EnterpriseChefApiMetadata(this); - } - - @Override - protected Builder self() { - return this; - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadata.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadata.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadata.java deleted file mode 100644 index 336ea7a..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadata.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef; - -import java.net.URI; -import java.util.Properties; - -import org.jclouds.providers.ProviderMetadata; -import org.jclouds.providers.internal.BaseProviderMetadata; - -/** - * Implementation of @ link org.jclouds.types.ProviderMetadata} for Enterprise Chef - */ -public class EnterpriseChefProviderMetadata extends BaseProviderMetadata -{ - - public static Builder builder() - { - return new Builder(); - } - - @Override - public Builder toBuilder() - { - return builder().fromProviderMetadata(this); - } - - public EnterpriseChefProviderMetadata() - { - super(builder()); - } - - public EnterpriseChefProviderMetadata(Builder builder) - { - super(builder); - } - - public static Properties defaultProperties() - { - Properties properties = new Properties(); - return properties; - } - - public static class Builder extends BaseProviderMetadata.Builder - { - - protected Builder() - { - id("enterprisechef") // - .name("OpsCode Enterprise Chef") // - .endpoint("https://api.opscode.com") // - .homepage(URI.create("https://manage.opscode.com")) // - .console(URI.create("https://manage.opscode.com")) // - .apiMetadata(new EnterpriseChefApiMetadata()) // - .defaultProperties(EnterpriseChefProviderMetadata.defaultProperties()); - } - - @Override - public EnterpriseChefProviderMetadata build() - { - return new EnterpriseChefProviderMetadata(this); - } - - @Override - public Builder fromProviderMetadata(ProviderMetadata in) - { - super.fromProviderMetadata(in); - return this; - } - - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayload.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayload.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayload.java deleted file mode 100644 index 2573b9d..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayload.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Set; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.enterprisechef.domain.Group; -import org.jclouds.http.HttpRequest; -import org.jclouds.json.Json; -import org.jclouds.rest.binders.BindToJsonPayload; - -/** - * Binds a group to the payload expected for the Put method in the Enterprise Chef - * Api. - */ -@Singleton -public class BindGroupToUpdateRequestJsonPayload extends BindToJsonPayload { - - @Inject - public BindGroupToUpdateRequestJsonPayload(Json jsonBinder) { - super(jsonBinder); - } - - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object payload) { - checkArgument(checkNotNull(payload, "payload") instanceof Group, "this binder is only valid for Group objects"); - GroupUpdateRequest updateGroup = new GroupUpdateRequest((Group) payload); - return super.bindToRequest(request, updateGroup); - } - - @SuppressWarnings("unused") - private static class GroupUpdateRequest { - private String name; - private String groupname; - private String orgname; - private ActorConfiguration actors; - - public GroupUpdateRequest(Group group) { - this.name = group.getName(); - this.groupname = group.getGroupname(); - this.orgname = group.getOrgname(); - this.actors = new ActorConfiguration(group); - } - } - - @SuppressWarnings("unused") - private static class ActorConfiguration { - private Set<String> clients; - private Set<String> groups; - private Set<String> users; - - public ActorConfiguration(Group group) { - this.clients = group.getClients(); - this.groups = group.getGroups(); - this.users = group.getUsers(); - } - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/GroupName.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/GroupName.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/GroupName.java deleted file mode 100644 index 12286a6..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/binders/GroupName.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef.binders; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.enterprisechef.domain.Group; - -import com.google.common.base.Function; - -/** - * Gets the name of a group. - */ -@Singleton -public class GroupName implements Function<Object, String> { - - @Override - public String apply(Object from) { - return ((Group) checkNotNull(from, "from")).getGroupname(); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/config/EnterpriseChefHttpApiModule.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/config/EnterpriseChefHttpApiModule.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/config/EnterpriseChefHttpApiModule.java deleted file mode 100644 index ed0a49f..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/config/EnterpriseChefHttpApiModule.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef.config; - -import org.jclouds.chef.ChefApi; -import org.jclouds.chef.config.BaseChefHttpApiModule; -import org.jclouds.enterprisechef.EnterpriseChefApi; -import org.jclouds.rest.ConfiguresHttpApi; - -/** - * Configures the Enterprise Chef connection. - */ -@ConfiguresHttpApi -public class EnterpriseChefHttpApiModule extends BaseChefHttpApiModule<EnterpriseChefApi> { - - @Override - protected void configure() { - super.configure(); - bind(ChefApi.class).to(EnterpriseChefApi.class); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/Group.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/Group.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/Group.java deleted file mode 100644 index 8535ca2..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/Group.java +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef.domain; - -import static org.jclouds.chef.util.CollectionUtils.copyOfOrEmpty; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; -import java.util.Set; - -import org.jclouds.javax.annotation.Nullable; - -import com.google.common.collect.ImmutableSet; - -/** - * Group object. - */ -public class Group { - public static Builder builder(String groupname) { - return new Builder(groupname); - } - - public static class Builder { - private String name; - private String groupname; - private String orgname; - private ImmutableSet.Builder<String> actors = ImmutableSet.builder(); - private ImmutableSet.Builder<String> clients = ImmutableSet.builder(); - private ImmutableSet.Builder<String> groups = ImmutableSet.builder(); - private ImmutableSet.Builder<String> users = ImmutableSet.builder(); - - public Builder(String groupname) { - this.groupname = groupname; - } - - public Builder name(String name) { - this.name = checkNotNull(name, "name"); - return this; - } - - public Builder groupname(String groupname) { - this.groupname = checkNotNull(groupname, "groupname"); - return this; - } - - public Builder orgname(String orgname) { - this.orgname = checkNotNull(orgname, "orgname"); - return this; - } - - public Builder actor(String actor) { - this.actors.add(checkNotNull(actor, "actor")); - return this; - } - - public Builder actors(Iterable<String> actors) { - this.actors.addAll(checkNotNull(actors, "actors")); - return this; - } - - public Builder client(String client) { - this.clients.add(checkNotNull(client, "client")); - return this; - } - - public Builder clients(Iterable<String> clients) { - this.clients.addAll(checkNotNull(clients, "clients")); - return this; - } - - public Builder group(String group) { - this.groups.add(checkNotNull(group, "group")); - return this; - } - - public Builder groups(Iterable<String> groups) { - this.groups.addAll(checkNotNull(groups, "groups")); - return this; - } - - public Builder user(String user) { - this.users.add(checkNotNull(user, "user")); - return this; - } - - public Builder users(Iterable<String> users) { - this.users.addAll(checkNotNull(users, "users")); - return this; - } - - public Group build() { - return new Group(name, checkNotNull(groupname, "groupname"), orgname, actors.build(), clients.build(), - groups.build(), users.build()); - } - } - - private final String name; - private final String groupname; - private final String orgname; - private final Set<String> actors; - private final Set<String> clients; - private final Set<String> groups; - private final Set<String> users; - - @ConstructorProperties({ "name", "groupname", "orgname", "actors", "clients", "groups", "users" }) - public Group(String name, String groupname, String orgname, @Nullable Set<String> actors, - @Nullable Set<String> clients, @Nullable Set<String> groups, @Nullable Set<String> users) { - this.name = name; - this.groupname = groupname; - this.orgname = orgname; - this.actors = copyOfOrEmpty(actors); - this.clients = copyOfOrEmpty(clients); - this.groups = copyOfOrEmpty(groups); - this.users = copyOfOrEmpty(users); - } - - public String getName() { - return name; - } - - public String getGroupname() { - return groupname; - } - - public String getOrgname() { - return orgname; - } - - public Set<String> getActors() { - return actors; - } - - public Set<String> getClients() { - return clients; - } - - public Set<String> getGroups() { - return groups; - } - - public Set<String> getUsers() { - return users; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (groupname == null ? 0 : groupname.hashCode()); - result = prime * result + (name == null ? 0 : name.hashCode()); - result = prime * result + (orgname == null ? 0 : orgname.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - Group other = (Group) obj; - if (groupname == null) { - if (other.groupname != null) { - return false; - } - } else if (!groupname.equals(other.groupname)) { - return false; - } - if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - if (orgname == null) { - if (other.orgname != null) { - return false; - } - } else if (!orgname.equals(other.orgname)) { - return false; - } - return true; - } - - @Override - public String toString() { - return "Group [name=" + name + ", groupname=" + groupname + ", orgname=" + orgname + ", actors=" + actors - + ", clients=" + clients + ", groups=" + groups + ", users=" + users + "]"; - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/User.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/User.java b/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/User.java deleted file mode 100644 index da4e9e5..0000000 --- a/providers/enterprise-chef/src/main/java/org/jclouds/enterprisechef/domain/User.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef.domain; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; -import java.security.PublicKey; - -import com.google.gson.annotations.SerializedName; - -/** - * User object. - */ -public class User { - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private String username; - private String firstName; - private String middleName; - private String lastName; - private String displayName; - private String email; - private PublicKey publicKey; - - public Builder username(String username) { - this.username = checkNotNull(username, "username"); - return this; - } - - public Builder firstName(String firstName) { - this.firstName = checkNotNull(firstName, "firstName"); - return this; - } - - public Builder middleName(String middleName) { - this.middleName = checkNotNull(middleName, "middleName"); - return this; - } - - public Builder lastName(String lastName) { - this.lastName = checkNotNull(lastName, "lastName"); - return this; - } - - public Builder displayName(String displayName) { - this.displayName = checkNotNull(displayName, "displayName"); - return this; - } - - public Builder email(String email) { - this.email = checkNotNull(email, "email"); - return this; - } - - public Builder publicKey(PublicKey publicKey) { - this.publicKey = checkNotNull(publicKey, "publicKey"); - return this; - } - - public User build() { - return new User(username, firstName, middleName, lastName, displayName, email, publicKey); - } - } - - private final String username; - @SerializedName("first_name") - private final String firstName; - @SerializedName("middle_name") - private final String middleName; - @SerializedName("last_name") - private final String lastName; - @SerializedName("display_name") - private final String displayName; - private final String email; - @SerializedName("public_key") - private final PublicKey publicKey; - - @ConstructorProperties({ "username", "first_name", "middle_name", "last_name", "display_name", "email", "public_key" }) - protected User(String username, String firstName, String middleName, String lastName, String displayName, - String email, PublicKey publicKey) { - this.username = username; - this.firstName = firstName; - this.middleName = middleName; - this.lastName = lastName; - this.displayName = displayName; - this.email = email; - this.publicKey = publicKey; - } - - public String getUsername() { - return username; - } - - public String getFirstName() { - return firstName; - } - - public String getMiddleName() { - return middleName; - } - - public String getLastName() { - return lastName; - } - - public String getDisplayName() { - return displayName; - } - - public String getEmail() { - return email; - } - - public PublicKey getPublicKey() { - return publicKey; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (displayName == null ? 0 : displayName.hashCode()); - result = prime * result + (email == null ? 0 : email.hashCode()); - result = prime * result + (firstName == null ? 0 : firstName.hashCode()); - result = prime * result + (lastName == null ? 0 : lastName.hashCode()); - result = prime * result + (middleName == null ? 0 : middleName.hashCode()); - result = prime * result + (publicKey == null ? 0 : publicKey.hashCode()); - result = prime * result + (username == null ? 0 : username.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - User other = (User) obj; - if (displayName == null) { - if (other.displayName != null) { - return false; - } - } else if (!displayName.equals(other.displayName)) { - return false; - } - if (email == null) { - if (other.email != null) { - return false; - } - } else if (!email.equals(other.email)) { - return false; - } - if (firstName == null) { - if (other.firstName != null) { - return false; - } - } else if (!firstName.equals(other.firstName)) { - return false; - } - if (lastName == null) { - if (other.lastName != null) { - return false; - } - } else if (!lastName.equals(other.lastName)) { - return false; - } - if (middleName == null) { - if (other.middleName != null) { - return false; - } - } else if (!middleName.equals(other.middleName)) { - return false; - } - if (publicKey == null) { - if (other.publicKey != null) { - return false; - } - } else if (!publicKey.equals(other.publicKey)) { - return false; - } - if (username == null) { - if (other.username != null) { - return false; - } - } else if (!username.equals(other.username)) { - return false; - } - return true; - } - - @Override - public String toString() { - return "User [username=" + username + ", firstName=" + firstName + ", middleName=" + middleName + ", lastName=" - + lastName + ", displayName=" + displayName + ", email=" + email + ", publicKey=" + publicKey + "]"; - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata b/providers/enterprise-chef/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata deleted file mode 100644 index 7861cbb..0000000 --- a/providers/enterprise-chef/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata +++ /dev/null @@ -1 +0,0 @@ -org.jclouds.enterprisechef.EnterpriseChefProviderMetadata http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiExpectTest.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiExpectTest.java b/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiExpectTest.java deleted file mode 100644 index 3785cf6..0000000 --- a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiExpectTest.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.chef.BaseChefApiExpectTest; -import org.jclouds.chef.ChefApiMetadata; -import org.jclouds.date.TimeStamp; -import org.jclouds.enterprisechef.config.EnterpriseChefHttpApiModule; -import org.jclouds.enterprisechef.domain.Group; -import org.jclouds.enterprisechef.domain.User; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.providers.ProviderMetadata; -import org.jclouds.rest.ConfiguresRestClient; -import org.jclouds.rest.ResourceNotFoundException; -import org.testng.annotations.Test; - -import com.google.common.base.Supplier; -import com.google.inject.Module; - -/** - * Expect tests for the {@link EnterpriseChefApi} class. - */ -@Test(groups = "unit", testName = "EnterpriseChefApiExpectTest") -public class EnterpriseChefApiExpectTest extends BaseChefApiExpectTest<EnterpriseChefApi> { - public EnterpriseChefApiExpectTest() { - provider = "enterprisechef"; - } - - public void testGetUserReturns2xx() { - EnterpriseChefApi api = requestSendsResponse( - signed(HttpRequest.builder() // - .method("GET") // - .endpoint("https://api.opscode.com/users/nacx") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/user.json", MediaType.APPLICATION_JSON)) // - .build()); - - User user = api.getUser("nacx"); - assertEquals(user.getUsername(), "nacx"); - assertEquals(user.getDisplayName(), "Ignasi Barrera"); - } - - public void testGetUserReturns404() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("GET") // - .endpoint("https://api.opscode.com/users/foo") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .build()), // - HttpResponse.builder().statusCode(404).build()); - - assertNull(api.getUser("foo")); - } - - public void testListGroups() { - EnterpriseChefApi api = requestSendsResponse( - signed(HttpRequest.builder() // - .method("GET") // - .endpoint("https://api.opscode.com/groups") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/groups.json", MediaType.APPLICATION_JSON)) // - .build()); - - Set<String> groups = api.listGroups(); - assertEquals(groups.size(), 5); - assertTrue(groups.contains("admins")); - } - - public void testGetGroupReturns2xx() { - EnterpriseChefApi api = requestSendsResponse( - signed(HttpRequest.builder() // - .method("GET") // - .endpoint("https://api.opscode.com/groups/admins") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // - HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/group.json", MediaType.APPLICATION_JSON)) // - .build()); - - Group group = api.getGroup("admins"); - assertEquals(group.getName(), "admins"); - assertEquals(group.getGroupname(), "admins"); - } - - public void testGetGroupReturns404() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("GET") // - .endpoint("https://api.opscode.com/groups/foo") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .build()), // - HttpResponse.builder().statusCode(404).build()); - - assertNull(api.getGroup("foo")); - } - - public void testCreateGroupReturns2xx() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("POST") // - .endpoint("https://api.opscode.com/groups") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .payload(payloadFromStringWithContentType("{\"groupname\":\"foo\"}", MediaType.APPLICATION_JSON)) // - .build()), // - HttpResponse.builder().statusCode(201).build()); - - api.createGroup("foo"); - } - - public void testDeleteGroupReturns2xx() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("DELETE") // - .endpoint("https://api.opscode.com/groups/foo") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .build()), // - HttpResponse.builder().statusCode(200).build()); - - api.deleteGroup("foo"); - } - - @Test(expectedExceptions = ResourceNotFoundException.class) - public void testDeleteGroupFailsOn404() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("DELETE") // - .endpoint("https://api.opscode.com/groups/foo") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .build()), // - HttpResponse.builder().statusCode(404).build()); - - api.deleteGroup("foo"); - } - - public void testUpdateGroupReturns2xx() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("PUT") // - .endpoint("https://api.opscode.com/groups/admins") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .payload(payloadFromResourceWithContentType("/group-update.json", MediaType.APPLICATION_JSON)) // - .build()), // - HttpResponse.builder().statusCode(200).build()); - - Group group = Group.builder("admins").client("abiquo").group("admins").user("nacx").build(); - api.updateGroup(group); - } - - @Test(expectedExceptions = ResourceNotFoundException.class) - public void testUpdateGroupFailsOn404() { - EnterpriseChefApi api = requestSendsResponse(signed(HttpRequest.builder() // - .method("PUT") // - .endpoint("https://api.opscode.com/groups/admins") // - .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // - .addHeader("Accept", MediaType.APPLICATION_JSON) // - .payload(payloadFromResourceWithContentType("/group-update.json", MediaType.APPLICATION_JSON)) // - .build()), // - HttpResponse.builder().statusCode(404).build()); - - Group group = Group.builder("admins").client("abiquo").group("admins").user("nacx").build(); - api.updateGroup(group); - } - - @Override - protected Module createModule() { - return new TestEnterpriseChefRestClientModule(); - } - - @ConfiguresRestClient - static class TestEnterpriseChefRestClientModule extends EnterpriseChefHttpApiModule { - @Override - protected String provideTimeStamp(@TimeStamp Supplier<String> cache) { - return "timestamp"; - } - } - - @Override - protected ProviderMetadata createProviderMetadata() { - return new EnterpriseChefProviderMetadata(); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiLiveTest.java b/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiLiveTest.java deleted file mode 100644 index 6ac99c1..0000000 --- a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefApiLiveTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; -import java.util.UUID; - -import org.jclouds.chef.internal.BaseChefApiLiveTest; -import org.jclouds.enterprisechef.domain.Group; -import org.jclouds.enterprisechef.domain.User; -import org.jclouds.rest.ResourceNotFoundException; -import org.testng.annotations.Test; - -/** - * Tests behavior of the EnterpriseChefApi. - */ -@Test(groups = "live", singleThreaded = true, testName = "EnterpriseChefApiLiveTest") -public class EnterpriseChefApiLiveTest extends BaseChefApiLiveTest<EnterpriseChefApi> { - - private static final String GROUP_NAME = System.getProperty("user.name") + "-jcloudstest"; - private static final String ORG_NAME = System.getProperty("test.enterprisechef.org"); - - public EnterpriseChefApiLiveTest() { - provider = "enterprisechef"; - } - - @Override - @Test - public void testSearchClientsWithOptions() throws Exception { - // This test will fail because Enterprise Chef does not index client name. - // Once it is fixes, the test should succeed. - // See: http://tickets.opscode.com/browse/CHEF-2477 - super.testSearchClientsWithOptions(); - } - - public void testGetUser() { - User user = api.getUser(identity); - assertEquals(user.getUsername(), identity); - assertNotNull(user.getPublicKey()); - } - - public void testGetUnexistingUser() { - User user = api.getUser(UUID.randomUUID().toString()); - assertNull(user); - } - - public void testListGroups() { - Set<String> groups = api.listGroups(); - assertNotNull(groups); - assertFalse(groups.isEmpty()); - } - - public void testGetUnexistingGroup() { - Group group = api.getGroup(UUID.randomUUID().toString()); - assertNull(group); - } - - public void testCreateGroup() { - api.createGroup(GROUP_NAME); - Group group = api.getGroup(GROUP_NAME); - assertNotNull(group); - assertEquals(group.getGroupname(), GROUP_NAME); - } - - @Test(dependsOnMethods = "testCreateGroup") - public void testUpdateGroup() { - Group group = api.getGroup(GROUP_NAME); - Group updated = Group.builder(group.getGroupname()) // - .actors(group.getActors()) // - .orgname(group.getOrgname()) // - .name(group.getName()) // - .groups(group.getGroups()) // - .client(ORG_NAME + "-validator") // - .user(identity) // - .build(); - - api.updateGroup(updated); - group = api.getGroup(GROUP_NAME); - - assertNotNull(group); - assertTrue(group.getUsers().contains(identity)); - assertTrue(group.getClients().contains(ORG_NAME + "-validator")); - } - - @Test(expectedExceptions = ResourceNotFoundException.class) - public void testUpdateUnexistingGroup() { - api.updateGroup(Group.builder(UUID.randomUUID().toString()).build()); - } - - @Test(dependsOnMethods = "testUpdateGroup") - public void testDeleteGroup() { - api.deleteGroup(GROUP_NAME); - Group group = api.getGroup(GROUP_NAME); - assertNull(group); - } - - @Test(expectedExceptions = ResourceNotFoundException.class) - public void testDeleteUnexistingGroup() { - api.deleteGroup(UUID.randomUUID().toString()); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadataTest.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadataTest.java b/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadataTest.java deleted file mode 100644 index 9675af8..0000000 --- a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/EnterpriseChefProviderMetadataTest.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.enterprisechef; - -import org.jclouds.providers.internal.BaseProviderMetadataTest; -import org.testng.annotations.Test; - -/** - * Unit tests for the {@link EnterpriseChefProviderMetadata} class. - */ -@Test(groups = "unit", testName = "EnterpriseChefProviderTest") -public class EnterpriseChefProviderMetadataTest extends BaseProviderMetadataTest { - - public EnterpriseChefProviderMetadataTest() { - super(new EnterpriseChefProviderMetadata(), new EnterpriseChefApiMetadata()); - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayloadTest.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayloadTest.java b/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayloadTest.java deleted file mode 100644 index 4e9a3c2..0000000 --- a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupToUpdateRequestJsonPayloadTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.enterprisechef.binders; - -import static org.testng.Assert.assertEquals; - -import java.io.IOException; -import java.net.URI; - -import org.jclouds.chef.ChefApiMetadata; -import org.jclouds.chef.config.ChefParserModule; -import org.jclouds.enterprisechef.domain.Group; -import org.jclouds.http.HttpRequest; -import org.jclouds.json.config.GsonModule; -import org.jclouds.rest.annotations.ApiVersion; -import org.jclouds.util.Strings2; -import org.testng.annotations.Test; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Injector; - -/** - * Unit tests for the {@link BindGroupToUpdateRequestJsonPayload} class. - */ -@Test(groups = "unit", testName = "BindGroupToUpdateRequestJsonPayloadTest") -public class BindGroupToUpdateRequestJsonPayloadTest { - - private Injector injector = Guice.createInjector(new AbstractModule() { - @Override - protected void configure() { - bind(String.class).annotatedWith(ApiVersion.class).toInstance(ChefApiMetadata.DEFAULT_API_VERSION); - } - }, new ChefParserModule(), new GsonModule()); - - private BindGroupToUpdateRequestJsonPayload binder = injector.getInstance(BindGroupToUpdateRequestJsonPayload.class); - - @Test(expectedExceptions = NullPointerException.class) - public void testInvalidNullInput() { - HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); - binder.bindToRequest(request, null); - } - - @Test(expectedExceptions = IllegalArgumentException.class) - public void testInvalidTypeInput() { - HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); - binder.bindToRequest(request, new Object()); - } - - public void testBindOnlyName() throws IOException { - HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); - HttpRequest newRequest = binder.bindToRequest(request, Group.builder("foo").build()); - - String payload = Strings2.toStringAndClose(newRequest.getPayload().getInput()); - assertEquals(payload, "{\"groupname\":\"foo\",\"actors\":{\"clients\":[],\"groups\":[],\"users\":[]}}"); - } - - public void testBindNameAndLists() throws IOException { - Group group = Group.builder("foo").client("nacx-validator").group("admins").user("nacx").build(); - - HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); - HttpRequest newRequest = binder.bindToRequest(request, group); - - String payload = Strings2.toStringAndClose(newRequest.getPayload().getInput()); - assertEquals(payload, - "{\"groupname\":\"foo\",\"actors\":{\"clients\":[\"nacx-validator\"],\"groups\":[\"admins\"],\"users\":[\"nacx\"]}}"); - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/GroupNameTest.java ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/GroupNameTest.java b/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/GroupNameTest.java deleted file mode 100644 index 98ea715..0000000 --- a/providers/enterprise-chef/src/test/java/org/jclouds/enterprisechef/binders/GroupNameTest.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.enterprisechef.binders; - -import static org.testng.Assert.assertEquals; - -import java.io.IOException; - -import org.jclouds.enterprisechef.domain.Group; -import org.testng.annotations.Test; - -/** - * Unit tests for the {@link GroupName} class. - */ -@Test(groups = "unit", testName = "GroupNameTest") -public class GroupNameTest { - - @Test(expectedExceptions = NullPointerException.class) - public void testInvalidNullInput() { - new GroupName().apply(null); - } - - public void testApplyGroupName() throws IOException { - assertEquals(new GroupName().apply(Group.builder("foo").build()), "foo"); - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/resources/group-update.json ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/resources/group-update.json b/providers/enterprise-chef/src/test/resources/group-update.json deleted file mode 100644 index cc7bf6a..0000000 --- a/providers/enterprise-chef/src/test/resources/group-update.json +++ /dev/null @@ -1 +0,0 @@ -{"groupname":"admins","actors":{"clients":["abiquo"],"groups":["admins"],"users":["nacx"]}} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/resources/group.json ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/resources/group.json b/providers/enterprise-chef/src/test/resources/group.json deleted file mode 100644 index df3eb28..0000000 --- a/providers/enterprise-chef/src/test/resources/group.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "actors" : [ "abiquo", - "nacx", - "pivotal" - ], - "clients" : [ "abiquo" ], - "groupname" : "admins", - "groups" : [ "billing-admins" ], - "name" : "admins", - "orgname" : "nacx", - "users" : [ "nacx", - "pivotal" - ] -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/resources/groups.json ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/resources/groups.json b/providers/enterprise-chef/src/test/resources/groups.json deleted file mode 100644 index 30c8aa6..0000000 --- a/providers/enterprise-chef/src/test/resources/groups.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "965f2db33d302ed4625d172e0bc36920" : "https://api.opscode.com/organizations/nacx/groups/965f2db33d302ed4625d172e0bc36920", - "admins" : "https://api.opscode.com/organizations/nacx/groups/admins", - "billing-admins" : "https://api.opscode.com/organizations/nacx/groups/billing-admins", - "clients" : "https://api.opscode.com/organizations/nacx/groups/clients", - "users" : "https://api.opscode.com/organizations/nacx/groups/users" -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/enterprise-chef/src/test/resources/user.json ---------------------------------------------------------------------- diff --git a/providers/enterprise-chef/src/test/resources/user.json b/providers/enterprise-chef/src/test/resources/user.json deleted file mode 100644 index ee35a95..0000000 --- a/providers/enterprise-chef/src/test/resources/user.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "display_name" : "Ignasi Barrera", - "email" : "[email protected]", - "first_name" : "Ignasi", - "last_name" : "Barrera", - "middle_name" : "", - "public_key" : "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAp0ytgXbPzqJwOOixn7bTa6VAiNvVIOn+yDPoWbyEfc0li93BHIwv\n01KW/mn55IXnSbMw86rdxisvwPHFfb7URuKuTzME6yrphBiancmNjushZZeBWb8j\nqJhnFIKbaaOqew0LZSyG9ycYODB/HDK/pWTV4Bd1OtLHBNFrnIf+r3HOjJsa4rmK\nWXgSQIQO7be/iRHysApV9tfVH8lo1ETnA08JTrQwDgo9St9YNbydb5V0CiLiQsOa\nIbY09buUK9lXthh/rrRVbGbSwQM6OYdXIEZTN2BFvQ0p5pH8AiTwFqb0ICO46a0S\njfGcXNjC/QfHljAPY3T5xyIOODM8afHCnwIDAQAB\n-----END RSA PUBLIC KEY-----\n", - "username" : "nacx" -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds/blob/8cb2cb44/providers/pom.xml ---------------------------------------------------------------------- diff --git a/providers/pom.xml b/providers/pom.xml index 2fec399..2f64ce5 100644 --- a/providers/pom.xml +++ b/providers/pom.xml @@ -79,6 +79,5 @@ <module>aws-route53</module> <module>ultradns-ws</module> <module>dynect</module> - <module>enterprise-chef</module> </modules> </project>
