Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Challenge Objectives

  • Onboarding one more cloud storage device HPE3PAR and realizing its offerings/features to the service theater (only specified HPE3PAR apis are in scope)
  • Create db scripts and update the ApiServlet and DiscoveryServlet related classes for the in-scope HPE3PAR 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

The following APIs in these sections of the provided HPE3PAR API document is in scope:
  • Host management 
    • Creating a host
    • Add or remove a host WWN from target-driven zoning
    • Modifying a host
    • Removing a host
    • Querying all hosts
    • Querying a single host
Here are the tasks for this challenge:
  • Create DB Scripts:  for each api, you should check existing code to see if there are common DB tables. Create new tables for the new entity. Use common tables for same fields, otherwise create new tables. And you should NOT use json data type. 
  • Backend Update: 
    • You need to update the DiscoveryServlet related classes to pull the volumes and remote copies data from hpe3par apis and store into local db. 
    • You need to update ApiServlet related classes to add/update apis for the CRUD operations. There is also a wireframe document uploaded to the challenge forum, the apis will be used to for the wirefame pages. 

Note you should also create a mockup for the listed HPE3PAR apis (as well as login) so that your implementation can be properly verified. 

Final Submission Guidelines

Deliverable

  • DB Script (containing alter statements for existing db tables, and create statements for new db tables).
  • Postman file for easy testing of the new / updated apis
  • Patch file for the back-end updates
  • Update README if necessary and a VerficiationGuide md file containing the verification steps
  • Simple description about how the APIs will be used in the front-end pages (in an integration md file). 

ELIGIBLE EVENTS:

Topcoder Open 2019

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30092572