You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2014/11/04 21:09:51 UTC

git commit: AMBARI-8122. Correct Issues Pointed Out In Git 32187893edabcfc29f1cfb4961146566c2215433 (dlysnichenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk e302ffed4 -> ca12fe436


AMBARI-8122. Correct Issues Pointed Out In Git 32187893edabcfc29f1cfb4961146566c2215433 (dlysnichenko)


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

Branch: refs/heads/trunk
Commit: ca12fe4360fa1c8c1efb98c27cca92e194e550b8
Parents: e302ffe
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Tue Nov 4 22:08:33 2014 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Tue Nov 4 22:08:33 2014 +0200

----------------------------------------------------------------------
 .../ambari/server/state/stack/OsFamily.java     |  10 +-
 ambari-server/src/main/resources/os_family.json |  29 -----
 .../ambari/server/state/stack/OSFamilyTest.java | 108 +++++++++++++++++++
 ambari-server/src/test/resources/os_family.json |  12 +--
 4 files changed, 115 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/ca12fe43/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
index b024cfe..22b6005 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
@@ -34,6 +34,7 @@ import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 
 import org.apache.ambari.server.configuration.Configuration;
+import org.apache.commons.io.IOUtils;
 
 /**
  * Class that encapsulates OS family logic
@@ -66,22 +67,23 @@ public class OsFamily {
     }
 
     private void init(String SharedResourcesPath){
+      FileInputStream inputStream = null;
       try {
         File f = new File(SharedResourcesPath, FILE_NAME);
         if (!f.exists()) throw new Exception();
-        FileInputStream inputStream = new FileInputStream(f);
+        inputStream = new FileInputStream(f);
 
         Type type = new TypeToken<Map<String, Map<String, Set<String>>>>() {}.getType();
         Gson gson = new Gson();
         osMap = gson.fromJson(new InputStreamReader(inputStream), type);
-        inputStream.close();
       } catch (Exception e) {
         LOG.error(String.format(LOAD_CONFIG_MSG, new File(SharedResourcesPath, FILE_NAME).toString()));
-        throw new RuntimeException(LOAD_CONFIG_MSG);
+        throw new RuntimeException(e);
+      } finally {
+        IOUtils.closeQuietly(inputStream);
       }
     }
 
-
     /**
      * Separate os name from os major version
      * @param os the os

http://git-wip-us.apache.org/repos/asf/ambari/blob/ca12fe43/ambari-server/src/main/resources/os_family.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/os_family.json b/ambari-server/src/main/resources/os_family.json
deleted file mode 100644
index 6638ea5..0000000
--- a/ambari-server/src/main/resources/os_family.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "redhat7": [
-    "redhat7",
-    "centos7",
-    "oraclelinux7",
-    "rhel7"
-  ],
-  "redhat6": [
-    "redhat6",
-    "centos6",
-    "oraclelinux6",
-    "rhel6"
-  ],
-  "redhat5": [
-    "redhat5",
-    "centos5",
-    "oraclelinux5",
-    "rhel5"
-  ],
-  "suse11": [
-    "suse11",
-    "sles11",
-    "opensuse11"
-  ],
-  "ubuntu12": [
-    "debian12",
-    "ubuntu12"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/ca12fe43/ambari-server/src/test/java/org/apache/ambari/server/state/stack/OSFamilyTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/stack/OSFamilyTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/stack/OSFamilyTest.java
new file mode 100644
index 0000000..e4aa8f7
--- /dev/null
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/stack/OSFamilyTest.java
@@ -0,0 +1,108 @@
+/**
+ * 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.state.stack;
+
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+import junit.framework.Assert;
+import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.junit.Before;
+import org.junit.Test;
+import java.lang.reflect.Method;
+import java.util.*;
+
+
+public class OSFamilyTest {
+   OsFamily os_family = null;
+   private Injector injector;
+
+  @Before
+  public void setup() throws Exception {
+    injector  = Guice.createInjector(new InMemoryDefaultTestModule());
+
+    os_family = injector.getInstance(OsFamily.class);
+  }
+
+  @Test
+  public void testOSListing() throws Exception{
+   Set<String> actual_oslist =  os_family.os_list();
+   Set<String> expected_oslist = new HashSet<String>(Arrays.asList(
+      "redhat6", "oraclelinux5", "suse11", "fedora6", "opensuse11",
+      "centos6", "fedora5","centos5", "ubuntu12", "redhat5", "sles11",
+      "oraclelinux6", "debian12", "sled11"
+   ));
+
+   Assert.assertNotNull(actual_oslist);
+   Assert.assertEquals(expected_oslist, actual_oslist);
+  }
+
+  @Test
+  public void testParsingOS() throws Exception{
+    // test data
+    Map<String,String> expected_map = new HashMap<String,String>();
+    expected_map.put("distro", "ubuntu");
+    expected_map.put("versions", "12");
+
+    String test_value = "ubuntu12";
+
+    // trying to call private method
+    Class[] parse_os_args = {
+       String.class
+    };
+    Method parse_os = os_family.getClass().getDeclaredMethod("parse_os", parse_os_args);
+
+    // setting private method to be available
+    parse_os.setAccessible(true);
+    Object test_map = parse_os.invoke(os_family, test_value);
+
+    // setting them back to private for the instance
+    parse_os.setAccessible(false);
+
+
+    // checking result
+    Assert.assertNotNull(test_map);
+    Assert.assertEquals(expected_map.getClass().getName(), test_map.getClass().getName());
+    Assert.assertEquals(expected_map, test_map);
+  }
+
+  @Test
+  public void testFindTypes() throws Exception{
+    Set<String> expected_set = new HashSet<String>(Arrays.asList(
+       "ubuntu12",
+       "debian12"
+    ));
+
+    Set<String> actual_set = os_family.findTypes("ubuntu12");
+    Assert.assertNotNull(actual_set);
+    Assert.assertEquals(expected_set, actual_set);
+  }
+
+  @Test
+  public void testFind() throws Exception{
+    String expected_result = "ubuntu12";
+    String actual_result = os_family.find("debian12");
+
+    Assert.assertNotNull(actual_result);
+    Assert.assertEquals(expected_result, actual_result);
+  }
+
+
+}
+

http://git-wip-us.apache.org/repos/asf/ambari/blob/ca12fe43/ambari-server/src/test/resources/os_family.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/os_family.json b/ambari-server/src/test/resources/os_family.json
index 7314fd0..3cf0fed 100644
--- a/ambari-server/src/test/resources/os_family.json
+++ b/ambari-server/src/test/resources/os_family.json
@@ -4,17 +4,7 @@
       "redhat",
       "fedora",
       "centos",
-      "oraclelinux",
-      "ascendos",
-      "amazon",
-      "xenserver",
-      "oel",
-      "ovs",
-      "cloudlinux",
-      "slc",
-      "scientific",
-      "psbm",
-      "centos linux"
+      "oraclelinux"
     ],
     "versions": [
       5,