all files / src/workflows/pyfr/components/steps/Simulation/ Start.js

64.29% Statements 18/28
31.25% Branches 5/16
16.67% Functions 1/6
80.95% Lines 17/21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83                                                                                                                                   
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
var _react = require('react');
 
var _react2 = _interopRequireDefault(_react);
 
var _reactRedux = require('react-redux');
 
var _RuntimeBackend = require('../../panels/RuntimeBackend');
 
var _RuntimeBackend2 = _interopRequireDefault(_RuntimeBackend);
 
var _JobSubmission = require('../../../../generic/components/steps/JobSubmission');
 
var _JobSubmission2 = _interopRequireDefault(_JobSubmission);
 
var _getNetworkError = require('../../../../../utils/getNetworkError');
 
var _getNetworkError2 = _interopRequireDefault(_getNetworkError);
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
// ----------------------------------------------------------------------------
 
var actionList = [{ name: 'prepareJob', label: 'Start Simulation', icon: '' }];
 
// ----------------------------------------------------------------------------
 
function clusterFilter(cluster) {
  return 'config' in cluster && 'pyfr' in cluster.config && ('cuda' in cluster.config.pyfr && cluster.config.pyfr.cuda || 'opencl' in cluster.config.pyfr && cluster.config.pyfr.opencl.length > 0 || 'openmp' in cluster.config.pyfr && cluster.config.pyfr.openmp.length > 0);
}
 
// ----------------------------------------------------------------------------
 
function getPayload(props, state) {
  return {
    backend: state.backend,
    input: {
      folder: {
        id: props.simulation.metadata.inputFolder._id
      },
      meshFile: {
        id: props.project.metadata.inputFolder.files.mesh
      },
      iniFile: {
        id: props.simulation.metadata.inputFolder.files.ini
      }
    },
    output: {
      folder: {
        id: props.simulation.metadata.outputFolder._id
      }
    }
  };
}
 
// ----------------------------------------------------------------------------
 
function pyfrStart(props) {
  return _react2.default.createElement(_JobSubmission2.default, _extends({
    addOn: _RuntimeBackend2.default,
    actionList: actionList,
    clusterFilter: clusterFilter,
    getPayload: getPayload
  }, props));
}
 
// ----------------------------------------------------------------------------
 
exports.default = (0, _reactRedux.connect)(function (state) {
  return {
    error: (0, _getNetworkError2.default)(state, ['create_taskflow', 'start_taskflow']),
    clusters: state.preferences.clusters.mapById,
    volumes: state.preferences.volumes.mapById
  };
})(pyfrStart);