From 98276b978c65880ec968b367ab308ff583ba7d7b Mon Sep 17 00:00:00 2001 From: quiye Date: Sun, 11 Feb 2018 22:23:13 +0900 Subject: replace "yinst" with "install" --- .../standalone/CloudConfigInstallVariables.scala | 91 ++++++++++++++++++++++ .../standalone/CloudConfigYinstVariables.scala | 91 ---------------------- .../yahoo/container/standalone/Environment.scala | 6 +- .../StandaloneContainerApplication.scala | 14 ++-- .../CloudConfigInstallVariablesTest.scala | 60 ++++++++++++++ .../standalone/CloudConfigYinstVariablesTest.scala | 60 -------------- .../container/standalone/StandaloneContainer.scala | 2 +- 7 files changed, 162 insertions(+), 162 deletions(-) create mode 100644 standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigInstallVariables.scala delete mode 100644 standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigYinstVariables.scala create mode 100644 standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigInstallVariablesTest.scala delete mode 100644 standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigYinstVariablesTest.scala (limited to 'standalone-container/src') diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigInstallVariables.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigInstallVariables.scala new file mode 100644 index 00000000000..8cfa01937c9 --- /dev/null +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigInstallVariables.scala @@ -0,0 +1,91 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.container.standalone + +import java.util.Optional + +import com.yahoo.vespa.model.container.configserver.option.CloudConfigOptions +import com.yahoo.vespa.model.container.configserver.option.CloudConfigOptions.ConfigServer + +import scala.language.implicitConversions +import scala.util.Try + +/** + * @author Tony Vaagenes + */ +class CloudConfigInstallVariables extends CloudConfigOptions { + import CloudConfigInstallVariables._ + + override val rpcPort = optionalInstallVar[Integer]("port_configserver_rpc", "services") + override val allConfigServers = installVar("addr_configserver", "services") withDefault Array[ConfigServer]() + override val multiTenant = optionalInstallVar[java.lang.Boolean]("multitenant") + + override val zookeeperBarrierTimeout = optionalInstallVar[java.lang.Long]("zookeeper_barrier_timeout") + override val sessionLifeTimeSecs = optionalInstallVar[java.lang.Long]("session_lifetime") + override val configModelPluginDirs = installVar("config_model_plugin_dirs") withDefault Array[String]() + override val zookeeperClientPort = optionalInstallVar[Integer]("zookeeper_clientPort") + override val zookeeperQuorumPort = optionalInstallVar[Integer]("zookeeper_quoromPort") + override val zookeeperElectionPort = optionalInstallVar[Integer]("zookeeper_electionPort") + override val payloadCompressionType = optionalInstallVar[java.lang.String]("payload_compression_type") + override val environment = optionalInstallVar[java.lang.String]("environment") + override val region = optionalInstallVar[java.lang.String]("region") + override val system = optionalInstallVar[java.lang.String]("system") + override val defaultFlavor = optionalInstallVar[java.lang.String]("default_flavor") + override val defaultAdminFlavor = optionalInstallVar[java.lang.String]("default_admin_flavor") + override val defaultContainerFlavor = optionalInstallVar[java.lang.String]("default_container_flavor") + override val defaultContentFlavor = optionalInstallVar[java.lang.String]("default_content_flavor") + override val useVespaVersionInRequest = optionalInstallVar[java.lang.Boolean]("use_vespa_version_in_request") + override val hostedVespa = optionalInstallVar[java.lang.Boolean]("hosted_vespa") + override val numParallelTenantLoaders = optionalInstallVar[java.lang.Integer]("num_parallel_tenant_loaders") + override val dockerRegistry = optionalInstallVar[java.lang.String]("docker_registry") + override val dockerVespaBaseImage = optionalInstallVar[java.lang.String]("docker_vespa_base_image") + override val loadBalancerAddress = optionalInstallVar[java.lang.String]("load_balancer_address") +} + +object CloudConfigInstallVariables { + private class InstallVariable(installPkg:String, name: String) { + val value = Environment.optionalInstallVariable(installPkg + "." + name) + + def withDefault[T](defaultValue: T)(implicit c: Converter[T]) : T = { + value map { implicitly[Converter[T]].convert } getOrElse defaultValue + } + } + + private def installVar(setting:String, installPkg: String = "cloudconfig_server") = new InstallVariable(installPkg, setting) + + private def optionalInstallVar[T](setting:String, installPkg: String = "cloudconfig_server")(implicit c: Converter[T]): Optional[T] = { + Environment.optionalInstallVariable(installPkg + "." + setting) map ( c.convert ) + } + + implicit val configServerConverter: Converter[Array[ConfigServer]] = new Converter[Array[ConfigServer]] { + override def convert(s: String) = { + s split "[, ]" filter { !_.isEmpty } map { toConfigServer } + } + } + + implicit val stringArrayConverter: Converter[Array[String]] = new Converter[Array[String]] { + override def convert(s: String) = { + s split "[, ]" filter { !_.isEmpty } + } + } + + private def toConfigServer(hostPort: String): ConfigServer = Try { + val (host, portStr) = splitFirst(hostPort, ':') + val port = portStr map { _.toInt } + new ConfigServer(host, port) + }.getOrElse(throw new IllegalArgumentException(s"Invalid config server '$hostPort'")) + + private def splitFirst(string: String, separator: Character): (String, Option[String]) = { + val (beginning, endWithSeparator) = string span { _ != separator } + (beginning, tailOption(endWithSeparator)) + } + + def tailOption(s: String) = { + if (s.isEmpty) None + else Some(s.tail) + } + + implicit def toJavaOptional[U <% V, V](option: Option[U]): Optional[V] = option match { + case Some(u) => Optional.of(u: V) + case None => Optional.empty() + } +} diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigYinstVariables.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigYinstVariables.scala deleted file mode 100644 index 436c1923319..00000000000 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/CloudConfigYinstVariables.scala +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.container.standalone - -import java.util.Optional - -import com.yahoo.vespa.model.container.configserver.option.CloudConfigOptions -import com.yahoo.vespa.model.container.configserver.option.CloudConfigOptions.ConfigServer - -import scala.language.implicitConversions -import scala.util.Try - -/** - * @author Tony Vaagenes - */ -class CloudConfigYinstVariables extends CloudConfigOptions { - import CloudConfigYinstVariables._ - - override val rpcPort = optionalYinstVar[Integer]("port_configserver_rpc", "services") - override val allConfigServers = yinstVar("addr_configserver", "services") withDefault Array[ConfigServer]() - override val multiTenant = optionalYinstVar[java.lang.Boolean]("multitenant") - - override val zookeeperBarrierTimeout = optionalYinstVar[java.lang.Long]("zookeeper_barrier_timeout") - override val sessionLifeTimeSecs = optionalYinstVar[java.lang.Long]("session_lifetime") - override val configModelPluginDirs = yinstVar("config_model_plugin_dirs") withDefault Array[String]() - override val zookeeperClientPort = optionalYinstVar[Integer]("zookeeper_clientPort") - override val zookeeperQuorumPort = optionalYinstVar[Integer]("zookeeper_quoromPort") - override val zookeeperElectionPort = optionalYinstVar[Integer]("zookeeper_electionPort") - override val payloadCompressionType = optionalYinstVar[java.lang.String]("payload_compression_type") - override val environment = optionalYinstVar[java.lang.String]("environment") - override val region = optionalYinstVar[java.lang.String]("region") - override val system = optionalYinstVar[java.lang.String]("system") - override val defaultFlavor = optionalYinstVar[java.lang.String]("default_flavor") - override val defaultAdminFlavor = optionalYinstVar[java.lang.String]("default_admin_flavor") - override val defaultContainerFlavor = optionalYinstVar[java.lang.String]("default_container_flavor") - override val defaultContentFlavor = optionalYinstVar[java.lang.String]("default_content_flavor") - override val useVespaVersionInRequest = optionalYinstVar[java.lang.Boolean]("use_vespa_version_in_request") - override val hostedVespa = optionalYinstVar[java.lang.Boolean]("hosted_vespa") - override val numParallelTenantLoaders = optionalYinstVar[java.lang.Integer]("num_parallel_tenant_loaders") - override val dockerRegistry = optionalYinstVar[java.lang.String]("docker_registry") - override val dockerVespaBaseImage = optionalYinstVar[java.lang.String]("docker_vespa_base_image") - override val loadBalancerAddress = optionalYinstVar[java.lang.String]("load_balancer_address") -} - -object CloudConfigYinstVariables { - private class YinstVariable(yinstPkg:String, name: String) { - val value = Environment.optionalYinstVariable(yinstPkg + "." + name) - - def withDefault[T](defaultValue: T)(implicit c: Converter[T]) : T = { - value map { implicitly[Converter[T]].convert } getOrElse defaultValue - } - } - - private def yinstVar(setting:String, yinstPkg: String = "cloudconfig_server") = new YinstVariable(yinstPkg, setting) - - private def optionalYinstVar[T](setting:String, yinstPkg: String = "cloudconfig_server")(implicit c: Converter[T]): Optional[T] = { - Environment.optionalYinstVariable(yinstPkg + "." + setting) map ( c.convert ) - } - - implicit val configServerConverter: Converter[Array[ConfigServer]] = new Converter[Array[ConfigServer]] { - override def convert(s: String) = { - s split "[, ]" filter { !_.isEmpty } map { toConfigServer } - } - } - - implicit val stringArrayConverter: Converter[Array[String]] = new Converter[Array[String]] { - override def convert(s: String) = { - s split "[, ]" filter { !_.isEmpty } - } - } - - private def toConfigServer(hostPort: String): ConfigServer = Try { - val (host, portStr) = splitFirst(hostPort, ':') - val port = portStr map { _.toInt } - new ConfigServer(host, port) - }.getOrElse(throw new IllegalArgumentException(s"Invalid config server '$hostPort'")) - - private def splitFirst(string: String, separator: Character): (String, Option[String]) = { - val (beginning, endWithSeparator) = string span { _ != separator } - (beginning, tailOption(endWithSeparator)) - } - - def tailOption(s: String) = { - if (s.isEmpty) None - else Some(s.tail) - } - - implicit def toJavaOptional[U <% V, V](option: Option[U]): Optional[V] = option match { - case Some(u) => Optional.of(u: V) - case None => Optional.empty() - } -} diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/Environment.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/Environment.scala index 4764f4698f0..2aab88d8319 100644 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/Environment.scala +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/Environment.scala @@ -6,13 +6,13 @@ package com.yahoo.container.standalone * TODO: copied from standalone-container. Move to separate lib module instead. */ object Environment { - def optionalYinstVariable(name: String) = { + def optionalInstallVariable(name: String) = { env(name.replace(".", "__")). orElse(systemProperty(name)) //for unit testing } - def yinstVariable(name: String) = { - optionalYinstVariable(name). + def installVariable(name: String) = { + optionalInstallVariable(name). getOrElse { throw new IllegalStateException("Environment variable not set: " + name) } diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala index 1f3ff652224..3ebea07bfe0 100644 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala @@ -40,7 +40,7 @@ class StandaloneContainerApplication @Inject()(injector: Injector) extends Appli ConfiguredApplication.ensureVespaLoggingInitialized() - val applicationPath: Path = injectedApplicationPath.getOrElse(yinstApplicationPath) + val applicationPath: Path = injectedApplicationPath.getOrElse(installApplicationPath) val distributedFiles = new LocalFileDb(applicationPath) @@ -73,7 +73,7 @@ class StandaloneContainerApplication @Inject()(injector: Injector) extends Appli injector.getInstance(Key.get(classOf[Path], applicationPathName)) }.toOption - def yinstApplicationPath = path(yinstVariable(applicationLocationYinstVariable)) + def installApplicationPath = path(installVariable(applicationLocationInstallVariable)) override def start() { try { @@ -97,10 +97,10 @@ class StandaloneContainerApplication @Inject()(injector: Injector) extends Appli object StandaloneContainerApplication { val packageName = "standalone_jdisc_container" - val applicationLocationYinstVariable = s"$packageName.app_location" - val deploymentProfileYinstVariable = s"$packageName.deployment_profile" + val applicationLocationInstallVariable = s"$packageName.app_location" + val deploymentProfileInstallVariable = s"$packageName.deployment_profile" - val applicationPathName = Names.named(applicationLocationYinstVariable) + val applicationPathName = Names.named(applicationLocationInstallVariable) val disableNetworkingAnnotation = "JDisc.disableNetworking" val configModelRepoName = Names.named("ConfigModelRepo") @@ -143,9 +143,9 @@ object StandaloneContainerApplication { } def newContainerModelBuilder(networkingOption: Networking): ContainerModelBuilder = { - optionalYinstVariable(deploymentProfileYinstVariable) match { + optionalInstallVariable(deploymentProfileInstallVariable) match { case None => new ContainerModelBuilder(true, networkingOption) - case Some("configserver") => new ConfigServerContainerModelBuilder(new CloudConfigYinstVariables) + case Some("configserver") => new ConfigServerContainerModelBuilder(new CloudConfigInstallVariables) case profileName => throw new RuntimeException(s"Invalid deployment profile '$profileName'") } } diff --git a/standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigInstallVariablesTest.scala b/standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigInstallVariablesTest.scala new file mode 100644 index 00000000000..efa3edb7b7e --- /dev/null +++ b/standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigInstallVariablesTest.scala @@ -0,0 +1,60 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.container.standalone + +import org.junit.Test +import org.junit.Assert.assertThat +import org.hamcrest.CoreMatchers.is +import org.hamcrest.Matchers.{arrayContaining} + +/** + * @author lulf + * @author tonytv + * @since 5. + */ +class CloudConfigInstallVariablesTest { + def convert = CloudConfigInstallVariables.configServerConverter.convert _ + + @Test + def test_configserver_parsing { + val parsed = convert("myhost.mydomain.com") + assertThat(parsed.length, is(1)) + } + + @Test + def port_can_be_configured { + val parsed = convert("myhost:123") + val port: Int = parsed(0).port.get() + assertThat(port, is(123)) + } + + @Test + def multiple_spaces_are_supported { + val parsed = convert("test1 test2") + assertThat(parsed.size, is(2)) + + val hostNames = parsed.map(_.hostName) + assertThat(hostNames, arrayContaining("test1", "test2")) + } + + @Test(expected = classOf[IllegalArgumentException]) + def missing_port_gives_exception { + convert("myhost:") + } + + @Test(expected = classOf[IllegalArgumentException]) + def non_numeric_port_gives_exception { + convert("myhost:non-numeric") + } + + @Test + def string_arrays_are_split_on_spaces { + val parsed = convert("/home/vespa/foo /home/vespa/bar ") + assertThat(parsed.size, is(2)) + } + + @Test + def string_arrays_are_split_on_comma { + val parsed = convert("/home/vespa/foo,/home/vespa/bar,") + assertThat(parsed.size, is(2)) + } +} diff --git a/standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigYinstVariablesTest.scala b/standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigYinstVariablesTest.scala deleted file mode 100644 index 585221a8795..00000000000 --- a/standalone-container/src/test/scala/com/yahoo/container/standalone/CloudConfigYinstVariablesTest.scala +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.container.standalone - -import org.junit.Test -import org.junit.Assert.assertThat -import org.hamcrest.CoreMatchers.is -import org.hamcrest.Matchers.{arrayContaining} - -/** - * @author lulf - * @author tonytv - * @since 5. - */ -class CloudConfigYinstVariablesTest { - def convert = CloudConfigYinstVariables.configServerConverter.convert _ - - @Test - def test_configserver_parsing { - val parsed = convert("myhost.mydomain.com") - assertThat(parsed.length, is(1)) - } - - @Test - def port_can_be_configured { - val parsed = convert("myhost:123") - val port: Int = parsed(0).port.get() - assertThat(port, is(123)) - } - - @Test - def multiple_spaces_are_supported { - val parsed = convert("test1 test2") - assertThat(parsed.size, is(2)) - - val hostNames = parsed.map(_.hostName) - assertThat(hostNames, arrayContaining("test1", "test2")) - } - - @Test(expected = classOf[IllegalArgumentException]) - def missing_port_gives_exception { - convert("myhost:") - } - - @Test(expected = classOf[IllegalArgumentException]) - def non_numeric_port_gives_exception { - convert("myhost:non-numeric") - } - - @Test - def string_arrays_are_split_on_spaces { - val parsed = convert("/home/vespa/foo /home/vespa/bar ") - assertThat(parsed.size, is(2)) - } - - @Test - def string_arrays_are_split_on_comma { - val parsed = convert("/home/vespa/foo,/home/vespa/bar,") - assertThat(parsed.size, is(2)) - } -} diff --git a/standalone-container/src/test/scala/com/yahoo/container/standalone/StandaloneContainer.scala b/standalone-container/src/test/scala/com/yahoo/container/standalone/StandaloneContainer.scala index b70eefe0681..33f9a2e8594 100644 --- a/standalone-container/src/test/scala/com/yahoo/container/standalone/StandaloneContainer.scala +++ b/standalone-container/src/test/scala/com/yahoo/container/standalone/StandaloneContainer.scala @@ -23,7 +23,7 @@ object StandaloneContainer { def withStandaloneContainer[T](containerNode: Node) { withTempDirectory { applicationDirectory => - System.setProperty(StandaloneContainerApplication.applicationLocationYinstVariable, applicationDirectory.toString) + System.setProperty(StandaloneContainerApplication.applicationLocationInstallVariable, applicationDirectory.toString) createServicesXml(applicationDirectory, containerNode) val driver = TestDriver.newInjectedApplicationInstance(classOf[StandaloneContainerApplication]) -- cgit v1.2.3