Yevgeny Zaspitsky has uploaded a new change for review. Change subject: restapi: update REST API to pass managementNetworkId on cluster creation ......................................................................
restapi: update REST API to pass managementNetworkId on cluster creation Enable passing managment network id on creating a cluster through the REST API. Change-Id: Iad3159ef098730940df15bc43019139e120aec8b Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd M backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClustersResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterClustersResource.java 4 files changed, 44 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/02/33502/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd index 88b1a18..c6c2049 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd @@ -1607,6 +1607,7 @@ <xs:element ref="ksm" minOccurs="0" maxOccurs="1"/> <xs:element ref="serial_number" minOccurs="0" maxOccurs="1" /> <xs:element name="required_rng_sources" type="RngSources" minOccurs="0" maxOccurs="1" /> + <xs:element name="management_network_id" type="xs:string" minOccurs="0" maxOccurs="1"/> <!-- Also a rel="networks" link --> </xs:sequence> </xs:extension> diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml index a4e1e0d..1ad1e0c 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml @@ -1901,7 +1901,7 @@ cluster.scheduling_policy.policy--DEPRECATED: 'xs:string', cluster.scheduling_policy.thresholds.low--DEPRECATED: 'xs:int', cluster.scheduling_policy.thresholds.high--DEPRECATED: 'xs:int', cluster.scheduling_policy.thresholds.duration--DEPRECATED: 'xs:int', cluster.scheduling_policy.id: 'xs:string', cluster.scheduling_policy.properties.property--COLLECTION: {property.name: 'xs:string', property.value: 'xs:string'}, cluster.error_handling.on_error: 'xs:string', cluster.virt_service: 'xs:boolean', cluster.gluster_service: 'xs:boolean', cluster.threads_as_cores: 'xs:boolean', cluster.tunnel_migration: 'xs:boolean', cluster.trusted_service: 'xs:boolean', cluster.ha_reservation: 'xs:boolean', cluster.ballooning_enabled: 'xs:boolean', cluster.cpu.architecture: 'xs:string', cluster.display.proxy: 'xs:string', - cluster.ksm.enabled: 'xs:boolean'} + cluster.ksm.enabled: 'xs:boolean', cluster.management_network_id: 'xs:string'} description: add a new cluster to the system urlparams: {} headers: @@ -2325,7 +2325,8 @@ cluster.scheduling_policy.thresholds.duration--DEPRECATED: 'xs:int', cluster.scheduling_policy.id: 'xs:string', cluster.scheduling_policy.properties.property--COLLECTION: {property.name: 'xs:string', property.value: 'xs:string'}, cluster.error_handling.on_error: 'xs:string', cluster.virt_service: 'xs:boolean', cluster.gluster_service: 'xs:boolean', cluster.threads_as_cores: 'xs:boolean', - cluster.tunnel_migration: 'xs:boolean', cluster.ballooning_enabled: 'xs:boolean', cluster.cpu.architecture: 'xs:string', cluster.display.proxy: 'xs:string', cluster.ksm.enabled: 'xs:boolean',} + cluster.tunnel_migration: 'xs:boolean', cluster.ballooning_enabled: 'xs:boolean', cluster.cpu.architecture: 'xs:string', cluster.display.proxy: 'xs:string', cluster.ksm.enabled: 'xs:boolean', + cluster.management_network_id: 'xs:string'} description: add a new cluster to the data center urlparams: {} headers: diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClustersResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClustersResource.java index 061a02a..1c01e92 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClustersResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendClustersResource.java @@ -10,6 +10,7 @@ import org.ovirt.engine.api.model.Clusters; import org.ovirt.engine.api.resource.ClusterResource; import org.ovirt.engine.api.resource.ClustersResource; +import org.ovirt.engine.api.restapi.utils.GuidUtils; import org.ovirt.engine.core.common.action.AddVdsGroupOperationParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdsGroupParametersBase; @@ -72,15 +73,33 @@ @Override public Response add(Cluster cluster) { - validateParameters(cluster, "name", "dataCenter.name|id"); + validateParameters(cluster, getMandatoryParameters()); validateEnums(Cluster.class, cluster); - StoragePool pool = getStoragePool(cluster.getDataCenter(), this); - VDSGroup entity = map(cluster, map(pool)); + StoragePool dataCenter = getDataCenter(cluster); return performCreate(VdcActionType.AddVdsGroup, - new AddVdsGroupOperationParameters(entity), + createCommandParams(cluster, dataCenter), new QueryIdResolver<Guid>(VdcQueryType.GetVdsGroupById, IdQueryParameters.class)); } + protected String[] getMandatoryParameters() { + return new String[] { "name", "dataCenter.name|id" }; + } + + protected StoragePool getDataCenter(Cluster cluster) { + return getStoragePool(cluster.getDataCenter(), this); + } + + protected AddVdsGroupOperationParameters createCommandParams(Cluster cluster, StoragePool dataCenter) { + VDSGroup clusterEntity = map(cluster, map(dataCenter)); + + final AddVdsGroupOperationParameters taskParams = + cluster.isSetManagementNetworkId() ? + new AddVdsGroupOperationParameters(clusterEntity, + GuidUtils.asGuid(cluster.getManagementNetworkId())) : + new AddVdsGroupOperationParameters(clusterEntity); + return taskParams; + } + @Override public Response performRemove(String id) { return performAction(VdcActionType.RemoveVdsGroup, new VdsGroupParametersBase(asGuid(id))); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterClustersResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterClustersResource.java index 607db70..9197094 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterClustersResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterClustersResource.java @@ -4,14 +4,10 @@ import java.util.List; -import javax.ws.rs.core.Response; - import org.ovirt.engine.api.model.Cluster; import org.ovirt.engine.api.model.Clusters; import org.ovirt.engine.api.model.DataCenter; import org.ovirt.engine.api.resource.ClusterResource; -import org.ovirt.engine.core.common.action.AddVdsGroupOperationParameters; -import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -42,18 +38,28 @@ return inject(new BackendDataCenterClusterResource(this, id)); } + // @Override + // public Response add(Cluster cluster) { + // validateParameters(cluster, getMandatoryParameters()); + // validateEnums(Cluster.class, cluster); + // StoragePool dataCenter = getDataCenter(cluster); + // return performCreate(VdcActionType.AddVdsGroup, + // createCommandParams(cluster, dataCenter), + // new QueryIdResolver<Guid>(VdcQueryType.GetVdsGroupById, IdQueryParameters.class)); + // } + // @Override - public Response add(Cluster cluster) { - validateParameters(cluster, "name"); - validateEnums(Cluster.class, cluster); + protected String[] getMandatoryParameters() { + return new String[] { "name" }; + } + + @Override + protected StoragePool getDataCenter(Cluster cluster) { DataCenter dataCenter = new DataCenter(); dataCenter.setId(dataCenterId.toString()); cluster.setDataCenter(dataCenter); StoragePool pool = getStoragePool(cluster.getDataCenter(), this); - VDSGroup entity = map(cluster, map(pool)); - return performCreate(VdcActionType.AddVdsGroup, - new AddVdsGroupOperationParameters(entity), - new QueryIdResolver<Guid>(VdcQueryType.GetVdsGroupById, IdQueryParameters.class)); + return pool; } } -- To view, visit http://gerrit.ovirt.org/33502 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iad3159ef098730940df15bc43019139e120aec8b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
