Hcl-get usage

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

Описание

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

В настоящее время автором сервиса и единственным его разработчиком является Сергей Котляров.

Пакеты rpm и srpm

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

Рекомендуемая к использованию минимальная версия hcl-get - 0.3.99.36, которая должна работать и на системах, базирующихся на бранче p5.1/младше, также возможна работа на более старых бранчах, но должно быть обеспечено наличие в системе пакета system-report версии не ниже 0.0.6. Владельцам p8/сизифа следует иметь ввиду ошибку altbug #32222.

Использование клиента hcl-get для сервиса по сбору проб оборудования

Отправка пробы на сервер

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

hcl-get -r

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

hcl-get -p

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

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

Внимание! Данный вариант временно недоступен
  • посредством команды
hcl-get -r имя.gpg

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

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

если файл .pgp располагается по другому пути.

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

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

  • либо об успешном добавлении данных и выдаст номер, который присвоен пробе оборудования, при этом архив с пробой будет сохранён в директорию ~/.hcl-get;
  • либо об ошибке, если имеют место быть несоответствия отправляемых данных требованиям сервера.

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

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

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

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 -r /полный/путь/имя.tar.(xz/bz2/gz)

если файл с пробой располагается по другому пути.

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

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

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

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

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

 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 -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

Формат запросов на получение данных

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

Для режима работы с данными проб и комментариями предназначен формат запросов вида

архитектура_проба~комментарий

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

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

архитектура_проба.лог

где "лог" может отсутствовать и тогда результатом запроса

архитектура_проба.

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

Если часть запроса архитектура_ не указана, то по умолчанию подразумевается раздел x86.

Внимание! В настоящее время реализован только arch для значений i586, i686, x86_64, т.е., фактически, база состоит только из раздела для машин на базе архитектуры x86

.

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

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

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

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

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

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

Примечания

  1. Начальные наброски, сделанные для данной статьи доступны на форуме ALT Linux