You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2017/10/11 05:25:05 UTC
[09/31] ambari git commit: AMBARI-22089. Hive View 2.0 - Unable to
update existing saved queries,
view creates new records under saved queries tab (pallavkul)
AMBARI-22089. Hive View 2.0 - Unable to update existing saved queries, view creates new records under saved queries tab (pallavkul)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/beef96d4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/beef96d4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/beef96d4
Branch: refs/heads/branch-feature-AMBARI-14714
Commit: beef96d413d4986cb0cc11c317d11d5a181da14c
Parents: fc80a18
Author: pallavkul <pa...@gmail.com>
Authored: Mon Oct 9 21:17:35 2017 +0530
Committer: pallavkul <pa...@gmail.com>
Committed: Mon Oct 9 21:17:35 2017 +0530
----------------------------------------------------------------------
.../savedQueries/SavedQueryResourceManager.java | 17 ++++--
.../savedQueries/SavedQueryService.java | 46 +++++++--------
.../resources/ui/app/routes/queries/query.js | 60 ++++++++++++++------
.../resources/ui/app/services/saved-queries.js | 21 +++++++
.../hive20/src/main/resources/ui/yarn.lock | 2 +-
5 files changed, 98 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/beef96d4/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryResourceManager.java
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryResourceManager.java b/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryResourceManager.java
index 3690683..fff202c 100644
--- a/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryResourceManager.java
+++ b/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryResourceManager.java
@@ -115,12 +115,17 @@ public class SavedQueryResourceManager extends PersonalCRUDResourceManager<Saved
}
@Override
- public SavedQuery update(SavedQuery newObject, String id) throws ItemNotFound {
- SavedQuery savedQuery = super.update(newObject, id);
- // Emptying short query so that in next read, this gets updated with proper value
- // from the queryFile
- emptyShortQueryField(savedQuery);
- return savedQuery;
+ public SavedQuery update(SavedQuery object, String id) throws ItemNotFound {
+ String query = object.getShortQuery();
+ object.setShortQuery(makeShortQuery(query));
+ object = super.update(object, id);
+ try {
+ createDefaultQueryFile(object, query);
+
+ } catch (ServiceFormattedException e) {
+ cleanupAfterErrorAndThrowAgain(object, e);
+ }
+ return object;
}
@Override
http://git-wip-us.apache.org/repos/asf/ambari/blob/beef96d4/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryService.java
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryService.java b/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryService.java
index 7139ce8..35382f9 100644
--- a/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryService.java
+++ b/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/savedQueries/SavedQueryService.java
@@ -83,36 +83,36 @@ public class SavedQueryService extends BaseService {
@Path("{queryId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getOne(@PathParam("queryId") String queryId,
- @QueryParam("op") String operation) {
+ @QueryParam("op") String operation) {
try {
- final SavedQuery savedQuery = getResourceManager().read(queryId);
- if(operation.equals("download")) {
- StreamingOutput stream = new StreamingOutput() {
- @Override
- public void write(OutputStream os) throws IOException, WebApplicationException {
- Writer writer = new BufferedWriter(new OutputStreamWriter(os));
- try {
+ final SavedQuery savedQuery = getResourceManager().read(queryId);
+ if(operation!= null && operation.equals("download")) {
+ StreamingOutput stream = new StreamingOutput() {
+ @Override
+ public void write(OutputStream os) throws IOException, WebApplicationException {
+ Writer writer = new BufferedWriter(new OutputStreamWriter(os));
+ try {
BufferedReader br=new BufferedReader(new InputStreamReader(getSharedObjectsFactory().getHdfsApi().open(savedQuery.getQueryFile())));
- String line;
- line=br.readLine();
- while (line != null){
- writer.write(line+"\n");
- line = br.readLine();
+ String line;
+ line=br.readLine();
+ while (line != null){
+ writer.write(line+"\n");
+ line = br.readLine();
}
writer.flush();
- } catch (InterruptedException e) {
- e.printStackTrace();
- } finally {
- writer.close();
- }
- }
- };
- return Response.ok(stream).
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ writer.close();
+ }
+ }
+ };
+ return Response.ok(stream).
type(MediaType.TEXT_PLAIN).
- build();
+ build();
}
else {
- JSONObject object = new JSONObject();
+ JSONObject object = new JSONObject();
object.put("savedQuery", savedQuery);
return Response.ok(object).build();
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/beef96d4/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js b/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
index 9e8b6db..9bb5c8f 100644
--- a/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
+++ b/contrib/views/hive20/src/main/resources/ui/app/routes/queries/query.js
@@ -631,6 +631,8 @@ export default Ember.Route.extend(UILoggerMixin, {
let owner = this.get('controller.model').get('owner');
let queryFile = this.get('controller.model').get('queryFile');
let logFile = this.get('controller.model').get('logFile');
+ let shortQuery = (currentQuery.length > 0) ? currentQuery : ";";
+ let savedQueryId = this.get('controller.model').get('id')
let payload = {"title" : newTitle,
"dataBase": selectedDb,
@@ -639,32 +641,54 @@ export default Ember.Route.extend(UILoggerMixin, {
"queryFile" : queryFile,
"logFile" : logFile};
- let newSaveQuery = this.get('store').createRecord('saved-query',
- { dataBase:selectedDb,
- title:newTitle,
- queryFile: queryFile,
- owner: owner,
- shortQuery: (currentQuery.length > 0) ? currentQuery : ";"
- });
+ let existingSavedQuery = this.get('store').peekRecord('saved-query', savedQueryId);
- newSaveQuery.save().then((data) => {
- console.log('saved query saved');
+ if(existingSavedQuery){
- this.get('controller.model').set('title', newTitle);
- this.get('controller.model').set('isQueryDirty', false);
- this.get('controller').set('worksheetModalSuccess', true);
+ this.get('savedQueries').updateSavedQuery(existingSavedQuery.get('id'), shortQuery, selectedDb, owner).then( data => {
+ console.log('saved query updated.');
+ this.get('controller.model').set('title', newTitle);
+ this.get('controller.model').set('isQueryDirty', false);
+ this.get('controller').set('worksheetModalSuccess', true);
- Ember.run.later(() => {
- this.get('controller').set('showWorksheetModal', false);
- this.closeWorksheetAfterSave();
- }, 2 * 1000);
+ Ember.run.later(() => {
+ this.get('controller').set('showWorksheetModal', false);
+ this.closeWorksheetAfterSave();
+ }, 2 * 1000);
- });
+ }).catch(function (response) {
+ console.log('error', response);
+ });
+
+ } else{
+
+ let newSaveQuery = this.get('store').createRecord('saved-query',
+ { dataBase:selectedDb,
+ title:newTitle,
+ queryFile: queryFile,
+ owner: owner,
+ shortQuery: (currentQuery.length > 0) ? currentQuery : ";"
+ });
+
+ newSaveQuery.save().then((data) => {
+ console.log('saved query saved');
+ this.get('controller.model').set('title', newTitle);
+ this.get('controller.model').set('isQueryDirty', false);
+ this.get('controller').set('worksheetModalSuccess', true);
+
+ Ember.run.later(() => {
+ this.get('controller').set('showWorksheetModal', false);
+ this.closeWorksheetAfterSave();
+ }, 2 * 1000);
+
+ });
+
+ }
},
- closeWorksheetModal(){
+ closeWorksheetModal(){
this.get('controller').set('showWorksheetModal', false);
this.closeWorksheetAfterSave();
this.get('controller.model').set('tabDataToClose', null);
http://git-wip-us.apache.org/repos/asf/ambari/blob/beef96d4/contrib/views/hive20/src/main/resources/ui/app/services/saved-queries.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/resources/ui/app/services/saved-queries.js b/contrib/views/hive20/src/main/resources/ui/app/services/saved-queries.js
index 4b4b29e..b1a28ce 100644
--- a/contrib/views/hive20/src/main/resources/ui/app/services/saved-queries.js
+++ b/contrib/views/hive20/src/main/resources/ui/app/services/saved-queries.js
@@ -50,6 +50,27 @@ export default Ember.Service.extend({
});
},
+ updateSavedQuery(savedQueryId, shortQuery, selectedDb, owner){
+ return new Ember.RSVP.Promise((resolve, reject) => {
+
+ this.get('store').findRecord('saved-query', savedQueryId, {async: true} ).then(savedQuery => {
+ savedQuery.set('shortQuery', shortQuery);
+ savedQuery.set('dataBase', selectedDb );
+ savedQuery.set('owner', owner );
+ savedQuery.save().then(() => {
+ return resolve("");
+ })
+
+
+
+
+ }).catch(function (response) {
+ console.log('error', response);
+ return reject(response);
+ });
+ });
+ },
+
fetchSavedQuery(path) {
let url = this.get('store').adapterFor('application').buildURL()+ '/files/' + encodeURIComponent(path);
http://git-wip-us.apache.org/repos/asf/ambari/blob/beef96d4/contrib/views/hive20/src/main/resources/ui/yarn.lock
----------------------------------------------------------------------
diff --git a/contrib/views/hive20/src/main/resources/ui/yarn.lock b/contrib/views/hive20/src/main/resources/ui/yarn.lock
index 477a15c..607cf81 100644
--- a/contrib/views/hive20/src/main/resources/ui/yarn.lock
+++ b/contrib/views/hive20/src/main/resources/ui/yarn.lock
@@ -569,7 +569,7 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-block-scoping@^6.23.0:
+babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576"
dependencies: