Display permitted values

This commit is contained in:
Uwe Seimet 2021-12-17 22:53:07 +01:00
parent acc7d3cba5
commit 5d894d2e4f
3 changed files with 22 additions and 4 deletions

View File

@ -394,7 +394,10 @@ PbOperationInfo *RascsiResponse::GetOperationInfo(PbResult& result)
AddOperationParameter(*parameters, "ids", "Comma-separated device ID list");
parameters = AddOperation(*operation_info, SHUT_DOWN, "Shut down or reboot");
AddOperationParameter(*parameters, "mode", "Shutdown mode");
PbOperationParameter *parameter = AddOperationParameter(*parameters, "mode", "Shutdown mode");
parameter->add_values("rascsi");
parameter->add_values("system");
parameter->add_values("reboot");
parameters = AddOperation(*operation_info, CREATE_IMAGE, "Create an image file");
AddOperationParameter(*parameters, "file", "Image file name");
@ -439,12 +442,14 @@ PbOperationParameters *RascsiResponse::AddOperation(PbOperationInfo& operation_i
return parameters;
}
void RascsiResponse::AddOperationParameter(PbOperationParameters& parameters, const string& name, const string& description,
const string& type, bool is_mandatory)
PbOperationParameter *RascsiResponse::AddOperationParameter(PbOperationParameters& parameters, const string& name,
const string& description, const string& type, bool is_mandatory)
{
PbOperationParameter *parameter = parameters.add_parameters();
parameter->set_name(name);
(*parameter->mutable_description())["en"] = description;
parameter->set_type(type);
parameter->set_is_mandatory(is_mandatory);
return parameter;
}

View File

@ -54,5 +54,5 @@ private:
void GetDeviceTypeProperties(PbDeviceTypesInfo&, PbDeviceType);
void GetAvailableImages(PbResult& result, PbServerInfo&);
PbOperationParameters *AddOperation(PbOperationInfo&, const PbOperation&, const string&);
void AddOperationParameter(PbOperationParameters&, const string&, const string&, const string& = "string", bool = true);
PbOperationParameter *AddOperationParameter(PbOperationParameters&, const string&, const string&, const string& = "string", bool = true);
};

View File

@ -295,6 +295,19 @@ void RasctlDisplay::DisplayOperationInfo(const PbOperationInfo& operation_info)
cout << " (" << parameter.description().at("en") << ")";
}
cout << endl;
if (parameter.values_size()) {
cout << " Permitted values: ";
bool isFirst = true;
for (const auto& value : parameter.values()) {
if (!isFirst) {
cout << ", ";
}
isFirst = false;
cout << value;
}
cout << endl;
}
}
}
}