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",