Previous topic

Hints and Tips

Next topic

Starter

DOCUMENTATION
Last updated 04-Apr-2017

Demo Projects

Getting started Projects

The following list of demo projects will help you get skills in developing APS packages. All projects address provisioning virtual private servers (VPS) to customers via Odin Service Automation. The operations do not require a real hardware node that would provision real VPSes.

If you are getting started with APS, we propose you to go through all demo projects starting with the first one. The first demo project Starter does not require initial files, i.e. you start it from scratch. Any other project extends an existing source package by adding provisioning and presentation logic to it as explained in the table.

Project Input Data Provisioning Logic Presentation Logic
Starter in CCP v1 No input Management Context auto-provisioning No Custom UI
Basic in CCP v1 Starter
+ VPS provisioning
+ VPS management
+ Navigation panel in CCP
+ Create VPS in CCP
+ Manage VPS in CCP
Basic Single Page Application in CCP v2 Starter
+ VPS provisioning
+ VPS management
+ Custom single page UI:
+ Create VPS in CCP v2 environment
+ Manage VPS in CCP v2 environment

Note

We intentionally do not update the same package to its more advanced version, since each subsequent project extends substantially the resource schema of the project it is based on.

Intermediate Projects

The following list of demo projects will help you advance your skills in developing APS packages. You can also use them as source packages when pursuing special goals such as integration of applications and application major updates.

Project Input Data Provisioning Logic Presentation Logic
Async Provisioning in CCP v1 Basic
+ Async provisioning
+ Monitor async provisioning in CCP
Async Provisioning in CCP v2 Async Provisioning No changes
+ Monitor async provisioning in CCP v2
Service User Wizard in CCP v1 Basic
+ Set relation from service to end-user
+ Assign service to end-user by integrating with Odin Service Automation service user wizard in CCP
Offering Management in CCP v1 Basic
+ Manage offers
+ Provision VPSes based on an offers
+ Navigation panel in PCP
+ Configuration of Offers in PCP
+ Create VPSes based on Offering in CCP
User Management in CCP v2 Offering Management
+ Set relation from service to end-user
+ Assign service to end-user by integrating with Odin Service Automation service user wizard
+ Integration with the user list and user profile
Service Activation in CCP v2 User Management
+ Managing resource status during service provisioning and activation
+ UI for monitoring and managing resource status
Resource Consumption Monitoring in CCP v1 Basic
+ Process resource consumption requests
+ Present resource consumption in CCP
Offer-Counter-User Management in CCP v1
+ Relate VPSes to end-users
+ Account resource consumption
+ Assign VPSes to end-users in CCP
+ Integration with Odin Service Automation SU wizard
+ Navigation panel in MyCP
+ Manage VPSes in MyCP
Event Processing in CCP v1 Offer-Counter-User
+ Subscribe to all possible event types
+ Process events
+ Present event notification list in CCP
Notification Management in CCP v2 Async Provisioning
+ Sending notifications to control panel
No changes
Batch Processing in CCP v2 Notification Management No changes
+ Request provisioning a bunch of resources from CCP
SAML Single-Sign-On in CCP v2 No input
+ Integrate an application with the platform built-in SAML SSO identification system
+ Integrate end-user UI with SSO
Integration with External System through REST API (CCP v2 UI) No input
+ Integrate an application with the platform built-in SAML SSO identification system
+ Integrate end-user UI with SSO

Advanced Projects

The following list of demo projects will help you master your skills in developing APS packages. You can also use them as source packages when pursuing special goals such as development of application specific update process.

Project Input Data Provisioning Logic Presentation Logic
Updating Basic Application in CCP v1
+ upgrade() method
+ Use PHP runtime for managing APS resources
+ Manage relations with offers in CCP
Upsell Processing in CCP v1
+ Integrate APS with Business Automation
+ upsell() method
+ Upsell management view in CCP
+ Upsell history in CCP
Integrated VPS Backup in CCP v1
+ Integrate applications through APS API
+ Present list of objects from another application
Bind-to-Domain Event Processing in CCP v2 Basic Single Page
+ Integrate an application with the DNS registration system
+ Create DNS records for new resources

Demonstration of UI Features

This is a set of demo projects illustrating miscellaneous UI features.

Project Input Data Provisioning Logic Presentation Logic
Navigation Variable Attributes Offering Management
+ Supply of variable collections
+ Using variable collections in UI
+ Using the required attribute for variables
Integration with Home Dashboard Basic Single Page Application No changes
+ View-plugins
+ Presenting Application resources on the dashboard
+ Quick start of resource management
Integration with User Manager Offer Management
+ Relation with a user
+ Assign VPS to a user
+ Resource stats per user
+ VPSes in a user profile
+ Bulk operations for selected users
Integration with Domain Manager in CCP v2 Basic Single Page
+ Relation with a domain and a DNS record
+ Assign a domain to a VPS
+ Create a CNAME record for a VPS
Integration with Service Template Tools in PCP Offer-Counter-User No changes
+ App specific ST creation tool
+ App specific ST editors
Subscription Management in CCP v2 - AWS Mode User Management No changes
+ Interaction with the platform to identify and manage subscriptions
+ Allow a customer to select a subscription to provision resources
Subscription Management in CCP v2 - MSS Mode User Management No changes
+ Meta and UI for monitoring and managing subscriptions
Transfer to CCP v2 Asynchronous provisioning No changes
+ Transfer UI views from CCP v1 to CCP v2
UI Backward Compatibility for CCP v1 and v2 No changes
+ Make UI compatible with all APS versions and markups
UI Custom Wizard in CCP v2 No changes
+ Create a wizard host
+ Plug application views into the wizard

System Requirements

Demo projects require an Odin Service Automation system with minimal set of components:

  1. If you do not need the business (commercial) management part, an Odin Service Automation management node with an endpoint host would be sufficient. When deploying an APS Sandbox, in most cases the minimal configuration lin-mn would be enough.
    • Operations Automation must have the APS module active.
    • Endpoint host must be CentOS-6 Linux with the common PHP package and APS PHP runtime installed.
  2. In some advanced projects, you will find a requirement to have also Business Automation integrated with Operations Automation. When deploying an APS Sandbox, the lin-pba configuration would be fine.
  3. During the development process, we recommend you to set Operations Automation into APS development mode.

When debugging your applications, use the following debug tools:

  1. Debug tools on the Operations Automation management node:

    • Tasks log available in the Operations Automation provider CP - Operations > Tasks
    • APS controller log - /var/log/apsc.http.log
    • Operations Automation general log - /var/log/poa.log

    To increase the log level for the APS and Operations Automation log files, use the following commands:

    # grep -q 'loglevel=trace' /usr/local/pem/etc/pleskd.props \
       || echo 'loglevel=trace' >> /usr/local/pem/etc/pleskd.props
    # service pa-agent restart
    
  2. Debug tools on the endpoint host:

    • Access log records URI and return code of REST requests - /var/log/httpd/ssl_access_log
    • Error log records debug messages of PHP scripts - /var/log/httpd/error_log

Development Environment

You probably will develop APS packages on your local computer. Assuming that you will use Windows, Linux, or Mac OS, we recommend you to install the following development tools on it.

  • To build and validate APS packages, install Development Tools relevant for your local OS.
  • To be able to use APS PHP runtime library, install Download on your computer.

Prepare the workspace on your local computer for APS projects, e.g. create the /aps/workspace/ folder. Inside the workspace, create a folder for each of the demo projects: starter, basic, suwizard, offer-mgmt, counter-mgmt, and other.