You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/04/28 12:53:52 UTC

[incubator-dlab] branch bucket-browser-gcp updated (2f2f49d -> 894465b)

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a change to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git.


    from 2f2f49d  Fix merge bug
     new 5dc1b13  bucket browser aws
     new 40d6e90  Merge remote-tracking branch 'origin/bucket-browser-gcp' into bucket-browser-gcp
     new 59dc52b  Merge remote-tracking branch 'origin/bucket-browser-gcp' into bucket-browser-gcp
     new e84ca63  Added permissions for bucket browser
     add 0d48523  [odahu-integration] Created Odahu template
     add 930d2d1  [odahu-integration] Created Odahu template
     add c908b19  [odahu-integration] Created Odahu template
     add ae3aaad  [odahu-integration] Added all parameters and fixed some issues
     add 1a33442  [odahu-integration] Changed input method for certificates for Odahu
     add 71fe6e9  [odahu-integration] Added support of nexus repository
     add 7d977b9  [odahu-integration] Bugfix
     add 9b6ef03  [odahu-integration] Bugfix
     add 066ebf1  [odahu-integration] Bugfix
     add 2f45bba  [odahu-integration] Added test print functions
     add 256b5dc  [odahu-integration] Added test print functions
     add 095b7f8  [odahu-integration] Added test print functions
     add 5650fb1  [odahu-integration] Bugfix
     add 36056b7  [odahu-integration] Bugfix
     add 04a5fad  [odahu-integration] Bugfix
     add be8b5c6  [odahu-integration] Bugfix
     add 7373ba7  [odahu-integration] Bugfix
     add 79cd655  [odahu-integration] Added Nexus authentication
     add 6ee5e52  [odahu-integration] Bugfixing
     add a0c2e62  [odahu-integration] Bugfixing
     add f3922f1  [odahu-integration] Bugfixing
     add a43330c  [odahu-integration] Bugfixing and added function that gets available zones
     add e89888e  [DLAB-1357]: Added page Legion deployment
     add 09efef4  [DLAB-1357]: Added legion icon to Resource page
     add c0d4694  [DLAB-1357]: Added condition for empty clusters list
     add 13050f5  [DLAB-1357]: Added legion icon to Resource page
     add fbcc5f2  [DLAB-1451]: Added url to application facade
     add 34fc749  Added create odahu cluster feature
     add eb1bf66  Merge branch 'DLAB-1357' of github.com:apache/incubator-dlab into DLAB-1357
     add f2c3da1  [DLAB-1357]: Started to add connection with backend
     add 7914e54  Added edge_user_name parameter
     add a6544f3  Merge remote-tracking branch 'origin/DLAB-1357' into DLAB-1357
     add b7d6ed5  [DLAB-1457]: Added create and get odahu request
     add af2b549  Updated callback functionality
     add b9a993b  Merge remote-tracking branch 'origin/DLAB-1357' into DLAB-1357
     add ac3285d  [DLAB-1357]: Small fixes
     add 248cb1c  [DLAB-1357]: Odahu grid style fixed
     add acdf862  Added start/stop/terminate features
     add 79a5018  Merge branch 'DLAB-1357' of github.com:apache/incubator-dlab into DLAB-1357
     add 722ff6e  [DLAB-1357]: Added stop/start action for ODAHU
     add e415821  [DLAB-1357]: Fixed terminate action, added validation
     add 6833966  Small fix
     add 2178ea1  Default Changelist
     add 20b1df1  Added confirmation dialog for clusters action
     add 505c9ea  Hided odahu for for AWS, Azure
     add 231f2cc  Default Changelist
     add f509cda  Changed HTTP method from DELETE to POST
     add ab979e2  Merge remote-tracking branch 'origin/DLAB-1357' into DLAB-1357
     add 33de467  Secured APIs
     add 41f3742  Stop/terminate odahu iun case of stopping/terminating project/endpoint
     add 15b134a  Disable action if cluster terminated
     add ab94068  Merge remote-tracking branch 'origin/DLAB-1357' into DLAB-1357
     add 0ee7696  Merge remote-tracking branch 'origin/DLAB-1357' into DLAB-1357
     add 047ce4d  Added Odahu on 'List of Resources' and 'Environment Management' pages
     add c01ee33  small fixes
     add 16e0e1a  Added tags functionality for Odahu
     add 0f9a92f  Fixed bug with displaying on 'List of Resources' page
     add 0156872  Added Odahu to resources.
     add 7c211ea  Fixed error message position
     add c625c6b  Merge branch 'DLAB-1357' into odahu-integration
     add f6e8de6  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 66807b6  [odahu-integration] Bugfixing
     add 875c5e0  [odahu-integration] Bugfixing
     add c31fa9d  Increased warmupPollTimeout
     add dc6f0c5  Merge branch 'develop' into odahu-integration
     add fc6ffdc  Added some changes after merge
     add 0810373  Merge pull request #621 from apache/DLAB-625
     add b0e5737  [odahu-integration] Temporarily removed preparation of odahu image
     add 9f01030  [odahu-integration] Fixed link to jupyterlab image
     add 032c5ca  Small fixes
     add a4d320a  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add c7be71b  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add df99320  [odahu-integration] Fixed scripts for Odahu deployment
     add 5ed6742  Fixed billing for Azure
     add 1619ae0  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 567aa0d  Fixed billing on list of resources
     add b12bfe2  Fixed style bugs, added status to odahu-detail dialog
     add 9a5472c  Small fix
     add 2f35122  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 4f25188  [odahu-integration] Added necessary parameters in result.json
     add 1ca89ad  [odahu-integration] Changed exit code for investigation purpose
     add 006e244  [DLAB-1614] Convey Grafana credentials to FE
     add e1a15ea  [DLAB-1616]: Added grafana credential
     add 8017a10  [DLAB-1614] Convey Grafana credentials to DevOps
     add 469484a  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 4e22de2  [DLAB-384]: Prevented terminate Odahu cluster in stopped status
     add f41e1a5  [DLAB-1619] Prevent terminate Odahu cluster in stopped status
     add 00f13b4  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 38eaa52  [odahu-integration] Removed system exit for investigation purpose
     add 8688c25  [DLAB-1620]: Updated Odahu termination if cluster stopped
     add 6c24682  Small fix
     add 5f235ff  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 0d19157  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 6235cef  [odahu-integration] Removed nginx restart command for investigation purpose
     add d5cfe64  [odahu-integration] Added gcr authentication and fixed some bugs
     add c187ffd  [odahu-integration]: added bucket_tags
     add 08a4ec1  Merge branch 'odahu-integration' of https://github.com/apache/incubator-dlab into odahu-integration
     add b931d7e  Added ssh key parameter for start/stop/terminate actions
     add 383a6b1  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add c754988  [odahu-integration] Bugfix
     add db7ad1d  [odahu-integration] Bugfix
     add 33f86a4  [odahu-integration] Bugfix
     add 4b6a7ca  [odahu-integration] Bugfix
     add 4ca3b25  [odahu-integration] Bugfix
     add 58d11dd  [odahu-integration] Bugfix
     add f0b6218  [odahu-integration] Bugfix
     add cb8fd16  [odahu-integration] Bugfix
     add 0854b95  [odahu-integration] Bugfix
     add 896210e  [odahu-integration] Bugfix
     add 0b38369  [odahu-integration] Added print functions for testing purpose
     add e64dc74  [odahu-integration] Changed odahu deploy image
     add 25a5418  [odahu-integration] Bugfix
     add 74f8966  [odahu-integration] Bugfix
     add 1497a08  [odahu-integration] Bugfix
     add 707516e  [odahu-integration]: fix create state bucket
     add 8e17faf  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 2fe22d5  [odahu-integration] Temporary fix for resume action
     add 329e178  [odahu-integration] Added configuration of redirectUris for keycloak
     add 12262fc  [odahu-integration] Added configuration of redirectUris for keycloak
     add 4e73a98  [odahu-integration] Bugfix
     add 567ee7e  [DLAB-1651]:  Added possibility to create Odahu cluster in case of cluster termination/fail in the same project
     add 408d722  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 3c2f0d0  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add 92fc0ac  [odahu-integration] Fixed domain issue and cluster name
     add 8176f1f  [odahu-integration] Bugfix
     add 4ebe963  [DLAB-1678] Ignore image_url field in response file
     add 2b1ae93  Merge remote-tracking branch 'origin/odahu-integration' into odahu-integration
     add ef74e4f  [odahu-integration] Added scripts for odahu deployment on aws
     add 314a202  [odahu-integration] Bugfix
     add 0effadb  [odahu-integration] Bugfix
     add 3ea7505  [odahu-integration] Bugfix
     add c4d95a8  [odahu-integration] Bugfix
     add 727fe42  [odahu-integration] Created shell script to omit tty error
     add d8484d9  [odahu-integration] Edited GCR login process
     add 3083819  [odahu-integration] Bugfix
     add 6e6a7f7  [odahu-integration] Bugfix
     add bb66347  [odahu-integration] Added 'cat' action for testing purpose
     add 6a1b48e  [odahu-integration] Bugfixing
     add 89982e2  [odahu-integration] Bugfixing
     add 8116544  [odahu-integration] Bugfixing
     add e24b1e3  [odahu-integration] Bugfixing
     add d84f661  [odahu-integration] Bugfixing
     add c86e0e9  [odahu-integration] Bugfixing
     add 7488e82  Merge branch 'odahu-integration' into develop
     add 4d86331  Revert merge
     add 72a2f1c  [DLAB-1571] Convey billing for remote gcp endpoint
     add 1c2288e  Added some changes
     add cf65de2  Added billing filter functionality
     add 1a24f7e  Added some changes
     add b687782  Added shape and status filter
     add 66cb878  Added metadata to billing report
     add a2bd9fa  Refactoring
     add 06dd176  Refactoring
     add 8aa8ec3  Added download report feature
     add 3713da8  Refactoring
     add d383c85  Merge branch 'develop' into DLAB-1571
     add 375d4b5  Added Get API by dlabIds
     add dcab9cb  [DLAB-1566]: Changed billing model for remote endpoints
     add 525c476  Added detailed billing feature
     add bf010b4  Code refactoring
     add becd827  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 581c5a2  Code refactoring
     add d97da87  Code refactoring
     add 099d952  [DLAB-1565]: Convey billing for remote endpoints
     add aa5a8ca  [DLAB-1565]: Convey billing for remote endpoints - variables for GCP added
     add 002a3e0  [DLAB-1565]: Convey billing for remote endpoints - variables for GCP  main.tf added
     add 762b99f  [DLAB-1565]: Convey billing for remote endpoints - put billing.yml fixed
     add 76561bd  [DLAB-1565]: Convey billing for remote endpoints - billing.yml added
     add fee0e82  [DLAB-1565]: Convey billing for remote endpoints - sed parameters in billing.yml fixed
     add a457dc5  [DLAB-1565]: Convey billing for remote endpoints - billing.yml according to cloud provider fixed
     add e2816f8  [DLAB-1565]: Convey billing for remote endpoints - billing.yml according to cloud provider fixed again
     add b1019df  [DLAB-1565]: Convey billing for remote endpoints - billing.yml according to cloud provider fixed again
     add c40ec2e  [DLAB-1565]: Convey billing for remote endpoints - [GCP] implemented
     add 025d788  [DLAB-1565]: Convey billing for remote endpoints - [GCP] fixed
     add 3018eb8  [DLAB-1565]: Convey billing for remote endpoints - [GCP] fixed
     add fa19a8a  [DLAB-1565]: Convey billing for remote endpoints - [GCP] fixed
     add a5ba7b9  [DLAB-1565]: Convey billing for remote endpoints - [GCP] fixed
     add f888554  Merge pull request #638 from apache/DLAB-1565
     add f0d7635  Changed port to 8088
     add 4b791b9  [DLAB-643] Conveyed billing for remote aws endpoint
     add 101fa77  Refactoring
     add 9b09d6a  Fixed search by dlabId
     add 35d053a  Refactoring
     add f74a6be  Changed billing for remote endpoint on UI
     add 3d9e518  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 667524f  Conveyed billing for Azure remote endpoint
     add 27bd697  Changed config file
     add 6579e18  [DLAB-1565]: Convey billing for remote endpoints - [GCP] billing added to supervisor
     add b7e6253  [DLAB-1565]: Convey billing for remote endpoints - [GCP] billing added to supervisor
     add f3a312c  [DLAB-1565]: Convey billing for remote endpoints - [GCP] billing.yml and variables fixed
     add 2490ac7  [DLAB-1565]: Convey billing for remote endpoints - [GCP] billing.yml and variables fixed
     add 80075f6  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint added
     add 73205b8  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint fixed
     add c0d8b04  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint fixed
     add f34781e  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint fixed
     add b453d50  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint fixed
     add da81d30  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint fixed
     add 4b9669d  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add 1954560  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add fb3dd9d  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add d015791  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add d5a00cf  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add a3bd962  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add eaeb086  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed
     add 3603ce6  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed, pymongo added
     add c154402  [DLAB-1565]: Convey billing for remote endpoints - Mongo on endpoint installation fixed, pymongo added
     add 96b0510  [DLAB-1565]: Convey billing for remote endpoints - python libs added
     add 2ae11d2  [DLAB-1565]: Convey billing for remote endpoints - [GCP] final fixes
     add 8bb7e82  Merge pull request #657 from apache/DLAB-1565
     add 5dfb76d  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 92a2288  Small changes in config file
     add 3ba0487  Added more changes to Azure remote billing
     add 193a0c1  Fixed billing issues on self-service side
     add 2aad4d7  Added changes to Azure remote billing
     add e726ab4  Fixed small bugs
     add 0612a4a  Added changes for azure remote billing
     add 4d17eb7  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add b270d01  [DLAB-1565]: [AWS] - billing on remote endpoint implementation
     add dc6907b  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 1bad0bc  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 6bf1b74  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 8afeb3c  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 7eae24a  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add fb5deb6  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 5f22f61  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add fd084c6  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 57b8b64  [DLAB-1565]: [AWS] - billing on remote endpoint fixes
     add 67c5d7c  [DLAB-1565]: [Azure] - billing on remote endpoint
     add 64f24fb  [DLAB-1565]: [Azure] - billing on remote endpoint fixes
     add d6efc09  [DLAB-1565]: [Azure] - billing on remote endpoint fixes
     add 9ce7393  [DLAB-1565]: [Azure] - Billing on remote endpoint fixed
     add cb63850  Merge pull request #672 from apache/DLAB-1565-aws
     add d43f177  [DLAB-1571]: [AWS] - Billing parameters fixed; [AWS,GCP,Azure] - port 8088 opened
     add eddfe93  [DLAB-1571]: [AWS] - Billing parameters fixed
     add 01c7272  [DLAB-1565]: [GCP] - Billing yml cron fixed
     add 2c2b713  [DLAB-1565]: [GCP] - billing on local endpoint updated
     add cce7bc6  [DLAB-1565]: [GCP] - billing on local endpoint fixed
     add 8f4f526  [DLAB-1565]: [GCP] - billing on local endpoint fixed
     add 010ebe1  [DLAB-1565]: [GCP] - billing on local endpoint fixed
     add 79e094b  [DLAB-1565]: [GCP] - billing on local endpoint fixed
     add bbe2c5e  [DLAB-1565]: [Azure] - billing on local endpoint updated
     add b6386fd  [DLAB-1565]: [Aws] - billing on local endpoint updated
     add 131823d  [DLAB-1565]: [Aws] - billing on local endpoint updated
     add 91224cc  [DLAB-1565]: billing on local endpoint fixed
     add 8feb625  Merge branch 'develop' into DLAB-1571
     add 2566f24  Fixed merge conflicts
     add 280922b  [DLAB-1649]: Added possibility to sort by project/user/charges
     add bf314b8  Fixed issue with displaying list of resources
     add a12ef67  Merge pull request #676 from apache/DLAB-1565-aws
     add eae5b35  Remote billing
     add 5ebb9c8  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 4b7abeb  Refactoring local billing
     add 475a95f  Refactoring billing
     add 740dbbe  Changed cron
     add bd944de  Remote billing
     add 6f616a6  Merge pull request #678 from apache/DLAB-1565-aws
     add c7c5acf  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 3fb67c3  Remote billing
     add 8151f52  Remote billing
     add 8232671  Remote billing
     add 435d3a1  Remote billing
     add b9dc738  [DLAB-1590] Admin per project
     add e7ab0d7  Merge branch 'DLAB-1590' of github.com:apache/incubator-dlab into DLAB-1590
     add 3befbd18 Deleted requests which was not used
     add 555a485  Admin per project
     add e4bcf7c  Admin per project
     add 8fed687  Admin per project
     add ca73d94  Admin per project
     add 9729f01  Admin per project
     add d753b18  [DLAB-1591]: Add parameters for admin per project
     add a6aa0d2  Merge remote-tracking branch 'origin/DLAB-1590' into DLAB-1590
     add bdaf53b  Admin per project refactoring
     add e266731  Admin per project refactoring
     add b190bca  Merge branch 'DLAB-1590' into DLAB-1571
     add d96075e  Admin per project
     add d797b19  [DLAB-1591]: Update roles for admin per project
     add bde44ac  [DLAB-384]: Add category names for roles
     add 1b229fb  Remote billing
     add b557d00  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 760f769  Remote billing
     add 95911ca  Remote billing
     add 09ffe7c  Admin per project
     add 41480c4  Added standard image format
     add a424388  Added custom image format
     add b6b4dfb  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add ad23468  Merge branch 'DLAB-1571' into DLAB-1565-aws
     add 1d00ec5  Merge pull request #689 from apache/DLAB-1565-aws
     add ed3a741  Merge branch 'develop' into DLAB-1571
     add c1b44b3  Remote billing
     add 665df82  Update sg.tf
     add ce458a1  [DLAB-1491]: Fix page refresh
     add 9959aab  [DLAB-1491, 1682]: Fixed administrative page appear for user who has not permission,Fixed billing header
     add e996afc  [DLAB-1686] Fixed issue with key sensitive of group
     add e55a045  [DLAB-1683] Fixed issue with list of resources for user
     add 04d8f93  [DLAB-1685]: Local billing test
     add 774e243  [DLAB-1685]: Local billing fixed
     add 1198157  [DLAB-1685]: [AWS] Local billing fixed
     add 41c26c1  Merge pull request #690 from apache/DLAB-1685
     add 9d71130  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 4f0489e  Changed scale
     add 23bf755  Increased warmupPollTimeout
     add 23d4388  Remote billing
     add 501d147  [DLAB-1684, 1690]: Fixed list of resources for user and style fo arrows on roles page
     add 6b955d3  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 329d6a8  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 0a8d98d  Merge branch 'develop' into DLAB-1571
     add 7572611  Remote billing
     add 27baebd  [DLAB-1696, DLAB-1696]: Fixed fixed headers in billing,resourses and menegment page. Fixed billing in resourses
     add 7fd2b28  [DLAB-1571]: GCP ssn deployment fixed
     add fbb1778  [DLAB-1571]: GCP ssn deployment fixed
     add 78f0738  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 8ab22ae  Fixed resource stop and terminate from list of resourse
     add 0d8ea60  [DLAB-1694] Fixed quotas issues
     add 3ca46a9  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add f95320b  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 2f467b7  Fixed project terminating
     add 2fb381e  Revert "[DLAB-1694] Fixed quotas issues"
     add 6eab336  Revert "[DLAB-1694] Fixed quotas issues"
     add 5d15822  Remote billing gcp
     add f4a47a5  Remote billing gcp
     add 754252d  billing
     add bb371c6  fixed filters
     add 6e51093  billing azure
     add 61df0d8  billing self-service
     add 7f26141  fixed exception output
     add c43b683  billing self-service
     add 6e309d0  billing aws
     add 965ba14  set scale
     add cb8a112  update logs
     add 8bf88c3  billing aws
     add ce7d7ae  Fixed billing on resources page
     add ca644c3  Fixed billing on resources page
     add ab0dea3  remote billing
     add da85786  Updated details billing on resources page
     add 083773e  billing rest service
     add 8c28e7a  remote billing
     add bc07cbc  updated config
     add 71919dc  [DLAB-1700] Fixed issue with admin per project
     add 64a59ef  refactoring
     add c4a379d  [DLAB-1701]: Project_admin should not be able to remove administrative operation for all Dlab from Super_admin
     add 0852d2c  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add fc9e515  fixed billing issues
     add 2ef1b7d  changed billing scheduler
     add 623a31a  fixed billing issues
     add 16fd6d1  fixed billing issues
     add eaab833  [DLAB-1571]: Azure ssn deployment fixed
     add f495fcb  changed schedulers
     add 5721ffa  [DLAB-1711]: [GCP] Bucket tags with key 'name' added
     add 79b0cf3  Merge pull request #693 from apache/DLAB-1711
     add e3f593a  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 236000a  [DLAB-1718] fixed bugs with filters
     add c49406e  [DLAB-1719] Fixed issues with billing export
     add 326c273  [DLAB-1571]: Azure ssn configure fixed
     add 1ec61d4  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 89e6df4  send full list of roles
     add 70b9713  Allow to set project quota without total, fixed double value in billing filters
     add 11aebbe  [DLAB-1710] added extra values for image record
     add 2708765  added shape for dataengine service
     add 27d49d7  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 2183f70  Fixed sorting on billing page, upd parsing master and slave, removed no projects message for superadmin
     add 04008ef  [DLAB-1717] fixed filter for shape
     add 4cf9c06  [DLAB-1725, DLAB-1726] Fixed issues with billing export
     add e46ea8b  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 334d00e  [DLAB-1700] Do not convey to Project_Admin groups of Super_Admin and Project_Admin
     add 922a73f  fixed issues with ami
     add 6a7c2bf  [DLAB-1732]: [Azure] Billing on local endpoint fixed
     add 9a1f5a0  Merge pull request #694 from apache/DLAB-1732
     add 2b6e97b  [DLAB-1571]: Azure ssn deployment fixed
     add 9fa0e9e  [DLAB-1731]: Fixed billing report
     add ff3b701  [DLAB-1739, 1740]: Fixed sorting and filtering on billing report
     add a0c9cfd  [DLAB-1571]: AWS local billing fixed
     add 23b07c0  [DLAB-1571]: AWS local billing fixed
     add 78824a5  Merge remote-tracking branch 'origin/DLAB-1571' into DLAB-1571
     add 7b69f62  Fixed user deleted from roles
     add 378e500  [DLAB-1571]: [AWS] ssn deployment fixed
     add 4c8b468  [DLAB-1571]: [AWS] mongo password setting for billing fixed
     add b34898c  [DLAB-1571]: [AWS] billing fixed
     add 838bcd2  Merge branch 'DLAB-1571' into develop
     add d3acae2  [DLAB-1729]: [Azure] Name for 'Jupyter with TensorFlow 1.8.0' is alike for all cloud [DLAB-1730]: Name of template 'Deep Learning 2.3' updated
     add 3fff446  Merge pull request #699 from apache/DLAB-1730
     add de86cd4  [DLAB-1755]: It is forbidden to upload more than 50 MB into Bucket resolved
     add 6210ba6  Merge pull request #703 from apache/DLAB-1755
     add c01b775  [DLAB-1680]: added readme from branch 2.1 for comparison
     add 64f656a  [DLAB-1680]: added readme from branch 2.1rc2 for comparison
     add 107ba32  [DLAB-1680]: added readme from branch 2.2rc2 for comparison
     add 7142b60  [DLAB-1680]: removed unnecessary READMEs
     add d155749  [DLAB-1680]: removed paragraph about edge recreation, made some minor changes, made text more readable
     add 1efec16  [DLAB-1680] Updated documentation
     add 3da7c94  [DLAB-1680] Updated documentation(2)
     add aa169d0  Merge pull request #702 from apache/DLAB-1680
     add 915a149  [DLAB-1698]: Updated user guide according to release 2.3 (#692)
     new dcf66f1  Merge branch 'develop' into bucket-browser-gcp
     new 894465b  Added permission for bucket browser

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.md                                          | 503 +++++++++++++--------
 USER_GUIDE.md                                      | 476 ++++++++++---------
 doc/billing_filter.png                             | Bin 18705 -> 41447 bytes
 doc/billing_page.png                               | Bin 18577 -> 264721 bytes
 doc/bin_icon.png                                   | Bin 0 -> 4379 bytes
 doc/computational_scheduler.png                    | Bin 33900 -> 35577 bytes
 doc/computational_scheduler_create.png             | Bin 3893 -> 3277 bytes
 doc/connect_endpoint.png                           | Bin 0 -> 202030 bytes
 doc/create_notebook_from_ami.png                   | Bin 27066 -> 35594 bytes
 doc/dataproc_create.png                            | Bin 0 -> 129369 bytes
 doc/delete_btn.png                                 | Bin 0 -> 4155 bytes
 doc/delete_group.png                               | Bin 34704 -> 45914 bytes
 doc/dlab_aws.png                                   | Bin 0 -> 96693 bytes
 doc/dlab_azure.png                                 | Bin 0 -> 94589 bytes
 doc/dlab_gcp.png                                   | Bin 0 -> 108227 bytes
 doc/emr_creating.png                               | Bin 37126 -> 43196 bytes
 doc/emr_terminate_confirm.png                      | Bin 1760535 -> 14257 bytes
 doc/endpoint_list.png                              | Bin 0 -> 181738 bytes
 doc/environment_management.png                     | Bin 66404 -> 90301 bytes
 doc/git_creds_window.png                           | Bin 7190623 -> 25654 bytes
 doc/git_creds_window2.png                          | Bin 5946035 -> 26511 bytes
 doc/main_page.png                                  | Bin 4746590 -> 35533 bytes
 doc/main_page2.png                                 | Bin 8157879 -> 49611 bytes
 doc/main_page3.png                                 | Bin 8157879 -> 48735 bytes
 doc/main_page_filter.png                           | Bin 62679 -> 79991 bytes
 doc/manage_env_confirm.png                         | Bin 10464 -> 14049 bytes
 doc/manage_environment.png                         | Bin 21334 -> 18263 bytes
 doc/manage_role.png                                | Bin 108456 -> 28068 bytes
 doc/managemanage_resource_actions.png              | Bin 4997 -> 4976 bytes
 doc/notebook_create.png                            | Bin 41323 -> 33033 bytes
 doc/notebook_info.png                              | Bin 157517 -> 42371 bytes
 doc/notebook_libs_status.png                       | Bin 50720 -> 59233 bytes
 doc/notebook_scheduler.png                         | Bin 36928 -> 39368 bytes
 doc/notebook_terminated.png                        | Bin 38113 -> 56038 bytes
 doc/notebook_terminating.png                       | Bin 39506 -> 56292 bytes
 doc/pen_icon.png                                   | Bin 0 -> 4171 bytes
 doc/project_menu.png                               | Bin 0 -> 86667 bytes
 doc/project_view.png                               | Bin 0 -> 234276 bytes
 doc/roles.png                                      | Bin 0 -> 198223 bytes
 doc/scheduler_by_inactivity.png                    | Bin 0 -> 22076 bytes
 doc/spark_stop_confirm.png                         | Bin 10920 -> 12767 bytes
 doc/upload_or_generate_user_key.png                | Bin 17078 -> 37302 bytes
 .../files/aws/deeplearning_description.json        |   4 +-
 .../files/azure/deeplearning_description.json      |   4 +-
 .../general/files/azure/tensor_description.json    |   4 +-
 .../files/gcp/deeplearning_description.json        |   4 +-
 .../src/general/lib/os/debian/ssn_lib.py           |  29 +-
 .../src/general/scripts/aws/ssn_configure.py       |  10 +-
 .../src/general/scripts/azure/ssn_configure.py     |  30 +-
 .../src/general/scripts/gcp/project_prepare.py     |   6 +-
 .../src/general/scripts/gcp/ssn_configure.py       |  11 +-
 .../src/ssn/scripts/configure_billing.py           | 125 +++--
 .../src/ssn/scripts/configure_ui.py                |   8 +-
 .../src/ssn/templates/ssn.yml                      |   7 +-
 .../terraform/aws/endpoint/main/network.tf         |   7 +
 .../terraform/aws/endpoint/main/variables.tf       |  22 +-
 .../terraform/azure/endpoint/main/sg.tf            |  14 +
 .../terraform/azure/endpoint/main/variables.tf     |  20 +-
 .../terraform/bin/deploy/billing_app_aws.yml       |  34 ++
 .../terraform/bin/deploy/billing_aws.yml           |  35 +-
 .../terraform/bin/deploy/billing_azure.yml         |  59 +++
 .../terraform/bin/deploy/billing_gcp.yml           |  38 ++
 .../terraform/bin/deploy/endpoint_fab.py           | 339 +++++++++++++-
 .../bin/deploy/mongo_files}/configure_mongo.py     |  15 +-
 .../bin/deploy/mongo_files}/gcp/mongo_roles.json   |   0
 .../deploy/mongo_files}/mongod.service_template    |   0
 .../terraform/bin/deploy/provisioning.yml          |   7 +-
 .../terraform/bin/deploy/renew_certificates.sh     |   2 +-
 .../terraform/bin/deploy/supervisor_svc.conf       |  10 +
 infrastructure-provisioning/terraform/bin/dlab.py  |  22 +
 .../terraform/gcp/endpoint/main/network.tf         |   2 +-
 .../terraform/gcp/endpoint/main/variables.tf       |   8 +
 .../terraform/gcp/endpoint/provisioning.yml        |   2 +-
 pom.xml                                            |   2 +-
 services/billing-aws/billing.yml                   |  37 +-
 services/billing-aws/pom.xml                       | 128 +++---
 .../java/com/epam/dlab/BillingAwsApplication.java} |  13 +-
 .../main/java/com/epam/dlab/BillingScheduler.java  | 267 -----------
 .../main/java/com/epam/dlab}/BillingService.java   |   9 +-
 .../java/com/epam/dlab/BillingServiceImpl.java     | 128 ++++++
 .../src/main/java/com/epam/dlab/BillingTool.java   |  20 +-
 .../src/main/java/com/epam/dlab/Help.java          |  19 +-
 .../java/com/epam/dlab/conf/SecurityConfig.java    |  66 +++
 .../configuration/BillingToolConfiguration.java    |  30 --
 .../dlab/configuration/SchedulerConfiguration.java | 213 ---------
 .../epam/dlab/controller/BillingController.java}   |  31 +-
 .../main/java/com/epam/dlab/core/AdapterBase.java  |   4 +-
 .../java/com/epam/dlab/core/parser/ParserBase.java |  22 +-
 .../com/epam/dlab/core/parser/ParserByLine.java    |  11 +-
 .../java/com/epam/dlab/module/AdapterConsole.java  |   4 +-
 .../java/com/epam/dlab/module/AdapterFile.java     |  23 +-
 .../com/epam/dlab/module/aws/AdapterS3File.java    |   3 +-
 .../java/com/epam/dlab/mongo/AdapterMongoDb.java   |  63 ++-
 .../com/epam/dlab/mongo/DlabResourceTypeDAO.java   | 297 +-----------
 .../java/com/epam/dlab/mongo/ResourceItem.java     | 152 -------
 .../java/com/epam/dlab/mongo/ResourceItemList.java | 136 ------
 .../billing-aws/src/main/resources/application.yml |  34 ++
 .../com/epam/dlab/mongo/ResourceItemListTest.java  |  54 ---
 services/billing-azure/billing.yml                 | 111 +++--
 services/billing-azure/pom.xml                     | 109 +++--
 .../azure/AzureBillableResourcesService.java       | 315 -------------
 .../billing/azure/AzureBillingDetailsService.java  | 194 --------
 .../azure/AzureInvoiceCalculationService.java      |  60 +--
 .../billing/azure/BillingAzureApplication.java}    |   8 +-
 .../dlab/billing/azure/BillingSchedulerAzure.java  | 314 -------------
 .../billing/azure/CalculateBillingService.java}    |  12 +-
 .../billing/azure/CalculateBillingServiceImpl.java | 245 ++++++++++
 .../azure/config/BillingConfigurationAzure.java    |   6 +-
 .../dlab/billing/azure/config/SecurityConfig.java  |  66 +++
 .../azure/controller/BillingController.java}       |  31 +-
 .../azure/model/AzureDailyResourceInvoice.java     |  34 +-
 .../src/main/resources/application.yml             |  59 +++
 services/billing-gcp/billing.yml                   |  34 +-
 services/billing-gcp/pom.xml                       |  30 ++
 .../dlab/billing/gcp/BillingGcpApplication.java    |   2 -
 .../gcp/conf/BillingApplicationConfiguration.java  |   2 -
 .../epam/dlab/billing/gcp/conf/SecurityConfig.java |  66 +++
 .../BillingController.java}                        |  32 +-
 .../com/epam/dlab/billing/gcp/dao/BillingDAO.java  |   5 +-
 .../billing/gcp/dao/impl/BigQueryBillingDAO.java   |  44 +-
 .../dlab/billing/gcp/documents/UserInstance.java   |  55 ---
 .../dlab/billing/gcp/model/GcpBillingData.java     |  10 +-
 .../billing/gcp/repository/BillingRepository.java  |   4 +-
 .../billing/gcp/repository/ProjectRepository.java  |  26 --
 .../gcp/repository/UserInstanceRepository.java     |  30 --
 .../dlab/billing/gcp/service/BillingService.java   |   7 +-
 .../billing/gcp/service/BillingServiceImpl.java    | 186 --------
 .../impl/BillingServiceImpl.java}                  |  34 +-
 .../epam/dlab/billing/gcp/util/BillingUtils.java   |  95 ----
 .../billing-gcp/src/main/resources/application.yml |  26 +-
 .../gcp/service/BillingServiceImplTest.java        |  87 ----
 .../com/epam/dlab/billing/DlabResourceType.java    |  86 ----
 .../com/epam/dlab/dto/billing/BillingData.java}    |  23 +-
 .../epam/dlab/dto/billing/BillingResourceType.java |  12 +-
 .../computational/UserComputationalResource.java   |   8 +-
 .../java/com/epam/dlab/ServiceConfiguration.java   |   9 +
 .../com/epam/dlab/constants/ServiceConsts.java     |   1 +
 services/provisioning-service/pom.xml              |  16 +
 .../dlab/backendapi/modules/ProductionModule.java  |  29 +-
 .../backendapi/modules/ProvisioningDevModule.java  |   9 +-
 .../dlab/backendapi/resources/BucketResource.java  |   8 -
 .../BucketServiceAwsImpl.java}                     |  78 ++--
 services/self-service/pom.xml                      |   6 +
 services/self-service/self-service.yml             |   9 +-
 .../dlab/backendapi/annotation/ProjectAdmin.java   |   7 +-
 .../com/epam/dlab/backendapi/annotation/User.java  |   7 +-
 .../epam/dlab/backendapi/dao/BaseBillingDAO.java   | 441 +++++-------------
 .../java/com/epam/dlab/backendapi/dao/BaseDAO.java |  64 ++-
 .../com/epam/dlab/backendapi/dao/BillingDAO.java   |  15 +-
 .../java/com/epam/dlab/backendapi/dao/EnvDAO.java  |  19 -
 .../epam/dlab/backendapi/dao/ExploratoryDAO.java   |  19 +
 .../com/epam/dlab/backendapi/dao/ProjectDAO.java   |   2 -
 .../epam/dlab/backendapi/dao/ProjectDAOImpl.java   |  11 +-
 .../com/epam/dlab/backendapi/dao/UserGroupDao.java |   2 -
 .../epam/dlab/backendapi/dao/UserGroupDaoImpl.java |   5 -
 .../com/epam/dlab/backendapi/dao/UserRoleDao.java  |   2 -
 .../epam/dlab/backendapi/dao/UserRoleDaoImpl.java  |   5 -
 .../dlab/backendapi/dao/aws/AwsBillingDAO.java     |  74 ---
 .../dlab/backendapi/dao/azure/AzureBillingDAO.java | 121 -----
 .../dlab/backendapi/dao/gcp/GcpBillingDao.java     |  65 ---
 .../com/epam/dlab/backendapi/domain/BaseShape.java |  23 -
 .../dlab/backendapi/domain/BillingReport.java}     |  30 +-
 .../dlab/backendapi/domain/BillingReportLine.java} |  52 +--
 .../backendapi/domain/DataEngineServiceShape.java  |  37 --
 .../dlab/backendapi/domain/DataEngineShape.java    |  34 --
 .../epam/dlab/backendapi/domain/EndpointShape.java |  14 -
 .../dlab/backendapi/domain/ExploratoryShape.java   |  14 -
 .../dlab/backendapi/domain/ProjectManagingDTO.java |  16 -
 .../com/epam/dlab/backendapi/domain/SsnShape.java  |  14 -
 .../interceptor/ProjectAdminInterceptor.java       |  74 +++
 .../backendapi/modules/AwsSelfServiceModule.java   |  83 ----
 .../backendapi/modules/AzureSelfServiceModule.java |  81 ----
 .../backendapi/modules/CloudProviderModule.java    |  34 +-
 .../epam/dlab/backendapi/modules/DevModule.java    |  30 +-
 .../backendapi/modules/GcpSelfServiceModule.java   |  84 ----
 .../dlab/backendapi/modules/ModuleFactory.java     |  13 -
 .../dlab/backendapi/modules/ProductionModule.java  |  32 +-
 .../dlab/backendapi/resources/BillingResource.java |  12 +-
 .../dlab/backendapi/resources/BucketResource.java  |   5 +
 .../backendapi/resources/EnvironmentResource.java  |  20 +-
 .../resources/InfrastructureInfoResource.java      |  13 +-
 .../dlab/backendapi/resources/ProjectResource.java |  52 +--
 .../backendapi/resources/UserGroupResource.java    |  67 +--
 .../backendapi/resources/UserRoleResource.java     |   6 +-
 .../backendapi/resources/dto/BillingFilter.java    |  37 +-
 .../resources/dto/HealthStatusPageDTO.java         | 138 +-----
 .../backendapi/resources/dto/ImageInfoRecord.java  |   1 +
 .../resources/dto/ProjectInfrastructureInfo.java   |   3 +
 .../dlab/backendapi/resources/dto/UserRoleDto.java |   1 +
 .../com/epam/dlab/backendapi/roles/UserRole.java   |  13 +-
 .../com/epam/dlab/backendapi/roles/UserRoles.java  |  62 ++-
 .../BillingScheduler.java}                         |  36 +-
 .../dlab/backendapi/service/BillingService.java    |  77 +---
 .../backendapi/service/EnvironmentService.java     |   8 +-
 .../backendapi/service/ExploratoryService.java     |   8 +
 .../service/InfrastructureInfoService.java         |   4 +-
 .../dlab/backendapi/service/ProjectService.java    |  13 +-
 .../epam/dlab/backendapi/service/ShapeFormat.java  |   5 -
 .../dlab/backendapi/service/UserGroupService.java  |  12 +-
 .../backendapi/service/UserRoleServiceImpl.java    |   1 +
 .../backendapi/service/aws/AwsBillingService.java  | 110 -----
 .../service/azure/AzureBillingService.java         | 116 -----
 .../backendapi/service/gcp/GcpBillingService.java  | 104 -----
 .../service/impl/BillingServiceImpl.java           | 338 ++++++++++++++
 .../service/impl/EndpointServiceImpl.java          |   2 +-
 .../service/impl/EnvironmentServiceImpl.java       |  81 ++--
 .../service/impl/ExploratoryServiceImpl.java       |  27 +-
 .../impl/InfrastructureInfoServiceImpl.java        | 130 ++++--
 .../service/impl/ProjectServiceImpl.java           |  65 +--
 .../service/impl/UserGroupServiceImpl.java         |  97 ++--
 .../epam/dlab/backendapi/util/BillingUtils.java    | 228 ++++++++++
 .../src/main/resources/mongo/aws/mongo_roles.json  |  68 +++
 .../main/resources/mongo/azure/mongo_roles.json    |  68 +++
 .../src/main/resources/mongo/gcp/mongo_roles.json  |  68 +++
 .../manage-environment-dilog.component.ts          |   2 +-
 .../management-grid/management-grid.component.html |  30 +-
 .../management-grid/management-grid.component.ts   |   4 +-
 .../management/management.component.ts             |   3 +-
 .../administration/management/management.model.ts  |   1 +
 .../administration/project/project.component.html  |   8 +-
 .../administration/project/project.component.ts    |   9 +-
 .../app/administration/roles/roles.component.html  |  35 +-
 .../app/administration/roles/roles.component.scss  |   7 +
 .../app/administration/roles/roles.component.ts    |  58 ++-
 .../services/applicationServiceFacade.service.ts   |  10 -
 .../src/app/core/services/healthStatus.service.ts  |  11 +-
 .../src/app/core/services/project.service.ts       |  18 -
 .../reporting-grid/reporting-grid.component.html   | 123 ++---
 .../reporting-grid/reporting-grid.component.scss   |  68 ++-
 .../reporting-grid/reporting-grid.component.ts     |  44 +-
 .../src/app/reporting/reporting.component.ts       |  96 ++--
 .../app/reporting/toolbar/toolbar.component.html   |   4 +-
 .../cost-details-dialog.component.html             |  22 +-
 .../cost-details-dialog.component.scss             |   2 +-
 .../resources-grid/resources-grid.component.html   |  38 +-
 .../resources-grid/resources-grid.component.scss   |   4 +
 .../resources-grid/resources-grid.component.ts     |   7 +-
 .../resources-grid/resources-grid.model.ts         |  62 +--
 .../src/app/resources/resources.component.html     |   2 +-
 .../src/app/resources/resources.component.ts       |  17 +-
 .../multi-level-select-dropdown.component.html     |  26 +-
 .../multi-level-select-dropdown.component.scss     |  25 +-
 .../multi-level-select-dropdown.component.ts       |   1 +
 .../multi-select-dropdown.component.html           |   3 +-
 .../confirmation-dialog.component.html             |   3 +-
 .../confirmation-dialog.model.ts                   |   6 +-
 .../src/app/shared/navbar/navbar.component.html    |   2 +-
 .../src/app/shared/navbar/navbar.component.ts      |   2 +-
 .../resources/webapp/src/assets/styles/_theme.scss |   5 +
 .../webapp/src/dictionary/gcp.dictionary.ts        |   2 +-
 .../webapp/src/dictionary/global.dictionary.ts     |  20 +-
 .../resources/EnvironmentResourceTest.java         |  97 +---
 .../resources/ImageExploratoryResourceTest.java    |   2 +-
 .../resources/InfrastructureInfoResourceTest.java  |  38 +-
 .../backendapi/resources/ProjectResourceTest.java  |  24 +-
 .../resources/UserGroupResourceTest.java           | 206 ++-------
 .../backendapi/resources/UserRoleResourceTest.java |   7 +-
 .../service/UserRoleServiceImplTest.java           |  42 +-
 .../service/aws/AwsBillingServiceTest.java         | 224 ---------
 .../service/azure/AzureBillingServiceTest.java     | 208 ---------
 .../service/impl/EnvironmentServiceImplTest.java   |  71 ---
 .../impl/ImageExploratoryServiceImplTest.java      |   2 +-
 .../service/impl/UserGroupServiceImplTest.java     | 156 +++----
 263 files changed, 4821 insertions(+), 6912 deletions(-)
 create mode 100644 doc/bin_icon.png
 create mode 100644 doc/connect_endpoint.png
 create mode 100644 doc/dataproc_create.png
 create mode 100644 doc/delete_btn.png
 create mode 100644 doc/dlab_aws.png
 create mode 100644 doc/dlab_azure.png
 create mode 100644 doc/dlab_gcp.png
 create mode 100644 doc/endpoint_list.png
 create mode 100644 doc/pen_icon.png
 create mode 100644 doc/project_menu.png
 create mode 100644 doc/project_view.png
 create mode 100644 doc/roles.png
 create mode 100644 doc/scheduler_by_inactivity.png
 create mode 100644 infrastructure-provisioning/terraform/bin/deploy/billing_app_aws.yml
 copy services/billing-aws/billing.yml => infrastructure-provisioning/terraform/bin/deploy/billing_aws.yml (75%)
 create mode 100644 infrastructure-provisioning/terraform/bin/deploy/billing_azure.yml
 create mode 100644 infrastructure-provisioning/terraform/bin/deploy/billing_gcp.yml
 copy infrastructure-provisioning/{src/ssn/scripts => terraform/bin/deploy/mongo_files}/configure_mongo.py (88%)
 copy infrastructure-provisioning/{src/ssn/files => terraform/bin/deploy/mongo_files}/gcp/mongo_roles.json (100%)
 copy infrastructure-provisioning/{src/ssn/templates => terraform/bin/deploy/mongo_files}/mongod.service_template (100%)
 copy services/{billing-gcp/src/main/java/com/epam/dlab/billing/gcp/BillingGcpApplication.java => billing-aws/src/main/java/com/epam/dlab/BillingAwsApplication.java} (79%)
 delete mode 100644 services/billing-aws/src/main/java/com/epam/dlab/BillingScheduler.java
 copy services/{billing-gcp/src/main/java/com/epam/dlab/billing/gcp/service => billing-aws/src/main/java/com/epam/dlab}/BillingService.java (86%)
 create mode 100644 services/billing-aws/src/main/java/com/epam/dlab/BillingServiceImpl.java
 create mode 100644 services/billing-aws/src/main/java/com/epam/dlab/conf/SecurityConfig.java
 delete mode 100644 services/billing-aws/src/main/java/com/epam/dlab/configuration/SchedulerConfiguration.java
 copy services/{billing-gcp/src/main/java/com/epam/dlab/billing/gcp/documents/Project.java => billing-aws/src/main/java/com/epam/dlab/controller/BillingController.java} (54%)
 delete mode 100644 services/billing-aws/src/main/java/com/epam/dlab/mongo/ResourceItem.java
 delete mode 100644 services/billing-aws/src/main/java/com/epam/dlab/mongo/ResourceItemList.java
 create mode 100644 services/billing-aws/src/main/resources/application.yml
 delete mode 100644 services/billing-aws/src/test/java/com/epam/dlab/mongo/ResourceItemListTest.java
 delete mode 100644 services/billing-azure/src/main/java/com/epam/dlab/billing/azure/AzureBillableResourcesService.java
 delete mode 100644 services/billing-azure/src/main/java/com/epam/dlab/billing/azure/AzureBillingDetailsService.java
 copy services/{billing-gcp/src/main/java/com/epam/dlab/billing/gcp/BillingGcpApplication.java => billing-azure/src/main/java/com/epam/dlab/billing/azure/BillingAzureApplication.java} (84%)
 delete mode 100644 services/billing-azure/src/main/java/com/epam/dlab/billing/azure/BillingSchedulerAzure.java
 copy services/{common/src/main/java/com/epam/dlab/exceptions/DlabAuthenticationException.java => billing-azure/src/main/java/com/epam/dlab/billing/azure/CalculateBillingService.java} (81%)
 create mode 100644 services/billing-azure/src/main/java/com/epam/dlab/billing/azure/CalculateBillingServiceImpl.java
 create mode 100644 services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/SecurityConfig.java
 rename services/{billing-gcp/src/main/java/com/epam/dlab/billing/gcp/documents/Project.java => billing-azure/src/main/java/com/epam/dlab/billing/azure/controller/BillingController.java} (52%)
 create mode 100644 services/billing-azure/src/main/resources/application.yml
 create mode 100644 services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/conf/SecurityConfig.java
 copy services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/{scheduler/BillingScheduler.java => controller/BillingController.java} (55%)
 delete mode 100644 services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/documents/UserInstance.java
 delete mode 100644 services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/repository/ProjectRepository.java
 delete mode 100644 services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/repository/UserInstanceRepository.java
 delete mode 100644 services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/service/BillingServiceImpl.java
 rename services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/{scheduler/BillingScheduler.java => service/impl/BillingServiceImpl.java} (57%)
 delete mode 100644 services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/util/BillingUtils.java
 delete mode 100644 services/billing-gcp/src/test/java/com/epam/dlab/billing/gcp/service/BillingServiceImplTest.java
 copy services/{billing-azure/src/main/java/com/epam/dlab/billing/azure/model/BillingPeriod.java => dlab-model/src/main/java/com/epam/dlab/dto/billing/BillingData.java} (68%)
 copy integration-tests/src/main/java/com/epam/dlab/automation/docker/Labels.java => services/dlab-model/src/main/java/com/epam/dlab/dto/billing/BillingResourceType.java (82%)
 copy services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/{gcp/BucketServiceGcpImpl.java => aws/BucketServiceAwsImpl.java} (56%)
 copy integration-tests/src/test/java/com/epam/dlab/automation/test/libs/TestDescription.java => services/self-service/src/main/java/com/epam/dlab/backendapi/annotation/ProjectAdmin.java (88%)
 copy integration-tests/src/test/java/com/epam/dlab/automation/test/libs/TestDescription.java => services/self-service/src/main/java/com/epam/dlab/backendapi/annotation/User.java (88%)
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/dao/aws/AwsBillingDAO.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/dao/azure/AzureBillingDAO.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/dao/gcp/GcpBillingDao.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/BaseShape.java
 copy services/{billing-azure/src/main/java/com/epam/dlab/billing/azure/rate/RateCardResponse.java => self-service/src/main/java/com/epam/dlab/backendapi/domain/BillingReport.java} (65%)
 rename services/{billing-gcp/src/main/java/com/epam/dlab/billing/gcp/model/BillingData.java => self-service/src/main/java/com/epam/dlab/backendapi/domain/BillingReportLine.java} (62%)
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/DataEngineServiceShape.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/DataEngineShape.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EndpointShape.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ExploratoryShape.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectManagingDTO.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/SsnShape.java
 create mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/ProjectAdminInterceptor.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/modules/AwsSelfServiceModule.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/modules/AzureSelfServiceModule.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/modules/GcpSelfServiceModule.java
 copy services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/{exploratory/StopExploratoryJob.java => billing/BillingScheduler.java} (52%)
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/service/ShapeFormat.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/service/aws/AwsBillingService.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/service/azure/AzureBillingService.java
 delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/service/gcp/GcpBillingService.java
 create mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
 create mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/util/BillingUtils.java
 delete mode 100644 services/self-service/src/test/java/com/epam/dlab/backendapi/service/aws/AwsBillingServiceTest.java
 delete mode 100644 services/self-service/src/test/java/com/epam/dlab/backendapi/service/azure/AzureBillingServiceTest.java


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 03/06: Merge remote-tracking branch 'origin/bucket-browser-gcp' into bucket-browser-gcp

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 59dc52b3a3d0053869d951cc2868ff6439602942
Merge: 40d6e90 2f2f49d
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Mon Apr 27 17:53:43 2020 +0300

    Merge remote-tracking branch 'origin/bucket-browser-gcp' into bucket-browser-gcp

 .../src/ssn/templates/ssn_nginx.conf               |   4 +-
 .../administration/project/project.component.ts    |   1 -
 .../core/interceptors/http.token.interceptor.ts    |  10 +-
 .../src/app/core/services/appRouting.service.ts    |   1 +
 .../services/applicationServiceFacade.service.ts   |  21 ++--
 .../app/core/services/bucket-browser.service.ts    | 104 ++-----------------
 .../webapp/src/app/core/util/fileUtils.ts          |  10 ++
 .../bucket-browser/bucket-browser.component.html   |  29 +++---
 .../bucket-browser/bucket-browser.component.scss   |  16 +++
 .../bucket-browser/bucket-browser.component.ts     | 100 ++++++------------
 .../bucket-browser/bucket-data.service.ts          | 108 ++++++++++++++++++++
 .../folder-tree/folder-tree.component.ts           | 113 ++++++++++++---------
 .../detail-dialog/detail-dialog.component.html     |   4 +-
 .../detail-dialog/detail-dialog.component.ts       |   4 +-
 .../webapp/src/app/resources/resources.module.ts   |   3 +
 15 files changed, 289 insertions(+), 239 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 05/06: Merge branch 'develop' into bucket-browser-gcp

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit dcf66f15fd3b625356a357e90a286ac40f9ac738
Merge: e84ca63 915a149
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Apr 28 12:42:45 2020 +0300

    Merge branch 'develop' into bucket-browser-gcp
    
    # Conflicts:
    #	infrastructure-provisioning/src/ssn/templates/ssn.yml
    #	services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
    #	services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
    #	services/dlab-webapp-common/src/main/java/com/epam/dlab/rest/client/RESTService.java
    #	services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
    #	services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
    #	services/self-service/src/main/resources/mongo/aws/mongo_roles.json
    #	services/self-service/src/main/resources/mongo/azure/mongo_roles.json
    #	services/self-service/src/main/resources/mongo/gcp/mongo_roles.json

 README.md                                          | 503 +++++++++++++--------
 USER_GUIDE.md                                      | 476 ++++++++++---------
 doc/billing_filter.png                             | Bin 18705 -> 41447 bytes
 doc/billing_page.png                               | Bin 18577 -> 264721 bytes
 doc/bin_icon.png                                   | Bin 0 -> 4379 bytes
 doc/computational_scheduler.png                    | Bin 33900 -> 35577 bytes
 doc/computational_scheduler_create.png             | Bin 3893 -> 3277 bytes
 doc/connect_endpoint.png                           | Bin 0 -> 202030 bytes
 doc/create_notebook_from_ami.png                   | Bin 27066 -> 35594 bytes
 doc/dataproc_create.png                            | Bin 0 -> 129369 bytes
 doc/delete_btn.png                                 | Bin 0 -> 4155 bytes
 doc/delete_group.png                               | Bin 34704 -> 45914 bytes
 doc/dlab_aws.png                                   | Bin 0 -> 96693 bytes
 doc/dlab_azure.png                                 | Bin 0 -> 94589 bytes
 doc/dlab_gcp.png                                   | Bin 0 -> 108227 bytes
 doc/emr_creating.png                               | Bin 37126 -> 43196 bytes
 doc/emr_terminate_confirm.png                      | Bin 1760535 -> 14257 bytes
 doc/endpoint_list.png                              | Bin 0 -> 181738 bytes
 doc/environment_management.png                     | Bin 66404 -> 90301 bytes
 doc/git_creds_window.png                           | Bin 7190623 -> 25654 bytes
 doc/git_creds_window2.png                          | Bin 5946035 -> 26511 bytes
 doc/main_page.png                                  | Bin 4746590 -> 35533 bytes
 doc/main_page2.png                                 | Bin 8157879 -> 49611 bytes
 doc/main_page3.png                                 | Bin 8157879 -> 48735 bytes
 doc/main_page_filter.png                           | Bin 62679 -> 79991 bytes
 doc/manage_env_confirm.png                         | Bin 10464 -> 14049 bytes
 doc/manage_environment.png                         | Bin 21334 -> 18263 bytes
 doc/manage_role.png                                | Bin 108456 -> 28068 bytes
 doc/managemanage_resource_actions.png              | Bin 4997 -> 4976 bytes
 doc/notebook_create.png                            | Bin 41323 -> 33033 bytes
 doc/notebook_info.png                              | Bin 157517 -> 42371 bytes
 doc/notebook_libs_status.png                       | Bin 50720 -> 59233 bytes
 doc/notebook_scheduler.png                         | Bin 36928 -> 39368 bytes
 doc/notebook_terminated.png                        | Bin 38113 -> 56038 bytes
 doc/notebook_terminating.png                       | Bin 39506 -> 56292 bytes
 doc/pen_icon.png                                   | Bin 0 -> 4171 bytes
 doc/project_menu.png                               | Bin 0 -> 86667 bytes
 doc/project_view.png                               | Bin 0 -> 234276 bytes
 doc/roles.png                                      | Bin 0 -> 198223 bytes
 doc/scheduler_by_inactivity.png                    | Bin 0 -> 22076 bytes
 doc/spark_stop_confirm.png                         | Bin 10920 -> 12767 bytes
 doc/upload_or_generate_user_key.png                | Bin 17078 -> 37302 bytes
 .../files/aws/deeplearning_description.json        |   4 +-
 .../files/azure/deeplearning_description.json      |   4 +-
 .../general/files/azure/tensor_description.json    |   4 +-
 .../files/gcp/deeplearning_description.json        |   4 +-
 .../src/general/lib/os/debian/ssn_lib.py           |  29 +-
 .../src/general/scripts/aws/ssn_configure.py       |  10 +-
 .../src/general/scripts/azure/ssn_configure.py     |  30 +-
 .../src/general/scripts/gcp/project_prepare.py     |   6 +-
 .../src/general/scripts/gcp/ssn_configure.py       |  11 +-
 .../src/ssn/scripts/configure_billing.py           | 125 +++--
 .../src/ssn/scripts/configure_ui.py                |   8 +-
 .../src/ssn/templates/ssn.yml                      |   5 +
 .../terraform/aws/endpoint/main/network.tf         |   7 +
 .../terraform/aws/endpoint/main/variables.tf       |  22 +-
 .../terraform/azure/endpoint/main/sg.tf            |  14 +
 .../terraform/azure/endpoint/main/variables.tf     |  20 +-
 .../terraform/bin/deploy/billing_app_aws.yml       |  34 ++
 .../terraform/bin/deploy/billing_aws.yml           |  35 +-
 .../terraform/bin/deploy/billing_azure.yml         |  59 +++
 .../terraform/bin/deploy/billing_gcp.yml           |  38 ++
 .../terraform/bin/deploy/endpoint_fab.py           | 339 +++++++++++++-
 .../bin/deploy/mongo_files/configure_mongo.py      |  95 ++++
 .../bin/deploy/mongo_files}/gcp/mongo_roles.json   | 100 ----
 .../deploy/mongo_files/mongod.service_template}    |  56 +--
 .../terraform/bin/deploy/provisioning.yml          |   7 +-
 .../terraform/bin/deploy/renew_certificates.sh     |   2 +-
 .../terraform/bin/deploy/supervisor_svc.conf       |  10 +
 infrastructure-provisioning/terraform/bin/dlab.py  |  22 +
 .../terraform/gcp/endpoint/main/network.tf         |   2 +-
 .../terraform/gcp/endpoint/main/variables.tf       |   8 +
 .../terraform/gcp/endpoint/provisioning.yml        |   2 +-
 pom.xml                                            |   2 +-
 services/billing-aws/billing.yml                   |  37 +-
 services/billing-aws/pom.xml                       | 128 +++---
 .../java/com/epam/dlab/BillingAwsApplication.java} |  13 +-
 .../main/java/com/epam/dlab/BillingScheduler.java  | 267 -----------
 .../main/java/com/epam/dlab/BillingService.java}   |  10 +-
 .../java/com/epam/dlab/BillingServiceImpl.java     | 128 ++++++
 .../src/main/java/com/epam/dlab/BillingTool.java   |  20 +-
 .../src/main/java/com/epam/dlab/Help.java          |  19 +-
 .../java/com/epam/dlab/conf/SecurityConfig.java    |  66 +++
 .../configuration/BillingToolConfiguration.java    |  30 --
 .../dlab/configuration/SchedulerConfiguration.java | 213 ---------
 .../epam/dlab/controller/BillingController.java}   |  31 +-
 .../main/java/com/epam/dlab/core/AdapterBase.java  |   4 +-
 .../java/com/epam/dlab/core/parser/ParserBase.java |  22 +-
 .../com/epam/dlab/core/parser/ParserByLine.java    |  11 +-
 .../java/com/epam/dlab/module/AdapterConsole.java  |   4 +-
 .../java/com/epam/dlab/module/AdapterFile.java     |  23 +-
 .../com/epam/dlab/module/aws/AdapterS3File.java    |   3 +-
 .../java/com/epam/dlab/mongo/AdapterMongoDb.java   |  63 ++-
 .../com/epam/dlab/mongo/DlabResourceTypeDAO.java   | 297 +-----------
 .../java/com/epam/dlab/mongo/ResourceItem.java     | 152 -------
 .../java/com/epam/dlab/mongo/ResourceItemList.java | 136 ------
 .../billing-aws/src/main/resources/application.yml |  34 ++
 .../com/epam/dlab/mongo/ResourceItemListTest.java  |  54 ---
 services/billing-azure/billing.yml                 | 111 +++--
 services/billing-azure/pom.xml                     | 109 +++--
 .../azure/AzureBillableResourcesService.java       | 315 -------------
 .../billing/azure/AzureBillingDetailsService.java  | 194 --------
 .../azure/AzureInvoiceCalculationService.java      |  60 +--
 .../billing/azure/BillingAzureApplication.java}    |   8 +-
 .../dlab/billing/azure/BillingSchedulerAzure.java  | 314 -------------
 .../billing/azure/CalculateBillingService.java}    |   9 +-
 .../billing/azure/CalculateBillingServiceImpl.java | 245 ++++++++++
 .../azure/config/BillingConfigurationAzure.java    |   6 +-
 .../dlab/billing/azure/config/SecurityConfig.java  |  66 +++
 .../azure/controller/BillingController.java}       |  31 +-
 .../azure/model/AzureDailyResourceInvoice.java     |  34 +-
 .../src/main/resources/application.yml             |  59 +++
 services/billing-gcp/billing.yml                   |  34 +-
 services/billing-gcp/pom.xml                       |  30 ++
 .../dlab/billing/gcp/BillingGcpApplication.java    |   2 -
 .../gcp/conf/BillingApplicationConfiguration.java  |   2 -
 .../epam/dlab/billing/gcp/conf/SecurityConfig.java |  66 +++
 .../BillingController.java}                        |  32 +-
 .../com/epam/dlab/billing/gcp/dao/BillingDAO.java  |   5 +-
 .../billing/gcp/dao/impl/BigQueryBillingDAO.java   |  44 +-
 .../dlab/billing/gcp/documents/UserInstance.java   |  55 ---
 .../dlab/billing/gcp/model/GcpBillingData.java     |  10 +-
 .../billing/gcp/repository/BillingRepository.java  |   4 +-
 .../gcp/repository/UserInstanceRepository.java     |  30 --
 .../dlab/billing/gcp/service/BillingService.java   |   7 +-
 .../billing/gcp/service/BillingServiceImpl.java    | 186 --------
 .../impl/BillingServiceImpl.java}                  |  34 +-
 .../epam/dlab/billing/gcp/util/BillingUtils.java   |  95 ----
 .../billing-gcp/src/main/resources/application.yml |  26 +-
 .../gcp/service/BillingServiceImplTest.java        |  87 ----
 .../com/epam/dlab/billing/DlabResourceType.java    |  86 ----
 .../com/epam/dlab/dto/billing/BillingData.java}    |  28 +-
 .../dlab/dto/billing/BillingResourceType.java}     |  14 +-
 .../computational/UserComputationalResource.java   |   8 +-
 .../java/com/epam/dlab/ServiceConfiguration.java   |   9 +
 .../com/epam/dlab/constants/ServiceConsts.java     |   1 +
 services/self-service/pom.xml                      |   6 +
 services/self-service/self-service.yml             |   9 +-
 .../dlab/backendapi/annotation/ProjectAdmin.java}  |  15 +-
 .../com/epam/dlab/backendapi/annotation/User.java} |  15 +-
 .../epam/dlab/backendapi/dao/BaseBillingDAO.java   | 441 +++++-------------
 .../java/com/epam/dlab/backendapi/dao/BaseDAO.java |  64 ++-
 .../com/epam/dlab/backendapi/dao/BillingDAO.java   |  15 +-
 .../java/com/epam/dlab/backendapi/dao/EnvDAO.java  |  19 -
 .../epam/dlab/backendapi/dao/ExploratoryDAO.java   |  19 +
 .../com/epam/dlab/backendapi/dao/ProjectDAO.java   |   2 -
 .../epam/dlab/backendapi/dao/ProjectDAOImpl.java   |  11 +-
 .../com/epam/dlab/backendapi/dao/UserGroupDao.java |   2 -
 .../epam/dlab/backendapi/dao/UserGroupDaoImpl.java |   5 -
 .../com/epam/dlab/backendapi/dao/UserRoleDao.java  |   2 -
 .../epam/dlab/backendapi/dao/UserRoleDaoImpl.java  |   5 -
 .../dlab/backendapi/dao/aws/AwsBillingDAO.java     |  74 ---
 .../dlab/backendapi/dao/azure/AzureBillingDAO.java | 121 -----
 .../dlab/backendapi/dao/gcp/GcpBillingDao.java     |  65 ---
 .../com/epam/dlab/backendapi/domain/BaseShape.java |  23 -
 .../dlab/backendapi/domain/BillingReport.java}     |  32 +-
 .../dlab/backendapi/domain/BillingReportLine.java} |  52 +--
 .../backendapi/domain/DataEngineServiceShape.java  |  37 --
 .../dlab/backendapi/domain/DataEngineShape.java    |  34 --
 .../epam/dlab/backendapi/domain/EndpointShape.java |  14 -
 .../dlab/backendapi/domain/ExploratoryShape.java   |  14 -
 .../dlab/backendapi/domain/ProjectManagingDTO.java |  16 -
 .../com/epam/dlab/backendapi/domain/SsnShape.java  |  14 -
 .../interceptor/ProjectAdminInterceptor.java       |  74 +++
 .../backendapi/modules/AwsSelfServiceModule.java   |  83 ----
 .../backendapi/modules/AzureSelfServiceModule.java |  81 ----
 .../backendapi/modules/CloudProviderModule.java    |  34 +-
 .../epam/dlab/backendapi/modules/DevModule.java    |  30 +-
 .../backendapi/modules/GcpSelfServiceModule.java   |  84 ----
 .../dlab/backendapi/modules/ModuleFactory.java     |  13 -
 .../dlab/backendapi/modules/ProductionModule.java  |  32 +-
 .../dlab/backendapi/resources/BillingResource.java |  12 +-
 .../backendapi/resources/EnvironmentResource.java  |  20 +-
 .../resources/InfrastructureInfoResource.java      |  13 +-
 .../dlab/backendapi/resources/ProjectResource.java |  52 +--
 .../backendapi/resources/UserGroupResource.java    |  67 +--
 .../backendapi/resources/UserRoleResource.java     |   6 +-
 .../backendapi/resources/dto/BillingFilter.java    |  37 +-
 .../resources/dto/HealthStatusPageDTO.java         | 129 +-----
 .../backendapi/resources/dto/ImageInfoRecord.java  |   1 +
 .../resources/dto/ProjectInfrastructureInfo.java   |   3 +
 .../com/epam/dlab/backendapi/roles/UserRole.java   |  13 +-
 .../com/epam/dlab/backendapi/roles/UserRoles.java  |  62 ++-
 .../schedulers/billing/BillingScheduler.java       |  52 +++
 .../dlab/backendapi/service/BillingService.java    |  77 +---
 .../backendapi/service/EnvironmentService.java     |   8 +-
 .../backendapi/service/ExploratoryService.java     |   8 +
 .../service/InfrastructureInfoService.java         |   4 +-
 .../dlab/backendapi/service/ProjectService.java    |  13 +-
 .../epam/dlab/backendapi/service/ShapeFormat.java  |   5 -
 .../dlab/backendapi/service/UserGroupService.java  |  12 +-
 .../backendapi/service/UserRoleServiceImpl.java    |   1 +
 .../backendapi/service/aws/AwsBillingService.java  | 110 -----
 .../service/azure/AzureBillingService.java         | 116 -----
 .../backendapi/service/gcp/GcpBillingService.java  | 104 -----
 .../service/impl/BillingServiceImpl.java           | 338 ++++++++++++++
 .../service/impl/EndpointServiceImpl.java          |   2 +-
 .../service/impl/EnvironmentServiceImpl.java       |  81 ++--
 .../service/impl/ExploratoryServiceImpl.java       |  27 +-
 .../impl/InfrastructureInfoServiceImpl.java        | 112 +++--
 .../service/impl/ProjectServiceImpl.java           |  65 +--
 .../service/impl/UserGroupServiceImpl.java         |  97 ++--
 .../epam/dlab/backendapi/util/BillingUtils.java    | 228 ++++++++++
 .../src/main/resources/mongo/aws/mongo_roles.json  |  19 +
 .../main/resources/mongo/azure/mongo_roles.json    |  19 +
 .../src/main/resources/mongo/gcp/mongo_roles.json  |  20 +
 .../manage-environment-dilog.component.ts          |   2 +-
 .../management-grid/management-grid.component.html |  30 +-
 .../management-grid/management-grid.component.ts   |   4 +-
 .../management/management.component.ts             |   3 +-
 .../administration/management/management.model.ts  |   1 +
 .../administration/project/project.component.html  |   8 +-
 .../administration/project/project.component.ts    |   9 +-
 .../app/administration/roles/roles.component.html  |  35 +-
 .../app/administration/roles/roles.component.scss  |   7 +
 .../app/administration/roles/roles.component.ts    |  58 ++-
 .../services/applicationServiceFacade.service.ts   |  10 -
 .../src/app/core/services/healthStatus.service.ts  |  11 +-
 .../src/app/core/services/project.service.ts       |  18 -
 .../reporting-grid/reporting-grid.component.html   | 123 ++---
 .../reporting-grid/reporting-grid.component.scss   |  68 ++-
 .../reporting-grid/reporting-grid.component.ts     |  44 +-
 .../src/app/reporting/reporting.component.ts       |  96 ++--
 .../app/reporting/toolbar/toolbar.component.html   |   4 +-
 .../cost-details-dialog.component.html             |  22 +-
 .../cost-details-dialog.component.scss             |   2 +-
 .../resources-grid/resources-grid.component.html   |  38 +-
 .../resources-grid/resources-grid.component.scss   |   4 +
 .../resources-grid/resources-grid.component.ts     |   7 +-
 .../resources-grid/resources-grid.model.ts         |  62 +--
 .../src/app/resources/resources.component.html     |   2 +-
 .../src/app/resources/resources.component.ts       |  17 +-
 .../multi-level-select-dropdown.component.html     |  26 +-
 .../multi-level-select-dropdown.component.scss     |  25 +-
 .../multi-level-select-dropdown.component.ts       |   1 +
 .../multi-select-dropdown.component.html           |   3 +-
 .../confirmation-dialog.component.html             |   3 +-
 .../confirmation-dialog.model.ts                   |   6 +-
 .../src/app/shared/navbar/navbar.component.html    |   2 +-
 .../src/app/shared/navbar/navbar.component.ts      |   2 +-
 .../resources/webapp/src/assets/styles/_theme.scss |   5 +
 .../webapp/src/dictionary/gcp.dictionary.ts        |   2 +-
 .../webapp/src/dictionary/global.dictionary.ts     |  20 +-
 .../resources/EnvironmentResourceTest.java         |  97 +---
 .../resources/ImageExploratoryResourceTest.java    |   2 +-
 .../resources/InfrastructureInfoResourceTest.java  |  38 +-
 .../backendapi/resources/ProjectResourceTest.java  |  24 +-
 .../resources/UserGroupResourceTest.java           | 206 ++-------
 .../backendapi/resources/UserRoleResourceTest.java |   7 +-
 .../service/UserRoleServiceImplTest.java           |  42 +-
 .../service/aws/AwsBillingServiceTest.java         | 224 ---------
 .../service/azure/AzureBillingServiceTest.java     | 208 ---------
 .../service/impl/EnvironmentServiceImplTest.java   |  71 ---
 .../impl/ImageExploratoryServiceImplTest.java      |   2 +-
 .../service/impl/UserGroupServiceImplTest.java     | 156 +++----
 255 files changed, 4706 insertions(+), 6955 deletions(-)

diff --cc infrastructure-provisioning/src/ssn/templates/ssn.yml
index 503116f,7b18d26..41a9723
--- a/infrastructure-provisioning/src/ssn/templates/ssn.yml
+++ b/infrastructure-provisioning/src/ssn/templates/ssn.yml
@@@ -62,10 -62,10 +62,15 @@@ provisioningService
      timeout: 3s
      connectionTimeout: 3s
  
 +bucketService:
 +  jerseyClient:
 +    timeout: 10m
 +    connectionTimeout: 3s
 +
+ billingService:
+   jerseyClient:
+     timeout: 4m
+     connectionTimeout: 3s
+ 
  # Log out user on inactivity
  inactiveUserTimeoutMillSec: 7200000
diff --cc services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
index 51b0779,3297abd..1ae0afb
--- a/services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
+++ b/services/dlab-webapp-common/src/main/java/com/epam/dlab/ServiceConfiguration.java
@@@ -54,11 -54,11 +54,16 @@@ public class ServiceConfiguration exten
  
      @Valid
      @NotNull
 +    @JsonProperty(ServiceConsts.BUCKET_SERVICE_NAME)
 +    private RESTServiceFactory bucketFactory = new RESTServiceFactory();
 +
 +    @Valid
 +    @NotNull
+     @JsonProperty(ServiceConsts.BILLING_SERVICE_NAME)
+     private RESTServiceFactory billingFactory = new RESTServiceFactory();
+ 
+     @Valid
+     @NotNull
      @JsonProperty(ServiceConsts.SECURITY_SERVICE_NAME)
      private RESTServiceFactory securityFactory;
  
@@@ -90,10 -90,10 +95,14 @@@
          return provisioningFactory;
      }
  
 +    public RESTServiceFactory getBucketFactory() {
 +        return bucketFactory;
 +    }
 +
+     public RESTServiceFactory getBillingFactory() {
+         return billingFactory;
+     }
+ 
      public RESTServiceFactory getSecurityFactory() {
          return securityFactory;
      }
diff --cc services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
index d7d7208,e1bcf23..b04db9f
--- a/services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
+++ b/services/dlab-webapp-common/src/main/java/com/epam/dlab/constants/ServiceConsts.java
@@@ -20,14 -20,14 +20,15 @@@
  package com.epam.dlab.constants;
  
  public final class ServiceConsts {
 -    public static final String MONGO_NAME = "mongo";
 -    public static final String PROVISIONING_SERVICE_NAME = "provisioningService";
 -    public static final String BILLING_SERVICE_NAME = "billingService";
 -    public static final String MAVEN_SEARCH_API = "mavenSearchService";
 -    public static final String SECURITY_SERVICE_NAME = "securityService";
 -    public static final String SELF_SERVICE_NAME = "selfService";
 -    public static final String PROVISIONING_USER_AGENT = "provisioning-service";
 +	public static final String MONGO_NAME = "mongo";
 +	public static final String PROVISIONING_SERVICE_NAME = "provisioningService";
++	public static final String BILLING_SERVICE_NAME = "billingService";
 +	public static final String BUCKET_SERVICE_NAME = "bucketService";
 +	public static final String MAVEN_SEARCH_API = "mavenSearchService";
 +	public static final String SECURITY_SERVICE_NAME = "securityService";
 +	public static final String SELF_SERVICE_NAME = "selfService";
 +	public static final String PROVISIONING_USER_AGENT = "provisioning-service";
  
 -    private ServiceConsts() {
 -    }
 +	private ServiceConsts() {
 +	}
  }
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
index c4c771d,8b41baf..f75f877
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
@@@ -21,14 -21,11 +21,12 @@@ package com.epam.dlab.backendapi.module
  
  import com.epam.dlab.backendapi.SelfServiceApplication;
  import com.epam.dlab.backendapi.annotation.BudgetLimited;
+ import com.epam.dlab.backendapi.annotation.ProjectAdmin;
  import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
- import com.epam.dlab.backendapi.dao.BillingDAO;
- import com.epam.dlab.backendapi.dao.aws.AwsBillingDAO;
- import com.epam.dlab.backendapi.dao.azure.AzureBillingDAO;
- import com.epam.dlab.backendapi.dao.gcp.GcpBillingDao;
  import com.epam.dlab.backendapi.interceptor.BudgetLimitInterceptor;
+ import com.epam.dlab.backendapi.interceptor.ProjectAdminInterceptor;
  import com.epam.dlab.backendapi.resources.BillingResource;
 +import com.epam.dlab.backendapi.resources.BucketResource;
  import com.epam.dlab.backendapi.resources.aws.ComputationalResourceAws;
  import com.epam.dlab.backendapi.resources.azure.ComputationalResourceAzure;
  import com.epam.dlab.backendapi.resources.gcp.ComputationalResourceGcp;
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
index f8de46d,9275319..31b4056
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
@@@ -132,9 -132,9 +134,12 @@@ public class DevModule extends ModuleBa
  		bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.PROVISIONING_SERVICE_NAME))
  				.toInstance(configuration.getProvisioningFactory()
  						.build(environment, ServiceConsts.PROVISIONING_SERVICE_NAME));
 +		bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BUCKET_SERVICE_NAME))
 +				.toInstance(configuration.getBucketFactory()
 +						.build(environment, ServiceConsts.BUCKET_SERVICE_NAME));
+ 		bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BILLING_SERVICE_NAME))
+ 				.toInstance(configuration.getBillingFactory()
+ 						.build(environment, ServiceConsts.BILLING_SERVICE_NAME));
  		bind(ImageExploratoryService.class).to(ImageExploratoryServiceImpl.class);
  		bind(ImageExploratoryDao.class).to(ImageExploratoryDaoImpl.class);
  		bind(BackupService.class).to(BackupServiceImpl.class);
@@@ -156,18 -156,18 +161,19 @@@
  		bind(ExternalLibraryService.class).to(MavenCentralLibraryService.class);
  		bind(SystemInfoService.class).to(SystemInfoServiceImpl.class);
  		bind(UserGroupService.class).to(UserGroupServiceImpl.class);
-         bind(UserRoleService.class).to(UserRoleServiceImpl.class);
-         bind(UserRoleDao.class).to(UserRoleDaoImpl.class);
-         bind(UserGroupDao.class).to(UserGroupDaoImpl.class);
-         bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
-         bind(UserSettingService.class).to(UserSettingServiceImpl.class);
-         bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
-         bind(EndpointService.class).to(EndpointServiceImpl.class);
-         bind(EndpointDAO.class).to(EndpointDAOImpl.class);
-         bind(ProjectService.class).to(ProjectServiceImpl.class);
-         bind(ProjectDAO.class).to(ProjectDAOImpl.class);
-         bind(BucketService.class).to(BucketServiceImpl.class);
-     }
+ 		bind(UserRoleService.class).to(UserRoleServiceImpl.class);
+ 		bind(UserRoleDao.class).to(UserRoleDaoImpl.class);
+ 		bind(UserGroupDao.class).to(UserGroupDaoImpl.class);
+ 		bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
+ 		bind(UserSettingService.class).to(UserSettingServiceImpl.class);
+ 		bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
+ 		bind(EndpointService.class).to(EndpointServiceImpl.class);
+ 		bind(EndpointDAO.class).to(EndpointDAOImpl.class);
+ 		bind(ProjectService.class).to(ProjectServiceImpl.class);
+ 		bind(ProjectDAO.class).to(ProjectDAOImpl.class);
+ 		bind(BillingDAO.class).to(BaseBillingDAO.class);
++		bind(BucketService.class).to(BucketServiceImpl.class);
+ 	}
  
  	private void configureCors(Environment environment) {
  		final FilterRegistration.Dynamic cors =
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
index 6896ee7,d20adbf..5fb314d
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
@@@ -123,9 -123,9 +125,12 @@@ public class ProductionModule extends M
  		bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.PROVISIONING_SERVICE_NAME))
  				.toInstance(configuration.getProvisioningFactory().build(environment, ServiceConsts
  						.PROVISIONING_SERVICE_NAME));
 +		bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BUCKET_SERVICE_NAME))
 +				.toInstance(configuration.getBucketFactory().build(environment, ServiceConsts
 +						.BUCKET_SERVICE_NAME));
+ 		bind(RESTService.class).annotatedWith(Names.named(ServiceConsts.BILLING_SERVICE_NAME))
+ 				.toInstance(configuration.getBillingFactory()
+ 						.build(environment, ServiceConsts.BILLING_SERVICE_NAME));
  		bind(ImageExploratoryService.class).to(ImageExploratoryServiceImpl.class);
  		bind(ImageExploratoryDao.class).to(ImageExploratoryDaoImpl.class);
  		bind(BackupService.class).to(BackupServiceImpl.class);
@@@ -148,17 -148,17 +153,18 @@@
  		bind(UserRoleDao.class).to(UserRoleDaoImpl.class);
  		bind(UserGroupDao.class).to(UserGroupDaoImpl.class);
  		bind(InactivityService.class).to(InactivityServiceImpl.class);
-         bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
-         bind(UserSettingService.class).to(UserSettingServiceImpl.class);
-         bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
-         bind(EndpointService.class).to(EndpointServiceImpl.class);
-         bind(EndpointDAO.class).to(EndpointDAOImpl.class);
-         bind(ProjectService.class).to(ProjectServiceImpl.class);
-         bind(ProjectDAO.class).to(ProjectDAOImpl.class);
-         bind(TagService.class).to(TagServiceImpl.class);
-         bind(SecurityService.class).to(SecurityServiceImpl.class);
-         bind(KeycloakService.class).to(KeycloakServiceImpl.class);
-         bind(BucketService.class).to(BucketServiceImpl.class);
-         bind(Client.class).toInstance(httpClient);
-     }
+ 		bind(ApplicationSettingService.class).to(ApplicationSettingServiceImpl.class);
+ 		bind(UserSettingService.class).to(UserSettingServiceImpl.class);
+ 		bind(GuacamoleService.class).to(GuacamoleServiceImpl.class);
+ 		bind(EndpointService.class).to(EndpointServiceImpl.class);
+ 		bind(EndpointDAO.class).to(EndpointDAOImpl.class);
+ 		bind(ProjectService.class).to(ProjectServiceImpl.class);
+ 		bind(ProjectDAO.class).to(ProjectDAOImpl.class);
+ 		bind(BillingDAO.class).to(BaseBillingDAO.class);
++		bind(BucketService.class).to(BucketServiceImpl.class);
+ 		bind(TagService.class).to(TagServiceImpl.class);
+ 		bind(SecurityService.class).to(SecurityServiceImpl.class);
+ 		bind(KeycloakService.class).to(KeycloakServiceImpl.class);
+ 		bind(Client.class).toInstance(httpClient);
+ 	}
  }
diff --cc services/self-service/src/main/resources/mongo/aws/mongo_roles.json
index 076dc75,6a8fd29..942f281
--- a/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
@@@ -324,54 -324,23 +324,71 @@@
      ]
    },
    {
 +    "_id": "bucketBrowserView",
 +    "description": "Allow to view objects within the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/view"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserUpload",
 +    "description": "Allow to upload object to the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/upload"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserDownload",
 +    "description": "Allow to download object from the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/download"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserDelete",
 +    "description": "Allow to delete object from the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/delete"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
+     "_id": "projectAdmin",
+     "description": "Allow to execute administration operation per project",
+     "type": "ADMINISTRATION",
+     "cloud": "AWS",
+     "pages": [
+       "environment/*",
+       "/roleManagement",
+       "/api/settings",
+       "/user/settings",
+       "/api/project",
+       "/api/endpoint"
+     ],
+     "groups": [
+       "$anyuser"
+     ]
+   },
+   {
      "_id": "admin",
      "description": "Allow to execute administration operation",
      "type": "ADMINISTRATION",
diff --cc services/self-service/src/main/resources/mongo/azure/mongo_roles.json
index 886b635,86eadff..f05f3d1
--- a/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
@@@ -264,54 -264,23 +264,71 @@@
      ]
    },
    {
 +    "_id": "bucketBrowserView",
 +    "description": "Allow to view objects within the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/view"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserUpload",
 +    "description": "Allow to upload object to the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/upload"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserDownload",
 +    "description": "Allow to download object from the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/download"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserDelete",
 +    "description": "Allow to delete object from the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/delete"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
+     "_id": "projectAdmin",
+     "description": "Allow to execute administration operation per project",
+     "type": "ADMINISTRATION",
+     "cloud": "AZURE",
+     "pages": [
+       "environment/*",
+       "/roleManagement",
+       "/api/settings",
+       "/user/settings",
+       "/api/project",
+       "/api/endpoint"
+     ],
+     "groups": [
+       "$anyuser"
+     ]
+   },
+   {
      "_id": "admin",
      "description": "Allow to execute administration operation",
      "type": "ADMINISTRATION",
diff --cc services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
index 1dc61ae,d2ef6dd..8a36ff4
--- a/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
@@@ -300,54 -300,23 +300,71 @@@
      ]
    },
    {
 +    "_id": "bucketBrowserView",
 +    "description": "Allow to view objects within the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/view"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserUpload",
 +    "description": "Allow to upload object to the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/upload"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserDownload",
 +    "description": "Allow to download object from the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/download"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
 +    "_id": "bucketBrowserDelete",
 +    "description": "Allow to delete object from the bucket",
 +    "type": "BUCKET_BROWSER",
 +    "cloud": "GCP",
 +    "pages": [
 +      "/api/bucket/delete"
 +    ],
 +    "groups": [
 +      "$anyuser"
 +    ]
 +  },
 +  {
+     "_id": "projectAdmin",
+     "description": "Allow to execute administration operation per project",
+     "type": "ADMINISTRATION",
+     "cloud": "GCP",
+     "pages": [
+       "environment/*",
+       "/roleManagement",
+       "/api/settings",
+       "/user/settings",
+       "/api/project",
+       "/api/endpoint"
+     ],
+     "groups": [
+       "$anyuser"
+     ]
+   },
+   {
      "_id": "admin",
      "description": "Allow to execute administration operation",
      "type": "ADMINISTRATION",
diff --cc services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
index 6394d89,2587a62..7933fec
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
@@@ -24,10 -24,9 +24,10 @@@ import { MatDialog } from '@angular/mat
  import { ResourcesGridComponent } from './resources-grid/resources-grid.component';
  import { ExploratoryEnvironmentCreateComponent } from './exploratory/create-environment';
  import { Exploratory } from './resources-grid/resources-grid.model';
- import { HealthStatusService, ProjectService } from '../core/services';
+ import {ApplicationSecurityService, HealthStatusService} from '../core/services';
  import { ManageUngitComponent } from './manage-ungit/manage-ungit.component';
  import { Project } from './../administration/project/project.component';
 +import {BucketBrowserComponent} from './bucket-browser/bucket-browser.component';
  
  @Component({
    selector: 'dlab-resources',


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 01/06: bucket browser aws

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 5dc1b13e3f41b74e374646bb3e7ba11360e4bb13
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Thu Apr 23 15:31:48 2020 +0300

    bucket browser aws
---
 .../src/ssn/templates/ssn.yml                      |   2 +-
 services/provisioning-service/pom.xml              |  16 +++
 .../dlab/backendapi/modules/ProductionModule.java  |  29 ++---
 .../backendapi/modules/ProvisioningDevModule.java  |   9 +-
 .../dlab/backendapi/resources/BucketResource.java  |   8 --
 .../service/impl/aws/BucketServiceAwsImpl.java     | 125 +++++++++++++++++++++
 6 files changed, 164 insertions(+), 25 deletions(-)

diff --git a/infrastructure-provisioning/src/ssn/templates/ssn.yml b/infrastructure-provisioning/src/ssn/templates/ssn.yml
index 949ddf9..503116f 100644
--- a/infrastructure-provisioning/src/ssn/templates/ssn.yml
+++ b/infrastructure-provisioning/src/ssn/templates/ssn.yml
@@ -64,7 +64,7 @@ provisioningService:
 
 bucketService:
   jerseyClient:
-    timeout: 5m
+    timeout: 10m
     connectionTimeout: 3s
 
 # Log out user on inactivity
diff --git a/services/provisioning-service/pom.xml b/services/provisioning-service/pom.xml
index 78bc19b..2fc22bd 100644
--- a/services/provisioning-service/pom.xml
+++ b/services/provisioning-service/pom.xml
@@ -38,6 +38,13 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>software.amazon.awssdk</groupId>
+                <artifactId>bom</artifactId>
+                <version>2.11.9</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -85,6 +92,15 @@
             <artifactId>google-cloud-storage</artifactId>
             <version>1.106.0</version>
         </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>s3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.9</version>
+        </dependency>
 
         <dependency>
             <groupId>commons-io</groupId>
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
index d01ebc5..6ba8505 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
@@ -34,6 +34,7 @@ import com.epam.dlab.backendapi.service.RestoreCallbackHandlerService;
 import com.epam.dlab.backendapi.service.impl.CheckInactivityServiceImpl;
 import com.epam.dlab.backendapi.service.impl.ProjectServiceImpl;
 import com.epam.dlab.backendapi.service.impl.RestoreCallbackHandlerServiceImpl;
+import com.epam.dlab.backendapi.service.impl.aws.BucketServiceAwsImpl;
 import com.epam.dlab.backendapi.service.impl.gcp.BucketServiceGcpImpl;
 import com.epam.dlab.cloud.CloudProvider;
 import com.epam.dlab.constants.ServiceConsts;
@@ -67,17 +68,19 @@ public class ProductionModule extends ModuleBase<ProvisioningServiceApplicationC
 						.build(environment, ServiceConsts.SECURITY_SERVICE_NAME, ServiceConsts
 								.PROVISIONING_USER_AGENT));
 
-        bind(RESTService.class).toInstance(configuration.getSelfFactory().build(environment, ServiceConsts
-                .SELF_SERVICE_NAME));
-        bind(MetadataHolder.class).to(DockerWarmuper.class);
-        bind(ICommandExecutor.class).to(CommandExecutor.class).asEagerSingleton();
-        bind(ObjectMapper.class).toInstance(new ObjectMapper().configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, true));
-        bind(CallbackHandlerDao.class).to(FileSystemCallbackHandlerDao.class);
-        bind(RestoreCallbackHandlerService.class).to(RestoreCallbackHandlerServiceImpl.class);
-        bind(CheckInactivityService.class).to(CheckInactivityServiceImpl.class);
-        bind(ProjectService.class).to(ProjectServiceImpl.class);
-        if (configuration.getCloudProvider() == CloudProvider.GCP) {
-            bind(BucketService.class).to(BucketServiceGcpImpl.class);
-        }
-    }
+		bind(RESTService.class).toInstance(configuration.getSelfFactory().build(environment, ServiceConsts
+				.SELF_SERVICE_NAME));
+		bind(MetadataHolder.class).to(DockerWarmuper.class);
+		bind(ICommandExecutor.class).to(CommandExecutor.class).asEagerSingleton();
+		bind(ObjectMapper.class).toInstance(new ObjectMapper().configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, true));
+		bind(CallbackHandlerDao.class).to(FileSystemCallbackHandlerDao.class);
+		bind(RestoreCallbackHandlerService.class).to(RestoreCallbackHandlerServiceImpl.class);
+		bind(CheckInactivityService.class).to(CheckInactivityServiceImpl.class);
+		bind(ProjectService.class).to(ProjectServiceImpl.class);
+		if (configuration.getCloudProvider() == CloudProvider.GCP) {
+			bind(BucketService.class).to(BucketServiceGcpImpl.class);
+		} else if (configuration.getCloudProvider() == CloudProvider.AWS) {
+			bind(BucketService.class).to(BucketServiceAwsImpl.class);
+		}
+	}
 }
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProvisioningDevModule.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProvisioningDevModule.java
index 43685a6..f4bbed5 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProvisioningDevModule.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/modules/ProvisioningDevModule.java
@@ -37,6 +37,7 @@ import com.epam.dlab.backendapi.service.RestoreCallbackHandlerService;
 import com.epam.dlab.backendapi.service.impl.CheckInactivityServiceImpl;
 import com.epam.dlab.backendapi.service.impl.ProjectServiceImpl;
 import com.epam.dlab.backendapi.service.impl.RestoreCallbackHandlerServiceImpl;
+import com.epam.dlab.backendapi.service.impl.aws.BucketServiceAwsImpl;
 import com.epam.dlab.backendapi.service.impl.gcp.BucketServiceGcpImpl;
 import com.epam.dlab.cloud.CloudProvider;
 import com.epam.dlab.constants.ServiceConsts;
@@ -82,9 +83,11 @@ public class ProvisioningDevModule extends ModuleBase<ProvisioningServiceApplica
         bind(RestoreCallbackHandlerService.class).to(RestoreCallbackHandlerServiceImpl.class);
         bind(CheckInactivityService.class).to(CheckInactivityServiceImpl.class);
         bind(ProjectService.class).to(ProjectServiceImpl.class);
-        if (configuration.getCloudProvider() == CloudProvider.GCP) {
-            bind(BucketService.class).to(BucketServiceGcpImpl.class);
-        }
+		if (configuration.getCloudProvider() == CloudProvider.GCP) {
+			bind(BucketService.class).to(BucketServiceGcpImpl.class);
+		} else if (configuration.getCloudProvider() == CloudProvider.AWS) {
+			bind(BucketService.class).to(BucketServiceAwsImpl.class);
+		}
     }
 
 	/**
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
index 7859a0a..a44d21f 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
@@ -21,8 +21,6 @@ package com.epam.dlab.backendapi.resources;
 
 import com.epam.dlab.auth.UserInfo;
 import com.epam.dlab.backendapi.service.BucketService;
-import com.google.cloud.storage.Storage;
-import com.google.cloud.storage.StorageOptions;
 import com.google.inject.Inject;
 import io.dropwizard.auth.Auth;
 import lombok.extern.slf4j.Slf4j;
@@ -92,10 +90,4 @@ public class BucketResource {
         bucketService.deleteObject(bucket, object);
         return Response.ok().build();
     }
-
-    public static void main(String[] args) {
-        Storage storage = StorageOptions.getDefaultInstance().getService();
-        String bucketName = "ofuks-1304-prj1-local-bucket";
-        storage.delete(bucketName, "1.txt");
-    }
 }
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/aws/BucketServiceAwsImpl.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/aws/BucketServiceAwsImpl.java
new file mode 100644
index 0000000..8193fde
--- /dev/null
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/aws/BucketServiceAwsImpl.java
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.epam.dlab.backendapi.service.impl.aws;
+
+import com.epam.dlab.backendapi.service.BucketService;
+import com.epam.dlab.dto.bucket.BucketDTO;
+import com.epam.dlab.exceptions.DlabException;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import software.amazon.awssdk.awscore.exception.AwsServiceException;
+import software.amazon.awssdk.core.sync.RequestBody;
+import software.amazon.awssdk.core.sync.ResponseTransformer;
+import software.amazon.awssdk.services.s3.S3Client;
+import software.amazon.awssdk.services.s3.model.DeleteObjectRequest;
+import software.amazon.awssdk.services.s3.model.GetObjectRequest;
+import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
+import software.amazon.awssdk.services.s3.model.PutObjectRequest;
+import software.amazon.awssdk.services.s3.model.S3Object;
+
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+public class BucketServiceAwsImpl implements BucketService {
+
+    @Override
+    public List<BucketDTO> getObjects(String bucket) {
+        try {
+            S3Client s3 = S3Client.create();
+            ListObjectsRequest getRequest = ListObjectsRequest
+                    .builder()
+                    .bucket(bucket)
+                    .build();
+
+            return s3.listObjects(getRequest).contents()
+                    .stream()
+                    .map(o -> toBucketDTO(bucket, o))
+                    .collect(Collectors.toList());
+        } catch (Exception e) {
+            log.error("Cannot retrieve objects from bucket {}. Reason: {}", bucket, e.getMessage());
+            throw new DlabException(String.format("Cannot retrieve objects from bucket %s. Reason: %s", bucket, e.getMessage()));
+        }
+    }
+
+    @Override
+    public void uploadObject(String bucket, String object, InputStream stream) {
+        try {
+            S3Client s3 = S3Client.create();
+            PutObjectRequest uploadRequest = PutObjectRequest
+                    .builder()
+                    .bucket(bucket)
+                    .key(object)
+                    .build();
+            s3.putObject(uploadRequest, RequestBody.fromBytes(IOUtils.toByteArray(stream)));
+        } catch (Exception e) {
+            log.error("Cannot upload object {} to bucket {}. Reason: {}", object, bucket, e.getMessage());
+            throw new DlabException(String.format("Cannot upload object %s to bucket %s. Reason: %s", object, bucket, e.getMessage()));
+        }
+    }
+
+    @Override
+    public byte[] downloadObject(String bucket, String object) {
+        try {
+            S3Client s3 = S3Client.create();
+            GetObjectRequest downloadRequest = GetObjectRequest
+                    .builder()
+                    .bucket(bucket)
+                    .key(object)
+                    .build();
+            return s3.getObject(downloadRequest, ResponseTransformer.toBytes()).asByteArray();
+        } catch (Exception e) {
+            log.error("Cannot download object {} from bucket {}. Reason: {}", object, bucket, e.getMessage());
+            throw new DlabException(String.format("Cannot download object %s from bucket %s. Reason: %s", object, bucket, e.getMessage()));
+        }
+    }
+
+    @Override
+    public void deleteObject(String bucket, String object) {
+        try {
+            S3Client s3 = S3Client.create();
+            DeleteObjectRequest deleteObjectRequest = DeleteObjectRequest
+                    .builder()
+                    .bucket(bucket)
+                    .key(object)
+                    .build();
+            s3.deleteObject(deleteObjectRequest);
+        } catch (AwsServiceException e) {
+            log.error("Cannot delete object {} from bucket {}. Reason: {}", object, bucket, e.getMessage());
+            throw new DlabException(String.format("Cannot delete object %s from bucket %s. Reason: %s", object, bucket, e.getMessage()));
+        }
+    }
+
+    private BucketDTO toBucketDTO(String bucket, S3Object s3Object) {
+        final String size = FileUtils.byteCountToDisplaySize(s3Object.size());
+        Date date = Date.from(s3Object.lastModified());
+        SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
+        return BucketDTO.builder()
+                .bucket(bucket)
+                .object(s3Object.key())
+                .size(size)
+                .lastModifiedDate(formatter.format(date))
+                .build();
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 02/06: Merge remote-tracking branch 'origin/bucket-browser-gcp' into bucket-browser-gcp

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 40d6e90e1d30d51dc6d8e8075a04b99773439f8f
Merge: 5dc1b13 f45a0d7
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Fri Apr 24 11:33:06 2020 +0300

    Merge remote-tracking branch 'origin/bucket-browser-gcp' into bucket-browser-gcp

 .../core/interceptors/http.token.interceptor.ts    |   2 +-
 .../services/applicationServiceFacade.service.ts   |  29 +++
 .../app/core/services/bucket-browser.service.ts    | 153 +++++++++++++
 .../bucket-browser/bucket-browser.component.html   |  90 ++++++++
 .../bucket-browser/bucket-browser.component.scss   | 243 +++++++++++++++++++++
 .../bucket-browser/bucket-browser.component.ts     | 205 +++++++++++++++++
 .../folder-tree/folder-tree.component.html         |  32 +++
 .../folder-tree/folder-tree.component.scss         |  38 ++++
 .../folder-tree/folder-tree.component.ts           | 191 ++++++++++++++++
 .../detail-dialog/detail-dialog.component.html     |   4 +-
 .../detail-dialog/detail-dialog.component.scss     |   1 +
 .../detail-dialog/detail-dialog.component.ts       |  11 +-
 .../src/app/resources/resources.component.html     |   3 +
 .../src/app/resources/resources.component.ts       |   6 +
 .../webapp/src/app/resources/resources.module.ts   |  12 +-
 .../webapp/src/assets/styles/_dialogs.scss         |   1 +
 16 files changed, 1013 insertions(+), 8 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 04/06: Added permissions for bucket browser

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit e84ca635019c375a6ac3089658edcfee72045d18
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Apr 28 12:35:54 2020 +0300

    Added permissions for bucket browser
---
 .../dlab/backendapi/resources/BucketResource.java  |  5 +++
 .../dlab/backendapi/resources/dto/UserRoleDto.java |  1 +
 .../src/main/resources/mongo/aws/mongo_roles.json  | 48 ++++++++++++++++++++++
 .../main/resources/mongo/azure/mongo_roles.json    | 48 ++++++++++++++++++++++
 .../src/main/resources/mongo/gcp/mongo_roles.json  | 48 ++++++++++++++++++++++
 5 files changed, 150 insertions(+)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
index a98daa2..7198e35 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
@@ -27,6 +27,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataParam;
 
+import javax.annotation.security.RolesAllowed;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
@@ -54,6 +55,7 @@ public class BucketResource {
     @Path("/{bucket}/endpoint/{endpoint}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
+    @RolesAllowed("/api/bucket/view")
     public Response getListOfObjects(@Auth UserInfo userInfo,
                                      @PathParam("bucket") String bucket,
                                      @PathParam("endpoint") String endpoint) {
@@ -64,6 +66,7 @@ public class BucketResource {
     @Path("/upload")
     @Consumes(MediaType.MULTIPART_FORM_DATA)
     @Produces(MediaType.APPLICATION_JSON)
+    @RolesAllowed("/api/bucket/upload")
     public Response uploadObject(@Auth UserInfo userInfo,
                                  @FormDataParam("object") String object,
                                  @FormDataParam("bucket") String bucket,
@@ -78,6 +81,7 @@ public class BucketResource {
     @Path("/{bucket}/object/{object}/endpoint/{endpoint}/download")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_OCTET_STREAM)
+    @RolesAllowed("/api/bucket/download")
     public Response downloadObject(@Auth UserInfo userInfo,
                                    @PathParam("bucket") String bucket,
                                    @PathParam("object") String object,
@@ -91,6 +95,7 @@ public class BucketResource {
     @Path("/{bucket}/object/{object}/endpoint/{endpoint}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
+    @RolesAllowed("/api/bucket/delete")
     public Response deleteObject(@Auth UserInfo userInfo,
                                  @PathParam("bucket") String bucket,
                                  @PathParam("object") String object,
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
index 5c90602..84551af 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
@@ -50,6 +50,7 @@ public class UserRoleDto {
 		NOTEBOOK_SHAPE,
 		COMPUTATIONAL_SHAPE,
 		BILLING,
+		BUCKET_BROWSER,
 		ADMINISTRATION
 	}
 }
diff --git a/services/self-service/src/main/resources/mongo/aws/mongo_roles.json b/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
index 9998d84..076dc75 100644
--- a/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
@@ -324,6 +324,54 @@
     ]
   },
   {
+    "_id": "bucketBrowserView",
+    "description": "Allow to view objects within the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/view"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserUpload",
+    "description": "Allow to upload object to the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/upload"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserDownload",
+    "description": "Allow to download object from the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/download"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserDelete",
+    "description": "Allow to delete object from the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/delete"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
     "_id": "admin",
     "description": "Allow to execute administration operation",
     "type": "ADMINISTRATION",
diff --git a/services/self-service/src/main/resources/mongo/azure/mongo_roles.json b/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
index 113a705..886b635 100644
--- a/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
@@ -264,6 +264,54 @@
     ]
   },
   {
+    "_id": "bucketBrowserView",
+    "description": "Allow to view objects within the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/view"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserUpload",
+    "description": "Allow to upload object to the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/upload"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserDownload",
+    "description": "Allow to download object from the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/download"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserDelete",
+    "description": "Allow to delete object from the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/delete"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
     "_id": "admin",
     "description": "Allow to execute administration operation",
     "type": "ADMINISTRATION",
diff --git a/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json b/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
index 8098628..1dc61ae 100644
--- a/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/gcp/mongo_roles.json
@@ -300,6 +300,54 @@
     ]
   },
   {
+    "_id": "bucketBrowserView",
+    "description": "Allow to view objects within the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/view"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserUpload",
+    "description": "Allow to upload object to the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/upload"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserDownload",
+    "description": "Allow to download object from the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/download"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
+    "_id": "bucketBrowserDelete",
+    "description": "Allow to delete object from the bucket",
+    "type": "BUCKET_BROWSER",
+    "cloud": "GCP",
+    "pages": [
+      "/api/bucket/delete"
+    ],
+    "groups": [
+      "$anyuser"
+    ]
+  },
+  {
     "_id": "admin",
     "description": "Allow to execute administration operation",
     "type": "ADMINISTRATION",


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 06/06: Added permission for bucket browser

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch bucket-browser-gcp
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 894465b7f9f87fd435fbb70d39340470f444afc5
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Apr 28 15:51:49 2020 +0300

    Added permission for bucket browser
---
 .../backendapi/resources/dto/HealthStatusPageDTO.java  | 11 +++++++++++
 .../service/impl/InfrastructureInfoServiceImpl.java    | 18 ++++++++++++++++--
 .../src/main/resources/mongo/aws/mongo_roles.json      |  1 +
 .../src/main/resources/mongo/azure/mongo_roles.json    |  1 +
 4 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/HealthStatusPageDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/HealthStatusPageDTO.java
index 17e7b91..4eb0b3b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/HealthStatusPageDTO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/HealthStatusPageDTO.java
@@ -47,4 +47,15 @@ public class HealthStatusPageDTO {
 	private int billingUserQuoteUsed;
 	@JsonProperty
 	private boolean projectAssigned;
+	@JsonProperty
+	private BucketBrowser bucketBrowser;
+
+	@Builder
+	@Data
+	public static class BucketBrowser {
+		private final boolean view;
+		private final boolean upload;
+		private final boolean download;
+		private final boolean delete;
+	}
 }
\ No newline at end of file
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
index b1eac51..4063ca1 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
@@ -29,6 +29,7 @@ import com.epam.dlab.backendapi.domain.ProjectEndpointDTO;
 import com.epam.dlab.backendapi.resources.dto.HealthStatusEnum;
 import com.epam.dlab.backendapi.resources.dto.HealthStatusPageDTO;
 import com.epam.dlab.backendapi.resources.dto.ProjectInfrastructureInfo;
+import com.epam.dlab.backendapi.roles.RoleType;
 import com.epam.dlab.backendapi.roles.UserRoles;
 import com.epam.dlab.backendapi.service.BillingService;
 import com.epam.dlab.backendapi.service.EndpointService;
@@ -55,9 +56,12 @@ import java.util.stream.StreamSupport;
 
 @Slf4j
 public class InfrastructureInfoServiceImpl implements InfrastructureInfoService {
+	private static final String RELEASE_NOTES_FORMAT = "https://github.com/apache/incubator-dlab/blob/%s/RELEASE_NOTES.md";
+	private static final String PERMISSION_VIEW = "/api/bucket/view";
+	private static final String PERMISSION_UPLOAD = "/api/bucket/upload";
+	private static final String PERMISSION_DOWNLOAD = "/api/bucket/download";
+	private static final String PERMISSION_DELETE = "/api/bucket/delete";
 
-	private static final String RELEASE_NOTES_FORMAT = "https://github.com/apache/incubator-dlab/blob/%s" +
-			"/RELEASE_NOTES.md";
 	private final ExploratoryDAO expDAO;
 	private final SelfServiceApplicationConfiguration configuration;
 	private final BillingDAO billingDAO;
@@ -134,6 +138,12 @@ public class InfrastructureInfoServiceImpl implements InfrastructureInfoService
 					.projectAssigned(projectService.isAnyProjectAssigned(userInfo))
 					.billingQuoteUsed(billingDAO.getBillingQuoteUsed())
 					.billingUserQuoteUsed(billingDAO.getBillingUserQuoteUsed(user))
+					.bucketBrowser(HealthStatusPageDTO.BucketBrowser.builder()
+							.view(checkAccess(userInfo, PERMISSION_VIEW))
+							.upload(checkAccess(userInfo, PERMISSION_UPLOAD))
+							.download(checkAccess(userInfo, PERMISSION_DOWNLOAD))
+							.delete(checkAccess(userInfo, PERMISSION_DELETE))
+							.build())
 					.build();
 		} catch (Exception e) {
 			log.warn("Could not return status of resources for user {}: {}", user, e.getLocalizedMessage(), e);
@@ -183,4 +193,8 @@ public class InfrastructureInfoServiceImpl implements InfrastructureInfoService
 
 		return shared;
 	}
+
+	private boolean checkAccess(UserInfo userInfo, String permission) {
+		return UserRoles.checkAccess(userInfo, RoleType.PAGE, permission, userInfo.getRoles());
+	}
 }
diff --git a/services/self-service/src/main/resources/mongo/aws/mongo_roles.json b/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
index 942f281..ee7d97e 100644
--- a/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/aws/mongo_roles.json
@@ -402,6 +402,7 @@
       "/api/settings",
       "/user/settings",
       "/api/project",
+      "/api/project/create",
       "/api/endpoint"
     ],
     "groups": [
diff --git a/services/self-service/src/main/resources/mongo/azure/mongo_roles.json b/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
index f05f3d1..1cd44b1 100644
--- a/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/azure/mongo_roles.json
@@ -342,6 +342,7 @@
       "/api/settings",
       "/user/settings",
       "/api/project",
+      "/api/project/create",
       "/api/endpoint"
     ],
     "groups": [


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org