Challenge Overview

Challenge Objectives

  • Implement the list, add, edit, and remove CPG pages and integrate with the CPG apis.  

Project Background

Service Theater is a single/unified web portal that provides simplified management, monitoring, high-end analytics and reporting for the data center environments. It allows enterprises using clouds to consume NextGen offerings characterized by fit for purpose deliverables and demand-driven pay-as-you-go model, by leveraging its northbound APIs.  Service Theater brings efficiencies at multiple levels by allowing enterprises to embrace heterogeneity and its advantages

Service Theater allows the super admin to add the NextGen offerings for the datacenter from the various cloud storage vendors for the enterprise consumers.

Currently this service theater has two cloud storage from two vendors (ie. Pure storage and Nexenta) 

 

Technology Stack

  • Tomcat 6
  • Java 8
  • MySQL 5.7
  • Cloud Stack UI Framework

Code access

https://gitlab.com/standlove/sdx-hpe3par - please request access in the forum, and please use dev branch. 
 

Requirements

The app already supports cloud storage services like purestorage and Nexenta, and now we want to onboard the HPE3PAR cloud storage. 
And here is how the app works in general:
  • The app has a DiscoveryServlet, which starts a periodical job to load all the data from the cloud storage service through their exposed APIs and store into a local MySQL database.
  • The front end pages will load the data from the local database directly most times, but when the user tries to modify the data (e.g. add or delete a volume), it will first call the cloud storage service API to process the request and then update the local database. This is handled by the ApiServlet. 

And here are some general requirements:
  • Base files should not be extended, instead, new files will be created
  • LDAP for user authentication is not in the scope
  • Use Jersey for REST and hpe3par API documentation also had REST-based APIs only
  • Follow the structure of Nexenta for hpe3par
  • Jfree charts will be used for charts
  • Memory and CPU utilisation should also be considered, and it's in the document.
  • Pools, Volume, etc will be called as an entity and for each new entity to integrate we will be creating a new table and for the common entity, we may use the existing schemas or alter schemas to add new columns
  • Operation schemas will have all operation, API path for HPE3PAR, the schemas already exist for purestorage and nexenta
  • Hpe3par will have a cluster on which 2 nodes will get register, during add storage, we will have to keep that in mind ,so always 2 nodes will be created instead of 1, Cluster means if 1 node goes down, all data will be synced to node 2 automatically, like we have master-slave concept. Please check the API documentation to check the guidelines provided for this and analyse the same.
  • DB table prefixed with cb_ should not be used

And here are the general requirement for the UI:
1. Look and feel should be exactly same as it is of service theater.
2. Need to follow only the framework specific conventions to build the UI - ie. Cloudstack Web UI framework
3. All the components are found in the the service theater, like popup, wizards/forms, labels, button ..etc. kindly make use of it instead of creating something new
4. No additional CSS will be used, as only use the same as shown in service theater
5. About videos workflow - The video shows the entire workflow of some features in HPe3par, while creating the same in service theater, the workflow may change a little , but the criteria to execute the same needs to follow the rules of hpe3par

You can find the CGP workflow document and video in the forum. 
Here are some extra information about how it should be integrated into service theater. 
1. Add a new "hpe3par" vendor type, and allow user to add a storage backend for this vendor. All storage backend related operations should work for this vendor (e.g. status, delete). 
Note that you should use the hpe3par mockapi (check the docker directory) for testing. 


2. Then on its storage backend details page for hpe3par vendor, it should support pool tasks. 


3. And for this storage backend of hpe3par vendor,
on the pool task page, it should list all the pools (with paging), add, edit or remove a pool.  The pool corresponds to the Common Provision Group (CPG) in the hpe3par API document, which have been implemented in our previous challenge. 

And for jsp pages, it's encouraged to create new jsp pages for the hpe3par as the existing jsp pages are already very complicated. It's fine to have some code duplication. 

Final Submission Guidelines

Deliverable

  • Patch file
  • Update README if necessary and a VerficiationGuide md file containing the verification steps

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30093888