2021-09-24 06:48:48 +00:00
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
//
|
|
|
|
// SCSI Target Emulator RaSCSI (*^..^*)
|
|
|
|
// for Raspberry Pi
|
|
|
|
//
|
|
|
|
// Copyright (C) 2021 Uwe Seimet
|
|
|
|
//
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#include "devices/file_support.h"
|
|
|
|
#include "devices/disk.h"
|
|
|
|
#include "devices/device_factory.h"
|
|
|
|
#include "devices/device.h"
|
|
|
|
#include "protobuf_util.h"
|
|
|
|
#include "rascsi_version.h"
|
|
|
|
#include "rascsi_interface.pb.h"
|
2021-10-17 06:51:14 +00:00
|
|
|
#include "rascsi_image.h"
|
|
|
|
#include "rascsi_response.h"
|
2021-09-24 06:48:48 +00:00
|
|
|
|
|
|
|
using namespace rascsi_interface;
|
2021-10-17 06:51:14 +00:00
|
|
|
using namespace protobuf_util;
|
2021-09-24 06:48:48 +00:00
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
RascsiResponse::RascsiResponse(DeviceFactory *device_factory, const RascsiImage *rascsi_image)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
2021-10-17 06:51:14 +00:00
|
|
|
this->device_factory = device_factory;
|
|
|
|
this->rascsi_image = rascsi_image;
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbDeviceProperties *RascsiResponse::GetDeviceProperties(const Device *device)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
PbDeviceProperties *properties = new PbDeviceProperties();
|
|
|
|
|
|
|
|
properties->set_luns(device->GetSupportedLuns());
|
|
|
|
properties->set_read_only(device->IsReadOnly());
|
|
|
|
properties->set_protectable(device->IsProtectable());
|
|
|
|
properties->set_stoppable(device->IsStoppable());
|
|
|
|
properties->set_removable(device->IsRemovable());
|
|
|
|
properties->set_lockable(device->IsLockable());
|
|
|
|
properties->set_supports_file(dynamic_cast<const FileSupport *>(device));
|
|
|
|
properties->set_supports_params(device->SupportsParams());
|
|
|
|
|
|
|
|
PbDeviceType t = UNDEFINED;
|
|
|
|
PbDeviceType_Parse(device->GetType(), &t);
|
|
|
|
|
|
|
|
if (device->SupportsParams()) {
|
2021-10-17 06:51:14 +00:00
|
|
|
for (const auto& param : device_factory->GetDefaultParams(t)) {
|
2021-09-24 06:48:48 +00:00
|
|
|
auto& map = *properties->mutable_default_params();
|
|
|
|
map[param.first] = param.second;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
for (const auto& block_size : device_factory->GetSectorSizes(t)) {
|
2021-09-24 06:48:48 +00:00
|
|
|
properties->add_block_sizes(block_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
return properties;
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
void RascsiResponse::GetDeviceTypeProperties(PbDeviceTypesInfo& device_types_info, PbDeviceType type)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
PbDeviceTypeProperties *type_properties = device_types_info.add_properties();
|
|
|
|
type_properties->set_type(type);
|
2021-10-17 06:51:14 +00:00
|
|
|
Device *device = device_factory->CreateDevice(type, "");
|
2021-09-24 06:48:48 +00:00
|
|
|
type_properties->set_allocated_properties(GetDeviceProperties(device));
|
|
|
|
delete device;
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
void RascsiResponse::GetAllDeviceTypeProperties(PbDeviceTypesInfo& device_types_info)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
2022-02-10 18:54:48 +00:00
|
|
|
int ordinal = 1;
|
|
|
|
while (PbDeviceType_IsValid(ordinal)) {
|
|
|
|
PbDeviceType type = UNDEFINED;
|
|
|
|
PbDeviceType_Parse(PbDeviceType_Name(ordinal), &type);
|
|
|
|
GetDeviceTypeProperties(device_types_info, type);
|
|
|
|
ordinal++;
|
|
|
|
}
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
void RascsiResponse::GetDevice(const Device *device, PbDevice *pb_device)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
pb_device->set_id(device->GetId());
|
|
|
|
pb_device->set_unit(device->GetLun());
|
|
|
|
pb_device->set_vendor(device->GetVendor());
|
|
|
|
pb_device->set_product(device->GetProduct());
|
|
|
|
pb_device->set_revision(device->GetRevision());
|
|
|
|
|
|
|
|
PbDeviceType type = UNDEFINED;
|
|
|
|
PbDeviceType_Parse(device->GetType(), &type);
|
|
|
|
pb_device->set_type(type);
|
|
|
|
|
|
|
|
pb_device->set_allocated_properties(GetDeviceProperties(device));
|
|
|
|
|
|
|
|
PbDeviceStatus *status = new PbDeviceStatus();
|
|
|
|
pb_device->set_allocated_status(status);
|
|
|
|
status->set_protected_(device->IsProtected());
|
|
|
|
status->set_stopped(device->IsStopped());
|
|
|
|
status->set_removed(device->IsRemoved());
|
|
|
|
status->set_locked(device->IsLocked());
|
|
|
|
|
|
|
|
if (device->SupportsParams()) {
|
|
|
|
for (const auto& param : device->GetParams()) {
|
|
|
|
AddParam(*pb_device, param.first, param.second);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const Disk *disk = dynamic_cast<const Disk*>(device);
|
|
|
|
if (disk) {
|
|
|
|
pb_device->set_block_size(device->IsRemoved()? 0 : disk->GetSectorSizeInBytes());
|
|
|
|
pb_device->set_block_count(device->IsRemoved() ? 0: disk->GetBlockCount());
|
|
|
|
}
|
|
|
|
|
|
|
|
const FileSupport *file_support = dynamic_cast<const FileSupport *>(device);
|
|
|
|
if (file_support) {
|
|
|
|
Filepath filepath;
|
|
|
|
file_support->GetPath(filepath);
|
|
|
|
PbImageFile *image_file = new PbImageFile();
|
2021-10-17 06:51:14 +00:00
|
|
|
GetImageFile(image_file, device->IsRemovable() && !device->IsReady() ? "" : filepath.GetPath());
|
2021-09-24 06:48:48 +00:00
|
|
|
pb_device->set_allocated_file(image_file);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
bool RascsiResponse::GetImageFile(PbImageFile *image_file, const string& filename)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
if (!filename.empty()) {
|
2021-09-30 17:22:57 +00:00
|
|
|
image_file->set_name(filename);
|
2021-10-17 06:51:14 +00:00
|
|
|
image_file->set_type(device_factory->GetTypeForFile(filename));
|
2021-09-24 06:48:48 +00:00
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
string f = filename[0] == '/' ? filename : rascsi_image->GetDefaultImageFolder() + "/" + filename;
|
2021-09-24 06:48:48 +00:00
|
|
|
|
|
|
|
image_file->set_read_only(access(f.c_str(), W_OK));
|
|
|
|
|
|
|
|
struct stat st;
|
2021-09-30 21:31:09 +00:00
|
|
|
if (!stat(f.c_str(), &st) && !S_ISDIR(st.st_mode)) {
|
2021-09-24 06:48:48 +00:00
|
|
|
image_file->set_size(st.st_size);
|
2021-09-30 17:22:57 +00:00
|
|
|
return true;
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
}
|
2021-09-30 17:22:57 +00:00
|
|
|
|
|
|
|
return false;
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
|
2021-12-19 10:49:17 +00:00
|
|
|
void RascsiResponse::GetAvailableImages(PbImageFilesInfo& image_files_info, const string& default_image_folder,
|
2021-12-22 08:25:05 +00:00
|
|
|
const string& folder, const string& folder_pattern, const string& file_pattern, int scan_depth) {
|
|
|
|
string folder_pattern_lower = folder_pattern;
|
|
|
|
transform(folder_pattern_lower.begin(), folder_pattern_lower.end(), folder_pattern_lower.begin(), ::tolower);
|
|
|
|
|
|
|
|
string file_pattern_lower = file_pattern;
|
|
|
|
transform(file_pattern_lower.begin(), file_pattern_lower.end(), file_pattern_lower.begin(), ::tolower);
|
2021-12-19 10:49:17 +00:00
|
|
|
|
|
|
|
if (scan_depth-- >= 0) {
|
|
|
|
DIR *d = opendir(folder.c_str());
|
|
|
|
if (d) {
|
|
|
|
struct dirent *dir;
|
|
|
|
while ((dir = readdir(d))) {
|
|
|
|
bool is_supported_type = dir->d_type == DT_REG || dir->d_type == DT_DIR || dir->d_type == DT_LNK || dir->d_type == DT_BLK;
|
|
|
|
if (is_supported_type && dir->d_name[0] != '.') {
|
2021-12-22 08:25:05 +00:00
|
|
|
string name_lower = dir->d_name;
|
|
|
|
if (!file_pattern.empty()) {
|
|
|
|
transform(name_lower.begin(), name_lower.end(), name_lower.begin(), ::tolower);
|
|
|
|
}
|
|
|
|
|
|
|
|
string filename = folder + "/" + dir->d_name;
|
|
|
|
|
2021-12-19 10:49:17 +00:00
|
|
|
struct stat st;
|
|
|
|
if (dir->d_type == DT_REG && !stat(filename.c_str(), &st)) {
|
|
|
|
if (!st.st_size) {
|
2021-12-22 08:25:05 +00:00
|
|
|
LOGWARN("File '%s' in image folder '%s' has a size of 0 bytes", dir->d_name, folder.c_str());
|
2021-12-19 10:49:17 +00:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
} else if (dir->d_type == DT_LNK && stat(filename.c_str(), &st)) {
|
2021-12-22 08:25:05 +00:00
|
|
|
LOGWARN("Symlink '%s' in image folder '%s' is broken", dir->d_name, folder.c_str());
|
2021-12-19 10:49:17 +00:00
|
|
|
continue;
|
|
|
|
} else if (dir->d_type == DT_DIR) {
|
2021-12-22 08:25:05 +00:00
|
|
|
if (folder_pattern_lower.empty() || name_lower.find(folder_pattern_lower) != string::npos) {
|
|
|
|
GetAvailableImages(image_files_info, default_image_folder, filename, folder_pattern,
|
|
|
|
file_pattern, scan_depth);
|
|
|
|
}
|
2021-09-24 06:48:48 +00:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
2021-12-22 08:25:05 +00:00
|
|
|
if (file_pattern_lower.empty() || name_lower.find(file_pattern_lower) != string::npos) {
|
2021-12-19 10:49:17 +00:00
|
|
|
PbImageFile *image_file = new PbImageFile();
|
|
|
|
if (GetImageFile(image_file, filename)) {
|
|
|
|
GetImageFile(image_files_info.add_image_files(), filename.substr(default_image_folder.length() + 1));
|
|
|
|
}
|
|
|
|
delete image_file;
|
|
|
|
}
|
2021-09-30 21:31:09 +00:00
|
|
|
}
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
|
2021-12-19 10:49:17 +00:00
|
|
|
closedir(d);
|
|
|
|
}
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
2021-12-19 10:49:17 +00:00
|
|
|
}
|
|
|
|
|
2021-12-22 08:25:05 +00:00
|
|
|
PbImageFilesInfo *RascsiResponse::GetAvailableImages(PbResult& result, const string& folder_pattern,
|
|
|
|
const string& file_pattern, int scan_depth)
|
2021-12-19 10:49:17 +00:00
|
|
|
{
|
|
|
|
PbImageFilesInfo *image_files_info = new PbImageFilesInfo();
|
|
|
|
|
|
|
|
string default_image_folder = rascsi_image->GetDefaultImageFolder();
|
|
|
|
image_files_info->set_default_image_folder(default_image_folder);
|
2021-12-22 08:25:05 +00:00
|
|
|
image_files_info->set_depth(scan_depth);
|
2021-12-19 10:49:17 +00:00
|
|
|
|
2021-12-22 08:25:05 +00:00
|
|
|
GetAvailableImages(*image_files_info, default_image_folder, default_image_folder, folder_pattern,
|
|
|
|
file_pattern, scan_depth);
|
2021-09-24 06:48:48 +00:00
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return image_files_info;
|
|
|
|
}
|
|
|
|
|
2021-12-22 08:25:05 +00:00
|
|
|
void RascsiResponse::GetAvailableImages(PbResult& result, PbServerInfo& server_info, const string& folder_pattern,
|
|
|
|
const string& file_pattern, int scan_depth)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
2021-12-22 08:25:05 +00:00
|
|
|
PbImageFilesInfo *image_files_info = GetAvailableImages(result, folder_pattern, file_pattern, scan_depth);
|
2021-10-17 06:51:14 +00:00
|
|
|
image_files_info->set_default_image_folder(rascsi_image->GetDefaultImageFolder());
|
2021-09-24 06:48:48 +00:00
|
|
|
server_info.set_allocated_image_files_info(image_files_info);
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbReservedIdsInfo *RascsiResponse::GetReservedIds(PbResult& result, const set<int>& ids)
|
2021-10-06 21:25:43 +00:00
|
|
|
{
|
|
|
|
PbReservedIdsInfo *reserved_ids_info = new PbReservedIdsInfo();
|
|
|
|
for (int id : ids) {
|
|
|
|
reserved_ids_info->add_ids(id);
|
|
|
|
}
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return reserved_ids_info;
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
void RascsiResponse::GetDevices(PbServerInfo& server_info, const vector<Device *>& devices)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
for (const Device *device : devices) {
|
|
|
|
// Skip if unit does not exist or is not assigned
|
|
|
|
if (device) {
|
2021-10-06 21:25:43 +00:00
|
|
|
PbDevice *pb_device = server_info.mutable_devices_info()->add_devices();
|
2021-10-17 06:51:14 +00:00
|
|
|
GetDevice(device, pb_device);
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
void RascsiResponse::GetDevicesInfo(PbResult& result, const PbCommand& command, const vector<Device *>& devices,
|
|
|
|
int unit_count)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
set<id_set> id_sets;
|
|
|
|
if (!command.devices_size()) {
|
|
|
|
for (const Device *device : devices) {
|
|
|
|
if (device) {
|
|
|
|
id_sets.insert(make_pair(device->GetId(), device->GetLun()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
for (const auto& device : command.devices()) {
|
|
|
|
if (devices[device.id() * unit_count + device.unit()]) {
|
|
|
|
id_sets.insert(make_pair(device.id(), device.unit()));
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
result.set_status(false);
|
Initial remote interface error message localization support (#555)
* Extracted code
* Initial support for (optional) recursive image file listings
* Manpage update
* Added support for image file filter
* Updated filtering
* Made image scan depth configurable
* Code cleanup, initial support for creating nested file
* Check for existing folder
* Cleanup
* Cleanup
* Copy/rename/create
* Updated delete operation
* Delete empty folders
* Code cleanup
* Fixed typo
* Check image file nesting level
* Updated error handling
* Fixed warning
* Renaming
* Error message update
* Interface comment updates
* Added depth to image info
* Fixed scan depth check
* Squashed commit of the following:
commit 94786aec54c589c080dcec3b18b388a17de64ae3
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Tue Dec 21 08:43:21 2021 +0100
Added support for operation meta data, code cleanup (#534)
* Added messages
* Comment update
* Interface update
* Support for localized descriptions
* Sort operations
* Completed meta data
* rasctl -s returns operation meta data
* Manpage update
* Type update
* Comment update
* Description updates
* Comment update
* Added convenience method
* Added convenience method
* Code cleanup
* Comment update
* Display permitted values
* For completeness sake added permitted boolean values
* Added support for default value
* Removed redundant message field
* Description update
* Description upddate
* Squashed commit of the following:
commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:43:14 2021 +0100
The data type is implicit
commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:37:49 2021 +0100
Renaming
commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:29:54 2021 +0100
Comment update
commit 5f699aad2f835f72accdb445d1e59f094aeb108f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:24:25 2021 +0100
Signature update
commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:22:45 2021 +0100
Signature update
commit a8148ef802ca809e5a305d2caa69856c9033d932
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:16:46 2021 +0100
Comment update
commit ce685a92d4827e131d80d10ecd56e2b3baf173f8
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:15:46 2021 +0100
Use map instead of list
commit 454c0438f3589904f5dbe5253963dd200ea416dd
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 10:47:36 2021 +0100
Updated size check
commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 01:23:43 2021 +0100
Initial improvements
* Default value update
* Comment update
* Comment update
* Map operations by ordinal
* Added safeguard against unknown operations
* Added cast
* Data type update
* Sort map by operation name
* Renaming
* Code cleanup
* Comment update
* Renaming
* Comment update
* Description updates
* Fixed typo
* Added operation
* Logging update
* Interface comment update
* Fixed typo
* Aded operation parameters
* Updated handling of mandatory parameters
* Updated assertion handling
* Added missing condition
* Removed duplicate cod3
* Code cleanup
* Logging update
* Removed duplicate code
* Code cleanup
* Squashed commit of the following:
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
* Shutdown functionality is only available if started with root permissions
* Only restrict shutdown parameters, not everything if not root
* Updated operation count check
commit 693ade296756ee8e480e75663a873e4a35829034
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 12:04:23 2021 -0800
Bump Macproxy version to 21.12.2 (#550)
commit 958fb95908f2d8cdf13c02d827f2d14f6011170e
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Mon Dec 20 12:50:14 2021 -0600
Adjust bus settle delay to match SCSI standard (#544)
* Move the GCC v10 compiler flags into makefile instead of easyinstall.sh
* #504 - Update the bus settle time to match the SCSI standard
Co-authored-by: RaSCSI User <user@rascsi.com>
commit 200bc7251f2395842df7c7be9b90f2b44940a9d4
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 06:20:22 2021 -0800
More helpful error message when IP does not resolve for OLED screen (#541)
* More helpful error message
* Remove confusing fallback IP
* Tweak message
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
commit ec31198d83f5ff7400d74d7acf08c832998deb91
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Sun Dec 19 11:54:10 2021 +0100
Optional authentication by access token (#529)
* Added authentication by access token
* No authentication is required for getting the rascsi version
* Added comment
* Interface description update
* Manpage update
* Added error code
* Enum value update (backwards compatible)
* Error code update
* Error code update
* Added CHECK_AUTHENTICATION
* Comment update
* VERSION_INFO also requires authentication
* rasctl: Made token an optional parameter for -P
* Fixed interface comment
commit e32211ef737d1a435ee8ca1d7244b3609202b28f
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Sun Dec 19 11:49:17 2021 +0100
Recursive image file scan and image file filter (#532)
* Extracted code
* Initial support for (optional) recursive image file listings
* Manpage update
* Added support for image file filter
* Updated filtering
* Made image scan depth configurable
* Squashed commit of the following:
commit 192b14169f7b3f433d23d4306b60ae1aff7e3c96
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Tue Dec 21 09:19:05 2021 +0100
Meta data update
commit b319d726018a8fef01b76c19cd600aa70891568f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Tue Dec 21 09:02:39 2021 +0100
Squashed commit of the following:
commit 0ab4918c5a59f978f48cf26f431ff809e9ddae33
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 16:52:03 2021 +0100
Scan depth determines availability of folder filter
commit 16590cc4e4420a348fae610d749082c9d718be0a
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 15:47:08 2021 +0100
Updated operation count check
commit 82f7c99755f535a7a5c30fe66e377705c5306faa
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 15:41:32 2021 +0100
Only restrict shutdown parameters, not everything if not root
commit 9bd50d37b11c48b2130e4f6e66d12def88ddc38f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 15:28:08 2021 +0100
Shutdown functionality is only available if started with root permissions
commit aa5f3331abf4c178e8ce738c14fd584bd41d1b94
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 10:26:14 2021 +0100
Squashed commit of the following:
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
commit a1f4b28f92bd9f7cdba18c04f61d3721fc7c720f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 21:50:15 2021 +0100
Comment update
commit 9cbc06caf5f00ce85e0f7f984c871ed614e2e483
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 21:49:09 2021 +0100
Option update
commit c4aa39c2285c5c72e2ea28ad749f5670dd10e89f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 21:46:37 2021 +0100
Merged feature_folder_filter
commit ea386fc74cbd64f19a7805d16c19f08f278739f3
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 19:05:07 2021 +0100
Code cleanup
commit 17c320113564fa2f0f2f11c1fe2e8b0048be2f48
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 19:03:13 2021 +0100
Removed duplicate code
commit 296f816dd3bc632efd11cda4b181362fb89e14e3
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 18:40:49 2021 +0100
Logging update
commit 73e0df85576932f2a99df5c8472a6922a6ed9e95
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 17:28:02 2021 +0100
Code cleanup
commit 405dbb034cf7775e069e5db9751f007587318558
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 17:13:40 2021 +0100
Removed duplicate cod3
commit c7c168a9420ea43f3b3dd003a5d75a928e8f66c5
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 17:08:02 2021 +0100
Added missing condition
commit 6af5394f7879854b12d341c4b6c7ac1b06302494
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 16:16:12 2021 +0100
Updated assertion handling
commit 632fe1acd81fa27c096ff6190b5082717e3b3f02
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 14:33:01 2021 +0100
Updated handling of mandatory parameters
commit a4e0d506c6a48641b827bc88590d0b416ae2513c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 14:14:09 2021 +0100
Aded operation parameters
commit fc783e6a437fb3a4f3f0f60235717c9f7621408d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 12:38:35 2021 +0100
Fixed typo
commit cb1b498459b700556700575946264a3a8eabfb96
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 12:37:13 2021 +0100
Interface comment update
commit e2d4347ce6daa0a1c3de606aead8cadeb203881a
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 12:35:50 2021 +0100
Logging update
commit cecb72df3ea9c1b27071d4b62017449709206ec9
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 12:13:44 2021 +0100
Added operation
commit bbf153ccd673004e371f5fb1f325ad2f3d95a97d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 12:09:49 2021 +0100
Fixed typo
commit 29fa5c2f962c6e775b82940682121c6d41ffb5fc
Merge: 28a36fa ec31198
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 12:07:34 2021 +0100
Merge branch 'develop' into feature_meta_data
commit 28a36fa308d926fce4885f16a019604060ff1107
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 15:51:02 2021 +0100
Description updates
commit 73df9f136ca572ba160918acf85ecf06d0bd7d2c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 14:37:58 2021 +0100
Comment update
commit c3ea3c8b372284468c8302b82067454d17cd061c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 14:34:48 2021 +0100
Renaming
commit 6a84edd0fbab8253e47c024ae65529c1c5b246ef
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 14:22:31 2021 +0100
Comment update
commit c0d6e66afe819bbcfeb5c606ba7cbc257b39dfec
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 14:20:20 2021 +0100
Code cleanup
commit cc81b588eb6bea2014a9abec6d67cdbe849e76e0
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 14:18:31 2021 +0100
Renaming
commit c88628e12ad252420f29ebed0541a1c3c4ede231
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 14:17:50 2021 +0100
Sort map by operation name
commit b64001e8a4a6941a8f671420e61121f471f90010
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:39:44 2021 +0100
Data type update
commit 8177cd306222c8674fbcf889be634565bbd2337f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:37:23 2021 +0100
Added cast
commit b8599ba0886363d91399bba6fa4607fd7b3fd445
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:35:40 2021 +0100
Added safeguard against unknown operations
commit 6b14ba651135db152fe57c6fe469227f71f00969
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:26:21 2021 +0100
Map operations by ordinal
commit ee101f2c6b8dbf527f77c8e005f2ded9ebdf4436
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:14:31 2021 +0100
Comment update
commit 67c958ed371f35870e9acf91bd90446c46783264
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:13:06 2021 +0100
Comment update
commit d1a9c4074576e75300d990a346abd2357a536138
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 13:04:58 2021 +0100
Default value update
commit d9dbbc0bb3347832619c3e600405d4b3cf25d0da
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:47:36 2021 +0100
Squashed commit of the following:
commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:43:14 2021 +0100
The data type is implicit
commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:37:49 2021 +0100
Renaming
commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:29:54 2021 +0100
Comment update
commit 5f699aad2f835f72accdb445d1e59f094aeb108f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:24:25 2021 +0100
Signature update
commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:22:45 2021 +0100
Signature update
commit a8148ef802ca809e5a305d2caa69856c9033d932
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:16:46 2021 +0100
Comment update
commit ce685a92d4827e131d80d10ecd56e2b3baf173f8
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:15:46 2021 +0100
Use map instead of list
commit 454c0438f3589904f5dbe5253963dd200ea416dd
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 10:47:36 2021 +0100
Updated size check
commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 01:23:43 2021 +0100
Initial improvements
commit 5d6862b6b0fcd2f6b59779c7d47fdc99af748a28
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 23:22:27 2021 +0100
Description upddate
commit 69263b3e4b8c9443d6593db49b4bbb995d884382
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 23:21:38 2021 +0100
Description update
commit 49e14f7078ae419766326758a923bde69af8eb9d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 23:19:08 2021 +0100
Removed redundant message field
commit ff468aafa85a25c3f48a8bfdc1eb0a24b3fca63f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 23:09:18 2021 +0100
Added support for default value
commit 2da717a0a037653d9b182439271165eb1859ed8d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 22:57:59 2021 +0100
For completeness sake added permitted boolean values
commit 5d894d2e4f39b75e1672c430d5421df397d5ed10
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 22:53:07 2021 +0100
Display permitted values
commit acc7d3cba5e667f690f76d68e6d8aa373faf1db5
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 20:37:03 2021 +0100
Comment update
commit f846242aea70c723241eee7ed99943f54694e1e7
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 20:35:07 2021 +0100
Code cleanup
commit 5a9592f102a93bbe0acde908e9f0f7b9bebf1e41
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 20:24:33 2021 +0100
Added convenience method
commit 9d258d9979afe452ed58ef58c24b73b4ef2bfb05
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 20:05:53 2021 +0100
Added convenience method
commit 6c4103989baee3fcffeeb040b501cc6aae9b4b0d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:45:20 2021 +0100
Comment update
commit 7d543451f059cd12bed4a8a49bdfd1e8c0a7d706
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:27:50 2021 +0100
Description updates
commit f4b0e50e663e5736f4ed1ec176dea2b10cf9d006
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:23:29 2021 +0100
Comment update
commit 35dd3f6282cf3253b04e1eea1d25c5ad65247690
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:21:12 2021 +0100
Type update
commit 7a94c0e6e0641e1aaa62f892a3f70975165cbca0
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:17:05 2021 +0100
Manpage update
commit 4179110bac97268860a1b5bed32d18b0b944bda6
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:13:42 2021 +0100
rasctl -s returns operation meta data
commit eed83bb005b1f03df7f10c451a7cf2d872d42b0a
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 19:05:29 2021 +0100
Completed meta data
commit 4a7528d9d320bbac4f77d29f293cb99da56561bb
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 18:39:18 2021 +0100
Sort operations
commit d3af9a142ceb2dcfb3f0dc310925eff3bf62071b
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 18:29:22 2021 +0100
Support for localized descriptions
commit b4ff4f52ab03683f76b6f23b057063ca67f1b9dd
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 17:53:11 2021 +0100
Interface update
commit e8d9e97fe5c3e64fab57ccff8cfdb60fe24a849d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 16:59:49 2021 +0100
Comment update
commit 22753b15471166a34748113026b1e46b4c3b6888
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Fri Dec 17 16:57:39 2021 +0100
Added messages
commit b3a92924588513787e89908310d450306064e946
Merge: ea3bb83 94786ae
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Tue Dec 21 08:57:56 2021 +0100
Merge branch 'develop' into feature_folder_filter
commit ea3bb8363a2a9a734abd2fc330066c52d5638b6d
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Tue Dec 21 08:53:30 2021 +0100
Squashed commit of the following:
commit 94786aec54c589c080dcec3b18b388a17de64ae3
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Tue Dec 21 08:43:21 2021 +0100
Added support for operation meta data, code cleanup (#534)
* Added messages
* Comment update
* Interface update
* Support for localized descriptions
* Sort operations
* Completed meta data
* rasctl -s returns operation meta data
* Manpage update
* Type update
* Comment update
* Description updates
* Comment update
* Added convenience method
* Added convenience method
* Code cleanup
* Comment update
* Display permitted values
* For completeness sake added permitted boolean values
* Added support for default value
* Removed redundant message field
* Description update
* Description upddate
* Squashed commit of the following:
commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:43:14 2021 +0100
The data type is implicit
commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:37:49 2021 +0100
Renaming
commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:29:54 2021 +0100
Comment update
commit 5f699aad2f835f72accdb445d1e59f094aeb108f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:24:25 2021 +0100
Signature update
commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:22:45 2021 +0100
Signature update
commit a8148ef802ca809e5a305d2caa69856c9033d932
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:16:46 2021 +0100
Comment update
commit ce685a92d4827e131d80d10ecd56e2b3baf173f8
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:15:46 2021 +0100
Use map instead of list
commit 454c0438f3589904f5dbe5253963dd200ea416dd
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 10:47:36 2021 +0100
Updated size check
commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 01:23:43 2021 +0100
Initial improvements
* Default value update
* Comment update
* Comment update
* Map operations by ordinal
* Added safeguard against unknown operations
* Added cast
* Data type update
* Sort map by operation name
* Renaming
* Code cleanup
* Comment update
* Renaming
* Comment update
* Description updates
* Fixed typo
* Added operation
* Logging update
* Interface comment update
* Fixed typo
* Aded operation parameters
* Updated handling of mandatory parameters
* Updated assertion handling
* Added missing condition
* Removed duplicate cod3
* Code cleanup
* Logging update
* Removed duplicate code
* Code cleanup
* Squashed commit of the following:
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
* Shutdown functionality is only available if started with root permissions
* Only restrict shutdown parameters, not everything if not root
* Updated operation count check
commit 693ade296756ee8e480e75663a873e4a35829034
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 12:04:23 2021 -0800
Bump Macproxy version to 21.12.2 (#550)
commit 958fb95908f2d8cdf13c02d827f2d14f6011170e
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Mon Dec 20 12:50:14 2021 -0600
Adjust bus settle delay to match SCSI standard (#544)
* Move the GCC v10 compiler flags into makefile instead of easyinstall.sh
* #504 - Update the bus settle time to match the SCSI standard
Co-authored-by: RaSCSI User <user@rascsi.com>
commit 200bc7251f2395842df7c7be9b90f2b44940a9d4
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 06:20:22 2021 -0800
More helpful error message when IP does not resolve for OLED screen (#541)
* More helpful error message
* Remove confusing fallback IP
* Tweak message
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
commit 94786aec54c589c080dcec3b18b388a17de64ae3
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Tue Dec 21 08:43:21 2021 +0100
Added support for operation meta data, code cleanup (#534)
* Added messages
* Comment update
* Interface update
* Support for localized descriptions
* Sort operations
* Completed meta data
* rasctl -s returns operation meta data
* Manpage update
* Type update
* Comment update
* Description updates
* Comment update
* Added convenience method
* Added convenience method
* Code cleanup
* Comment update
* Display permitted values
* For completeness sake added permitted boolean values
* Added support for default value
* Removed redundant message field
* Description update
* Description upddate
* Squashed commit of the following:
commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:43:14 2021 +0100
The data type is implicit
commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:37:49 2021 +0100
Renaming
commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:29:54 2021 +0100
Comment update
commit 5f699aad2f835f72accdb445d1e59f094aeb108f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:24:25 2021 +0100
Signature update
commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:22:45 2021 +0100
Signature update
commit a8148ef802ca809e5a305d2caa69856c9033d932
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:16:46 2021 +0100
Comment update
commit ce685a92d4827e131d80d10ecd56e2b3baf173f8
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 12:15:46 2021 +0100
Use map instead of list
commit 454c0438f3589904f5dbe5253963dd200ea416dd
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 10:47:36 2021 +0100
Updated size check
commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sat Dec 18 01:23:43 2021 +0100
Initial improvements
* Default value update
* Comment update
* Comment update
* Map operations by ordinal
* Added safeguard against unknown operations
* Added cast
* Data type update
* Sort map by operation name
* Renaming
* Code cleanup
* Comment update
* Renaming
* Comment update
* Description updates
* Fixed typo
* Added operation
* Logging update
* Interface comment update
* Fixed typo
* Aded operation parameters
* Updated handling of mandatory parameters
* Updated assertion handling
* Added missing condition
* Removed duplicate cod3
* Code cleanup
* Logging update
* Removed duplicate code
* Code cleanup
* Squashed commit of the following:
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
* Shutdown functionality is only available if started with root permissions
* Only restrict shutdown parameters, not everything if not root
* Updated operation count check
commit 693ade296756ee8e480e75663a873e4a35829034
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 12:04:23 2021 -0800
Bump Macproxy version to 21.12.2 (#550)
commit 958fb95908f2d8cdf13c02d827f2d14f6011170e
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Mon Dec 20 12:50:14 2021 -0600
Adjust bus settle delay to match SCSI standard (#544)
* Move the GCC v10 compiler flags into makefile instead of easyinstall.sh
* #504 - Update the bus settle time to match the SCSI standard
Co-authored-by: RaSCSI User <user@rascsi.com>
commit 200bc7251f2395842df7c7be9b90f2b44940a9d4
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 06:20:22 2021 -0800
More helpful error message when IP does not resolve for OLED screen (#541)
* More helpful error message
* Remove confusing fallback IP
* Tweak message
commit f59eeb842ef5a71020bd1ae642eb9fe250963ea5
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 10:25:28 2021 +0100
Squashed commit of the following:
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
commit 670356e0e29b4c03ddb5f02f0621043881766ad6
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 20:26:03 2021 +0100
Code cleanup
commit 4fc8f679758aef6d29a73850a7b8d15541b496e6
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 20:21:10 2021 +0100
Manpage update
commit 29603a327a8bdbe2241200ccef7df8a36415fcf4
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Sun Dec 19 19:49:56 2021 +0100
Added optional folder name filter
commit ec31198d83f5ff7400d74d7acf08c832998deb91
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Sun Dec 19 11:54:10 2021 +0100
Optional authentication by access token (#529)
* Added authentication by access token
* No authentication is required for getting the rascsi version
* Added comment
* Interface description update
* Manpage update
* Added error code
* Enum value update (backwards compatible)
* Error code update
* Error code update
* Added CHECK_AUTHENTICATION
* Comment update
* VERSION_INFO also requires authentication
* rasctl: Made token an optional parameter for -P
* Fixed interface comment
commit e32211ef737d1a435ee8ca1d7244b3609202b28f
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Sun Dec 19 11:49:17 2021 +0100
Recursive image file scan and image file filter (#532)
* Extracted code
* Initial support for (optional) recursive image file listings
* Manpage update
* Added support for image file filter
* Updated filtering
* Made image scan depth configurable
* Interface update
* Squashed commit of the following:
commit 6c98228726c26936c81b498d2837c7af7731be3c
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 22:45:24 2021 +0100
Fixed scan depth check
commit 87e8b3be6a74d873efd982b027049ee0aebe6184
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 20:46:36 2021 +0100
Added depth to image info
commit 7c08fa6569e4c91132ff50f02a1c5d79935d78a3
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 20:38:53 2021 +0100
Interface comment updates
commit 29d919d30eeb0322ad0178e4a14190089c505062
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 20:06:02 2021 +0100
Error message update
commit fe76a1a577929f4f5b0517f859b58a611811b520
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:56:36 2021 +0100
Renaming
commit 412b53ddf185406cf8ce7b6eab54e2271a110aaf
Merge: bf9d906 958fb95
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:50:53 2021 +0100
Merge branch 'develop' into feature_file_operations_with_folders
commit 958fb95908f2d8cdf13c02d827f2d14f6011170e
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Mon Dec 20 12:50:14 2021 -0600
Adjust bus settle delay to match SCSI standard (#544)
* Move the GCC v10 compiler flags into makefile instead of easyinstall.sh
* #504 - Update the bus settle time to match the SCSI standard
Co-authored-by: RaSCSI User <user@rascsi.com>
commit bf9d90664cfd6c5e85ec16a607dcf1de9067db7e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:42:36 2021 +0100
Fixed warning
commit 362a90f3dc2960bf9b272073bb1904a8879e4486
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:37:32 2021 +0100
Updated error handling
commit 66c380bd974fd5ada7b254d702d123ac775e768f
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:33:01 2021 +0100
Check image file nesting level
commit c98a2b906929b6e10cc7a43d038c5a0671e8c6a1
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:06:18 2021 +0100
Fixed typo
commit a36dabc00216aa22ec2953d17b2293ad0c7bf7fc
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 19:03:18 2021 +0100
Code cleanup
commit 46fc22f72aabe0e51d2519a540707369eb91d8fc
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 18:58:27 2021 +0100
Delete empty folders
commit d55bf3e06f7d2ab9f64ffe89d8e383f9b4dcca5e
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 18:33:59 2021 +0100
Updated delete operation
commit 5afce5f50fd113c3d925f8b81e42247d8bd1b789
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 18:31:55 2021 +0100
Copy/rename/create
commit b969d3990a5b21905e21ecb572e3ab1f19f52ccb
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 15:21:17 2021 +0100
Cleanup
commit 200bc7251f2395842df7c7be9b90f2b44940a9d4
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Mon Dec 20 06:20:22 2021 -0800
More helpful error message when IP does not resolve for OLED screen (#541)
* More helpful error message
* Remove confusing fallback IP
* Tweak message
commit 6a6efa6bdd9974b4e0bb00b603914f824375a997
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 12:58:29 2021 +0100
Cleanup
commit 72ab669158d55f8008f4c80a882356cad42a4c53
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 12:58:03 2021 +0100
Check for existing folder
commit 6a9ac4d0dafbc4e385a7553d03e2dce21f88b7ae
Author: Uwe Seimet <Uwe.Seimet@seimet.de>
Date: Mon Dec 20 12:52:26 2021 +0100
Code cleanup, initial support for creating nested file
commit 4ae273ccbd3e2b9bfda6426a9c1f71844b48b2d9
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:30:22 2021 -0600
Loopback tester pcb (#545)
commit 46c5c1966f36841419df7c3337990ac941de3c85
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 22:29:59 2021 -0600
RaSCSI Zero version 1.0 (#546)
commit d09df31d67de3470ef4ed3fc74b40da1b181c0bb
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 20:25:23 2021 -0800
Remove redundant code from OLED script (#547)
commit d8828da6909a8b87e54f21aada20758607a2a67a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date: Sun Dec 19 21:02:50 2021 -0600
Added list of sponsors
commit bcd7e8396d945f5a051e01080354d3ac7ba63704
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:51:45 2021 -0800
Second attempt at properly creating the manpage dir (#542)
commit c887edfc8c9956aa9dcac3764abe6cef16ffb596
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:50:03 2021 -0800
Remove special elevated privileges for the Web Interface (#536)
* Use the pi_shutdown method to restart the rascsi service
* Use the pi_shutdown method to restart the rascsi service
* Remove modifications to sudoers no longer needed
* Introduce sleeps attempting to connect to socket; reduce overall number of retries
* Remove systemd helped methods and the functionality that depends on it
* Attempts to speed up splash code
* Remove unneccessary verbosity
* Attempt to optimize service definition
commit 801aebfb96e968a3bef1575b0301db4bd7625a35
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:22 2021 -0800
More readable message when downloading a file (#531)
commit 29cf58288f228fe235b7d6fe2f0dd5852cf9a411
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:47:03 2021 -0800
Add a warning notice when ejecting removable media (#526)
commit 7efa89523905a6985bea261f1dcf078ec76faf27
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:46:22 2021 -0800
Unzip zipfiles before storing to iso (#525)
* Unzip zipfiles before storing to iso
* Add helptext
* Skip unzip for MacZip format
* Should not be an fstring
commit 39bc485671fa5163c6fc87860eed53b2966637ca
Author: Daniel Markstedt <markstedt@gmail.com>
Date: Sun Dec 19 15:28:22 2021 -0800
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies
* Cleanup
commit ec31198d83f5ff7400d74d7acf08c832998deb91
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Sun Dec 19 11:54:10 2021 +0100
Optional authentication by access token (#529)
* Added authentication by access token
* No authentication is required for getting the rascsi version
* Added comment
* Interface description update
* Manpage update
* Added error code
* Enum value update (backwards compatible)
* Error code update
* Error code update
* Added CHECK_AUTHENTICATION
* Comment update
* VERSION_INFO also requires authentication
* rasctl: Made token an optional parameter for -P
* Fixed interface comment
commit e32211ef737d1a435ee8ca1d7244b3609202b28f
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com>
Date: Sun Dec 19 11:49:17 2021 +0100
Recursive image file scan and image file filter (#532)
* Extracted code
* Initial support for (optional) recursive image file listings
* Manpage update
* Added support for image file filter
* Updated filtering
* Made image scan depth configurable
* Code cleanup
* Resolved merged issues
* Fixed merge issue
* Comment update
* Message update
* Fixed typo
* Logging update
* Logging update
* Logging update
* Fixed merge issue
* Set pattern param for SERVER_INFO
* Added missing break
* Updated error handling
* Logging update
* Error message update
* Removed initial approach for localization in remote interface
* Added command context
* Initialize context
* Initial localization support class
* Localized authentication error
* Comment update
* Added TODO
* Merge with develop
* Only localize remote interface errors, but not log messages
* Removed TODO
* Use enum as localization key
* Added consistency checks
* Updated consitency checks
* Fixed initial entries
* Added fallback
* Locales are always treated lower case
* Support for string parameters
* Added convenience method
* Added localization support to rasctl
* Error message update
* Error handling update
* Error handling update
* Concatenate strings instead of using stream for error messages
* Error message handling update
* Error handling update
* Comment update
* Removed obsolete method
* Logging update
* Code cleanup
* Added assertions
* Code cleanup
* Updated empty string handling
* Code cleanup
* Added localized messages
* Added error messages
* Added more error messages
* Fixed typo
* Translation update
* Translation update
* Uodated default locale handling
* Updated locale handling
* Manpage update
* Removed debug code
* Added translations
* Added translations
* Add Swedish localization
* Swedish fix
* Added -z option to rascsi
* Manpage update
Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2021-12-23 07:49:04 +00:00
|
|
|
result.set_msg("No device for ID " + to_string(device.id()) + ", unit " + to_string(device.unit()));
|
2021-09-24 06:48:48 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-06 21:25:43 +00:00
|
|
|
PbDevicesInfo *devices_info = new PbDevicesInfo();
|
|
|
|
result.set_allocated_devices_info(devices_info);
|
2021-09-24 06:48:48 +00:00
|
|
|
|
|
|
|
for (const auto& id_set : id_sets) {
|
|
|
|
const Device *device = devices[id_set.first * unit_count + id_set.second];
|
2021-10-17 06:51:14 +00:00
|
|
|
GetDevice(device, devices_info->add_devices());
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbDeviceTypesInfo *RascsiResponse::GetDeviceTypesInfo(PbResult& result, const PbCommand& command)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
PbDeviceTypesInfo *device_types_info = new PbDeviceTypesInfo();
|
|
|
|
|
|
|
|
GetAllDeviceTypeProperties(*device_types_info);
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return device_types_info;
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbServerInfo *RascsiResponse::GetServerInfo(PbResult& result, const vector<Device *>& devices, const set<int>& reserved_ids,
|
2021-12-22 08:25:05 +00:00
|
|
|
const string& current_log_level, const string& folder_pattern, const string& file_pattern, int scan_depth)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
PbServerInfo *server_info = new PbServerInfo();
|
|
|
|
|
2021-10-06 21:25:43 +00:00
|
|
|
server_info->set_allocated_version_info(GetVersionInfo(result));
|
|
|
|
server_info->set_allocated_log_level_info(GetLogLevelInfo(result, current_log_level));
|
2021-09-24 06:48:48 +00:00
|
|
|
GetAllDeviceTypeProperties(*server_info->mutable_device_types_info());
|
2021-12-22 08:25:05 +00:00
|
|
|
GetAvailableImages(result, *server_info, folder_pattern, file_pattern, scan_depth);
|
2021-09-24 06:48:48 +00:00
|
|
|
server_info->set_allocated_network_interfaces_info(GetNetworkInterfacesInfo(result));
|
2021-09-27 23:39:50 +00:00
|
|
|
server_info->set_allocated_mapping_info(GetMappingInfo(result));
|
2021-10-17 06:51:14 +00:00
|
|
|
GetDevices(*server_info, devices);
|
2021-10-06 21:25:43 +00:00
|
|
|
server_info->set_allocated_reserved_ids_info(GetReservedIds(result, reserved_ids));
|
2021-12-22 08:25:05 +00:00
|
|
|
server_info->set_allocated_operation_info(GetOperationInfo(result, scan_depth));
|
2021-09-24 06:48:48 +00:00
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return server_info;
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbVersionInfo *RascsiResponse::GetVersionInfo(PbResult& result)
|
2021-10-06 21:25:43 +00:00
|
|
|
{
|
|
|
|
PbVersionInfo *version_info = new PbVersionInfo();
|
|
|
|
|
|
|
|
version_info->set_major_version(rascsi_major_version);
|
|
|
|
version_info->set_minor_version(rascsi_minor_version);
|
|
|
|
version_info->set_patch_version(rascsi_patch_version);
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return version_info;
|
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbLogLevelInfo *RascsiResponse::GetLogLevelInfo(PbResult& result, const string& current_log_level)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
2021-10-06 21:25:43 +00:00
|
|
|
PbLogLevelInfo *log_level_info = new PbLogLevelInfo();
|
|
|
|
|
2021-09-24 06:48:48 +00:00
|
|
|
for (const auto& log_level : log_levels) {
|
2021-10-06 21:25:43 +00:00
|
|
|
log_level_info->add_log_levels(log_level);
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
2021-10-06 21:25:43 +00:00
|
|
|
|
|
|
|
log_level_info->set_current_log_level(current_log_level);
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return log_level_info;
|
2021-09-24 06:48:48 +00:00
|
|
|
}
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbNetworkInterfacesInfo *RascsiResponse::GetNetworkInterfacesInfo(PbResult& result)
|
2021-09-24 06:48:48 +00:00
|
|
|
{
|
|
|
|
PbNetworkInterfacesInfo *network_interfaces_info = new PbNetworkInterfacesInfo();
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
for (const auto& network_interface : device_factory->GetNetworkInterfaces()) {
|
2021-09-24 06:48:48 +00:00
|
|
|
network_interfaces_info->add_name(network_interface);
|
|
|
|
}
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return network_interfaces_info;
|
|
|
|
}
|
2021-09-27 23:39:50 +00:00
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
PbMappingInfo *RascsiResponse::GetMappingInfo(PbResult& result)
|
2021-09-27 23:39:50 +00:00
|
|
|
{
|
|
|
|
PbMappingInfo *mapping_info = new PbMappingInfo();
|
|
|
|
|
2021-10-17 06:51:14 +00:00
|
|
|
for (const auto& mapping : device_factory->GetExtensionMapping()) {
|
2021-09-27 23:39:50 +00:00
|
|
|
(*mapping_info->mutable_mapping())[mapping.first] = mapping.second;
|
|
|
|
}
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return mapping_info;
|
|
|
|
}
|
2021-12-21 07:43:21 +00:00
|
|
|
|
2021-12-22 08:25:05 +00:00
|
|
|
PbOperationInfo *RascsiResponse::GetOperationInfo(PbResult& result, int depth)
|
2021-12-21 07:43:21 +00:00
|
|
|
{
|
|
|
|
PbOperationInfo *operation_info = new PbOperationInfo();
|
|
|
|
|
|
|
|
PbOperationMetaData *meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "name", "Image file name in case of a mass storage device");
|
|
|
|
AddOperationParameter(meta_data, "interfaces", "Comma-separated prioritized network interface list");
|
|
|
|
CreateOperation(operation_info, meta_data, ATTACH, "Attach device, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, DETACH, "Detach device, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, DETACH_ALL, "Detach all devices");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, START, "Start device, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, STOP, "Stop device, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "file", "Image file name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, INSERT, "Insert medium, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, EJECT, "Eject medium, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, PROTECT, "Protect medium, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, UNPROTECT, "Unprotect medium, device-specific parameters are required");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
2021-12-22 08:25:05 +00:00
|
|
|
if (depth) {
|
|
|
|
AddOperationParameter(meta_data, "folder_pattern", "Pattern for filtering image folder names");
|
|
|
|
}
|
|
|
|
AddOperationParameter(meta_data, "file_pattern", "Pattern for filtering image file names");
|
2021-12-21 07:43:21 +00:00
|
|
|
CreateOperation(operation_info, meta_data, SERVER_INFO, "Get rascsi server information");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, VERSION_INFO, "Get rascsi server version");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, DEVICES_INFO, "Get information on attached devices");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, DEVICE_TYPES_INFO, "Get device properties by device type");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
2021-12-22 08:25:05 +00:00
|
|
|
if (depth) {
|
|
|
|
AddOperationParameter(meta_data, "folder_pattern", "Pattern for filtering image folder names");
|
|
|
|
}
|
|
|
|
AddOperationParameter(meta_data, "file_pattern", "Pattern for filtering image file names");
|
2021-12-21 07:43:21 +00:00
|
|
|
CreateOperation(operation_info, meta_data, DEFAULT_IMAGE_FILES_INFO, "Get information on available image files");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "file", "Image file name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, IMAGE_FILE_INFO, "Get information on image file");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, LOG_LEVEL_INFO, "Get log level information");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, NETWORK_INTERFACES_INFO, "Get the available network interfaces");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, MAPPING_INFO, "Get mapping of extensions to device types");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, RESERVED_IDS_INFO, "Get list of reserved device IDs");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "folder", "Default image file folder name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, DEFAULT_FOLDER, "Set default image file folder");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "level", "New log level", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, LOG_LEVEL, "Set log level");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "ids", "Comma-separated device ID list", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, RESERVE_IDS, "Reserve device IDs");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
PbOperationParameter *parameter = AddOperationParameter(meta_data, "mode", "Shutdown mode", "", true);
|
|
|
|
parameter->add_permitted_values("rascsi");
|
|
|
|
// System shutdown/reboot requires root permissions
|
|
|
|
if (!getuid()) {
|
|
|
|
parameter->add_permitted_values("system");
|
|
|
|
parameter->add_permitted_values("reboot");
|
|
|
|
}
|
|
|
|
CreateOperation(operation_info, meta_data, SHUT_DOWN, "Shut down or reboot");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "file", "Image file name", "", true);
|
|
|
|
AddOperationParameter(meta_data, "size", "Image file size in bytes", "", true);
|
|
|
|
parameter = AddOperationParameter(meta_data, "read_only", "Read-only flag", "false");
|
|
|
|
parameter->add_permitted_values("true");
|
|
|
|
parameter->add_permitted_values("false");
|
|
|
|
CreateOperation(operation_info, meta_data, CREATE_IMAGE, "Create an image file");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "file", "Image file name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, DELETE_IMAGE, "Delete image file");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "from", "Source image file name", "", true);
|
|
|
|
AddOperationParameter(meta_data, "to", "Destination image file name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, RENAME_IMAGE, "Rename image file");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
2021-12-22 08:25:05 +00:00
|
|
|
AddOperationParameter(meta_data, "from", "Source image file name", "", true);
|
2021-12-21 07:43:21 +00:00
|
|
|
AddOperationParameter(meta_data, "to", "Destination image file name", "", true);
|
|
|
|
parameter = AddOperationParameter(meta_data, "read_only", "Read-only flag", "false");
|
|
|
|
parameter->add_permitted_values("true");
|
|
|
|
parameter->add_permitted_values("false");
|
|
|
|
CreateOperation(operation_info, meta_data, COPY_IMAGE, "Copy image file");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "file", "Image file name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, PROTECT_IMAGE, "Write-protect image file");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "file", "Image file name", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, UNPROTECT_IMAGE, "Make image file writable");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
AddOperationParameter(meta_data, "token", "Authentication token to be checked", "", true);
|
|
|
|
CreateOperation(operation_info, meta_data, CHECK_AUTHENTICATION, "Check whether an authentication token is valid");
|
|
|
|
|
|
|
|
meta_data = new PbOperationMetaData();
|
|
|
|
CreateOperation(operation_info, meta_data, OPERATION_INFO, "Get operation meta data");
|
|
|
|
|
|
|
|
// Ensure that the complete set of operations is covered
|
|
|
|
assert(operation_info->operations_size() == PbOperation_ARRAYSIZE - 1);
|
|
|
|
|
|
|
|
result.set_status(true);
|
|
|
|
|
|
|
|
return operation_info;
|
|
|
|
}
|
|
|
|
|
|
|
|
void RascsiResponse::CreateOperation(PbOperationInfo *operation_info, PbOperationMetaData *meta_data,
|
|
|
|
const PbOperation& operation, const string& description)
|
|
|
|
{
|
|
|
|
meta_data->set_server_side_name(PbOperation_Name(operation));
|
2021-12-22 08:25:05 +00:00
|
|
|
meta_data->set_description(description);
|
2021-12-21 07:43:21 +00:00
|
|
|
int ordinal = PbOperation_descriptor()->FindValueByName(PbOperation_Name(operation))->index();
|
|
|
|
(*operation_info->mutable_operations())[ordinal] = *meta_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
PbOperationParameter *RascsiResponse::AddOperationParameter(PbOperationMetaData *meta_data, const string& name,
|
|
|
|
const string& description, const string& default_value, bool is_mandatory)
|
|
|
|
{
|
|
|
|
PbOperationParameter *parameter = meta_data->add_parameters();
|
|
|
|
parameter->set_name(name);
|
2021-12-22 08:25:05 +00:00
|
|
|
parameter->set_description(description);
|
2021-12-21 07:43:21 +00:00
|
|
|
parameter->set_default_value(default_value);
|
|
|
|
parameter->set_is_mandatory(is_mandatory);
|
|
|
|
|
|
|
|
return parameter;
|
|
|
|
}
|