summaryrefslogtreecommitdiffstats
path: root/app/install
diff options
context:
space:
mode:
authorYaron Yogev <yaronyogev@gmail.com>2017-07-27 09:02:54 +0300
committerYaron Yogev <yaronyogev@gmail.com>2017-07-27 14:56:25 +0300
commit7e83d0876ddb84a45e130eeba28bc40ef53c074b (patch)
tree47d76239ae7658d87c66abd142df92709427e7dd /app/install
parent378ecbd8947589b9cbb39013a0c2e2aa201e03bd (diff)
Calipso initial release for OPNFV
Change-Id: I7210c244b0c10fa80bfa8c77cb86c9d6ddf8bc88 Signed-off-by: Yaron Yogev <yaronyogev@gmail.com>
Diffstat (limited to 'app/install')
-rw-r--r--app/install/calipso-installer.py380
-rw-r--r--app/install/calipso_mongo_access.conf.example4
-rw-r--r--app/install/db/attributes_for_hover_on_data.json89
-rw-r--r--app/install/db/clique_constraints.json20
-rw-r--r--app/install/db/clique_types.json56
-rw-r--r--app/install/db/cliques.json3
-rw-r--r--app/install/db/constants.json668
-rw-r--r--app/install/db/environments_config.json78
-rw-r--r--app/install/db/inventory.json3
-rw-r--r--app/install/db/link_types.json184
-rw-r--r--app/install/db/links.json3
-rw-r--r--app/install/db/messages.json44
-rw-r--r--app/install/db/meteor_accounts_loginServiceConfiguration.json3
-rw-r--r--app/install/db/monitoring_config.json3
-rw-r--r--app/install/db/monitoring_config_templates.json378
-rw-r--r--app/install/db/network_agent_types.json52
-rw-r--r--app/install/db/roles.json26
-rw-r--r--app/install/db/scans.json24
-rw-r--r--app/install/db/scheduled_scans.json43
-rw-r--r--app/install/db/statistics.json23
-rw-r--r--app/install/db/supported_environments.json230
-rw-r--r--app/install/db/users.json51
-rw-r--r--app/install/ldap.conf.example10
23 files changed, 2375 insertions, 0 deletions
diff --git a/app/install/calipso-installer.py b/app/install/calipso-installer.py
new file mode 100644
index 0000000..bccddae
--- /dev/null
+++ b/app/install/calipso-installer.py
@@ -0,0 +1,380 @@
+###############################################################################
+# Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) #
+# and others #
+# #
+# All rights reserved. This program and the accompanying materials #
+# are made available under the terms of the Apache License, Version 2.0 #
+# which accompanies this distribution, and is available at #
+# http://www.apache.org/licenses/LICENSE-2.0 #
+###############################################################################
+from pymongo import MongoClient, ReturnDocument
+from pymongo.errors import ConnectionFailure
+from urllib.parse import quote_plus
+import docker
+import argparse
+import dockerpycreds
+# note : not used, useful for docker api security if used
+import time
+import json
+
+
+class MongoComm:
+ # deals with communication from host/installer server to mongoDB, includes methods for future use
+ try:
+
+ def __init__(self, host, user, password, port):
+ self.uri = "mongodb://%s:%s@%s:%s/%s" % (
+ quote_plus(user), quote_plus(password), host, port, "calipso")
+ self.client = MongoClient(self.uri)
+
+ def find(self, coll, key, val):
+ collection = self.client.calipso[coll]
+ doc = collection.find({key: val})
+ return doc
+
+ def get(self, coll, doc_name):
+ collection = self.client.calipso[coll]
+ doc = collection.find_one({"name": doc_name})
+ return doc
+
+ def insert(self, coll, doc):
+ collection = self.client.calipso[coll]
+ doc_id = collection.insert(doc)
+ return doc_id
+
+ def remove_doc(self, coll, doc):
+ collection = self.client.calipso[coll]
+ collection.remove(doc)
+
+ def remove_coll(self, coll):
+ collection = self.client.calipso[coll]
+ collection.remove()
+
+ def find_update(self, coll, key, val, data):
+ collection = self.client.calipso[coll]
+ collection.find_one_and_update(
+ {key: val},
+ {"$set": data},
+ upsert=True
+ )
+
+ def update(self, coll, doc, upsert=False):
+ collection = self.client.calipso[coll]
+ doc_id = collection.update_one({'_id': doc['_id']},{'$set': doc}, upsert=upsert)
+ return doc_id
+
+ except ConnectionFailure:
+ print("MongoDB Server not available")
+
+
+DockerClient = docker.from_env() # using local host docker environment parameters
+
+# use the below example for installer against a remote docker host:
+# DockerClient = docker.DockerClient(base_url='tcp://korlev-calipso-testing.cisco.com:2375')
+
+
+def copy_file(filename):
+ c = MongoComm(args.hostname, args.dbuser, args.dbpassword, args.dbport)
+ txt = open('db/'+filename+'.json')
+ data = json.load(txt)
+ c.remove_coll(filename)
+ doc_id = c.insert(filename, data)
+ print("Copied", filename, "mongo doc_ids:\n\n", doc_id, "\n\n")
+ time.sleep(1)
+
+
+C_MONGO_CONFIG = "/local_dir/calipso_mongo_access.conf"
+H_MONGO_CONFIG = "/home/calipso/calipso_mongo_access.conf"
+PYTHONPATH = "/home/scan/calipso_prod/app"
+C_LDAP_CONFIG = "/local_dir/ldap.conf"
+H_LDAP_CONFIG = "/home/calipso/ldap.conf"
+
+# functions to check and start calipso containers:
+def start_mongo(dbport):
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-mongo"}):
+ print("\nstarting container calipso-mongo, please wait...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:mongo")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:mongo missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:mongo")
+ print("Downloaded", image, "\n\n")
+ mongocontainer = DockerClient.containers.run('korenlev/calipso:mongo', detach=True, name="calipso-mongo",
+ ports={'27017/tcp': dbport, '28017/tcp': 28017},
+ restart_policy={"Name": "always"})
+ # wait a bit till mongoDB is up before starting to copy the json files from 'db' folder:
+ time.sleep(5)
+ enable_copy = input("create initial calipso DB ? (copy json files from 'db' folder to mongoDB -"
+ " 'c' to copy, 'q' to skip):")
+ if enable_copy == "c":
+ print("\nstarting to copy json files to mongoDB...\n\n")
+ print("-----------------------------------------\n\n")
+ time.sleep(1)
+ copy_file("attributes_for_hover_on_data")
+ copy_file("clique_constraints")
+ copy_file("clique_types")
+ copy_file("cliques")
+ copy_file("constants")
+ copy_file("environments_config")
+ copy_file("inventory")
+ copy_file("link_types")
+ copy_file("links")
+ copy_file("messages")
+ copy_file("meteor_accounts_loginServiceConfiguration")
+ copy_file("users")
+ copy_file("monitoring_config")
+ copy_file("monitoring_config_templates")
+ copy_file("network_agent_types")
+ copy_file("roles")
+ copy_file("scans")
+ copy_file("scheduled_scans")
+ copy_file("statistics")
+ copy_file("supported_environments")
+
+ # note : 'messages', 'roles', 'users' and some of the 'constants' are filled by calipso-ui at runtime
+ # some other docs are filled later by scanning, logging and monitoring
+ else:
+ return
+ else:
+ print("container named calipso-mongo already exists, please deal with it using docker...\n")
+ return
+
+
+def start_listen():
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-listen"}):
+ print("\nstarting container calipso-listen...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:listen")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:listen missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:listen")
+ print("Downloaded", image, "\n\n")
+ listencontainer = DockerClient.containers.run('korenlev/calipso:listen', detach=True, name="calipso-listen",
+ ports={'22/tcp': 50022},
+ restart_policy={"Name": "always"},
+ environment=["PYTHONPATH=" + PYTHONPATH,
+ "MONGO_CONFIG=" + C_MONGO_CONFIG],
+ volumes={'/home/calipso': {'bind': '/local_dir', 'mode': 'rw'}})
+ else:
+ print("container named calipso-listen already exists, please deal with it using docker...\n")
+ return
+
+
+def start_ldap():
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-ldap"}):
+ print("\nstarting container calipso-ldap...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:ldap")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:ldap missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:ldap")
+ print("Downloaded", image, "\n\n")
+ ldapcontainer = DockerClient.containers.run('korenlev/calipso:ldap', detach=True, name="calipso-ldap",
+ ports={'389/tcp': 389, '389/udp': 389},
+ restart_policy={"Name": "always"},
+ volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}})
+ else:
+ print("container named calipso-ldap already exists, please deal with it using docker...\n")
+ return
+
+
+def start_api():
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-api"}):
+ print("\nstarting container calipso-api...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:api")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:api missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:api")
+ print("Downloaded", image, "\n\n")
+ apicontainer = DockerClient.containers.run('korenlev/calipso:api', detach=True, name="calipso-api",
+ ports={'8000/tcp': 8000, '22/tcp': 40022},
+ restart_policy={"Name": "always"},
+ environment=["PYTHONPATH=" + PYTHONPATH,
+ "MONGO_CONFIG=" + C_MONGO_CONFIG,
+ "LDAP_CONFIG=" + C_LDAP_CONFIG,
+ "LOG_LEVEL=DEBUG"],
+ volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}})
+ else:
+ print("container named calipso-api already exists, please deal with it using docker...\n")
+ return
+
+
+def start_scan():
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-scan"}):
+ print("\nstarting container calipso-scan...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:scan")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:scan missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:scan")
+ print("Downloaded", image, "\n\n")
+ scancontainer = DockerClient.containers.run('korenlev/calipso:scan', detach=True, name="calipso-scan",
+ ports={'22/tcp': 30022},
+ restart_policy={"Name": "always"},
+ environment=["PYTHONPATH=" + PYTHONPATH,
+ "MONGO_CONFIG=" + C_MONGO_CONFIG],
+ volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}})
+ else:
+ print("container named calipso-scan already exists, please deal with it using docker...\n")
+ return
+
+
+def start_sensu():
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-sensu"}):
+ print("\nstarting container calipso-sensu...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:sensu")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:sensu missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:sensu")
+ print("Downloaded", image, "\n\n")
+ sensucontainer = DockerClient.containers.run('korenlev/calipso:sensu', detach=True, name="calipso-sensu",
+ ports={'22/tcp': 20022, '3000/tcp': 3000, '4567/tcp': 4567,
+ '5671/tcp': 5671, '15672/tcp': 15672},
+ restart_policy={"Name": "always"},
+ environment=["PYTHONPATH=" + PYTHONPATH],
+ volumes={'/home/calipso/': {'bind': '/local_dir/', 'mode': 'rw'}})
+ else:
+ print("container named calipso-sensu already exists, please deal with it using docker...\n")
+ return
+
+
+def start_ui(host, dbuser, dbpassword, webport, dbport):
+ if not DockerClient.containers.list(all=True, filters={"name": "calipso-ui"}):
+ print("\nstarting container calipso-ui...\n")
+ image = DockerClient.images.list(all=True, name="korenlev/calipso:ui")
+ if image:
+ print(image, "exists...not downloading...")
+ else:
+ print("image korenlev/calipso:ui missing, hold on while downloading first...\n")
+ image = DockerClient.images.pull("korenlev/calipso:ui")
+ print("Downloaded", image, "\n\n")
+ uicontainer = DockerClient.containers.run('korenlev/calipso:ui', detach=True, name="calipso-ui",
+ ports={'3000/tcp': webport},
+ restart_policy={"Name": "always"},
+ environment=["ROOT_URL=http://{}:{}".format(host, str(webport)),
+ "MONGO_URL=mongodb://{}:{}@{}:{}/calipso".format
+ (dbuser, dbpassword, host, str(dbport)),
+ "LDAP_CONFIG=" + C_LDAP_CONFIG])
+ else:
+ print("container named calipso-ui already exists, please deal with it using docker...\n")
+ return
+
+
+# function to check and stop calipso containers:
+
+def container_stop(container_name):
+ if DockerClient.containers.list(all=True, filters={"name": container_name}):
+ print("fetching container name", container_name, "...\n")
+ c = DockerClient.containers.get(container_name)
+ if c.status != "running":
+ print(container_name, "is not running...")
+ time.sleep(1)
+ print("removing container name", c.name, "...\n")
+ c.remove()
+ else:
+ print("killing container name", c.name, "...\n")
+ c.kill()
+ time.sleep(1)
+ print("removing container name", c.name, "...\n")
+ c.remove()
+ else:
+ print("no container named", container_name, "found...")
+
+
+# parser for getting optional command arguments:
+parser = argparse.ArgumentParser()
+parser.add_argument("--hostname", help="Hostname or IP address of the server (default=172.17.0.1)",type=str,
+ default="172.17.0.1", required=False)
+parser.add_argument("--webport", help="Port for the Calipso WebUI (default=80)",type=int,
+ default="80", required=False)
+parser.add_argument("--dbport", help="Port for the Calipso MongoDB (default=27017)",type=int,
+ default="27017", required=False)
+parser.add_argument("--dbuser", help="User for the Calipso MongoDB (default=calipso)",type=str,
+ default="calipso", required=False)
+parser.add_argument("--dbpassword", help="Password for the Calipso MongoDB (default=calipso_default)",type=str,
+ default="calipso_default", required=False)
+args = parser.parse_args()
+
+container = ""
+action = ""
+container_names = ["all", "calipso-mongo", "calipso-scan", "calipso-listen", "calipso-ldap", "calipso-api",
+ "calipso-sensu", "calipso-ui"]
+container_actions = ["stop", "start"]
+while action not in container_actions:
+ action = input("Action? (stop, start, or 'q' to quit):\n")
+ if action == "q":
+ exit()
+while container not in container_names:
+ container = input("Container? (all, calipso-mongo, calipso-scan, calipso-listen, calipso-ldap, calipso-api, "
+ "calipso-sensu, calipso-ui or 'q' to quit):\n")
+ if container == "q":
+ exit()
+
+# starting the containers per arguments:
+if action == "start":
+ # building /home/calipso/calipso_mongo_access.conf and /home/calipso/ldap.conf files, per the arguments:
+ calipso_mongo_access_text = "server " + args.hostname + "\nuser " + args.dbuser + "\npassword " + \
+ args.dbpassword + "\nauth_db calipso"
+ ldap_text = "user admin" + "\npassword password" + "\nurl ldap://" + args.hostname + ":389" + \
+ "\nuser_id_attribute CN" + "\nuser_pass_attribute userpassword" + \
+ "\nuser_objectclass inetOrgPerson" + \
+ "\nuser_tree_dn OU=Users,DC=openstack,DC=org" + "\nquery_scope one" + \
+ "\ntls_req_cert allow" + \
+ "\ngroup_member_attribute member"
+ print("creating default", H_MONGO_CONFIG, "file...\n")
+ calipso_mongo_access_file = open(H_MONGO_CONFIG, "w+")
+ time.sleep(1)
+ calipso_mongo_access_file.write(calipso_mongo_access_text)
+ calipso_mongo_access_file.close()
+ print("creating default", H_LDAP_CONFIG, "file...\n")
+ ldap_file = open(H_LDAP_CONFIG, "w+")
+ time.sleep(1)
+ ldap_file.write(ldap_text)
+ ldap_file.close()
+
+ if container == "calipso-mongo" or container == "all":
+ start_mongo(args.dbport)
+ time.sleep(1)
+ if container == "calipso-listen" or container == "all":
+ start_listen()
+ time.sleep(1)
+ if container == "calipso-ldap" or container == "all":
+ start_ldap()
+ time.sleep(1)
+ if container == "calipso-api" or container == "all":
+ start_api()
+ time.sleep(1)
+ if container == "calipso-scan" or container == "all":
+ start_scan()
+ time.sleep(1)
+ if container == "calipso-sensu" or container == "all":
+ start_sensu()
+ time.sleep(1)
+ if container == "calipso-ui" or container == "all":
+ start_ui(args.hostname, args.dbuser, args.dbpassword, args.webport, args.dbport)
+ time.sleep(1)
+
+# stopping the containers per arguments:
+if action == "stop":
+ if container == "calipso-mongo" or container == "all":
+ container_stop("calipso-mongo")
+ if container == "calipso-listen" or container == "all":
+ container_stop("calipso-listen")
+ if container == "calipso-ldap" or container == "all":
+ container_stop("calipso-ldap")
+ if container == "calipso-api" or container == "all":
+ container_stop("calipso-api")
+ if container == "calipso-scan" or container == "all":
+ container_stop("calipso-scan")
+ if container == "calipso-sensu" or container == "all":
+ container_stop("calipso-sensu")
+ if container == "calipso-ui" or container == "all":
+ container_stop("calipso-ui")
diff --git a/app/install/calipso_mongo_access.conf.example b/app/install/calipso_mongo_access.conf.example
new file mode 100644
index 0000000..1b3377d
--- /dev/null
+++ b/app/install/calipso_mongo_access.conf.example
@@ -0,0 +1,4 @@
+server korlev-calipso-dev.cisco.com
+user calipso
+password calipso_default
+auth_db calipso
diff --git a/app/install/db/attributes_for_hover_on_data.json b/app/install/db/attributes_for_hover_on_data.json
new file mode 100644
index 0000000..6fdc5a3
--- /dev/null
+++ b/app/install/db/attributes_for_hover_on_data.json
@@ -0,0 +1,89 @@
+[
+{
+ "attributes" : [
+ "object_name",
+ "model",
+ "mac_address",
+ "type",
+ "koren"
+ ],
+ "type" : "vnic"
+},
+{
+ "attributes" : [
+ "object_name",
+ "connector_type",
+ "type",
+ "interfaces"
+ ],
+ "type" : "vconnector"
+},
+{
+ "attributes" : [
+ "object_name",
+ "host",
+ "service_type",
+ "type"
+ ],
+ "type" : "vservice"
+},
+{
+ "attributes" : [
+ "object_name",
+ "host",
+ "agent_type",
+ "binary",
+ "type"
+ ],
+ "type" : "vedge"
+},
+{
+ "attributes" : [
+ "object_name",
+ "host",
+ "mac_address",
+ "Speed",
+ "Link detected",
+ "type"
+ ],
+ "type" : "pnic"
+},
+{
+ "attributes" : [
+ "object_name",
+ "provider:segmentation_id",
+ "provider:network_type",
+ "type"
+ ],
+ "type" : "network"
+},
+{
+ "attributes" : [
+ "object_name",
+ "host_type",
+ "parent_id",
+ "type"
+ ],
+ "type" : "host"
+},
+{
+ "attributes" : [
+ "object_name",
+ "host",
+ "project",
+ "type",
+ "name_path"
+ ],
+ "type" : "instance"
+},
+{
+ "attributes" : [
+ "object_name",
+ "overlay_type",
+ "ip_address",
+ "type",
+ "ports"
+ ],
+ "type" : "otep"
+}
+]
diff --git a/app/install/db/clique_constraints.json b/app/install/db/clique_constraints.json
new file mode 100644
index 0000000..e317c3d
--- /dev/null
+++ b/app/install/db/clique_constraints.json
@@ -0,0 +1,20 @@
+[
+{
+ "focal_point_type" : "instance",
+ "constraints" : [
+ "network"
+ ]
+},
+{
+ "focal_point_type" : "vservice",
+ "constraints" : [
+ "network"
+ ]
+},
+{
+ "constraints" : [
+ "network"
+ ],
+ "focal_point_type" : "network"
+}
+]
diff --git a/app/install/db/clique_types.json b/app/install/db/clique_types.json
new file mode 100644
index 0000000..a2ef3c2
--- /dev/null
+++ b/app/install/db/clique_types.json
@@ -0,0 +1,56 @@
+[
+{
+ "environment" : "ANY",
+ "focal_point_type" : "instance",
+ "link_types" : [
+ "instance-vnic",
+ "vnic-vconnector",
+ "vconnector-vedge",
+ "vedge-otep",
+ "otep-vconnector",
+ "vconnector-pnic",
+ "pnic-network"
+ ],
+ "name" : "instance"
+},
+{
+ "environment" : "ANY",
+ "focal_point_type" : "pnic",
+ "link_types" : [
+ "pnic-host",
+ "host-network",
+ "network-switch_pnic",
+ "switch_pnic-switch"
+ ],
+ "name" : "pnic_clique"
+},
+{
+ "environment" : "ANY",
+ "focal_point_type" : "vservice",
+ "link_types" : [
+ "vservice-vnic",
+ "vnic-vedge",
+ "vedge-otep",
+ "otep-vconnector",
+ "vconnector-pnic",
+ "pnic-network"
+ ],
+ "name" : "vservice"
+},
+{
+ "environment" : "ANY",
+ "focal_point_type" : "network",
+ "link_types" : [
+ "network-pnic",
+ "pnic-vconnector",
+ "vconnector-otep",
+ "otep-vedge",
+ "vedge-vconnector",
+ "vedge-vnic",
+ "vconnector-vnic",
+ "vnic-instance",
+ "vnic-vservice"
+ ],
+ "name" : "network"
+}
+]
diff --git a/app/install/db/cliques.json b/app/install/db/cliques.json
new file mode 100644
index 0000000..be99137
--- /dev/null
+++ b/app/install/db/cliques.json
@@ -0,0 +1,3 @@
+{
+ "_id" : "xyz"
+}
diff --git a/app/install/db/constants.json b/app/install/db/constants.json
new file mode 100644
index 0000000..0521d69
--- /dev/null
+++ b/app/install/db/constants.json
@@ -0,0 +1,668 @@
+[
+{
+ "data" : [
+ {
+ "label" : "network",
+ "value" : "network"
+ }
+ ],
+ "name" : "constraints"
+},
+{
+ "data" : [
+ {
+ "label" : "Development",
+ "value" : "development"
+ },
+ {
+ "label" : "Testing",
+ "value" : "testing"
+ },
+ {
+ "label" : "Staging",
+ "value" : "staging"
+ },
+ {
+ "label" : "Production",
+ "value" : "production"
+ }
+ ],
+ "name" : "env_types"
+},
+{
+ "data" : [
+ {
+ "label" : "CRITICAL",
+ "value" : "critical"
+ },
+ {
+ "label" : "ERROR",
+ "value" : "error"
+ },
+ {
+ "label" : "WARNING",
+ "value" : "warning"
+ },
+ {
+ "label" : "INFO",
+ "value" : "info"
+ },
+ {
+ "label" : "DEBUG",
+ "value" : "debug"
+ },
+ {
+ "label" : "NOTSET",
+ "value" : "notset"
+ }
+ ],
+ "name" : "log_levels"
+},
+{
+ "data" : [
+ {
+ "label" : "OVS",
+ "value" : "OVS"
+ },
+ {
+ "label" : "VPP",
+ "value" : "VPP"
+ },
+ {
+ "label" : "LXB",
+ "value" : "LXB"
+ },
+ {
+ "label" : "Arista",
+ "value" : "Arista"
+ },
+ {
+ "label" : "Nexus",
+ "value" : "Nexus"
+ }
+ ],
+ "name" : "mechanism_drivers"
+},
+{
+ "data" : [
+ {
+ "label" : "local",
+ "value" : "local"
+ },
+ {
+ "label" : "vlan",
+ "value" : "vlan"
+ },
+ {
+ "label" : "vxlan",
+ "value" : "vxlan"
+ },
+ {
+ "label" : "gre",
+ "value" : "gre"
+ },
+ {
+ "label" : "flat",
+ "value" : "flat"
+ }
+ ],
+ "name" : "type_drivers"
+},
+{
+ "data" : [
+ {
+ "label" : "Sensu",
+ "value" : "Sensu"
+ }
+ ],
+ "name" : "environment_monitoring_types"
+},
+{
+ "data" : [
+ {
+ "label" : "up",
+ "value" : "up"
+ },
+ {
+ "label" : "down",
+ "value" : "down"
+ }
+ ],
+ "name" : "link_states"
+},
+{
+ "name" : "environment_provision_types",
+ "data" : [
+ {
+ "label" : "None",
+ "value" : "None"
+ },
+ {
+ "label" : "Deploy",
+ "value" : "Deploy"
+ },
+ {
+ "label" : "Files",
+ "value" : "Files"
+ },
+ {
+ "label" : "DB",
+ "value" : "DB"
+ }
+ ]
+},
+{
+ "name" : "environment_operational_status",
+ "data" : [
+ {
+ "value" : "stopped",
+ "label" : "stopped"
+ },
+ {
+ "value" : "running",
+ "label" : "running"
+ },
+ {
+ "value" : "error",
+ "label" : "error"
+ }
+ ]
+},
+{
+ "name" : "link_types",
+ "data" : [
+ {
+ "label" : "instance-vnic",
+ "value" : "instance-vnic"
+ },
+ {
+ "label" : "otep-vconnector",
+ "value" : "otep-vconnector"
+ },
+ {
+ "label" : "otep-pnic",
+ "value" : "otep-pnic"
+ },
+ {
+ "label" : "pnic-network",
+ "value" : "pnic-network"
+ },
+ {
+ "label" : "vedge-otep",
+ "value" : "vedge-otep"
+ },
+ {
+ "label" : "vnic-vconnector",
+ "value" : "vnic-vconnector"
+ },
+ {
+ "label" : "vconnector-pnic",
+ "value" : "vconnector-pnic"
+ },
+ {
+ "label" : "vnic-vedge",
+ "value" : "vnic-vedge"
+ },
+ {
+ "label" : "vconnector-vedge",
+ "value" : "vconnector-vedge"
+ },
+ {
+ "label" : "vedge-pnic",
+ "value" : "vedge-pnic"
+ },
+ {
+ "label" : "vservice-vnic",
+ "value" : "vservice-vnic"
+ },
+ {
+ "label" : "pnic-host",
+ "value" : "pnic-host"
+ },
+ {
+ "label" : "host-pnic",
+ "value" : "host-pnic"
+ },
+ {
+ "label" : "host-network",
+ "value" : "host-network"
+ },
+ {
+ "label" : "network-host",
+ "value" : "network-host"
+ },
+ {
+ "label" : "switch_pnic-network",
+ "value" : "switch_pnic-network"
+ },
+ {
+ "label" : "network-switch_pnic",
+ "value" : "network-switch_pnic"
+ },
+ {
+ "label" : "switch_pnic-switch",
+ "value" : "switch_pnic-switch"
+ },
+ {
+ "label" : "switch-switch_pnic",
+ "value" : "switch-switch_pnic"
+ }
+ ]
+},
+{
+ "name" : "monitoring_sides",
+ "data" : [
+ {
+ "label" : "client",
+ "value" : "client"
+ },
+ {
+ "label" : "server",
+ "value" : "server"
+ }
+ ]
+},
+{
+ "name" : "messages_severity",
+ "data" : [
+ {
+ "label" : "panic",
+ "value" : "panic"
+ },
+ {
+ "label" : "alert",
+ "value" : "alert"
+ },
+ {
+ "label" : "crit",
+ "value" : "crit"
+ },
+ {
+ "label" : "error",
+ "value" : "error"
+ },
+ {
+ "label" : "warn",
+ "value" : "warn"
+ },
+ {
+ "label" : "notice",
+ "value" : "notice"
+ },
+ {
+ "label" : "info",
+ "value" : "info"
+ },
+ {
+ "label" : "debug",
+ "value" : "debug"
+ }
+ ]
+},
+{
+ "name" : "object_types",
+ "data" : [
+ {
+ "label" : "vnic",
+ "value" : "vnic"
+ },
+ {
+ "label" : "vconnector",
+ "value" : "vconnector"
+ },
+ {
+ "label" : "vedge",
+ "value" : "vedge"
+ },
+ {
+ "label" : "instance",
+ "value" : "instance"
+ },
+ {
+ "label" : "vservice",
+ "value" : "vservice"
+ },
+ {
+ "label" : "pnic",
+ "value" : "pnic"
+ },
+ {
+ "label" : "network",
+ "value" : "network"
+ },
+ {
+ "label" : "port",
+ "value" : "port"
+ },
+ {
+ "label" : "otep",
+ "value" : "otep"
+ },
+ {
+ "label" : "agent",
+ "value" : "agent"
+ },
+ {
+ "label" : "host",
+ "value" : "host"
+ },
+ {
+ "label" : "switch_pnic",
+ "value" : "switch_pnic"
+ },
+ {
+ "label" : "switch",
+ "value" : "switch"
+ }
+ ]
+},
+{
+ "name" : "scans_statuses",
+ "data" : [
+ {
+ "value" : "draft",
+ "label" : "Draft"
+ },
+ {
+ "value" : "pending",
+ "label" : "Pending"
+ },
+ {
+ "value" : "running",
+ "label" : "Running"
+ },
+ {
+ "value" : "completed",
+ "label" : "Completed"
+ },
+ {
+ "value" : "failed",
+ "label" : "Failed"
+ },
+ {
+ "value" : "aborted",
+ "label" : "Aborted"
+ }
+ ]
+},
+{
+ "data" : [
+ {
+ "label" : "Mirantis-6.0",
+ "value" : "Mirantis-6.0"
+ },
+ {
+ "label" : "Mirantis-7.0",
+ "value" : "Mirantis-7.0"
+ },
+ {
+ "label" : "Mirantis-8.0",
+ "value" : "Mirantis-8.0"
+ },
+ {
+ "label" : "Mirantis-9.0",
+ "value" : "Mirantis-9.0"
+ },
+ {
+ "label" : "RDO-Mitaka",
+ "value" : "RDO-Mitaka"
+ },
+ {
+ "label" : "RDO-Liberty",
+ "value" : "RDO-Liberty"
+ },
+ {
+ "label" : "RDO-Juno",
+ "value" : "RDO-Juno"
+ },
+ {
+ "label" : "RDO-kilo",
+ "value" : "RDO-kilo"
+ },
+ {
+ "label" : "devstack-liberty",
+ "value" : "devstack-liberty"
+ },
+ {
+ "label" : "Canonical-icehouse",
+ "value" : "Canonical-icehouse"
+ },
+ {
+ "label" : "Canonical-juno",
+ "value" : "Canonical-juno"
+ },
+ {
+ "label" : "Canonical-liberty",
+ "value" : "Canonical-liberty"
+ },
+ {
+ "label" : "Canonical-mitaka",
+ "value" : "Canonical-mitaka"
+ },
+ {
+ "label" : "Apex-Mitaka",
+ "value" : "Apex-Mitaka"
+ },
+ {
+ "label" : "Devstack-Mitaka",
+ "value" : "Devstack-Mitaka"
+ },
+ {
+ "label" : "packstack-7.0.0-0.10.dev1682",
+ "value" : "packstack-7.0.0-0.10.dev1682"
+ },
+ {
+ "label" : "Stratoscale-v2.1.6",
+ "value" : "Stratoscale-v2.1.6"
+ },
+ {
+ "label" : "Mirantis-9.1",
+ "value" : "Mirantis-9.1"
+ }
+ ],
+ "name" : "distributions"
+},
+{
+ "name" : "message_source_systems",
+ "data" : [
+ {
+ "value" : "OpenStack",
+ "label" : "OpenStack"
+ },
+ {
+ "value" : "Calipso",
+ "label" : "Calipso"
+ },
+ {
+ "value" : "Sensu",
+ "label" : "Sensu"
+ }
+ ]
+},
+{
+ "name" : "object_types_for_links",
+ "data" : [
+ {
+ "label" : "vnic",
+ "value" : "vnic"
+ },
+ {
+ "label" : "vconnector",
+ "value" : "vconnector"
+ },
+ {
+ "label" : "vedge",
+ "value" : "vedge"
+ },
+ {
+ "label" : "instance",
+ "value" : "instance"
+ },
+ {
+ "label" : "vservice",
+ "value" : "vservice"
+ },
+ {
+ "label" : "pnic",
+ "value" : "pnic"
+ },
+ {
+ "label" : "network",
+ "value" : "network"
+ },
+ {
+ "label" : "port",
+ "value" : "port"
+ },
+ {
+ "label" : "otep",
+ "value" : "otep"
+ },
+ {
+ "label" : "agent",
+ "value" : "agent"
+ },
+ {
+ "label" : "host",
+ "value" : "host"
+ },
+ {
+ "label" : "switch_pnic",
+ "value" : "switch_pnic"
+ },
+ {
+ "label" : "switch",
+ "value" : "switch"
+ }
+ ]
+},
+{
+ "name" : "scan_object_types",
+ "data" : [
+ {
+ "label" : "vnic",
+ "value" : "vnic"
+ },
+ {
+ "label" : "vconnector",
+ "value" : "vconnector"
+ },
+ {
+ "label" : "vedge",
+ "value" : "vedge"
+ },
+ {
+ "label" : "instance",
+ "value" : "instance"
+ },
+ {
+ "label" : "vservice",
+ "value" : "vservice"
+ },
+ {
+ "label" : "pnic",
+ "value" : "pnic"
+ },
+ {
+ "label" : "network",
+ "value" : "network"
+ },
+ {
+ "label" : "port",
+ "value" : "port"
+ },
+ {
+ "label" : "otep",
+ "value" : "otep"
+ },
+ {
+ "label" : "agent",
+ "value" : "agent"
+ },
+ {
+ "value" : "availability_zone",
+ "label" : "availability_zone"
+ },
+ {
+ "value" : "regions_folder",
+ "label" : "regions_folder"
+ },
+ {
+ "value" : "instances_folder",
+ "label" : "instances_folder"
+ },
+ {
+ "value" : "pnics_folder",
+ "label" : "pnics_folder"
+ },
+ {
+ "value" : "vconnectors_folder",
+ "label" : "vconnectors_folder"
+ },
+ {
+ "value" : "vedges_folder",
+ "label" : "vedges_folder"
+ },
+ {
+ "value" : "ports_folder",
+ "label" : "ports_folder"
+ },
+ {
+ "value" : "aggregates_folder",
+ "label" : "aggregates_folder"
+ },
+ {
+ "value" : "vservices_folder",
+ "label" : "vservices_folder"
+ },
+ {
+ "value" : "vnics_folder",
+ "label" : "vnics_folder"
+ },
+ {
+ "value" : "network_agent",
+ "label" : "network_agent"
+ },
+ {
+ "value" : "project",
+ "label" : "project"
+ },
+ {
+ "value" : "projects_folder",
+ "label" : "projects_folder"
+ },
+ {
+ "value" : "aggregate",
+ "label" : "aggregate"
+ },
+ {
+ "value" : "network_agents_folder",
+ "label" : "network_agents_folder"
+ },
+ {
+ "value" : "host",
+ "label" : "host"
+ },
+ {
+ "value" : "region",
+ "label" : "region"
+ },
+ {
+ "value" : "host_ref",
+ "label" : "host_ref"
+ },
+ {
+ "value" : "network_services_folder",
+ "label" : "network_services_folder"
+ },
+ {
+ "label" : "switch_pnic",
+ "value" : "switch_pnic"
+ },
+ {
+ "label" : "switch",
+ "value" : "switch"
+ }
+ ]
+}
+]
diff --git a/app/install/db/environments_config.json b/app/install/db/environments_config.json
new file mode 100644
index 0000000..9e05687
--- /dev/null
+++ b/app/install/db/environments_config.json
@@ -0,0 +1,78 @@
+[
+{
+ "operational" : "stopped",
+ "listen" : true,
+ "configuration" : [
+ {
+ "name" : "OpenStack",
+ "admin_token" : "sadgsgsagsa",
+ "user" : "adminuser",
+ "port" : 5000,
+ "pwd" : "saggsgsasg",
+ "host" : "10.0.0.1"
+ },
+ {
+ "name" : "mysql",
+ "password" : "sgasdggddsgsd",
+ "port" : 3307,
+ "user" : "mysqluser",
+ "host" : "10.0.0.1"
+ },
+ {
+ "name" : "CLI",
+ "user" : "sshuser",
+ "pwd" : "sagsagsagsa",
+ "host" : "10.0.0.1"
+ },
+ {
+ "name" : "AMQP",
+ "password" : "sagssdgassgd",
+ "port" : 5673,
+ "user" : "rabbitmquser",
+ "host" : "10.0.0.1"
+ },
+ {
+ "rabbitmq_port" : 5671,
+ "ssh_user" : "root",
+ "server_name" : "sensu_server",
+ "env_type" : "production",
+ "provision" : "None",
+ "name" : "Monitoring",
+ "ssh_port" : 20022,
+ "rabbitmq_pass" : "sagsagss",
+ "ssh_password" : "calipsoasgsagdg",
+ "rabbitmq_user" : "sensu",
+ "config_folder" : "/local_dir/sensu_config",
+ "type" : "Sensu",
+ "server_ip" : "10.0.0.1",
+ "api_port" : 4567
+ },
+ {
+ "name" : "ACI",
+ "user" : "admin",
+ "pwd" : "Cisco123456",
+ "host" : "10.1.1.104"
+ }
+ ],
+ "enable_monitoring" : true,
+ "name" : "DEMO-ENVIRONMENT-SCHEME",
+ "distribution" : "Mirantis-8.0",
+ "last_scanned" : "filled-by-scanning",
+ "app_path" : "/home/scan/calipso_prod/app",
+ "scanned" : false,
+ "type_drivers" : "vxlan",
+ "mechanism_drivers" : [
+ "OVS"
+ ],
+ "user" : "wNLeBJxNDyw8G7Ssg",
+ "auth" : {
+ "edit-env" : [
+ "wNLeBJxNDyw8G7Ssg"
+ ],
+ "view-env" : [
+ "wNLeBJxNDyw8G7Ssg"
+ ]
+ },
+ "type" : "environment"
+}
+]
diff --git a/app/install/db/inventory.json b/app/install/db/inventory.json
new file mode 100644
index 0000000..be99137
--- /dev/null
+++ b/app/install/db/inventory.json
@@ -0,0 +1,3 @@
+{
+ "_id" : "xyz"
+}
diff --git a/app/install/db/link_types.json b/app/install/db/link_types.json
new file mode 100644
index 0000000..30a610c
--- /dev/null
+++ b/app/install/db/link_types.json
@@ -0,0 +1,184 @@
+[
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "instance-vnic",
+ "endPointA" : "instance",
+ "endPointB" : "vnic",
+ "type" : "instance-vnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vnic-vconnector",
+ "endPointA" : "vnic",
+ "endPointB" : "vconnector",
+ "type" : "vnic-vconnector"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vconnector-vedge",
+ "endPointA" : "vconnector",
+ "endPointB" : "vedge",
+ "type" : "vconnector-vedge"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vedge-otep",
+ "endPointA" : "vedge",
+ "endPointB" : "otep",
+ "type" : "vedge-otep"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vconnector-pnic",
+ "endPointA" : "vconnector",
+ "endPointB" : "pnic",
+ "type" : "vconnector-pnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "pnic-network",
+ "endPointA" : "pnic",
+ "endPointB" : "network",
+ "type" : "pnic-network"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "otep-vconnector",
+ "endPointA" : "otep",
+ "endPointB" : "vconnector",
+ "type" : "otep-vconnector"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vnic-vedge",
+ "endPointA" : "vnic",
+ "endPointB" : "vedge",
+ "type" : "vnic-vedge"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "network-pnic",
+ "endPointA" : "network",
+ "endPointB" : "pnic",
+ "type" : "network-pnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vedge-vconnector",
+ "endPointA" : "vedge",
+ "endPointB" : "vconnector",
+ "type" : "vedge-vconnector"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vconnector-vnic",
+ "endPointA" : "vconnector",
+ "endPointB" : "vnic",
+ "type" : "vconnector-vnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vnic-instance",
+ "endPointA" : "vnic",
+ "endPointB" : "instance",
+ "type" : "vnic-instance"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vnic-vservice",
+ "endPointA" : "vnic",
+ "endPointB" : "vservice",
+ "type" : "vnic-vservice"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vservice-vnic",
+ "endPointA" : "vservice",
+ "endPointB" : "vnic",
+ "type" : "vservice-vnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "pnic-vconnector",
+ "endPointA" : "pnic",
+ "endPointB" : "vconnector",
+ "type" : "pnic-vconnector"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vconnector-otep",
+ "endPointA" : "vconnector",
+ "endPointB" : "otep",
+ "type" : "vconnector-otep"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "otep-vedge",
+ "endPointA" : "otep",
+ "endPointB" : "vedge",
+ "type" : "otep-vedge"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "vedge-vnic",
+ "endPointA" : "vedge",
+ "endPointB" : "vnic",
+ "type" : "vedge-vnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "pnic-host",
+ "endPointA" : "pnic",
+ "endPointB" : "host",
+ "type" : "pnic-host"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "host-pnic",
+ "endPointA" : "host",
+ "endPointB" : "pnic",
+ "type" : "host-pnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "host-network",
+ "endPointA" : "host",
+ "endPointB" : "network",
+ "type" : "host-network"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "network-host",
+ "endPointA" : "network",
+ "endPointB" : "host",
+ "type" : "network-host"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "network-switch_pnic",
+ "endPointA" : "network",
+ "endPointB" : "switch_pnic",
+ "type" : "network-switch_pnic"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "switch_pnic-network",
+ "endPointA" : "switch_pnic",
+ "endPointB" : "network",
+ "type" : "switch_pnic-network"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "switch_pnic-switch",
+ "endPointA" : "switch_pnic",
+ "endPointB" : "switch",
+ "type" : "switch_pnic-switch"
+},
+{
+ "user_id" : "WS7j8oTbWPf3LbNne",
+ "description" : "switch-switch_pnic",
+ "endPointA" : "switch",
+ "endPointB" : "switch_pnic",
+ "type" : "switch-switch_pnic"
+}
+]
diff --git a/app/install/db/links.json b/app/install/db/links.json
new file mode 100644
index 0000000..be99137
--- /dev/null
+++ b/app/install/db/links.json
@@ -0,0 +1,3 @@
+{
+ "_id" : "xyz"
+}
diff --git a/app/install/db/messages.json b/app/install/db/messages.json
new file mode 100644
index 0000000..b6c27cc
--- /dev/null
+++ b/app/install/db/messages.json
@@ -0,0 +1,44 @@
+[
+{
+ "message" : "2017-07-03 09:16:47,563 INFO: scanning : type=vnic, parent: (type=vnics_folder, name=vNICs, id=72bda9ec-2d0d-424c-8558-88ec22f09c95-vnics)",
+ "related_object" : null,
+ "received_timestamp" : null,
+ "finished_timestamp" : null,
+ "level" : "info",
+ "display_context" : null,
+ "viewed" : false,
+ "id" : "17350.33407.563988",
+ "source_system" : "CALIPSO",
+ "related_object_type" : null,
+ "timestamp" : "2017-07-03T09:16:47.563988",
+ "environment" : null
+},
+{
+ "related_object_type" : null,
+ "finished_timestamp" : null,
+ "environment" : null,
+ "received_timestamp" : null,
+ "related_object" : null,
+ "source_system" : "CALIPSO",
+ "message" : "2017-07-04 13:38:41,431 INFO: Started EventManager with following configuration:\nMongo config file path: /local_dir/calipso_mongo_access.conf\nCollection: environments_config\nPolling interval: 5 second(s)",
+ "timestamp" : "2017-07-04T13:38:41.431470",
+ "id" : "17351.49121.431470",
+ "level" : "info",
+ "viewed" : false,
+ "display_context" : null
+},
+{
+ "display_context" : null,
+ "level" : "info",
+ "id" : "17351.49126.596498",
+ "environment" : null,
+ "finished_timestamp" : null,
+ "viewed" : false,
+ "message" : "2017-07-04 13:38:46,596 INFO: Started ScanManager with following configuration:\nMongo config file path: /local_dir/calipso_mongo_access.conf\nScans collection: scans\nEnvironments collection: environments_config\nPolling interval: 1 second(s)",
+ "timestamp" : "2017-07-04T13:38:46.596498",
+ "related_object" : null,
+ "received_timestamp" : null,
+ "related_object_type" : null,
+ "source_system" : "CALIPSO"
+}
+]
diff --git a/app/install/db/meteor_accounts_loginServiceConfiguration.json b/app/install/db/meteor_accounts_loginServiceConfiguration.json
new file mode 100644
index 0000000..be99137
--- /dev/null
+++ b/app/install/db/meteor_accounts_loginServiceConfiguration.json
@@ -0,0 +1,3 @@
+{
+ "_id" : "xyz"
+}
diff --git a/app/install/db/monitoring_config.json b/app/install/db/monitoring_config.json
new file mode 100644
index 0000000..be99137
--- /dev/null
+++ b/app/install/db/monitoring_config.json
@@ -0,0 +1,3 @@
+{
+ "_id" : "xyz"
+}
diff --git a/app/install/db/monitoring_config_templates.json b/app/install/db/monitoring_config_templates.json
new file mode 100644
index 0000000..2e6d9ba
--- /dev/null
+++ b/app/install/db/monitoring_config_templates.json
@@ -0,0 +1,378 @@
+[
+{
+ "side" : "client",
+ "order" : "1",
+ "config" : {
+ "rabbitmq" : {
+ "port" : "{rabbitmq_port}",
+ "vhost" : "/sensu",
+ "password" : "{rabbitmq_pass}",
+ "host" : "{server_ip}",
+ "user" : "{rabbitmq_user}",
+ "ssl" : {
+ "cert_chain_file" : "/etc/sensu/ssl/cert.pem",
+ "private_key_file" : "/etc/sensu/ssl/key.pem"
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "rabbitmq.json"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "config" : {
+ "transport" : {
+ "name" : "rabbitmq",
+ "reconnect_on_error" : true
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "transport.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "redis" : {
+ "port" : "6379",
+ "host" : "127.0.0.1"
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "redis.json"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "config" : {
+ "api" : {
+ "port" : 4567,
+ "host" : "{server_ip}"
+ },
+ "client" : {
+ "address" : "{client_name}",
+ "subscriptions" : [
+
+ ],
+ "name" : "{client_name}",
+ "environment" : "{env_name}"
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "transport" : {
+ "name" : "rabbitmq",
+ "reconnect_on_error" : true
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "transport.json"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "config" : {
+ "checks" : {
+ "{objtype}_{objid}_{portid}" : {
+ "interval" : 15,
+ "command" : "check_ping.py -c 10 -i 0.5 -p 4f532d444e41 -w 10 -s 256 -f {otep_src_ip} -t {otep_dest_ip} -W 1%/301.11/600 -C 10%/1020.12/2000",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client_check_otep.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "rabbitmq" : {
+ "port" : "{rabbitmq_port}",
+ "vhost" : "/sensu",
+ "password" : "{rabbitmq_pass}",
+ "host" : "{server_ip}",
+ "user" : "{rabbitmq_user}",
+ "ssl" : {
+ "cert_chain_file" : "/etc/sensu/ssl/cert.pem",
+ "private_key_file" : "/etc/sensu/ssl/key.pem"
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "rabbitmq.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "api" : {
+ "port" : 4567,
+ "host" : "{server_ip}",
+ "bind" : "0.0.0.0"
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "api.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "client" : {
+ "address" : "sensu-server",
+ "socket" : {
+ "port" : 3030,
+ "bind" : "127.0.0.1"
+ },
+ "subscriptions" : [
+ "dev",
+ "base",
+ "test"
+ ],
+ "name" : "{server_name}",
+ "environment" : "{env_type}"
+ },
+ "keepalive" : {
+ "handlers" : [
+ "default",
+ "file"
+ ]
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "filters" : {
+ "state_change_only" : {
+ "negate" : true,
+ "attributes" : {
+ "check" : {
+ "history" : "eval: value.last == value[-2]"
+ }
+ }
+
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "filters.json"
+},
+{
+ "side" : "server",
+ "order" : "1",
+ "config" : {
+ "handlers" : {
+ "osdna-monitor" : {
+ "timeout" : 20,
+ "command" : "PYTHONPATH={app_path} {app_path}/monitoring/handlers/monitor.py -m /local_dir/calipso_mongo_access.conf",
+ "type" : "pipe",
+ "filter" : "state_change_only"
+ },
+ "file" : {
+ "timeout" : 20,
+ "command" : "/etc/sensu/plugins/event-file.rb",
+ "type" : "pipe",
+ "filter" : "state_change_only"
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "handlers.json"
+},
+{
+ "type" : "client_check_vedge.json",
+ "side" : "client",
+ "condition" : {
+ "mechanism_drivers" : [
+ "VPP"
+ ]
+ },
+ "config" : {
+ "checks" : {
+ "{objtype}_{objid}" : {
+ "interval" : 15,
+ "command" : "check_vedge_vpp.py",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "order" : "1"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "condition" : {
+ "mechanism_drivers" : [
+ "VPP"
+ ]
+ },
+ "config" : {
+ "checks" : {
+ "{objtype}_{vnictype}_{objid}" : {
+ "interval" : 15,
+ "command" : "check_vnic_vpp.py",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client_check_vnic.json"
+},
+{
+ "side" : "client",
+ "config" : {
+ "checks" : {
+ "{objtype}_{objid}" : {
+ "interval" : 15,
+ "command" : "check_vedge_ovs.py",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "type" : "client_check_vedge.json",
+ "condition" : {
+ "mechanism_drivers" : [
+ "OVS"
+ ]
+ },
+ "monitoring_system" : "sensu",
+ "order" : "1"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "condition" : {
+ "mechanism_drivers" : [
+ "OVS",
+ "LXB"
+ ]
+ },
+ "config" : {
+ "checks" : {
+ "link_{linktype}_{fromobjid}_{toobjid}" : {
+ "interval" : 15,
+ "command" : "check_vnic_vconnector.py {bridge} {mac_address}",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client_check_link_vnic-vconnector.json"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "condition" : {
+ "mechanism_drivers" : [
+ "VPP"
+ ]
+ },
+ "config" : {
+ "checks" : {
+ "{objtype}_{objid}" : {
+ "interval" : 15,
+ "command" : "check_pnic_vpp.py",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client_check_pnic.json"
+},
+{
+ "side" : "client",
+ "order" : "1",
+ "condition" : {
+ "mechanism_drivers" : [
+ "OVS",
+ "LXB"
+ ]
+ },
+ "config" : {
+ "checks" : {
+ "{objtype}_{objid}" : {
+ "interval" : 15,
+ "command" : "PYTHONPATH=/etc/sensu/plugins check_vservice.py {service_type} {local_service_id}",
+ "standalone" : true,
+ "type": "metric",
+ "subscribers" : [
+ "base"
+ ],
+ "handlers" : [
+ "default",
+ "file",
+ "osdna-monitor"
+ ]
+ }
+ }
+ },
+ "monitoring_system" : "sensu",
+ "type" : "client_check_vservice.json"
+}
+]
diff --git a/app/install/db/network_agent_types.json b/app/install/db/network_agent_types.json
new file mode 100644
index 0000000..ba01ef2
--- /dev/null
+++ b/app/install/db/network_agent_types.json
@@ -0,0 +1,52 @@
+[
+{
+ "folder_text" : "VPNs",
+ "description" : "VPN agent",
+ "type" : "vpn"
+},
+{
+ "folder_text" : "Firewalls",
+ "description" : "Firewall agent",
+ "type" : "firewall"
+},
+{
+ "folder_text" : "vEdges",
+ "description" : "L2 agent",
+ "type" : "vedge"
+},
+{
+ "folder_text" : "Gateways",
+ "description" : "L3 agent",
+ "type" : "router"
+},
+{
+ "folder_text" : "Metadata",
+ "description" : "Metadata agent",
+ "type" : "metadata"
+},
+{
+ "folder_text" : "Load-Balancers",
+ "description" : "Load Balancing agent",
+ "type" : "load_balancer"
+},
+{
+ "folder_text" : "vEdges",
+ "description" : "Open vSwitch agent",
+ "type" : "vedge"
+},
+{
+ "folder_text" : "vConnectors",
+ "description" : "Linux bridge agent",
+ "type" : "vconnector"
+},
+{
+ "folder_text" : "DHCP servers",
+ "description" : "DHCP agent",
+ "type" : "dhcp"
+},
+{
+ "folder_text" : "Orchestrators",
+ "description" : "Orchestrator",
+ "type" : "orchestrator"
+}
+]
diff --git a/app/install/db/roles.json b/app/install/db/roles.json
new file mode 100644
index 0000000..78a7c75
--- /dev/null
+++ b/app/install/db/roles.json
@@ -0,0 +1,26 @@
+[
+{
+ "_id" : "z5W5wQqTnSHMYxXRB",
+ "name" : "manage-users"
+},
+{
+ "_id" : "q3o6nbR3xY88KyCkt",
+ "name" : "manage-link-types"
+},
+{
+ "_id" : "odxGpkgQ3oexmXYhc",
+ "name" : "manage-clique-types"
+},
+{
+ "_id" : "RcEgj6kJnkPqpyJzR",
+ "name" : "manage-clique-constraints"
+},
+{
+ "_id" : "7gs3Fyow2Cryc4cdf",
+ "name" : "view-env"
+},
+{
+ "_id" : "DyhzqcNymdYgkzyie",
+ "name" : "edit-env"
+}
+]
diff --git a/app/install/db/scans.json b/app/install/db/scans.json
new file mode 100644
index 0000000..cb480d2
--- /dev/null
+++ b/app/install/db/scans.json
@@ -0,0 +1,24 @@
+[
+{
+ "status" : "completed",
+ "inventory" : "inventory",
+ "start_timestamp" : "2017-05-17T11:00:17.939+0000",
+ "scan_only_inventory" : false,
+ "scan_only_links" : false,
+ "submit_timestamp" : "2017-05-17T07:53:09.194+0000",
+ "log_level" : "warning",
+ "scan_only_cliques" : false,
+ "clear" : true,
+ "environment" : "Mirantis-Liberty"
+},
+{
+ "status" : "failed",
+ "scan_only_inventory" : false,
+ "scan_only_links" : false,
+ "submit_timestamp" : "2017-06-14T13:42:32.710+0000",
+ "log_level" : "info",
+ "scan_only_cliques" : false,
+ "clear" : true,
+ "environment" : "staging"
+}
+]
diff --git a/app/install/db/scheduled_scans.json b/app/install/db/scheduled_scans.json
new file mode 100644
index 0000000..8f0c516
--- /dev/null
+++ b/app/install/db/scheduled_scans.json
@@ -0,0 +1,43 @@
+[
+{
+ "clear" : true,
+ "environment" : "staging",
+ "freq" : "WEEKLY",
+ "log_level" : "warning",
+ "scan_only_cliques" : false,
+ "scan_only_inventory" : true,
+ "scan_only_links" : false,
+ "submit_timestamp" : "2017-07-02T13:46:29.206+0000"
+},
+{
+ "clear" : false,
+ "environment" : "staging",
+ "freq" : "WEEKLY",
+ "log_level" : "warning",
+ "scan_only_cliques" : false,
+ "scan_only_inventory" : true,
+ "scan_only_links" : false,
+ "submit_timestamp" : "2017-07-02T13:46:36.079+0000"
+},
+{
+ "clear" : false,
+ "environment" : "staging",
+ "freq" : "WEEKLY",
+ "log_level" : "warning",
+ "scan_only_cliques" : false,
+ "scan_only_inventory" : true,
+ "scan_only_links" : false,
+ "submit_timestamp" : "2017-07-02T13:46:41.004+0000"
+},
+{
+ "scan_only_inventory" : true,
+ "freq" : "WEEKLY",
+ "scan_only_links" : false,
+ "scan_only_cliques" : false,
+ "log_level" : "warning",
+ "environment" : "staging",
+ "submit_timestamp" : "2017-07-02T14:38:09.032+0000",
+ "scheduled_timestamp" : "2017-07-08T14:38:09.032+0000",
+ "clear" : true
+}
+]
diff --git a/app/install/db/statistics.json b/app/install/db/statistics.json
new file mode 100644
index 0000000..195e0ec
--- /dev/null
+++ b/app/install/db/statistics.json
@@ -0,0 +1,23 @@
+[
+{
+ "recordGenerationMillis" : 1487147277000,
+ "object_id" : "devstack-vpp2-VPP",
+ "sample_time" : "2017-02-15T08:15:10Z",
+ "ingressInterface" : 2,
+ "averageArrivalNanoSeconds" : 1487146510773984049,
+ "destinationMacAddress" : "fa:16:3e:5d:7b:ae",
+ "destination" : "iperf2",
+ "packetCount" : 2,
+ "source" : "iperf1",
+ "object_type" : "vedge",
+ "sourceMacAddress" : "fa:16:3e:58:64:c6",
+ "ethernetType" : 2048,
+ "egressInterface" : 3,
+ "environment" : "Devstack-VPP",
+ "flowType" : "L2",
+ "data_arrival_avg" : 1487146510,
+ "type" : "vedge_flows",
+ "averageThroughput" : 17280,
+ "hostIp" : "10.56.20.78"
+}
+]
diff --git a/app/install/db/supported_environments.json b/app/install/db/supported_environments.json
new file mode 100644
index 0000000..1214ef3
--- /dev/null
+++ b/app/install/db/supported_environments.json
@@ -0,0 +1,230 @@
+[
+{
+ "environment" : {
+ "distribution" : "Stratoscale-v2.1.6",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : false,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-6.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-7.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-8.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-9.1",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : false,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "RDO-Mitaka",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "RDO-Liberty",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-9.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-9.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-8.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-6.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-7.0",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Mirantis-9.1",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "RDO-Mitaka",
+ "mechanism_drivers" : "VPP",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "RDO-Mitaka",
+ "mechanism_drivers" : "VPP",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Devstack-Mitaka",
+ "mechanism_drivers" : "VPP",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "Devstack-Mitaka",
+ "mechanism_drivers" : "VPP",
+ "type_drivers" : "vxlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "RDO-Mitaka",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+},
+{
+ "environment" : {
+ "distribution" : "RDO-Liberty",
+ "mechanism_drivers" : "OVS",
+ "type_drivers" : "vlan"
+ },
+ "features" : {
+ "monitoring" : true,
+ "listening" : true,
+ "scanning" : true
+ }
+}
+]
diff --git a/app/install/db/users.json b/app/install/db/users.json
new file mode 100644
index 0000000..a0ccdb3
--- /dev/null
+++ b/app/install/db/users.json
@@ -0,0 +1,51 @@
+[
+{
+ "_id" : "wNLeBJxNDyw8G7Ssg",
+ "createdAt" : "2017-06-22T18:20:43.963+0000",
+ "services" : {
+ "password" : {
+ "bcrypt" : "$2a$10$LRnem9Y5OIo0hYpqi8JY5.G7uMp1LKAyHiq.ha2xHWmbPRo7CJuUS"
+ },
+ "resume" : {
+ "loginTokens" : [
+ {
+ "when" : "2017-06-29T16:41:06.183+0000",
+ "hashedToken" : "x2WrmQXpX6slx1/y+ReTuTZAqmPFMCX1ZI+N9COkK7c="
+ },
+ {
+ "when" : "2017-07-02T08:22:34.591+0000",
+ "hashedToken" : "Ls5V0a2I90A5TWWYU8kIZ5ByJR/fK8Kt5R65ch/iPt8="
+ },
+ {
+ "when" : "2017-07-02T15:02:09.357+0000",
+ "hashedToken" : "tEHXx9BGQUATbrHEaQyXm693Dfe5mzf8QPM9zpGnykE="
+ },
+ {
+ "when" : "2017-07-03T06:34:38.405+0000",
+ "hashedToken" : "WiI6vfcQ9zAnMN8SqBmfrF14ndBVLAQzhpsf9DZarRA="
+ }
+ ]
+ }
+ },
+ "username" : "admin",
+ "emails" : [
+ {
+ "address" : "admin@example.com",
+ "verified" : false
+ }
+ ],
+ "profile" : {
+ "name" : "admin"
+ },
+ "roles" : {
+ "__global_roles__" : [
+ "manage-users",
+ "manage-link-types",
+ "manage-clique-types",
+ "manage-clique-constraints",
+ "view-env",
+ "edit-env"
+ ]
+ }
+}
+]
diff --git a/app/install/ldap.conf.example b/app/install/ldap.conf.example
new file mode 100644
index 0000000..b1798f7
--- /dev/null
+++ b/app/install/ldap.conf.example
@@ -0,0 +1,10 @@
+user admin
+password password
+url ldap://korlev-calipso-dev.cisco.com:389
+user_id_attribute CN
+user_pass_attribute userpassword
+user_objectclass inetOrgPerson
+user_tree_dn OU=Users,DC=openstack,DC=org
+query_scope one
+tls_req_cert allow
+group_member_attribute member