[1/2] kylin git commit: KYLIN-2180 Add project config

2016-12-08 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/master 2814ce774 -> c31c8490b


KYLIN-2180 Add project config

Signed-off-by: Yang Li 


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

Branch: refs/heads/master
Commit: ea60803e20ac17489f513bf6af29b183829db020
Parents: 2814ce7
Author: kangkaisen 
Authored: Fri Nov 11 16:21:32 2016 +0800
Committer: Yang Li 
Committed: Thu Dec 8 21:09:11 2016 +0800

--
 .../apache/kylin/common/KylinConfigTest.java| 13 ++-
 .../org/apache/kylin/cube/model/CubeDesc.java   | 11 ++-
 .../kylin/cube/ProjectSpecificConfigTest.java   | 60 +
 .../kylin/metadata/project/ProjectInstance.java | 25 +-
 .../kylin/metadata/project/ProjectManager.java  | 13 +--
 .../localmeta/project/default.json  | 10 ++-
 .../rest/request/CreateProjectRequest.java  | 11 +++
 .../rest/request/UpdateProjectRequest.java  | 11 +++
 .../kylin/rest/service/ProjectService.java  |  9 +-
 webapp/app/js/controllers/page.js   | 56 ++--
 .../app/partials/projects/project_create.html   | 93 ++--
 11 files changed, 255 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/ea60803e/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
--
diff --git 
a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java 
b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
index d05f58b..209986f 100644
--- a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
+++ b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
@@ -30,7 +30,6 @@ import org.junit.Test;
 import com.google.common.collect.Maps;
 
 public class KylinConfigTest extends LocalFileMetadataTestCase {
-
 @Before
 public void setUp() throws Exception {
 this.createTestMetadata();
@@ -49,33 +48,33 @@ public class KylinConfigTest extends 
LocalFileMetadataTestCase {
 assertEquals("test1", override.get("test1"));
 assertEquals("test2", override.get("test2"));
 }
-
+
 @Test
 public void testBackwardCompatibility() {
 KylinConfig config = KylinConfig.getInstanceFromEnv();
 final String oldk = "kylin.test.bcc.old.key";
 final String newk = "kylin.test.bcc.new.key";
-
+
 assertNull(config.getOptional(oldk));
 assertNotNull(config.getOptional(newk));
-
+
 Map override = Maps.newHashMap();
 override.put(oldk, "1");
 KylinConfigExt ext = KylinConfigExt.createInstance(config, override);
 assertEquals(ext.getOptional(oldk), null);
 assertEquals(ext.getOptional(newk), "1");
 assertNotEquals(config.getOptional(newk), "1");
-
+
 config.setProperty(oldk, "2");
 assertEquals(config.getOptional(newk), "2");
 }
-
+
 @Test
 public void testExtShareTheBase() {
 KylinConfig config = KylinConfig.getInstanceFromEnv();
 Map override = Maps.newHashMap();
 KylinConfig configExt = KylinConfigExt.createInstance(config, 
override);
-
+
 assertTrue(config.properties == configExt.properties);
 config.setProperty("1234", "1234");
 assertEquals("1234", configExt.getOptional("1234"));

http://git-wip-us.apache.org/repos/asf/kylin/blob/ea60803e/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
--
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java 
b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index f8c316c..56a8b7e 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -529,7 +529,16 @@ public class CubeDesc extends RootPersistentEntity 
implements IEngineAware {
 
 // note CubeDesc.name == CubeInstance.name
 List ownerPrj = 
ProjectManager.getInstance(config).findProjects(RealizationType.CUBE, name);
-logger.info("CubeDesc '" + name + "' is owned by " + ownerPrj);
+
+// cube inherit the project override props
+if (ownerPrj.size() == 1) {
+Map prjOverrideProps = 
ownerPrj.get(0).getOverrideKylinProps();
+for (Entry entry : prjOverrideProps.entrySet()) {
+if (!overrideKylinProps.containsKey(entry.getKey())) {
+

[1/2] kylin git commit: KYLIN-2180 Add project config

2016-12-08 Thread liyang
Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2180 [created] c31c8490b


KYLIN-2180 Add project config

Signed-off-by: Yang Li 


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

Branch: refs/heads/KYLIN-2180
Commit: ea60803e20ac17489f513bf6af29b183829db020
Parents: 2814ce7
Author: kangkaisen 
Authored: Fri Nov 11 16:21:32 2016 +0800
Committer: Yang Li 
Committed: Thu Dec 8 21:09:11 2016 +0800

--
 .../apache/kylin/common/KylinConfigTest.java| 13 ++-
 .../org/apache/kylin/cube/model/CubeDesc.java   | 11 ++-
 .../kylin/cube/ProjectSpecificConfigTest.java   | 60 +
 .../kylin/metadata/project/ProjectInstance.java | 25 +-
 .../kylin/metadata/project/ProjectManager.java  | 13 +--
 .../localmeta/project/default.json  | 10 ++-
 .../rest/request/CreateProjectRequest.java  | 11 +++
 .../rest/request/UpdateProjectRequest.java  | 11 +++
 .../kylin/rest/service/ProjectService.java  |  9 +-
 webapp/app/js/controllers/page.js   | 56 ++--
 .../app/partials/projects/project_create.html   | 93 ++--
 11 files changed, 255 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/ea60803e/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
--
diff --git 
a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java 
b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
index d05f58b..209986f 100644
--- a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
+++ b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java
@@ -30,7 +30,6 @@ import org.junit.Test;
 import com.google.common.collect.Maps;
 
 public class KylinConfigTest extends LocalFileMetadataTestCase {
-
 @Before
 public void setUp() throws Exception {
 this.createTestMetadata();
@@ -49,33 +48,33 @@ public class KylinConfigTest extends 
LocalFileMetadataTestCase {
 assertEquals("test1", override.get("test1"));
 assertEquals("test2", override.get("test2"));
 }
-
+
 @Test
 public void testBackwardCompatibility() {
 KylinConfig config = KylinConfig.getInstanceFromEnv();
 final String oldk = "kylin.test.bcc.old.key";
 final String newk = "kylin.test.bcc.new.key";
-
+
 assertNull(config.getOptional(oldk));
 assertNotNull(config.getOptional(newk));
-
+
 Map override = Maps.newHashMap();
 override.put(oldk, "1");
 KylinConfigExt ext = KylinConfigExt.createInstance(config, override);
 assertEquals(ext.getOptional(oldk), null);
 assertEquals(ext.getOptional(newk), "1");
 assertNotEquals(config.getOptional(newk), "1");
-
+
 config.setProperty(oldk, "2");
 assertEquals(config.getOptional(newk), "2");
 }
-
+
 @Test
 public void testExtShareTheBase() {
 KylinConfig config = KylinConfig.getInstanceFromEnv();
 Map override = Maps.newHashMap();
 KylinConfig configExt = KylinConfigExt.createInstance(config, 
override);
-
+
 assertTrue(config.properties == configExt.properties);
 config.setProperty("1234", "1234");
 assertEquals("1234", configExt.getOptional("1234"));

http://git-wip-us.apache.org/repos/asf/kylin/blob/ea60803e/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
--
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java 
b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index f8c316c..56a8b7e 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -529,7 +529,16 @@ public class CubeDesc extends RootPersistentEntity 
implements IEngineAware {
 
 // note CubeDesc.name == CubeInstance.name
 List ownerPrj = 
ProjectManager.getInstance(config).findProjects(RealizationType.CUBE, name);
-logger.info("CubeDesc '" + name + "' is owned by " + ownerPrj);
+
+// cube inherit the project override props
+if (ownerPrj.size() == 1) {
+Map prjOverrideProps = 
ownerPrj.get(0).getOverrideKylinProps();
+for (Entry entry : prjOverrideProps.entrySet()) {
+if (!overrideKylinProps.containsKey(entry.getKey())) {
+