blob: a271ceef0499bdec7bde8ab597f3a0996afeb082 [file] [log] [blame]
The Allocation Manager enables tenant gateways define allocation policies and available resources. Users of gateways (typically researchers and educators) can request appropriate resources to accomplish their research objectives by providing a justification.
Notification Manager. https://issues.apache.org/jira/browse/AIRAVATA-1893
The allocation manager feauture consists of three types of users:
* User - Requests for an allocation
* Reviewer - reviews the request and makes decision for allocation
* Admin - Initiates and manages the review process
The allocation manager consists of the basic setup for the feature which will be continuously built on :
The airvata-allocation-manager is a multi-module consists of the the following modules:
* airvata-allocation-manager-server - This consists of details of the database connections and the entity classes.
* airvata-allocation-manager-stubs - This consists of the models which represent the database table entities and also the servicehandler.
The service handler (AllocationManagerServerHandler) functions interact with the database repository functions.
The stubs consists of the client files which will be used to communicate to the micro-services.
The AllocationManagerServerHandler.java file consists of all the functions which represent action by different roles involved in the feature.
The allocation manager current consists of :
* A user client and server
* An admin client and server
* An reviewer client and server.
* A notification manager.
The clients (present in stubs module) and server(present in server module) communicate using Apache Thrift with AllocationManagerServerHandler being the common part.
Presently , The reviewer and admin are performing the following functions:
* The reviewer performs can view the details of the request using the getAllocationRequest() function and thereby approve or deny.
The status is updated using updateAllocationRequestStatus().
* The admin performs can view the details of the request using the getAllocationRequest() function and the reviewers decision using getAllocationRequestStatus() and thereby approve or deny.
The status is updated using updateAllocationRequestStatus().
1. The reviewer fetches
Currently, the implementation consists of a notification- manager
The notification manager of Allocation manager performs the functions of notifying the user/admin/reviewer the status of a request.
* Send notification/email to admin, reviewers about a new process.
* Notify updates of the requests to the users.
Implemenation of the notification - manager is as follows:
The notification manager is a maven multi module project. The modules are as follows:
* Notification-Receiver - This module accepts the request from a microservice. The request sent is the Project ID.
The project id is queued using the RabbitMq message broker. The project ID is accepted and forwarded to then Notification-Authenticator Module.
* Notification-Authenticator - This module consists of the methods which connecg to the database through Apache Thrift. The NotificationDetails.java
consists of methods which calls the functions in the AllocationManagerServerHandler which connect to database functions and fetch the necessary details.
* Notification-Sender - This module contains method which is called by the Notification-Receiver. The method sends email to the specified sender.
The method reads messages to be sent to the user from a messages.properties resource file. The email server details should be stored in a
config.properties file which should be stored directly under the Notification-Receiver project.