---
################################################################################
# Copyright 2020 The Magma Authors.

# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.

# 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.
################################################################################

# log_level is set in mconfig. it can be overridden here

print_grpc_payload: False

# List of services for magmad to control
magma_services:
  # - control_proxy
  # - subscriberdb
  # - mobilityd
  # - directoryd
  - enodebd
  # - sessiond
  # - mme
  # - pipelined
  # - envoy_controller
  # - redis
  # - dnsd
  # - policydb
  # - state
  # - eventd
  # - smsd
  # - ctraced
  # - health
  # - kernsnoopd
  # - liagentd

# List of services that don't provide service303 interface
# non_service303_services:
  # - control_proxy
  # - dnsd
  # - redis
  # - td-agent-bit

# List of all possible dynamic services (enabled from gateway.mconfig)
# registered_dynamic_services:
  # - redirectd
  # - td-agent-bit
  # - monitord
  # - dpid

# A list of group of services which are linked together in systemd
# linked_services:
  # -
  #  - mme
  #  - pipelined
  #  - mobilityd
  #  - sessiond

# list of services that are required to have meta before checking in
# (meta = data gathered via MagmaService.register_get_status_callback())
# skip limit specified by config 'max_skipped_checkins'
skip_checkin_if_missing_meta_services: []

# default = 3, use 0 for "infinity"
# max_skipped_checkins: 3

# Init system to use to control services
# Supported systems include: [systemd, runit, docker]
init_system: systemd

# bootstrap_manager config
bootstrap_config:
  # location of the challenge key
  challenge_key: /var/opt/magma/certs/gw_challenge.key

# Flags indicating the magmad features to be enabled
enable_config_streamer: True
enable_upgrade_manager: True
enable_network_monitor: True
enable_sync_rpc: True
enable_kernel_version_checking: True

network_monitor_config:
  # How long to sleep between statistic collections
  sampling_period: 60

  # ping stats config
  ping_config:
    hosts:
      - 8.8.8.8
    num_packets: 1
    timeout_secs: 20

upgrader_factory:
  # Module where the UpgraderFactory implementation is located
  module: magma.magmad.upgrade.magma_upgrader
  # Name of the UpgraderFactory implementation
  class: MagmaUpgraderFactory
mconfig_modules:
  - orc8r.protos.mconfig.mconfigs_pb2
  - lte.protos.mconfig.mconfigs_pb2
  # - feg.protos.mconfig.mconfigs_pb2

metricsd:
  log_level: INFO
  collect_interval: 60 # How frequently to collect metrics samples in seconds
  sync_interval: 60 # How frequently to sync to cloud in seconds
  grpc_timeout: 30 # Timeout in seconds
  max_grpc_msg_size_mb: 4 # Max message size for gRPC channel in MBs

  # An optional function  to mutate metrics before they are sent to the cloud
  # A string in the form path.to.module.fn_name
  # @see magma.magmad.metrics_collector.example_metrics_postprocessor
  post_processing_fn: magma.magmad.metrics_collector.do_nothing_metrics_postprocessor
  # List of services for metricsd to poll
  services:
    - subscriberdb
    - mobilityd
    - mme
    - magmad
    - enodebd
    - pipelined
    - state
    - sessiond
#    - kernsnoopd

generic_command_config:
  module: magma.magmad.generic_command.shell_command_executor
  class: ShellCommandExecutor
  shell_commands:
    - name: bash
      command: "bash {}"
      allow_params: True
    - name: fab
      command: "fab {}"
      allow_params: True
    - name: echo
      command: "echo {}"
      allow_params: True
    - name: reboot_enodeb
      command: "enodebd_cli.py reboot_enodeb {}"
      allow_params: True
    - name: reboot_all_enodeb
      command: "enodebd_cli.py reboot_all_enodeb"
      allow_params: False
    - name: health
      command: "health_cli.py {}"
      allow_params: True
    - name: agw_health
      command: "agw_health_cli.py {}"
      allow_params: True
    - name: get_flows
      command: "sudo pipelined_cli.py debug display_flows"
      allow_params: False
    - name: get_subscriber_table
      command: "mobility_cli.py get_subscriber_table"
      allow_params: False
    - name: check_stateless
      command: "magmad_cli.py check_stateless"
      allow_params: False
    - name: configure_stateless
      command: "magmad_cli.py config_stateless {}"
      allow_params: True

# Services for which magmad grpc status check restart recovery is enabled
services_to_restart:
  - pipelined

# How many times can grpc status check fail before restarting the services above
restart_timeout_threshold: 15