[Unit]
Description=Elasticsearch Service
Documentation=http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index.html
After=docker.service
Requires=docker.service
Requires=elasticsearch-data@%i.service
Requires=elasticsearch-discovery@%i.service

[Service]
TimeoutSec=0
Restart=always
RestartSec=1m
EnvironmentFile=/etc/environment
SuccessExitStatus=255

ExecStartPre=-/usr/bin/docker kill %p-%i
ExecStartPre=-/usr/bin/docker rm %p-%i
ExecStartPre=/usr/bin/docker pull digitalwonderland/elasticsearch

ExecStart=/bin/bash -c '\
  curl -f ${COREOS_PRIVATE_IPV4}:4001/v2/keys/services/elasticsearch; \
  if [ "$?" = "0" ]; then \
      UNICAST_HOSTS=$(etcdctl ls --recursive /services/elasticsearch \
                      | sed "s/\/services\/elasticsearch\///g" \
                      | sed "s/$/:9300/" \
                      | paste -s -d","); \
  else \
      UNICAST_HOSTS=""; \
  fi; \
  /usr/bin/docker run \
    --rm \
    --name %p-%i \
    --publish 9200:9200 \
    --publish 9300:9300 \
    --volumes-from elasticsearch-data-%i \
    -e ELASTICSEARCH_CLUSTER_NAME=logstash \
    digitalwonderland/elasticsearch \
    -Des.node.name=%p-%i \
    -Des.network.publish_host=${COREOS_PRIVATE_IPV4} \
    -Des.discovery.zen.ping.multicast.enabled=false \
    -Des.discovery.zen.ping.unicast.hosts=$UNICAST_HOSTS'

ExecStop=/usr/bin/docker stop %p-%i
ExecStopPost=-/usr/bin/docker rm %p-%i

[X-Fleet]
Conflicts=%p@*.service