You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2015/04/16 16:37:29 UTC
[6/8] ambari git commit: AMBARI-10511 - Use Stack Table For Entity
Relationships (jonathanhurley)
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
index 9ec0370..ffa085a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
@@ -17,12 +17,14 @@
*/
package org.apache.ambari.server.state.configgroup;
-import com.google.gson.Gson;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.assistedinject.Assisted;
-import com.google.inject.assistedinject.AssistedInject;
-import com.google.inject.persist.Transactional;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.DuplicateResourceException;
import org.apache.ambari.server.controller.ConfigGroupResponse;
@@ -46,13 +48,13 @@ import org.apache.ambari.server.state.ConfigFactory;
import org.apache.ambari.server.state.Host;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import com.google.gson.Gson;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
+import com.google.inject.persist.Transactional;
public class ConfigGroupImpl implements ConfigGroup {
private static final Logger LOG = LoggerFactory.getLogger(ConfigGroupImpl.class);
@@ -105,9 +107,9 @@ public class ConfigGroupImpl implements ConfigGroup {
}
if (configs != null) {
- this.configurations = configs;
+ configurations = configs;
} else {
- this.configurations = new HashMap<String, Config>();
+ configurations = new HashMap<String, Config>();
}
}
@@ -119,8 +121,8 @@ public class ConfigGroupImpl implements ConfigGroup {
this.cluster = cluster;
this.configGroupEntity = configGroupEntity;
- this.configurations = new HashMap<String, Config>();
- this.hosts = new HashMap<String, Host>();
+ configurations = new HashMap<String, Config>();
+ hosts = new HashMap<String, Host>();
// Populate configs
for (ConfigGroupConfigMappingEntity configMappingEntity : configGroupEntity
@@ -130,7 +132,7 @@ public class ConfigGroupImpl implements ConfigGroup {
configMappingEntity.getVersionTag());
if (config != null) {
- this.configurations.put(config.getType(), config);
+ configurations.put(config.getType(), config);
} else {
LOG.warn("Unable to find config mapping for config group"
+ ", clusterName = " + cluster.getClusterName()
@@ -146,7 +148,7 @@ public class ConfigGroupImpl implements ConfigGroup {
try {
Host host = clusters.getHost(hostMappingEntity.getHostname());
if (host != null) {
- this.hosts.put(host.getHostName(), host);
+ hosts.put(host.getHostName(), host);
}
} catch (AmbariException e) {
String msg = "Host seems to be deleted but Config group mapping still " +
@@ -178,7 +180,7 @@ public class ConfigGroupImpl implements ConfigGroup {
public void setName(String name) {
readWriteLock.writeLock().lock();
try {
- this.configGroupEntity.setGroupName(name);
+ configGroupEntity.setGroupName(name);
} finally {
readWriteLock.writeLock().unlock();
}
@@ -204,7 +206,7 @@ public class ConfigGroupImpl implements ConfigGroup {
public void setTag(String tag) {
readWriteLock.writeLock().lock();
try {
- this.configGroupEntity.setTag(tag);
+ configGroupEntity.setTag(tag);
} finally {
readWriteLock.writeLock().unlock();
}
@@ -225,7 +227,7 @@ public class ConfigGroupImpl implements ConfigGroup {
public void setDescription(String description) {
readWriteLock.writeLock().lock();
try {
- this.configGroupEntity.setDescription(description);
+ configGroupEntity.setDescription(description);
} finally {
readWriteLock.writeLock().unlock();
}
@@ -276,7 +278,7 @@ public class ConfigGroupImpl implements ConfigGroup {
public void setConfigurations(Map<String, Config> configs) {
readWriteLock.writeLock().lock();
try {
- this.configurations = configs;
+ configurations = configs;
} finally {
readWriteLock.writeLock().unlock();
}
@@ -405,6 +407,7 @@ public class ConfigGroupImpl implements ConfigGroup {
clusterConfigEntity = new ClusterConfigEntity();
clusterConfigEntity.setClusterId(clusterEntity.getClusterId());
clusterConfigEntity.setClusterEntity(clusterEntity);
+ clusterConfigEntity.setStack(clusterEntity.getDesiredStack());
clusterConfigEntity.setType(config.getType());
clusterConfigEntity.setVersion(config.getVersion());
clusterConfigEntity.setTag(config.getTag());
@@ -545,6 +548,7 @@ public class ConfigGroupImpl implements ConfigGroup {
}
}
+ @Override
@Transactional
public void refresh() {
readWriteLock.writeLock().lock();
@@ -565,7 +569,7 @@ public class ConfigGroupImpl implements ConfigGroup {
public String getServiceName() {
readWriteLock.readLock().lock();
try {
- return this.configGroupEntity.getServiceName();
+ return configGroupEntity.getServiceName();
} finally {
readWriteLock.readLock().unlock();
}
@@ -576,7 +580,7 @@ public class ConfigGroupImpl implements ConfigGroup {
public void setServiceName(String serviceName) {
readWriteLock.writeLock().lock();
try {
- this.configGroupEntity.setServiceName(serviceName);
+ configGroupEntity.setServiceName(serviceName);
} finally {
readWriteLock.writeLock().unlock();
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
index 370cd48..4c9c499 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
@@ -43,6 +43,7 @@ import org.apache.ambari.server.orm.dao.HostComponentStateDAO;
import org.apache.ambari.server.orm.dao.HostDAO;
import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.apache.ambari.server.orm.dao.ServiceComponentDesiredStateDAO;
+import org.apache.ambari.server.orm.dao.StackDAO;
import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity;
import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntityPK;
import org.apache.ambari.server.orm.entities.HostComponentStateEntity;
@@ -51,6 +52,7 @@ import org.apache.ambari.server.orm.entities.HostEntity;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity;
import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntityPK;
+import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.ConfigHelper;
@@ -78,7 +80,6 @@ import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.assistedinject.Assisted;
@@ -102,8 +103,6 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
private boolean persisted = false;
@Inject
- Gson gson;
- @Inject
HostComponentStateDAO hostComponentStateDAO;
@Inject
HostComponentDesiredStateDAO hostComponentDesiredStateDAO;
@@ -135,6 +134,12 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
@Inject
private AmbariEventPublisher eventPublisher;
+ /**
+ * Data access object for stack.
+ */
+ @Inject
+ private StackDAO stackDAO;
+
// TODO : caching the JPA entities here causes issues if they become stale and get re-merged.
private HostComponentStateEntity stateEntity;
private HostComponentDesiredStateEntity desiredStateEntity;
@@ -702,6 +707,10 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
throw new RuntimeException(e);
}
+ StackId stackId = serviceComponent.getDesiredStackVersion();
+ StackEntity stackEntity = stackDAO.find(stackId.getStackName(),
+ stackId.getStackVersion());
+
stateEntity = new HostComponentStateEntity();
stateEntity.setClusterId(serviceComponent.getClusterId());
stateEntity.setComponentName(serviceComponent.getName());
@@ -710,7 +719,7 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
stateEntity.setHostEntity(hostEntity);
stateEntity.setCurrentState(stateMachine.getCurrentState());
stateEntity.setUpgradeState(UpgradeState.NONE);
- stateEntity.setCurrentStackVersion(gson.toJson(new StackId()));
+ stateEntity.setCurrentStack(stackEntity);
stateEntityPK = getHostComponentStateEntityPK(stateEntity);
@@ -720,8 +729,8 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
desiredStateEntity.setServiceName(serviceComponent.getServiceName());
desiredStateEntity.setHostEntity(hostEntity);
desiredStateEntity.setDesiredState(State.INIT);
- desiredStateEntity.setDesiredStackVersion(
- gson.toJson(serviceComponent.getDesiredStackVersion()));
+ desiredStateEntity.setDesiredStack(stackEntity);
+
if(!serviceComponent.isMasterComponent() && !serviceComponent.isClientComponent()) {
desiredStateEntity.setAdminState(HostComponentAdminState.INSERVICE);
} else {
@@ -1022,17 +1031,23 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
if (schStateEntity == null) {
return new StackId();
}
- return gson.fromJson(schStateEntity.getCurrentStackVersion(), StackId.class);
+
+ StackEntity currentStackEntity = schStateEntity.getCurrentStack();
+ return new StackId(currentStackEntity.getStackName(),
+ currentStackEntity.getStackVersion());
} finally {
readLock.unlock();
}
}
@Override
- public void setStackVersion(StackId stackVersion) {
+ public void setStackVersion(StackId stackId) {
writeLock.lock();
try {
- getStateEntity().setCurrentStackVersion(gson.toJson(stackVersion));
+ StackEntity stackEntity = stackDAO.find(stackId.getStackName(),
+ stackId.getStackVersion());
+
+ getStateEntity().setCurrentStack(stackEntity);
saveIfPersisted();
} finally {
writeLock.unlock();
@@ -1064,18 +1079,22 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
public StackId getDesiredStackVersion() {
readLock.lock();
try {
- return gson.fromJson(getDesiredStateEntity().getDesiredStackVersion(),
- StackId.class);
+ StackEntity desiredStackEntity = getDesiredStateEntity().getDesiredStack();
+ return new StackId(desiredStackEntity.getStackName(),
+ desiredStackEntity.getStackVersion());
} finally {
readLock.unlock();
}
}
@Override
- public void setDesiredStackVersion(StackId stackVersion) {
+ public void setDesiredStackVersion(StackId stackId) {
writeLock.lock();
try {
- getDesiredStateEntity().setDesiredStackVersion(gson.toJson(stackVersion));
+ StackEntity stackEntity = stackDAO.find(stackId.getStackName(),
+ stackId.getStackVersion());
+
+ getDesiredStateEntity().setDesiredStack(stackEntity);
saveIfPersisted();
} finally {
writeLock.unlock();
@@ -1478,7 +1497,14 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
private RepositoryVersionEntity createRepositoryVersion(String version, final StackId stackId, final StackInfo stackInfo) throws AmbariException {
// During an Ambari Upgrade from 1.7.0 -> 2.0.0, the Repo Version will not exist, so bootstrap it.
LOG.info("Creating new repository version " + stackId.getStackName() + "-" + version);
- return repositoryVersionDAO.create(stackId.getStackId(), version, stackId.getStackName() + "-" + version,
+
+ StackEntity stackEntity = stackDAO.find(stackId.getStackName(),
+ stackId.getStackVersion());
+
+ return repositoryVersionDAO.create(
+ stackEntity,
+ version,
+ stackId.getStackName() + "-" + version,
repositoryVersionHelper.getUpgradePackageNameSafe(stackId.getStackName(), stackId.getStackVersion(), version),
repositoryVersionHelper.serializeOperatingSystems(stackInfo.getRepositories()));
}
@@ -1509,7 +1535,8 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
writeLock.lock();
try {
- RepositoryVersionEntity repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId.getStackId(), version);
+ RepositoryVersionEntity repositoryVersion = repositoryVersionDAO.findByStackAndVersion(
+ stackId, version);
if (repositoryVersion == null) {
repositoryVersion = createRepositoryVersion(version, stackId, stackInfo);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/java/org/apache/ambari/server/upgrade/StackUpgradeUtil.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/StackUpgradeUtil.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/StackUpgradeUtil.java
index 388bea9..8c629ca 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/StackUpgradeUtil.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/StackUpgradeUtil.java
@@ -28,6 +28,7 @@ import org.apache.ambari.server.orm.dao.HostComponentStateDAO;
import org.apache.ambari.server.orm.dao.MetainfoDAO;
import org.apache.ambari.server.orm.dao.ServiceComponentDesiredStateDAO;
import org.apache.ambari.server.orm.dao.ServiceDesiredStateDAO;
+import org.apache.ambari.server.orm.dao.StackDAO;
import org.apache.ambari.server.orm.entities.ClusterEntity;
import org.apache.ambari.server.orm.entities.ClusterStateEntity;
import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity;
@@ -35,46 +36,31 @@ import org.apache.ambari.server.orm.entities.HostComponentStateEntity;
import org.apache.ambari.server.orm.entities.MetainfoEntity;
import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity;
import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity;
+import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.state.OperatingSystemInfo;
-import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.stack.OsFamily;
-import com.google.gson.Gson;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.persist.Transactional;
public class StackUpgradeUtil {
@Inject
- private Gson gson;
- @Inject
private Injector injector;
- private String getStackIdString(String originalStackId, String stackName,
- String stackVersion) {
- if (stackVersion == null) {
- stackVersion = gson.fromJson(originalStackId, StackId.class).getStackVersion();
- }
-
- return String.format(
- "{\"stackName\":\"%s\",\"stackVersion\":\"%s\"}",
- stackName,
- stackVersion
- );
- }
-
@Transactional
public void updateStackDetails(String stackName, String stackVersion) {
ClusterDAO clusterDAO = injector.getInstance(ClusterDAO.class);
+ StackDAO stackDAO = injector.getInstance(StackDAO.class);
List<Long> clusterIds = new ArrayList<Long>();
+ StackEntity stackEntity = stackDAO.find(stackName, stackVersion);
+
List<ClusterEntity> clusterEntities = clusterDAO.findAll();
if (clusterEntities != null && !clusterEntities.isEmpty()) {
for (ClusterEntity entity : clusterEntities) {
clusterIds.add(entity.getClusterId());
- String stackIdString = entity.getDesiredStackVersion();
- entity.setDesiredStackVersion(getStackIdString(stackIdString,
- stackName, stackVersion));
+ entity.setDesiredStack(stackEntity);
clusterDAO.merge(entity);
}
}
@@ -83,9 +69,7 @@ public class StackUpgradeUtil {
for (Long clusterId : clusterIds) {
ClusterStateEntity clusterStateEntity = clusterStateDAO.findByPK(clusterId);
- String currentStackVersion = clusterStateEntity.getCurrentStackVersion();
- clusterStateEntity.setCurrentStackVersion(getStackIdString
- (currentStackVersion, stackName, stackVersion));
+ clusterStateEntity.setCurrentStack(stackEntity);
clusterStateDAO.merge(clusterStateEntity);
}
@@ -95,9 +79,7 @@ public class StackUpgradeUtil {
if (hcEntities != null) {
for (HostComponentStateEntity hc : hcEntities) {
- String currentStackVersion = hc.getCurrentStackVersion();
- hc.setCurrentStackVersion(getStackIdString(currentStackVersion,
- stackName, stackVersion));
+ hc.setCurrentStack(stackEntity);
hostComponentStateDAO.merge(hc);
}
}
@@ -109,9 +91,7 @@ public class StackUpgradeUtil {
if (hcdEntities != null) {
for (HostComponentDesiredStateEntity hcd : hcdEntities) {
- String desiredStackVersion = hcd.getDesiredStackVersion();
- hcd.setDesiredStackVersion(getStackIdString(desiredStackVersion,
- stackName, stackVersion));
+ hcd.setDesiredStack(stackEntity);
hostComponentDesiredStateDAO.merge(hcd);
}
}
@@ -124,9 +104,7 @@ public class StackUpgradeUtil {
if (scdEntities != null) {
for (ServiceComponentDesiredStateEntity scd : scdEntities) {
- String desiredStackVersion = scd.getDesiredStackVersion();
- scd.setDesiredStackVersion(getStackIdString(desiredStackVersion,
- stackName, stackVersion));
+ scd.setDesiredStack(stackEntity);
serviceComponentDesiredStateDAO.merge(scd);
}
}
@@ -137,14 +115,10 @@ public class StackUpgradeUtil {
if (sdEntities != null) {
for (ServiceDesiredStateEntity sd : sdEntities) {
- String desiredStackVersion = sd.getDesiredStackVersion();
- sd.setDesiredStackVersion(getStackIdString(desiredStackVersion,
- stackName, stackVersion));
+ sd.setDesiredStack(stackEntity);
serviceDesiredStateDAO.merge(sd);
}
}
-
-
}
/**
@@ -159,31 +133,32 @@ public class StackUpgradeUtil {
if (null == repoUrl ||
repoUrl.isEmpty() ||
- !repoUrl.startsWith("http"))
+ !repoUrl.startsWith("http")) {
return;
-
- String[] oses = new String[0];
-
+ }
+
+ String[] oses = new String[0];
+
if (null != repoUrlOs) {
oses = repoUrlOs.split(",");
}
-
+
AmbariMetaInfo ami = injector.getInstance(AmbariMetaInfo.class);
MetainfoDAO metaDao = injector.getInstance(MetainfoDAO.class);
OsFamily os_family = injector.getInstance(OsFamily.class);
-
+
String stackRepoId = stackName + "-" + stackVersion;
-
+
if (0 == oses.length) {
// do them all
for (OperatingSystemInfo osi : ami.getOperatingSystems(stackName, stackVersion)) {
ami.updateRepoBaseURL(stackName, stackVersion, osi.getOsType(),
stackRepoId, repoUrl);
}
-
+
} else {
for (String os : oses) {
-
+
String family = os_family.find(os);
if (null != family) {
String key = ami.generateRepoMetaKey(stackName, stackVersion, os,
@@ -191,7 +166,7 @@ public class StackUpgradeUtil {
String familyKey = ami.generateRepoMetaKey(stackName, stackVersion, family,
stackRepoId, AmbariMetaInfo.REPOSITORY_XML_PROPERTY_BASEURL);
-
+
// need to use (for example) redhat6 if the os is centos6
MetainfoEntity entity = metaDao.findByKey(key);
if (null == entity) {
@@ -203,7 +178,7 @@ public class StackUpgradeUtil {
entity.setMetainfoValue(repoUrl);
metaDao.merge(entity);
}
-
+
entity = metaDao.findByKey(familyKey);
if (null == entity) {
entity = new MetainfoEntity();
@@ -214,7 +189,7 @@ public class StackUpgradeUtil {
entity.setMetainfoValue(repoUrl);
metaDao.merge(entity);
}
- }
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java
index d80909b..03b995a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog150.java
@@ -64,6 +64,7 @@ import org.apache.ambari.server.orm.entities.HostRoleCommandEntity;
import org.apache.ambari.server.orm.entities.KeyValueEntity;
import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity;
import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntityPK;
+import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.state.HostComponentAdminState;
import org.apache.ambari.server.state.PropertyInfo;
import org.apache.ambari.server.state.ServiceInfo;
@@ -544,7 +545,7 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog {
if (clusterStateDAO.findByPK(clusterEntity.getClusterId()) == null) {
ClusterStateEntity clusterStateEntity = new ClusterStateEntity();
clusterStateEntity.setClusterEntity(clusterEntity);
- clusterStateEntity.setCurrentStackVersion(clusterEntity.getDesiredStackVersion());
+ clusterStateEntity.setCurrentStack(clusterEntity.getDesiredStack());
clusterStateDAO.create(clusterStateEntity);
@@ -635,7 +636,7 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog {
final ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity = new ServiceComponentDesiredStateEntity();
serviceComponentDesiredStateEntity.setComponentName("HISTORYSERVER");
- serviceComponentDesiredStateEntity.setDesiredStackVersion(clusterEntity.getDesiredStackVersion());
+ serviceComponentDesiredStateEntity.setDesiredStack(clusterEntity.getDesiredStack());
serviceComponentDesiredStateEntity.setDesiredState(jtServiceComponentDesiredState);
serviceComponentDesiredStateEntity.setClusterServiceEntity(clusterServiceEntity);
serviceComponentDesiredStateEntity.setHostComponentDesiredStateEntities(new ArrayList<HostComponentDesiredStateEntity>());
@@ -648,11 +649,11 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog {
final HostComponentStateEntity stateEntity = new HostComponentStateEntity();
stateEntity.setHostEntity(host);
stateEntity.setCurrentState(jtCurrState);
- stateEntity.setCurrentStackVersion(clusterEntity.getDesiredStackVersion());
+ stateEntity.setCurrentStack(clusterEntity.getDesiredStack());
final HostComponentDesiredStateEntity desiredStateEntity = new HostComponentDesiredStateEntity();
desiredStateEntity.setDesiredState(jtHostComponentDesiredState);
- desiredStateEntity.setDesiredStackVersion(clusterEntity.getDesiredStackVersion());
+ desiredStateEntity.setDesiredStack(clusterEntity.getDesiredStack());
persistComponentEntities(stateEntity, desiredStateEntity, serviceComponentDesiredStateEntity);
}
@@ -698,13 +699,9 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog {
List <ClusterEntity> clusterEntities = clusterDAO.findAll();
for (final ClusterEntity clusterEntity : clusterEntities) {
Long clusterId = clusterEntity.getClusterId();
- String desiredStackVersion = clusterEntity.getDesiredStackVersion();
-
- Map<String, String> clusterInfo =
- gson.<Map<String, String>>fromJson(desiredStackVersion, Map.class);
-
- String stackName = clusterInfo.get("stackName");
- String stackVersion = clusterInfo.get("stackVersion");
+ StackEntity stackEntity = clusterEntity.getDesiredStack();
+ String stackName = stackEntity.getStackName();
+ String stackVersion = stackEntity.getStackVersion();
List<ClusterServiceEntity> clusterServiceEntities = clusterServiceDAO.findAll();
for (final ClusterServiceEntity clusterServiceEntity : clusterServiceEntities) {
@@ -740,6 +737,8 @@ public class UpgradeCatalog150 extends AbstractUpgradeCatalog {
configEntity.setVersion(1L);
configEntity.setTimestamp(System.currentTimeMillis());
configEntity.setClusterEntity(clusterEntity);
+ configEntity.setStack(stackEntity);
+
LOG.debug("Creating new " + configType + " config...");
clusterDAO.createConfig(configEntity);
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
index 2259c92..d6d4567 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
@@ -87,6 +87,7 @@ import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity;
import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntityPK;
import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity;
import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntityPK;
+import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.orm.entities.ViewEntity;
import org.apache.ambari.server.orm.entities.ViewInstanceEntity;
@@ -94,6 +95,7 @@ import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.Config;
import org.apache.ambari.server.state.ConfigHelper;
+import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.State;
import org.apache.ambari.server.state.alert.Scope;
import org.apache.ambari.server.utils.StageUtils;
@@ -128,13 +130,15 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
public static final String JOBS_VIEW_INSTANCE_NAME = "JOBS_1";
public static final String SHOW_JOBS_FOR_NON_ADMIN_KEY = "showJobsForNonAdmin";
public static final String JOBS_VIEW_INSTANCE_LABEL = "Jobs";
- public static final String CLUSTER_STATE_STACK_HDP_2_1 = "{\"stackName\":\"HDP\",\"stackVersion\":\"2.1\"}";
public static final String YARN_TIMELINE_SERVICE_WEBAPP_ADDRESS_PROPERTY = "yarn.timeline-service.webapp.address";
public static final String YARN_RESOURCEMANAGER_WEBAPP_ADDRESS_PROPERTY = "yarn.resourcemanager.webapp.address";
public static final String YARN_SITE = "yarn-site";
public static final String YARN_ATS_URL_PROPERTY = "yarn.ats.url";
public static final String YARN_RESOURCEMANAGER_URL_PROPERTY = "yarn.resourcemanager.url";
+ public static final StackId CLUSTER_STATE_STACK_HDP_2_1 = new StackId("HDP",
+ "2.1");
+
//SourceVersion is only for book-keeping purpos
@Override
public String getSourceVersion() {
@@ -759,7 +763,7 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
serviceComponentDesiredStateEntity.setServiceName(serviceName);
serviceComponentDesiredStateEntity.setComponentName(serviceComponentDesiredStateEntityToDelete.getComponentName());
serviceComponentDesiredStateEntity.setClusterId(clusterEntity.getClusterId());
- serviceComponentDesiredStateEntity.setDesiredStackVersion(serviceComponentDesiredStateEntityToDelete.getDesiredStackVersion());
+ serviceComponentDesiredStateEntity.setDesiredStack(serviceComponentDesiredStateEntityToDelete.getDesiredStack());
serviceComponentDesiredStateEntity.setDesiredState(serviceComponentDesiredStateEntityToDelete.getDesiredState());
serviceComponentDesiredStateEntity.setClusterServiceEntity(clusterServiceEntity);
@@ -771,7 +775,7 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
HostComponentDesiredStateEntity hostComponentDesiredStateEntity = new HostComponentDesiredStateEntity();
hostComponentDesiredStateEntity.setClusterId(clusterEntity.getClusterId());
hostComponentDesiredStateEntity.setComponentName(hcDesiredStateEntityToBeDeleted.getComponentName());
- hostComponentDesiredStateEntity.setDesiredStackVersion(hcDesiredStateEntityToBeDeleted.getDesiredStackVersion());
+ hostComponentDesiredStateEntity.setDesiredStack(hcDesiredStateEntityToBeDeleted.getDesiredStack());
hostComponentDesiredStateEntity.setDesiredState(hcDesiredStateEntityToBeDeleted.getDesiredState());
hostComponentDesiredStateEntity.setHostEntity(hcDesiredStateEntityToBeDeleted.getHostEntity());
hostComponentDesiredStateEntity.setAdminState(hcDesiredStateEntityToBeDeleted.getAdminState());
@@ -793,7 +797,7 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
HostComponentStateEntity hostComponentStateEntity = new HostComponentStateEntity();
hostComponentStateEntity.setClusterId(clusterEntity.getClusterId());
hostComponentStateEntity.setComponentName(hcStateToBeDeleted.getComponentName());
- hostComponentStateEntity.setCurrentStackVersion(hcStateToBeDeleted.getCurrentStackVersion());
+ hostComponentStateEntity.setCurrentStack(hcStateToBeDeleted.getCurrentStack());
hostComponentStateEntity.setCurrentState(hcStateToBeDeleted.getCurrentState());
hostComponentStateEntity.setHostEntity(hcStateToBeDeleted.getHostEntity());
hostComponentStateEntity.setServiceName(serviceName);
@@ -827,6 +831,8 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
for (ConfigGroupConfigMappingEntity entity : configGroupsWithGlobalConfigs) {
String configData = entity.getClusterConfigEntity().getData();
+ StackEntity stackEntity = entity.getClusterConfigEntity().getStack();
+
Map<String, String> properties = StageUtils.getGson().fromJson(configData, type);
Cluster cluster = ambariManagementController.getClusters().getClusterById(entity.getClusterId());
HashMap<String, HashMap<String, String>> configs = new HashMap<String, HashMap<String, String>>();
@@ -866,8 +872,9 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
clusterConfigEntity.setTag(tag);
clusterConfigEntity.setTimestamp(new Date().getTime());
clusterConfigEntity.setData(StageUtils.getGson().toJson(config.getValue()));
- clusterDAO.createConfig(clusterConfigEntity);
+ clusterConfigEntity.setStack(stackEntity);
+ clusterDAO.createConfig(clusterConfigEntity);
ConfigGroupConfigMappingEntity configGroupConfigMappingEntity = new ConfigGroupConfigMappingEntity();
configGroupConfigMappingEntity.setTimestamp(System.currentTimeMillis());
@@ -1400,8 +1407,14 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
List<ClusterEntity> clusters = clusterDAO.findAll();
if (!clusters.isEmpty()) {
ClusterEntity currentCluster = clusters.get(0);
- String currentStackVersion = currentCluster.getClusterStateEntity().getCurrentStackVersion();
- if (CLUSTER_STATE_STACK_HDP_2_1.equals(currentStackVersion)) {
+ StackEntity currentStack = currentCluster.getClusterStateEntity().getCurrentStack();
+
+ boolean isStackHdp21 = CLUSTER_STATE_STACK_HDP_2_1.getStackName().equals(
+ currentStack.getStackName())
+ && CLUSTER_STATE_STACK_HDP_2_1.getStackVersion().equals(
+ currentStack.getStackVersion());
+
+ if (isStackHdp21) {
ViewRegistry.initInstance(viewRegistry);
viewRegistry.readViewArchives(VIEW_NAME_REG_EXP);
ViewEntity jobsView = viewDAO.findByCommonName(JOBS_VIEW_NAME);
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
index c3488f2..62a8541 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
@@ -1,5 +1,5 @@
--
--- Licensed to the Apache Software Foundation (ASF) under one
+-- Licensed to the stackpache 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
@@ -30,6 +30,14 @@ delimiter ;
-- Ambari is transitioning to make the host_id the FK instead of the host_name.
-- Please do not remove lines that are related to this change and are being staged.
+CREATE TABLE stack(
+ stack_id BIGINT NOT NULL,
+ stack_name VARCHAR(255) NOT NULL,
+ stack_version VARCHAR(255) NOT NULL,
+ PRIMARY KEY (stack_id),
+ CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
+);
+
CREATE TABLE clusters (
cluster_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
@@ -38,8 +46,9 @@ CREATE TABLE clusters (
provisioning_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
security_type VARCHAR(32) NOT NULL DEFAULT 'NONE',
desired_cluster_state VARCHAR(255) NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (cluster_id));
+ desired_stack_id BIGINT NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE clusterconfig (
config_id BIGINT NOT NULL,
@@ -47,10 +56,12 @@ CREATE TABLE clusterconfig (
version BIGINT NOT NULL,
type_name VARCHAR(255) NOT NULL,
cluster_id BIGINT NOT NULL,
+ stack_id BIGINT NOT NULL,
config_data LONGTEXT NOT NULL,
config_attributes LONGTEXT,
create_timestamp BIGINT NOT NULL,
- PRIMARY KEY (config_id));
+ PRIMARY KEY (config_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE serviceconfig (
service_config_id BIGINT NOT NULL,
@@ -58,10 +69,12 @@ CREATE TABLE serviceconfig (
service_name VARCHAR(255) NOT NULL,
version BIGINT NOT NULL,
create_timestamp BIGINT NOT NULL,
+ stack_id BIGINT NOT NULL,
user_name VARCHAR(255) NOT NULL DEFAULT '_db',
group_id BIGINT,
note LONGTEXT,
- PRIMARY KEY (service_config_id));
+ PRIMARY KEY (service_config_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE serviceconfighosts (
service_config_id BIGINT NOT NULL,
@@ -84,8 +97,9 @@ CREATE TABLE clusterservices (
CREATE TABLE clusterstate (
cluster_id BIGINT NOT NULL,
current_cluster_state VARCHAR(255) NOT NULL,
- current_stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (cluster_id));
+ current_stack_id BIGINT NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (current_stack_id) REFERENCES stack(stack_id));
CREATE TABLE cluster_version (
id BIGINT NOT NULL,
@@ -100,7 +114,7 @@ CREATE TABLE cluster_version (
CREATE TABLE hostcomponentdesiredstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
@@ -108,19 +122,21 @@ CREATE TABLE hostcomponentdesiredstate (
maintenance_state VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
restart_required TINYINT(1) NOT NULL DEFAULT 0,
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE hostcomponentstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
version VARCHAR(32) NOT NULL DEFAULT 'UNKNOWN',
- current_stack_version VARCHAR(255) NOT NULL,
+ current_stack_id BIGINT NOT NULL,
current_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
upgrade_state VARCHAR(32) NOT NULL DEFAULT 'NONE',
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (current_stack_id) REFERENCES stack(stack_id));
CREATE TABLE hosts (
host_id BIGINT NOT NULL,
@@ -162,20 +178,22 @@ CREATE TABLE host_version (
CREATE TABLE servicecomponentdesiredstate (
component_name VARCHAR(255) NOT NULL,
cluster_id BIGINT NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
- PRIMARY KEY (component_name, cluster_id, service_name));
+ PRIMARY KEY (component_name, cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE servicedesiredstate (
cluster_id BIGINT NOT NULL,
desired_host_role_mapping INTEGER NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
maintenance_state VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
- PRIMARY KEY (cluster_id, service_name));
+ PRIMARY KEY (cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE users (
user_id INTEGER,
@@ -387,9 +405,9 @@ CREATE TABLE requestschedulebatchrequest (
CREATE TABLE blueprint (
blueprint_name VARCHAR(255) NOT NULL,
- stack_name VARCHAR(255) NOT NULL,
- stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY(blueprint_name));
+ stack_id BIGINT NOT NULL,
+ PRIMARY KEY(blueprint_name),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE hostgroup (
blueprint_name VARCHAR(255) NOT NULL,
@@ -527,13 +545,13 @@ CREATE TABLE adminprivilege (
CREATE TABLE repo_version (
repo_version_id BIGINT NOT NULL,
- stack VARCHAR(255) NOT NULL,
+ stack_id BIGINT NOT NULL,
version VARCHAR(255) NOT NULL,
display_name VARCHAR(128) NOT NULL,
upgrade_package VARCHAR(255) NOT NULL,
repositories LONGTEXT NOT NULL,
- PRIMARY KEY(repo_version_id)
-);
+ PRIMARY KEY(repo_version_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE widget (
id BIGINT NOT NULL,
@@ -587,7 +605,7 @@ ALTER TABLE viewinstance ADD CONSTRAINT UQ_viewinstance_name_id UNIQUE (view_ins
ALTER TABLE serviceconfig ADD CONSTRAINT UQ_scv_service_version UNIQUE (cluster_id, service_name, version);
ALTER TABLE adminpermission ADD CONSTRAINT UQ_perm_name_resource_type_id UNIQUE (permission_name, resource_type_id);
ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_display_name UNIQUE (display_name);
-ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack, version);
+ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack_id, version);
-- altering tables by creating foreign keys----------
ALTER TABLE members ADD CONSTRAINT FK_members_group_id FOREIGN KEY (group_id) REFERENCES groups (group_id);
@@ -826,14 +844,6 @@ CREATE TABLE upgrade_item (
FOREIGN KEY (upgrade_group_id) REFERENCES upgrade_group(upgrade_group_id)
);
-CREATE TABLE stack(
- stack_id BIGINT NOT NULL,
- stack_name VARCHAR(255) NOT NULL,
- stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (stack_id),
- CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
-);
-
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('cluster_id_seq', 1);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('host_id_seq', 0);
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/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 0455e9e..436e438 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
@@ -21,6 +21,14 @@
-- Please do not remove lines that are related to this change and are being staged.
------create tables---------
+CREATE TABLE stack(
+ stack_id NUMBER(19) NOT NULL,
+ stack_name VARCHAR2(255) NOT NULL,
+ stack_version VARCHAR2(255) NOT NULL,
+ PRIMARY KEY (stack_id),
+ CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
+);
+
CREATE TABLE clusters (
cluster_id NUMBER(19) NOT NULL,
resource_id NUMBER(19) NOT NULL,
@@ -29,8 +37,9 @@ CREATE TABLE clusters (
provisioning_state VARCHAR2(255) DEFAULT 'INIT' NOT NULL,
security_type VARCHAR2(32) DEFAULT 'NONE' NOT NULL,
desired_cluster_state VARCHAR2(255) NULL,
- desired_stack_version VARCHAR2(255) NULL,
- PRIMARY KEY (cluster_id));
+ desired_stack_id NUMBER(19) NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE clusterconfig (
config_id NUMBER(19) NOT NULL,
@@ -38,10 +47,12 @@ CREATE TABLE clusterconfig (
version NUMBER(19) NOT NULL,
type_name VARCHAR2(255) NOT NULL,
cluster_id NUMBER(19) NOT NULL,
+ stack_id NUMBER(19) NOT NULL,
config_data CLOB NOT NULL,
config_attributes CLOB,
create_timestamp NUMBER(19) NOT NULL,
- PRIMARY KEY (config_id));
+ PRIMARY KEY (config_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE serviceconfig (
service_config_id NUMBER(19) NOT NULL,
@@ -49,10 +60,12 @@ CREATE TABLE serviceconfig (
service_name VARCHAR(255) NOT NULL,
version NUMBER(19) NOT NULL,
create_timestamp NUMBER(19) NOT NULL,
+ stack_id NUMBER(19) NOT NULL,
user_name VARCHAR(255) DEFAULT '_db' NOT NULL,
group_id NUMBER(19),
note CLOB,
- PRIMARY KEY (service_config_id));
+ PRIMARY KEY (service_config_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE serviceconfighosts (
service_config_id NUMBER(19) NOT NULL,
@@ -73,8 +86,9 @@ CREATE TABLE clusterservices (
CREATE TABLE clusterstate (
cluster_id NUMBER(19) NOT NULL,
current_cluster_state VARCHAR2(255) NULL,
- current_stack_version VARCHAR2(255) NULL,
- PRIMARY KEY (cluster_id));
+ current_stack_id NUMBER(19) NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (current_stack_id) REFERENCES stack(stack_id));
CREATE TABLE cluster_version (
id NUMBER(19) NULL,
@@ -89,7 +103,7 @@ CREATE TABLE cluster_version (
CREATE TABLE hostcomponentdesiredstate (
cluster_id NUMBER(19) NOT NULL,
component_name VARCHAR2(255) NOT NULL,
- desired_stack_version VARCHAR2(255) NULL,
+ desired_stack_id NUMBER(19) NULL,
desired_state VARCHAR2(255) NOT NULL,
host_id NUMBER(19) NOT NULL,
service_name VARCHAR2(255) NOT NULL,
@@ -97,19 +111,21 @@ CREATE TABLE hostcomponentdesiredstate (
maintenance_state VARCHAR2(32) NOT NULL,
security_state VARCHAR2(32) DEFAULT 'UNSECURED' NOT NULL,
restart_required NUMBER(1) DEFAULT 0 NOT NULL,
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE hostcomponentstate (
cluster_id NUMBER(19) NOT NULL,
component_name VARCHAR2(255) NOT NULL,
version VARCHAR2(32) DEFAULT 'UNKNOWN' NOT NULL,
- current_stack_version VARCHAR2(255) NOT NULL,
+ current_stack_id NUMBER(19) NOT NULL,
current_state VARCHAR2(255) NOT NULL,
host_id NUMBER(19) NOT NULL,
service_name VARCHAR2(255) NOT NULL,
upgrade_state VARCHAR2(32) DEFAULT 'NONE' NOT NULL,
security_state VARCHAR2(32) DEFAULT 'UNSECURED' NOT NULL,
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (current_stack_id) REFERENCES stack(stack_id));
CREATE TABLE hosts (
host_id NUMBER(19) NOT NULL,
@@ -151,20 +167,22 @@ CREATE TABLE host_version (
CREATE TABLE servicecomponentdesiredstate (
component_name VARCHAR2(255) NOT NULL,
cluster_id NUMBER(19) NOT NULL,
- desired_stack_version VARCHAR2(255) NULL,
+ desired_stack_id NUMBER(19) NOT NULL,
desired_state VARCHAR2(255) NOT NULL,
service_name VARCHAR2(255) NOT NULL,
- PRIMARY KEY (component_name, cluster_id, service_name));
+ PRIMARY KEY (component_name, cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE servicedesiredstate (
cluster_id NUMBER(19) NOT NULL,
desired_host_role_mapping NUMBER(10) NOT NULL,
- desired_stack_version VARCHAR2(255) NULL,
+ desired_stack_id NUMBER(19) NOT NULL,
desired_state VARCHAR2(255) NOT NULL,
service_name VARCHAR2(255) NOT NULL,
maintenance_state VARCHAR2(32) NOT NULL,
security_state VARCHAR2(32) DEFAULT 'UNSECURED' NOT NULL,
- PRIMARY KEY (cluster_id, service_name));
+ PRIMARY KEY (cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE users (
user_id NUMBER(10) NOT NULL,
@@ -377,9 +395,9 @@ CREATE TABLE requestschedulebatchrequest (
CREATE TABLE blueprint (
blueprint_name VARCHAR2(255) NOT NULL,
- stack_name VARCHAR2(255) NOT NULL,
- stack_version VARCHAR2(255) NOT NULL,
- PRIMARY KEY(blueprint_name));
+ stack_id NUMBER(19) NOT NULL,
+ PRIMARY KEY(blueprint_name),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE hostgroup (
blueprint_name VARCHAR2(255) NOT NULL,
@@ -515,12 +533,13 @@ CREATE TABLE adminprivilege (
CREATE TABLE repo_version (
repo_version_id NUMBER(19) NOT NULL,
- stack VARCHAR2(255) NOT NULL,
+ stack_id NUMBER(19) NOT NULL,
version VARCHAR2(255) NOT NULL,
display_name VARCHAR2(128) NOT NULL,
upgrade_package VARCHAR2(255) NOT NULL,
repositories CLOB NOT NULL,
- PRIMARY KEY(repo_version_id)
+ PRIMARY KEY(repo_version_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id)
);
CREATE TABLE widget (
@@ -575,7 +594,7 @@ ALTER TABLE viewinstance ADD CONSTRAINT UQ_viewinstance_name_id UNIQUE (view_ins
ALTER TABLE serviceconfig ADD CONSTRAINT UQ_scv_service_version UNIQUE (cluster_id, service_name, version);
ALTER TABLE adminpermission ADD CONSTRAINT UQ_perm_name_resource_type_id UNIQUE (permission_name, resource_type_id);
ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_display_name UNIQUE (display_name);
-ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack, version);
+ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack_id, version);
--------altering tables by creating foreign keys----------
ALTER TABLE members ADD CONSTRAINT FK_members_group_id FOREIGN KEY (group_id) REFERENCES groups (group_id);
@@ -816,14 +835,6 @@ CREATE TABLE upgrade_item (
FOREIGN KEY (upgrade_group_id) REFERENCES upgrade_group(upgrade_group_id)
);
-CREATE TABLE stack(
- stack_id NUMBER(19) NOT NULL,
- stack_name VARCHAR2(255) NOT NULL,
- stack_version VARCHAR2(255) NOT NULL,
- PRIMARY KEY (stack_id),
- CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
-);
-
---------inserting some data-----------
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('host_role_command_id_seq', 0);
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
index 2c381b2..2cec20a 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
@@ -21,6 +21,14 @@
-- Please do not remove lines that are related to this change and are being staged.
------create tables and grant privileges to db user---------
+CREATE TABLE stack(
+ stack_id BIGINT NOT NULL,
+ stack_name VARCHAR(255) NOT NULL,
+ stack_version VARCHAR(255) NOT NULL,
+ PRIMARY KEY (stack_id),
+ CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
+);
+
CREATE TABLE clusters (
cluster_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
@@ -29,8 +37,9 @@ CREATE TABLE clusters (
provisioning_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
security_type VARCHAR(32) NOT NULL DEFAULT 'NONE',
desired_cluster_state VARCHAR(255) NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (cluster_id));
+ desired_stack_id BIGINT NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE clusterconfig (
config_id BIGINT NOT NULL,
@@ -38,10 +47,12 @@ CREATE TABLE clusterconfig (
version BIGINT NOT NULL,
type_name VARCHAR(255) NOT NULL,
cluster_id BIGINT NOT NULL,
+ stack_id BIGINT NOT NULL,
config_data TEXT NOT NULL,
config_attributes VARCHAR(32000),
create_timestamp BIGINT NOT NULL,
- PRIMARY KEY (config_id));
+ PRIMARY KEY (config_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE clusterconfigmapping (
cluster_id BIGINT NOT NULL,
@@ -58,10 +69,12 @@ CREATE TABLE serviceconfig (
service_name VARCHAR(255) NOT NULL,
version BIGINT NOT NULL,
create_timestamp BIGINT NOT NULL,
+ stack_id BIGINT NOT NULL,
user_name VARCHAR(255) NOT NULL DEFAULT '_db',
group_id BIGINT,
note TEXT,
- PRIMARY KEY (service_config_id));
+ PRIMARY KEY (service_config_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE serviceconfighosts (
service_config_id BIGINT NOT NULL,
@@ -82,9 +95,10 @@ CREATE TABLE clusterservices (
CREATE TABLE clusterstate (
cluster_id BIGINT NOT NULL,
current_cluster_state VARCHAR(255) NOT NULL,
- current_stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (cluster_id));
-
+ current_stack_id BIGINT NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (current_stack_id) REFERENCES stack(stack_id));
+
CREATE TABLE cluster_version (
id BIGINT NOT NULL,
repo_version_id BIGINT NOT NULL,
@@ -98,7 +112,7 @@ CREATE TABLE cluster_version (
CREATE TABLE hostcomponentdesiredstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
@@ -106,19 +120,21 @@ CREATE TABLE hostcomponentdesiredstate (
maintenance_state VARCHAR(32) NOT NULL,
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
restart_required SMALLINT NOT NULL DEFAULT 0,
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE hostcomponentstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
version VARCHAR(32) NOT NULL DEFAULT 'UNKNOWN',
- current_stack_version VARCHAR(255) NOT NULL,
+ current_stack_id BIGINT NOT NULL,
current_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
upgrade_state VARCHAR(32) NOT NULL DEFAULT 'NONE',
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (current_stack_id) REFERENCES stack(stack_id));
CREATE TABLE hosts (
host_id BIGINT NOT NULL,
@@ -160,20 +176,22 @@ CREATE TABLE host_version (
CREATE TABLE servicecomponentdesiredstate (
component_name VARCHAR(255) NOT NULL,
cluster_id BIGINT NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
- PRIMARY KEY (component_name, cluster_id, service_name));
+ PRIMARY KEY (component_name, cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE servicedesiredstate (
cluster_id BIGINT NOT NULL,
desired_host_role_mapping INTEGER NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
maintenance_state VARCHAR(32) NOT NULL,
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
- PRIMARY KEY (cluster_id, service_name));
+ PRIMARY KEY (cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES stack(stack_id));
CREATE TABLE users (
user_id INTEGER,
@@ -379,9 +397,9 @@ CREATE TABLE requestschedulebatchrequest (
CREATE TABLE blueprint (
blueprint_name VARCHAR(255) NOT NULL,
- stack_name VARCHAR(255) NOT NULL,
- stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY(blueprint_name));
+ stack_id BIGINT NOT NULL,
+ PRIMARY KEY(blueprint_name),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
CREATE TABLE hostgroup (
blueprint_name VARCHAR(255) NOT NULL,
@@ -520,12 +538,13 @@ CREATE TABLE adminprivilege (
CREATE TABLE repo_version (
repo_version_id BIGINT NOT NULL,
- stack VARCHAR(255) NOT NULL,
+ stack_id BIGINT NOT NULL,
version VARCHAR(255) NOT NULL,
display_name VARCHAR(128) NOT NULL,
upgrade_package VARCHAR(255) NOT NULL,
repositories TEXT NOT NULL,
- PRIMARY KEY(repo_version_id)
+ PRIMARY KEY(repo_version_id),
+ FOREIGN KEY (stack_id) REFERENCES stack(stack_id));
);
CREATE TABLE widget (
@@ -577,7 +596,7 @@ ALTER TABLE viewinstance ADD CONSTRAINT UQ_viewinstance_name_id UNIQUE (view_ins
ALTER TABLE serviceconfig ADD CONSTRAINT UQ_scv_service_version UNIQUE (cluster_id, service_name, version);
ALTER TABLE adminpermission ADD CONSTRAINT UQ_perm_name_resource_type_id UNIQUE (permission_name, resource_type_id);
ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_display_name UNIQUE (display_name);
-ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack, version);
+ALTER TABLE repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack_id, version);
--------altering tables by creating foreign keys----------
ALTER TABLE members ADD CONSTRAINT FK_members_group_id FOREIGN KEY (group_id) REFERENCES groups (group_id);
@@ -818,14 +837,6 @@ CREATE TABLE upgrade_item (
FOREIGN KEY (upgrade_group_id) REFERENCES upgrade_group(upgrade_group_id)
);
-CREATE TABLE stack(
- stack_id BIGINT NOT NULL,
- stack_name VARCHAR(255) NOT NULL,
- stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (stack_id),
- CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
-);
-
---------inserting some data-----------
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
BEGIN;
http://git-wip-us.apache.org/repos/asf/ambari/blob/746df034/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
index 24762eb..d2edab0 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
@@ -32,6 +32,15 @@ ALTER ROLE :username SET search_path TO 'ambari';
-- Please do not remove lines that are related to this change and are being staged.
------create tables and grant privileges to db user---------
+CREATE TABLE ambari.stack(
+ stack_id BIGINT NOT NULL,
+ stack_name VARCHAR(255) NOT NULL,
+ stack_version VARCHAR(255) NOT NULL,
+ PRIMARY KEY (stack_id),
+ CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.stack TO :username;
+
CREATE TABLE ambari.clusters (
cluster_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
@@ -40,8 +49,9 @@ CREATE TABLE ambari.clusters (
provisioning_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
security_type VARCHAR(32) NOT NULL DEFAULT 'NONE',
desired_cluster_state VARCHAR(255) NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (cluster_id));
+ desired_stack_id BIGINT NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (desired_stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.clusters TO :username;
CREATE TABLE ambari.clusterconfig (
@@ -50,10 +60,12 @@ CREATE TABLE ambari.clusterconfig (
version BIGINT NOT NULL,
type_name VARCHAR(255) NOT NULL,
cluster_id BIGINT NOT NULL,
+ stack_id BIGINT NOT NULL,
config_data TEXT NOT NULL,
config_attributes VARCHAR(32000),
create_timestamp BIGINT NOT NULL,
- PRIMARY KEY (config_id));
+ PRIMARY KEY (config_id),
+ FOREIGN KEY (stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.clusterconfig TO :username;
CREATE TABLE ambari.clusterconfigmapping (
@@ -72,10 +84,12 @@ CREATE TABLE ambari.serviceconfig (
service_name VARCHAR(255) NOT NULL,
version BIGINT NOT NULL,
create_timestamp BIGINT NOT NULL,
+ stack_id BIGINT NOT NULL,
user_name VARCHAR(255) NOT NULL DEFAULT '_db',
group_id BIGINT,
note TEXT,
- PRIMARY KEY (service_config_id));
+ PRIMARY KEY (service_config_id),
+ FOREIGN KEY (stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.serviceconfig TO :username;
CREATE TABLE ambari.serviceconfighosts (
@@ -100,8 +114,9 @@ GRANT ALL PRIVILEGES ON TABLE ambari.clusterservices TO :username;
CREATE TABLE ambari.clusterstate (
cluster_id BIGINT NOT NULL,
current_cluster_state VARCHAR(255) NOT NULL,
- current_stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (cluster_id));
+ current_stack_id BIGINT NOT NULL,
+ PRIMARY KEY (cluster_id),
+ FOREIGN KEY (current_stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.clusterstate TO :username;
CREATE TABLE ambari.cluster_version (
@@ -118,7 +133,7 @@ GRANT ALL PRIVILEGES ON TABLE ambari.cluster_version TO :username;
CREATE TABLE ambari.hostcomponentdesiredstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
@@ -126,20 +141,22 @@ CREATE TABLE ambari.hostcomponentdesiredstate (
maintenance_state VARCHAR(32) NOT NULL,
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
restart_required SMALLINT NOT NULL DEFAULT 0,
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.hostcomponentdesiredstate TO :username;
CREATE TABLE ambari.hostcomponentstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
version VARCHAR(32) NOT NULL DEFAULT 'UNKNOWN',
- current_stack_version VARCHAR(255) NOT NULL,
+ current_stack_id BIGINT NOT NULL,
current_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
upgrade_state VARCHAR(32) NOT NULL DEFAULT 'NONE',
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
- PRIMARY KEY (cluster_id, component_name, host_id, service_name));
+ PRIMARY KEY (cluster_id, component_name, host_id, service_name),
+ FOREIGN KEY (current_stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.hostcomponentstate TO :username;
CREATE TABLE ambari.hosts (
@@ -185,21 +202,23 @@ GRANT ALL PRIVILEGES ON TABLE ambari.host_version TO :username;
CREATE TABLE ambari.servicecomponentdesiredstate (
component_name VARCHAR(255) NOT NULL,
cluster_id BIGINT NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
- PRIMARY KEY (component_name, cluster_id, service_name));
+ PRIMARY KEY (component_name, cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.servicecomponentdesiredstate TO :username;
CREATE TABLE ambari.servicedesiredstate (
cluster_id BIGINT NOT NULL,
desired_host_role_mapping INTEGER NOT NULL,
- desired_stack_version VARCHAR(255) NOT NULL,
+ desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
maintenance_state VARCHAR(32) NOT NULL,
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
- PRIMARY KEY (cluster_id, service_name));
+ PRIMARY KEY (cluster_id, service_name),
+ FOREIGN KEY (desired_stack_id) REFERENCES ambari.stack(stack_id));
GRANT ALL PRIVILEGES ON TABLE ambari.servicedesiredstate TO :username;
CREATE TABLE ambari.users (
@@ -426,9 +445,9 @@ GRANT ALL PRIVILEGES ON TABLE ambari.requestschedulebatchrequest TO :username;
CREATE TABLE ambari.blueprint (
blueprint_name VARCHAR(255) NOT NULL,
- stack_name VARCHAR(255) NOT NULL,
- stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY(blueprint_name));
+ stack_id BIGINT NOT NULL,
+ PRIMARY KEY(blueprint_name),
+ FOREIGN KEY (stack_id) REFERENCES ambari.stack(stack_id));
CREATE TABLE ambari.hostgroup (
blueprint_name VARCHAR(255) NOT NULL,
@@ -587,12 +606,13 @@ GRANT ALL PRIVILEGES ON TABLE ambari.adminprivilege TO :username;
CREATE TABLE ambari.repo_version (
repo_version_id BIGINT NOT NULL,
- stack VARCHAR(255) NOT NULL,
+ stack_id BIGINT NOT NULL,
version VARCHAR(255) NOT NULL,
display_name VARCHAR(128) NOT NULL,
upgrade_package VARCHAR(255) NOT NULL,
repositories TEXT NOT NULL,
- PRIMARY KEY(repo_version_id)
+ PRIMARY KEY(repo_version_id),
+ FOREIGN KEY (stack_id) REFERENCES ambari.stack(stack_id)
);
GRANT ALL PRIVILEGES ON TABLE ambari.repo_version TO :username;
@@ -649,7 +669,7 @@ ALTER TABLE ambari.viewinstance ADD CONSTRAINT UQ_viewinstance_name_id UNIQUE (v
ALTER TABLE ambari.serviceconfig ADD CONSTRAINT UQ_scv_service_version UNIQUE (cluster_id, service_name, version);
ALTER TABLE ambari.adminpermission ADD CONSTRAINT UQ_perm_name_resource_type_id UNIQUE (permission_name, resource_type_id);
ALTER TABLE ambari.repo_version ADD CONSTRAINT UQ_repo_version_display_name UNIQUE (display_name);
-ALTER TABLE ambari.repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack, version);
+ALTER TABLE ambari.repo_version ADD CONSTRAINT UQ_repo_version_stack_version UNIQUE (stack_id, version);
--------altering tables by creating foreign keys----------
ALTER TABLE ambari.members ADD CONSTRAINT FK_members_group_id FOREIGN KEY (group_id) REFERENCES ambari.groups (group_id);
@@ -906,16 +926,6 @@ GRANT ALL PRIVILEGES ON TABLE ambari.upgrade TO :username;
GRANT ALL PRIVILEGES ON TABLE ambari.upgrade_group TO :username;
GRANT ALL PRIVILEGES ON TABLE ambari.upgrade_item TO :username;
-CREATE TABLE ambari.stack(
- stack_id BIGINT NOT NULL,
- stack_name VARCHAR(255) NOT NULL,
- stack_version VARCHAR(255) NOT NULL,
- PRIMARY KEY (stack_id),
- CONSTRAINT unq_stack UNIQUE(stack_name,stack_version)
-);
-
-GRANT ALL PRIVILEGES ON TABLE ambari.stack TO :username;
-
---------inserting some data-----------
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
BEGIN;