You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mp...@apache.org on 2015/05/18 19:21:35 UTC

[1/2] ambari git commit: AMBARI-11219. Create Default Upgrade Catalog to upgrade the schema version to the current Ambari Server Versions. (mpapirkovskyy)

Repository: ambari
Updated Branches:
  refs/heads/trunk b19cee169 -> 3c4e9111e


AMBARI-11219. Create Default Upgrade Catalog to upgrade the schema version to the current Ambari Server Versions. (mpapirkovskyy)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3c4e9111
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3c4e9111
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3c4e9111

Branch: refs/heads/trunk
Commit: 3c4e9111ef95015ab4a365b08008ee5e6ec08b72
Parents: efbc665
Author: Myroslav Papirkovskyy <mp...@hortonworks.com>
Authored: Mon May 18 19:19:43 2015 +0300
Committer: Myroslav Papirkovskyy <mp...@hortonworks.com>
Committed: Mon May 18 20:21:29 2015 +0300

----------------------------------------------------------------------
 .../server/configuration/Configuration.java     | 13 ++++
 .../server/upgrade/AbstractUpgradeCatalog.java  | 11 ++++
 .../server/upgrade/FinalUpgradeCatalog.java     | 66 ++++++++++++++++++++
 .../server/upgrade/SchemaUpgradeHelper.java     |  9 +--
 .../ambari/server/upgrade/UpgradeCatalog.java   |  6 ++
 .../ambari/server/upgrade/UpgradeTest.java      |  5 ++
 6 files changed, 103 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/3c4e9111/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
index 3ceb05b..d8f89b2 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
@@ -843,6 +843,19 @@ public class Configuration {
   }
 
   /**
+   * Gets ambari server version
+   * @return version String
+   */
+  public String getServerVersion() {
+    try {
+      return FileUtils.readFileToString(new File(getServerVersionFilePath())).trim();
+    } catch (IOException e) {
+      LOG.error("Unable to read server version file", e);
+    }
+    return null;
+  }
+
+  /**
    * Check to see if the API should be authenticated or not
    * @return false if not, true if the authentication is enabled.
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/3c4e9111/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
index ec63512..c16c664 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
@@ -76,6 +76,7 @@ public abstract class AbstractUpgradeCatalog implements UpgradeCatalog {
   @Inject
   public AbstractUpgradeCatalog(Injector injector) {
     this.injector = injector;
+    injector.injectMembers(this);
     registerCatalog(this);
   }
 
@@ -100,6 +101,11 @@ public abstract class AbstractUpgradeCatalog implements UpgradeCatalog {
     @Override
     public int compare(UpgradeCatalog upgradeCatalog1,
                        UpgradeCatalog upgradeCatalog2) {
+      //make sure FinalUpgradeCatalog runs last
+      if (upgradeCatalog1.isFinal() ^ upgradeCatalog2.isFinal()) {
+        return Boolean.compare(upgradeCatalog1.isFinal(), upgradeCatalog2.isFinal());
+      }
+
       return VersionUtils.compareVersions(upgradeCatalog1.getTargetVersion(),
         upgradeCatalog2.getTargetVersion(), 3);
     }
@@ -382,6 +388,11 @@ public abstract class AbstractUpgradeCatalog implements UpgradeCatalog {
     updateMetaInfoVersion(getTargetVersion());
   }
 
+  @Override
+  public boolean isFinal() {
+    return false;
+  }
+
   protected abstract void executeDDLUpdates() throws AmbariException, SQLException;
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/3c4e9111/ambari-server/src/main/java/org/apache/ambari/server/upgrade/FinalUpgradeCatalog.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/FinalUpgradeCatalog.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/FinalUpgradeCatalog.java
new file mode 100644
index 0000000..334afaf
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/FinalUpgradeCatalog.java
@@ -0,0 +1,66 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.upgrade;
+
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.utils.VersionUtils;
+
+import java.sql.SQLException;
+
+/**
+ * Final upgrade catalog which simply updates database version (in case if no db changes between releases)
+ */
+public class FinalUpgradeCatalog extends AbstractUpgradeCatalog {
+
+  @Inject
+  public FinalUpgradeCatalog(Injector injector) {
+    super(injector);
+  }
+
+  @Override
+  protected void executeDDLUpdates() throws AmbariException, SQLException {
+    //noop
+  }
+
+  @Override
+  protected void executePreDMLUpdates() throws AmbariException, SQLException {
+    //noop
+  }
+
+  @Override
+  protected void executeDMLUpdates() throws AmbariException, SQLException {
+    //noop
+  }
+
+  @Override
+  public String getTargetVersion() {
+    return getFinalVersion();
+  }
+
+  @Override
+  public boolean isFinal() {
+    return true;
+  }
+
+  private String getFinalVersion() {
+    return VersionUtils.getVersionSubstring(configuration.getServerVersion());
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/3c4e9111/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeHelper.java
index a8f719a..f1ff33f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeHelper.java
@@ -108,13 +108,7 @@ public class SchemaUpgradeHelper {
    * @return
    */
   protected String getAmbariServerVersion() {
-    String versionFilePath = configuration.getServerVersionFilePath();
-    try {
-      return FileUtils.readFileToString(new File(versionFilePath)).trim();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-    return null;
+    return configuration.getServerVersion();
   }
 
   /**
@@ -175,6 +169,7 @@ public class SchemaUpgradeHelper {
       catalogBinder.addBinding().to(UpgradeCatalog170.class);
       catalogBinder.addBinding().to(UpgradeCatalog200.class);
       catalogBinder.addBinding().to(UpgradeCatalog210.class);
+      catalogBinder.addBinding().to(FinalUpgradeCatalog.class);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/3c4e9111/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog.java
index 2b96a57..976cc99 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog.java
@@ -47,6 +47,12 @@ public interface UpgradeCatalog {
   void upgradeData() throws AmbariException, SQLException;
 
   /**
+   * Defines if Upgrade Catalog should be executed last
+   * @return
+   */
+  boolean isFinal();
+
+  /**
    * Called after {@link #upgradeSchema()} and {@link #upgradeData()}, this
    * method is used to perform any operations after the catalog has finished.
    * Usually, this is cleanup work that does not directly affect the upgrade.

http://git-wip-us.apache.org/repos/asf/ambari/blob/3c4e9111/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeTest.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeTest.java
index 0ca5bb0..3af417f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeTest.java
@@ -74,6 +74,8 @@ import com.google.inject.Key;
 import com.google.inject.TypeLiteral;
 import com.google.inject.persist.PersistService;
 
+import static org.junit.Assert.assertTrue;
+
 @RunWith(Parameterized.class)
 public class UpgradeTest {
   private static final Logger LOG = LoggerFactory.getLogger(UpgradeTest.class);
@@ -199,6 +201,9 @@ public class UpgradeTest {
     List<UpgradeCatalog> upgradeCatalogs =
         schemaUpgradeHelper.getUpgradePath(sourceVersion, targetVersion);
 
+    assertTrue("Final Upgrade Catalog should be run last",
+      !upgradeCatalogs.isEmpty() && upgradeCatalogs.get(upgradeCatalogs.size() - 1).isFinal());
+
     try {
       schemaUpgradeHelper.executeUpgrade(upgradeCatalogs);
     } catch (Exception e) {


[2/2] ambari git commit: AMBARI-11221. ORA-00942: table or view does not exist when executing Ambari-DDL-Oracle-CREATE.sql. (mpapirkovskyy)

Posted by mp...@apache.org.
AMBARI-11221. ORA-00942: table or view does not exist when executing Ambari-DDL-Oracle-CREATE.sql. (mpapirkovskyy)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/efbc665c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/efbc665c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/efbc665c

Branch: refs/heads/trunk
Commit: efbc665c783b40ee0c2a465597cd0d601ab248a8
Parents: b19cee1
Author: Myroslav Papirkovskyy <mp...@hortonworks.com>
Authored: Mon May 18 20:10:55 2015 +0300
Committer: Myroslav Papirkovskyy <mp...@hortonworks.com>
Committed: Mon May 18 20:21:29 2015 +0300

----------------------------------------------------------------------
 .../main/resources/Ambari-DDL-Oracle-CREATE.sql | 25 --------------------
 1 file changed, 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/efbc665c/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
index d092e76..fdd5ef8 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
@@ -1042,31 +1042,6 @@ CREATE TABLE clusterEvent (
 
 -- Quartz tables
 
-delete from qrtz_fired_triggers;
-delete from qrtz_simple_triggers;
-delete from qrtz_simprop_triggers;
-delete from qrtz_cron_triggers;
-delete from qrtz_blob_triggers;
-delete from qrtz_triggers;
-delete from qrtz_job_details;
-delete from qrtz_calendars;
-delete from qrtz_paused_trigger_grps;
-delete from qrtz_locks;
-delete from qrtz_scheduler_state;
-
-drop table qrtz_calendars;
-drop table qrtz_fired_triggers;
-drop table qrtz_blob_triggers;
-drop table qrtz_cron_triggers;
-drop table qrtz_simple_triggers;
-drop table qrtz_simprop_triggers;
-drop table qrtz_triggers;
-drop table qrtz_job_details;
-drop table qrtz_paused_trigger_grps;
-drop table qrtz_locks;
-drop table qrtz_scheduler_state;
-
-
 CREATE TABLE qrtz_job_details
   (
     SCHED_NAME VARCHAR2(120) NOT NULL,