Cloudify's New UI Framework
Switch branches/tags
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Improved CircleCI, internal documentation and error handling in tours ( Jul 16, 2018
app Updated WidgetDefinitionLoader code style Nov 15, 2018
backend Optimized backend source code Nov 15, 2018
conf Improved logging Nov 13, 2018
doc Updated README.md file and screenshot Nov 13, 2018
e2e Fix system tests - widget backend (#686) Nov 5, 2018
scripts Updated readmesConfig.json to get latest version of documentation Nov 20, 2018
templates Updated logs page to allow filtering by nodes and node instances. Nov 20, 2018
test Merge branch 'master' into CYBL-23 Oct 8, 2018
tours CY-745 - Enhance Cloudify Managers Management widget (#685) Nov 6, 2018
widgets Improved select/unselect of node in Topology and Nodes widgets Nov 20, 2018
.babelrc CY-234 - Optimize Stage dependencies (#555) Apr 23, 2018
.eslintrc Update .eslintrc Aug 21, 2017
.gitignore CY-235 - Optimize bundling tools configuration (#556) Apr 25, 2018
.size-limit Optimized HighlightText and decreased size-limit Oct 25, 2018
Jenkinsfile Deploy to doc.cloudify.co (#566) May 6, 2018
README.md Small fix in README (#694) Nov 18, 2018
devServer.js CY-434 - UI fails to load after snapshot (#622) Jul 2, 2018
package-lock.json Upgrade the node-sass version Nov 16, 2018
package.json Upgrade the node-sass version Nov 16, 2018
webpack.config-prod.js CY-320 - The widgets folder on the manager is approachable by users (#… Jul 16, 2018
webpack.config.js CY-320 - The widgets folder on the manager is approachable by users (#… Jul 16, 2018

README.md

Cloudify Console CircleCI

The Cloudify Console provides a streamlined experience for managing and analyzing Cloudify Manager.

CircleCI

Prerequisites

  • NodeJS (version >= 8.x) and npm installed
  • PostgreSQL installed and running on your machine
    • Make a database named stage
    • Make a user named cloudify with cloudify as password
    • You can do this easily with docker:
      docker pull postgres
      docker run --name postgres-cfy -e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER=cloudify -e POSTGRES_DB=stage -p 5432:5432 -d postgres
  • Cloudify Manager (version => 4.x) running

Setup

Configuration

Create conf/me.json file basing on conf/me.json.template and change <MANAGER_IP> into real IP of your Cloudify Manager.

Installation

Install application dependencies and initialize database:

  • npm run beforebuild
  • cd backend && npm run db-migrate

Deployment

You can deploy the stage either by starting the server and connecting to stage locally, or by packaging it and deploying it on a remote server.

Local deployment

Start the stage server backend and the webserver:

  • run backend server: cd backend && npm run devStart
  • run development server: npm run devServer

Open browser to see if application is running. It runs by default on http://localhost:4000.

Changes in the source code shall be hot loaded to the development development version of the application. For changes app directory you don't need to reload page, for changes in widgets directory you need to reload page to see your updates.

Remote deployment

  • create application package:
    • to create production build run: npm run build
    • to pack all necessary files into archive run: npm run zip Application package will be in repo main directory.
  • upload the package to the remote Cloudify Manager:
    • define path to private SSH key to access Cloudify Manager: export SSH_KEY_PATH=<PATH>
    • define Cloudify Manager IP adress: export MANAGER_IP=<MANAGER_IP>
    • upload package to the Cloudify Manager and restart UI services: npm run upload

Widgets development

Once you have configured successfully local deployment of Cloudify Console you are able to start development and testing of your own widgets. All out-of-the-box widgets resides in widgets directory.

To create your own widget:

  • follow the instructions from here and place widget in widgets directory
  • restart development server
  • install new widget

Since now, every single change in widget's code should be reflected in webserver after page reload.

Test

Unit tests

Run npm run prodtest.

System tests

Running in development environment

Run npm run deve2e.

Running in production environment

Set the following environmental variables:

export STAGE_E2E_SELENIUM_HOST=<SELENIUM_HOST_IP_ADDRESS>
export STAGE_E2E_MANAGER_URL=<MANAGER_IP>

and run: npm run e2e.

Documentation

Components

To create components documentation run: npm run doc. Documentation is created in doc/www directory. Open doc/www/index.html in web browser to see it.

Widgets

Widgets documentation bases on Cloudify Documentation and is stored in README.md files in widgets' folders.

To update widgets' documentation run npm run docWidgets. Configuration for update script can be found in: scripts/readmesConfig.json.