From e6cec76a807ee89cd17bf402475115ece0745d13 Mon Sep 17 00:00:00 2001 From: hubogee Date: Wed, 10 Jul 2024 17:53:52 +0000 Subject: [PATCH] Restructured testbed folder. Enhanced runDentCi Signed-off-by: hubogee --- CI_Automation/DentCiArgParse.py | 13 ++- CI_Automation/runDentCi.py | 99 ++++++++++++++----- .../hw/sit/basic_agg1/agg1/DHCP | 6 ++ .../hw/sit/basic_agg1/agg1/HOSTNAME | 1 + .../hw/sit/basic_agg1/agg1/HOSTS | 5 + .../hw/sit/basic_agg1/agg1/KEEPALIVED_CONF | 0 .../hw/sit/basic_agg1/agg1/NETWORK_INTERFACES | 16 +++ .../testbed_config/hw/sit/basic_agg1/agg1/NTP | 59 +++++++++++ .../hw/sit/basic_agg1/agg1/QUAGGA_CONFIG | 11 +++ .../hw/sit/basic_agg1/agg1/QUAGGA_DAEMONS | 30 ++++++ .../hw/sit/basic_agg1/agg1/QUAGGA_VTYSH | 3 + .../hw/sit/basic_agg1/agg1/RESOLV | 1 + .../hw/sit/basic_agg1/agg1/SSHD_CONF | 88 +++++++++++++++++ .../hw/sit/basic_agg1/testbed.json | 60 +++++++++++ .../hw/sit/basic_agg2/agg2/DHCP | 6 ++ .../hw/sit/basic_agg2/agg2/HOSTNAME | 1 + .../hw/sit/basic_agg2/agg2/HOSTS | 5 + .../hw/sit/basic_agg2/agg2/KEEPALIVED_CONF | 0 .../hw/sit/basic_agg2/agg2/NETWORK_INTERFACES | 16 +++ .../testbed_config/hw/sit/basic_agg2/agg2/NTP | 59 +++++++++++ .../hw/sit/basic_agg2/agg2/QUAGGA_CONFIG | 11 +++ .../hw/sit/basic_agg2/agg2/QUAGGA_DAEMONS | 30 ++++++ .../hw/sit/basic_agg2/agg2/QUAGGA_VTYSH | 3 + .../hw/sit/basic_agg2/agg2/RESOLV | 1 + .../hw/sit/basic_agg2/agg2/SSHD_CONF | 88 +++++++++++++++++ .../hw/sit/basic_agg2/testbed.json | 60 +++++++++++ .../hw/sit/basic_dist1/dist1/DHCP | 6 ++ .../hw/sit/basic_dist1/dist1/HOSTNAME | 1 + .../hw/sit/basic_dist1/dist1/HOSTS | 5 + .../hw/sit/basic_dist1/dist1/KEEPALIVED_CONF | 0 .../sit/basic_dist1/dist1/NETWORK_INTERFACES | 16 +++ .../hw/sit/basic_dist1/dist1/NTP | 59 +++++++++++ .../hw/sit/basic_dist1/dist1/QUAGGA_CONFIG | 11 +++ .../hw/sit/basic_dist1/dist1/QUAGGA_DAEMONS | 30 ++++++ .../hw/sit/basic_dist1/dist1/QUAGGA_VTYSH | 3 + .../hw/sit/basic_dist1/dist1/RESOLV | 1 + .../hw/sit/basic_dist1/dist1/SSHD_CONF | 88 +++++++++++++++++ .../hw/sit/basic_dist1/testbed.json | 60 +++++++++++ .../hw/sit/basic_infra1/infra1/DHCP | 6 ++ .../hw/sit/basic_infra1/infra1/HOSTNAME | 1 + .../hw/sit/basic_infra1/infra1/HOSTS | 5 + .../sit/basic_infra1/infra1/KEEPALIVED_CONF | 0 .../basic_infra1/infra1/NETWORK_INTERFACES | 16 +++ .../hw/sit/basic_infra1/infra1/NTP | 59 +++++++++++ .../hw/sit/basic_infra1/infra1/QUAGGA_CONFIG | 11 +++ .../hw/sit/basic_infra1/infra1/QUAGGA_DAEMONS | 30 ++++++ .../hw/sit/basic_infra1/infra1/QUAGGA_VTYSH | 3 + .../hw/sit/basic_infra1/infra1/RESOLV | 1 + .../hw/sit/basic_infra1/infra1/SSHD_CONF | 88 +++++++++++++++++ .../hw/sit/basic_infra1/testbed.json | 59 +++++++++++ .../hw/sit/basic_infra1/testbed_dentvm.json | 45 +++++++++ .../hw/sit/basic_infra1/testbed_vm.json | 48 +++++++++ .../hw/sit/basic_infra2/infra2/DHCP | 6 ++ .../hw/sit/basic_infra2/infra2/HOSTNAME | 1 + .../hw/sit/basic_infra2/infra2/HOSTS | 5 + .../sit/basic_infra2/infra2/KEEPALIVED_CONF | 0 .../basic_infra2/infra2/NETWORK_INTERFACES | 16 +++ .../hw/sit/basic_infra2/infra2/NTP | 59 +++++++++++ .../hw/sit/basic_infra2/infra2/QUAGGA_CONFIG | 11 +++ .../hw/sit/basic_infra2/infra2/QUAGGA_DAEMONS | 30 ++++++ .../hw/sit/basic_infra2/infra2/QUAGGA_VTYSH | 3 + .../hw/sit/basic_infra2/infra2/RESOLV | 1 + .../hw/sit/basic_infra2/infra2/SSHD_CONF | 88 +++++++++++++++++ .../hw/sit/basic_infra2/testbed.json | 60 +++++++++++ .../vlan/test_vlan_increment_mac.py | 3 +- docs/CI_Automation/README.md | 14 +-- 66 files changed, 1582 insertions(+), 39 deletions(-) create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/DHCP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTNAME create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/KEEPALIVED_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NETWORK_INTERFACES create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NTP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_CONFIG create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_DAEMONS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_VTYSH create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/RESOLV create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/SSHD_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/testbed.json create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/DHCP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTNAME create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/KEEPALIVED_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NETWORK_INTERFACES create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NTP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_CONFIG create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_DAEMONS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_VTYSH create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/RESOLV create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/SSHD_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/testbed.json create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/DHCP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTNAME create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/KEEPALIVED_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NETWORK_INTERFACES create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NTP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_CONFIG create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_DAEMONS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_VTYSH create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/RESOLV create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/SSHD_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/testbed.json create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/DHCP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTNAME create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/KEEPALIVED_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NETWORK_INTERFACES create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NTP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_CONFIG create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_DAEMONS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_VTYSH create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/RESOLV create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/SSHD_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed.json create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_dentvm.json create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_vm.json create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/DHCP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTNAME create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/KEEPALIVED_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NETWORK_INTERFACES create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NTP create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_CONFIG create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_DAEMONS create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_VTYSH create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/RESOLV create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/SSHD_CONF create mode 100644 DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/testbed.json diff --git a/CI_Automation/DentCiArgParse.py b/CI_Automation/DentCiArgParse.py index 94e23bbda..1caabeac3 100644 --- a/CI_Automation/DentCiArgParse.py +++ b/CI_Automation/DentCiArgParse.py @@ -3,6 +3,7 @@ import argparse import Utilities import globalSettings +from re import search timestamp = Utilities.getTimestamp(includeMillisecond=True).replace(':', '-') @@ -47,6 +48,7 @@ def parse(self): else: self.ciVars.testId = timestamp + self.ciVars.cmdLine: str = ' '.join(sys.argv) self.ciVars.timestamp: str = timestamp self.ciVars.testSessionFolder: str = f'{globalSettings.dentTestResultsFolder}/{self.ciVars.testId}' self.ciVars.testSessionLogsFolder: str = f'{self.ciVars.testSessionFolder}/CI_Logs' @@ -58,14 +60,17 @@ def parse(self): self.ciVars.reportFile: str = f'{self.ciVars.testSessionFolder}/ciTestReport' if args.testSuites is None: - sys.exit(1, '-testSuites parameter is required with test suites to use for testing') + sys.exit('-testSuites parameter is required with test suites to use for testing') else: # Verify for user defined testSuites existence for eachTestSuite in args.testSuites: testSuite = eachTestSuite.replace('.yml', '') - testSuiteFile = f'{self.ciVars.testSuiteFolder}/{testSuite}.yml' - if os.path.exists(testSuiteFile) is False: - Utilities.sysExit(self.ciVars, f'No such test suite name found: {eachTestSuite}') + regexMatch = search('.*((hw|vm)/.*)', testSuite) + if regexMatch: + testSuite = regexMatch.group(1) + testSuiteFile = f'{self.ciVars.testSuiteFolder}/{testSuite}.yml' + else: + testSuiteFile = f'{self.ciVars.testSuiteFolder}/{testSuite}.yml' self.ciVars.testSuites.append(testSuiteFile) diff --git a/CI_Automation/runDentCi.py b/CI_Automation/runDentCi.py index 2fef238f5..4a7bd88e3 100755 --- a/CI_Automation/runDentCi.py +++ b/CI_Automation/runDentCi.py @@ -1,6 +1,8 @@ #!/usr/bin/python3 """ +version = v10 + Dent CI Automation Framework Automating the following stages: @@ -75,6 +77,8 @@ class CiVars: # Stage 3 runTest: bool = True # requires cloneTestRepo for testbed configs + cmdLine: str = '' + # The test ID timestamp (without the appended testName) timestamp: str = '' # The follows are set in DentCiArgParse.py @@ -155,6 +159,9 @@ class CiVars: class DentCI: def __init__(self, ciVars): self.ciVars = ciVars + self.stage1Result = None + self.stage2Result = None + self.stage3Result = None self.ciVars.testIdTestingBranch = f'{self.ciVars.testBranchFolder}/{self.ciVars.testId}' @@ -176,6 +183,7 @@ def __init__(self, ciVars): self.removeDockerStaleImages() self.testMgmtData = {'pid': self.ciVars.pid, + 'cmdLine': self.ciVars.cmdLine, 'testId': self.ciVars.testId, 'testName': self.ciVars.testName, 'startTime': datetime.now().strftime('%m-%d-%Y %H:%M:%S:%f'), @@ -229,6 +237,8 @@ def __init__(self, ciVars): self.ciVars.sessionLog.info(f'Testing repo: {self.ciVars.repo}') self.ciVars.sessionLog.info(f'Install branchName: {self.ciVars.branchName}') + self.verifyTestSuites() + # Wait at this point until the CI system is enabled self.isCiSystemEnabled() @@ -270,6 +280,13 @@ def __init__(self, ciVars): self.createDockerImageTag() self.lockTestbeds() + def verifyTestSuites(self): + # Verify for user defined testSuite + for eachTestSuiteFile in self.ciVars.testSuites: + if os.path.exists(eachTestSuiteFile) is False: + self.ciVars.sessionLog.error(f'No such test suite: {eachTestSuiteFile}') + sys.exit(1) + def createDockerImageTag(self): """ Create a docker image tag for each test @@ -359,6 +376,12 @@ def isTestIdTestBranchExists(self, stage=None): """ Verify if the testing branch successfully got cloned """ + # Show the cloned test branch in the testIdTestingBranch directory for visibility and confirmation + self.ciVars.sessionLog.info(f'isTestIdTestBranchExists: Looking for testID: {self.ciVars.testId}') + output = Utilities.runLinuxCmd('ls -l', cwd=self.ciVars.testBranchFolder) + for line in output: + self.ciVars.sessionLog.info(line.strip()) + if os.path.exists(self.ciVars.testIdTestingBranch) is False: errorMsg = f'Stage={stage}: Is cloneTestBranch == True? The testID test branch does not exists: {self.ciVars.testIdTestingBranch}.' self.ciVars.sessionLog.error(errorMsg) @@ -415,7 +438,7 @@ def parseForTestbeds(self, configFullPath): Get all testbeds from test suites "config" parameter """ if os.path.exists(configFullPath) is False: - print(f'Test Suite config does not exists: {configFullPath}') + self.ciVars.sessionLog.error(f'Test Suite config does not exists: {configFullPath}') Utilities.runDentCiTearDown(ciVars, f'Test Suite file has an incorrect "config" path: {configFullPath}') testbedContents = Utilities.readJson(configFullPath) @@ -514,6 +537,7 @@ def cloneTestRepo(self): and name it the testId """ if self.ciVars.cloneTestRepo is False: + self.stage1Result = 'failed' return self.isGitCloneSafeToRun() @@ -530,9 +554,10 @@ def cloneTestRepo(self): self.testbedMgmtObj.unlockTestbeds() Utilities.closeTestMgmtStatus(overallSummaryFile=self.ciVars.overallSummaryFile, status='aborted', result='failed', threadLock=self.ciVars.lock) - Utilities.runDentCiTearDown(self.ciVars, 'Clone Dent test repo failed') + Utilities.runDentCiTearDown(self.ciVars, 'Cloning Dent test repo failed') + self.stage1Result = 'failed' - if result: + if self.stage1Result != 'failed' and result: # Parse out all testbeds from test suite files and from the cloned repo for testSuite in self.ciVars.testSuites: contents = Utilities.readYaml(testSuite) @@ -556,30 +581,35 @@ def cloneTestRepo(self): status='aborted', result='failed', threadLock=self.ciVars.lock) # This will unlocktestbed, remove testId test branch, create jenkinsCI result path Utilities.runDentCiTearDown(self.ciVars, 'Clone Dent test repo failed on clone verification') + self.stage1Result = 'failed' self.verifyIxNetworkVMFunctionality() + self.stage1Result = 'passed' def downloadBuilds(self): """ STAGE 1: Download Dent build image to tftp server /srv/tftp """ if self.ciVars.downloadNewBuilds is False: + self.stage1Result = 'failed' return downloadBuildsResults = downloadBuilds(self.ciVars) if downloadBuildsResults is False: + self.stage1Result = 'failed' self.testbedMgmtObj.unlockTestbeds() Utilities.runDentCiTearDown(self.ciVars, 'Download builds failed') + else: + if self.stage1Result != 'failed': + self.stage1Result = 'passed' - def installDentOS(self): + def installDentOS(self, stage='installDentOS'): """ STAGE 2: Install build on Dent """ - if self.ciVars.installDentOS is False: + if self.stage1Result == 'failed' or self.ciVars.installDentOS is False: return - stage = 'installDentOS' - # Requires pulling the branch for testbed configs self.isTestIdTestBranchExists(stage=stage) updateDentResult = updateDent(self.ciVars) @@ -589,24 +619,31 @@ def installDentOS(self): Utilities.runLinuxCmd(f'rm -rf {self.ciVars.downloadToServerFolder}') if updateDentResult is False: + self.stage2Result = 'failed' Utilities.closeTestMgmtStatus(overallSummaryFile=self.ciVars.overallSummaryFile, status='aborted', result='failed', threadLock=self.ciVars.lock) Utilities.runDentCiTearDown(self.ciVars, 'failed') - - self.ciVars.sessionLog.info(f'{stage}: passed') + else: + if self.stage2Result != 'failed': + self.stage2Result = 'passed' + self.ciVars.sessionLog.info(f'{stage}: passed') def deployIxNetwork(self, forceBringUp=False): """ STAGE 2: Deploy IxNetwork """ - if self.ciVars.deployIxNetwork is False and forceBringUp is False: + if self.stage1Result != 'failed' and self.ciVars.deployIxNetwork is False and forceBringUp is False: return deployIxNetworkResult = deployIxNetworkInit(ciVars=self.ciVars) if deployIxNetworkResult is False: + self.stage2Result = 'failed' Utilities.closeTestMgmtStatus(overallSummaryFile=self.ciVars.overallSummaryFile, status='aborted', result='failed', threadLock=self.ciVars.lock) Utilities.runDentCiTearDown(self.ciVars, 'failed') + else: + if self.stage2Result != 'failed': + self.stage2Result = 'passed' # Enable back the CI system for other test to run if os.path.exists(f'{globalSettings.dentCiMgmtPath}/{globalSettings.disableSystemFilename}'): @@ -618,26 +655,28 @@ def deployDentTestContainers(self): """ STAGE 2: Deploy test containers """ - if self.ciVars.deployDentTestContainers is False: + if self.stage2Result != 'failed' or self.ciVars.deployDentTestContainers is False: return dentContainerObj = DeployTestContainers(self.ciVars.testContainersLogFile, self.ciVars) result = dentContainerObj.removeAndBuild() if result is False: + self.stage2Result = 'failed' Utilities.closeTestMgmtStatus(overallSummaryFile=self.ciVars.overallSummaryFile, status='aborted', result='failed', threadLock=self.ciVars.lock) Utilities.runDentCiTearDown(self.ciVars, 'failed') + else: + if self.stage2Result != 'failed': + self.stage2Result = 'passed' - def runTest(self): + def runTest(self, stage='runTest'): """ STAGE 3: Run test """ - if self.ciVars.runTest is False: + if self.stage2Result != 'failed' or self.ciVars.runTest is False: return - stage = 'runTest' - # Verify if test branch exists self.isTestIdTestBranchExists(stage=stage) @@ -684,23 +723,29 @@ def runTest(self): Utilities.runThreads(ciVars, threads) # Stage 2 - threads = [] - if ciVars.installDentOS: - ci.installDentOS() - # threads.append(Thread(target=ci.installDentOS, name='installDentOS')) + if ci.stage1Result == 'passed': + threads = [] + if ciVars.installDentOS: + ci.installDentOS() + # threads.append(Thread(target=ci.installDentOS, name='installDentOS')) - if ciVars.deployIxNetwork: - threads.append(Thread(target=ci.deployIxNetwork, name='deployIxNetwork')) + if ciVars.deployIxNetwork: + threads.append(Thread(target=ci.deployIxNetwork, name='deployIxNetwork')) - if ciVars.deployDentTestContainers: - threads.append(Thread(target=ci.deployDentTestContainers, name='deployDentTestContainers')) + if ciVars.deployDentTestContainers: + threads.append(Thread(target=ci.deployDentTestContainers, name='deployDentTestContainers')) - if threads: - Utilities.runThreads(ciVars, threads) + if threads: + Utilities.runThreads(ciVars, threads) + else: + raise Exception('Stage 1 failed. Aborting test.') # Stage 3 - if ciVars.runTest: - ci.runTest() + if ci.stage2Result == 'passed': + if ciVars.runTest: + ci.runTest() + else: + raise Exception('Stage 2 failed. Aborting test.') # If in dev mode, it might not call runDentCiTearDown. # So call it to unlocktestbed diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/DHCP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/DHCP new file mode 100644 index 000000000..299a0abed --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/DHCP @@ -0,0 +1,6 @@ +# +# ISC dhcpd configuration +# + + +option domain-name "dentlab-agg1"; diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTNAME b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTNAME new file mode 100644 index 000000000..120609193 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTNAME @@ -0,0 +1 @@ +dentlab-agg1 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTS new file mode 100644 index 000000000..4eb7373c1 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/HOSTS @@ -0,0 +1,5 @@ +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +127.0.1.1 dentlab-agg1 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/KEEPALIVED_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/KEEPALIVED_CONF new file mode 100644 index 000000000..e69de29bb diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NETWORK_INTERFACES b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NETWORK_INTERFACES new file mode 100644 index 000000000..503accc61 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NETWORK_INTERFACES @@ -0,0 +1,16 @@ +# +# ONL format of dent interfaces +# +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/*.intf + +# The loopback network interface +auto lo +iface lo inet loopback + address 20.20.0.1/32 + +# The management interface +auto ma1 +iface ma1 inet dhcp diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NTP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NTP new file mode 100644 index 000000000..a1d5f18ff --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/NTP @@ -0,0 +1,59 @@ +# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help + + +driftfile /var/lib/ntp/ntp.drift + + +# Enable this if you want statistics to be logged. +#statsdir /var/log/ntpstats/ + +statistics loopstats peerstats clockstats +filegen loopstats file loopstats type day enable +filegen peerstats file peerstats type day enable +filegen clockstats file clockstats type day enable + + +# You do need to talk to an NTP server or two (or three). +#server ntp.your-provider.example + + +# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will +# pick a different set every time it starts up. Please consider joining the +# pool: +# + +# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for +# details. The web page +# might also be helpful. +# +# Note that "restrict" applies to both servers and clients, so a configuration +# that might be intended to block requests from certain clients could also end +# up blocking replies from your own upstream servers. + +# By default, exchange time with everybody, but don't allow configuration. +restrict -4 default kod notrap nomodify nopeer noquery +restrict -6 default kod notrap nomodify nopeer noquery + +# Local users may interrogate the ntp server more closely. +restrict 127.0.0.1 +restrict ::1 + +# Clients from this (example!) subnet have unlimited access, but only if +# cryptographically authenticated. +#restrict 192.168.123.0 mask 255.255.255.0 notrust + + +# If you want to provide time to your local subnet, change the next line. +# (Again, the address is an example only.) +#broadcast 192.168.123.255 + +# If you want to listen to time broadcasts on your local subnet, de-comment the +# next lines. Please do this only if you trust everybody on the network! +#disable auth +#broadcastclient + +# Specify interfaces, don't listen on switch ports +#interface listen ma1 +interface listen lo +interface listen lo:0 +interface listen dummy0 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_CONFIG b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_CONFIG new file mode 100644 index 000000000..da730d8f1 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_CONFIG @@ -0,0 +1,11 @@ +username cumulus nopassword +! +service integrated-vtysh-config +! +log timestamp precision 6 +! +no zebra nexthop kernel enable +! +line vty +! +end diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_DAEMONS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_DAEMONS new file mode 100644 index 000000000..cff453039 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_DAEMONS @@ -0,0 +1,30 @@ +# This file tells the quagga package which daemons to start. +# +# Entries are in the format: =(yes|no|priority) +# 0, "no" = disabled +# 1, "yes" = highest priority +# 2 .. 10 = lower priorities +# Read /usr/share/doc/quagga/README.Debian for details. +# +# Sample configurations for these daemons can be found in +# /usr/share/doc/quagga/examples/. +# +# ATTENTION: +# +# When activation a daemon at the first time, a config file, even if it is +# empty, has to be present *and* be owned by the user and group "quagga", else +# the daemon will not be started by /etc/init.d/quagga. The permissions should +# be u=rw,g=r,o=. +# When using "vtysh" such a config file is also needed. It should be owned by +# group "quaggavty" and set to ug=rw,o= though. Check /etc/pam.d/quagga, too. +# +# The watchquagga daemon is always started. Per default in monitoring-only but +# that can be changed via /etc/quagga/debian.conf. +# +zebra=yes +bgpd=yes +ospfd=no +ospf6d=no +ripd=no +ripngd=no +isisd=no diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_VTYSH b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_VTYSH new file mode 100644 index 000000000..f7114f4b9 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/QUAGGA_VTYSH @@ -0,0 +1,3 @@ +username cumulus nopassword +! +service integrated-vtysh-config diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/RESOLV b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/RESOLV new file mode 100644 index 000000000..cae093a83 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/RESOLV @@ -0,0 +1 @@ +nameserver 8.8.8.8 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/SSHD_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/SSHD_CONF new file mode 100644 index 000000000..e9506ff64 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/agg1/SSHD_CONF @@ -0,0 +1,88 @@ +# Package generated configuration file +# See the sshd_config(5) manpage for details + +# What ports, IPs and protocols we listen for +Port 22 +# Use these options to restrict which interfaces/protocols sshd will bind to +#ListenAddress :: +ListenAddress 0.0.0.0 +Protocol 2 +# HostKeys for protocol version 2 +HostKey /etc/ssh/ssh_host_rsa_key +HostKey /etc/ssh/ssh_host_dsa_key +HostKey /etc/ssh/ssh_host_ecdsa_key +HostKey /etc/ssh/ssh_host_ed25519_key +#Privilege Separation is turned on for security +UsePrivilegeSeparation yes + +# Lifetime and size of ephemeral version 1 server key +KeyRegenerationInterval 3600 +ServerKeyBits 1024 + +# Logging +SyslogFacility AUTH +LogLevel INFO + +# Authentication: +LoginGraceTime 120 +PermitRootLogin yes +StrictModes yes + +RSAAuthentication yes +PubkeyAuthentication yes +#AuthorizedKeysFile %h/.ssh/authorized_keys + +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes +# For this to work you will also need host keys in /etc/ssh_known_hosts +RhostsRSAAuthentication no +# similar for protocol version 2 +HostbasedAuthentication no +# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication +#IgnoreUserKnownHosts yes + +# To enable empty passwords, change to yes (NOT RECOMMENDED) +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +# Change to no to disable tunnelled clear text passwords +PasswordAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosGetAFSToken no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +X11Forwarding yes +X11DisplayOffset 10 +PrintMotd no +PrintLastLog yes +TCPKeepAlive yes +#UseLogin no + +#MaxStartups 10:30:60 +#Banner /etc/issue.net + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +Subsystem sftp /usr/lib/openssh/sftp-server + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/testbed.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/testbed.json new file mode 100644 index 000000000..c7fb7d70b --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/testbed.json @@ -0,0 +1,60 @@ +{ + "devices": [ + { + "friendlyName":"Dent agg1", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "agg1", + "model": "arm64-accton-as5114-48x-r0", + "ip": "10.36.118.44", + "login":{ + "userName":"root", + "password":"onl" + }, + "cpuArchitecture": "arm", + "macAddress": "34:EF:B6:EC:38:02", + "serialConsole": { + "ip": "10.36.118.200", + "port": 7005 + }, + "pdu": { + "ip": "10.36.118.201", + "login": "dent", + "password": "dent123!", + "number": 5 + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ["swp5", "agg1:swp6"], + ["swp7", "agg1:swp8"], + ["swp9", "agg1:swp10"] + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "Novus10G", + "ip": "10.36.118.111", + "login":{ + "userName":"admin", + "password":"admin" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"mixed", + "links" : [ + ["10.36.118.199:1:5", "agg1:swp1", "fiber"], + ["10.36.118.199:1:6", "agg1:swp2", "fiber"], + ["10.36.118.199:1:7", "agg1:swp3", "fiber"], + ["10.36.118.199:1:8", "agg1:swp4", "fiber"] + ] + } + ], + "operator" : "dent", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/DHCP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/DHCP new file mode 100644 index 000000000..db660246e --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/DHCP @@ -0,0 +1,6 @@ +# +# ISC dhcpd configuration +# + + +option domain-name "dentlab-agg2"; diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTNAME b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTNAME new file mode 100644 index 000000000..d2a1e700b --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTNAME @@ -0,0 +1 @@ +dentlab-agg2 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTS new file mode 100644 index 000000000..5b2c86186 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/HOSTS @@ -0,0 +1,5 @@ +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +127.0.1.1 dentlab-agg2 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/KEEPALIVED_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/KEEPALIVED_CONF new file mode 100644 index 000000000..e69de29bb diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NETWORK_INTERFACES b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NETWORK_INTERFACES new file mode 100644 index 000000000..503accc61 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NETWORK_INTERFACES @@ -0,0 +1,16 @@ +# +# ONL format of dent interfaces +# +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/*.intf + +# The loopback network interface +auto lo +iface lo inet loopback + address 20.20.0.1/32 + +# The management interface +auto ma1 +iface ma1 inet dhcp diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NTP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NTP new file mode 100644 index 000000000..a1d5f18ff --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/NTP @@ -0,0 +1,59 @@ +# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help + + +driftfile /var/lib/ntp/ntp.drift + + +# Enable this if you want statistics to be logged. +#statsdir /var/log/ntpstats/ + +statistics loopstats peerstats clockstats +filegen loopstats file loopstats type day enable +filegen peerstats file peerstats type day enable +filegen clockstats file clockstats type day enable + + +# You do need to talk to an NTP server or two (or three). +#server ntp.your-provider.example + + +# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will +# pick a different set every time it starts up. Please consider joining the +# pool: +# + +# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for +# details. The web page +# might also be helpful. +# +# Note that "restrict" applies to both servers and clients, so a configuration +# that might be intended to block requests from certain clients could also end +# up blocking replies from your own upstream servers. + +# By default, exchange time with everybody, but don't allow configuration. +restrict -4 default kod notrap nomodify nopeer noquery +restrict -6 default kod notrap nomodify nopeer noquery + +# Local users may interrogate the ntp server more closely. +restrict 127.0.0.1 +restrict ::1 + +# Clients from this (example!) subnet have unlimited access, but only if +# cryptographically authenticated. +#restrict 192.168.123.0 mask 255.255.255.0 notrust + + +# If you want to provide time to your local subnet, change the next line. +# (Again, the address is an example only.) +#broadcast 192.168.123.255 + +# If you want to listen to time broadcasts on your local subnet, de-comment the +# next lines. Please do this only if you trust everybody on the network! +#disable auth +#broadcastclient + +# Specify interfaces, don't listen on switch ports +#interface listen ma1 +interface listen lo +interface listen lo:0 +interface listen dummy0 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_CONFIG b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_CONFIG new file mode 100644 index 000000000..da730d8f1 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_CONFIG @@ -0,0 +1,11 @@ +username cumulus nopassword +! +service integrated-vtysh-config +! +log timestamp precision 6 +! +no zebra nexthop kernel enable +! +line vty +! +end diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_DAEMONS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_DAEMONS new file mode 100644 index 000000000..cff453039 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_DAEMONS @@ -0,0 +1,30 @@ +# This file tells the quagga package which daemons to start. +# +# Entries are in the format: =(yes|no|priority) +# 0, "no" = disabled +# 1, "yes" = highest priority +# 2 .. 10 = lower priorities +# Read /usr/share/doc/quagga/README.Debian for details. +# +# Sample configurations for these daemons can be found in +# /usr/share/doc/quagga/examples/. +# +# ATTENTION: +# +# When activation a daemon at the first time, a config file, even if it is +# empty, has to be present *and* be owned by the user and group "quagga", else +# the daemon will not be started by /etc/init.d/quagga. The permissions should +# be u=rw,g=r,o=. +# When using "vtysh" such a config file is also needed. It should be owned by +# group "quaggavty" and set to ug=rw,o= though. Check /etc/pam.d/quagga, too. +# +# The watchquagga daemon is always started. Per default in monitoring-only but +# that can be changed via /etc/quagga/debian.conf. +# +zebra=yes +bgpd=yes +ospfd=no +ospf6d=no +ripd=no +ripngd=no +isisd=no diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_VTYSH b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_VTYSH new file mode 100644 index 000000000..f7114f4b9 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/QUAGGA_VTYSH @@ -0,0 +1,3 @@ +username cumulus nopassword +! +service integrated-vtysh-config diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/RESOLV b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/RESOLV new file mode 100644 index 000000000..cae093a83 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/RESOLV @@ -0,0 +1 @@ +nameserver 8.8.8.8 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/SSHD_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/SSHD_CONF new file mode 100644 index 000000000..e9506ff64 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/agg2/SSHD_CONF @@ -0,0 +1,88 @@ +# Package generated configuration file +# See the sshd_config(5) manpage for details + +# What ports, IPs and protocols we listen for +Port 22 +# Use these options to restrict which interfaces/protocols sshd will bind to +#ListenAddress :: +ListenAddress 0.0.0.0 +Protocol 2 +# HostKeys for protocol version 2 +HostKey /etc/ssh/ssh_host_rsa_key +HostKey /etc/ssh/ssh_host_dsa_key +HostKey /etc/ssh/ssh_host_ecdsa_key +HostKey /etc/ssh/ssh_host_ed25519_key +#Privilege Separation is turned on for security +UsePrivilegeSeparation yes + +# Lifetime and size of ephemeral version 1 server key +KeyRegenerationInterval 3600 +ServerKeyBits 1024 + +# Logging +SyslogFacility AUTH +LogLevel INFO + +# Authentication: +LoginGraceTime 120 +PermitRootLogin yes +StrictModes yes + +RSAAuthentication yes +PubkeyAuthentication yes +#AuthorizedKeysFile %h/.ssh/authorized_keys + +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes +# For this to work you will also need host keys in /etc/ssh_known_hosts +RhostsRSAAuthentication no +# similar for protocol version 2 +HostbasedAuthentication no +# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication +#IgnoreUserKnownHosts yes + +# To enable empty passwords, change to yes (NOT RECOMMENDED) +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +# Change to no to disable tunnelled clear text passwords +PasswordAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosGetAFSToken no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +X11Forwarding yes +X11DisplayOffset 10 +PrintMotd no +PrintLastLog yes +TCPKeepAlive yes +#UseLogin no + +#MaxStartups 10:30:60 +#Banner /etc/issue.net + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +Subsystem sftp /usr/lib/openssh/sftp-server + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/testbed.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/testbed.json new file mode 100644 index 000000000..dddef3b00 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/testbed.json @@ -0,0 +1,60 @@ +{ + "devices": [ + { + "friendlyName":"Dent agg2", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "agg2", + "model": "arm64-accton-as5114-48x-r0", + "ip": "10.36.118.41", + "login":{ + "userName":"root", + "password":"onl" + }, + "cpuArchitecture": "arm", + "macAddress": "34:EF:B6:EC:2A:4C", + "serialConsole": { + "ip": "10.36.118.200", + "port": 7008 + }, + "pdu": { + "ip": "10.36.118.201", + "login": "dent", + "password": "dent123!", + "number": 8 + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ["swp5", "agg2:swp6"], + ["swp7", "agg2:swp8"], + ["swp9", "agg2:swp10"] + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "Novus10G", + "ip": "10.36.118.111", + "login":{ + "userName":"admin", + "password":"admin" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"mixed", + "links" : [ + ["10.36.118.199:1:9", "agg2:swp1", "fiber"], + ["10.36.118.199:1:10", "agg2:swp2", "fiber"], + ["10.36.118.199:1:11", "agg2:swp3", "fiber"], + ["10.36.118.199:1:12", "agg2:swp4", "fiber"] + ] + } + ], + "operator" : "dent", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/DHCP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/DHCP new file mode 100644 index 000000000..be679c39b --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/DHCP @@ -0,0 +1,6 @@ +# +# ISC dhcpd configuration +# + + +option domain-name "dentlab-dist1"; diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTNAME b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTNAME new file mode 100644 index 000000000..337e5d21e --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTNAME @@ -0,0 +1 @@ +dentlab-dist1 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTS new file mode 100644 index 000000000..a1a37aa65 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/HOSTS @@ -0,0 +1,5 @@ +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +127.0.1.1 dentlab-dist1 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/KEEPALIVED_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/KEEPALIVED_CONF new file mode 100644 index 000000000..e69de29bb diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NETWORK_INTERFACES b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NETWORK_INTERFACES new file mode 100644 index 000000000..503accc61 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NETWORK_INTERFACES @@ -0,0 +1,16 @@ +# +# ONL format of dent interfaces +# +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/*.intf + +# The loopback network interface +auto lo +iface lo inet loopback + address 20.20.0.1/32 + +# The management interface +auto ma1 +iface ma1 inet dhcp diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NTP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NTP new file mode 100644 index 000000000..a1d5f18ff --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/NTP @@ -0,0 +1,59 @@ +# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help + + +driftfile /var/lib/ntp/ntp.drift + + +# Enable this if you want statistics to be logged. +#statsdir /var/log/ntpstats/ + +statistics loopstats peerstats clockstats +filegen loopstats file loopstats type day enable +filegen peerstats file peerstats type day enable +filegen clockstats file clockstats type day enable + + +# You do need to talk to an NTP server or two (or three). +#server ntp.your-provider.example + + +# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will +# pick a different set every time it starts up. Please consider joining the +# pool: +# + +# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for +# details. The web page +# might also be helpful. +# +# Note that "restrict" applies to both servers and clients, so a configuration +# that might be intended to block requests from certain clients could also end +# up blocking replies from your own upstream servers. + +# By default, exchange time with everybody, but don't allow configuration. +restrict -4 default kod notrap nomodify nopeer noquery +restrict -6 default kod notrap nomodify nopeer noquery + +# Local users may interrogate the ntp server more closely. +restrict 127.0.0.1 +restrict ::1 + +# Clients from this (example!) subnet have unlimited access, but only if +# cryptographically authenticated. +#restrict 192.168.123.0 mask 255.255.255.0 notrust + + +# If you want to provide time to your local subnet, change the next line. +# (Again, the address is an example only.) +#broadcast 192.168.123.255 + +# If you want to listen to time broadcasts on your local subnet, de-comment the +# next lines. Please do this only if you trust everybody on the network! +#disable auth +#broadcastclient + +# Specify interfaces, don't listen on switch ports +#interface listen ma1 +interface listen lo +interface listen lo:0 +interface listen dummy0 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_CONFIG b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_CONFIG new file mode 100644 index 000000000..da730d8f1 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_CONFIG @@ -0,0 +1,11 @@ +username cumulus nopassword +! +service integrated-vtysh-config +! +log timestamp precision 6 +! +no zebra nexthop kernel enable +! +line vty +! +end diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_DAEMONS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_DAEMONS new file mode 100644 index 000000000..cff453039 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_DAEMONS @@ -0,0 +1,30 @@ +# This file tells the quagga package which daemons to start. +# +# Entries are in the format: =(yes|no|priority) +# 0, "no" = disabled +# 1, "yes" = highest priority +# 2 .. 10 = lower priorities +# Read /usr/share/doc/quagga/README.Debian for details. +# +# Sample configurations for these daemons can be found in +# /usr/share/doc/quagga/examples/. +# +# ATTENTION: +# +# When activation a daemon at the first time, a config file, even if it is +# empty, has to be present *and* be owned by the user and group "quagga", else +# the daemon will not be started by /etc/init.d/quagga. The permissions should +# be u=rw,g=r,o=. +# When using "vtysh" such a config file is also needed. It should be owned by +# group "quaggavty" and set to ug=rw,o= though. Check /etc/pam.d/quagga, too. +# +# The watchquagga daemon is always started. Per default in monitoring-only but +# that can be changed via /etc/quagga/debian.conf. +# +zebra=yes +bgpd=yes +ospfd=no +ospf6d=no +ripd=no +ripngd=no +isisd=no diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_VTYSH b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_VTYSH new file mode 100644 index 000000000..f7114f4b9 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/QUAGGA_VTYSH @@ -0,0 +1,3 @@ +username cumulus nopassword +! +service integrated-vtysh-config diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/RESOLV b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/RESOLV new file mode 100644 index 000000000..cae093a83 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/RESOLV @@ -0,0 +1 @@ +nameserver 8.8.8.8 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/SSHD_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/SSHD_CONF new file mode 100644 index 000000000..e9506ff64 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/dist1/SSHD_CONF @@ -0,0 +1,88 @@ +# Package generated configuration file +# See the sshd_config(5) manpage for details + +# What ports, IPs and protocols we listen for +Port 22 +# Use these options to restrict which interfaces/protocols sshd will bind to +#ListenAddress :: +ListenAddress 0.0.0.0 +Protocol 2 +# HostKeys for protocol version 2 +HostKey /etc/ssh/ssh_host_rsa_key +HostKey /etc/ssh/ssh_host_dsa_key +HostKey /etc/ssh/ssh_host_ecdsa_key +HostKey /etc/ssh/ssh_host_ed25519_key +#Privilege Separation is turned on for security +UsePrivilegeSeparation yes + +# Lifetime and size of ephemeral version 1 server key +KeyRegenerationInterval 3600 +ServerKeyBits 1024 + +# Logging +SyslogFacility AUTH +LogLevel INFO + +# Authentication: +LoginGraceTime 120 +PermitRootLogin yes +StrictModes yes + +RSAAuthentication yes +PubkeyAuthentication yes +#AuthorizedKeysFile %h/.ssh/authorized_keys + +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes +# For this to work you will also need host keys in /etc/ssh_known_hosts +RhostsRSAAuthentication no +# similar for protocol version 2 +HostbasedAuthentication no +# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication +#IgnoreUserKnownHosts yes + +# To enable empty passwords, change to yes (NOT RECOMMENDED) +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +# Change to no to disable tunnelled clear text passwords +PasswordAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosGetAFSToken no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +X11Forwarding yes +X11DisplayOffset 10 +PrintMotd no +PrintLastLog yes +TCPKeepAlive yes +#UseLogin no + +#MaxStartups 10:30:60 +#Banner /etc/issue.net + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +Subsystem sftp /usr/lib/openssh/sftp-server + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/testbed.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/testbed.json new file mode 100644 index 000000000..06ecfafef --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_dist1/testbed.json @@ -0,0 +1,60 @@ +{ + "devices": [ + { + "friendlyName":"Dent dist1", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "dist1", + "model": "arm64-accton-as5114-48x-r0", + "ip": "10.36.118.43", + "login":{ + "userName":"root", + "password":"onl" + }, + "cpuArchitecture": "arm", + "macAddress": "34:EF:B6:EC:26:BE", + "serialConsole": { + "ip": "10.36.118.200", + "port": 7006 + }, + "pdu": { + "ip": "10.36.118.201", + "login": "dent", + "password": "dent123!", + "number": 6 + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ["swp5", "dist1:swp6"], + ["swp7", "dist1:swp8"], + ["swp9", "dist1:swp10"] + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "Novus10G", + "ip": "10.36.118.111", + "login":{ + "userName":"admin", + "password":"admin" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"mixed", + "links" : [ + ["10.36.118.199:1:1", "dist1:swp1", "fiber"], + ["10.36.118.199:1:2", "dist1:swp2", "fiber"], + ["10.36.118.199:1:3", "dist1:swp3", "fiber"], + ["10.36.118.199:1:4", "dist1:swp4", "fiber"] + ] + } + ], + "operator" : "dent", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/DHCP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/DHCP new file mode 100644 index 000000000..6da976513 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/DHCP @@ -0,0 +1,6 @@ +# +# ISC dhcpd configuration +# + + +option domain-name "dentlab-infra1"; diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTNAME b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTNAME new file mode 100644 index 000000000..be88a8757 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTNAME @@ -0,0 +1 @@ +dentlab-infra1 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTS new file mode 100644 index 000000000..f93ebae8a --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/HOSTS @@ -0,0 +1,5 @@ +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +127.0.1.1 dentlab-infra1 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/KEEPALIVED_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/KEEPALIVED_CONF new file mode 100644 index 000000000..e69de29bb diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NETWORK_INTERFACES b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NETWORK_INTERFACES new file mode 100644 index 000000000..503accc61 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NETWORK_INTERFACES @@ -0,0 +1,16 @@ +# +# ONL format of dent interfaces +# +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/*.intf + +# The loopback network interface +auto lo +iface lo inet loopback + address 20.20.0.1/32 + +# The management interface +auto ma1 +iface ma1 inet dhcp diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NTP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NTP new file mode 100644 index 000000000..a1d5f18ff --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/NTP @@ -0,0 +1,59 @@ +# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help + + +driftfile /var/lib/ntp/ntp.drift + + +# Enable this if you want statistics to be logged. +#statsdir /var/log/ntpstats/ + +statistics loopstats peerstats clockstats +filegen loopstats file loopstats type day enable +filegen peerstats file peerstats type day enable +filegen clockstats file clockstats type day enable + + +# You do need to talk to an NTP server or two (or three). +#server ntp.your-provider.example + + +# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will +# pick a different set every time it starts up. Please consider joining the +# pool: +# + +# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for +# details. The web page +# might also be helpful. +# +# Note that "restrict" applies to both servers and clients, so a configuration +# that might be intended to block requests from certain clients could also end +# up blocking replies from your own upstream servers. + +# By default, exchange time with everybody, but don't allow configuration. +restrict -4 default kod notrap nomodify nopeer noquery +restrict -6 default kod notrap nomodify nopeer noquery + +# Local users may interrogate the ntp server more closely. +restrict 127.0.0.1 +restrict ::1 + +# Clients from this (example!) subnet have unlimited access, but only if +# cryptographically authenticated. +#restrict 192.168.123.0 mask 255.255.255.0 notrust + + +# If you want to provide time to your local subnet, change the next line. +# (Again, the address is an example only.) +#broadcast 192.168.123.255 + +# If you want to listen to time broadcasts on your local subnet, de-comment the +# next lines. Please do this only if you trust everybody on the network! +#disable auth +#broadcastclient + +# Specify interfaces, don't listen on switch ports +#interface listen ma1 +interface listen lo +interface listen lo:0 +interface listen dummy0 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_CONFIG b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_CONFIG new file mode 100644 index 000000000..da730d8f1 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_CONFIG @@ -0,0 +1,11 @@ +username cumulus nopassword +! +service integrated-vtysh-config +! +log timestamp precision 6 +! +no zebra nexthop kernel enable +! +line vty +! +end diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_DAEMONS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_DAEMONS new file mode 100644 index 000000000..cff453039 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_DAEMONS @@ -0,0 +1,30 @@ +# This file tells the quagga package which daemons to start. +# +# Entries are in the format: =(yes|no|priority) +# 0, "no" = disabled +# 1, "yes" = highest priority +# 2 .. 10 = lower priorities +# Read /usr/share/doc/quagga/README.Debian for details. +# +# Sample configurations for these daemons can be found in +# /usr/share/doc/quagga/examples/. +# +# ATTENTION: +# +# When activation a daemon at the first time, a config file, even if it is +# empty, has to be present *and* be owned by the user and group "quagga", else +# the daemon will not be started by /etc/init.d/quagga. The permissions should +# be u=rw,g=r,o=. +# When using "vtysh" such a config file is also needed. It should be owned by +# group "quaggavty" and set to ug=rw,o= though. Check /etc/pam.d/quagga, too. +# +# The watchquagga daemon is always started. Per default in monitoring-only but +# that can be changed via /etc/quagga/debian.conf. +# +zebra=yes +bgpd=yes +ospfd=no +ospf6d=no +ripd=no +ripngd=no +isisd=no diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_VTYSH b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_VTYSH new file mode 100644 index 000000000..f7114f4b9 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/QUAGGA_VTYSH @@ -0,0 +1,3 @@ +username cumulus nopassword +! +service integrated-vtysh-config diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/RESOLV b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/RESOLV new file mode 100644 index 000000000..cae093a83 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/RESOLV @@ -0,0 +1 @@ +nameserver 8.8.8.8 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/SSHD_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/SSHD_CONF new file mode 100644 index 000000000..e9506ff64 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/infra1/SSHD_CONF @@ -0,0 +1,88 @@ +# Package generated configuration file +# See the sshd_config(5) manpage for details + +# What ports, IPs and protocols we listen for +Port 22 +# Use these options to restrict which interfaces/protocols sshd will bind to +#ListenAddress :: +ListenAddress 0.0.0.0 +Protocol 2 +# HostKeys for protocol version 2 +HostKey /etc/ssh/ssh_host_rsa_key +HostKey /etc/ssh/ssh_host_dsa_key +HostKey /etc/ssh/ssh_host_ecdsa_key +HostKey /etc/ssh/ssh_host_ed25519_key +#Privilege Separation is turned on for security +UsePrivilegeSeparation yes + +# Lifetime and size of ephemeral version 1 server key +KeyRegenerationInterval 3600 +ServerKeyBits 1024 + +# Logging +SyslogFacility AUTH +LogLevel INFO + +# Authentication: +LoginGraceTime 120 +PermitRootLogin yes +StrictModes yes + +RSAAuthentication yes +PubkeyAuthentication yes +#AuthorizedKeysFile %h/.ssh/authorized_keys + +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes +# For this to work you will also need host keys in /etc/ssh_known_hosts +RhostsRSAAuthentication no +# similar for protocol version 2 +HostbasedAuthentication no +# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication +#IgnoreUserKnownHosts yes + +# To enable empty passwords, change to yes (NOT RECOMMENDED) +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +# Change to no to disable tunnelled clear text passwords +PasswordAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosGetAFSToken no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +X11Forwarding yes +X11DisplayOffset 10 +PrintMotd no +PrintLastLog yes +TCPKeepAlive yes +#UseLogin no + +#MaxStartups 10:30:60 +#Banner /etc/issue.net + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +Subsystem sftp /usr/lib/openssh/sftp-server + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed.json new file mode 100644 index 000000000..9bb09b31e --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed.json @@ -0,0 +1,59 @@ +{ + "devices": [ + { + "friendlyName": "Dent infra1", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "infra1", + "model": "arm64-accton-as4224-52p-r0", + "ip": "10.36.118.46", + "login":{ + "userName":"root", + "password":"onl" + }, + "cpuArchitecture": "arm", + "macAddress": "90:3C:B3:8B:EF:32", + "serialConsole": { + "ip": "10.36.118.200", + "port": 7003 + }, + "pdu": { + "ip": "10.36.118.201", + "login": "dent", + "password": "dent123!", + "number": 3 + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "links" : [ + ["swp5", "infra1:swp6"], + ["swp7", "infra1:swp8"], + ["swp9", "infra1:swp10"] + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "Novus10G", + "ip": "10.36.118.111", + "login":{ + "userName":"admin", + "password":"admin" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"mixed", + "links" : [ + ["10.36.118.199:1:9", "infra1:swp1", "copper"], + ["10.36.118.199:1:10", "infra1:swp2", "copper"], + ["10.36.118.199:1:11", "infra1:swp3", "copper"], + ["10.36.118.199:1:12", "infra1:swp4", "copper"] + ] + } + ], + "operator" : "dent", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_dentvm.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_dentvm.json new file mode 100644 index 000000000..f532fb16e --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_dentvm.json @@ -0,0 +1,45 @@ +{ + "devices": [ + { + "friendlyName":"DENT infrastructure 1", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "infra1", + "model": "arm64-accton-as5114-48x-r0", + "ip": "10.36.118.160", + "login":{ + "userName":"root", + "password":"onl" + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "VM", + "ip": "10.36.118.112", + "login":{ + "userName":"admin", + "password":"dentTestPass_121314" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ["10.36.118.150:5:1", "infra1:swp1", "fiber"], + ["10.36.118.150:5:2", "infra1:swp2", "fiber"], + ["10.36.118.150:5:3", "infra1:swp3", "fiber"], + ["10.36.118.150:5:4", "infra1:swp4", "fiber"] + ] + } + ], + "operator" : "dent-vm", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_vm.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_vm.json new file mode 100644 index 000000000..c3b1cce33 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed_vm.json @@ -0,0 +1,48 @@ +{ + "devices": [ + { + "friendlyName":"DENT infrastructure 1", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "infra1", + "model": "arm64-accton-as5114-48x-r0", + "ip": "10.36.118.45", + "login":{ + "userName":"root", + "password":"onl" + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ["swp5", "infra1:swp6"], + ["swp7", "infra1:swp8"], + ["swp9", "infra1:swp10"] + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "VM", + "ip": "10.36.118.112", + "login":{ + "userName":"admin", + "password":"dentTestPass_121314" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"fiber", + "links" : [ + ["10.36.118.150:1:1", "infra1:swp1", "fiber"], + ["10.36.118.150:2:1", "infra1:swp2", "fiber"], + ["10.36.118.150:3:1", "infra1:swp3", "fiber"], + ["10.36.118.150:4:1", "infra1:swp4", "fiber"] + ] + } + ], + "operator" : "dent", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/DHCP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/DHCP new file mode 100644 index 000000000..71a641ce4 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/DHCP @@ -0,0 +1,6 @@ +# +# ISC dhcpd configuration +# + + +option domain-name "dentlab-infra2"; diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTNAME b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTNAME new file mode 100644 index 000000000..4da8a2c6c --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTNAME @@ -0,0 +1 @@ +dentlab-infra2 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTS new file mode 100644 index 000000000..b393f6cb4 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/HOSTS @@ -0,0 +1,5 @@ +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +127.0.1.1 dentlab-infra2 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/KEEPALIVED_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/KEEPALIVED_CONF new file mode 100644 index 000000000..e69de29bb diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NETWORK_INTERFACES b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NETWORK_INTERFACES new file mode 100644 index 000000000..503accc61 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NETWORK_INTERFACES @@ -0,0 +1,16 @@ +# +# ONL format of dent interfaces +# +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/*.intf + +# The loopback network interface +auto lo +iface lo inet loopback + address 20.20.0.1/32 + +# The management interface +auto ma1 +iface ma1 inet dhcp diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NTP b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NTP new file mode 100644 index 000000000..a1d5f18ff --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/NTP @@ -0,0 +1,59 @@ +# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help + + +driftfile /var/lib/ntp/ntp.drift + + +# Enable this if you want statistics to be logged. +#statsdir /var/log/ntpstats/ + +statistics loopstats peerstats clockstats +filegen loopstats file loopstats type day enable +filegen peerstats file peerstats type day enable +filegen clockstats file clockstats type day enable + + +# You do need to talk to an NTP server or two (or three). +#server ntp.your-provider.example + + +# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will +# pick a different set every time it starts up. Please consider joining the +# pool: +# + +# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for +# details. The web page +# might also be helpful. +# +# Note that "restrict" applies to both servers and clients, so a configuration +# that might be intended to block requests from certain clients could also end +# up blocking replies from your own upstream servers. + +# By default, exchange time with everybody, but don't allow configuration. +restrict -4 default kod notrap nomodify nopeer noquery +restrict -6 default kod notrap nomodify nopeer noquery + +# Local users may interrogate the ntp server more closely. +restrict 127.0.0.1 +restrict ::1 + +# Clients from this (example!) subnet have unlimited access, but only if +# cryptographically authenticated. +#restrict 192.168.123.0 mask 255.255.255.0 notrust + + +# If you want to provide time to your local subnet, change the next line. +# (Again, the address is an example only.) +#broadcast 192.168.123.255 + +# If you want to listen to time broadcasts on your local subnet, de-comment the +# next lines. Please do this only if you trust everybody on the network! +#disable auth +#broadcastclient + +# Specify interfaces, don't listen on switch ports +#interface listen ma1 +interface listen lo +interface listen lo:0 +interface listen dummy0 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_CONFIG b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_CONFIG new file mode 100644 index 000000000..da730d8f1 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_CONFIG @@ -0,0 +1,11 @@ +username cumulus nopassword +! +service integrated-vtysh-config +! +log timestamp precision 6 +! +no zebra nexthop kernel enable +! +line vty +! +end diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_DAEMONS b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_DAEMONS new file mode 100644 index 000000000..cff453039 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_DAEMONS @@ -0,0 +1,30 @@ +# This file tells the quagga package which daemons to start. +# +# Entries are in the format: =(yes|no|priority) +# 0, "no" = disabled +# 1, "yes" = highest priority +# 2 .. 10 = lower priorities +# Read /usr/share/doc/quagga/README.Debian for details. +# +# Sample configurations for these daemons can be found in +# /usr/share/doc/quagga/examples/. +# +# ATTENTION: +# +# When activation a daemon at the first time, a config file, even if it is +# empty, has to be present *and* be owned by the user and group "quagga", else +# the daemon will not be started by /etc/init.d/quagga. The permissions should +# be u=rw,g=r,o=. +# When using "vtysh" such a config file is also needed. It should be owned by +# group "quaggavty" and set to ug=rw,o= though. Check /etc/pam.d/quagga, too. +# +# The watchquagga daemon is always started. Per default in monitoring-only but +# that can be changed via /etc/quagga/debian.conf. +# +zebra=yes +bgpd=yes +ospfd=no +ospf6d=no +ripd=no +ripngd=no +isisd=no diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_VTYSH b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_VTYSH new file mode 100644 index 000000000..f7114f4b9 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/QUAGGA_VTYSH @@ -0,0 +1,3 @@ +username cumulus nopassword +! +service integrated-vtysh-config diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/RESOLV b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/RESOLV new file mode 100644 index 000000000..cae093a83 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/RESOLV @@ -0,0 +1 @@ +nameserver 8.8.8.8 diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/SSHD_CONF b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/SSHD_CONF new file mode 100644 index 000000000..e9506ff64 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/infra2/SSHD_CONF @@ -0,0 +1,88 @@ +# Package generated configuration file +# See the sshd_config(5) manpage for details + +# What ports, IPs and protocols we listen for +Port 22 +# Use these options to restrict which interfaces/protocols sshd will bind to +#ListenAddress :: +ListenAddress 0.0.0.0 +Protocol 2 +# HostKeys for protocol version 2 +HostKey /etc/ssh/ssh_host_rsa_key +HostKey /etc/ssh/ssh_host_dsa_key +HostKey /etc/ssh/ssh_host_ecdsa_key +HostKey /etc/ssh/ssh_host_ed25519_key +#Privilege Separation is turned on for security +UsePrivilegeSeparation yes + +# Lifetime and size of ephemeral version 1 server key +KeyRegenerationInterval 3600 +ServerKeyBits 1024 + +# Logging +SyslogFacility AUTH +LogLevel INFO + +# Authentication: +LoginGraceTime 120 +PermitRootLogin yes +StrictModes yes + +RSAAuthentication yes +PubkeyAuthentication yes +#AuthorizedKeysFile %h/.ssh/authorized_keys + +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes +# For this to work you will also need host keys in /etc/ssh_known_hosts +RhostsRSAAuthentication no +# similar for protocol version 2 +HostbasedAuthentication no +# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication +#IgnoreUserKnownHosts yes + +# To enable empty passwords, change to yes (NOT RECOMMENDED) +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +# Change to no to disable tunnelled clear text passwords +PasswordAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosGetAFSToken no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +X11Forwarding yes +X11DisplayOffset 10 +PrintMotd no +PrintLastLog yes +TCPKeepAlive yes +#UseLogin no + +#MaxStartups 10:30:60 +#Banner /etc/issue.net + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +Subsystem sftp /usr/lib/openssh/sftp-server + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes diff --git a/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/testbed.json b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/testbed.json new file mode 100644 index 000000000..791f9bd05 --- /dev/null +++ b/DentOS_Framework/DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/testbed.json @@ -0,0 +1,60 @@ +{ + "devices": [ + { + "friendlyName":"Dent infra2", + "os":"dentos", + "type" : "INFRA_SWITCH", + "hostName": "infra2", + "model": "arm64-delta-tn48m-poe-dn-r0", + "ip": "10.36.118.23", + "login":{ + "userName":"root", + "password":"onl" + }, + "cpuArchitecture": "arm", + "macAddress": "18:BE:92:13:64:80", + "serialConsole": { + "ip": "10.36.118.200", + "port": 7011 + }, + "pdu": { + "ip": "10.36.118.201", + "login": "dent", + "password": "dent123!", + "number": "12" + }, + "serialDev":"/dev/ttyUSB0", + "baudrate": 115200, + "mediaMode":"copper", + "links" : [ + ["swp5", "infra2:swp6"], + ["swp7", "infra2:swp8"], + ["swp9", "infra2:swp10"] + ] + }, + { + "friendlyName":"Ixia Traffic Generator", + "os":"ixnetwork", + "type" : "TRAFFIC_GENERATOR", + "hostName": "ixia", + "model": "Novus10G", + "ip": "10.36.118.213", + "login":{ + "userName":"admin", + "password":"admin" + }, + "serialDev":"/dev/ttyUSBXX", + "baudrate": 115200, + "mediaMode":"mixed", + "links" : [ + ["10.36.118.199:1:13", "infra2:swp1", "copper"], + ["10.36.118.199:1:14", "infra2:swp2", "copper"], + ["10.36.118.199:1:15", "infra2:swp3", "copper"], + ["10.36.118.199:1:16", "infra2:swp4", "copper"] + ] + } + ], + "operator" : "dent", + "topology" : "bachelor", + "force_discovery" : false +} diff --git a/DentOS_Framework/DentOsTestbed/src/dent_os_testbed/test/test_suite/functional/vlan/test_vlan_increment_mac.py b/DentOS_Framework/DentOsTestbed/src/dent_os_testbed/test/test_suite/functional/vlan/test_vlan_increment_mac.py index 5d3ed0d88..aa042862c 100644 --- a/DentOS_Framework/DentOsTestbed/src/dent_os_testbed/test/test_suite/functional/vlan/test_vlan_increment_mac.py +++ b/DentOS_Framework/DentOsTestbed/src/dent_os_testbed/test/test_suite/functional/vlan/test_vlan_increment_mac.py @@ -3,7 +3,6 @@ import json from dent_os_testbed.lib.ip.ip_link import IpLink -from dent_os_testbed.lib.onlp.onlp_system_info import OnlpSystemInfo from dent_os_testbed.constants import PLATFORMS_CONSTANTS from dent_os_testbed.utils.FileHandlers.LocalFileHandler import LocalFileHandler @@ -65,7 +64,7 @@ async def test_vlan_with_increment_macs(testbed): dut_ports = tgen_dev.links_dict[device][1] tolerance = 0.7 # fdb learning tolerance - rc, model = await dent_devices[0].run_cmd(f'cat /etc/onl/platform') + rc, model = await dent_devices[0].run_cmd('cat /etc/onl/platform') model = model.strip('\n') mac_table = LocalFileHandler(dent_devices[0].applog).read(PLATFORMS_CONSTANTS) diff --git a/docs/CI_Automation/README.md b/docs/CI_Automation/README.md index d645575fa..4a455b4f8 100644 --- a/docs/CI_Automation/README.md +++ b/docs/CI_Automation/README.md @@ -124,11 +124,11 @@ must include the CLI paramter -deployIxNetwork - Current test suites - fullRegression: All of SIT testings and functional testings (Takes 2 days to complete) - - sitTest: Only testing SIT test cases + - sitTest: Only testing SIT test cases - functional: Only testing functional test cases - l3tests: A quick test with traffic (10 minutes) - cleanConfig: A quick test for CI framework development - (few minutes) + (few minutes) - Below shows a preview of a test suite example @@ -140,23 +140,23 @@ must include the CLI paramter -deployIxNetwork suiteGroups: runInParallel: - name: clean_config_infra1 - config: ./DentOsTestbed/configuration/testbed_config/basic_infra1/testbed.json + config: ./DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra1/testbed.json suiteGroups: - suite_group_clean_config - name: clean_config_infra2 - config: ./DentOsTestbed/configuration/testbed_config/basic_infra2/testbed.json + config: ./DentOsTestbed/configuration/testbed_config/hw/sit/basic_infra2/testbed.json suiteGroups: - suite_group_clean_config runInSeries: - name: clean_config_agg1 - config: ./DentOsTestbed/configuration/testbed_config/basic_agg1/testbed.json + config: ./DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg1/testbed.json suiteGroups: - suite_group_clean_config - name: clean_config_agg2 - config: ./DentOsTestbed/configuration/testbed_config/basic_agg2/testbed.json + config: ./DentOsTestbed/configuration/testbed_config/hw/sit/basic_agg2/testbed.json suiteGroups: - suite_group_clean_config ``` @@ -185,6 +185,8 @@ Supporting parameters -localBranch: Optional: Test with a local branch that is already cloned. Provide the full path. + -localBuilds: Optional: The full paths to the AMD and ARM builds in the local dent server + -keepTestBranch: Optional: Do not delete the test branch after the test for debugging purpose.