types.RegistrationConfiguration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of model Show documentation
Show all versions of model Show documentation
Model management tools for the oVirt Engine API.
/*
Copyright (c) 2017 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 WARRAN/TIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package types;
import org.ovirt.api.metamodel.annotations.Link;
import org.ovirt.api.metamodel.annotations.Type;
/**
* This type describes how an object (virtual machine, template,
* etc) is registered, and is used for the implementation of disaster recovery solutions.
*
* Each mapping contained in this type can be used to map
* objects in the original system to corresponding objects
* in the system where the virtual machine or template is being registered.
* For example, there could be a primary setup with a virtual machine
* configured on cluster A, and an active secondary setup with cluster B.
* Cluster B is compatible with that virtual machine, and in case of a
* disaster recovery scenario the storage domain can be
* imported to the secondary setup, and the user can register the
* virtual machine to cluster B.
*
* In that case, we can automate the recovery process by defining a cluster mapping.
* After the entity is registered, its OVF will indicate it belongs to
* cluster A, but the mapping will indicate that cluster A will
* be replaced with cluster B.
* {engine-name} should do the switch and register the virtual machine to cluster B
* in the secondary site.
*
* Cluster mapping is just one example, there are different types of mappings:
*
* - Cluster mapping.
* - LUN mapping.
* - Role mapping.
* - Domain mapping.
* - Permissions mapping.
* - Affinity Group mapping.
* - Affinity Label mapping.
* - Virtual NIC profile mapping.
*
* Each mapping will be used for its specific OVF's data once the register operation
* takes place in the {engine-name}.
*
* An example of an XML representation using the mapping:
*
* [source,xml]
* ----
*
*
*
*
*
* myoriginalcluster
*
*
* mynewcluster
*
*
*
*
*
*
* SuperUser
*
*
* UserVmRunTimeManager
*
*
*
*
*
*
* redhat
*
*
* internal
*
*
*
*
*
*
*
*
* weTestLun
*
* iscsi
*
*
* 44.33.11.22
* 3260
* 1
* iqn.2017-11.com.name.redhat:444
*
*
*
*
*
*
*
*
*
* affinity
*
*
* affinity2
*
*
*
*
*
*
* affinity_label
*
*
* affinity_label2
*
*
*
*
*
*
* gold
*
* red
*
*
*
*
*
*
* silver
*
* blue
*
*
*
* copper
*
* orange
*
*
*
*
*
*
* ----
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status added
* @since 4.2
*/
@Type
public interface RegistrationConfiguration {
/**
* Describes how the clusters that the object references are
* mapped.
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status updated_by_docs
* @since 4.2
*/
RegistrationClusterMapping[] clusterMappings();
/**
* Describes how the roles are mapped.
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status updated_by_docs
* @since 4.2
*/
RegistrationRoleMapping[] roleMappings();
/**
* Describes how the LUNs are mapped.
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status updated_by_docs
* @since 4.2
*/
RegistrationLunMapping[] lunMappings();
/**
* Describes how the users' domains are mapped.
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status updated_by_docs
* @since 4.2
*/
RegistrationDomainMapping[] domainMappings();
/**
* Describes how the affinity groups are mapped.
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status updated_by_docs
* @since 4.2
*/
RegistrationAffinityGroupMapping[] affinityGroupMappings();
/**
* Describes how the affinity labels are mapped.
*
* @author Maor Lipchuk
* @author Byron Gravenorst
* @date 20 Oct 2017
* @status updated_by_docs
* @since 4.2
*/
RegistrationAffinityLabelMapping[] affinityLabelMappings();
/**
* Mapping rules for virtual NIC profiles that will be applied during the register process.
*
* @author Eitan Raviv
* @date 04 Dec 2017
* @status added
* @since 4.2.1
*/
RegistrationVnicProfileMapping[] vnicProfileMappings();
}