###
# ============LICENSE_START=======================================================
# ONAP CLAMP
# ================================================================================
# Copyright (C) 2018 AT&T Intellectual Property. All rights
#                             reserved.
# ================================================================================
# 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.
# ============LICENSE_END============================================
# ===================================================================
#
###

FROM  docker.elastic.co/kibana/kibana-oss:6.6.2

# Search Guard plugin
RUN kibana-plugin install https://repo1.maven.org/maven2/com/floragunn/search-guard-kibana-plugin/6.6.2-18.4/search-guard-kibana-plugin-6.6.2-18.4.zip

MAINTAINER "The Onap Team"
LABEL Description="Kibana image with saved objects loading and Search Guard support"
USER root
RUN yum install -y python-requests && yum clean all

# You can share volume on this folder to restore
# a default kibana configuration. Each subfolder will
# be considered as a saved-object folder generated by,
# the backup.py script bundled with the image.
# Structure example :
# saved-objects/
# └── default
#     ├── config
#     │   └── config-6.1.3.json
#     ├── dashboard
#     │   └── dashboard-e6a82230-c190-11e8-a550-27f2e3138fee.json
#     ├── index-pattern
#     │   └── index-pattern-3ecb1c70-c190-11e8-a550-27f2e3138fee.json
#     ├── search
#     │   └── search-abdd0440-c190-11e8-a550-27f2e3138fee.json
#     └── visualization
#         ├── visualization-cb896270-c190-11e8-a550-27f2e3138fee.json
#         └── visualization-d837b120-c190-11e8-a550-27f2e3138fee.json

RUN mkdir /saved-objects/ && chown kibana:kibana /saved-objects/

USER kibana

ADD saved-objects /saved-objects
ADD startup.sh /usr/local/bin/startup.sh
ADD restore.py /usr/local/bin/restore.py
ADD backup.py /usr/local/bin/backup.py
CMD /usr/local/bin/startup.sh
