|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- import { h, Component } from 'preact';
- import WBTable from 'wb-table';
- import makeArvadosRequest from 'make-arvados-request';
- import arvadosTypeName from 'arvados-type-name';
- import arvadosObjectName from 'arvados-object-name';
- import urlForObject from 'url-for-object';
- import wbFormatDate from 'wb-format-date';
- import WBNameAndUuid from 'wb-name-and-uuid';
- import WBAccordion from 'wb-accordion';
-
- class WBContainerRequestFields extends Component {
- componentDidMount() {
- this.prepareRows();
- }
-
- componentWillReceiveProps(nextProps) {
- this.props = nextProps;
- this.prepareRows();
- }
-
- prepareRows() {
- let { uuid, app } = this.props;
- let { arvHost, arvToken } = app.state;
-
- let item;
- let prom = makeArvadosRequest(arvHost, arvToken,
- '/arvados/v1/container_requests/' + uuid);
- prom = prom.then(xhr => (item = xhr.response));
-
- prom = prom.then(() => {
- let rows = [
- [ 'Name', item.name ],
- [ 'Description', item.description || (<i>{ String(item.description) }</i>) ],
- [ 'Properties', (
- <WBAccordion names={ ['Properties'] } cardHeaderClass="card-header-sm">
- <pre class="word-wrap">{ JSON.stringify(item.properties, null, 2) }</pre>
- </WBAccordion>
- ) ],
- [ 'State', item.state ],
- [ 'Requesting Container', (
- <WBNameAndUuid app={ app } uuid={ item.requesting_container_uuid } />
- ) ],
- [ 'Container', (
- <WBNameAndUuid app={ app } uuid={ item.container_uuid } />
- ) ],
- [ 'Container Count Max', item.container_count_max ],
- [ 'Mounts', (
- <WBAccordion names={ Object.keys(item.mounts) }
- cardHeaderClass="card-header-sm">
- { Object.keys(item.mounts).map(k => (
- <pre class="word-wrap">{ JSON.stringify(item.mounts[k], null, 2) }</pre>
- )) }
- </WBAccordion>
- ) ],
- [ 'Runtime Constraints', (
- <WBAccordion names={ ['Runtime Constraints'] }
- cardHeaderClass="card-header-sm">
- <pre class="word-wrap">{ JSON.stringify(item.runtime_constraints, null, 2) }</pre>
- </WBAccordion>
- ) ],
- [ 'Scheduling Parameters', (
- <WBAccordion names={ ['Scheduling Parameters'] }
- cardHeaderClass="card-header-sm">
- <pre class="word-wrap">{ JSON.stringify(item.scheduling_parameters, null, 2) }</pre>
- </WBAccordion>
- ) ],
- [ 'Container Image', (
- <WBNameAndUuid app={ app } uuid={ item.container_image } />
- ) ],
- [ 'Environment', (
- <WBAccordion names={ ['Environment'] }
- cardHeaderClass="card-header-sm">
- <pre class="word-wrap">{ JSON.stringify(item.environment, null, 2) }</pre>
- </WBAccordion>
- ) ],
- [ 'Working Directory', item.cwd ],
- [ 'Command', (
- <pre class="word-wrap">{ JSON.stringify(item.command) }</pre>
- ) ],
- [ 'Output Path', item.output_path ],
- [ 'Output Name', item.output_name ],
- [ 'Output TTL', item.output_ttl ],
- [ 'Priority', item.priority ],
- [ 'Expires At', wbFormatDate(item.expires_at) ],
- [ 'Use Existing', String(item.use_existing) ],
- [ 'Log', (
- <WBNameAndUuid app={ app } uuid={ item.log_uuid } />
- ) ],
- [ 'Output', (
- <WBNameAndUuid app={ app } uuid={ item.output_uuid } />
- ) ],
- [ 'Filters', (
- item.filters ? (<pre class="word-wrap">{ item.filters }</pre>) : (<i>{ String(item.filters) }</i>)
- ) ],
- [ 'Runtime Token', item.runtime_token || (<i>{ String(item.runtime_token) }</i>) ],
- [ 'Runtime User', (
- <WBNameAndUuid app={ app } uuid={ item.runtime_user } />
- ) ],
- [ 'Runtime Auth Scopes', (
- item.runtime_auth_scopes ? (
- <pre class="word-wrap">{ JSON.stringify(item.runtime_auth_scopes, null, 2) }</pre>
- ) : (
- <i>{ String(item.runtime_auth_scopes) }</i>
- )
- ) ]
- ];
- rows = rows.map(r => [r[0], r[1] ? r[1] : (<i>{ String(r[1]) }</i>)]);
- this.setState({ 'rows': rows });
- });
- }
-
- render({}, { rows }) {
- return (
- rows ? (
- <WBTable columns={ [ "Name", "Value" ] }
- headerClasses={ [ "col-sm-2", "col-sm-4" ] }
- rows={ rows }
- verticalHeader={ true } />
- ) : (
- <div>Loading...</div>
- )
- );
- }
- }
-
- export default WBContainerRequestFields;
|