You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sm...@apache.org on 2013/04/04 00:35:43 UTC
svn commit: r1464222 [1/3] - in /incubator/ambari/trunk: ./
ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/
ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/
ambari-server/src/main/java/org/apache/ambari/eventdb/db/ ambari-server/sr...
Author: smohanty
Date: Wed Apr 3 22:35:41 2013
New Revision: 1464222
URL: http://svn.apache.org/r1464222
Log:
AMBARI-1781. Ambari Server should work with MySQL and Oracle where the Ambari Server data might be stored. (smohanty)
Added:
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/OracleConnector.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/JPATableGenerationStrategy.java
incubator/ambari/trunk/ambari-server/src/main/resources/mysql-ddl.sql
incubator/ambari/trunk/ambari-server/src/main/resources/oracle-DDL.sql
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/params.pp
incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/log4j.properties.erb
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/PostgresConnector.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleCommand.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/PersistenceType.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigMappingEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterStateEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ComponentConfigMappingEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ExecutionCommandEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentConfigMappingEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredConfigMappingEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostConfigMappingEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostConfigMappingEntityPK.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostStateEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/KeyValueEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/MetainfoEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceConfigMappingEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/StageEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UserEntity.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
incubator/ambari/trunk/ambari-server/src/main/python/ambari-server.py
incubator/ambari/trunk/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
incubator/ambari/trunk/ambari-server/src/main/resources/META-INF/persistence.xml
incubator/ambari/trunk/ambari-server/src/main/resources/upgrade/ddl/Ambari-DDL-Postgres-UPGRADE-1.3.0.sql
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/DummyHeartbeatConstants.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/orm/InMemoryDefaultTestModule.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserDetailsServiceTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AuthorizationTestModule.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
incubator/ambari/trunk/ambari-server/src/test/python/TestAmbaryServer.py
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Wed Apr 3 22:35:41 2013
@@ -544,6 +544,9 @@ Trunk (unreleased changes):
BUG FIXES
+ AMBARI-1781. Ambari Server should work with MySQL and Oracle where the
+ Ambari Server data might be stored. (smohanty)
+
AMBARI-1775. Security wizard - Javascript error is thrown when zooKeeper
is included as a secure service. (jaimin)
Modified: incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/params.pp
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/params.pp?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/params.pp (original)
+++ incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/params.pp Wed Apr 3 22:35:41 2013
@@ -176,5 +176,10 @@ class hdp-hadoop::params(
} else {
$rca_prefix = "###"
}
- $ambari_db_server_host = hdp_default("ambari_db_server_host", "localhost")
+ # $ambari_db_server_host = hdp_default("ambari_db_server_host", "localhost")
+ $ambari_db_rca_url = hdp_default("ambari_db_rca_url", "jdbc:postgresql://localhost/ambarirca")
+ $ambari_db_rca_driver = hdp_default("ambari_db_rca_driver", "org.postgresql.Driver")
+ $ambari_db_rca_username = hdp_default("ambari_db_rca_username", "mapred")
+ $ambari_db_rca_password = hdp_default("ambari_db_rca_password", "mapred")
+
}
Modified: incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/log4j.properties.erb
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/log4j.properties.erb?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/log4j.properties.erb (original)
+++ incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/log4j.properties.erb Wed Apr 3 22:35:41 2013
@@ -171,10 +171,10 @@ log4j.logger.org.apache.hadoop.mapred.Jo
log4j.additivity.org.apache.hadoop.mapred.JobInProgress$JobSummary=false
-<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.database=jdbc:postgresql://<%=scope.function_hdp_host("ambari_db_server_host")%>:5432/ambarirca
-<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.driver=org.postgresql.Driver
-<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.user=mapred
-<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.password=mapred
+<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.database=<%=scope.function_hdp_host("ambari_db_rca_url")%>
+<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.driver=<%=scope.function_hdp_host("ambari_db_rca_driver")%>
+<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.user=<%=scope.function_hdp_host("ambari_db_rca_username")%>
+<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.password=<%=scope.function_hdp_host("ambari_db_rca_password")%>
<%=scope.function_hdp_template_var("rca_prefix")%>ambari.jobhistory.logger=DEBUG,JHA
<%=scope.function_hdp_template_var("rca_prefix")%>log4j.appender.JHA=org.apache.ambari.log4j.hadoop.mapreduce.jobhistory.JobHistoryAppender
Added: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/OracleConnector.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/OracleConnector.java?rev=1464222&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/OracleConnector.java (added)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/OracleConnector.java Wed Apr 3 22:35:41 2013
@@ -0,0 +1,58 @@
+/*
+ * 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.eventdb.db;
+
+import org.apache.ambari.eventdb.model.Workflows;
+
+import java.io.IOException;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+public class OracleConnector extends PostgresConnector {
+
+ public OracleConnector(String connectionURL, String driverName, String username, String password) throws IOException {
+ super(connectionURL, driverName, username, password);
+ }
+
+ @Override
+ protected PreparedStatement getQualifiedPS(Statements statement, String searchClause, Workflows.WorkflowDBEntry.WorkflowFields field, boolean sortAscending, int offset, int limit) throws IOException {
+ if (db == null)
+ throw new IOException("db not initialized");
+
+ String order = " ORDER BY " + field.toString() + " " + (sortAscending ? SORT_ASC : SORT_DESC);
+
+ String query = "select * \n" +
+ " from ( select " +
+// "/*+ FIRST_ROWS(n) */ \n" +
+ " a.*, ROWNUM rnum \n" +
+ " from ("
+ + statement.getStatementString() + searchClause + order +
+ ") a \n" +
+ " where ROWNUM <= " + (offset + limit) + ") \n" +
+ "where rnum >= " + offset;
+
+ try {
+ return db.prepareStatement(query);
+ } catch (SQLException e) {
+ throw new IOException(e);
+ }
+
+ }
+
+
+}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/PostgresConnector.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/PostgresConnector.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/PostgresConnector.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/db/PostgresConnector.java Wed Apr 3 22:35:41 2013
@@ -57,7 +57,7 @@ public class PostgresConnector implement
private static final ObjectMapper jsonMapper = new ObjectMapper();
- private Connection db;
+ protected Connection db;
public static enum Statements {
SJ_INSERT_JOB_PS(""),
@@ -104,11 +104,10 @@ public class PostgresConnector implement
private Map<Statements,PreparedStatement> preparedStatements = new EnumMap<Statements,PreparedStatement>(Statements.class);
- public PostgresConnector(String hostname, String dbname, String username, String password) throws IOException {
- String url = "jdbc:postgresql://" + hostname + "/" + dbname;
+ public PostgresConnector(String connectionURL, String driverName, String username, String password) throws IOException {
try {
- Class.forName("org.postgresql.Driver");
- db = DriverManager.getConnection(url, username, password);
+ Class.forName(driverName);
+ db = DriverManager.getConnection(connectionURL, username, password);
} catch (ClassNotFoundException e) {
db = null;
throw new IOException(e);
@@ -494,7 +493,7 @@ public class PostgresConnector implement
}
}
- private PreparedStatement getQualifiedPS(Statements statement, String searchClause, WorkflowFields field, boolean sortAscending, int offset, int limit)
+ protected PreparedStatement getQualifiedPS(Statements statement, String searchClause, WorkflowFields field, boolean sortAscending, int offset, int limit)
throws IOException {
if (db == null)
throw new IOException("postgres db not initialized");
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java Wed Apr 3 22:35:41 2013
@@ -33,6 +33,7 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
+import org.apache.ambari.eventdb.db.OracleConnector;
import org.apache.ambari.eventdb.db.PostgresConnector;
import org.apache.ambari.eventdb.model.DataTable;
import org.apache.ambari.eventdb.model.Jobs;
@@ -45,6 +46,8 @@ import org.apache.ambari.eventdb.model.T
import org.apache.ambari.eventdb.model.Workflows;
import org.apache.ambari.eventdb.model.Workflows.WorkflowDBEntry;
import org.apache.ambari.eventdb.model.Workflows.WorkflowDBEntry.WorkflowFields;
+import org.apache.ambari.server.configuration.Configuration;
+import org.apache.commons.lang.StringUtils;
@Path("/jobhistory")
public class WorkflowJsonService {
@@ -54,10 +57,10 @@ public class WorkflowJsonService {
private static final String USERNAME = PREFIX + "db.user";
private static final String PASSWORD = PREFIX + "db.password";
- private static final String DEFAULT_HOSTNAME = "localhost";
- private static final String DEFAULT_DBNAME = "ambarirca";
- private static final String DEFAULT_USERNAME = "mapred";
- private static final String DEFAULT_PASSWORD = "mapred";
+ private static String DEFAULT_DRIVER = "localhost";
+ private static String DEFAULT_URL = "ambarirca";
+ private static String DEFAULT_USERNAME = "mapred";
+ private static String DEFAULT_PASSWORD = "mapred";
private static final Workflows EMPTY_WORKFLOWS = new Workflows();
private static final List<JobDBEntry> EMPTY_JOBS = Collections.emptyList();
@@ -67,7 +70,19 @@ public class WorkflowJsonService {
}
PostgresConnector getConnector() throws IOException {
- return new PostgresConnector(DEFAULT_HOSTNAME, DEFAULT_DBNAME, DEFAULT_USERNAME, DEFAULT_PASSWORD);
+ //TODO fix temp hack
+ if (StringUtils.contains(DEFAULT_DRIVER, "oracle")) {
+ return new OracleConnector(DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD);
+ } else {
+ return new PostgresConnector(DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD);
+ }
+ }
+
+ public static void setDBProperties(Configuration configuration) {
+ DEFAULT_DRIVER = configuration.getRcaDatabaseDriver();
+ DEFAULT_URL = configuration.getRcaDatabaseUrl();
+ DEFAULT_USERNAME = configuration.getRcaDatabaseUser();
+ DEFAULT_PASSWORD = configuration.getRcaDatabasePassword();
}
@Context
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleCommand.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleCommand.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleCommand.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleCommand.java Wed Apr 3 22:35:41 2013
@@ -72,8 +72,8 @@ public class HostRoleCommand {
this.hostName = hostRoleCommandEntity.getHostName();
role = hostRoleCommandEntity.getRole();
status = hostRoleCommandEntity.getStatus();
- stdout = new String(hostRoleCommandEntity.getStdOut());
- stderr = new String(hostRoleCommandEntity.getStdError());
+ stdout = hostRoleCommandEntity.getStdOut() != null ? new String(hostRoleCommandEntity.getStdOut()) : "";
+ stderr = hostRoleCommandEntity.getStdError() != null ? new String(hostRoleCommandEntity.getStdError()) : "";
exitCode = hostRoleCommandEntity.getExitcode();
startTime = hostRoleCommandEntity.getStartTime();
lastAttemptTime = hostRoleCommandEntity.getLastAttemptTime();
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java Wed Apr 3 22:35:41 2013
@@ -18,6 +18,7 @@
package org.apache.ambari.server.configuration;
import com.google.inject.Singleton;
+import org.apache.ambari.server.orm.JPATableGenerationStrategy;
import org.apache.ambari.server.orm.PersistenceType;
import org.apache.ambari.server.security.ClientSecurityType;
import org.apache.ambari.server.security.authorization.LdapServerProperties;
@@ -106,16 +107,37 @@ public class Configuration {
public static final String ADMIN_ROLE_NAME_KEY =
"authorization.adminRoleName";
- public static final String PERSISTENCE_IN_MEMORY_KEY =
- "server.persistence.inMemory";
- public static final String SERVER_JDBC_USER_NAME_KEY =
- "server.jdbc.user.name";
- private static final String SERVER_JDBC_USER_NAME_DEFAULT =
- "ambari-server";
- public static final String SERVER_JDBC_USER_PASSWD_KEY =
- "server.jdbc.user.passwd";
- private static final String SERVER_JDBC_USER_PASSWD_DEFAULT =
- "bigdata";
+ public static final String SERVER_PERSISTENCE_TYPE_KEY = "server.persistence.type";
+ public static final String SERVER_JDBC_USER_NAME_KEY = "server.jdbc.user.name";
+ public static final String SERVER_JDBC_USER_PASSWD_KEY = "server.jdbc.user.passwd";
+ public static final String SERVER_JDBC_DRIVER_KEY = "server.jdbc.driver";
+ public static final String SERVER_JDBC_URL_KEY = "server.jdbc.url";
+
+// public static final String SERVER_RCA_PERSISTENCE_TYPE_KEY = "server.rca.persistence.type";
+ public static final String SERVER_JDBC_RCA_USER_NAME_KEY = "server.jdbc.rca.user.name";
+ public static final String SERVER_JDBC_RCA_USER_PASSWD_KEY = "server.jdbc.rca.user.passwd";
+ public static final String SERVER_JDBC_RCA_DRIVER_KEY = "server.jdbc.rca.driver";
+ public static final String SERVER_JDBC_RCA_URL_KEY = "server.jdbc.rca.url";
+
+
+ public static final String SERVER_JDBC_GENERATE_TABLES_KEY = "server.jdbc.generateTables";
+
+ public static final String JDBC_UNIT_NAME = "ambari-server";
+
+ public static final String JDBC_LOCAL_URL = "jdbc:postgresql://localhost/ambari";
+ public static final String JDBC_LOCAL_DRIVER = "org.postgresql.Driver";
+
+ public static final String JDBC_IN_MEMORY_URL = "jdbc:derby:memory:myDB/ambari;create=true";
+ public static final String JDBC_IN_MEMROY_DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
+
+ public static final String JDBC_RCA_LOCAL_URL = "jdbc:postgresql://localhost/ambarirca";
+ public static final String JDBC_RCA_LOCAL_DRIVER = "org.postgresql.Driver";
+
+ private static final String SERVER_JDBC_USER_NAME_DEFAULT = "ambari-server";
+ private static final String SERVER_JDBC_USER_PASSWD_DEFAULT = "bigdata";
+
+ private static final String SERVER_JDBC_RCA_USER_NAME_DEFAULT = "mapred";
+ private static final String SERVER_JDBC_RCA_USER_PASSWD_DEFAULT = "mapred";
public static final String OS_VERSION_KEY =
"server.os_type";
@@ -162,7 +184,7 @@ public class Configuration {
private static final String LDAP_GROUP_SEARCH_FILTER_DEFAULT = "";
//TODO for development purposes only, should be changed to 'false'
- private static final String PERSISTENCE_IN_MEMORY_DEFAULT = "true";
+ private static final String SERVER_PERSISTENCE_TYPE_DEFAULT = "local";
@@ -380,14 +402,23 @@ public class Configuration {
return ("true".equals(properties.getProperty(API_USE_SSL, "false")));
}
-
+ /**
+ * Check persistence type Ambari Server should use. Possible values:
+ * in-memory - use in-memory Derby database to store data
+ * local - use local Postgres instance
+ * remote - use provided jdbc driver name and url to connect to database
+ */
public PersistenceType getPersistenceType() {
- String value = properties.getProperty(PERSISTENCE_IN_MEMORY_KEY, PERSISTENCE_IN_MEMORY_DEFAULT);
- if ("true".equalsIgnoreCase(value)) {
- return PersistenceType.IN_MEMORY;
- } else {
- return PersistenceType.POSTGRES;
- }
+ String value = properties.getProperty(SERVER_PERSISTENCE_TYPE_KEY, SERVER_PERSISTENCE_TYPE_DEFAULT);
+ return PersistenceType.fromString(value);
+ }
+
+ public String getDatabaseDriver() {
+ return properties.getProperty(SERVER_JDBC_DRIVER_KEY);
+ }
+
+ public String getDatabaseUrl() {
+ return properties.getProperty(SERVER_JDBC_URL_KEY);
}
public String getDatabaseUser() {
@@ -396,9 +427,30 @@ public class Configuration {
public String getDatabasePassword() {
String filePath = properties.getProperty(SERVER_JDBC_USER_PASSWD_KEY);
+ return readPassword(filePath, SERVER_JDBC_USER_PASSWD_DEFAULT);
+ }
+
+ public String getRcaDatabaseDriver() {
+ return properties.getProperty(SERVER_JDBC_RCA_DRIVER_KEY, JDBC_RCA_LOCAL_DRIVER);
+ }
+
+ public String getRcaDatabaseUrl() {
+ return properties.getProperty(SERVER_JDBC_RCA_URL_KEY, JDBC_RCA_LOCAL_URL);
+ }
+
+ public String getRcaDatabaseUser() {
+ return properties.getProperty(SERVER_JDBC_RCA_USER_NAME_KEY, SERVER_JDBC_RCA_USER_NAME_DEFAULT);
+ }
+
+ public String getRcaDatabasePassword() {
+ String filePath = properties.getProperty(SERVER_JDBC_RCA_USER_PASSWD_KEY);
+ return readPassword(filePath, SERVER_JDBC_RCA_USER_PASSWD_DEFAULT);
+ }
+
+ private String readPassword(String filePath, String defaultPassword) {
if (filePath == null) {
LOG.debug("DB password file not specified - using default");
- return SERVER_JDBC_USER_PASSWD_DEFAULT;
+ return defaultPassword;
} else {
LOG.debug("Reading password from file {}", filePath);
String password;
@@ -411,6 +463,7 @@ public class Configuration {
}
}
+
/**
* Gets parameters of LDAP server to connect to
* @return LdapServerProperties object representing connection parameters
@@ -464,4 +517,8 @@ public class Configuration {
return Integer.parseInt(properties.getProperty(CLIENT_API_PORT_KEY, String.valueOf(CLIENT_API_PORT_DEFAULT)));
}
+ public JPATableGenerationStrategy getJPATableGenerationStrategy() {
+ return JPATableGenerationStrategy.fromString(System.getProperty(SERVER_JDBC_GENERATE_TABLES_KEY));
+ }
+
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java Wed Apr 3 22:35:41 2013
@@ -921,7 +921,7 @@ public class AmbariManagementControllerI
// Generate cluster host info
execCmd.setClusterHostInfo(
- StageUtils.getClusterHostInfo(cluster, hostsMap));
+ StageUtils.getClusterHostInfo(cluster, hostsMap, injector));
Host host = clusters.getHost(scHost.getHostName());
@@ -2077,7 +2077,7 @@ public class AmbariManagementControllerI
// Generate cluster host info
stage.getExecutionCommandWrapper(clientHost, smokeTestRole)
.getExecutionCommand()
- .setClusterHostInfo(StageUtils.getClusterHostInfo(cluster, hostsMap));
+ .setClusterHostInfo(StageUtils.getClusterHostInfo(cluster, hostsMap, injector));
}
RoleGraph rg = new RoleGraph(rco);
@@ -3915,7 +3915,7 @@ public class AmbariManagementControllerI
// Generate cluster host info
execCmd.setClusterHostInfo(
- StageUtils.getClusterHostInfo(clusters.getCluster(clusterName), hostsMap));
+ StageUtils.getClusterHostInfo(clusters.getCluster(clusterName), hostsMap, injector));
}
private void addDecommissionDatanodeAction(
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java Wed Apr 3 22:35:41 2013
@@ -25,6 +25,7 @@ import java.util.Map;
import com.google.inject.persist.PersistFilter;
import com.google.gson.Gson;
+import org.apache.ambari.eventdb.webservice.WorkflowJsonService;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.actionmanager.ActionManager;
import org.apache.ambari.server.agent.HeartBeatHandler;
@@ -412,6 +413,9 @@ public class AmbariServer {
AmbariMetaService.init(injector.getInstance(AmbariMetaInfo.class));
BootStrapResource.init(injector.getInstance(BootStrapImpl.class));
StageUtils.setGson(injector.getInstance(Gson.class));
+ WorkflowJsonService.setDBProperties(
+ injector.getInstance(Configuration.class)
+ );
}
public static void main(String[] args) throws Exception {
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java Wed Apr 3 22:35:41 2013
@@ -75,15 +75,7 @@ public class ControllerModule extends Ab
bind(HostsMap.class).toInstance(hostsMap);
bind(PasswordEncoder.class).toInstance(new StandardPasswordEncoder());
- JpaPersistModule jpaPersistModule = new JpaPersistModule(configuration.getPersistenceType().getUnitName());
- if (configuration.getPersistenceType() == PersistenceType.POSTGRES) {
- Properties properties = new Properties();
- properties.setProperty("javax.persistence.jdbc.user", configuration.getDatabaseUser());
- properties.setProperty("javax.persistence.jdbc.password", configuration.getDatabasePassword());
- jpaPersistModule.properties(properties);
- }
-
- install(jpaPersistModule);
+ install(buildJpaPersistModule());
bind(Gson.class).in(Scopes.SINGLETON);
bind(Clusters.class).to(ClustersImpl.class);
@@ -92,10 +84,54 @@ public class ControllerModule extends Ab
bindConstant().annotatedWith(Names.named("actionTimeout")).to(300000L);
bind(AmbariManagementController.class)
.to(AmbariManagementControllerImpl.class);
- bind(HBaseMasterPortScanner.class).in(Singleton.class);;
+ bind(HBaseMasterPortScanner.class).in(Singleton.class);
bind(ServerActionManager.class).to(ServerActionManagerImpl.class);
}
+ private JpaPersistModule buildJpaPersistModule() {
+ PersistenceType persistenceType = configuration.getPersistenceType();
+ JpaPersistModule jpaPersistModule = new JpaPersistModule(Configuration.JDBC_UNIT_NAME);
+
+ Properties properties = new Properties();
+
+ switch (persistenceType) {
+ case IN_MEMORY:
+ properties.put("javax.persistence.jdbc.url", Configuration.JDBC_IN_MEMORY_URL);
+ properties.put("javax.persistence.jdbc.driver", Configuration.JDBC_IN_MEMROY_DRIVER);
+ properties.put("eclipselink.ddl-generation", "drop-and-create-tables");
+ properties.put("eclipselink.orm.throw.exceptions", "true");
+ jpaPersistModule.properties(properties);
+ return jpaPersistModule;
+ case REMOTE:
+ properties.put("javax.persistence.jdbc.url", configuration.getDatabaseUrl());
+ properties.put("javax.persistence.jdbc.driver", configuration.getDatabaseDriver());
+ break;
+ case LOCAL:
+ properties.put("javax.persistence.jdbc.url", Configuration.JDBC_LOCAL_URL);
+ properties.put("javax.persistence.jdbc.driver", Configuration.JDBC_LOCAL_DRIVER);
+ break;
+ }
+
+ properties.setProperty("javax.persistence.jdbc.user", configuration.getDatabaseUser());
+ properties.setProperty("javax.persistence.jdbc.password", configuration.getDatabasePassword());
+
+ switch (configuration.getJPATableGenerationStrategy()) {
+ case CREATE:
+ properties.setProperty("eclipselink.ddl-generation", "create-tables");
+ break;
+ case DROP_AND_CREATE:
+ properties.setProperty("eclipselink.ddl-generation", "drop-and-create-tables");
+ break;
+ }
+ properties.setProperty("eclipselink.ddl-generation.output-mode", "both");
+ properties.setProperty("eclipselink.create-ddl-jdbc-file-name", "DDL-create.jdbc");
+ properties.setProperty("eclipselink.drop-ddl-jdbc-file-name", "DDL-drop.jdbc");
+
+ jpaPersistModule.properties(properties);
+
+ return jpaPersistModule;
+ }
+
private void installFactories() {
install(new FactoryModuleBuilder().implement(
Cluster.class, ClusterImpl.class).build(ClusterFactory.class));
Added: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/JPATableGenerationStrategy.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/JPATableGenerationStrategy.java?rev=1464222&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/JPATableGenerationStrategy.java (added)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/JPATableGenerationStrategy.java Wed Apr 3 22:35:41 2013
@@ -0,0 +1,47 @@
+/*
+ * 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.orm;
+
+public enum JPATableGenerationStrategy {
+ //create tables which don't exist
+ CREATE("create"),
+ //drop and create all tables
+ DROP_AND_CREATE("dropAndCreate"),
+ //don't create tables
+ NONE("none");
+
+ private String value;
+
+ private JPATableGenerationStrategy(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public static JPATableGenerationStrategy fromString(String value) {
+ for (JPATableGenerationStrategy strategy : values()) {
+ if (strategy.value.equalsIgnoreCase(value)) {
+ return strategy;
+ }
+ }
+ return NONE;
+ }
+}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/PersistenceType.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/PersistenceType.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/PersistenceType.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/PersistenceType.java Wed Apr 3 22:35:41 2013
@@ -18,16 +18,26 @@
package org.apache.ambari.server.orm;
public enum PersistenceType {
- IN_MEMORY("ambari-javadb"),
- POSTGRES("ambari-postgres");
+ IN_MEMORY("in-memory"),
+ LOCAL("local"),
+ REMOTE("remote");
- String unitName;
+ String value;
- PersistenceType(String unitName) {
- this.unitName = unitName;
+ PersistenceType(String value) {
+ this.value = value;
}
- public String getUnitName() {
- return unitName;
+ public static PersistenceType fromString(String typeString) {
+ for (PersistenceType type : values()) {
+ if (type.value.equals(typeString)) {
+ return type;
+ }
+ }
+ throw new IllegalArgumentException("Unknown persistence type: "+ typeString);
+ }
+
+ public String getValue() {
+ return value;
}
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java Wed Apr 3 22:35:41 2013
@@ -53,8 +53,13 @@ public class HostDAO {
@Transactional
public List<HostEntity> findByStage(StageEntity stageEntity) {
TypedQuery<HostEntity> query = entityManagerProvider.get().createQuery(
- "SELECT DISTINCT host FROM HostEntity host JOIN host.hostRoleCommandEntities command JOIN command.stage stage " +
- "WHERE stage=:stageEntity", HostEntity.class);
+ "SELECT host FROM HostEntity host " +
+ "WHERE host.hostName IN (" +
+ "SELECT DISTINCT host.hostName " +
+ "FROM HostEntity host " +
+ "JOIN host.hostRoleCommandEntities command " +
+ "JOIN command.stage stage " +
+ "WHERE stage=:stageEntity)", HostEntity.class);
query.setParameter("stageEntity", stageEntity);
try {
return query.getResultList();
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigEntity.java Wed Apr 3 22:35:41 2013
@@ -22,21 +22,46 @@ import javax.persistence.*;
import java.util.Collection;
@IdClass(ClusterConfigEntityPK.class)
-@Table(name = "clusterconfig", schema = "ambari", catalog = "")
+@Table(name = "clusterconfig")
@Entity
public class ClusterConfigEntity {
+
+ @Id
+ @Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
private Long clusterId;
- private String configJson;
+
+ @Id
+ @Column(name = "type_name")
private String type;
+
+ @Id
+ @Column(name = "version_tag")
private String tag;
+
+ @Basic(fetch=FetchType.LAZY)
+ @Column(name = "config_data", nullable = false, insertable = true, updatable = false, length=32000)
+ @Lob
+ private String configJson;
+
+ @Column(name = "create_timestamp", nullable=false, insertable=true, updatable=false)
private long timestamp;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
+ private ClusterEntity clusterEntity;
+
+ @OneToMany(mappedBy = "clusterConfigEntity")
private Collection<HostComponentConfigMappingEntity> hostComponentConfigMappingEntities;
+
+ @OneToMany(mappedBy = "clusterConfigEntity")
private Collection<ServiceConfigMappingEntity> serviceConfigMappingEntities;
+
+ @OneToMany(mappedBy = "clusterConfigEntity")
private Collection<HostComponentDesiredConfigMappingEntity> hostComponentDesiredConfigMappingEntities;
+
+ @OneToMany(mappedBy = "clusterConfigEntity")
private Collection<ComponentConfigMappingEntity> componentConfigMappingEntities;
- @Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
- @Id
public Long getClusterId() {
return clusterId;
}
@@ -45,8 +70,6 @@ public class ClusterConfigEntity {
this.clusterId = clusterId;
}
- @Column(name = "type_name")
- @Id
public String getType() {
return type;
}
@@ -55,8 +78,6 @@ public class ClusterConfigEntity {
type = typeName;
}
- @Column(name = "version_tag")
- @Id
public String getTag() {
return tag;
}
@@ -65,8 +86,6 @@ public class ClusterConfigEntity {
tag = versionTag;
}
- @Column(name = "config_data", nullable = false, insertable = true, updatable = false, length=32000)
- @Basic(fetch=FetchType.LAZY)
public String getData() {
return configJson;
}
@@ -75,7 +94,6 @@ public class ClusterConfigEntity {
this.configJson = data;
}
- @Column(name = "create_timestamp", nullable=false, insertable=true, updatable=false)
public long getTimestamp() {
return timestamp;
}
@@ -105,10 +123,6 @@ public class ClusterConfigEntity {
return result;
}
- private ClusterEntity clusterEntity;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
public ClusterEntity getClusterEntity() {
return clusterEntity;
}
@@ -117,7 +131,6 @@ public class ClusterConfigEntity {
this.clusterEntity = clusterEntity;
}
- @OneToMany(mappedBy = "clusterConfigEntity")
public Collection<HostComponentConfigMappingEntity> getHostComponentConfigMappingEntities() {
return hostComponentConfigMappingEntities;
}
@@ -126,7 +139,6 @@ public class ClusterConfigEntity {
this.hostComponentConfigMappingEntities = hostComponentConfigMappingEntities;
}
- @OneToMany(mappedBy = "clusterConfigEntity")
public Collection<ServiceConfigMappingEntity> getServiceConfigMappingEntities() {
return serviceConfigMappingEntities;
}
@@ -135,7 +147,6 @@ public class ClusterConfigEntity {
this.serviceConfigMappingEntities = serviceConfigMappingEntities;
}
- @OneToMany(mappedBy = "clusterConfigEntity")
public Collection<HostComponentDesiredConfigMappingEntity> getHostComponentDesiredConfigMappingEntities() {
return hostComponentDesiredConfigMappingEntities;
}
@@ -144,7 +155,6 @@ public class ClusterConfigEntity {
this.hostComponentDesiredConfigMappingEntities = hostComponentDesiredConfigMappingEntities;
}
- @OneToMany(mappedBy = "clusterConfigEntity")
public Collection<ComponentConfigMappingEntity> getComponentConfigMappingEntities() {
return componentConfigMappingEntities;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigMappingEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigMappingEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigMappingEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterConfigMappingEntity.java Wed Apr 3 22:35:41 2013
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -29,19 +29,32 @@ import javax.persistence.Table;
* Entity that maps to a cluster config mapping.
*/
@IdClass(ClusterConfigMappingEntityPK.class)
-@Table(name = "clusterconfigmapping", schema = "ambari", catalog = "")
+@Table(name = "clusterconfigmapping")
@Entity
public class ClusterConfigMappingEntity {
+ @Id
+ @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
private Long clusterId;
+
+ @Id
+ @Column(name = "type_name", insertable = true, updatable = false, nullable = false)
private String typeName;
+
+ @Id
+ @Column(name = "create_timestamp", insertable = true, updatable = false, nullable = false)
+ private Long createTimestamp;
+
+ @Column(name = "version_tag", insertable = true, updatable = false, nullable = false)
private String versionTag;
+
+ @Column(name = "selected", insertable = true, updatable = true, nullable = false)
private int selectedInd = 0;
- private Long createTimestamp;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
private ClusterEntity clusterEntity;
- @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
- @Id
public Long getClusterId() {
return clusterId;
}
@@ -50,8 +63,6 @@ public class ClusterConfigMappingEntity
clusterId = id;
}
- @Column(name = "type_name", insertable = true, updatable = false, nullable = false)
- @Id
public String getType() {
return typeName;
}
@@ -59,8 +70,6 @@ public class ClusterConfigMappingEntity
typeName = type;
}
- @Column(name = "create_timestamp", insertable = true, updatable = false, nullable = false)
- @Id
public Long getCreateTimestamp() {
return createTimestamp;
}
@@ -69,7 +78,6 @@ public class ClusterConfigMappingEntity
createTimestamp = timestamp;
}
- @Column(name = "version_tag", insertable = true, updatable = false, nullable = false)
public String getVersion() {
return versionTag;
}
@@ -78,8 +86,6 @@ public class ClusterConfigMappingEntity
versionTag = version;
}
-
- @Column(name = "selected", insertable = true, updatable = true, nullable = false)
public int isSelected() {
return selectedInd;
}
@@ -88,8 +94,6 @@ public class ClusterConfigMappingEntity
selectedInd = selected;
}
- @ManyToOne
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
public ClusterEntity getClusterEntity() {
return clusterEntity;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterEntity.java Wed Apr 3 22:35:41 2013
@@ -21,7 +21,9 @@ package org.apache.ambari.server.orm.ent
import javax.persistence.*;
import java.util.Collection;
-@javax.persistence.Table(name = "clusters", schema = "ambari", catalog = "")
+import static org.apache.commons.lang.StringUtils.defaultString;
+
+@Table(name = "clusters")
@NamedQueries({
@NamedQuery(name = "clusterByName", query =
"SELECT cluster " +
@@ -32,13 +34,54 @@ import java.util.Collection;
"FROM ClusterEntity clusters")
})
@Entity
-@SequenceGenerator(name = "ambari.clusters_cluster_id_seq", allocationSize = 1)
+@TableGenerator(name = "cluster_id_generator",
+ table = "ambari_sequences", pkColumnName = "sequence_name", valueColumnName = "value"
+ , pkColumnValue = "cluster_id_seq"
+ , initialValue = 1
+ , allocationSize = 1
+)
public class ClusterEntity {
- private Long clusterId;
- @javax.persistence.Column(name = "cluster_id", nullable = false, insertable = true, updatable = true)
@Id
- @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ambari.clusters_cluster_id_seq")
+ @Column(name = "cluster_id", nullable = false, insertable = true, updatable = true)
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "cluster_id_generator")
+ private Long clusterId;
+
+ @Basic
+ @Column(name = "cluster_name", nullable = false, insertable = true,
+ updatable = true, unique = true, length = 100)
+ private String clusterName;
+
+ @Basic
+ @Column(name = "desired_cluster_state", insertable = true, updatable = true)
+ private String desiredClusterState = "";
+
+ @Basic
+ @Column(name = "cluster_info", insertable = true, updatable = true)
+ private String clusterInfo = "";
+
+ @Basic
+ @Column(name = "desired_stack_version", insertable = true, updatable = true)
+ private String desiredStackVersion = "";
+
+ @OneToMany(mappedBy = "clusterEntity")
+ private Collection<ClusterServiceEntity> clusterServiceEntities;
+
+ @OneToOne(mappedBy = "clusterEntity", cascade = CascadeType.REMOVE)
+ private ClusterStateEntity clusterStateEntity;
+
+ @ManyToMany(mappedBy = "clusterEntities")
+ private Collection<HostEntity> hostEntities;
+
+ @OneToMany(mappedBy = "cluster", cascade = CascadeType.REMOVE)
+ private Collection<StageEntity> stages;
+
+ @OneToMany(mappedBy = "clusterEntity", cascade = CascadeType.ALL)
+ private Collection<ClusterConfigEntity> configEntities;
+
+ @OneToMany(mappedBy = "clusterEntity", cascade = CascadeType.ALL)
+ private Collection<ClusterConfigMappingEntity> configMappingEntities;
+
public Long getClusterId() {
return clusterId;
}
@@ -47,11 +90,6 @@ public class ClusterEntity {
this.clusterId = clusterId;
}
- private String clusterName;
-
- @javax.persistence.Column(name = "cluster_name", nullable = false, insertable = true,
- updatable = true, unique = true, length = 100)
- @Basic
public String getClusterName() {
return clusterName;
}
@@ -60,36 +98,24 @@ public class ClusterEntity {
this.clusterName = clusterName;
}
- private String desiredClusterState = "";
-
- @javax.persistence.Column(name = "desired_cluster_state", nullable = false, insertable = true, updatable = true)
- @Basic
public String getDesiredClusterState() {
- return desiredClusterState;
+ return defaultString(desiredClusterState);
}
public void setDesiredClusterState(String desiredClusterState) {
this.desiredClusterState = desiredClusterState;
}
- private String clusterInfo = "";
-
- @javax.persistence.Column(name = "cluster_info", nullable = false, insertable = true, updatable = true)
- @Basic
public String getClusterInfo() {
- return clusterInfo;
+ return defaultString(clusterInfo);
}
public void setClusterInfo(String clusterInfo) {
this.clusterInfo = clusterInfo;
}
- private String desiredStackVersion = "";
-
- @javax.persistence.Column(name = "desired_stack_version", nullable = false, insertable = true, updatable = true)
- @Basic
public String getDesiredStackVersion() {
- return desiredStackVersion;
+ return defaultString(desiredStackVersion);
}
public void setDesiredStackVersion(String desiredStackVersion) {
@@ -124,9 +150,6 @@ public class ClusterEntity {
return result;
}
- private Collection<ClusterServiceEntity> clusterServiceEntities;
-
- @OneToMany(mappedBy = "clusterEntity")
public Collection<ClusterServiceEntity> getClusterServiceEntities() {
return clusterServiceEntities;
}
@@ -135,9 +158,6 @@ public class ClusterEntity {
this.clusterServiceEntities = clusterServiceEntities;
}
- private ClusterStateEntity clusterStateEntity;
-
- @OneToOne(mappedBy = "clusterEntity", cascade = CascadeType.REMOVE)
public ClusterStateEntity getClusterStateEntity() {
return clusterStateEntity;
}
@@ -146,9 +166,6 @@ public class ClusterEntity {
this.clusterStateEntity = clusterStateEntity;
}
- private Collection<HostEntity> hostEntities;
-
- @ManyToMany(mappedBy = "clusterEntities")
public Collection<HostEntity> getHostEntities() {
return hostEntities;
}
@@ -157,9 +174,6 @@ public class ClusterEntity {
this.hostEntities = hostEntities;
}
- private Collection<StageEntity> stages;
-
- @OneToMany(mappedBy = "cluster", cascade = CascadeType.REMOVE)
public Collection<StageEntity> getStages() {
return stages;
}
@@ -167,19 +181,15 @@ public class ClusterEntity {
public void setStages(Collection<StageEntity> stages) {
this.stages = stages;
}
-
- private Collection<ClusterConfigEntity> configEntities;
- @OneToMany(mappedBy = "clusterEntity", cascade = CascadeType.ALL)
+
public Collection<ClusterConfigEntity> getClusterConfigEntities() {
return configEntities;
}
-
+
public void setClusterConfigEntities(Collection<ClusterConfigEntity> entities) {
configEntities = entities;
}
-
- private Collection<ClusterConfigMappingEntity> configMappingEntities;
- @OneToMany(mappedBy = "clusterEntity", cascade = CascadeType.ALL)
+
public Collection<ClusterConfigMappingEntity> getConfigMappingEntities() {
return configMappingEntities;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java Wed Apr 3 22:35:41 2013
@@ -22,7 +22,7 @@ import javax.persistence.*;
import java.util.Collection;
@javax.persistence.IdClass(ClusterServiceEntityPK.class)
-@javax.persistence.Table(name = "clusterservices", schema = "ambari", catalog = "")
+@javax.persistence.Table(name = "clusterservices")
@NamedQueries({
@NamedQuery(name = "clusterServiceByClusterAndServiceNames", query =
"SELECT clusterService " +
@@ -32,10 +32,32 @@ import java.util.Collection;
})
@Entity
public class ClusterServiceEntity {
+
+ @Id
+ @Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
private Long clusterId;
- @javax.persistence.Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
@Id
+ @Column(name = "service_name", nullable = false, insertable = true, updatable = true)
+ private String serviceName;
+
+ @Basic
+ @Column(name = "service_enabled", nullable = false, insertable = true, updatable = true, length = 10)
+ private Integer serviceEnabled = 0;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
+ private ClusterEntity clusterEntity;
+
+ @OneToOne(mappedBy = "clusterServiceEntity", cascade = CascadeType.ALL)
+ private ServiceDesiredStateEntity serviceDesiredStateEntity;
+
+ @OneToMany(mappedBy = "clusterServiceEntity")
+ private Collection<ServiceComponentDesiredStateEntity> serviceComponentDesiredStateEntities;
+
+ @OneToMany(mappedBy = "serviceEntity", cascade = CascadeType.ALL)
+ private Collection<ServiceConfigMappingEntity> serviceConfigMappings;
+
public Long getClusterId() {
return clusterId;
}
@@ -44,10 +66,6 @@ public class ClusterServiceEntity {
this.clusterId = clusterId;
}
- private String serviceName;
-
- @javax.persistence.Column(name = "service_name", nullable = false, insertable = true, updatable = true)
- @Id
public String getServiceName() {
return serviceName;
}
@@ -56,10 +74,6 @@ public class ClusterServiceEntity {
this.serviceName = serviceName;
}
- private Integer serviceEnabled = 0;
-
- @javax.persistence.Column(name = "service_enabled", nullable = false, insertable = true, updatable = true, length = 10)
- @Basic
public int getServiceEnabled() {
return serviceEnabled;
}
@@ -91,10 +105,6 @@ public class ClusterServiceEntity {
return result;
}
- private ClusterEntity clusterEntity;
-
- @ManyToOne
- @javax.persistence.JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
public ClusterEntity getClusterEntity() {
return clusterEntity;
}
@@ -103,9 +113,6 @@ public class ClusterServiceEntity {
this.clusterEntity = clusterEntity;
}
- private ServiceDesiredStateEntity serviceDesiredStateEntity;
-
- @OneToOne(mappedBy = "clusterServiceEntity", cascade = CascadeType.ALL)
public ServiceDesiredStateEntity getServiceDesiredStateEntity() {
return serviceDesiredStateEntity;
}
@@ -114,9 +121,6 @@ public class ClusterServiceEntity {
this.serviceDesiredStateEntity = serviceDesiredStateEntity;
}
- private Collection<ServiceComponentDesiredStateEntity> serviceComponentDesiredStateEntities;
-
- @OneToMany(mappedBy = "clusterServiceEntity")
public Collection<ServiceComponentDesiredStateEntity> getServiceComponentDesiredStateEntities() {
return serviceComponentDesiredStateEntities;
}
@@ -125,8 +129,6 @@ public class ClusterServiceEntity {
this.serviceComponentDesiredStateEntities = serviceComponentDesiredStateEntities;
}
- private Collection<ServiceConfigMappingEntity> serviceConfigMappings;
- @OneToMany(mappedBy = "serviceEntity", cascade = CascadeType.ALL)
public Collection<ServiceConfigMappingEntity> getServiceConfigMappings() {
return serviceConfigMappings;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterStateEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterStateEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterStateEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterStateEntity.java Wed Apr 3 22:35:41 2013
@@ -18,21 +18,30 @@
package org.apache.ambari.server.orm.entities;
-import javax.persistence.Basic;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.OneToOne;
+import javax.persistence.*;
-@javax.persistence.Table(name = "clusterstate", schema = "ambari", catalog = "")
+import static org.apache.commons.lang.StringUtils.defaultString;
+
+@javax.persistence.Table(name = "clusterstate")
@Entity
public class ClusterStateEntity {
+
+ @Id
+ @Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
private Long clusterId;
- private String currentClusterState = "";
- private String currentStackVersion = "";
+
+ @Basic
+ @Column(name = "current_cluster_state", insertable = true, updatable = true)
+ private String currentClusterState;
+
+ @Basic
+ @Column(name = "current_stack_version", insertable = true, updatable = true)
+ private String currentStackVersion;
+
+ @OneToOne
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
private ClusterEntity clusterEntity;
- @javax.persistence.Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
- @Id
public Long getClusterId() {
return clusterId;
}
@@ -41,20 +50,16 @@ public class ClusterStateEntity {
this.clusterId = clusterId;
}
- @javax.persistence.Column(name = "current_cluster_state", nullable = false, insertable = true, updatable = true)
- @Basic
public String getCurrentClusterState() {
- return currentClusterState;
+ return defaultString(currentClusterState);
}
public void setCurrentClusterState(String currentClusterState) {
this.currentClusterState = currentClusterState;
}
- @javax.persistence.Column(name = "current_stack_version", nullable = false, insertable = true, updatable = true)
- @Basic
public String getCurrentStackVersion() {
- return currentStackVersion;
+ return defaultString(currentStackVersion);
}
public void setCurrentStackVersion(String currentStackVersion) {
@@ -84,8 +89,6 @@ public class ClusterStateEntity {
return result;
}
- @OneToOne
- @javax.persistence.JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
public ClusterEntity getClusterEntity() {
return clusterEntity;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ComponentConfigMappingEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ComponentConfigMappingEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ComponentConfigMappingEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ComponentConfigMappingEntity.java Wed Apr 3 22:35:41 2013
@@ -28,19 +28,47 @@ import javax.persistence.Table;
@IdClass(ComponentConfigMappingEntityPK.class)
@Entity
-@Table(name = "componentconfigmapping", schema = "ambari", catalog = "")
+@Table(name = "componentconfigmapping")
public class ComponentConfigMappingEntity {
+
+ @Id
+ @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
private Long clusterId;
+
+ @Id
+ @Column(name = "service_name", insertable = false, updatable = false, nullable = false)
private String serviceName;
+
+ @Id
+ @Column(name = "component_name", insertable = false, updatable = false, nullable = false)
private String componentName;
+
+ @Id
+ @Column(name = "config_type", insertable = true, updatable = false, nullable = false)
private String configType;
+
+ @Column(name = "config_tag", nullable = false, insertable = true, updatable = true)
private String configTag;
+
+ @Column(name="timestamp", nullable = false, insertable = true, updatable = true)
private Long timestamp;
- private ServiceComponentDesiredStateEntity componentEntity;
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
+ @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
+ @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false)
+ })
+ private ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity;
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false),
+ @JoinColumn(name = "config_type", referencedColumnName = "type_name", nullable = false, insertable = false, updatable = false),
+ @JoinColumn(name = "config_tag", referencedColumnName = "version_tag", nullable = false, insertable = false, updatable = false)
+ })
private ClusterConfigEntity clusterConfigEntity;
- @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
- @Id
public Long getClusterId() {
return clusterId;
}
@@ -49,8 +77,6 @@ public class ComponentConfigMappingEntit
clusterId = id;
}
- @Column(name = "service_name", insertable = false, updatable = false, nullable = false)
- @Id
public String getServiceName() {
return serviceName;
}
@@ -59,8 +85,6 @@ public class ComponentConfigMappingEntit
serviceName = name;
}
- @Column(name = "component_name", insertable = false, updatable = false, nullable = false)
- @Id
public String getComponentName() {
return componentName;
}
@@ -69,8 +93,6 @@ public class ComponentConfigMappingEntit
componentName = name;
}
- @Column(name = "config_type", insertable = true, updatable = false, nullable = false)
- @Id
public String getConfigType() {
return configType;
}
@@ -79,7 +101,6 @@ public class ComponentConfigMappingEntit
configType = type;
}
- @Column(name = "config_tag", nullable = false, insertable = true, updatable = true)
public String getVersionTag() {
return configTag;
}
@@ -88,7 +109,6 @@ public class ComponentConfigMappingEntit
configTag = tag;
}
- @Column(name="timestamp", nullable = false, insertable = true, updatable = true)
public Long getTimestamp() {
return timestamp;
}
@@ -122,26 +142,14 @@ public class ComponentConfigMappingEntit
}
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
- @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
- @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false)
- })
public ServiceComponentDesiredStateEntity getServiceComponentDesiredStateEntity() {
- return componentEntity;
+ return serviceComponentDesiredStateEntity;
}
public void setServiceComponentDesiredStateEntity(ServiceComponentDesiredStateEntity entity) {
- componentEntity = entity;
+ serviceComponentDesiredStateEntity = entity;
}
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false),
- @JoinColumn(name = "config_type", referencedColumnName = "type_name", nullable = false, insertable = false, updatable = false),
- @JoinColumn(name = "config_tag", referencedColumnName = "version_tag", nullable = false, insertable = false, updatable = false)
- })
public ClusterConfigEntity getClusterConfigEntity() {
return clusterConfigEntity;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ExecutionCommandEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ExecutionCommandEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ExecutionCommandEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ExecutionCommandEntity.java Wed Apr 3 22:35:41 2013
@@ -21,13 +21,23 @@ package org.apache.ambari.server.orm.ent
import javax.persistence.*;
import java.util.Arrays;
-@Table(name = "execution_command", schema = "ambari", catalog = "")
+@Table(name = "execution_command")
@Entity
public class ExecutionCommandEntity {
- private Long taskId;
- @Column(name = "task_id")
@Id
+ @Column(name = "task_id")
+ private Long taskId;
+
+ @Basic
+ @Lob
+ @Column(name = "command")
+ private byte[] command;
+
+ @OneToOne
+ @JoinColumn(name = "task_id", referencedColumnName = "task_id", nullable = false, insertable = false, updatable = false)
+ private HostRoleCommandEntity hostRoleCommand;
+
public Long getTaskId() {
return taskId;
}
@@ -36,11 +46,6 @@ public class ExecutionCommandEntity {
this.taskId = taskId;
}
- private byte[] command;
-
- @Column(name = "command")
- @Lob
- @Basic
public byte[] getCommand() {
return command;
}
@@ -69,10 +74,6 @@ public class ExecutionCommandEntity {
return result;
}
- private HostRoleCommandEntity hostRoleCommand;
-
- @OneToOne
- @JoinColumn(name = "task_id", referencedColumnName = "task_id", nullable = false, insertable = false, updatable = false)
public HostRoleCommandEntity getHostRoleCommand() {
return hostRoleCommand;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentConfigMappingEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentConfigMappingEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentConfigMappingEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentConfigMappingEntity.java Wed Apr 3 22:35:41 2013
@@ -27,21 +27,53 @@ import javax.persistence.ManyToOne;
import javax.persistence.Table;
@IdClass(HostComponentConfigMappingEntityPK.class)
-@Table(name = "hostcomponentconfigmapping", schema = "ambari", catalog = "")
+@Table(name = "hostcomponentconfigmapping")
@Entity
public class HostComponentConfigMappingEntity {
+
+ @Id
+ @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
private Long clusterId;
+
+ @Id
+ @Column(name = "service_name", insertable = false, updatable = false, nullable = false)
private String serviceName;
+
+ @Id
+ @Column(name = "component_name", insertable = false, updatable = false, nullable = false)
private String componentName;
+
+ @Id
+ @Column(name = "host_name", insertable = false, updatable = false, nullable = false)
private String hostName;
+
+ @Id
+ @Column(name = "config_type", insertable = true, updatable = false, nullable = false)
private String configType;
+
+ @Column(name = "config_tag", nullable = false, insertable = true, updatable = true)
private String configTag;
+
+ @Column(name="timestamp", nullable = false, insertable = true, updatable = true)
private Long timestamp;
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
+ @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
+ @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false),
+ @JoinColumn(name = "host_name", referencedColumnName = "host_name", nullable = false) })
private HostComponentStateEntity hostComponentStateEntity;
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false),
+ @JoinColumn(name = "config_type", referencedColumnName = "type_name", nullable = false, insertable = false, updatable = false),
+ @JoinColumn(name = "config_tag", referencedColumnName = "version_tag", nullable = false, insertable = false, updatable = false)
+ })
private ClusterConfigEntity clusterConfigEntity;
- @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
- @Id
+
public Long getClusterId() {
return clusterId;
}
@@ -50,8 +82,6 @@ public class HostComponentConfigMappingE
clusterId = id;
}
- @Column(name = "service_name", insertable = false, updatable = false, nullable = false)
- @Id
public String getServiceName() {
return serviceName;
}
@@ -60,8 +90,6 @@ public class HostComponentConfigMappingE
serviceName = name;
}
- @Column(name = "component_name", insertable = false, updatable = false, nullable = false)
- @Id
public String getComponentName() {
return componentName;
}
@@ -70,8 +98,6 @@ public class HostComponentConfigMappingE
componentName = name;
}
- @Column(name = "host_name", insertable = false, updatable = false, nullable = false)
- @Id
public String getHostName() {
return hostName;
}
@@ -80,8 +106,6 @@ public class HostComponentConfigMappingE
hostName = name;
}
- @Column(name = "config_type", insertable = true, updatable = false, nullable = false)
- @Id
public String getConfigType() {
return configType;
}
@@ -90,7 +114,6 @@ public class HostComponentConfigMappingE
configType = type;
}
- @Column(name = "config_tag", nullable = false, insertable = true, updatable = true)
public String getVersionTag() {
return configTag;
}
@@ -99,7 +122,6 @@ public class HostComponentConfigMappingE
configTag = tag;
}
- @Column(name="timestamp", nullable = false, insertable = true, updatable = true)
public Long getTimestamp() {
return timestamp;
}
@@ -108,12 +130,6 @@ public class HostComponentConfigMappingE
timestamp = stamp;
}
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
- @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
- @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false),
- @JoinColumn(name = "host_name", referencedColumnName = "host_name", nullable = false) })
public HostComponentStateEntity getHostComponentStateEntity() {
return hostComponentStateEntity;
}
@@ -122,12 +138,6 @@ public class HostComponentConfigMappingE
hostComponentStateEntity = entity;
}
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false),
- @JoinColumn(name = "config_type", referencedColumnName = "type_name", nullable = false, insertable = false, updatable = false),
- @JoinColumn(name = "config_tag", referencedColumnName = "version_tag", nullable = false, insertable = false, updatable = false)
- })
public ClusterConfigEntity getClusterConfigEntity() {
return clusterConfigEntity;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredConfigMappingEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredConfigMappingEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredConfigMappingEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredConfigMappingEntity.java Wed Apr 3 22:35:41 2013
@@ -27,21 +27,52 @@ import javax.persistence.ManyToOne;
import javax.persistence.Table;
@IdClass(HostComponentDesiredConfigMappingEntityPK.class)
-@Table(name = "hostcomponentdesiredconfigmapping", schema = "ambari", catalog = "")
+@Table(name = "hcdesiredconfigmapping")
@Entity
public class HostComponentDesiredConfigMappingEntity {
+
+ @Id
+ @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
private Long clusterId;
+
+ @Id
+ @Column(name = "service_name", insertable = false, updatable = false, nullable = false)
private String serviceName;
+
+ @Id
+ @Column(name = "component_name", insertable = false, updatable = false, nullable = false)
private String componentName;
+
+ @Id
+ @Column(name = "host_name", insertable = false, updatable = false, nullable = false)
private String hostName;
+
+ @Id
+ @Column(name = "config_type", insertable = true, updatable = false, nullable = false)
private String configType;
+
+ @Column(name = "config_tag", nullable = false, insertable = true, updatable = true)
private String configTag;
+
+ @Column(name="timestamp", nullable = false, insertable = true, updatable = true)
private Long timestamp;
- private HostComponentDesiredStateEntity hostComponentEntity;
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
+ @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
+ @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false),
+ @JoinColumn(name = "host_name", referencedColumnName = "host_name", nullable = false) })
+ private HostComponentDesiredStateEntity hostComponentDesiredStateEntity;
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false),
+ @JoinColumn(name = "config_type", referencedColumnName = "type_name", nullable = false, insertable = false, updatable = false),
+ @JoinColumn(name = "config_tag", referencedColumnName = "version_tag", nullable = false, insertable = false, updatable = false)
+ })
private ClusterConfigEntity clusterConfigEntity;
- @Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
- @Id
public Long getClusterId() {
return clusterId;
}
@@ -49,9 +80,7 @@ public class HostComponentDesiredConfigM
public void setClusterId(Long id) {
clusterId = id;
}
-
- @Column(name = "service_name", insertable = false, updatable = false, nullable = false)
- @Id
+
public String getServiceName() {
return serviceName;
}
@@ -59,9 +88,7 @@ public class HostComponentDesiredConfigM
public void setServiceName(String name) {
serviceName = name;
}
-
- @Column(name = "component_name", insertable = false, updatable = false, nullable = false)
- @Id
+
public String getComponentName() {
return componentName;
}
@@ -69,9 +96,7 @@ public class HostComponentDesiredConfigM
public void setComponentName(String name) {
componentName = name;
}
-
- @Column(name = "host_name", insertable = false, updatable = false, nullable = false)
- @Id
+
public String getHostName() {
return hostName;
}
@@ -80,8 +105,6 @@ public class HostComponentDesiredConfigM
hostName = name;
}
- @Column(name = "config_type", insertable = true, updatable = false, nullable = false)
- @Id
public String getConfigType() {
return configType;
}
@@ -89,8 +112,7 @@ public class HostComponentDesiredConfigM
public void setConfigType(String type) {
configType = type;
}
-
- @Column(name = "config_tag", nullable = false, insertable = true, updatable = true)
+
public String getVersionTag() {
return configTag;
}
@@ -99,7 +121,6 @@ public class HostComponentDesiredConfigM
configTag = tag;
}
- @Column(name="timestamp", nullable = false, insertable = true, updatable = true)
public Long getTimestamp() {
return timestamp;
}
@@ -107,27 +128,15 @@ public class HostComponentDesiredConfigM
public void setTimestamp(Long stamp) {
timestamp = stamp;
}
-
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
- @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
- @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false),
- @JoinColumn(name = "host_name", referencedColumnName = "host_name", nullable = false) })
+
public HostComponentDesiredStateEntity getHostComponentDesiredStateEntity() {
- return hostComponentEntity;
+ return hostComponentDesiredStateEntity;
}
public void setHostComponentDesiredStateEntity(HostComponentDesiredStateEntity entity) {
- hostComponentEntity = entity;
+ hostComponentDesiredStateEntity = entity;
}
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false),
- @JoinColumn(name = "config_type", referencedColumnName = "type_name", nullable = false, insertable = false, updatable = false),
- @JoinColumn(name = "config_tag", referencedColumnName = "version_tag", nullable = false, insertable = false, updatable = false)
- })
public ClusterConfigEntity getClusterConfigEntity() {
return clusterConfigEntity;
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java?rev=1464222&r1=1464221&r2=1464222&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java Wed Apr 3 22:35:41 2013
@@ -23,14 +23,52 @@ import javax.persistence.*;
import org.apache.ambari.server.state.State;
+import static org.apache.commons.lang.StringUtils.defaultString;
+
@javax.persistence.IdClass(HostComponentDesiredStateEntityPK.class)
-@javax.persistence.Table(name = "hostcomponentdesiredstate", schema = "ambari", catalog = "")
+@javax.persistence.Table(name = "hostcomponentdesiredstate")
@Entity
public class HostComponentDesiredStateEntity {
+
+ @Id
+ @Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
private Long clusterId;
- @javax.persistence.Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10)
@Id
+ @Column(name = "service_name", nullable = false, insertable = false, updatable = false)
+ private String serviceName;
+
+ @Id
+ @Column(name = "host_name", insertable = false, updatable = false)
+ private String hostName = "";
+
+ @Id
+ @Column(name = "component_name", insertable = false, updatable = false)
+ private String componentName = "";
+
+ @Basic
+ @Column(name = "desired_state", nullable = false, insertable = true, updatable = true)
+ @Enumerated(value = EnumType.STRING)
+ private State desiredState = State.INIT;
+
+ @Basic
+ @Column(name = "desired_stack_version", insertable = true, updatable = true)
+ private String desiredStackVersion = "";
+
+ @ManyToOne
+ @JoinColumns({
+ @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
+ @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
+ @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false)})
+ private ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity;
+
+ @ManyToOne
+ @JoinColumn(name = "host_name", referencedColumnName = "host_name", nullable = false)
+ private HostEntity hostEntity;
+
+ @OneToMany(mappedBy = "hostComponentDesiredStateEntity", cascade = CascadeType.ALL)
+ private Collection<HostComponentDesiredConfigMappingEntity> desiredConfigMappingEntities;
+
public Long getClusterId() {
return clusterId;
}
@@ -39,10 +77,6 @@ public class HostComponentDesiredStateEn
this.clusterId = clusterId;
}
- private String serviceName;
-
- @javax.persistence.Column(name = "service_name", nullable = false, insertable = false, updatable = false)
- @Id
public String getServiceName() {
return serviceName;
}
@@ -51,35 +85,22 @@ public class HostComponentDesiredStateEn
this.serviceName = serviceName;
}
- private String hostName = "";
-
- @javax.persistence.Column(name = "host_name", nullable = false, insertable = false, updatable = false)
- @Id
public String getHostName() {
- return hostName;
+ return defaultString(hostName);
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
- private String componentName = "";
-
- @javax.persistence.Column(name = "component_name", nullable = false, insertable = false, updatable = false)
- @Id
public String getComponentName() {
- return componentName;
+ return defaultString(componentName);
}
public void setComponentName(String componentName) {
this.componentName = componentName;
}
- private State desiredState = State.INIT;
-
- @javax.persistence.Column(name = "desired_state", nullable = false, insertable = true, updatable = true)
- @Enumerated(value = EnumType.STRING)
- @Basic
public State getDesiredState() {
return desiredState;
}
@@ -88,12 +109,8 @@ public class HostComponentDesiredStateEn
this.desiredState = desiredState;
}
- private String desiredStackVersion = "";
-
- @javax.persistence.Column(name = "desired_stack_version", nullable = false, insertable = true, updatable = true)
- @Basic
public String getDesiredStackVersion() {
- return desiredStackVersion;
+ return defaultString(desiredStackVersion);
}
public void setDesiredStackVersion(String desiredStackVersion) {
@@ -129,13 +146,7 @@ public class HostComponentDesiredStateEn
return result;
}
- private ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity;
- @ManyToOne
- @JoinColumns({
- @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false),
- @JoinColumn(name = "service_name", referencedColumnName = "service_name", nullable = false),
- @JoinColumn(name = "component_name", referencedColumnName = "component_name", nullable = false)})
public ServiceComponentDesiredStateEntity getServiceComponentDesiredStateEntity() {
return serviceComponentDesiredStateEntity;
}
@@ -144,10 +155,6 @@ public class HostComponentDesiredStateEn
this.serviceComponentDesiredStateEntity = serviceComponentDesiredStateEntity;
}
- private HostEntity hostEntity;
-
- @ManyToOne
- @javax.persistence.JoinColumn(name = "host_name", referencedColumnName = "host_name", nullable = false)
public HostEntity getHostEntity() {
return hostEntity;
}
@@ -156,8 +163,6 @@ public class HostComponentDesiredStateEn
this.hostEntity = hostEntity;
}
- private Collection<HostComponentDesiredConfigMappingEntity> desiredConfigMappingEntities;
- @OneToMany(mappedBy = "hostComponentDesiredStateEntity", cascade = CascadeType.ALL)
public Collection<HostComponentDesiredConfigMappingEntity> getHostComponentDesiredConfigMappingEntities() {
return desiredConfigMappingEntities;
}