This file explains the tree structure and organization of the Goldstone code repository

addons

A folder for the .tar.gz files during the addon installation proceess.

bin

Docker-related helper scripts

client

client -> examples -> D3 examples that have been converted into backbone views for demo purposes, but not yet integrated with actual cloud data.

client -> js -> collections -> Backbone Collections for fetching and manipulating data prior to handing them off to the associated Backbone Views

client -> js-> models -> Backbone Models related to color schemes, i18n, and info button popup text.

client -> js -> preload-> Backbone Views that are inherited by other views and need to be pre-loaded

client -> js -> views -> Backbone Views: holds the majority of code related to rendering data

client -> scss -> SASS files that are processed into css.

client -> sitelib -> 3rd party js files. Will be concatenated by a grunt task into goldstone/static/bundle/libs.js

client -> sitelib ->jquery.datatables.js -> 3rd party jQuery plugin to render tabular data (with built-in support for sorting, pagination etc)

client -> sitelib -> siteLibLoadOrder.js -> file that defines the exact order of 3rd party libraries to be concatenated into the libs.js bundle. Any files not specified here will not be added to the bundle.

config

designdocs

dist

docker

Dockerfiles -> build instructions for docker containers supporting Goldstone server

config -> configuration files that are mounted to Goldstone docker containers

data -> data files that are mounted to Goldstone docker containers

docs

docs -> HACKING.md -> explains how to install and run Goldstone Server locally for dev (MAC OS only)

goldstone

goldstone -> core -> django project to help integrate with all external interfaces like docker, views and search queries

goldstone -> drefs -> django project to contain all rest-framework API's related to elasticsearch

goldstone -> glance -> interface to open-stack data

goldstone -> glogging -> django project to contain all API's related to syslog and logstash

goldstone -> nova -> interface to open-stack data, external facing views and queries

goldstone -> keystone -> interface to open-stack data

goldstone -> static -> contains all client related files

goldstone -> static -> addons -> client assets for installed addon modules

goldstone -> static -> bundle -> lib.js : concatenated version of all 3rd party js libraries

goldstone -> static -> bundle -> bundle.js : concatenated version of all client js contained in client/js/* (except for the site-lib folder, which is in libs.js in this directory)

goldstone -> static -> css -> mainly css files and some assets used by bootstrap

goldstones -> templates -> contains all HTML templates served by Django.

gruntfile.js

Applicable only to dev environment, defines and registers tasks that can be run by grunt via the command line, such as grunt watch.

package.json

Applicable only to dev, contains all front-end dev dependencies that will be installed via npm install.

static

copy of all static assets for docker containerization

test

contains all client related unit/integration/e2e tests that are run via grunt.

test_data

utils

Files for rpmbuild, nova and elasticsearch utilities