blob: eb1da485fc659a3015c13e9fb731c19044e984f6 [file] [log] [blame]
import BaseModel from "./BaseModel";
import ComputeResourceReservation from "./ComputeResourceReservation";
const FIELDS = [
"computeResourceId",
"groupResourceProfileId",
{
name: "overridebyAiravata",
type: "boolean",
default: true,
},
"loginUserName",
"preferredJobSubmissionProtocol",
"preferredDataMovementProtocol",
"preferredBatchQueue",
"scratchLocation",
"allocationProjectNumber",
"resourceSpecificCredentialStoreToken",
"usageReportingGatewayId",
"qualityOfService",
"sshAccountProvisioner",
"groupSSHAccountProvisionerConfigs",
"sshAccountProvisionerAdditionalInfo",
{
name: "reservations",
type: ComputeResourceReservation,
list: true,
default: BaseModel.defaultNewInstance(Array),
},
];
export default class GroupComputeResourcePreference extends BaseModel {
constructor(data = {}) {
super(FIELDS, data);
}
validate() {
let validationResults = {};
if (this.isEmpty(this.loginUserName)) {
validationResults["loginUserName"] = "Please provide a login username.";
}
if (this.isEmpty(this.scratchLocation)) {
validationResults["scratchLocation"] =
"Please provide a scratch location.";
}
return validationResults;
}
}