Skip to content

Commit

Permalink
sequence search : change API timeout 1 to 2 min, support secondary se…
Browse files Browse the repository at this point in the history
…rver.

left-panel.js : define serverSelected_datasetsBlocks, to pass to sequence-search.
blast-results-view.js : resultParentBlocks()  and mapview.js : viewDataset() : if dataset name not found on primary then check serverSelected.datasetsBlocks (the server selected in dataset explorer).
auth.js : dnaSequenceSearch() : configure options.timeout 2min (default is 1min)
left-panel.hbs : pass serverSelected_datasetsBlocks to sequence-search instead of (primary server) datasets.
  • Loading branch information
Don-Isdale committed Sep 22, 2021
1 parent 9ba3e3f commit 7540355
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 2 deletions.
17 changes: 17 additions & 0 deletions frontend/app/components/panel/left-panel.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
import Component from '@ember/component';
import { computed } from '@ember/object';
import { alias } from '@ember/object/computed';
import { inject as service } from '@ember/service';

import { htmlSafe } from '@ember/template';

/* global CSS */

export default Component.extend({
apiServers: service(),

style: htmlSafe(CSS.escape('height:100%')),
attributeBindings: ['style:style'],
view: 'mapview',

/** Return a list of datasets, with their included blocks, for the currently-selected
* API server tab
*
* This has the essentials from panel/manage-explorer.js : datasetsBlocks(),
* and can probably replace it; left-panel can pass this value to manage-explorer.
*/
serverSelected_datasetsBlocks : computed(
'apiServers.serverSelected.datasetsBlocks.[]',
function () {
return this.get('apiServers.serverSelected.datasetsBlocks') || [];
}),

actions: {
toggleLeftPanel() {
$(".left-panel-shown").toggle();
Expand Down
7 changes: 7 additions & 0 deletions frontend/app/components/panel/upload/blast-results-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,13 @@ export default Component.extend({
let
store = this.get('apiServers').get('primaryServer').get('store'),
dataset = store.peekRecord('dataset', parentName);
/** If parentName not found on primary then check the server selected in
* dataset explorer. Same logic as commented in mapview.js : viewDataset().
*/
if (! dataset) {
dataset = this.get('apiServers').serverSelected?.datasetsBlocks.findBy('name', parentName);
dLog('resultParentBlocks serverSelected dataset', dataset, parentName);
}
let
blocks = dataset && dataset.get('blocks').toArray()
.filter((b) => (blockNames.indexOf(b.get('name')) !== -1) );
Expand Down
5 changes: 4 additions & 1 deletion frontend/app/components/service/api-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,10 @@ export default EmberObject.extend({
let
name = server.get('name'),
apiServers = this.get('apiServers'),
/** verification */
/** verification
* This could use lookupServerName(), because server.name has already been
* processed with removePunctuation().
*/
serverSo = apiServers.lookupServer(name),
datasetsBlocks = this.get('datasetsBlocks'),
datasetsHandle = server && server.host && server.get('name');
Expand Down
9 changes: 9 additions & 0 deletions frontend/app/controllers/mapview.js
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,15 @@ export default Controller.extend(Evented, {
let
store = this.get('apiServers').get('primaryServer').get('store'),
dataset = store.peekRecord('dataset', datasetName);
/** If not found on primary then check the server selected in dataset
* explorer. Could do just this instad of checking primary - probably
* viewDataset should be relative to serverSelected by default.
* blast-results-view.js : resultParentBlocks() does the same.
*/
if (! dataset) {
let db = this.get('apiServers.serverSelected.datasetsBlocks');
dataset = db.findBy('name', datasetName);
}
if (dataset) {
let
blocksToChange = dataset.get('blocks').toArray()
Expand Down
6 changes: 6 additions & 0 deletions frontend/app/services/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ export default Service.extend({
options
) {
dLog('services/auth featureSearch', dnaSequence.length, parent, searchType, resultRows, addDataset, datasetName, options);
/** allow longer for blast search; the server timeout for blast
* search is defined in backend/scripts/blastn_request.bash
*/
if (options.timeout === undefined) {
options.timeout = 2 * 60 * 1000;
}
/** Attach .server to JSON string, instead of using
* requestServerAttr (.session.requestServer)
* (this can be unwound after adding apiServer as param to ._ajax(),
Expand Down
2 changes: 1 addition & 1 deletion frontend/app/templates/components/panel/left-panel.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
}}

{{panel/sequence-search
datasets=datasets
datasets=serverSelected_datasetsBlocks
view=view
refreshDatasets=refreshDatasets
viewDataset=viewDataset
Expand Down

0 comments on commit 7540355

Please sign in to comment.