in source/idea/idea-cluster-manager/webapp/src/pages/hpc/queues.tsx [292:413]
buildSplitPanelContent() {
const selected = () => this.getSelected()!;
const jobParams = () => selected().default_job_params!;
const queueParams = () => selected().queue_management_params!;
const queueUtils = () => new QueueUtils(selected());
return (
this.isSelected() && (
<IdeaSplitPanel title={`Queue Profile: ${this.getSelected()?.name}`}>
<Tabs
tabs={[
{
label: "Queue Info",
id: "queue-info",
content: (
<ColumnLayout columns={3}>
<KeyValue title="Queue Profile" value={selected().name} />
<KeyValue title="Queues" value={selected().queues} />
<KeyValue title="Is Enabled?" value={selected().enabled} />
<KeyValue title="Queue Mode" value={selected().queue_mode} />
{!Utils.asBoolean(selected().keep_forever) && <KeyValue title="Scaling Mode" value={selected().scaling_mode} />}
<KeyValue title="Terminate When Idle" value={selected().terminate_when_idle} suffix="minutes" />
<KeyValue title="Keep Forever?" value={selected().keep_forever} type="boolean" />
</ColumnLayout>
),
},
{
label: "ACLs",
id: "queue-acl",
content: (
<ColumnLayout columns={3}>
<KeyValue title="Allowed Instance Types" value={queueParams().allowed_instance_types} />
<KeyValue title="Excluded Instance Types" value={queueParams().excluded_instance_types} />
<KeyValue title="Restricted Parameters" value={queueParams().restricted_parameters} />
<KeyValue title="Allowed Instance Profiles" value={queueParams().allowed_instance_profiles} />
<KeyValue title="Allowed Security Groups" value={queueParams().allowed_security_groups} />
</ColumnLayout>
),
},
{
label: "Limits",
id: "queue-limits",
content: (
<ColumnLayout columns={3}>
<KeyValue title="Max Running Jobs" value={queueParams().max_running_jobs} />
<KeyValue title="Max Provisioned Instances" value={queueParams().max_provisioned_instances} />
<KeyValue title="Max Provisioned Capacity" value={queueParams().max_provisioned_capacity} />
<KeyValue title="Block on any job with Licenses" value={queueParams().wait_on_any_job_with_license} type="boolean" />
</ColumnLayout>
),
},
{
label: "Compute Stack Parameters",
id: "compute-stack-parameters",
content: (
<ColumnLayout columns={2}>
<KeyValueGroup title="Instance Info">
<KeyValue title="Base OS" value={jobParams().base_os} />
<KeyValue title="Instance AMI" value={jobParams().instance_ami} />
<KeyValue title="Instance Types" value={jobParams().instance_types} />
<KeyValue title="Keep EBS Volumes" value={jobParams().keep_ebs_volumes} />
<KeyValue title="Root Storage Size" value={jobParams().root_storage_size} type="memory" />
<KeyValue title="Enable Elastic Fabric Adapter (EFA)" value={jobParams().enable_efa_support} />
<KeyValue title="Force Reserved Instances" value={jobParams().force_reserved_instances} />
<KeyValue title="Enable Hyper-Threading" value={jobParams().enable_ht_support} />
</KeyValueGroup>
<KeyValueGroup title="Network and Security">
<KeyValue title="Subnet Ids" value={jobParams().subnet_ids} />
<KeyValue title="Security Groups" value={jobParams().security_groups} />
<KeyValue title="Instance Profile" value={jobParams().instance_profile} />
<KeyValue title="Enable Placement Group" value={jobParams().enable_placement_group} />
</KeyValueGroup>
<KeyValueGroup title="Spot Fleet">
<KeyValue title="Is Spot?" value={jobParams().spot} />
{queueUtils().isEnableSpot() && <KeyValue title="Spot Price" value={jobParams().spot_price} type="amount" />}
{queueUtils().isEnableSpot() && <KeyValue title="Spot Allocation Count" value={jobParams().spot_allocation_count} />}
{queueUtils().isEnableSpot() && <KeyValue title="Spot Allocation Strategy" value={jobParams().spot_allocation_strategy} />}
</KeyValueGroup>
{!queueUtils().isScratchStorageEnabled() && (
<KeyValueGroup title="Scratch Storage">
<KeyValue title="Is Enabled?" value={false} />
</KeyValueGroup>
)}
{queueUtils().isScratchEBS() && (
<KeyValueGroup title="Scratch Storage: EBS">
<KeyValue title="EBS: Storage Size" value={jobParams().scratch_storage_size} type="memory" />
<KeyValue title="EBS Storage IOPS" value={jobParams().scratch_storage_iops} />
</KeyValueGroup>
)}
{queueUtils().isScratchExistingFsxLustre() && (
<KeyValueGroup title="Scratch Storage: Existing FSx for Lustre">
<KeyValue title="Existing FSx Lustre" value={jobParams().fsx_lustre?.existing_fsx} />
</KeyValueGroup>
)}
{queueUtils().isScratchNewFsxLustre() && (
<KeyValueGroup title="Scratch Storage: New FSx for Lustre">
<KeyValue title="S3 Backend" value={jobParams().fsx_lustre?.s3_backend} />
<KeyValue title="Import Path" value={jobParams().fsx_lustre?.import_path} />
<KeyValue title="Export Path" value={jobParams().fsx_lustre?.export_path} />
<KeyValue title="Deployment Type" value={jobParams().fsx_lustre?.deployment_type} />
<KeyValue title="Per Unit Throughput" value={jobParams().fsx_lustre?.per_unit_throughput} />
<KeyValue title="Size" value={jobParams().fsx_lustre?.size} type="memory" />
</KeyValueGroup>
)}
<KeyValueGroup title="Metrics">
<KeyValue title="Enable System Metrics" value={jobParams().enable_system_metrics} />
<KeyValue title="Enable Anonymous Metrics" value={jobParams().enable_anonymous_metrics} />
</KeyValueGroup>
</ColumnLayout>
),
},
]}
/>
</IdeaSplitPanel>
)
);
}