[Ngms-svn] SVN-Commit: [76] [NMNetWalker] change the structure of the class

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 12月 24日 (木) 14:32:02 JST


Revision: 76
          http://sourceforge.jp/projects/ngms/svn/view?view=rev&revision=76
Author:   takayah
Date:     2009-12-24 14:32:02 +0900 (Thu, 24 Dec 2009)

Log Message:
-----------
[NMNetWalker] change the structure of the class

Modified Paths:
--------------
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfFacade.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfMain.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfType.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/BasicNodeInfo.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConf.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfResult.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/LLDPNetWalkerParameter.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConf.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerFacade.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerMain.scala

Added Paths:
-----------
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfParameter.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfParameter.scala
    trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConfParameter.scala

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfFacade.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfFacade.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfFacade.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -12,10 +12,16 @@
 private[nmnetwalker] object AutoConfFacade {
     import info.ngms.nmtree.NMTree.TDescriptionElement
 
-    def getConfig(autoConfType: AutoConfType.Value, element: TDescriptionElement): AutoConfResult = {
-        val autoConf = AutoConfFactory.create(autoConfType, element);
-        autoConf.parse
-        autoConf.create
+    def getResult(autoConfType: AutoConfType, params: Map[String, String]): AutoConfResult = {
+        autoConfType match {
+            case NagiosAutoConfType =>
+                val param = NagiosAutoConfParameter.fromMap(params)
+                NagiosAutoConf.createResult(param)
+            case CactiAutoConfType =>
+                val param = CactiAutoConfParameter.fromMap(params)
+                CactiAutoConf.createResult(param)
+            case _ => throw new IllegalArgumentException("invalid AutoConfType")
+        }
     }
 }
 

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfMain.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfMain.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfMain.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -25,12 +25,11 @@
         val fs = new NMFileSystemTree("/tmp", path)
         NMTree.mount(path, fs)
 
-        val desc = NMTree.createDescription(path)
-        desc.set(NMDescription.make("nagiosdir", "/usr/local/nagios"))
-        desc.set(NMDescription.make("addr", "192.168.1.1"))
-        desc.set(NMDescription.make("hostname", "myname"))
+        val params = Map("dir" -> "/usr/local/nagios",
+                         "address" -> "192.168.1.1",
+                         "hostname" -> "myname")
 
-        val autoConfResult = AutoConfFacade.getConfig(AutoConfType.NAGIOS, desc)
+        val autoConfResult = AutoConfFacade.getResult(NagiosAutoConfType, params)
         autoConfResult.commit
     }
 }

Added: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfParameter.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfParameter.scala	                        (rev 0)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfParameter.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -0,0 +1,20 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmnetwalker
+
+/**
+ * 情報を設定するのに必要なパラメータークラス
+ *
+ * @version $Id$
+ * @author
+ */
+private[nmnetwalker] trait AutoConfParameter {
+    import java.net.InetAddress
+
+    val dir: String
+    val address: InetAddress
+    val hostname: String
+}
+


Property changes on: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfParameter.scala
___________________________________________________________________
Added: svn:keywords
   + Date Id

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfType.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfType.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/AutoConfType.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -9,8 +9,7 @@
  * @version $Id$
  * @author
  */
-object AutoConfType extends Enumeration {
-    val NAGIOS = Value("Nagios")
-    val CACTI = Value("Cacti")
-}
+abstract class AutoConfType
+case object NagiosAutoConfType extends AutoConfType
+case object CactiAutoConfType extends AutoConfType
 

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/BasicNodeInfo.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/BasicNodeInfo.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/BasicNodeInfo.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -12,8 +12,7 @@
  * @version $Id$
  * @author
  */
-class BasicNodeInfo(val a: InetAddress) {
-    val address: InetAddress = a
+class BasicNodeInfo(val address: InetAddress) {
     val physical: Option[InterfaceAddress] = null
 }
 

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConf.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConf.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConf.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -12,42 +12,9 @@
  * @version $Id$
  * @author
  */
-private[nmnetwalker] class CactiAutoConf(val el: TDescriptionElement) extends AutoConf(el) {
-    // param key
-    val KEY_CACTI_DIR: String = "cactidir"
-    val KEY_ADDR: String = "addr"
-    val KEY_HOSTNAME: String = "hostname"
-
-    // param value
-    private var cactidir: String = null
-    private var addr: String = null
-    private var hostname: String = null
-
-    private var initialized: Boolean = false
-
-    override def parse(): Unit = {
-        element.findVal(KEY_CACTI_DIR) match {
-            case Some(s) => this.cactidir = s
-            case None => throw new IllegalArgumentException("cactidir is null")
-        } 
-
-        element.findVal(KEY_ADDR) match {
-            case Some(s) => this.addr = s
-            case None => throw new IllegalArgumentException("addr is null")
-        } 
-
-        element.findVal(KEY_HOSTNAME) match {
-            case Some(s) => this.hostname = s
-            case None => throw new IllegalArgumentException("hostname is null")
-        } 
+private[nmnetwalker] object CactiAutoConf {
+    def createResult(param: CactiAutoConfParameter): AutoConfResult = {
+       new CactiAutoConfResult(param.dir, param.address, param.hostname)
     }
-
-    override def create(): AutoConfResult = {
-       if (!initialized) {
-            parse
-       }
-
-       new CactiAutoConfResult(cactidir, addr, hostname)
-    }
 }
 

Added: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfParameter.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfParameter.scala	                        (rev 0)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfParameter.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -0,0 +1,47 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmnetwalker
+
+import java.net.InetAddress
+
+/**
+ * Cacti の設定に必要なパラメーターを生成するオブジェクト
+ *
+ * @version $Id$
+ * @author
+ */
+private[nmnetwalker] object CactiAutoConfParameter {
+    // param key
+    val DIR: String = "dir"
+    val ADDRESS: String = "address"
+    val HOSTNAME: String = "hostname"
+
+    def fromMap(params: Map[String, String]): CactiAutoConfParameter = {
+        val dirStr = params(DIR)
+        require((dirStr != null) && (dirStr.length() >= 1), "dir is null")
+        val dir = dirStr
+
+        val addressStr = params(ADDRESS)
+        require((addressStr != null) && (addressStr.length() >= 1), "address is null")
+        val address = InetAddress.getByName(addressStr)
+
+        val hostnameStr = params(HOSTNAME)
+        require((hostnameStr != null) && (hostnameStr.length() >= 1), "hostname is null")
+        val hostname = hostnameStr
+
+        new CactiAutoConfParameter(dir, address, hostname)
+    }
+}
+
+/**
+ * Cacti の設定に必要なパラメーターを生成するオブジェクト
+ *
+ * @version $Id$
+ * @author
+ */
+private[nmnetwalker] class CactiAutoConfParameter(val dir: String,
+                                                  val address: InetAddress,
+                                                  val hostname: String) extends AutoConfParameter
+


Property changes on: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfParameter.scala
___________________________________________________________________
Added: svn:keywords
   + Date Id

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfResult.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfResult.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/CactiAutoConfResult.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -4,6 +4,8 @@
  */
 package info.ngms.nmnetwalker
 
+import java.net.InetAddress
+
 /**
  * Cacti の設定を反映させるクラス
  *
@@ -11,7 +13,7 @@
  * @author
  */
 private[nmnetwalker] class CactiAutoConfResult(cactidir: String,
-                                               addr: String,
+                                               address: InetAddress,
                                                hostname: String) extends AutoConfResult {
     import info.ngms.nmtree.NMTree.TDescriptionElement
 
@@ -37,7 +39,7 @@
     // host-template: Generic SNMP-enabled Host
     private def addDevice() = {
         val cmd =
-            "php %s/cli/add_device.php --description=%s --ip=%s ".format(cactidir, hostname, addr) +
+            "php %s/cli/add_device.php --description=%s --ip=%s ".format(cactidir, hostname, address.getHostAddress()) +
             "--quiet --template=1 --avail=snmp --version=2 --community=public"
         val proc = new ExecCmd(cmd)
         proc.exec
@@ -47,7 +49,7 @@
         val cmd = "php %s/cli/add_graphs.php --list-hosts".format(cactidir)
         val proc = new ExecCmd(cmd)
         val result = proc.exec
-        val lines = result.split("\\n").filter(_.contains(addr)).toList
+        val lines = result.split("\\n").filter(_.contains(address.getHostAddress())).toList
         if (lines.isEmpty) {
             ""
         } else {

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/LLDPNetWalkerParameter.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/LLDPNetWalkerParameter.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/LLDPNetWalkerParameter.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -27,11 +27,7 @@
  * @version $Id$
  * @author
  */
-private[nmnetwalker] class LLDPNetWalkerParameter(val a: InetAddress,
-                                                  val t: Long,
-                                                  val r: Int) extends NetWalkerParameter {
-    val address: InetAddress = a
-    val timeout: Long = t
-    val retry: Int = r
-}
+private[nmnetwalker] class LLDPNetWalkerParameter(val address: InetAddress,
+                                                  val timeout: Long,
+                                                  val retry: Int) extends NetWalkerParameter
 

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConf.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConf.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConf.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -12,43 +12,8 @@
  * @version $Id$
  * @author
  */
-private[nmnetwalker] class NagiosAutoConf(val el: TDescriptionElement) extends AutoConf(el) {
-
-
-    // param key
-    val KEY_NAGIOS_DIR: String = "nagiosdir"
-    val KEY_ADDR: String = "addr"
-    val KEY_HOSTNAME: String = "hostname"
-
-    // param value
-    private var nagiosdir: String = null
-    private var addr: String = null
-    private var hostname: String = null
-
-    private var initialized: Boolean = false
-
-    override def parse(): Unit = {
-        element.findVal(KEY_NAGIOS_DIR) match {
-            case Some(s) => this.nagiosdir = s
-            case None => throw new IllegalArgumentException("nagiosdir is null")
-        }
-
-        element.findVal(KEY_ADDR) match {
-            case Some(s) => this.addr = s
-            case None => throw new IllegalArgumentException("addr is null")
-        }
-
-        element.findVal(KEY_HOSTNAME) match {
-            case Some(s) => this.hostname = s
-            case None => throw new IllegalArgumentException("hostname is null")
-        }
-    }
-
-    override def create(): AutoConfResult = {
-        if (!initialized) {
-            parse
-        }
-
+private[nmnetwalker] object NagiosAutoConf {
+    def createResult(param: NagiosAutoConfParameter): AutoConfResult = {
         // FIXME
         // 将来的にテンプレートは NMTree から読み出すようにする。
         val fmt = """define host {
@@ -63,9 +28,9 @@
         host_name       %s
 }         
 """     
-        val conf = fmt.format(fmt, hostname, hostname, addr, hostname)
+        val conf = fmt.format(fmt, param.hostname, param.hostname, param.address.getHostAddress(), param.hostname)
 
-        new NagiosAutoConfResult(nagiosdir, hostname, conf)
+        new NagiosAutoConfResult(param.dir, param.hostname, conf)
     }
 }
 

Added: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConfParameter.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConfParameter.scala	                        (rev 0)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConfParameter.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -0,0 +1,47 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmnetwalker
+
+import java.net.InetAddress
+
+/**
+ * Nagios の設定に必要なパラメーターを生成するオブジェクト
+ *
+ * @version $Id$
+ * @author
+ */
+private[nmnetwalker] object NagiosAutoConfParameter {
+    // param key
+    val DIR: String = "dir"
+    val ADDRESS: String = "address"
+    val HOSTNAME: String = "hostname"
+
+    def fromMap(params: Map[String, String]): NagiosAutoConfParameter = {
+        val dirStr = params(DIR)
+        require((dirStr != null) && (dirStr.length() >= 1), "dir is null")
+        val dir = dirStr
+
+        val addressStr = params(ADDRESS)
+        require((addressStr != null) && (addressStr.length() >= 1), "address is null")
+        val address = InetAddress.getByName(addressStr)
+
+        val hostnameStr = params(HOSTNAME)
+        require((hostnameStr != null) && (hostnameStr.length() >= 1), "hostname is null")
+        val hostname = hostnameStr
+
+        new NagiosAutoConfParameter(dir, address, hostname)
+    }
+}
+
+/**
+ * Nagios の設定に必要なパラメーターを生成するオブジェクト
+ *
+ * @version $Id$
+ * @author
+ */
+private[nmnetwalker] class NagiosAutoConfParameter(val dir: String,
+                                                   val address: InetAddress,
+                                                   val hostname: String) extends AutoConfParameter
+


Property changes on: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NagiosAutoConfParameter.scala
___________________________________________________________________
Added: svn:keywords
   + Date Id

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerFacade.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerFacade.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerFacade.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -18,7 +18,7 @@
             case LLDPNetWalkerType =>
                 val param = LLDPNetWalkerParameter.fromMap(params)
                 LLDPNetWalker.walk(param)
-            case _ => throw new IllegalArgumentException("invalid netWalkerType")
+            case _ => throw new IllegalArgumentException("invalid NetWalkerType")
         }
     }
 }

Modified: trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerMain.scala
===================================================================
--- trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerMain.scala	2009-12-22 10:16:01 UTC (rev 75)
+++ trunk/source/NMNetWalker/src/info/ngms/nmnetwalker/NetWalkerMain.scala	2009-12-24 05:32:02 UTC (rev 76)
@@ -28,7 +28,8 @@
         oids += "1.3.6.1.2.1.2.1,"        // ifNumber
         oids += "1.3.6.1.2.1.2.2.1.6.0"   // ifPhysAddress.0
 
-        val params = Map("address" -> "192.168.0.1",
+        //val params = Map("address" -> "192.168.0.1",
+        val params = Map("address" -> "133.137.167.193",
                          "oids" -> oids,
                          "version" -> "1", // org.snmp4j.mp.SnmpConstants.version2c
                          "retry" -> "5",




Ngms-svn メーリングリストの案内
Back to archive index