|
@@ -18,30 +18,87 @@
|
|
|
|
|
|
package org.apache.ambari.server.upgrade;
|
|
|
|
|
|
-import com.google.common.reflect.TypeToken;
|
|
|
-import com.google.inject.Inject;
|
|
|
-import com.google.inject.Injector;
|
|
|
+import java.lang.reflect.Type;
|
|
|
+import java.sql.Connection;
|
|
|
+import java.sql.PreparedStatement;
|
|
|
+import java.sql.ResultSet;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Map.Entry;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+import javax.persistence.EntityManager;
|
|
|
+import javax.persistence.TypedQuery;
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
+import javax.persistence.criteria.Expression;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
+
|
|
|
import org.apache.ambari.server.AmbariException;
|
|
|
import org.apache.ambari.server.configuration.Configuration;
|
|
|
import org.apache.ambari.server.controller.AmbariManagementController;
|
|
|
import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo;
|
|
|
-import org.apache.ambari.server.orm.dao.*;
|
|
|
-import org.apache.ambari.server.orm.entities.*;
|
|
|
-import org.apache.ambari.server.state.*;
|
|
|
+import org.apache.ambari.server.orm.dao.ClusterDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ClusterServiceDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ConfigGroupConfigMappingDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.DaoUtils;
|
|
|
+import org.apache.ambari.server.orm.dao.HostComponentDesiredStateDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.HostComponentStateDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.KeyValueDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.PermissionDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.PrincipalDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.PrincipalTypeDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.PrivilegeDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ResourceDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ResourceTypeDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ServiceComponentDesiredStateDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ServiceDesiredStateDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.UserDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ViewDAO;
|
|
|
+import org.apache.ambari.server.orm.dao.ViewInstanceDAO;
|
|
|
+import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ClusterEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ClusterServiceEntityPK;
|
|
|
+import org.apache.ambari.server.orm.entities.ConfigGroupConfigMappingEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.HostComponentStateEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.HostRoleCommandEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.HostRoleCommandEntity_;
|
|
|
+import org.apache.ambari.server.orm.entities.KeyValueEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.PermissionEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.PrincipalEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.PrincipalTypeEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.PrivilegeEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ResourceEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ResourceTypeEntity;
|
|
|
+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.UserEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ViewEntity;
|
|
|
+import org.apache.ambari.server.orm.entities.ViewInstanceEntity;
|
|
|
+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.utils.StageUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
-import javax.persistence.EntityManager;
|
|
|
-import javax.persistence.TypedQuery;
|
|
|
-import javax.persistence.criteria.*;
|
|
|
-import java.lang.reflect.Type;
|
|
|
-import java.sql.Connection;
|
|
|
-import java.sql.PreparedStatement;
|
|
|
-import java.sql.ResultSet;
|
|
|
-import java.sql.SQLException;
|
|
|
-import java.util.*;
|
|
|
-import java.util.Map.Entry;
|
|
|
+import com.google.common.reflect.TypeToken;
|
|
|
+import com.google.inject.Inject;
|
|
|
+import com.google.inject.Injector;
|
|
|
|
|
|
/**
|
|
|
* Upgrade catalog for version 1.7.0.
|
|
@@ -610,8 +667,9 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
|
|
|
pkHCATInHcatalog.setServiceName(serviceNameToBeDeleted);
|
|
|
ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntityToDelete = serviceComponentDesiredStateDAO.findByPK(pkHCATInHcatalog);
|
|
|
|
|
|
- if (serviceComponentDesiredStateEntityToDelete == null)
|
|
|
+ if (serviceComponentDesiredStateEntityToDelete == null) {
|
|
|
continue;
|
|
|
+ }
|
|
|
|
|
|
ServiceDesiredStateEntityPK serviceDesiredStateEntityPK = new ServiceDesiredStateEntityPK();
|
|
|
serviceDesiredStateEntityPK.setClusterId(clusterEntity.getClusterId());
|
|
@@ -902,6 +960,7 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
|
|
|
columns.add(new DBColumnInfo("target_id", Long.class, null, null, false));
|
|
|
columns.add(new DBColumnInfo("history_id", Long.class, null, null, false));
|
|
|
columns.add(new DBColumnInfo("notify_state", String.class, 255, null, false));
|
|
|
+ columns.add(new DBColumnInfo("uuid", String.class, 64, null, false));
|
|
|
dbAccessor.createTable(ALERT_TABLE_NOTICE, columns, "notification_id");
|
|
|
|
|
|
dbAccessor.addFKConstraint(ALERT_TABLE_NOTICE, "fk_alert_notice_target_id",
|
|
@@ -910,6 +969,9 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
|
|
|
dbAccessor.addFKConstraint(ALERT_TABLE_NOTICE, "fk_alert_notice_hist_id",
|
|
|
"history_id", ALERT_TABLE_HISTORY, "alert_id", false);
|
|
|
|
|
|
+ dbAccessor.executeQuery("ALTER TABLE " + ALERT_TABLE_NOTICE
|
|
|
+ + " ADD CONSTRAINT uni_alert_notice_uuid UNIQUE (uuid)", false);
|
|
|
+
|
|
|
// Indexes
|
|
|
dbAccessor.createIndex("idx_alert_history_def_id", ALERT_TABLE_HISTORY,
|
|
|
"alert_definition_id");
|