import org.elasticsearch.gradle.MavenFilteringHack

apply plugin: 'elasticsearch.rest-test'

dependencies {
  testCompile project(path: ':x-plugins:elasticsearch:x-pack', configuration: 'runtime')
}

ext.pluginsCount = 1 // we install xpack explicitly
project.rootProject.subprojects.findAll { it.path.startsWith(':plugins:') }.each { subproj ->
  // need to get a non-decorated project object, so must re-lookup the project by path
  integTest.cluster.plugin(subproj.name, project(subproj.path))
  pluginsCount += 1
}

integTest {
  cluster {
    plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')

    setupCommand 'setupDummyUser',
                 'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
    waitCondition = { node, ant ->
      File tmpFile = new File(node.cwd, 'wait.success')
      ant.get(src: "http://${node.httpUri()}",
              dest: tmpFile.toString(),
              username: 'test_user',
              password: 'changeme',
              ignoreerrors: true,
              retries: 10)
      return tmpFile.exists()
    }
  }
} 

ext.expansions = [
  'expected.plugins.count': pluginsCount
]

processTestResources {
  inputs.properties(expansions)
  MavenFilteringHack.filter(it, expansions)
}