def testMultipleHostsPerDeployment(self):
        path = utils.FileUtils.get_current_script_directory(__file__)
        path += os.path.normcase('/') + "multiple_hosts_deployment.config"
        if not os.access(path, os.F_OK):
            # fail this test if the required file is not present in the file
            # system
            self.fail(
                "Required file multiple_hosts_deployment.config not found at %s"
                % path)
        dtestbed = dist_config_parser.parse_distributed_configuration(path)

        # test hosts
        hosts = dtestbed.get_hosts()
        expected_host_keys = ["glab162", "glab163"]
        for host in hosts.keys():
            self.assertTrue(host in expected_host_keys)
        self.assertEquals("glab162.g-lab.tu-darmstadt.de", hosts["glab162"])
        self.assertEquals("glab163.g-lab.tu-darmstadt.de", hosts["glab163"])

        # test deployment 1 + 2
        self.assertEquals(2, len(dtestbed.get_deployments()))
        dpl0 = dtestbed.get_deployment_by_name("deployment_1")
        dpl1 = dtestbed.get_deployment_by_name("deployment_2")
        self.assertEquals(2, len(dpl0.get_hostlist()))
        self.assertEquals(2, len(dpl1.get_hostlist()))
        self.assertTrue("glab162.g-lab.tu-darmstadt.de" in dpl0.get_hostlist())
        self.assertTrue("glab163.g-lab.tu-darmstadt.de" in dpl0.get_hostlist())
        self.assertTrue("glab162.g-lab.tu-darmstadt.de" in dpl1.get_hostlist())
        self.assertTrue("glab163.g-lab.tu-darmstadt.de" in dpl1.get_hostlist())
        self.assertEquals(dpl0.get_client_conf_schema(),
                          dpl1.get_client_conf_schema())
        self.assertEquals("/home/tud_p2p/testbed/",
                          dpl0.get_remote_base_directory())
        self.assertEquals("/home/tud_p2p/testbed/",
                          dpl1.get_remote_base_directory())
    def testMultipleHostsPerDeployment(self):
        path = utils.FileUtils.get_current_script_directory(__file__)
        path += os.path.normcase('/') + "multiple_hosts_deployment.config"
        if not os.access(path, os.F_OK):
            # fail this test if the required file is not present in the file
            # system
            self.fail("Required file multiple_hosts_deployment.config not found at %s" % path)
        dtestbed = dist_config_parser.parse_distributed_configuration(path)

        # test hosts
        hosts = dtestbed.get_hosts()
        expected_host_keys = ["glab162", "glab163"]
        for host in hosts.keys():
            self.assertTrue(host in expected_host_keys)
        self.assertEquals("glab162.g-lab.tu-darmstadt.de", hosts["glab162"])
        self.assertEquals("glab163.g-lab.tu-darmstadt.de", hosts["glab163"])
        
        # test deployment 1 + 2
        self.assertEquals(2, len(dtestbed.get_deployments()))
        dpl0 = dtestbed.get_deployment_by_name("deployment_1")
        dpl1 = dtestbed.get_deployment_by_name("deployment_2")
        self.assertEquals(2, len(dpl0.get_hostlist()))
        self.assertEquals(2, len(dpl1.get_hostlist()))
        self.assertTrue("glab162.g-lab.tu-darmstadt.de" in dpl0.get_hostlist())
        self.assertTrue("glab163.g-lab.tu-darmstadt.de" in dpl0.get_hostlist())
        self.assertTrue("glab162.g-lab.tu-darmstadt.de" in dpl1.get_hostlist())
        self.assertTrue("glab163.g-lab.tu-darmstadt.de" in dpl1.get_hostlist())
        self.assertEquals(dpl0.get_client_conf_schema(), dpl1.get_client_conf_schema())
        self.assertEquals("/home/tud_p2p/testbed/", dpl0.get_remote_base_directory())
        self.assertEquals("/home/tud_p2p/testbed/", dpl1.get_remote_base_directory())
Example #3
0
def _read_configuration(configuration_file):
    """Reads the specified configuration file. Checks if it is present in the
    filesystem. If not, the execution of the script will be terminated.
    """
    global cfg

    if not os.access(configuration_file, os.F_OK):
        logging.info("Missing referenced configuration file.")
        sys.exit(1)
    cfg = dist_config_parser.parse_distributed_configuration(configuration_file)
    logging.info("Read configuration file.")
Example #4
0
def _read_configuration(configuration_file):
    '''Reads the specified configuration file. Checks if it is present in the
    filesystem. If not, the execution of the script will be terminated.
    '''
    global cfg

    if not os.access(configuration_file, os.F_OK):
        logging.info("Missing referenced configuration file.")
        sys.exit(1)
    cfg = dist_config_parser.parse_distributed_configuration(
        configuration_file)
    logging.info("Read configuration file.")
    def testDistributedTest1(self):
        path = utils.FileUtils.get_current_script_directory(__file__)
        path += os.path.normcase('/') + "sample_distributed_test1.txt"
        if not os.access(path, os.F_OK):
            # fail this test if the required file is not present in the file
            # system
            self.fail(
                "Required file sample_distributed_test1.txt not found at %s" %
                path)
        dtestbed = dist_config_parser.parse_distributed_configuration(path)

        # test tracker attributes
        tracker = dtestbed.get_tracker()
        self.assertTrue(isinstance(tracker, DistributedTrackerConfiguration))
        self.assertEquals("glab162", tracker.get_hostname())
        self.assertEquals(1024, tracker.get_uprate())
        self.assertEquals(1024, tracker.get_downrate())
        self.assertEquals("/home/tud_p2p/testbed/",
                          tracker.get_base_directory())
        self.assertEquals(30, tracker.get_waiting_time())
        tracker_files = tracker.get_files()
        expected_files = ["file1", "file2"]
        for file in tracker_files:
            self.assertTrue(file in expected_files)

        # test file attributes
        files = dtestbed.get_files()
        for file in files.keys():
            self.assertTrue(file in expected_files)
        file1 = files["file1"]
        file2 = files["file2"]
        self.assertEquals("file1", file1.get_id())
        self.assertEquals("client.sh", file1.get_relative_filename())
        self.assertEquals("file2", file2.get_id())
        self.assertEquals("tracker.sh", file2.get_relative_filename())

        # test hosts
        hosts = dtestbed.get_hosts()
        expected_host_keys = ["glab162", "glab163"]
        for host in hosts.keys():
            self.assertTrue(host in expected_host_keys)
        self.assertEquals("glab162.g-lab.tu-darmstadt.de", hosts["glab162"])
        self.assertEquals("glab163.g-lab.tu-darmstadt.de", hosts["glab163"])

        # test deployment 1 + 2
        self.assertEquals(2, len(dtestbed.get_deployments()))
        dpl0 = dtestbed.get_deployment_by_name("deployment_1")
        dpl1 = dtestbed.get_deployment_by_name("deployment_2")
        self.assertTrue("glab162.g-lab.tu-darmstadt.de" in dpl0.get_hostlist())
        self.assertTrue("glab163.g-lab.tu-darmstadt.de" in dpl1.get_hostlist())
        self.assertEquals(dpl0.get_client_conf_schema(),
                          dpl1.get_client_conf_schema())
        self.assertEquals("/home/tud_p2p/testbed/",
                          dpl0.get_remote_base_directory())
        self.assertEquals("/home/tud_p2p/testbed/",
                          dpl1.get_remote_base_directory())

        # test schema 1
        schema1 = dpl0.get_client_conf_schema()
        self.assertEquals(128, schema1.get_uprate())
        self.assertEquals(128, schema1.get_downrate())
        leeching = schema1.get_leeching_list()
        seeding = schema1.get_seeding_list()
        self.assertTrue(len(leeching) == 1)
        self.assertTrue(len(seeding) == 1)
        self.assertEquals("file1", leeching[0])
        self.assertEquals("file2", seeding[0])
        self.assertEquals("none", schema1.get_ranking_source())

        # general tests
        self.assertEquals(300, dtestbed.get_timeout())
        self.assertEquals(True, dtestbed.remove_remote_files())
        self.assertEquals("dtestbed_logfiles",
                          dtestbed.get_logfile_directory())
        # check the linearization of events
        events = dtestbed.get_events()
        self.assertEquals(2, len(events))
        self.assertEquals((0, 0, 'deployment_1'), events[0])
        self.assertEquals((30, 1, 'deployment_2'), events[1])
    def testDistributedTest1(self):
        path = utils.FileUtils.get_current_script_directory(__file__)
        path += os.path.normcase('/') + "sample_distributed_test1.txt"
        if not os.access(path, os.F_OK):
            # fail this test if the required file is not present in the file
            # system
            self.fail("Required file sample_distributed_test1.txt not found at %s" % path)
        dtestbed = dist_config_parser.parse_distributed_configuration(path)

        # test tracker attributes
        tracker = dtestbed.get_tracker()
        self.assertTrue(isinstance(tracker, DistributedTrackerConfiguration))
        self.assertEquals("glab162", tracker.get_hostname())
        self.assertEquals(1024, tracker.get_uprate())
        self.assertEquals(1024, tracker.get_downrate())
        self.assertEquals("/home/tud_p2p/testbed/", tracker.get_base_directory())
        self.assertEquals(30, tracker.get_waiting_time())
        tracker_files = tracker.get_files()
        expected_files = ["file1", "file2"]
        for file in tracker_files:
            self.assertTrue(file in expected_files)
            
        # test file attributes
        files = dtestbed.get_files()
        for file in files.keys():
            self.assertTrue(file in expected_files)
        file1 = files["file1"]
        file2 = files["file2"]
        self.assertEquals("file1", file1.get_id())
        self.assertEquals("client.sh", file1.get_relative_filename())
        self.assertEquals("file2", file2.get_id())
        self.assertEquals("tracker.sh", file2.get_relative_filename())
        
        # test hosts
        hosts = dtestbed.get_hosts()
        expected_host_keys = ["glab162", "glab163"]
        for host in hosts.keys():
            self.assertTrue(host in expected_host_keys)
        self.assertEquals("glab162.g-lab.tu-darmstadt.de", hosts["glab162"])
        self.assertEquals("glab163.g-lab.tu-darmstadt.de", hosts["glab163"])
        
        # test deployment 1 + 2
        self.assertEquals(2, len(dtestbed.get_deployments()))
        dpl0 = dtestbed.get_deployment_by_name("deployment_1")
        dpl1 = dtestbed.get_deployment_by_name("deployment_2")
        self.assertTrue("glab162.g-lab.tu-darmstadt.de" in dpl0.get_hostlist())
        self.assertTrue("glab163.g-lab.tu-darmstadt.de" in dpl1.get_hostlist())
        self.assertEquals(dpl0.get_client_conf_schema(), dpl1.get_client_conf_schema())
        self.assertEquals("/home/tud_p2p/testbed/", dpl0.get_remote_base_directory())
        self.assertEquals("/home/tud_p2p/testbed/", dpl1.get_remote_base_directory())

        # test schema 1
        schema1 = dpl0.get_client_conf_schema()
        self.assertEquals(128, schema1.get_uprate())
        self.assertEquals(128, schema1.get_downrate())
        leeching = schema1.get_leeching_list()
        seeding = schema1.get_seeding_list()
        self.assertTrue(len(leeching) == 1)
        self.assertTrue(len(seeding) == 1)
        self.assertEquals("file1", leeching[0])
        self.assertEquals("file2", seeding[0])
        self.assertEquals("none", schema1.get_ranking_source())
        
        # general tests
        self.assertEquals(300, dtestbed.get_timeout())
        self.assertEquals(True, dtestbed.remove_remote_files())
        self.assertEquals("dtestbed_logfiles", dtestbed.get_logfile_directory())
        # check the linearization of events
        events = dtestbed.get_events()
        self.assertEquals(2, len(events))
        self.assertEquals((0, 0, 'deployment_1'), events[0])
        self.assertEquals((30, 1, 'deployment_2'), events[1])