Dockerization Effort 73/31773/1
authorIkram Ikramullah <ikram@research.att.com>
Wed, 14 Feb 2018 22:43:36 +0000 (17:43 -0500)
committerIkram Ikramullah <ikram@research.att.com>
Wed, 14 Feb 2018 22:52:49 +0000 (17:52 -0500)
Added files to run components of conductor
in docker. There is a build script and a run
script. Run script has instructions on how to
run the containers.

Issue-ID: OPTFRA-123
Change-Id: Id55a25b3c54e19728ca218e7d98e20af0630a383
Signed-off-by: Ikram Ikramullah <ikram@research.att.com>
conductor/docker/api/Dockerfile [new file with mode: 0755]
conductor/docker/build-dockers.sh [new file with mode: 0755]
conductor/docker/conductor.conf [new file with mode: 0644]
conductor/docker/controller/Dockerfile [new file with mode: 0755]
conductor/docker/data/Dockerfile [new file with mode: 0755]
conductor/docker/reservation/Dockerfile [new file with mode: 0755]
conductor/docker/run-dockers.sh [new file with mode: 0755]
conductor/docker/solver/Dockerfile [new file with mode: 0755]

diff --git a/conductor/docker/api/Dockerfile b/conductor/docker/api/Dockerfile
new file mode 100755 (executable)
index 0000000..0471897
--- /dev/null
@@ -0,0 +1,10 @@
+FROM python:2.7 
+RUN apt-get update
+RUN apt-get --assume-yes install python-setuptools 
+RUN git clone https://fi241c@codecloud.web.att.com/scm/st_cloudqos/conductor.git
+WORKDIR ./conductor
+RUN pip install . 
+COPY ./conductor.conf conductor.conf
+COPY ./api_paste.ini api_paste.ini
+RUN ls -ltr /usr/local/bin/conductor-api
+CMD ["sh","-c", "python /usr/local/bin/conductor-api --port=8091 -- --config-file=conductor.conf"]
diff --git a/conductor/docker/build-dockers.sh b/conductor/docker/build-dockers.sh
new file mode 100755 (executable)
index 0000000..3d860f8
--- /dev/null
@@ -0,0 +1,11 @@
+#codecloud.web.att.com
+#vi /etc/resolve.conf
+#nameserver 135.207.142.20
+#nameserver 135.207.142.21
+#nameserver 135.207.255.13
+
+docker build -t api api/
+docker build -t controller controller/
+docker build -t data data/
+docker build -t solver solver/
+docker build -t reservation reservation/
diff --git a/conductor/docker/conductor.conf b/conductor/docker/conductor.conf
new file mode 100644 (file)
index 0000000..b668af4
--- /dev/null
@@ -0,0 +1,340 @@
+
+[DEFAULT]
+
+#
+# From conductor
+#
+
+# Configuration file for WSGI definition of API. (string value)
+#api_paste_config = api_paste.ini
+
+# Music keyspace for content (string value)
+keyspace = conductor_saisree
+
+#
+# From oslo.log
+#
+
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
+# Note: This option can be changed without restarting.
+debug = true
+
+# DEPRECATED: If set to false, the logging level will be set to WARNING instead
+# of the default INFO level. (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#verbose = true
+
+# The name of a logging configuration file. This file is appended to any
+# existing logging configuration files. For details about logging configuration
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
+# Note: This option can be changed without restarting.
+# Deprecated group/name - [DEFAULT]/log_config
+#log_config_append = /home/saisree/conductor/etc/conductor/log.conf
+
+# Defines the format string for %%(asctime)s in log records. Default:
+# %(default)s . This option is ignored if log_config_append is set. (string
+# value)
+log_date_format = %d-%m-%Y %H:%M:%S
+
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
+# Deprecated group/name - [DEFAULT]/logfile
+#log_file = application.log
+
+
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
+# Deprecated group/name - [DEFAULT]/logdir
+#log_dir = /home/saisree/Log/
+
+
+
+
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and
+# Linux platform is used. This option is ignored if log_config_append is set.
+# (boolean value)
+#watch_log_file = false
+
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append
+# is set. (boolean value)
+#use_syslog = false
+
+# Syslog facility to receive log lines. This option is ignored if
+# log_config_append is set. (string value)
+#syslog_log_facility = LOG_USER
+
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
+#use_stderr = false
+
+# Format string to use for log messages with context. (string value)
+#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
+
+# Format string to use for log messages when context is undefined. (string
+# value)
+#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
+
+# Additional data to append to log message when logging level for the message
+# is DEBUG. (string value)
+#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
+
+# Prefix each line of exception output with this format. (string value)
+#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
+
+# Defines the format string for %(user_identity)s that is used in
+# logging_context_format_string. (string value)
+#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
+
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
+#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
+
+# Enables or disables publication of error events. (boolean value)
+#publish_errors = false
+
+# The format for an instance that is passed with the log message. (string
+# value)
+#instance_format = "[instance: %(uuid)s] "
+
+# The format for an instance UUID that is passed with the log message. (string
+# value)
+#instance_uuid_format = "[instance: %(uuid)s] "
+
+# Interval, number of seconds, of log rate limiting. (integer value)
+#rate_limit_interval = 0
+
+# Maximum number of logged messages per rate_limit_interval. (integer value)
+#rate_limit_burst = 0
+
+# Log level name used by rate limiting: CRITICAL, ERROR, INFO, WARNING, DEBUG
+# or empty string. Logs with level greater or equal to rate_limit_except_level
+# are not filtered. An empty string means that all levels are filtered. (string
+# value)
+#rate_limit_except_level = CRITICAL
+
+# Enables or disables fatal status of deprecations. (boolean value)
+#fatal_deprecations = false
+
+
+[aai]
+
+#
+# From conductor
+#
+
+# Interval with which to refresh the local cache, in minutes. (integer value)
+cache_refresh_interval = 1
+complex_cache_refresh_interval = 60
+
+# Data Store table prefix. (string value)
+#table_prefix = aai
+
+# Base URL for A&AI, up to and including the version. (string value)
+# server_url = https://aai-conexus-e2e.test.att.com:8443/aai/
+# server_url = https://aai-int1.test.att.com:8443/aai/
+# server_url = https://aai-ext1.test.att.com:8443/aai/
+server_url = https://aai-ext1.test.att.com:8443/aai/
+
+
+# The version of A&AI (string value)
+server_url_version = v11
+
+# SSL/TLS certificate file in pem format. This certificate must be registered
+# with the A&AI endpoint. (string value)
+#certificate_file = /home/saisree/certs/imacculate.client.research.att.com.cer
+certificate_file = /home/saisree/larry_certs/lt_hp1174418.client.research.att.com.cer
+
+# Private Certificate Key file in pem format. (string value)
+# certificate_key_file = /home/saisree/certs/imacculate.client.research.att.com.key
+certificate_key_file = /home/saisree/larry_certs/lt_hp1174418.client.research.att.com.key
+
+# Certificate Authority Bundle file in pem format. Must contain the appropriate
+# trust chain for theCertificate file. (string value)
+# certificate_authority_bundle_file = ~/certs/ca-bundle.pem
+# certificate_authority_bundle_file = /home/saisree/cert/ca-bundle.pem
+certificate_authority_bundle_file = /home/saisree/larry_certs/ca_bundle.pem
+
+[api]
+
+#
+# From conductor
+#
+
+# Toggle Pecan Debug Middleware. (boolean value)
+#pecan_debug = false
+
+# Default maximum number of items returned by API request. (integer value)
+# Minimum value: 1
+#default_api_return_limit = 100
+
+
+[controller]
+
+#
+# From conductor
+#
+
+# Timeout for planning requests. Default value is 10. (integer value)
+# Minimum value: 1
+#timeout = 10
+
+# Maximum number of result sets to return. Default value is 1. (integer value)
+# Minimum value: 1
+#limit = 1
+
+# Number of workers for controller service. Default value is 1. (integer value)
+# Minimum value: 1
+#workers = 1
+
+
+[inventory_provider]
+
+#
+# From conductor
+#
+
+# Extensions list to use (list value)
+# extensions = aai
+
+
+[messaging_server]
+
+#
+# From conductor
+#
+
+# Music keyspace for messages (string value)
+keyspace = conductor_rpc_saisree
+
+# Wait interval while checking for a message response. Default value is 1
+# second. (integer value)
+# Minimum value: 1
+#check_interval = 1
+
+# Overall message response timeout. Default value is 10 seconds. (integer
+# value)
+# Minimum value: 1
+timeout = 3600
+
+# Number of workers for messaging service. Default value is 1. (integer value)
+# Minimum value: 1
+#workers = 1
+
+# Time between checking for new messages. Default value is 1. (integer value)
+# Minimum value: 1
+#polling_interval = 1
+
+# Log debug messages. Default value is False. (boolean value)
+#debug = false
+
+
+[music_api]
+
+#
+# From conductor
+#
+
+# Base URL for Music REST API without a trailing slash. (string value)
+server_url = http://135.197.226.84:8080/MUSIC/rest
+
+# DEPRECATED: List of hostnames (round-robin access) (list value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: Use server_url instead
+# hostnames = 135.197.226.85
+# 135.197.226.83, 135.197.226.85
+
+# DEPRECATED: Port (integer value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: Use server_url instead
+#port = <None>
+
+# DEPRECATED: Path (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+# Reason: Use server_url instead
+#path = <None>
+
+# Lock timeout (integer value)
+#lock_timeout = 10
+
+# Replication factor (integer value)
+#replication_factor = 1
+
+# debug = false
+
+[reservation]
+
+#
+# From conductor
+#
+
+# Number of workers for reservation service. Default value is 1. (integer
+# value)
+# Minimum value: 1
+#workers = 1
+
+# Number of times reservation/release should be attempted. (integer value)
+#reserve_retries = 3
+
+# Set to True when reservation will run in active-active mode. When set to
+# False, reservation will restart any orphaned reserving requests at startup.
+# (boolean value)
+#concurrent = false
+
+[sdnc]
+
+#
+# From conductor
+#
+
+# Interval with which to refresh the local cache, in minutes. (integer value)
+#cache_refresh_interval = 1440
+
+# Data Store table prefix. (string value)
+#table_prefix = sdnc
+
+# Base URL for SDN-C. (string value)
+# server_url = https://sdncodl.mtanj.02.aic.cip.att.com:8443/restconf/
+server_url = https://sdncodl-conexus-e2e.ecomp.cci.att.com:8543/restconf/
+
+# Basic Authentication Username (string value)
+username = admin
+
+# Basic Authentication Password (string value)
+password = sdnc.15
+# password = admin
+
+
+[service_controller]
+
+#
+# From conductor
+#
+
+# Extensions list to use (list value)
+extensions = sdnc
+
+[solver]
+
+#
+# From conductor
+#
+
+# Number of workers for solver service. Default value is 1. (integer value)
+# Minimum value: 1
+#workers = 1
+
+# Set to True when solver will run in active-active mode. When set to False,
+# solver will restart any orphaned solving requests at startup. (boolean value)
+#concurrent = false
diff --git a/conductor/docker/controller/Dockerfile b/conductor/docker/controller/Dockerfile
new file mode 100755 (executable)
index 0000000..dc2efee
--- /dev/null
@@ -0,0 +1,11 @@
+FROM python:2.7 
+RUN apt-get update
+RUN apt-get --assume-yes install python-setuptools 
+RUN virtualenv ../venv
+RUN git clone https://fi241c@codecloud.web.att.com/scm/st_cloudqos/conductor.git
+WORKDIR ./conductor
+RUN pip install . 
+RUN pwd
+
+RUN echo "Starting conductor-controller"
+CMD ["python","/usr/local/bin/conductor-controller", "--config-file=/usr/local/bin/conductor.conf"]
diff --git a/conductor/docker/data/Dockerfile b/conductor/docker/data/Dockerfile
new file mode 100755 (executable)
index 0000000..7cc988d
--- /dev/null
@@ -0,0 +1,11 @@
+FROM python:2.7 
+RUN apt-get update
+RUN apt-get --assume-yes install python-setuptools 
+RUN virtualenv ../venv
+RUN git clone https://fi241c@codecloud.web.att.com/scm/st_cloudqos/conductor.git
+WORKDIR ./conductor
+RUN pip install . 
+RUN pwd
+
+RUN echo "Starting conductor-data"
+CMD ["python","/usr/local/bin/conductor-data", "--config-file=/usr/local/bin/conductor.conf"]
diff --git a/conductor/docker/reservation/Dockerfile b/conductor/docker/reservation/Dockerfile
new file mode 100755 (executable)
index 0000000..cc738f3
--- /dev/null
@@ -0,0 +1,11 @@
+FROM python:2.7 
+RUN apt-get update
+RUN apt-get --assume-yes install python-setuptools 
+RUN virtualenv ../venv
+RUN git clone https://fi241c@codecloud.web.att.com/scm/st_cloudqos/conductor.git
+WORKDIR ./conductor
+RUN pip install . 
+RUN pwd
+
+RUN echo "Starting conductor-reservation"
+CMD ["python","/usr/local/bin/conductor-reservation", "--config-file=/usr/local/bin/conductor.conf"]
diff --git a/conductor/docker/run-dockers.sh b/conductor/docker/run-dockers.sh
new file mode 100755 (executable)
index 0000000..555fe04
--- /dev/null
@@ -0,0 +1,7 @@
+### example run - provide the conductor configuration file as input to the run script
+#./run-dockers.sh <path-to>/conductor.conf
+docker run -v $1:/usr/local/bin/conductor.conf api & 
+docker run -v $1:/usr/local/bin/conductor.conf controller &
+docker run -v $1:/usr/local/bin/conductor.conf data &
+docker run -v $1:/usr/local/bin/conductor.conf solver &
+docker run -v $1:/usr/local/bin/conductor.conf reservation &
diff --git a/conductor/docker/solver/Dockerfile b/conductor/docker/solver/Dockerfile
new file mode 100755 (executable)
index 0000000..c482a7d
--- /dev/null
@@ -0,0 +1,17 @@
+FROM python:2.7 
+RUN apt-get update
+RUN apt-get --assume-yes install python-setuptools 
+RUN virtualenv ../venv
+RUN git clone https://fi241c@codecloud.web.att.com/scm/st_cloudqos/conductor.git
+WORKDIR ./conductor
+RUN pip install . 
+RUN pwd
+
+
+RUN echo "Starting conductor-solver"
+CMD ["python","/usr/local/bin/conductor-solver", "--config-file=/usr/local/bin/conductor.conf"]
+
+
+
+
+