Moti Asayag has uploaded a new change for review. Change subject: restapi: Attach network to cluster by ID ......................................................................
restapi: Attach network to cluster by ID The patch resolves the network which is a candidate to be attached to a cluster or to be updated within a cluster by queries all of the networks on DC level instead for all the networks which are currently attached to the cluster. Change-Id: I2293cccf3d88aea384bd61ae75d3c8d5f41408a9 Bug-Url: https://bugzilla.redhat.com/961046 Signed-off-by: Moti Asayag <[email protected]> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResourceTest.java 2 files changed, 73 insertions(+), 32 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/21/14721/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResource.java index 99c4411..066def5 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResource.java @@ -21,15 +21,15 @@ import org.ovirt.engine.core.compat.NGuid; public class BackendClusterNetworksResource - extends AbstractBackendNetworksResource - implements AssignedNetworksResource { + extends AbstractBackendNetworksResource + implements AssignedNetworksResource { private String clusterId; public BackendClusterNetworksResource(String clusterId) { super(VdcQueryType.GetAllNetworksByClusterId, - VdcActionType.AttachNetworkToVdsGroup, - VdcActionType.DetachNetworkToVdsGroup); + VdcActionType.AttachNetworkToVdsGroup, + VdcActionType.DetachNetworkToVdsGroup); this.clusterId = clusterId; } @@ -39,7 +39,8 @@ String networkName = null; if (network.isSetId()) { - org.ovirt.engine.core.common.businessentities.network.Network net = lookupNetwork(asGuid(network.getId())); + org.ovirt.engine.core.common.businessentities.network.Network net = + getNetworkById(network.getId(), clusterId); if (net == null) { notFound(Network.class); } else { @@ -49,9 +50,12 @@ String networkId = null; if (network.isSetName()) { - networkId = getNetworkId(network.getName(), clusterId); - if (networkId == null) { + org.ovirt.engine.core.common.businessentities.network.Network net = + getNetworkByName(network.getName(), clusterId); + if (net == null) { notFound(Network.class); + } else { + networkId = net.getId().toString(); } } @@ -63,8 +67,27 @@ org.ovirt.engine.core.common.businessentities.network.Network entity = map(network); return performCreate(addAction, - getActionParameters(network, entity), - new NetworkIdResolver(StringUtils.defaultIfEmpty(network.getName(),networkName))); + getActionParameters(network, entity), + new NetworkIdResolver(StringUtils.defaultIfEmpty(network.getName(), networkName))); + } + + private org.ovirt.engine.core.common.businessentities.network.Network getNetworkById(String networkId, String clusterId) { + for (org.ovirt.engine.core.common.businessentities.network.Network network : getNetworks(clusterId)) { + if (network.getId().toString().equals(networkId)) { + return network; + } + } + return null; + } + + private org.ovirt.engine.core.common.businessentities.network.Network getNetworkByName(String networkName, + String clusterId) { + for (org.ovirt.engine.core.common.businessentities.network.Network network : getNetworks(clusterId)) { + if (network.getName().equals(networkName)) { + return network; + } + } + return null; } @Override @@ -73,7 +96,8 @@ } @Override - protected VdcActionParametersBase getActionParameters(Network network, org.ovirt.engine.core.common.businessentities.network.Network entity) { + protected VdcActionParametersBase getActionParameters(Network network, + org.ovirt.engine.core.common.businessentities.network.Network entity) { return new AttachNetworkToVdsGroupParameter(getVDSGroup(), entity); } @@ -90,9 +114,9 @@ protected VDSGroup getVDSGroup() { return getEntity(VDSGroup.class, - VdcQueryType.GetVdsGroupByVdsGroupId, - new GetVdsGroupByVdsGroupIdParameters(asGuid(clusterId)), - clusterId); + VdcQueryType.GetVdsGroupByVdsGroupId, + new GetVdsGroupByVdsGroupIdParameters(asGuid(clusterId)), + clusterId); } @Override @@ -101,17 +125,15 @@ return inject(new BackendClusterNetworkResource(id, this)); } - private String getNetworkId(String networkName, String clusterId) { - NGuid dataCenterId = getEntity(VDSGroup.class, VdcQueryType.GetVdsGroupById, new GetVdsGroupByIdParameters(asGuid(clusterId)), null).getStoragePoolId(); - IdQueryParameters params = new IdQueryParameters(asGuid(dataCenterId)); - List<org.ovirt.engine.core.common.businessentities.network.Network> networks = getBackendCollection(VdcQueryType.GetAllNetworks, params); - for (org.ovirt.engine.core.common.businessentities.network.Network nw: networks) { - if (nw.getName().equals(networkName)) { - return nw.getId().toString(); - } - } - return null; - } + private List<org.ovirt.engine.core.common.businessentities.network.Network> getNetworks(String clusterId) { + NGuid dataCenterId = + getEntity(VDSGroup.class, + VdcQueryType.GetVdsGroupById, + new GetVdsGroupByIdParameters(asGuid(clusterId)), + null).getStoragePoolId(); + IdQueryParameters params = new IdQueryParameters(asGuid(dataCenterId)); + return getBackendCollection(VdcQueryType.GetAllNetworks, params); + } @Override protected Network doPopulate(Network model, org.ovirt.engine.core.common.businessentities.network.Network entity) { diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResourceTest.java index f84c8b0..61e0754 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendClusterNetworksResourceTest.java @@ -92,9 +92,9 @@ setUpVDSGroupExpectations(CLUSTER_ID); setUriInfo(setUpBasicUriExpectations()); - setUpEntityQueryExpectations(2, null); - setUpGetClusterExpectations(); - setUpGetNetworksByDataCenterExpectations(1, null); + setUpEntityQueryExpectations(1, null); + setUpGetClusterExpectations(2, null); + setUpGetNetworksByDataCenterExpectations(2, null); setUpActionExpectations(VdcActionType.AttachNetworkToVdsGroup, AttachNetworkToVdsGroupParameter.class, new String[] { "VdsGroupId" }, @@ -122,9 +122,8 @@ setUpVDSGroupExpectations(CLUSTER_ID); setUriInfo(setUpBasicUriExpectations()); - setUpGetClusterExpectations(); - setUpEntityQueryExpectations(1, null); - setUpGetNetworksByDataCenterExpectations(1, null); + setUpGetClusterExpectations(2, null); + setUpGetNetworksByDataCenterExpectations(2, null); setUpActionExpectations(VdcActionType.AttachNetworkToVdsGroup, AttachNetworkToVdsGroupParameter.class, new String[] { "VdsGroupId" }, @@ -148,7 +147,25 @@ model.setName("orcus"); model.setDescription(DESCRIPTIONS[0]); setUpEntityQueryExpectations(1, null); - setUpGetClusterExpectations(); + setUpGetClusterExpectations(1, null); + setUpGetNetworksByDataCenterExpectations(1, null); + setUpVDSGroupExpectations(CLUSTER_ID); + setUpActionExpectations(VdcActionType.AttachNetworkToVdsGroup, + AttachNetworkToVdsGroupParameter.class, + new String[] { "VdsGroupId" }, + new Object[] { CLUSTER_ID }, + true, + true); + collection.add(model); + } + + @Test + public void testAddIdSuppliedButNoName() throws Exception { + setUriInfo(setUpBasicUriExpectations()); + Network model = new Network(); + model.setId("11111111-1111-1111-1111-111111111111"); + setUpEntityQueryExpectations(1, null); + setUpGetClusterExpectations(1, null); setUpGetNetworksByDataCenterExpectations(1, null); setUpVDSGroupExpectations(CLUSTER_ID); setUpActionExpectations(VdcActionType.AttachNetworkToVdsGroup, @@ -208,7 +225,8 @@ } } - protected void setUpGetClusterExpectations() { + protected void setUpGetClusterExpectations(int times, Object failure) { + while (times-- > 0) { VDSGroup cluster = new VDSGroup(); cluster.setStoragePoolId(GUIDS[2]); setUpEntityQueryExpectations(VdcQueryType.GetVdsGroupById, @@ -218,6 +236,7 @@ cluster, null); } + } protected void setUpQueryExpectations(String query) throws Exception { setUpEntityQueryExpectations(1); -- To view, visit http://gerrit.ovirt.org/14721 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2293cccf3d88aea384bd61ae75d3c8d5f41408a9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
