You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by de...@apache.org on 2016/03/08 21:06:36 UTC
lens git commit: LENS-971 : Lens UI module broken on 2.5 release build
Repository: lens
Updated Branches:
refs/heads/current-release-line b4253c03c -> e93f96a4a
LENS-971 : Lens UI module broken on 2.5 release build
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/e93f96a4
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/e93f96a4
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/e93f96a4
Branch: refs/heads/current-release-line
Commit: e93f96a4a9c2d0d389df01afb22fb03e4dfb61dc
Parents: b4253c0
Author: Ankeet Maini <an...@gmail.com>
Authored: Wed Mar 9 01:36:16 2016 +0530
Committer: Deepak Kumar Barr <de...@gmail.com>
Committed: Wed Mar 9 01:36:16 2016 +0530
----------------------------------------------------------------------
lens-ui/app/actions/AdhocQueryActions.js | 36 +++---
lens-ui/app/adapters/AdhocQueryAdapter.js | 111 ++++++++++---------
lens-ui/app/adapters/BaseAdapter.js | 44 ++------
lens-ui/app/components/CubeSchemaComponent.js | 4 +-
.../components/QueryDetailResultComponent.js | 2 +-
.../app/components/QueryParamRowComponent.js | 4 +-
lens-ui/app/components/TableSchemaComponent.js | 2 +-
lens-ui/app/components/TableTreeComponent.js | 2 +-
lens-ui/app/stores/AdhocQueryStore.js | 15 ++-
lens-ui/app/stores/CubeStore.js | 14 ++-
lens-ui/app/stores/DatabaseStore.js | 5 +-
lens-ui/app/stores/SavedQueryStore.js | 6 +-
lens-ui/app/stores/TableStore.js | 8 +-
lens-ui/app/stores/UserStore.js | 7 +-
lens-ui/package.json | 2 +
15 files changed, 129 insertions(+), 133 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/actions/AdhocQueryActions.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/actions/AdhocQueryActions.js b/lens-ui/app/actions/AdhocQueryActions.js
index 284c781..2a4b47b 100644
--- a/lens-ui/app/actions/AdhocQueryActions.js
+++ b/lens-ui/app/actions/AdhocQueryActions.js
@@ -28,7 +28,9 @@ function _executeQuery (secretToken, query, queryName) {
.then(queryHandle => {
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.RECEIVE_QUERY_HANDLE,
- payload: { queryHandle: queryHandle }
+ payload: { queryHandle: queryHandle.lensAPIResult &&
+ queryHandle.lensAPIResult.data &&
+ queryHandle.lensAPIResult.data.handleId }
});
}, (error) => {
// error details contain array of objects {code, message}
@@ -51,11 +53,11 @@ function _saveQuery (secretToken, user, query, options) {
payload: {
type: 'Success',
text: 'Query was successfully saved!',
- id: response.id
+ id: response.resourceModifiedResponse && response.resourceModifiedResponse.id
}
});
}, error => {
- error = error.error;
+ error = error.lensAPIResult.error;
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.SAVE_QUERY_FAILED,
payload: {type: 'Error', text: error.code + ': ' + error.message}
@@ -123,7 +125,7 @@ let AdhocQueryActions = {
updateSavedQuery (secretToken, user, query, options, id) {
AdhocQueryAdapter.getParams(secretToken, query).then(response => {
- let serverParams = response.parameters
+ let serverParams = response.parameterParserResponse.parameters
.map(item => item.name)
.sort();
let clientParams = options && options.parameters && options.parameters
@@ -138,11 +140,11 @@ let AdhocQueryActions = {
payload: {
type: 'Success',
text: 'Query was successfully updated!',
- id: response.id
+ id: response.resourceModifiedResponse && response.resourceModifiedResponse.id
}
});
}, error => {
- error = error.error;
+ error = error.lensAPIResult.error;
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.SAVE_QUERY_FAILED,
payload: {type: 'Error', text: error.code + ': ' + error.message}
@@ -152,7 +154,7 @@ let AdhocQueryActions = {
// get parameters' meta
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.RECEIVE_QUERY_PARAMS_META,
- payload: response.parameters
+ payload: response.parameterParserResponse.parameters
});
}
});
@@ -160,7 +162,7 @@ let AdhocQueryActions = {
saveQuery (secretToken, user, query, options) {
AdhocQueryAdapter.getParams(secretToken, query).then(response => {
- let serverParams = response.parameters
+ let serverParams = response.parameterParserResponse.parameters
.map(item => item.name)
.sort();
let clientParams = options && options.parameters && options.parameters
@@ -173,7 +175,7 @@ let AdhocQueryActions = {
// get parameters' meta
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.RECEIVE_QUERY_PARAMS_META,
- payload: response.parameters
+ payload: response.parameterParserResponse.parameters
});
}
}, error => {
@@ -191,7 +193,7 @@ let AdhocQueryActions = {
// as we can't run a query with params, it needs to be saved first.
runQuery (secretToken, query, queryName) {
AdhocQueryAdapter.getParams(secretToken, query).then(response => {
- if (!response.parameters.length) {
+ if (!response.parameterParserResponse.parameters) {
_executeQuery(secretToken, query, queryName);
} else {
// ask user to save the query maybe?
@@ -255,7 +257,7 @@ let AdhocQueryActions = {
.then(function (query) {
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.RECEIVE_QUERY,
- payload: { query: query }
+ payload: { query: query.lensQuery }
});
}, function (error) {
AppDispatcher.dispatch({
@@ -276,10 +278,9 @@ let AdhocQueryActions = {
// persistent
payload = { downloadURL: result, type: 'PERSISTENT', handle: handle };
} else if (Object.prototype.toString.call(result).match('Array')) {
- // in-memory gives array
payload = {
- queryResult: result[0],
- columns: result[1],
+ queryResult: result[0].inMemoryQueryResult,
+ columns: result[1].queryResultSetMetadata,
handle: handle,
type: 'INMEMORY'
};
@@ -349,14 +350,13 @@ let AdhocQueryActions = {
payload: { queryHandle: handle }
});
}, (error) => {
- // error response contains an error XML with code, message and
- // stacktrace
+ error = error.lensAPIResult.error;
AppDispatcher.dispatch({
actionType: AdhocQueryConstants.RECEIVE_QUERY_HANDLE_FAILED,
payload: {
type: 'Error',
- text: error.getElementsByTagName('code')[0].textContent + ': ' +
- error.getElementsByTagName('message')[0].textContent
+ text: error.code + ': ' +
+ error.message
}
});
});
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/adapters/AdhocQueryAdapter.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/adapters/AdhocQueryAdapter.js b/lens-ui/app/adapters/AdhocQueryAdapter.js
index 376068b..445d6f2 100644
--- a/lens-ui/app/adapters/AdhocQueryAdapter.js
+++ b/lens-ui/app/adapters/AdhocQueryAdapter.js
@@ -37,17 +37,17 @@ let urls = {
let AdhocQueryAdapter = {
getDatabases (secretToken) {
let url = baseUrl + urls.getDatabases;
- return BaseAdapter.get(url, { sessionid: secretToken });
+ return BaseAdapter.get(url + '?sessionid=' + secretToken);
},
getCubes (secretToken) {
let url = baseUrl + urls.getCubes;
- return BaseAdapter.get(url, { sessionid: secretToken });
+ return BaseAdapter.get(url + '?sessionid=' + secretToken);
},
getCubeDetails (secretToken, cubeName) {
let url = baseUrl + urls.getCubes + '/' + cubeName;
- return BaseAdapter.get(url, { sessionid: secretToken });
+ return BaseAdapter.get(url + '?sessionid=' + secretToken);
},
executeQuery (secretToken, query, queryName) {
@@ -56,66 +56,82 @@ let AdhocQueryAdapter = {
let formData = new FormData();
formData.append('sessionid', secretToken);
formData.append('query', query);
- formData.append('operation', 'execute');
+ formData.append('operation', 'EXECUTE');
+ formData.append('conf',
+ '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><conf></conf>');
if (queryName) formData.append('queryName', queryName);
return BaseAdapter.post(url, formData, {
- contentType: 'multipart/form-data'
+ headers: {
+ 'Accept': 'application/json'
+ }
});
},
saveQuery (secretToken, user, query, options) {
- let url = baseUrl + urls.saveQuery;
let queryToBeSaved = {
- owner: user,
- name: options.name || '',
- query: query,
- description: options.description || '',
- parameters: options.parameters || []
+ savedQuery: {
+ name: options.name || '',
+ query: query,
+ description: options.description || '',
+ parameters: options.parameters || []
+ }
};
-
- return BaseAdapter.post(url, queryToBeSaved);
+ let url = baseUrl + urls.saveQuery + '?sessionid=' + secretToken;
+ return BaseAdapter.post(url, JSON.stringify(queryToBeSaved), {
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Accept': 'application/json'
+ }
+ });
},
updateSavedQuery (secretToken, user, query, options, id) {
let url = baseUrl + urls.saveQuery + '/' + id;
let queryToBeSaved = {
- owner: user,
- name: options.name || '',
- query: query,
- description: options.description || '',
- parameters: options.parameters || []
+ savedQuery: {
+ owner: user,
+ name: options.name || '',
+ query: query,
+ description: options.description || '',
+ parameters: options.parameters || []
+ }
};
- return BaseAdapter.put(url, queryToBeSaved);
+ return BaseAdapter.put(url, JSON.stringify(queryToBeSaved), {
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Accept': 'application/json'
+ }
+ });
},
getQuery (secretToken, handle) {
let url = baseUrl + urls.query + '/' + handle;
- return BaseAdapter.get(url, {sessionid: secretToken});
+ return BaseAdapter.get(url + '?sessionid=' + secretToken);
},
getQueries (secretToken, email, options) {
- let url = baseUrl + urls.query;
-
let queryOptions = {};
queryOptions.sessionid = secretToken;
queryOptions.user = email;
-
+ var state;
if (options && options.state) {
- queryOptions.state = options.state.toUpperCase();
+ state = options.state.toUpperCase();
}
-
- return BaseAdapter.get(url, queryOptions)
+ let handlesUrl = baseUrl + urls.query + '?sessionid=' + secretToken + '&user=' +
+ email;
+ if (state) handlesUrl += '&state=' + state;
+ return BaseAdapter.get(handlesUrl)
.then(function (queryHandles) {
// FIXME limiting to 10 for now
// let handles = queryHandles.slice(0, 10);
- return Promise.all(queryHandles.map((handle) => {
- return BaseAdapter.get(url + '/' + handle.handleId, {
- sessionid: secretToken,
- queryHandle: handle.handleId
- });
+ return Promise.all(queryHandles.map((q) => {
+ let queryUrl = baseUrl + urls.query + '/' + q.queryHandle.handleId +
+ '?sessionid=' + secretToken + '&queryHandle=' + q.queryHandle.handleId;
+
+ return BaseAdapter.get(queryUrl);
}));
});
},
@@ -142,15 +158,12 @@ let AdhocQueryAdapter = {
getTables (secretToken, database) {
let url = baseUrl + urls.getTables;
- return BaseAdapter.get(url, {
- sessionid: secretToken,
- dbName: database
- });
+ return BaseAdapter.get(url + '?sessionid=' + secretToken + '&dbName=' + database);
},
getTableDetails (secretToken, tableName, database) {
let url = baseUrl + urls.getTables + '/' + database + '.' + tableName;
- return BaseAdapter.get(url, { sessionid: secretToken });
+ return BaseAdapter.get(url + '?sessionid=' + secretToken);
},
cancelQuery (secretToken, handle) {
@@ -167,31 +180,25 @@ let AdhocQueryAdapter = {
getSavedQueryById (secretToken, id) {
let url = baseUrl + urls.saveQuery + '/' + id;
- return BaseAdapter.get(url, {sessionid: secretToken});
+ return BaseAdapter.get(url + '?sessionid=' + secretToken);
},
getInMemoryResults (secretToken, handle) {
let resultUrl = baseUrl + urls.query + '/' + handle + '/resultset';
- let results = BaseAdapter.get(resultUrl, {
- sessionid: secretToken
- });
+ let results = BaseAdapter.get(resultUrl + '?sessionid=' + secretToken);
let metaUrl = baseUrl + urls.query + '/' + handle + '/resultsetmetadata';
- let meta = BaseAdapter.get(metaUrl, {
- sessionid: secretToken
- });
+ let meta = BaseAdapter.get(metaUrl + '?sessionid=' + secretToken);
return Promise.all([results, meta]);
},
getSavedQueries (secretToken, user, options = {}) {
let url = baseUrl + urls.getSavedQueries;
- return BaseAdapter.get(url, {
- user: user,
- sessionid: secretToken,
- start: options.offset || 0,
- count: options.pageSize || 10
- });
+ return BaseAdapter.get(
+ url + '?user=' + user + '&sessionid=' + secretToken + '&start=' +
+ (options.offset || 0) + '&count=' + (options.pageSize || 10)
+ );
},
getParams (secretToken, query) {
@@ -209,10 +216,10 @@ let AdhocQueryAdapter = {
let formData = new FormData();
formData.append('sessionid', secretToken);
+ formData.append('conf',
+ '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><conf></conf>');
- return BaseAdapter.post(url, formData, {
- contentType: 'multipart/form-data'
- });
+ return BaseAdapter.post(url, formData);
}
};
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/adapters/BaseAdapter.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/adapters/BaseAdapter.js b/lens-ui/app/adapters/BaseAdapter.js
index 634b974..abe3bcf 100644
--- a/lens-ui/app/adapters/BaseAdapter.js
+++ b/lens-ui/app/adapters/BaseAdapter.js
@@ -17,45 +17,17 @@
* under the License.
*/
-import reqwest from 'qwest';
-import Promise from 'bluebird';
-
import Config from 'config.json';
-import XMLAdapter from './XMLAdapter';
+import fetch from 'isomorphic-fetch';
function makeReqwest (url, method, data, options = {}) {
- let reqwestOptions = { headers: {}, timeout: 200000 }; // a large enough for native tables
- if (Config.headers) reqwestOptions.headers = Config.headers;
- reqwestOptions.responseType = !options.contentType ? 'json' : 'document';
-
- if (reqwestOptions.responseType !== 'document') {
- if (method === 'post' || method === 'put') reqwestOptions.dataType = 'json';
- } else {
- delete reqwestOptions.headers['Content-Type'];
- }
-
- return new Promise((resolve, reject) => {
- reqwest[method](url, data, reqwestOptions)
- .then((response) => {
- response = reqwestOptions.responseType === 'json' ?
- response.response :
- XMLAdapter.stringToXML(response.response);
-
- resolve(response);
- }, (error) => {
- let response = error.responseType !== 'json' ?
- XMLAdapter.stringToXML(error.response) :
- error.response;
-
- if (!response) {
- response = {
- status: error.status,
- statusText: error.statusText
- };
- }
-
- reject(response);
- }).catch(e => console.error(e));
+ return fetch(url, {
+ method: method,
+ body: data,
+ headers: options.headers
+ }).then(function (response) {
+ if (!response.ok) return response.json().then(e => Promise.reject(e));
+ return response.json();
});
}
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/components/CubeSchemaComponent.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/components/CubeSchemaComponent.js b/lens-ui/app/components/CubeSchemaComponent.js
index c56cb15..f56d9c2 100644
--- a/lens-ui/app/components/CubeSchemaComponent.js
+++ b/lens-ui/app/components/CubeSchemaComponent.js
@@ -33,7 +33,7 @@ function constructMeasureTable (cubeName, measures) {
return (
<tr key={cubeName + '|' + measure.name}>
<td>{ measure.name }</td>
- <td>{ measure.type }</td>
+ <td>{ measure._type }</td>
<td>{ measure.default_aggr }</td>
<td>{ measure.display_string }</td>
</tr>
@@ -65,7 +65,7 @@ function constructDimensionTable (cubeName, dimensions) {
return (
<tr key={cubeName + '|' + dimension.name}>
<td>{ dimension.name }</td>
- <td>{ dimension.type }</td>
+ <td>{ dimension._type }</td>
<td>{ dimension.ref_spec && dimension.ref_spec.chain_ref_column &&
dimension.ref_spec.chain_ref_column.dest_table }</td>
<td>{ dimension.ref_spec && dimension.ref_spec.chain_ref_column &&
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/components/QueryDetailResultComponent.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/components/QueryDetailResultComponent.js b/lens-ui/app/components/QueryDetailResultComponent.js
index 096adde..74aa900 100644
--- a/lens-ui/app/components/QueryDetailResultComponent.js
+++ b/lens-ui/app/components/QueryDetailResultComponent.js
@@ -53,7 +53,7 @@ function constructTable (tableData) {
});
let rows = tableData.results
.map(row => {
- return (<tr>{row.values.values.map(cell => {
+ return (<tr>{row.values.map(cell => {
return <td>{(cell && cell.value) || <span style={{color: 'red'}}>NULL</span>}</td>;
})}</tr>);
});
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/components/QueryParamRowComponent.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/components/QueryParamRowComponent.js b/lens-ui/app/components/QueryParamRowComponent.js
index 89c8a8e..09f4f65 100644
--- a/lens-ui/app/components/QueryParamRowComponent.js
+++ b/lens-ui/app/components/QueryParamRowComponent.js
@@ -97,7 +97,7 @@ class QueryParamRow extends React.Component {
break;
case 'ChangeDefaultTextValue':
- paramChange = _.assign({}, state, {defaultValue: arg.target.value});
+ paramChange = _.assign({}, state, {defaultValue: [arg.target.value]});
break;
case 'AddItemInMultiSelect':
@@ -111,7 +111,7 @@ class QueryParamRow extends React.Component {
val = this.state.paramChange.collectionType === 'SINGLE' ? null : [];
paramChange = _.assign({}, state, {
dataType: arg.target.value,
- defaultValue: val,
+ defaultValue: val
});
break;
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/components/TableSchemaComponent.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/components/TableSchemaComponent.js b/lens-ui/app/components/TableSchemaComponent.js
index 7abab95..6d52e00 100644
--- a/lens-ui/app/components/TableSchemaComponent.js
+++ b/lens-ui/app/components/TableSchemaComponent.js
@@ -87,7 +87,7 @@ class TableSchema extends React.Component {
return (
<tr key={this.state.table.name + '|' + col.name}>
<td>{col.name}</td>
- <td>{col.type}</td>
+ <td>{col._type}</td>
<td>{col.comment || 'No description available'}</td>
</tr>
);
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/components/TableTreeComponent.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/components/TableTreeComponent.js b/lens-ui/app/components/TableTreeComponent.js
index 799dc9f..2e62399 100644
--- a/lens-ui/app/components/TableTreeComponent.js
+++ b/lens-ui/app/components/TableTreeComponent.js
@@ -130,7 +130,7 @@ class TableTree extends React.Component {
{table.isLoaded ? table.columns.map(col => {
return (
<div className='treeNode' key={table.name + '|' + col.name}>
- {col.name} ({col.type})
+ {col.name} ({col._type})
</div>
);
}) : <Loader size='4px' margin='2px' />}
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/stores/AdhocQueryStore.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/stores/AdhocQueryStore.js b/lens-ui/app/stores/AdhocQueryStore.js
index 3f880bf..d8891c2 100644
--- a/lens-ui/app/stores/AdhocQueryStore.js
+++ b/lens-ui/app/stores/AdhocQueryStore.js
@@ -34,7 +34,13 @@ var adhocDetails = {
};
function receiveQueryHandle (payload) {
- let id = payload.queryHandle.getElementsByTagName('handleId')[0].textContent;
+ if (typeof payload.queryHandle === 'string') {
+ adhocDetails.queryHandle = payload.queryHandle;
+ return;
+ }
+ let id = payload && payload.queryHandle && payload.queryHandle.lensAPIResult &&
+ payload.queryHandle.lensAPIResult.data &&
+ payload.queryHandle.lensAPIResult.data.handleId;
adhocDetails.queryHandle = id;
}
@@ -43,7 +49,7 @@ function receiveQueries (payload) {
let queryObjects = {};
queries.forEach((query) => {
- queryObjects[query.queryHandle.handleId] = query;
+ queryObjects[query.lensQuery.queryHandle.handleId] = query.lensQuery;
});
adhocDetails.queries = queryObjects;
@@ -60,9 +66,8 @@ function receiveQueryResult (payload) {
if (queryResult.type === 'INMEMORY') {
let resultRows = payload.queryResult && payload.queryResult.rows &&
- payload.queryResult.rows.rows || [];
- let columns = payload.columns && payload.columns.columns &&
- payload.columns.columns.columns;
+ payload.queryResult.rows || [];
+ let columns = payload.columns && payload.columns.columns;
adhocDetails.queryResults[payload.handle] = {};
adhocDetails.queryResults[payload.handle].results = resultRows;
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/stores/CubeStore.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/stores/CubeStore.js b/lens-ui/app/stores/CubeStore.js
index 09b469f..d4825a9 100644
--- a/lens-ui/app/stores/CubeStore.js
+++ b/lens-ui/app/stores/CubeStore.js
@@ -24,15 +24,17 @@ import { EventEmitter } from 'events';
// private methods
function receiveCubes (payload) {
- payload.cubes.elements && payload.cubes.elements.forEach(cube => {
- if (!cubes[cube]) {
- cubes[cube] = { name: cube, isLoaded: false };
- }
- });
+ payload.cubes && payload.cubes.stringList &&
+ payload.cubes.stringList.elements &&
+ payload.cubes.stringList.elements.forEach(cube => {
+ if (!cubes[cube]) {
+ cubes[cube] = { name: cube, isLoaded: false };
+ }
+ });
}
function receiveCubeDetails (payload) {
- let cubeDetails = payload.cubeDetails;
+ let cubeDetails = payload.cubeDetails && payload.cubeDetails.x_cube;
let dimensions = cubeDetails.dim_attributes &&
cubeDetails.dim_attributes.dim_attribute;
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/stores/DatabaseStore.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/stores/DatabaseStore.js b/lens-ui/app/stores/DatabaseStore.js
index 79894cf..b13246e 100644
--- a/lens-ui/app/stores/DatabaseStore.js
+++ b/lens-ui/app/stores/DatabaseStore.js
@@ -25,8 +25,9 @@ import { EventEmitter } from 'events';
function receiveDatabases (payload) {
databases = [];
- databases = payload.databases.elements &&
- payload.databases.elements.slice();
+ databases = payload.databases.stringList &&
+ payload.databases.stringList.elements &&
+ payload.databases.stringList.elements.slice();
}
let CHANGE_EVENT = 'change';
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/stores/SavedQueryStore.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/stores/SavedQueryStore.js b/lens-ui/app/stores/SavedQueryStore.js
index fb2869b..ef928f0 100644
--- a/lens-ui/app/stores/SavedQueryStore.js
+++ b/lens-ui/app/stores/SavedQueryStore.js
@@ -28,16 +28,16 @@ let totalRecords = 0;
let CHANGE_EVENT = 'change';
function receiveSavedQueries (payload) {
- payload && payload.resoures.forEach(query => {
+ payload && payload.listResponse && payload.listResponse.resoures.forEach(query => {
savedQueries[query.id] = query;
});
- totalRecords = payload && payload.totalCount;
+ totalRecords = payload.listResponse && payload.listResponse.totalCount;
}
function receiveSavedQuery (payload) {
if (!savedQueries[payload.id]) totalRecords++;
- savedQueries[payload.id] = payload;
+ savedQueries[payload.id] = payload.savedQuery;
}
let SavedQueryStore = assign({}, EventEmitter.prototype, {
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/stores/TableStore.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/stores/TableStore.js b/lens-ui/app/stores/TableStore.js
index 5ef84fa..0cec34a 100644
--- a/lens-ui/app/stores/TableStore.js
+++ b/lens-ui/app/stores/TableStore.js
@@ -30,8 +30,8 @@ function receiveTables (payload) {
tableCompleteness[database] = true;
}
- payload.tables.elements &&
- payload.tables.elements.forEach(table => {
+ payload.tables.stringList && payload.tables.stringList.elements &&
+ payload.tables.stringList.elements.forEach(table => {
if (!tables[database][table]) {
tables[database][table] = { name: table, isLoaded: false };
}
@@ -39,7 +39,9 @@ function receiveTables (payload) {
}
function receiveTableDetails (payload) {
- if (payload.tableDetails) {
+ if (payload.tableDetails && payload.tableDetails.x_native_table) {
+ // all table details are wrapped in `x_native_table` key, over-write
+ payload.tableDetails = payload.tableDetails.x_native_table;
let database = payload.database;
let name = payload.tableDetails.name;
let table = assign({}, payload.tableDetails);
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/app/stores/UserStore.js
----------------------------------------------------------------------
diff --git a/lens-ui/app/stores/UserStore.js b/lens-ui/app/stores/UserStore.js
index ee5506f..1d7e5d4 100644
--- a/lens-ui/app/stores/UserStore.js
+++ b/lens-ui/app/stores/UserStore.js
@@ -35,7 +35,12 @@ function authenticateUser (details) {
userDetails = {
isUserLoggedIn: true,
email: details.email,
- secretToken: new XMLSerializer().serializeToString(details.secretToken)
+ // creating the session string which is passed with every request
+ secretToken: `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <lensSessionHandle>
+ <publicId>${details.secretToken.lensSessionHandle.publicId}</publicId>
+ <secretId>${details.secretToken.lensSessionHandle.secretId}</secretId>
+ </lensSessionHandle>`
};
// store the details in localStorage if available
http://git-wip-us.apache.org/repos/asf/lens/blob/e93f96a4/lens-ui/package.json
----------------------------------------------------------------------
diff --git a/lens-ui/package.json b/lens-ui/package.json
index b21302b..0ed3db1 100644
--- a/lens-ui/package.json
+++ b/lens-ui/package.json
@@ -14,10 +14,12 @@
"codemirror": "^5.3.0",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
+ "es6-promise": "^3.1.2",
"express": "~4.12.4",
"express-session": "latest",
"flux": "^2.0.3",
"halogen": "^0.1.8",
+ "isomorphic-fetch": "^2.2.1",
"keymirror": "^0.1.1",
"lodash": "^3.9.1",
"moment": "^2.10.3",