All Downloads are FREE. Search and download functionalities are using the official Maven repository.

types.RegistrationConfiguration Maven / Gradle / Ivy

There is a newer version: 4.6.0
Show newest version
/*
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(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy