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

Added creation and removal of second network and project, used them in tier0 tests #953

Merged
merged 1 commit into from May 17, 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
1 change: 1 addition & 0 deletions pkg/qe-tests/cypress/integration/models/plan.ts
Expand Up @@ -279,6 +279,7 @@ export class Plan {
.closest(trTag)
.within(() => {
cy.get(dataLabel.status).contains(planSuccessMessage, { timeout: 3600 * SEC });
// cy.get('.pf-c-progress__description').contains(planSuccessMessage, { timeout: 3600 * SEC });
});
}

Expand Down
Expand Up @@ -53,7 +53,7 @@ export const networkMappingPeer: MappingPeer[] = [
},
{
sProvider: 'vm',
dProvider: 'default / mybridge',
dProvider: `${targetNamespace} / mybridge`,
},
];

Expand Down
20 changes: 11 additions & 9 deletions pkg/qe-tests/cypress/integration/tests/tier0/tier0_config_rhv.ts
Expand Up @@ -26,8 +26,10 @@ 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 warmVmListArray = Cypress.env('warm_vm_list');
const preAnsiblePlaybook = Cypress.env('preAnsiblePlaybook');
const postAnsiblePlaybook = Cypress.env('postAnsiblePlaybook');
const targetNamespace = 'tier0';

// Defining data required for login
export const loginData: LoginData = {
Expand All @@ -54,7 +56,7 @@ export const rhvNetworkMappingPeer_2x_network: MappingPeer[] = [
},
{
sProvider: 'vm',
dProvider: 'default / mybridge',
dProvider: `${targetNamespace} / mybridge`,
},
];

Expand Down Expand Up @@ -111,7 +113,7 @@ export const rhvTier0Plan_ceph_cold: PlanData = {
name: `rhv-tier0-ceph-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
namespace: targetNamespace,
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
useExistingNetworkMapping: true,
Expand All @@ -129,7 +131,7 @@ export const rhvTier0Plan_nfs_cold: PlanData = {
name: `rhv-tier0-nfs-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
namespace: targetNamespace,
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
useExistingNetworkMapping: true,
Expand All @@ -145,9 +147,9 @@ export const rhvTier0Plan_nfs_warm: PlanData = {
name: `rhv-tier0-nfs-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
namespace: targetNamespace,
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
vmList: warmVmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: rhvProvider,
Expand All @@ -161,9 +163,9 @@ export const rhvTier0Plan_ceph_warm: PlanData = {
name: `rhv-tier0-ceph-${rhvProvider.name}`,
sProvider: rhvProvider.name,
tProvider: 'host',
namespace: 'tier0',
namespace: targetNamespace,
sourceClusterName: v2v_rhv_clustername,
vmList: vmListArray,
vmList: warmVmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: rhvProvider,
Expand Down Expand Up @@ -198,7 +200,7 @@ export const rhvTier0TestNfsWarm: TestData = {

export const rhvTier0TestArray = [
rhvTier0TestCephCold,
rhvTier0TestNfsCold,
// rhvTier0TestNfsCold,
rhvTiesr0TestCephWarm,
rhvTier0TestNfsWarm,
// rhvTier0TestNfsWarm,
];
Expand Up @@ -27,9 +27,10 @@ const vmwareClusterName = Cypress.env('v2v_vmwareClusterName');
const sourceProviderStorage = Cypress.env('v2v_vmwareStorageSource');
const v2v_vmware_vddkImage = Cypress.env('v2v_vmware_vddkImage');
const vmListArray = Cypress.env('vm_list');
const warmVmListArray = Cypress.env('warm_vm_list');
const preAnsiblePlaybook = Cypress.env('preAnsiblePlaybook');
const postAnsiblePlaybook = Cypress.env('postAnsiblePlaybook');
const namespace = 'default';
const namespace = 'tier0';

// Defining data required for login
export const loginData: LoginData = {
Expand All @@ -56,7 +57,7 @@ export const vmwareNetworkMappingPeer_2x_network: MappingPeer[] = [
},
{
sProvider: 'Mgmt Network',
dProvider: 'default / mybridge',
dProvider: `${namespace} / mybridge`,
},
];

Expand Down Expand Up @@ -151,7 +152,7 @@ export const vmwareTier0Plan_nfs_warm: PlanData = {
tProvider: 'host',
namespace: namespace,
sourceClusterName: vmwareClusterName,
vmList: vmListArray,
vmList: warmVmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: vmwareProvider,
Expand All @@ -169,7 +170,7 @@ export const vmwareTier0Plan_ceph_warm: PlanData = {
tProvider: 'host',
namespace: namespace,
sourceClusterName: vmwareClusterName,
vmList: vmListArray,
vmList: warmVmListArray,
useExistingNetworkMapping: true,
useExistingStorageMapping: true,
providerData: vmwareProvider,
Expand Down Expand Up @@ -206,7 +207,7 @@ export const vmwareTier0TestCephWarm: TestData = {

export const vmwareTier0TestArray = [
vmwareTier0TestCephCold,
vmwareTier0TestNfsCold,
// vmwareTier0TestNfsCold,
vmwareTier0TestCephWarm,
vmwareTier0TestNfsWarm,
// vmwareTier0TestNfsWarm,
];
17 changes: 16 additions & 1 deletion pkg/qe-tests/cypress/integration/tests/tier0/tier0_tests_rhv.ts
@@ -1,9 +1,17 @@
import { rhvTier0TestArray } from './tier0_config_rhv';
import { cleanVms, login } from '../../../utils/utils';
import {
cleanVms,
createNamespace,
deleteNamespace,
login,
ocApply,
provisionNetwork,
} from '../../../utils/utils';
import { providerRhv } from '../../models/providerRhv';
import { MappingNetwork } from '../../models/mappingNetwork';
import { MappingStorage } from '../../models/mappingStorage';
import { Plan } from '../../models/plan';
import { secondNetwork } from '../../types/constants';

rhvTier0TestArray.forEach((currentTest) => {
describe(
Expand All @@ -15,6 +23,12 @@ rhvTier0TestArray.forEach((currentTest) => {
const storageMapping = new MappingStorage();
const plan = new Plan();

before(() => {
createNamespace(currentTest.planData.namespace);
provisionNetwork(currentTest.planData.namespace);
// ocApply(secondNetwork, currentTest.planData.namespace);
});

beforeEach(() => {
login(currentTest.loginData);
});
Expand Down Expand Up @@ -42,6 +56,7 @@ rhvTier0TestArray.forEach((currentTest) => {
storageMapping.delete(currentTest.planData.storageMappingData);
provider.delete(currentTest.planData.providerData);
cleanVms(currentTest.planData.vmList, currentTest.planData.namespace);
deleteNamespace(currentTest.planData.namespace);
});
}
);
Expand Down
58 changes: 21 additions & 37 deletions pkg/qe-tests/cypress/integration/tests/tier0/tier0_tests_vmware.ts
@@ -1,10 +1,20 @@
import { ProviderVmware } from '../../models/providerVmware';
import { vmwareTier0TestArray } from './tier0_config_vmware';
import { login } from '../../../utils/utils';
import {
cleanVms,
createNamespace,
deleteNamespace,
login,
ocApply,
preservecookies,
provisionNetwork,
unprovisionNetwork,
} from '../../../utils/utils';
import { MappingNetwork } from '../../models/mappingNetwork';
import { MappingStorage } from '../../models/mappingStorage';
import { Plan } from '../../models/plan';
import { testData } from '../vmware/config_separate_mapping';
import { secondNetwork } from '../../types/constants';

vmwareTier0TestArray.forEach((currentTest) => {
describe(
Expand All @@ -15,7 +25,13 @@ vmwareTier0TestArray.forEach((currentTest) => {
const networkMapping = new MappingNetwork();
const storageMapping = new MappingStorage();
const plan = new Plan();
// vmwareTier0TestArray.forEach((currentTest) => {

before(() => {
createNamespace(currentTest.planData.namespace);
provisionNetwork(currentTest.planData.namespace);
// ocApply(secondNetwork, currentTest.planData.namespace);
});

beforeEach(() => {
login(currentTest.loginData);
});
Expand Down Expand Up @@ -43,42 +59,10 @@ vmwareTier0TestArray.forEach((currentTest) => {
storageMapping.delete(currentTest.planData.storageMappingData);
provider.delete(currentTest.planData.providerData);
const namespace = currentTest.planData.namespace;
const vm_list = currentTest.planData.vmList;
vm_list.forEach((vm) => {
cy.exec(`oc delete vm ${vm} -n${namespace}`);
});
cleanVms(currentTest.planData.vmList, namespace);
unprovisionNetwork(namespace);
deleteNamespace(namespace);
});
}
);
});

describe('Automate cancel and restart of cold migration test', () => {
const sourceProvider = new ProviderVmware();
const networkMapping = new MappingNetwork();
const storageMapping = new MappingStorage();
const plan = new Plan();

beforeEach(() => {
login(testData.loginData);
sourceProvider.create(testData.planData.providerData);
networkMapping.create(testData.planData.networkMappingData);
storageMapping.create(testData.planData.storageMappingData);
plan.create(testData.planData);
});

it('Cancel and restart migration', () => {
plan.cancel_and_restart(testData.planData);
});

afterEach(() => {
plan.delete(testData.planData);
networkMapping.delete(testData.planData.networkMappingData);
storageMapping.delete(testData.planData.storageMappingData);
sourceProvider.delete(testData.planData.providerData);
const namespace = testData.planData.namespace;
const vm_list = testData.planData.vmList;
vm_list.forEach((vm) => {
cy.exec(`oc delete vm ${vm} -n${namespace}`);
});
});
});
11 changes: 11 additions & 0 deletions pkg/qe-tests/cypress/integration/types/constants.ts
Expand Up @@ -46,6 +46,17 @@ export const podNetwork = 'Pod network';
export const differentNetwork = 'Select a different network';
export const incorrectVmwareHostname = '10.8.58.136';
export const incorrectRhvHostname = 'rhev-green-03.rdu2.scalelab.redhat.com';
export const secondNetwork =
'apiVersion: "k8s.cni.cncf.io/v1"\n' +
'kind: NetworkAttachmentDefinition\n' +
'metadata:\n' +
' name: mybridge\n' +
'spec:\n' +
" config: '{\n" +
' "cniVersion": "0.3.1",\n' +
' "type": "cnv-bridge",\n' +
' "bridge": "mybridge"\n' +
" }'";

export enum hooks {
image = 'Custom container image',
Expand Down
42 changes: 42 additions & 0 deletions pkg/qe-tests/cypress/utils/utils.ts
Expand Up @@ -109,3 +109,45 @@ export function cleanVms(vm_list: string[], namespace: string): void {
cy.exec(`oc delete vm ${vm} -n${namespace}`);
});
}

export function preservecookies(): void {
Cypress.Cookies.defaults({
preserve: /SESSION/,
});
}

export function ocApply(yaml, namespace: string): void {
cy.exec(`oc project ${namespace}; cat <<EOF | oc apply -f - \n ${yaml} \nEOF`);
}

export function provisionNetwork(namespace: string): void {
cy.exec(`oc project ${namespace}; sh second_network.sh`, { failOnNonZeroExit: false }).then(
(output) => {
cy.log(output.stdout);
console.log(output.stdout);
}
);
}

export function unprovisionNetwork(namespace: string): void {
cy.exec(`oc project ${namespace}; oc delete net-attach-def mybridge`, {
failOnNonZeroExit: false,
}).then((output) => {
cy.log(output.stdout);
console.log(output.stdout);
});
}

export function createNamespace(name: string): void {
cy.exec(`oc create namespace ${name}`, { failOnNonZeroExit: false }).then((output) => {
cy.log(output.stdout);
console.log(output.stdout);
});
}

export function deleteNamespace(name: string): void {
cy.exec(`oc delete namespace ${name}`, { failOnNonZeroExit: false }).then((output) => {
cy.log(output.stdout);
console.log(output.stdout);
});
}
12 changes: 12 additions & 0 deletions pkg/qe-tests/second_network.sh
@@ -0,0 +1,12 @@
cat <<EOF | oc apply -f -
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: mybridge
spec:
config: '{
"cniVersion": "0.3.1",
"type": "cnv-bridge",
"bridge": "mybridge"
}'
EOF