# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Description=Aurora Scheduler
After=network.target
Wants=network.target

[Service]
# Environment variables control the behavior of the Mesos scheduler driver (libmesos).
Environment="GLOG_v=1"
Environment="LIBPROCESS_PORT=8083"
Environment="LIBPROCESS_IP=192.168.33.7"
Environment="MESOS_NATIVE_JAVA_LIBRARY=/usr/lib/libmesos.so"
Environment="DIST_DIR=/home/vagrant/aurora/dist"

# Identifier for rsyslog redirect (see `install_rsyslog_config` in `provision-dev-cluster.sh`).
SyslogIdentifier=aurora-scheduler

# Flags that control the behavior of the JVM.
Environment="JAVA_OPTS='-Djava.library.path=/usr/lib \
  -Xdebug \
  -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005'"
WorkingDirectory=/home/vagrant/aurora/dist/install/aurora-scheduler

# min_offer_hold_time is set to 1mins to shorten time to update attributes on offers. AURORA-1985.
ExecStart=/home/vagrant/aurora/dist/install/aurora-scheduler/bin/aurora-scheduler \
  -cluster_name=devcluster \
  -hostname=aurora.local \
  -http_port=8081 \
  -native_log_quorum_size=1 \
  -zk_endpoints=localhost:2181 \
  -mesos_master_address=zk://localhost:2181/mesos \
  -serverset_path=/aurora/scheduler \
  -native_log_zk_group_path=/aurora/replicated-log \
  -native_log_file_path=/var/db/aurora \
  -backup_dir=/var/lib/aurora/backups \
  -thermos_executor_path=${DIST_DIR}/thermos_executor.pex \
  -global_container_mounts=/home/vagrant/aurora/examples/vagrant/config:/home/vagrant/aurora/examples/vagrant/config:ro,/home/vagrant/aurora/.auroraversion:/home/vagrant/aurora/.auroraversion:ro \
  -thermos_executor_flags="--announcer-ensemble localhost:2181 --announcer-zookeeper-auth-config /home/vagrant/aurora/examples/vagrant/config/announcer-auth.json --mesos-containerizer-path=/usr/libexec/mesos/mesos-containerizer" \
  -allowed_container_types=MESOS,DOCKER \
  -http_authentication_mechanism=BASIC \
  -shiro_ini_path=etc/shiro.example.ini \
  -tier_config=/home/vagrant/aurora/src/main/resources/org/apache/aurora/scheduler/tiers.json \
  -mesos_role=aurora-role \
  -populate_discovery_info=true \
  -receive_revocable_resources=true \
  -enable_revocable_ram=true \
  -partition_aware=true \
  -allow_gpu_resource=true \
  -allow_container_volumes=true \
  -offer_filter_duration=0secs \
  -mesos_driver=V1_DRIVER \
  -unavailability_threshold=1mins \
  -min_required_instances_for_sla_check=2 \
  -min_offer_hold_time=1mins
User=root
Group=root
Restart=always
RestartSec=20
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target
