Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added sla-dashboard as custom entity #8

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion seaclouds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,35 @@ services:
DB_PASSWORD: "_atossla_"
war: https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=eu.seaclouds-project&a=sla-service&v=LATEST&e=war


- serviceType: brooklyn.entity.database.mysql.MySqlNode
id: sla-db
name: SLA Db
brooklyn.config:
creationScriptUrl: https://raw.githubusercontent.com/SeaCloudsEU/sla-core/e1d3bd4dec27236cfdefa1eae81d38db3dcd11da/sla-repository/src/main/resources/sql/01database.sql

- serviceType: brooklyn.entity.basic.VanillaSoftwareProcess
name: SLA Dashboard
id: sla-dashboard
launch.command: |
# Listen socket
export SOCKET=0.0.0.0:8000
# install necessary packages
sudo apt-get -y install python-pip
sudo apt-get -y install git
sudo pip install virtualenv
# setup application environment
export VIRTUALENVS_DIR=$HOME/virtualenvs
rm -Rf $VIRTUALENVS_DIR/sla-dashboard
# install application
test -f README.md || git clone https://github.com/SeaCloudsEU/sla-dashboard .
virtualenv $VIRTUALENVS_DIR/sla-dashboard
. $VIRTUALENVS_DIR/sla-dashboard/bin/activate
pip install -r requirements.txt
./manage.py syncdb --noinput
# run application
./manage.py runserver $SOCKET &
sleep 5 # manage.py spawns; we must wait a little
netstat -tpln | grep "$SOCKET" | awk -F' *|/' '{print $7}' > $PID_FILE
env:
SLA_MANAGER_URL: $brooklyn:formatString("http://%s:%s", component("sla-core").attributeWhenReady("host.address"), component("sla-core").attributeWhenReady("http.port"))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are you waiting for this URL if you are not using it?
maybe better to use something like
launch.latch: $brooklyn:component("sla-core").attributeWhenReady("service.isUp")

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What url? SLA_MANAGER_URL? I do use it. But sth strange happens, because brooklyn tries to reassign it each minute.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you mean SLA_MANAGER_URL is expected by your python app, even if not passed explicitly to manage.py runserver?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SLA_MANAGER_URL points to slacore endpoint, and has a default value of http://localhost:8080/sla-service (suitable for developing purposes), and overridable with an env var (https://github.com/SeaCloudsEU/sla-dashboard/blob/d06337aea0684a0773f1b3397304b8246188d977/sladashboard/settings.py#L97).

DEBUG: False
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you using this env var? if not, let's remove it