Example #1
0
    def __init__(self, testbed_id, testbed_version):
        super(TestbedController, self).__init__(testbed_id, testbed_version)
        self._status = TS.STATUS_ZERO
        # testbed attributes for validation
        self._attributes = None
        # element factories for validation
        self._factories = dict()

        # experiment construction instructions
        self._create = dict()
        self._create_set = dict()
        self._factory_set = dict()
        self._connect = dict()
        self._cross_connect = dict()
        self._add_trace = dict()
        self._add_address = dict()
        self._add_route = dict()
        self._configure = dict()

        # log of set operations
        self._setlog = dict()
        # last set operations
        self._set = dict()

        # testbed element instances
        self._elements = dict()

        self._metadata = Metadata(self._testbed_id)
        if self._metadata.testbed_version != testbed_version:
            raise RuntimeError("Bad testbed version on testbed %s. Asked for %s, got %s" % \
                    (testbed_id, testbed_version, self._metadata.testbed_version))
        for factory in self._metadata.build_factories():
            self._factories[factory.factory_id] = factory
        self._attributes = self._metadata.testbed_attributes()
        self._root_directory = None

        # Logging
        self._logger = logging.getLogger("nepi.core.testbed_impl")