Реклама:
Наши партнёры:
Наша рассылка:
|
|
Триггеры ClearCase: Создание гибкой системы распределения доступа к элементам версионного хранилища
Статьи
→
Управление конфигурациями и изменениями (Subversion, IBM Rational ClearCase, ClearQuest и Jira)
Триггеры ClearCase: Создание гибкой системы распределения доступа к элементам версионного хранилища |
|
 |
Уровень сложности: средний
Рустам Зайдуллин, ведущий инженер, ТатАСУнефть" ОАО "Татнефть"
Александр Новичков, руководитель отдела внедрения и консалтинга, СМ-Консалт
01.04.2009
При
внедрении управления конфигурациями и, соответственно, инструментария
версионного хранения менеджеры проектов нередко задают вопросы об
ограничении доступа на внесение изменений в исходные коды, которые
теперь оказались вынесенными в версионное хранилище.
При внедрении
управления конфигурациями и, соответственно, инструментария версионного
хранения менеджеры проектов нередко задают вопросы об ограничении
доступа на внесение изменений в исходные коды, которые теперь оказались
вынесенными в версионное хранилище, к которому, несомненно, имеют
доступ больше специалистов, чем к каталогу с исходным кодом на жёстком
диске разработчика.
Это желание менеджера контролировать новый
процесс вполне понятно и законно, так как человек несёт ответственность
за конечный результат, и появление потенциального источника рисков
внесения неконтролируемых на начальном этапе изменений в исходные
тексты не может его не беспокоить несмотря на снижение многих других
рисков, в частности, сохранения всех промежуточных версий,
централизованного архивирования и сохранения истории изменений.
Традиционно
для определения прав доступа к каталогам и элементам версионного
хранилища в ClearCase используются доменные группы, в которые
необходимо внести всех специалистов – участников процесса изменения.
После создания группы средствами интерпретатора командной строки
cleartool каталогу устанавливается уровень доступа – только для членов
созданной группы. Этот вариант вполне хорош при разовом выполнении,
например, при создании версионного хранилища, но для установки
дополнительных правил доступа может быть неудобен по ряду причин,
например, дополнительное звено в лице администратора домена, таймаут на
обновление доменных настроек. Если в организации строго регламентирован
процесс изменения доменных настроек, что на сегодня зачастую имеет
место, то добавление новому специалисту прав на изменение исходного
кода становится слишком затратной по времени и числу привлекаемых
специалистов операцией.
Поэтому когда в очередной раз очередной
лидер разработчиков задал вопрос о том, сможет ли он сам ограничить
доступ на изменение исходных кодов по своему усмотрению, мы поставили
себе задачу предоставить ему такую возможность (рисунок 1).
Рисунок 1. Ограничение доступа на изменение содержимого каталога
Разработанное решение состоит из триггера, срабатывающего перед
выполнением операции CheckOut, и файла, содержащего список путей к
каталогам, для которых ограничен доступ, и соответствующих этим путям
учётных записей разработчиков, работающих в версионном хранилище и
имеющих доступ на изменение содержимого этих каталогов. При попытке
перевода элемента версионного хранилища в редактируемое состояние
триггер срабатывает и выполняет проверку, входит ли элемент в число
элементов с ограниченным уровнем доступа, и имеет ли в этом случае
разработчик право на изменение этого элемента. Пути к каталогам с
ограниченным доступом прописываются полностью, начиная с корневого
каталога версионного хранилища. Для передачи в тело триггера имени
пользователя и пути к элементу версионного хранилища используются
переменные ClearCase – CLEARCASE_PN и CLEARCASE_USER.
Структура
файла со списком настроек определения доступа проста – каждая строка
содержит путь от корневого каталога версионного хранилища
непосредственно к каталогу, для которого устанавливается правило
доступа, и далее указывается список разработчиков, которые имеют право
на внесение изменений во вложенные в каталог элементы. Файл с описанием
политик доступа помещается под версионное хранение в корневой каталог
хранилища, права на его изменение даются только администратору системы
версионного хранения, лидеру разработчиков, и специалистам, которых
определяет менеджер.
Для снижения вероятности опечатки при записи
нового правила и для повышения удобства использования описанного
решения был разработан дополнительный скрипт, встроенный в контекстное
меню браузера ClearCase и выполняющий запись нового правила в файл.
Рисунок 2. Вызов скрипта для создания правила доступа
Рисунок 3. Ввод имён пользователей с правом доступа на изменение
В
итоге менеджер получил дополнительный инструмент для оперативного
создания правил доступа на внесение изменений в материалы проекта,
выполненный с минимальными затратами и при этом обладающий достаточно
удобным интерфейсом (рисунки 2 и 3).
Далее – описание обоих скриптов с комментариями.
$fail="M:\\$ENV{CLEARCASE_VIEW_TAG}\\$ENV{CLEARCASE_VOB_PN}\\access.txt";
|
Формируем в переменной полный путь к файлу с описанием правил
доступа. Так как название View у каждого пользователя своё, необходимо
определять путь посредством переменной среды CLEARCASE_VIEW_TAG.
$cur_path=$ENV{CLEARCASE_PN};
|
Записываем в переменную путь к элементу, на котором сработал триггер:
$cur_path=substr($cur_path, 3);
$beg=index($cur_path,"\\");
$cur_path=substr($cur_path, $beg+1);
|
Обрабатываем переменную с путём – отсекаем имя тома, логического диска MVFS, и название View разработчика:
open(FL, $fail) || die "Can't open file \n";
$i=0;
while (<FL>)
{
@lines[$i]=split(FL);
$i=$i+1;
};
close FL;
|
Считываем в массив строки из файла с правилами доступа. Каждая
строка содержит описание правил доступа к одному каталогу, для которого
дополнительные ограничения были введены:
Построчно обрабатываем все строки файла:
Определение позиции в строке символа табуляции:
$path=substr($line, 0, $tab);
|
Присваиваем переменной часть строки, содержащую описание пути к каталогу:
Приращиваем единицу к номеру символа табуляции в строке, чтобы перейти к следующему:
$names=substr($line, $tab);
|
Присваиваем переменной часть строки, содержащую имена учётных записей, имеющих право на изменение элементов каталога:
if ($cur_path =~ $path)
{
|
Проверяем, принадлежит ли обрабатываемый элемент каталогу, для которого заданы особые условия доступа:
if ($names =~ $ENV{CLEARCASE_USER})
{
exit(0);
}
|
Если учётная запись указана в списке имеющих право на изменение элементов каталога,триггер завершает работу:
else
{
$ent = system("clearprompt proceed -newline -type error -mask proceed -prompt
\"У вас нет прав на изменение этого элемента!\n
Обратитесь к менеджеру проекта\" -prefer_gui ");
exit(1);
};
};
};
exit(0);
|
Если учётная запись не указана в списке имеющих право на изменение
элемента, то выводим сообщение об отсутствии необходимых прав и
завершаем работу триггера с блокированием инициализировавшего триггер
действия. Соответственно, если изменяемый файл не входит в перечень
материалов, подлежащих ограничению доступа на изменение, триггер
завершает работу в обычном режиме.
Для внесения нового правила в
файл с описанием прав доступа был написан скрипт, вызываемый из
контекстного меню каталога в версионном хранилище. Таким образом, для
добавления нового правила доступа менеджер просто находит каталог, к
которому намерен создать правило, вызывает из контекстного меню команду
и вводит в окне диалога названия учётных записей разработчиков, которые
имеют право на изменение материалов:
Присвоение переменной входного параметра – путь к каталогу:
$path_f="M:\\DEV_View\\ARC\\access.txt";
|
Запись в переменную пути к файлу с настройками:
prompt: $string="clearprompt text -outfile names.tmp -prompt
\"Введите через пробел названия учётных записей с правом доступа\"";
$lab=system(" $string ");
if ($lab != 0) {
Win32::MsgBox("Операция прервана пользователем");
die "";
};
|
Вывод диалога для ввода названия учётных записей разработчиков с правом доступа:
open(FL, "names.tmp") || die "Can't open file \n";
$i=0;
while (<FL>)
{
@pas[$i]=split(FL);
$i=$i+1;
};
close FL;
$names=$pas[0];
|
Считывание введённого значения:
if ($names eq "") {
goto prompt ;
};
|
Если введено пустое значение – возврат к диалогу:
$path_d=substr($path_d, 3);
$beg=index($path_d,"\\");
$path_d=substr($path_d, $beg+1);
|
Отсечение названия тома логического диска MVFS и названия View:
$rule=$path_d."\t".$names."\n";
|
Формирование строки с правилом – путь к каталогу, разделитель – знак
табуляции, список разработчиков с правом доступа, знак перевода строки:
system("cleartool checkout -c
\"Добавление правила доступа: $rule\" \"$path_f\" ");
open(FILE, ">>$path_f") || die "Can't open file \n";
print FILE "$rule";
close FILE;
system("cleartool checkin -nc \"$path_f\" ");
|
Запись в файл с настройками, находящийся под версионным контролем, нового правила.
Таким
образом, число операций сократилось – вместо создания новой группы
пользователей, добавления пользователей в группу, изменения прав
доступа к каталогу – Protection достаточно добавления новой записи в
файл настроек в оговоренном формате. Использование решения позволило
лидеру разработчиков собственноручно, в любое время и без привлечения
третьих лиц – администратора ClearCase, администратора домена –
устанавливать и менять по своему усмотрению права на изменение
элементов версионного хранилища.
Полный листинг скрипта триггера
$fail="M:\\$ENV{CLEARCASE_VIEW_TAG}\\$ENV{CLEARCASE_VOB_PN}\\access.txt";
$cur_path=$ENV{CLEARCASE_PN};
$cur_path=substr($cur_path, 3);
$beg=index($cur_path,"\\");
$cur_path=substr($cur_path, $beg+1);
open(FL, $fail) || die "Can't open file \n";
$i=0;
while (<FL>)
{
@lines[$i]=split(FL);
$i=$i+1;
};
close FL;
foreach $line (@lines)
{
$tab=index($line, "\t");
$path=substr($line, 0, $tab);
$tab++;
$names=substr($line, $tab);
if ($cur_path =~ $path)
{
if ($names =~ $ENV{CLEARCASE_USER})
{
exit(0);
}
else
{
$ent = system("clearprompt proceed -newline -type error -mask proceed -prompt
\"У вас нет прав на изменение этого элемента!\n
Обратитесь к менеджеру проекта\" -prefer_gui ");
exit(1);
};
};
};
exit(0);
|
Полный листинг скрипта для контекстного меню
$path_d=@ARGV[0];
$path_f="M:\\DEV_View\\ARC\\access.txt";
prompt: $string="clearprompt text -outfile names.tmp -prompt
\"Введите через пробел названия учётных записей с правом доступа\"";
$lab=system(" $string ");
if ($lab != 0) {
Win32::MsgBox("Операция прервана пользователем");
die "";
};
open(FL, "names.tmp") || die "Can't open file \n";
$i=0;
while (<FL>)
{
@pas[$i]=split(FL);
$i=$i+1;
};
close FL;
$names=$pas[0];
if ($names eq "") {
goto prompt;
};
$path_d=substr($path_d, 3);
$beg=index($path_d,"\\");
$path_d=substr($path_d, $beg+1);
$rule=$path_d."\t".$names."\n";
system("cleartool checkout -c \"Добавление правила доступа: $rule\" \"$path_f\" ");
open(FILE, ">>$path_f") || die "Can't open file \n";
print FILE "$rule";
close FILE;
system("cleartool checkin -nc \"$path_f\" ");
|
Формат файла описания правил доступа
src\modul_a\sub_modul_1\ Developer1, Developer2, Developer3
src\modul_b\sub_modul_2\ Developer1, Developer2
src\modul_b\sub_modul_3\ Developer2, Developer3, Developer4
|
|
07.04.2009
Комментарии
Добавить комментарий (анонимные комментарии не публикуются!!!)
Новости и пресс-релизы СМ-Консалт
21.02.2012 12:42:20 Новая статья: IT и психология. Человеческий фактор в парном программировании: почему многие не получают желаемого от его внедрения?
Статья, находящаяся перед вами, открывает цикл статей о человеческом
факторе, Agile-практиках и других полезных приемах, используемых при
управлении командами в ИТ. Объединяет рассматриваемые практики и приемы
одно – они позволяют проявиться положительным эффектам, связанным с
человеческим фактором. И мы объясняем, почему с точки зрения психологии,
это происходит. Так сказать, подводим теоретическую и экспериментальную
базу под то, что себя уже давно зарекомендовало и работает. Или под то,
что работает не у всех, и потому является предметом оживленных споров и
дискуссий. И начинаем мы наши исследования с рассмотрения эффекта
парного программирования через призму экспериментов социальной
психологии.
Отдельную благодарность за рецензию и время, потраченное на прочтение
первого варианта статьи, выражаем Асхату Уразбаеву,
ценные замечания которого позволили не только улучшить данную статью,
но и позволили убедиться в необходимости и востребованности именно цикла
статей!
Читать -->
27.12.2011 16:15:27 Компания "СМ-Консалт" получила отзыв о работах в Федеральной Налоговой Службе (ГНИВЦ ФНС)
Специалистами ООО «СМ-Консалт» в 2010-2011г. был выполнен проект
по настройке и внедрению системы управления жизненным циклом разработки
программных систем в части управления изменениями и конфигурациями на
основе Microsoft Visual Studio Team Foundation Server 2010 для
Филиала Федерального государственного унитарного предприятия «Главный
научно-исследовательский вычислительный центр Федеральной налоговой
службы» в Приволжском Федеральном округе (Филиал ФГУП ГНИВЦ ФНС России в
ПФО).
28.11.2011 15:05:11 Новая статья: "Всегда ли «Да» – это «Да»? Или как нас вынуждают принимать решения"
Мы предлагаем вашему вниманию цикл статей, в основу которых положены
психологические практики и приемы, позволяющие влиять на решения,
принимаемые людьми. Эта идея была логическим продолжением ряда
выступлений с докладами о коммуникациях в проектах разработки и
внедрения ПО. Давайте, не откладывая в долгий ящик, начнем с самого
простого приема убеждения, с которым сталкиваемся ежедневно в магазинах,
в транспорте, в разговорах с коллегами… да мало ли где еще!
Авторы: Новичков Александр и Карабанова Галина.
Читать -->
10.10.2011 11:16:06 Компания «СМ-Консалт» открывает новое направление продаж - ПО Adobe Connect
Программное обеспечение Adobe Connect является гибкой системой
web-коммуникации с высоким уровнем информационной безопасности. Adobe
Connect предоставляет такие важнейшие функции корпоративного
взаимодействия, как деловое общение и совместная работа сотрудников на
уровне предприятий, дистанционное обучение, организация широкомасштабных
сетевых семинаров и презентаций. Система Adobe Connect базируется на
технологии Adobe Flash, а также Air, и поэтому позволяет подключать
сотрудников к единому пространству взаимодействия через web-браузер с
любых устройств.
17.09.2011 21:40:22 Новая статья: "Разработка прикладного программного обеспечения с использованием Rational Unified Process на Иркутском Авиационном заводе"

На сайте СМ-Консалт открыт новый раздел Статьи наших заказчиков об успешных внедрениях IBM Rational и Microsoft. Статьи для данного раздела пишутся нашими заказчиками и рассказывают о сути проектов внедрения технологий IBM и Microsoft. Первая статья, представленная вашему вниманию написана сотрудниками Иркутского Авиационного Завода (ИАЗ).
Иркутский авиазавод имеет длительный опыт разработки программного
обеспечения для информационной поддержки ключевых бизнес-процессов
предприятия. Однако, в связи с увеличивающейся сложностью и повышением
требований к разрабатываемому программному обеспечению, возникла
настоятельная необходимость усовершенствовать процесс разработки:
повысить качество разрабатываемых программных продуктов,
стандартизировать процесс с увеличением его эффективности.
С целью повышения качества программного обеспечения собственной
разработки и сокращения сроков разработки руководство Управления
информационных технологий (УИТ) Иркутского Авиационного Завода в 2006г. приняло решение о внедрении технологии разработки ПО на базе методологии Rational Unified Process и с использованием инструментов автоматизации IBM Rational.
13.09.2011 12:07:29 Новый тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах»

Компания «СМ-Консалт» представляет новый тренинг, организуемый совместно с компанией «КарьерKаб» - «Коммуникации
и психология межличностных отношений в ИТ-проектах.
Тренинг позволит понять, насколько коммуникации в проектах важнее инструментов, что люди и их взаимоотношения зачастую оказываются решающим фактором, определяющим успех проекта. Если более пятидесяти процентов рабочего времени вы тратите на взаимодействие с заказчиком, если вам небезразлична судьба вашей команды и вы хотите, чтобы ваша команда работала как часы, реализуя проекты точно, вовремя и без перерасхода ресурсов - наш тренинг поможет в этом.
01.08.2011 17:44:25 Наша компания получила отзыв о сотрудничестве с ОАО «Нордеа Банк»

В 2010-2011 гг. наши специалисты провели в Нордеа Банке проект по предварительному обследованию, развертыванию инструментальных средств и ряд тренингов по обучению методологии и работе с продуктами IBM Rational: «Методология разработки программных систем IBM Rational Unified Process», «Управление требованиями с использованием IBM Rational RequisitePro», «Управление изменениями в IBM Rational ClearQuest».
24.06.2011 01:27:57 Бесплатный семинар-вебинар «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»
Компании СМ-Консалт , Legal SoftWaveTM и DNA приглашают Вас посетить бесплатный семинар-вебинар, посвященный обзору технологий и методологий, которые позволяют повысить эффективность ИТ подразделений. На семинаре рассматриваются технологии IBM Rational, Microsoft TFS, а также системы аналитической обработки информации (Business Intelligence) (IBM SPSS, Deductor, QlikView и другие).
Планируемая продолжительность семинара - 8 академических часов.
Место проведения: Санкт-Петербург (очно) и Интернет (для всех желающих: приходите сами и приглашайте друзей!).
Дата и время: 14 июля 2011 в 9 00.
ВНИМАНИЕ: если вы не сможете очно приехать на семинар - это не страшно, так как семинар будет транслироваться через интернет в формате вебинара и к нему, после регистрации, смогут присоединиться все желающие. Трансляция будет осуществляться посредством технологии Adobe Connect Pro , это позволит Вам присоединяться к конференции без установки дополнительного ПО - только интернет браузер.
Смотреть программу -->
07.06.2011 13:02:44 Компания "СМ-Консалт" провела серию успешных семинаров для ГНИВЦ ФНС России

Проведенные семинары были посвящены средствам разработки и тестирования программного обеспечения компании Майкрософт для сотрудников ГНИВЦ ФНС России. Слушатели семинаров отметили высокую квалификацию тренеров компании "СМ-Консалт" по организации учебного процесса и повышению квалификации специалистов, прошедших обучение.
Индивидуальный подход при решении любых вопросов, возникающих в процессе обучения, оперативность принятия решений, гарантированное выполнение взятых на себя обязательств и профессионализм позволили провести обучение на самом высоком уровне.
07.12.2010 12:28:15 Мы идем в Твиттер!

Наша компания открыла аккаунт в системе микроблоггинга Twiter.Теперь все официальные и неофициальные новости будут появляться в нашей ленте в Twitter.
Там же возможно будет задать прямые вопросы специалистам СМ-Консалт, по всем вопросам, связанным как с деятельностью компании, так и с техническими аспектов продуктов IBM и собственных решений СМ-Консалт.
Следуйте за нами!
https://twitter.com/cmconscom
11.11.2010 14:14:14 Осенний марафон Microsoft ALM Road Show
Компания СМ-Консалт совместно с образовательным центром Careerlab провели серию семинаров в рамках мероприятий ALM Roadshow 2.0 в крупнейших городах, расположенных на Волге, – крупных научных центрах, в которых ИТ технологии находятся на высоком уровне. Семинары прошли в Самаре, Нижнем Новгороде и Казани. Cеминары были посвящены использованию новых инструментов MS Visual Studio Team System в проектах разработки ПО.
В семинарах принимали участие представители различных ролей процесса разработки ПО: от разработчиков до руководителей предприятий различного уровня. Темы, обсуждаемые в ходе семинара, вызвали большой интерес аудитории и немалое количество вопросов, на которые были предоставлены исчерпывающие ответы. В процессе семинара также было показано большое количество примеров, которые дают представление о возможностях инструментов MS Team System. Средняя оценка за семинар составила 4,6 балла по пятибальной шкале
08.09.2010 18:37:52 Скидки до 30% на программное обеспечение IBM Rational

Компания СМ-Консалт предлагает для всех желающих на льготных условиях приобрести программное обеспечение IBM Rational. Снижение цен связано с тем, что мы стараемся быть как можно ближе к нашим клиентам, многие из которых постепенно начали преодолевать последствия финансового кризиса.Наше предложение поможет с минимальными издержками приобрести ПО IBM Rational, что является хорошим капиталовложением.
Скидки до 1 декабря 2010 года:
- 20% скидки при покупке IBM Rational ClearCase, ClearQuest, CearCase LT, при приобретении пяти и более лицензий*;
- 30% скидки при покупке пяти любых продуктов IBM Rational + решение или тренинг СМ-Консалт*.
Для получения деталей обязательно свяжитесь с нашими менеджерами
|
|