Tekvel Magic
Загрузка...
Поиск...
Не найдено
Класс Subnetwork

Класс Subnetwork для моделирования подключения имитируемого сервера (или клиента) к подсети. Подробнее...

Граф наследования:Subnetwork:

Открытые члены

def get_by_name (cls, name)
 Найти экземпляр Subnetwork по имени. Подробнее...
 
def __new__ (cls, *args, **kwargs)
 Создание объекта для Subnetwork. Подробнее...
 
def __init__ (self, nif=None, name=None)
 Инициализация экземпляра Subnetwork. Подробнее...
 
def attach (self, simulator)
 Присоединяет симулятор к сети. Подробнее...
 
def detach (self, simulator)
 Отключает симулятор от сети. Подробнее...
 
def attached_simulators (self)
 Возвращает список подключенных симуляторов. Подробнее...
 
def nif (self)
 Получить сетевой интерфейс (NIF). Подробнее...
 
def nif (self, NIF nif)
 Установка сетевого интрефейса для подсети. Подробнее...
 
def name (self)
 Получить имя. Подробнее...
 
def name (self, str name)
 Установить имя подсети. Подробнее...
 

Открытые атрибуты

 name
 
 nif
 

Статические открытые данные

list instances = []
 
int numbers = 1
 

Подробное описание

Класс Subnetwork для моделирования подключения имитируемого сервера (или клиента) к подсети.

Класс Subnetwork используется для моделирования подключения имитируемого сервера (или клиента) к определенной подсети через ethernet-адаптер ПК. Он предотвращает дублирование подсетей, возвращая существующие экземпляры, если сеть с таким же именем уже существует. Класс позволяет подключать и отключать симуляторы к/от подсети и управлять сетевыми интерфейсами.

Пример использования:

sn_name_list = ["A", "B", "C"]
sn_list = []
for sn_name in sn_name_list:
sn = Subnetwork(name=sn_name)
sn_list.append(sn)
l = len(Subnetwork.instances)
TestEngine.log(f"Создано {l} сетей")
# Выведем их по очереди в лог:
for sn in sn_list:
TestEngine.log(str(sn))
# Эта сеть не будет создана.
# Вместо этого будет возвращена существующая сеть A.
sn_new = Subnetwork(name="A")
TestEngine.log(f"Новая сеть: {sn_new}")
# Проверим, что общее количество экземпляров не изменилось.
l = len(Subnetwork.instances)
TestEngine.log(f"Общее количество сетей {l}")

Каждая сеть идентифицируется по имени. Если запрашивается сеть с таким же именем, возвращается существующий экземпляр.

Аргументы
nif(необязательно) Сетевой интерфейс NIF, который будет назначен сети.
name(необязательно) Имя сети. Если не указано, будет присвоено имя по умолчанию.

Конструктор(ы)

◆ __init__()

def __init__ (   self,
  nif = None,
  name = None 
)

Инициализация экземпляра Subnetwork.

Этот метод инициализирует новый экземпляр класса Subnetwork. Если указано имя, проверяется, существует ли сеть с таким именем. Если сеть найдена, инициализация пропускается. В противном случае создается новая сеть. Если имя не указано, присваивается имя по умолчанию в формате Subnetwork{number}. Интерфейс сети (nif) либо предоставляется, либо запрашивается у пользователя.

Аргументы
nifНеобязательный сетевой интерфейс, который будет использоваться для сети. Если не указан, пользователю будет предложено выбрать интерфейс.
nameНеобязательное имя для сети. Если не указано, будет сгенерировано имя по умолчанию.
Исключения
ExceptionВыбрасывается в случае ошибки при добавлении сети в список экземпляров.

Методы

◆ __new__()

def __new__ (   cls,
args,
**  kwargs 
)

Создание объекта для Subnetwork.

Этот метод переопределяет стандартный метод __new__ для управления созданием объекта. Если в kwargs указано имя сети (name), метод пытается найти существующий экземпляр по имени с помощью метода get_by_name. Если сеть с таким именем не найдена, создаётся новый объект. Если имя не указано, создается новый экземпляр по умолчанию.

Аргументы
*argsПозиционные аргументы.
**kwargsИменованные аргументы, ожидается наличие ключа "name" для сетей с именем.
Возвращает
Существующий или новый объект Subnetwork.

◆ attach()

def attach (   self,
  simulator 
)

Присоединяет симулятор к сети.

Этот метод присоединяет указанный симулятор к сети. Если симулятор уже подключен, вызывается исключение.

Аргументы
simulatorСимулятор, который нужно присоединить к сети.
Исключения
ValueErrorВыбрасывается, если симулятор уже присоединен к сети.

◆ attached_simulators()

def attached_simulators (   self)

Возвращает список подключенных симуляторов.

Это свойство возвращает список симуляторов, подключенных к сети.

Возвращает
Список подключенных симуляторов.

◆ detach()

def detach (   self,
  simulator 
)

Отключает симулятор от сети.

Этот метод удаляет указанный симулятор из сети.

Аргументы
simulatorСимулятор, который нужно отключить от сети.

◆ get_by_name()

def get_by_name (   cls,
  name 
)

Найти экземпляр Subnetwork по имени.

Этот метод класса ищет в списке экземпляров сетей объект с указанным именем и возвращает его. Если совпадающий экземпляр не найден, выбрасывается исключение ObjectNotFound.

Аргументы
nameИмя сети для поиска.
Исключения
ObjectNotFoundВозбуждается, если сеть с заданным именем не найдена.
Возвращает
Экземпляр Subnetwork с совпадающим именем.

◆ name() [1/2]

def name (   self)

Получить имя.

Возвращает текущее имя этого Subnetwork.

Возвращает
Текущее имя в виде строки.

◆ name() [2/2]

def name (   self,
str  name 
)

Установить имя подсети.

Устанавливает имя для этого Subnetwork. Вызывает ValueError, если Subnetwork с таким же именем уже существует.

Аргументы
nameИмя для установки.
Исключения
ValueErrorВызывается, если Subnetwork с таким именем уже существует.

◆ nif() [1/2]

def nif (   self)

Получить сетевой интерфейс (NIF).

Возвращает текущий экземпляр NIF, связанный с этим Subnetwork.

Возвращает
Текущий экземпляр NIF.

◆ nif() [2/2]

def nif (   self,
NIF  nif 
)

Установка сетевого интрефейса для подсети.

Устанавливает сетевой интерйейс (экземпляр NIF) для этого Subnetwork. Вызывает ValueError, если параметр не является экземпляром класса NIF.

Аргументы
nifЭкземпляр NIF для установки.
Исключения
ValueErrorВызывается, если параметр не является экземпляром класса NIF.

Данные класса

◆ instances

list instances = []
static

◆ name

name

◆ nif

nif

◆ numbers

int numbers = 1
static