in frontend/src/pages/Clusters/ClusterActions.js [34:102]
export default function ClusterActions () {
const clusterName = useState(['app', 'clusters', 'selected']);
const clusterPath = ['clusters', 'index', clusterName];
const cluster = useState(clusterPath);
const region = useState(['app', 'selectedRegion']);
const defaultRegion = useState(['aws', 'region']);
const headNode = useState([...clusterPath, 'headNode']);
const fleetStatus = useState([...clusterPath, 'computeFleetStatus']);
const clusterStatus = useState([...clusterPath, 'clusterStatus']);
const dcvEnabled = useState([...clusterPath, 'config', 'HeadNode', 'Dcv', 'Enabled']);
const startFleet = () => {
UpdateComputeFleet(clusterName, "START_REQUESTED")
}
const editConfiguration = () => {
setState(['app', 'wizard', 'clusterName'], clusterName);
setState(['app', 'wizard', 'page'], 'cluster');
setState(['app', 'wizard', 'dialog'], true);
setState(['app', 'wizard', 'editing'], true);
GetConfiguration(clusterName, (configuration) => {
loadTemplate(jsyaml.load(configuration));
});
}
const deleteCluster = () => {
setState(['app', 'clusters', 'clusterDelete', 'dialog'], true)
}
const shellCluster = (instanceId) => {
const useRegion = region || defaultRegion;
window.open(`https://${useRegion}.console.aws.amazon.com/systems-manager/session-manager/${instanceId}?region=${useRegion}`);
}
const dcvConnect = (instance) => {
let os = getIn(cluster.config, ['Image', 'Os'])
let user = {"alinux2": "ec2-user",
"ubuntu2004": "ubuntu",
"ubuntu1804": "ubuntu",
"centos7": "centos"}[os]
let callback = (dcvInfo) => {
window.open(`https://${instance.publicIpAddress}:${dcvInfo.port}?authToken=${dcvInfo.session_token}#${dcvInfo.session_id}`);
}
GetDcvSession(instance.instanceId, user, callback);
}
return <div style={{marginLeft: "20px"}}>
<ClusterDeleteDialog clusterName={clusterName} />
<ClusterStopDialog clusterName={clusterName} />
<SpaceBetween direction="horizontal" size="xs">
<Button className="action" disabled={clusterStatus === 'DELETE_IN_PROGRESS' || clusterStatus === 'CREATE_FAILED'} variant="normal" onClick={editConfiguration} iconName={"edit"}> Edit</Button>
{fleetStatus === "STOPPED" && <Button className="action" variant="normal" onClick={startFleet} iconName={"caret-right-filled"}> Start</Button>}
{fleetStatus === "RUNNING" && <Button className="action" variant="normal" onClick={stopComputeFleet}>
<div className="container">
<CancelIcon /> Stop
</div>
</Button>}
<Button className="action" disabled={clusterStatus === 'DELETE_IN_PROGRESS'} color="default" onClick={deleteCluster}>
<div className="container">
<DeleteIcon /> Delete
</div>
</Button>
{headNode && headNode.publicIpAddress && headNode.publicIpAddress !== "" &&
<Button className="action" disabled={clusterStatus === 'DELETE_IN_PROGRESS'} onClick={() => {shellCluster(headNode.instanceId)}}>
<div className="container">
<FeaturedPlayListIcon />
Shell
</div>
</Button>}