github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/ui/app/adapters/node.js (about) 1 import Watchable from './watchable'; 2 import addToPath from 'nomad-ui/utils/add-to-path'; 3 4 export default Watchable.extend({ 5 setEligible(node) { 6 return this.setEligibility(node, true); 7 }, 8 9 setIneligible(node) { 10 return this.setEligibility(node, false); 11 }, 12 13 setEligibility(node, isEligible) { 14 const url = addToPath(this.urlForFindRecord(node.id, 'node'), '/eligibility'); 15 return this.ajax(url, 'POST', { 16 data: { 17 NodeID: node.id, 18 Eligibility: isEligible ? 'eligible' : 'ineligible', 19 }, 20 }); 21 }, 22 23 // Force: -1s deadline 24 // No Deadline: 0 deadline 25 drain(node, drainSpec) { 26 const url = addToPath(this.urlForFindRecord(node.id, 'node'), '/drain'); 27 return this.ajax(url, 'POST', { 28 data: { 29 NodeID: node.id, 30 DrainSpec: Object.assign( 31 { 32 Deadline: 0, 33 IgnoreSystemJobs: true, 34 }, 35 drainSpec 36 ), 37 }, 38 }); 39 }, 40 41 forceDrain(node, drainSpec) { 42 return this.drain( 43 node, 44 Object.assign({}, drainSpec, { 45 Deadline: -1, 46 }) 47 ); 48 }, 49 50 cancelDrain(node) { 51 const url = addToPath(this.urlForFindRecord(node.id, 'node'), '/drain'); 52 return this.ajax(url, 'POST', { 53 data: { 54 NodeID: node.id, 55 DrainSpec: null, 56 }, 57 }); 58 }, 59 });