servicecatalog / development

An Enterprise-ready Cloud Services Management Software
http://openservicecatalogmanager.org
Apache License 2.0
39 stars 27 forks source link
billing glassfish hybrid-cloud marketplace provisioning servicecatalog subscriptions

Build Status

Open Service Catalog Manager Open Service Catalog Manager

Open Service Catalog Manager (OSCM) is an open source application with enterprise quality level. It supports a bright spectrum of use cases, from SaaS Marketplaces to Enterprise IaaS Stores. It offers ready-to-use service provisioning adapters for IaaS providers like Amazon Web Services (AWS) and OpenStack, but is also open for integrating other platforms.

Service Providers can define their services with flexible price models and publish them to an OSCM Marketplaces. The Service Provider can decide on using the OSCM Billing Engine for the service usage cost calculation, or integrate an external one. Customers can subscribe to and use the services.

OSCM supports configurable authentication. It can use its own user store, but also existing LDAP systems. OSCM can participate in an identity federation using SAML2 profiles for SSO (Single-Sign On) and integrate with any SAML2-enabled authentication server (e.g. OpenAM or ADFS).

Find more details on the OSCM homepage.

What's cool?

How about OSCM in containers, easily installed and updated, running in an Kubernetes cluster? OSCM on Apache TomEE with small session footprint, short startup and failover times? OSCM services for provisioning containerized applications with Kubernetes helm charts?

Find what's new in this release and what's coming next.

Contributions

All contributions are welcome - Open Service Catalog Manager uses the Apache 2.0 license and requires the contributor to agree with the OSCM Individual CLA (ICLA). If the contributor submits patches on behalf of a company, then additionally the OSCM Corporate CLA (CCLA) must be agreed. Even if the contributor is included in such CCLA, she/he is still required to agree with the ICLA. To submit the CLAs please:

Releases

The latest releases can be found here.

Getting started and building from sources

Please follow this guide from top to bottom, this is the easiest way to avoid errors later on.

Prerequisites

Setting up a workspace

  1. Download the latest sources for this and the documentation repositories. Set the directory name of documentation as "document".
  2. Import the project into your IDE. You should adjust some of the preferences:
    • Set the compiler level to the installed version of Java 1.8.
    • Set UTF-8 file encoding and Unix line endings.
  3. Import and configure the code formatting rules and code templates.

Setting up the database

  1. Install the database using a path without any whitespaces for the installation directory. During installation, a system-startup service and a database-specific user should be created.
  2. Update <postgres-root-dir>/data/postgresql.conf properties:
Property Value Comment
max_prepared_transactions 50 Sets the maximum number of transactions that can simultaneously be in the "prepared" state.
max_connections 210 Determines the maximum number of concurrent connections to the database server.
listen_addresses '*' Specifies the TCP/IP address(es) on which the server is to listen for connections from client applications.
  1. Update <postgres-root-dir>/data/pg_hba.conf properties:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 trust
host all all <host-ipv6>/128 trust
  1. Confirm all changes and restart the PostgreSQL service to apply changes.

Setting up the mail server

  1. Download and install any mail server.
  2. Create any domain and at least one user account in it.

Setting up the application server

  1. Install the GlassFish server following the instructions in the GlassFish documentation.
  2. Check if the Java location is valid in the following configuration files:
    <glassfish-root-dir>/glassfish/config/asenv.bat
    <glassfish-root-dir>/glassfish/config/asenv.con
    <glassfish-root-dir>/mq/etc/imqenv.conf

Building the application

  1. Update the properties in /oscm-devruntime/javares/local/. You can also look for examples in this directory:
Property Note
/oscm-devruntime/javares/local/<hostname>/db.properties Database connection details.
/oscm-devruntime/javares/local/<hostname>/db-app.properties APP database connection details.
/oscm-devruntime/javares/local/<hostname>/integration.properties Mostly server settings like ports etc.
/oscm-devruntime/javares/local/<hostname>/configsettings.properties Mostly server settings like ports etc.
/oscm-devruntime/javares/local/property-templates Folder containing templates files.
  1. Add the Eclipse ECJ and Apache Ivy libraries to Ant runtime in your IDE.
  2. Add the following arguments to JVM: -Dhttp.proxyHost=<proxy-host> -Dhttp.proxyPort=8080.
  3. Add the following scripts to Ant view in your IDE:
Script Note
/oscm-devruntime/javares/devscripts/build-dev-Database.xml Handles database operations, e.g. initialization, schema update etc.
/oscm-devruntime/javares/devscripts/build-dev-GlassFish.xml Handles server tasks like starting or stopping domains.
/oscm-devruntime/javares/devscripts/build-dev-PackageDeploy.xml Used to build application source code and to deploy its artifacts. Add "proxyuser" and "proxypassword" properties to setproxy tag if your proxy needs authentication.
/oscm-portal-webtests/run_in_eclipse.xml Executes UI tests.
/oscm-integrationtests-setup/resources/build.xml Used to create all neccessary resources for integration environment.
  1. Build the source code of the application using the All.BUILD target from /oscm-devruntime/javares/devscripts/build-dev-PackageDeploy.xml. The result will be located in /oscm-build/result. If you encounter an out of memory error, increase the VM heap size by using the -Xmx argument in the configuration of your Java runtime for executing ANT.
  2. Create the database and server resources using the STANDALONE.setup target from /oscm-integrationtests-setup/build.xml. It will also deploy all artifacts to the appropriate domains.

Deploying the application

After the environment is set up, developers can use the Ant targets to build/redeploy only specific modules. For example, to redeploy the portal, Portal.BUILD and then Portal.REDEPLOY should be run one after another.

Deploying eclipse-birt-runtime

OSCM uses eclipse-birt-runtime to generate reports. After OSCM is deployed, it is time for you to download and deploy eclipse-birt-runtime. You can find it under the link. Birt.war is the application you should be interested in. We advise you to get the latest version. When you have deployed the application, you may upload all the reports that we have designed for you. The reports are delivered with every release in oscm-reports.zip. Just unpack the content to a folder on GlassFish where the application has been deployed (usually: ${glassfishHome}\glassfish\domains\{domain}\applications\{ecilpse_runtime_folder}).