Challenge Overview
Challenge Objectives
- Implement the list, add, edit, and remove Hosts and Volumes pages and integrate with the Hosts and Volumes 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 Hosts and Volumes 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 hosts and volumes tasks.
3. And for this storage backend of hpe3par vendor,
on the hosts and volumes task pages, it should list all the hosts/volumes (with paging), add, edit or remove a host/volume.
And for volumes, please also make sure the hpe3par volumes works correctly in the "Storage Volumes" page as well.
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