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

Fixed TIER0 tests for RHV #950

Merged
merged 1 commit into from
Apr 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 13 additions & 0 deletions pkg/qe-tests/cypress/integration/models/providerVmware.ts
Original file line number Diff line number Diff line change
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');
}
}
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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,
];