Juan Hernandez has uploaded a new change for review.

Change subject: restapi: Generic external provider
......................................................................

restapi: Generic external provider

This patch adds a generic external provider class, to be used by the existing
and future external provider classes.

Change-Id: I040b0edc6d734337d238db4e90c3167fad0e39e8
Related-To:  https://bugzilla.redhat.com/1132259
Signed-off-by: Juan Hernandez <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ExternalProviderResource.java
A 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendExternalProviderResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/externalhostproviders/BackendExternalHostProviderResource.java
3 files changed, 92 insertions(+), 66 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/34759/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ExternalProviderResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ExternalProviderResource.java
index 236934f..7ec6352 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ExternalProviderResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ExternalProviderResource.java
@@ -23,10 +23,10 @@
 
 import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.Actionable;
-import org.ovirt.engine.api.model.BaseResource;
+import org.ovirt.engine.api.model.ExternalProvider;
 
 @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
-public interface ExternalProviderResource<R extends BaseResource> extends 
UpdatableResource<R> {
+public interface ExternalProviderResource<R extends ExternalProvider> extends 
UpdatableResource<R> {
     @Path("certificates")
     public ExternalProviderCertificatesResource getCertificates();
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendExternalProviderResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendExternalProviderResource.java
new file mode 100644
index 0000000..33e56fe
--- /dev/null
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendExternalProviderResource.java
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2014 Red Hat, Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.ovirt.engine.api.restapi.resource;
+
+import org.ovirt.engine.api.model.Action;
+import org.ovirt.engine.api.model.ExternalProvider;
+import org.ovirt.engine.api.resource.ExternalProviderCertificatesResource;
+import org.ovirt.engine.api.resource.ExternalProviderResource;
+import org.ovirt.engine.core.common.action.ProviderParameters;
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.compat.Guid;
+
+import javax.ws.rs.core.Response;
+
+public abstract class AbstractBackendExternalProviderResource<R extends 
ExternalProvider>
+        extends AbstractBackendActionableResource<R, Provider>
+        implements ExternalProviderResource<R> {
+    public AbstractBackendExternalProviderResource(String id, Class<R> 
modelType, String... subCollections) {
+        super(id, modelType, Provider.class, subCollections);
+    }
+
+    @Override
+    public R get() {
+        return performGet(VdcQueryType.GetProviderById, new 
IdQueryParameters(guid));
+    }
+
+    @Override
+    public R update(R incoming) {
+        return performUpdate(
+            incoming,
+            new QueryIdResolver<Guid>(VdcQueryType.GetProviderById, 
IdQueryParameters.class),
+            VdcActionType.UpdateProvider,
+            new UpdateParametersProvider()
+        );
+    }
+
+    protected class UpdateParametersProvider implements ParametersProvider<R, 
Provider> {
+        @Override
+        public VdcActionParametersBase getParameters(R incoming, Provider 
entity) {
+            return new ProviderParameters(map(incoming, entity));
+        }
+    }
+
+    @Override
+    protected R doPopulate(R model, Provider entity) {
+        return model;
+    }
+
+    @Override
+    public Response testConnectivity(Action action) {
+        Provider provider = BackendExternalProviderHelper.getProvider(this, 
id);
+        ProviderParameters parameters = new ProviderParameters(provider);
+        return performAction(VdcActionType.TestProviderConnectivity, 
parameters);
+    }
+
+    @Override
+    public Response importCertificates(Action action) {
+        Provider provider = BackendExternalProviderHelper.getProvider(this, 
id);
+        ProviderParameters parameters = new ProviderParameters(provider);
+        return performAction(VdcActionType.ImportProviderCertificateChain, 
parameters);
+    }
+
+    @Override
+    public ExternalProviderCertificatesResource getCertificates() {
+        return inject(new BackendExternalProviderCertificatesResource(id));
+    }
+}
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/externalhostproviders/BackendExternalHostProviderResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/externalhostproviders/BackendExternalHostProviderResource.java
index c437beb..2db3947 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/externalhostproviders/BackendExternalHostProviderResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/externalhostproviders/BackendExternalHostProviderResource.java
@@ -18,78 +18,19 @@
 
 import static 
org.ovirt.engine.api.restapi.resource.externalhostproviders.BackendExternalHostProvidersResource.SUB_COLLECTIONS;
 
-import javax.ws.rs.core.Response;
-
-import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.ExternalHostProvider;
-import org.ovirt.engine.api.resource.ExternalProviderCertificatesResource;
 import 
org.ovirt.engine.api.resource.externalhostproviders.ExternalComputeResourcesResource;
 import 
org.ovirt.engine.api.resource.externalhostproviders.ExternalDiscoveredHostsResource;
 import 
org.ovirt.engine.api.resource.externalhostproviders.ExternalHostGroupsResource;
 import 
org.ovirt.engine.api.resource.externalhostproviders.ExternalHostProviderResource;
 import 
org.ovirt.engine.api.resource.externalhostproviders.ExternalHostsResource;
-import org.ovirt.engine.api.restapi.resource.AbstractBackendActionableResource;
-import 
org.ovirt.engine.api.restapi.resource.BackendExternalProviderCertificatesResource;
-import org.ovirt.engine.api.restapi.resource.BackendExternalProviderHelper;
-import org.ovirt.engine.core.common.action.ProviderParameters;
-import org.ovirt.engine.core.common.action.VdcActionParametersBase;
-import org.ovirt.engine.core.common.action.VdcActionType;
-import org.ovirt.engine.core.common.businessentities.Provider;
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
-import org.ovirt.engine.core.common.queries.VdcQueryType;
-import org.ovirt.engine.core.compat.Guid;
+import 
org.ovirt.engine.api.restapi.resource.AbstractBackendExternalProviderResource;
 
-public class BackendExternalHostProviderResource extends
-        AbstractBackendActionableResource<ExternalHostProvider, Provider> 
implements
-        ExternalHostProviderResource {
+public class BackendExternalHostProviderResource
+        extends AbstractBackendExternalProviderResource<ExternalHostProvider>
+        implements ExternalHostProviderResource {
     public BackendExternalHostProviderResource(String id) {
-        super(id, ExternalHostProvider.class, Provider.class, SUB_COLLECTIONS);
-    }
-
-    @Override
-    public ExternalHostProvider get() {
-        return performGet(VdcQueryType.GetProviderById, new 
IdQueryParameters(guid));
-    }
-
-    @Override
-    public ExternalHostProvider update(ExternalHostProvider incoming) {
-        return performUpdate(
-            incoming,
-            new QueryIdResolver<Guid>(VdcQueryType.GetProviderById, 
IdQueryParameters.class),
-            VdcActionType.UpdateProvider,
-            new UpdateParametersProvider()
-        );
-    }
-
-    protected class UpdateParametersProvider implements 
ParametersProvider<ExternalHostProvider, Provider> {
-        @Override
-        public VdcActionParametersBase getParameters(ExternalHostProvider 
incoming, Provider entity) {
-            return new ProviderParameters(map(incoming, entity));
-        }
-    }
-
-    @Override
-    protected ExternalHostProvider doPopulate(ExternalHostProvider model, 
Provider entity) {
-        return model;
-    }
-
-    @Override
-    public Response testConnectivity(Action action) {
-        Provider provider = BackendExternalProviderHelper.getProvider(this, 
id);
-        ProviderParameters parameters = new ProviderParameters(provider);
-        return performAction(VdcActionType.TestProviderConnectivity, 
parameters);
-    }
-
-    @Override
-    public Response importCertificates(Action action) {
-        Provider provider = BackendExternalProviderHelper.getProvider(this, 
id);
-        ProviderParameters parameters = new ProviderParameters(provider);
-        return performAction(VdcActionType.ImportProviderCertificateChain, 
parameters);
-    }
-
-    @Override
-    public ExternalProviderCertificatesResource getCertificates() {
-        return inject(new BackendExternalProviderCertificatesResource(id));
+        super(id, ExternalHostProvider.class, SUB_COLLECTIONS);
     }
 
     @Override


-- 
To view, visit http://gerrit.ovirt.org/34759
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I040b0edc6d734337d238db4e90c3167fad0e39e8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to