#!/bin/bash -e
#
# Copyright 2017 Red Hat, Inc. and/or its affiliates
# and other contributors as indicated by the @author tags.
#
# 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.
set -euo pipefail
source es_util_env

helpMsg() {
cat <<MSG

 Usage: $0 <get> [option]*
 Manipulate Openshift aggregated logging ACL documents.

   commands:
     get                  Retrieve a given ACL document by name

   options:
     --doc=<docname>      A document to retrieve. One of:
                          roles, rolesmapping, actiongroups, config, internalusers
     --verbose            Debug mode
     --help               This message.

MSG
}

while (($#))
do
case $1 in
    get)
      cmd=${1}
      ;;
    --doc=*)
      doc=${1#*=}
      ;;
    --help|-h)
      helpMsg
      exit 0
      ;;
    --verbose|-v)
      set -x
      ;;
    *)
      echo Ignoring unknown argument $1
      ;;
  esac
  shift
done

if [ -z ${cmd:-''} ] ; then
  helpMsg
  exit 0
fi

if [ ${cmd} == "get" ] ; then
  if [ -z ${doc:-""} ] ; then
    helpMsg
    exit
  fi
fi

index=$( get_security_conf_index )

QUERY="${index}/security/${doc}?pretty" es_util | python -c "import sys, json, base64; r = base64.b64decode(json.load(sys.stdin)['_source']['${doc}']); print json.dumps(json.loads(r), indent=2)"
