Hcl-get usage

Материал из ALT Linux Wiki

Описание

Эта статья написана Сергеем Котляровым и её первый оригинал находится на форуме ALT Linux

hcl-get это клиент для базы данных проб оборудования, который позволяет как загрузку своих данных на сервер, так и получение данных от сервера (как данных об оборудовании, так и данных, загруженных самими пользователями - комментариев к их данным об оборудовании/софте).

Использование hcl-get

"Заливка" пробы на сервер

Предположим, что созрело решение поделиться своими данными об оборудовании/системе с другими пользователями системы. Для этого надо дать команду

hcl-get -r

если на машине, с которой отправляются данные, имеется доступ в Сеть. Если такового доступа по какой-либо причине на машине нет, то и это не беда - можно подготовить необходимые для отправки данные командой

hcl-get -p

которая создаст два файла:

1. Зашифрованный .gpg файл для отправки с другой машины посредством команды

hcl-get -r имя.gpg

если файл скопировать в ~/.hcl-get/gpg (если директория не существует, то её нужно создать вручную) или

hcl-get -r /полный/путь/до/файла.gpg

если файл располагается по другому пути. Также можно отправить пробу (сохраненный .gpg файл) и посредством браузера через форму загрузки файлов на странице сервиса http://hcl.arenet.ru.

2. Архив .tar.(xz|bz2|gz), который предназначен в настоящее время только для управления комментарием (а в будущем, возможно, и для других функций) к пробе, должен быть скопирован на рабочую машину (или любую другую, с которой манипуляции удобнее производить) в директорию ~/.hcl-get, если предполагается в будущем использовать возможность сервиса по добавлению комментария.


При выполнении команд (hcl-get -r, hcl-get -p) будет запрошен пароль root, после чего скрипт запустит несколько утилит, которые в фоновом режиме соберут всю необходимую информацию. По успешному завершению сбора, данные будут упакованы, зашифрованы и отправлены на сервер для обработки (hcl-get -r). По результатам обработки сервер выдаст сообщение

  • либо об успешном добавлении данных и выдаст номер, который присвоен сервером пробе оборудования, а клиент сохранит архив в домашнюю директорию пользователя ~/.hcl-get
  • либо об ошибке (если имеют место быть несоответствия отправляемых данных требованиям сервера, некоторую информацию об ограничениях можно посмотреть на странице http://hcl.arenet.ru).

После успешной загрузки пробы на сервер может пройти до 3 минут, прежде, чем информация пробы будет доступна для обзора. Это связано с тем, что обработка данных вновь загруженных проб происходит по расписанию независимо от процессов загрузки пробы или добавления комментариев.

Рекомендуемая к использованию минимальная версия hcl-get - 0.3.99.36, пакеты для которой можно взять на форуме https://forum.altlinux.org/index.php?topic=36472.msg280549#msg280549 (должно работать на системах, базирующихся на бранче p5.1 и младше, также возможна работа на более старых бранчах, но должно быть обеспечено наличие в системе пакета system-report версии не ниже 0.0.6). Владельцам p8/сизифа следует иметь ввиду ошибку altbug #32222.

Получение информации о пробе

После того, как данные добавлены на сервер и им присвоен номер, можно обратиться за содержимым этих данных командой

hcl-get -gr номер

где номер - числовой код присвоенный пробе в хранилище. Данные пробы вместе с комментарием (если он добавлен), можно получить командой

hcl-get -g номер

Проверка проб на наличие в базе сервера

Может случиться так, что отправляемых данных будет много, а часть архивов может быть переименована произвольным образом и их названия (hcl-get сохраняет успешно отправленные данные в архив ~/.hcl-get/номер.tar.(xz/bz2/gz)) не будут соответствовать внутренней нумерации сервера. В этом случае можно проверить, имеются ли данные некоторого архива в хранилище (и у них есть номер) либо нет. В простейшем случае это можно сделать, вызвав диалоговый режим командой

hcl-get -t

Если требуется проверить какой-то один файл и известно его имя и расположение (~/.hcl-get), то это можно сделать командой

hcl-get -r имя.tar.(xz/bz2/gz)

Если файл располагается вне пределов домашней директории ~/.hcl-get, то проверить файл можно командой

hcl-get -r /полный/путь/имя.tar.(xz/bz2/gz)

Работа с комментариями

Теперь, когда проба оборудования успешно загружена на сервер (дожидаться обработки данных пробы прежде, чем добавлять комментарий, вовсе необязательно: если проба была успешно загружена на сервер и ей был присвоен номер, то комментарий можно добавлять сразу после этого события), хотелось бы написать несколько строк о работоспособности имеющегося оборудования. Другими словами, мы хотим прокомментировать сухой язык статистики, которым составлены отчеты о нашем оборудовании (то, что можно увидеть в выводе команды hcl-get -gr номер). Для этого нужно сделать два действия:

1. Собственно, написать либо мысленно набросать сам комментарий на тему отправленных ранее данных. Здесь есть три условия его составления (использование любого текстового редактора на выбор и применяемого форматирования не являются частью условий):

  • длина комментария ограничена (информацию об ограничениях можно посмотреть на странице http://hcl.arenet.ru) пятью килобайтами (на мой взгляд, этого вполне достаточно, однако, этот лимит может быть пересмотрен)
  • кодировка комментария может быть либо utf-8 либо ascii и это должен быть обычный txt файл (но не .doc и т.п.) с произвольным расширением (например, это может быть и .log файл, если он является обычным файлом типа txt) либо вообще без расширения
  • для удобства манипулирования комментарием, лучше всего его сохранить рядом с архивом пробы в файл ~/.hcl-get/номер.txt, где номер соответствует номеру пробы, для которой составляется комментарий, однако, это делать необязательно и сохранить файл можно в любое удобное место, главное помнить полный путь до файла с комментарием

Если комментарий не планируется слишком большим и умещается на одной строке, то всё вышеперечисленное можно пропустить и перейти сразу ко второму действию

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

 hcl-get -c

Можно несколько конкретизировать запрос, например, указав номер пробы и комментарий в одной строке

 hcl-get -c номер комментарий

или файл комментария, располагающийся в домашней директории ~/.hcl-get и имеющий имя с расширением

 hcl-get -c имя.расширение

в этом случае и в случае, описанном ниже, будет выдан список имеющихся в домашней директории ~/.hcl-get проб и запрошено на выбор:

  • номер строки, содержащую информацию о нужном файле пробы в списке обнаруженных файлов из ~/.hcl-get
  • имя архива с расширением, если файлом пробы является архив из домашней директории ~/.hcl-get или полный путь к архиву с пробой, если файл располагается вне домашнего каталога ~/.hcl-get), также данный запрос будет выдан в случае, если не удалось обнаружить файлов проб в ~/.hcl-get
 hcl-get -c /полный/путь/имя.расширение

если файл комментария располагается вне пределов домашней директории ~/.hcl-get по пути /полный/путь/имя.расширение.

См. справку по программе для полного представления о возможностях конкретизировать запрос на добавление комментария.

Получение содержимого комментария

После того, как комментарий успешно добавлен к данным пробы, к его содержимому можно обратиться командой

 hcl-get -gc номер

где "номер" равен номеру, присвоенному пробе оборудования сервером

Получение содержимого лог файлов

Просмотреть список доступных логов для пробы можно командой

hcl-get -gl номер

где номер - числовой код присвоенный пробе в хранилище. Содержимое конкретного лога из списка по команде выше можно получить командой

hcl-get -gl номер.лог

Поиск

После добавления данных в базу, можно поискать что-нибудь запоминающееся (если, конечно, в базе присутствуют данные, которые кто-либо загружал). Поиск не чувствителен к регистру, а также разделен на поиск среди данных пробы, на поиск среди комментариев, на поиск среди проб и комментариев.

1) Поиск среди данных проб делается командой

hcl-get -qr что_ищем

2) Поиск среди комментариев делается командой

hcl-get -qc что_ищем

3) Поиск среди данных проб и комментариев делается командой

hcl-get -q что_ищем

Статистика сервера

Количество загруженных на сервер проб и количество добавленных комментариев можно узнать, выполнив команду

hcl-get -a

Получить количество добавленных комментариев

hcl-get -ac

Получить количество загруженных проб

hcl-get -ar

Прямые запросы на получение данных

Поскольку получение данных основано на определенном формате запросов к серверу, у клиента есть возможность отправить подобный запрос безотносительно поведения опций -g/-gr/-gc. Для этого режима команда получения данных будет следующая

hcl-get -gq проба~комментарий

где "проба" и "комментарий" - числа, назначенные соответственно пробе и комментарию пробы. В данном случае номер получаемой пробы и номер пробы, для которой хотелось бы получить комментарий, могут быть различными. Также имеется шаблон для получения содержимого всех проб и/или комментариев. Для этого следует вместо номера (числа) применить дефис (например, получить все пробы и все комментарии "-~-", получить все комментарии "~-" или все пробы "-").

Для получения содержимого логов предназначен запрос вида

hcl-get -gq проба.лог

где "лог" может отсутствовать и тогда результатом запроса будет список реально доступных в конкретной пробе лог файлов.

Возможности развития системы

1. Несмотря на то, что формат выводимых данных на сегодняшний момент неизменен, это всего лишь кажущееся постоянство. На самом деле формат выводимых данных может быть изменён вплоть до неузнаваемости. Но он не меняется по той простой причине, что нет предложений и запросов на изменение этого формата к виду, который может быть востребован. То есть, формат обсуждается и предложения по нему принимаются: как по форматированию, так и по объёму (по детальности).

2. Система накопления информации об оборудовании не содержит разбиения на категории (как это сделано в других подобных системах). Чтобы это можно было сделать, нужна реальная перспектива востребованности использования данной системы. А пока нет никаких признаков этого - нет и категорий. Другими словами, поиск по выводимой информации и так вам покажет искомый vid или pid в привязке к номерам проб. Для чего нужно разбиение на категории ? Только лишь для того, чтобы быть похожими на очередную базу которых в Сети есть ? Или, быть может, для того, чтобы рисовать диаграммы, показывающие процентовку от всего числа проб, содержащих то или иное конкретное железо ? Нет чётких и понятных критериев, для чего нужно разбиение на категории (и, самое главное, какой категории пользователей системы она нужна).

3. Самое главное, чего не хватает для активного существования имеющейся системы, это живого отклика тех, кому подобная система нужна для реального использования, а не просто затем, чтобы оно было.

4. Серверная часть имеет закрытый код (условно открытый - можно так сказать, разъяснения по части лицензирования были отправлены mike, как и одна из промежуточных версий исходников), но это связано с тем, что сама серверная часть написана на коленке, требует внимания к себе по части безопасности (с учетом того, что возможности системы по сбору проб не должны пострадать).

5. Разработка ведется старинными методами: код клиента доступен только в виде srpm (автор - чайник и не имеет желания и времени на создание чего-то вроде github аккаунта или нечто подобного), источник srpm - [тема на форуме]. Планируется доработать (подробное комментирование) код клиента с тем, чтобы из него был понятен механизм ("протокол") взаимодействия клиента и сервера. Это даст возможность создать свой клиент на языке программирования, который ближе потенциальному автору такого клиента. Однако, в отсутствии решения по 3-му и 4-му пунктам система рискует остаться невостребованной.