
types.RegistrationConfiguration Maven / Gradle / Ivy
/*
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 - 2025 Weber Informatics LLC | Privacy Policy