Martin Mucha has uploaded a new change for review. Change subject: restapi: rest part for UnmanagedNetworks. ......................................................................
restapi: rest part for UnmanagedNetworks. Change-Id: Icfd30d340e7ec9e1da0f752a188dc4ba80211043 Signed-off-by: Martin Mucha <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java A backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworkResource.java A backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworksResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java M backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd M backend/manager/modules/restapi/interface/definition/src/main/resources/jyaml.yml 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/BackendHostResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostsResource.java A backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworkResource.java A backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworksResource.java A backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UnmanagedNetworkMapper.java 12 files changed, 337 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/78/37878/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java index 3e85aa5..465f468 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java @@ -99,6 +99,9 @@ @Path("permissions") public AssignedPermissionsResource getPermissionsResource(); + @Path("unmanagednetworks") + public UnmanagedNetworksResource getUnmanagedNetworksResource(); + @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworkResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworkResource.java new file mode 100644 index 0000000..83264d9 --- /dev/null +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworkResource.java @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2010 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.resource; + +import javax.ws.rs.GET; +import javax.ws.rs.Produces; + +import org.ovirt.engine.api.model.UnmanagedNetwork; + +@Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) +public interface UnmanagedNetworkResource { + + @GET + public UnmanagedNetwork get(); +} diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworksResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworksResource.java new file mode 100644 index 0000000..c64e142 --- /dev/null +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/UnmanagedNetworksResource.java @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2010 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.resource; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; + +import org.ovirt.engine.api.model.UnmanagedNetworks; + +@Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) +public interface UnmanagedNetworksResource { + + @GET + public UnmanagedNetworks list(); + + @DELETE + @Path("{id}") + public Response remove(@PathParam("id") String id); + + @Path("{id}") + public UnmanagedNetworkResource getUnmanagedNetworkSubResource(@PathParam("id") String id); +} diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java index 64bac15..1485451 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/LinkHelper.java @@ -95,6 +95,7 @@ import org.ovirt.engine.api.model.StorageDomain; import org.ovirt.engine.api.model.Tag; import org.ovirt.engine.api.model.Template; +import org.ovirt.engine.api.model.UnmanagedNetwork; import org.ovirt.engine.api.model.Url; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.model.VM; @@ -200,6 +201,8 @@ import org.ovirt.engine.api.resource.TemplateDisksResource; import org.ovirt.engine.api.resource.TemplateResource; import org.ovirt.engine.api.resource.TemplatesResource; +import org.ovirt.engine.api.resource.UnmanagedNetworkResource; +import org.ovirt.engine.api.resource.UnmanagedNetworksResource; import org.ovirt.engine.api.resource.UpdatableRoleResource; import org.ovirt.engine.api.resource.VmApplicationResource; import org.ovirt.engine.api.resource.VmApplicationsResource; @@ -475,6 +478,9 @@ map.add(NetworkAttachmentResource.class, NetworkAttachmentsResource.class, HostNIC.class); TYPES.put(NetworkAttachment.class, map); + map = new ParentToCollectionMap(UnmanagedNetworkResource.class, UnmanagedNetworksResource.class, Host.class); + TYPES.put(UnmanagedNetwork.class, map); + map = new ParentToCollectionMap(AffinityGroupResource.class, AffinityGroupsResource.class, Cluster.class); TYPES.put(AffinityGroup.class, map); 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 6aff4af..43d6b86 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 @@ -3781,6 +3781,37 @@ </xs:complexContent> </xs:complexType> + <xs:element name="unmanaged_networks" type="UnmanagedNetworks"/> + + <xs:complexType name="UnmanagedNetworks"> + <xs:complexContent> + <xs:extension base="BaseResources"> + <xs:sequence> + <xs:element ref="unmanaged_network" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:appinfo> + <jaxb:property name="unmanagedNetworks"/> + </xs:appinfo> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="unmanaged_network" type="UnmanagedNetwork"/> + + <xs:complexType name="UnmanagedNetwork"> + <xs:complexContent> + <xs:extension base="BaseResource"> + <xs:sequence> + <xs:element ref="host_nic" minOccurs="0" maxOccurs="1"/> + <xs:element ref="host" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="HostNics"> <xs:complexContent> <xs:extension base="BaseResources"> diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/jyaml.yml b/backend/manager/modules/restapi/interface/definition/src/main/resources/jyaml.yml index 504eb76..6ce6b45 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/jyaml.yml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/jyaml.yml @@ -81,6 +81,8 @@ instance_types: org.ovirt.engine.api.model.InstanceTypes ticket: org.ovirt.engine.api.model.Ticket transparent_hugepages: org.ovirt.engine.api.model.TransparentHugePages + unmanaged_network: org.ovirt.engine.api.model.UnmanagedNetwork + unmanaged_networks: org.ovirt.engine.api.model.UnmanagedNetworks user: org.ovirt.engine.api.model.User users: org.ovirt.engine.api.model.Users value: org.ovirt.engine.api.model.Value @@ -194,6 +196,8 @@ org.ovirt.engine.api.model.TransparentHugePages: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper org.ovirt.engine.api.model.User: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper org.ovirt.engine.api.model.Users: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper + org.ovirt.engine.api.model.UnmanagedNetwork: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper + org.ovirt.engine.api.model.UnmanagedNetworks: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper org.ovirt.engine.api.model.Value: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper org.ovirt.engine.api.model.Values: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper org.ovirt.engine.api.model.VersionCaps: org.ovirt.engine.api.resteasy.yaml.CustomBeanWrapper 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 00d97cc..cdd7129 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 @@ -3384,6 +3384,34 @@ Content-Type: {value: application/xml|json, required: true} Expect: {value: 201-created, required: false} Correlation-Id: {value: 'any string', required: false} +- name: /hosts/{host:id}/unmanagednetworks|rel=get + description: get a list of unmanaged networks + request: + body: + parameterType: null + signatures: [] + urlparams: + max: {context: matrix, type: 'xs:int', value: 'max results', required: false} + headers: {} +- name: /hosts/{host:id}/unmanagednetworks/{unmanagednetwork:id}|rel=get + description: get the details of the specified unmanaged network + request: + body: + parameterType: null + signatures: [] + urlparams: {} + headers: {} +- name: /hosts/{host:id}/unmanagednetworks/{unmanagednetwork:id}|rel=delete + description: delete the specified unmanaged network + request: + body: + required: false + parameterType: Action + signatures: [] + urlparams: + async: {context: matrix, type: 'xs:boolean', value: true|false, required: false} + headers: + Correlation-Id: {value: 'any string', required: false} - name: /hosts/{host:id}/permissions|rel=get description: get the list of permissions for the host request: diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java index 66c7201..d78e87a 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java @@ -29,6 +29,7 @@ import org.ovirt.engine.api.resource.HostStorageResource; import org.ovirt.engine.api.resource.NetworkAttachmentsResource; import org.ovirt.engine.api.resource.StatisticsResource; +import org.ovirt.engine.api.resource.UnmanagedNetworksResource; import org.ovirt.engine.api.restapi.model.AuthenticationMethod; import org.ovirt.engine.api.restapi.types.Mapper; import org.ovirt.engine.core.common.VdcObjectType; @@ -436,6 +437,11 @@ } @Override + public UnmanagedNetworksResource getUnmanagedNetworksResource() { + return inject(new BackendUnmanagedNetworksResource(guid)); + } + + @Override public NetworkAttachmentsResource getNetworkAttachmentsResource() { return inject(new BackendHostNetworkAttachmentsResource(guid)); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostsResource.java index 6779f2d..43ab24a 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostsResource.java @@ -41,7 +41,7 @@ private static final Logger log = LoggerFactory.getLogger(BackendHostsResource.class); private static final String DEFAULT_NAME = "Default"; static final String[] SUB_COLLECTIONS = { "storage", "nics", "numanodes", "tags", "permissions", "statistics", - "hooks", "networkattachments" }; + "hooks", "networkattachments", "unmanagednetworks" }; static final String GLUSTERONLY_MODE_COLLECTIONS_TO_HIDE = "storage"; public BackendHostsResource() { diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworkResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworkResource.java new file mode 100644 index 0000000..1f700f8 --- /dev/null +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworkResource.java @@ -0,0 +1,47 @@ +package org.ovirt.engine.api.restapi.resource; + +import org.ovirt.engine.api.model.Host; +import org.ovirt.engine.api.resource.UnmanagedNetworkResource; +import org.ovirt.engine.core.common.businessentities.UnmanagedNetwork; +import org.ovirt.engine.core.common.queries.UnmanagedNetworkParameters; +import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.core.compat.Guid; + +public class BackendUnmanagedNetworkResource extends AbstractBackendSubResource<org.ovirt.engine.api.model.UnmanagedNetwork, + UnmanagedNetwork> implements UnmanagedNetworkResource { + + private final Guid hostId; + + public BackendUnmanagedNetworkResource(String id, Guid hostId) { + super(id, org.ovirt.engine.api.model.UnmanagedNetwork.class, UnmanagedNetwork.class); + this.hostId = hostId; + } + + @Override + protected org.ovirt.engine.api.model.UnmanagedNetwork doPopulate(org.ovirt.engine.api.model.UnmanagedNetwork model, UnmanagedNetwork entity) { + return model; + } + + @Override + public org.ovirt.engine.api.model.UnmanagedNetwork get() { + return performGet(VdcQueryType.GetUnmanagedNetworkByVdsIdAndName, new UnmanagedNetworkParameters(hostId, id), Host.class); + } + + @Override + protected Guid asGuidOr404(String id) { + // The identifier isn't a UUID. + return null; + } + + @Override + protected org.ovirt.engine.api.model.UnmanagedNetwork addParents(org.ovirt.engine.api.model.UnmanagedNetwork model) { + Host host = new Host(); + model.setHost(host); + model.getHost().setId(hostId.toString()); + if (model.isSetHostNic()) { + model.getHostNic().setHost(host); + } + + return model; + } +} diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworksResource.java new file mode 100644 index 0000000..066b351 --- /dev/null +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUnmanagedNetworksResource.java @@ -0,0 +1,82 @@ +package org.ovirt.engine.api.restapi.resource; + +import java.util.Collections; +import java.util.List; + +import javax.ws.rs.core.Response; + +import org.ovirt.engine.api.model.Host; +import org.ovirt.engine.api.model.UnmanagedNetworks; +import org.ovirt.engine.api.resource.UnmanagedNetworkResource; +import org.ovirt.engine.api.resource.UnmanagedNetworksResource; +import org.ovirt.engine.api.restapi.utils.HexUtils; +import org.ovirt.engine.core.common.action.HostSetupNetworksParameters; +import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.businessentities.UnmanagedNetwork; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.core.compat.Guid; + +public class BackendUnmanagedNetworksResource extends AbstractBackendCollectionResource<org.ovirt.engine.api.model.UnmanagedNetwork, UnmanagedNetwork> + implements UnmanagedNetworksResource { + + private Guid hostId; + + public BackendUnmanagedNetworksResource(Guid hostId) { + super(org.ovirt.engine.api.model.UnmanagedNetwork.class, UnmanagedNetwork.class); + this.hostId = hostId; + } + + @Override + public UnmanagedNetworks list() { + return mapCollection(getAllUnmanagedNetworksByVdsId()); + } + + private List<UnmanagedNetwork> getAllUnmanagedNetworksByVdsId() { + return getBackendCollection(VdcQueryType.GetAllUnmanagedNetworksByVdsId, new IdQueryParameters(hostId)); + } + + private UnmanagedNetworks mapCollection(List<UnmanagedNetwork> unmanagedNetworks) { + UnmanagedNetworks result = new UnmanagedNetworks(); + for (UnmanagedNetwork unmanagedNetwork : unmanagedNetworks) { + result.getUnmanagedNetworks().add(addLinks(populate(map(unmanagedNetwork), null), Host.class)); + } + return result; + } + + @Override + public Response remove(String id) { + return super.remove(HexUtils.hex2string(id)); + } + + @SingleEntityResource + @Override + public UnmanagedNetworkResource getUnmanagedNetworkSubResource(String id) { + return inject(new BackendUnmanagedNetworkResource(HexUtils.hex2string(id), hostId)); + + } + + @Override + protected Response performRemove(String id) { + HostSetupNetworksParameters parameters = new HostSetupNetworksParameters(hostId); + parameters.setRemovedUnmanagedNetworks(Collections.singletonList(id)); + return performAction(VdcActionType.HostSetupNetworks, parameters); + } + + @Override + protected org.ovirt.engine.api.model.UnmanagedNetwork doPopulate(org.ovirt.engine.api.model.UnmanagedNetwork model, UnmanagedNetwork entity) { + return model; + } + + @Override + protected org.ovirt.engine.api.model.UnmanagedNetwork addParents(org.ovirt.engine.api.model.UnmanagedNetwork model) { + Host host = new Host(); + model.setHost(host); + model.getHost().setId(hostId.toString()); + if (model.isSetHostNic()) { + model.getHostNic().setHost(host); + } + + return model; + } +} diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UnmanagedNetworkMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UnmanagedNetworkMapper.java new file mode 100644 index 0000000..6cdfb9e --- /dev/null +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UnmanagedNetworkMapper.java @@ -0,0 +1,60 @@ +package org.ovirt.engine.api.restapi.types; + +import org.ovirt.engine.api.model.HostNIC; +import org.ovirt.engine.api.model.UnmanagedNetwork; +import org.ovirt.engine.api.restapi.utils.GuidUtils; +import org.ovirt.engine.api.restapi.utils.HexUtils; + +public class UnmanagedNetworkMapper { + @Mapping(from = UnmanagedNetwork.class, to = org.ovirt.engine.core.common.businessentities.UnmanagedNetwork.class) + public static org.ovirt.engine.core.common.businessentities.UnmanagedNetwork map(UnmanagedNetwork model, org.ovirt.engine.core.common.businessentities.UnmanagedNetwork template) { + if (model == null) { + return template; + } + + org.ovirt.engine.core.common.businessentities.UnmanagedNetwork entity = template == null ? new org.ovirt.engine.core.common.businessentities.UnmanagedNetwork() : template; + + if (model.isSetId()) { + entity.setId(HexUtils.hex2string(model.getName())); + } + + if (model.isSetName()) { + entity.setNetworkName(model.getName()); + } + + if (model.isSetHostNic()) { + HostNIC hostNic = model.getHostNic(); + if (hostNic.isSetId()) { + entity.setNicId(GuidUtils.asGuid(hostNic.getId())); + } + + if (hostNic.isSetName()) { + entity.setNicName(hostNic.getName()); + } + } + + return entity; + } + + @Mapping(from = org.ovirt.engine.core.common.businessentities.UnmanagedNetwork.class, to = UnmanagedNetwork.class) + public static UnmanagedNetwork map(org.ovirt.engine.core.common.businessentities.UnmanagedNetwork entity, UnmanagedNetwork template) { + if (entity == null) { + return template; + } + + UnmanagedNetwork model = template == null ? new UnmanagedNetwork() : template; + + model.setId(HexUtils.string2hex(entity.getId())); + + if (entity.getNicId() != null) { + HostNIC hostNic = new HostNIC(); + hostNic.setId(entity.getNicId().toString()); + hostNic.setName(entity.getNicName()); + model.setHostNic(hostNic); + } + + model.setName(entity.getNetworkName()); + + return model; + } +} -- To view, visit http://gerrit.ovirt.org/37878 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icfd30d340e7ec9e1da0f752a188dc4ba80211043 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Mucha <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
