Skip to content
This repository has been archived by the owner on Jan 12, 2023. It is now read-only.

Commit

Permalink
Separated RHV amd VMWare tier0 configs (#950)
Browse files Browse the repository at this point in the history
Improved end-2-end RHV test
Now after plan is edited - it is performed
Few light changes
  • Loading branch information
ibragins committed Apr 13, 2022
1 parent 0f7150e commit 4141385
Show file tree
Hide file tree
Showing 9 changed files with 254 additions and 198 deletions.
13 changes: 13 additions & 0 deletions pkg/qe-tests/cypress/integration/models/providerVmware.ts
Expand Up @@ -183,4 +183,17 @@ export class ProviderVmware extends Provider {
this.fillESxiPassword(esxiPassword);
confirm();
}

moveCluster(providerData: VmwareProviderData): void {
const { hostname } = providerData;
let cmd = 'oc delete pod/move-cluster-to-folder';
cmd += `; oc run --env FORKLIFT_NAMESPACE=openshift-mtv --env CLUSTER_NAME=MTV --env SERVER=${hostname} --env USER=xxx --env PASSWORD=xxx --env IGNOR_CERT_CHECK=true --env K8_API_URL="\`oc status |grep api|awk '{print $6}'\`" --env K8_API_KEY "\`oc whoami --show-token\`" move-cluster-to-folder --it --image quay.io/mtvqe/moveclustertosubfolder`;
cy.exec(cmd).its('stdout').should('contain', 'Operation Completed Successfully');
}

recoverMoveCluster(providerData: VmwareProviderData): void {
const { hostname } = providerData;
const cmd = `oc run --env TEARDOWN=true --env CLUSTER_NAME --env DATACENTER_NAME --env SERVER=${hostname} --env USER=xxx --env PASSWORD=xxx --env IGNOR_CERT_CHECK=true`;
cy.exec(cmd).its('stdout').should('contain', 'Operation Completed Successfully');
}
}
Expand Up @@ -35,6 +35,7 @@ export const providerData: RhvProviderData = {
password: v2v_rhv_password,
cert: v2v_rhv_cert,
};

// edit rhv provider data
export const incorrectProviderData: RhvProviderData = {
type: providerType.rhv,
Expand All @@ -44,6 +45,7 @@ export const incorrectProviderData: RhvProviderData = {
password: 'mtv@123!',
cert: v2v_rhv_cert,
};

export const networkMappingPeer: MappingPeer[] = [
{
sProvider: 'ovirtmgmt',
Expand Down Expand Up @@ -109,7 +111,7 @@ export const editStorageMapping: MappingData = {
};

export const rhel8Cold: PlanData = {
name: 'testplan-rhv-rhel8-separate-mapping-cold',
name: `testplan-${providerData.name}separate-mapping-cold`,
sProvider: providerData.name,
tProvider: 'host',
namespace: targetNamespace,
Expand Down
1 change: 1 addition & 0 deletions pkg/qe-tests/cypress/integration/tests/Rhv/editPlanTest.ts
Expand Up @@ -12,6 +12,7 @@ describe('Creating plan', () => {
it('Editing an existing plan', () => {
plan.create(testrhel8Cold.planData);
plan.edit(testrhel8Cold.planData, duplicateTestData.planData);
plan.execute(duplicateTestData.planData);
});

it('Deleting plan', () => {
Expand Down
@@ -1,5 +1,5 @@
import { testrhel8Cold } from './config_separate_mapping_rhv';
import { login } from '../../../utils/utils';
import { cleanVms, login } from '../../../utils/utils';
import { providerRhv } from '../../models/providerRhv';
import { RhvProviderData } from '../../types/types';
import { MappingNetwork } from '../../models/mappingNetwork';
Expand Down Expand Up @@ -33,4 +33,13 @@ describe('Creating provider and deleting', () => {
it('Running plan created in a previous tests', () => {
plan.execute(testrhel8Cold.planData);
});

after('Deleting plan, mappings and provider created in a previous tests', () => {
// login(currentTest.loginData);
plan.delete(testrhel8Cold.planData);
networkMapping.delete(testrhel8Cold.planData.networkMappingData);
storageMapping.delete(testrhel8Cold.planData.storageMappingData);
provider.delete(testrhel8Cold.planData.providerData);
cleanVms(testrhel8Cold.planData.vmList, testrhel8Cold.planData.namespace);
});
});
204 changes: 204 additions & 0 deletions pkg/qe-tests/cypress/integration/tests/tier0/tier0_config_rhv.ts
@@ -0,0 +1,204 @@
import {
HookData,
LoginData,
MappingData,
MappingPeer,
PlanData,
RhvProviderData,
TestData,
// HookData,
} from '../../types/types';
import { providerType, storageType } from '../../types/constants';

//Defining URL and credentials for target cluster
const url = Cypress.env('url');
const user_login = 'kubeadmin';
const user_password = Cypress.env('pass');

/**
* Starting RHV section
**/
//Getting required env variables for RHV
const v2v_rhv_providername = Cypress.env('v2v_rhv_providername');
const v2v_rhv_username = Cypress.env('v2v_rhv_username');
const v2v_rhv_password = Cypress.env('v2v_rhv_password');
const v2v_rhv_hostname = Cypress.env('v2v_rhv_hostname');
const v2v_rhv_clustername = Cypress.env('v2v_rhv_clustername');
const v2v_rhv_cert = Cypress.env('v2v_rhv_cert');
const vmListArray = Cypress.env('vm_list');
const preAnsiblePlaybook = Cypress.env('preAnsiblePlaybook');
const postAnsiblePlaybook = Cypress.env('postAnsiblePlaybook');

// Defining data required for login
export const loginData: LoginData = {
username: user_login,
password: user_password,
url: url,
};

//Defining RHV provider
export const rhvProvider: RhvProviderData = {
type: providerType.rhv,
name: v2v_rhv_providername,
hostname: v2v_rhv_hostname,
username: v2v_rhv_username,
password: v2v_rhv_password,
cert: v2v_rhv_cert,
};

//Defining RHV network mapping peers for 2 networks
export const rhvNetworkMappingPeer_2x_network: MappingPeer[] = [
{
sProvider: 'ovirtmgmt',
dProvider: 'Pod network',
},
{
sProvider: 'vm',
dProvider: 'default / mybridge',
},
];

//Defining RHV storage mapping peer for NFS
export const rhvStorageMappingPeer_nfs: MappingPeer[] = [
{
sProvider: 'v2v-fc',
dProvider: storageType.nfs,
},
];

//Defining RHV storage mapping peer for ceph-rbd
export const rhvStorageMappingPeer_ceph: MappingPeer[] = [
{
sProvider: 'v2v-fc',
dProvider: storageType.cephRbd,
},
];

//Defining RHV network mapping using 2 peers
export const rhvNetworkMapping_2x_network: MappingData = {
name: `network-${rhvProvider.name}-mapping`,
sProviderName: rhvProvider.name,
tProviderName: 'host',
mappingPeer: rhvNetworkMappingPeer_2x_network,
};

//Defining RHV storage mapping for ceph-rbd file system
export const rhvStorageMapping_ceph: MappingData = {
name: `storage-ceph-${rhvProvider.name}-mapping`,
sProviderName: rhvProvider.name,
tProviderName: 'host',
mappingPeer: rhvStorageMappingPeer_ceph,
};

//Defining RHV storage mapping for NFS file system
export const rhvStorageMapping_nfs: MappingData = {
name: `storage-nfs-${rhvProvider.name}-mapping`,
sProviderName: rhvProvider.name,
tProviderName: 'host',
mappingPeer: rhvStorageMappingPeer_nfs,
};

export const preHookData: HookData = {
ansiblePlaybook: preAnsiblePlaybook,
};

export const postHookData: HookData = {
ansiblePlaybook: postAnsiblePlaybook,
};

//Defining RHV cold migration plan for ceph-rbd file system
export const rhvTier0Plan_ceph_cold: PlanData = {
name: `rhv-tier0-ceph-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: rhvProvider,
networkMappingData: rhvNetworkMapping_2x_network,
storageMappingData: rhvStorageMapping_ceph,
warmMigration: false,
preHook: preHookData,
postHook: postHookData,
};

//Defining RHV cold migration plan for NFS file system
export const rhvTier0Plan_nfs_cold: PlanData = {
name: `rhv-tier0-nfs-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: rhvProvider,
networkMappingData: rhvNetworkMapping_2x_network,
storageMappingData: rhvStorageMapping_nfs,
warmMigration: false,
};

//Defining RHV warm migration plan for NFS file system
export const rhvTier0Plan_nfs_warm: PlanData = {
name: `rhv-tier0-nfs-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: rhvProvider,
networkMappingData: rhvNetworkMapping_2x_network,
storageMappingData: rhvStorageMapping_nfs,
warmMigration: true,
};

//Defining RHV warm migration plan for ceph-rbd file system
export const rhvTier0Plan_ceph_warm: PlanData = {
name: `rhv-tier0-ceph-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: rhvProvider,
networkMappingData: rhvNetworkMapping_2x_network,
storageMappingData: rhvStorageMapping_ceph,
warmMigration: true,
};

//Defining test for RHV cold migration with ceph-rbd file system
export const rhvTier0TestCephCold: TestData = {
loginData: loginData,
planData: rhvTier0Plan_ceph_cold,
};

//Defining test for RHV cold migration with nfs file system
export const rhvTier0TestNfsCold: TestData = {
loginData: loginData,
planData: rhvTier0Plan_nfs_cold,
};

//Defining test for RHV warm migration with ceph-rbd file system
export const rhvTiesr0TestCephWarm: TestData = {
loginData: loginData,
planData: rhvTier0Plan_ceph_warm,
};

//Defining test for RHV warm migration with nfs file system
export const rhvTier0TestNfsWarm: TestData = {
loginData: loginData,
planData: rhvTier0Plan_nfs_warm,
};

export const rhvTier0TestArray = [
rhvTier0TestCephCold,
rhvTier0TestNfsCold,
rhvTiesr0TestCephWarm,
rhvTier0TestNfsWarm,
];

0 comments on commit 4141385

Please sign in to comment.