RECT/LinuxSlave

Материал из Etersoft wiki
Перейти к: навигация, поиск
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Remote Etersoft CIFS Tester - серверная часть



Описание

Linux slave for RECT - часть проекта RECT, предназначеная для тестирования реализаций сетевых протоколов в Linux.


Загрузка

На данный момент текущая версия rect slave for Linux доступна из git по адресу:


http://git.etersoft.ru/people/lbeasty/packages/rect.git/


Если Вам повезет, вы даже сможете скачать последний снапшот в .tar.gz


Состав

examples/

примеры клиентов на Python

linux-srv/

собственно slave для linux

slice/

описание интерфейсов (slice-файлы)

python/

модуль питона, упрощающий работу с rect



Зависимости

Для сборки slave вам понадобятся g++, make и Ice для разработки.


Сборка slave

cd linux-srv && make


Запуск slave

$ ./rect 

Starting RECT with endpoints tcp -p 13666

Description: Linux


RPM устанавливает rect в каталог /usr/bin.


Настройка

Сервер позволяет управлять своим поведением при помощи свойств. Свойства могут быть заданы в конфигурационном файле в формате:


<свойство> = <значение>


Подробнее о формате конфигурационного файла можно прочитать здесь.


Также свойства могут быть переданы из командной строки (их может быть несколько):


$ ./rect   --<свойство>=<значение>


пример:


$ ./rect --RECT.Endpoints='tcp -p 13555'


Существует 2 способа задать конфигурационный файл: из командной строки


$ ./rect   --Ice.Config=<путь-к-файлу>


и через переменную среды ICE_CONFIG, например в bash:


$ ICE_CONFIG=<путь к файлу> ./rect


Настройка при запуске более, чем одного слэйва в рамках одной ОС

Такой вариант приводит к проблемам и официально НЕ ПОДДЕРЖИВАЕТСЯ.
Информация сохранена как пример конфигурации и на случай если когда нибудь такая поддержка будет реализована. На данный момент рекомендуется для таких ситуаций использовать виртуализацию, например VirtualBox.


В случае запуска тестов при более, чем одном слэйве на одном компьютере, нужно слушать разные порты.


Или создаем несколько различных конфигурационных файлов, в которых указываем нужные Endpoints, или просто запускаем RECT с нужным параметром. Например, для случая двух слэйвов, первый слэйв можно запустить по умолчанию, а в другой консоли запускаем, указывая другой порт и другую папку для монтирования шары:


$ /usr/bin/rect --RECT.Endpoints='tcp -p 13555'  --Mount.Root='/tmp/rect2'


Номера портов надо учесть при конфигурации запуска тестов в клиентской части, для нашего случая, слэйвы в клиентском конфиге нужно описать примерно так:


Slave.local=LS:tcp -h localhost -p 13666

Slave.local2=LS:tcp -h localhost -p 13555


Свойства

FIXME
по русски и подробнее об этом:


Mount.Root

 all shares are mounted to <~Mount.Root>/server/share

 default: /tmp/rect



Mount.MkdirP

 command to create mount point

 default: mkdir -p



Mount.Command

 command to mount share

 default: cifsmount

 another good variant: sudo mount -t cifs



Mount.Suffix

 added to mount command after mountpoint

 default: -o noperm,setuids,guest



RECT.Endpoints

 endpoint of RECT object adapter.

 default: tcp -p 13666



RECT.CIFS.version

 version of cifs: etercifs or linux-cifs.

 default: etercifs



RECT.Description

 string that is returned by slave's describe(...) method.

 default: Linux