text: import { inject as service } from '@ember/service';
  import { get } from '@ember/object';
  import { alias } from '@ember/object/computed';
  import Component from '@ember/component';
  import ModalBase from 'shared/mixins/modal-base';
  import layout from './template';
  import { eachLimit } from 'async';
  
  export default Component.extend(ModalBase, {
    growl: service(),
  
    layout,
    classNames: ['large-modal'],
  
    aggressive:         false,
    usePodGracePeriod:  true,
    gracePeriod:        30,
    unlimitedTimeout:   false,
    timeout:            60,
  
    resources: alias('modalService.modalOpts.resources'),
  
    actions: {
      drain() {
        const aggressive = get(this, 'aggressive');
  
        const opts = {
          deleteLocalData:  aggressive,
          force:            aggressive,
          ignoreDaemonSets: true,
          gracePeriod:      get(this, 'usePodGracePeriod') ? -1 : get(this, 'gracePeriod'),
          timeout:          get(this, 'unlimitedTimeout')  ?  0 : get(this, 'timeout'),
        };
  
        const resources = get(this, 'resources').slice();
  
        eachLimit(resources, 5, (resource, cb) => {
          if ( !resource ) {
            return cb();
          }
  
          resource.doAction('drain', opts).finally(cb);
        });
  
        this.send('cancel');
      },
    },
  });
  