Commit Graph

1687 Commits

Author SHA1 Message Date
Mia ZHOU
8d66f057cd Fix helm chart getImageLink was deleted by accident
add back getImageLink function
2018-08-06 17:00:08 +08:00
Steven Zou
ecd8cc712d Add 'Deprecated' info for the chart
info returned by getting /charts include 'Deprecated' field
amend error message in the access checking logic
2018-08-06 16:31:41 +08:00
Steven Zou
bc6d7b69e7
Merge pull request #5524 from steven-zou/pro_deletable_enable
Enhance the project deletable checking logic to include helm charts checking
2018-08-06 16:00:38 +08:00
Steven Zou
b501199033 Enhance the project deletable checking logic to include helm charts checking
add utility handler in chart controller to support getting charts by ns
add ut case for utility handler
update deletable checking logic in project controller

refactor project deletable test case
2018-08-06 15:23:50 +08:00
Mia ZHOU
04261687cd Fix ldap cert verify has to align with ldap mode. should not show in other mode.
Fix edit group sccess message.
This pr will focus on 2 issues:
1  In configuration,
LDAP verify cert should only show in ldap mode. It should not show in database mode.
2 When user using ldap mode to login harbor. And edit a group sccessfully, the popup message shows wrong. It should show "Edit group sccess".
2018-08-06 09:43:04 +08:00
Mia ZHOU
034367f202
Merge pull request #5523 from zhoumeina/pr/error_log_fix
Add onError for some logo return 404
2018-08-06 09:18:06 +08:00
Yan
6ed80a370d
Fix go gas issue for chartserver (#5522)
Add the error handling to fix go gas issue "Error unhandled"
2018-08-03 19:25:39 +08:00
Mia ZHOU
4c8976da71 Add onError for some logo return 404
We need to set a default logo for some logo may not exsit
2018-08-03 17:51:57 +08:00
Qian Deng
0f519c9dc9
Merge pull request #5513 from ninjadq/hidden_chart_lib_without_chartmeseum
Hide the helmcharts tab when chart museum is not installed.
2018-08-03 05:41:06 -04:00
Wenkai Yin
5faf41e4a7
Merge pull request #5521 from wy65701436/cherry-pick-gas
Cherry-pick -- Fix security issue found by gas
2018-08-03 16:50:58 +08:00
wangyan
9a95f14918 Cherry-pick -- Fix security issue found by gas 2018-08-03 01:16:53 -07:00
Mia ZHOU
c6665934cd
Merge pull request #5516 from ninjadq/fix_ldap_parameter
Fix bug of repository can not delete on card view
2018-08-03 14:17:21 +08:00
Mia ZHOU
8319cbdc29
Merge pull request #5514 from zhoumeina/pr/fix_tooltip_content
Modify configuration tooltip
2018-08-03 13:54:34 +08:00
Deng, Qian
6a71188ecf Fix bug of repository can not delete on card view
Fix argument types of repo delete function
2018-08-03 13:34:31 +08:00
Mia ZHOU
8e66d90904 Modify cofiguration tooltip
Refine the tooltip content in configuration tooltips
2018-08-03 12:55:35 +08:00
Qian Deng
4cb0a3ee52
Merge pull request #5456 from zhoumeina/pr/fix_access_level_sort
Fix access level can not sort
2018-08-02 22:56:56 -04:00
Deng, Qian
66d85a12b4 Hide the helmcharts tab when chart museum is not installed.
Add parameter for receving chartmuseum installation state.
Using that to decide the presentation of helmchart tab in project.
2018-08-03 10:56:06 +08:00
Wenkai Yin
5f64bc8548
Merge pull request #5450 from ywk253100/180801_job_status
Update job status when failed to submit it
2018-08-03 09:33:39 +08:00
Wenkai Yin
3031e851ea
Merge pull request #5466 from steven-zou/fix_wrong_status_of_prov
Fix issues described in #5464 and #5465
2018-08-02 18:49:45 +08:00
Mia ZHOU
aaf4b49564 Fix remove button not clickable
Remove comment
2018-08-02 16:22:53 +08:00
Steven Zou
ce52f54e29 Fix issues described in #5464 and #5465
return unified error format by the chart repo API
update the prov file status at anytime
2018-08-02 14:07:04 +08:00
System Administrator
54f9b60ea4 Fix access level can not sort
Issue description:
In project list page. User click sort according access level, it does not work.

Fix:

Remodify the compare method.
2018-08-02 13:21:45 +08:00
Deng, Qian
8feb49c64e Feature of helm chart UI
1. Add Charts list view
2. Add Charts card view
3. Add Chart version list view
4. Add chart version card view
5. Add Chart Detail Summary
6. Add Chart Detail Value
6. Add Chart Detail Deps
7. Update nodeclarity Dockerfile
8. Add markdown support
9. Add package-lock file to src
2018-08-01 13:20:06 +08:00
Wenkai Yin
4ecbf3c0f5 Update job status when failed to submit it
Set the status of replication job to "error" when the submitting to jobservice fails
2018-08-01 10:35:01 +08:00
Mia ZHOU
67beabb364 Add ldap admin DN
Problem description:
currently, harbor does not support config ldap admin DN

Enhancement:
Add ldap admin dn in configuration as a optional config.
2018-07-31 16:20:26 +08:00
Qian Deng
3c0bd20d7e
Merge pull request #5439 from zhoumeina/pr/fix_new_group_disable
New group button should disabled when login without ldap
2018-07-31 03:30:23 -04:00
Mia ZHOU
caa98896ae New group button should disabled when login without ldap
Disable "New group" button when user does not login with ldap
2018-07-31 14:19:00 +08:00
Wenkai Yin
3739a96d30
Merge pull request #5436 from reasonerjt/creation-time-sql
Set default creation_time and update_time at model
2018-07-31 13:51:44 +08:00
Daniel Jiang
bda0a92ea9
Merge pull request #5427 from ywk253100/180730_redirect
Remove the URL rewrite for docker registry request
2018-07-31 13:34:15 +08:00
Daniel Jiang
6062bf279b Set default creation_time and update_time at model
This commit set the default value of creation_time and update_time to
data objects by adding `orm:add_now` annotations.
2018-07-31 12:56:14 +08:00
Mia ZHOU
1af3bcd93d Fix Repositories card view title displayed wrong
Problem Description:

In the card view of repositories, if the title is long, it can not show all the text.

Fix:

Add css

    overflow: hidden;
    text-overflow: ellipsis;
    word-wrap:break-word;
    white-space: nowrap

in mixin files, and tooltip to show all the text.
2018-07-31 10:51:42 +08:00
Qian Deng
43774df6f3
Merge pull request #5426 from zhoumeina/pr/fix_remove_button_not_clickable
Fix remove button not clickable
2018-07-30 05:27:04 -04:00
Wenkai Yin
7e6a13915b Remove the URL rewrite for docker registry request
This commit redirects the request to UI directory without URL rewrite
2018-07-30 17:24:15 +08:00
Wenkai Yin
48489bf7ae
Merge pull request #5424 from steven-zou/add_more_ut_cases
Add more UT cases for chart repo API controller
2018-07-30 15:20:22 +08:00
Mia ZHOU
52634dcec4 Fix remove button not clickable
Problem description:
In member tab, Action->remove is not clickable in production mode.

Root cause analysis:

Some style for clarity checkbox impact dropdown menu.

Fix:
We do a quick fix in member.component.scss. Set checkbox in this component
position:inherit;

This will overide the clarity original style
2018-07-30 14:01:19 +08:00
Steven Zou
34db0d9c8a Add more UT cases for chart repo API controller
case for testing require access
case for testing require namespace
case for testing multipart checking
case for testing URL rewriting
2018-07-30 13:25:11 +08:00
Steven Zou
4b1f0470ca Provide digital signature info of the related chart version 2018-07-27 15:07:22 +08:00
Wenkai Yin
2a40068d75 Fix cross slot issue of redis
This commit upgrdes the github.com/gocraft/work package to 0.5.1 and updates the namespace value
to fix the redis cross slot issue mentioned in #4633
2018-07-27 14:23:39 +08:00
Steven Zou
cfefcb7450
Merge pull request #5399 from steven-zou/fix_access_control_issue
Fix the access control checking issue
2018-07-26 15:27:30 +08:00
Mia ZHOU
4ff45b0624 Use capitalize in configuration dropdown menu
Problem Description:
configuration dropdown menu use all uppercase letters.

Fix:
Modify all of them in capitalize letters.

Note:Try to use css text-transform:Caplitalize but not working, if anyone know the reason, please kindly tell me.
2018-07-26 14:40:12 +08:00
Steven Zou
01fb95062c Fix the access control checking issue
should check access first, then check authentication
return 401/403 accroding to the checking results properly
2018-07-26 14:28:16 +08:00
Mia ZHOU
397af582a2 Replicate project error message is not correct
Problem description:
when user try to new a replication rule, he need to input source project name.
In this case, if user input a project name not exist. The error message will be:"Please add a project name",
this is not accurate.

Fix:
Modify the error message to "This project is not exist".

Plus:Modify the error popup using standard tooltip component.
2018-07-26 13:37:45 +08:00
Daniel Jiang
97fb67f835 No scan all policy if Clair is not installed.
This commit fixes #5283 by not registering scan all policy when Harbor
is not deployed with Clair.
2018-07-25 19:52:16 +08:00
Mia ZHOU
9fba539bd4
Merge pull request #5392 from zhoumeina/new_label_fix
Fix configuration->label->new sometimes not enable.
2018-07-25 18:32:16 +08:00
Mia ZHOU
60f83843e3 Fix configuration->label->new sometimes not enable.
Problem description:
1 label enable sometimes not correct. User input good label names, submit button still disabled.
2 Some times click submit, not working.

Fix:

1 After review the new label code. It trying to use a global variable to control the progress of validation. In the progress of validation, it will disabled the submit button.

This will cause user bad experience. Just remove this logic.

2 Backend use fuzzy matching, the frontend logic did not change before. So when user already have a user name called "abcd",and then input another name called "abc" it will report duplicated name error.
This logic still need change.

3 This is the first version of refine. Can be refine again if find some other logic not correct.
2018-07-25 17:47:22 +08:00
Steven Zou
b8c7a8cb68
Merge pull request #5393 from steven-zou/fix_content_length_issue
Set the content length to -1 to let the reader read all the uploading…
2018-07-25 17:08:32 +08:00
Steven Zou
850af80762 Set the content length to -1 to let the reader read all the uploading contents in the request 2018-07-25 16:25:44 +08:00
Mia ZHOU
50678523c4 Notification should not hide content according to ux
Issue description:
Notification will hide some content when it popup.

According to ux requirement, we should make it not extend to the whole widh of UI, and should not hide the content.

Fix:
Use clarity alert-app-level style,it will show as ux design,and text in center too.
2018-07-25 11:29:08 +08:00
Steven Zou
07bfad968a Update content length of request when rewriting the content 2018-07-24 23:10:42 +08:00
Qian Deng
7ee2e1053e
Merge pull request #5383 from zhoumeina/notification_ui_refine
Notification should not hide content according to ux
2018-07-24 10:00:33 -04:00
Mia ZHOU
2240693a1d Notification should not hide content according to ux
Issue description:
Notification will hide some content when it popup.

According to ux requirement, we should make it not extend to the whole widh of UI, and should not hide the content.

Fix:
Modify the position from 'absolute' to 'relative', so that it will not hide the content.
2018-07-24 17:56:46 +08:00
stonezdj
9b209858f4 Ldap_group_admin_dn can not updated via rest 2018-07-24 17:47:57 +08:00
Qian Deng
eafee964c1
Merge pull request #5372 from zhoumeina/fix_configuration_button_validation
Fix issue install clair the first time use scan will have undefined e…
2018-07-24 02:07:59 -04:00
Mia ZHOU
19e2a9ad1b Fix issue install clair the first time use scan will have undefined error
Description:
Reproduce Steps:
1 User install Clair
2 User use scan to scan the image
2 There will be a notification pop with undefined error
Root cause:
In result-bar-chart-component.ts  copyValue function
  this.summary.scan_status = newVal.scan_status;
It try to set scan status to summary object.
Somehow, the first time summary is undefined. It will cause this error.

Fix:
1 Do a empty check before assign value to a object.
2 Set a default value to summary.
2018-07-24 13:36:39 +08:00
silenceshell
7745b79b2e var name should not be error (#5332)
Rename the variable names from "error" to "err"
2018-07-24 11:33:21 +08:00
Steven Zou
9f0f959749 Fix the multipart form data content missing issue by refill the content again before passing to the backend server
refill the multipart form data at harbor API layer
export write error functions from the chartserver package
refactor the error format to be compatiable with push plugin
2018-07-24 10:32:20 +08:00
Steven Zou
405e89158a
Merge pull request #5364 from steven-zou/fix_file_missing_issue
Fix the issue of returning '* file not found' error
2018-07-23 15:32:02 +08:00
Steven Zou
2f0b706f84 Fix the issue of returning '* file not found' error
return default empty when file is not existing
2018-07-23 14:53:40 +08:00
Daniel Jiang
b9762afbdd Clean up vendor folder
Add `prune` section to Gopkg.toml to remove the unused packages from
vendor folder.
Update the reference of `semver` and `distribution` repo.
2018-07-23 14:40:25 +08:00
Steven Zou
bb380e6dbc
Merge pull request #5314 from steven-zou/chart_repo_supporting
Refactor chart API endpoints
2018-07-20 20:43:55 +08:00
Steven Zou
0227a1315a Keep the chart server related configurations in adminserver
append chart server related config options to the supporting list of adminserver
provide chart server related config access method in the API layer
update prepare script and ui env template file to enable cache driver config for chart server API
append flag info in the systeminfo API to indicate if chart server is deployed with Harbor
refactor the response rewriting logic to return structual error object
add api init method to initilizing objects required in API handlers
chage owner of the storage folder
update offline/online package scripts in Harbor-Util.robot
2018-07-20 19:40:33 +08:00
Yan
efdb57548f
add admin job api (#5344)
It supports Harbor admin to trigger job either manual or
schedule. The job will be populated to job service to execute. 
The api includes:
1. POST /api/system/gc
2, GET /api/system/gc/:id 
3, GET /api/system/gc/:id/log
4, PUT/GET/POST /api/system/gc/schedule
2018-07-20 19:22:37 +08:00
Steven Zou
726d81803b Fix conflicts in Makefiles and prepare script files with upstream 2018-07-19 03:17:05 -07:00
stonezdj
f5e82f75a7 Add SafeCast function and set default value for some sytem configure
Add SafeCastString, SafeCastInt, SafeCastFloat64, SafeCastBool function to check
the type matched and avoid panic in runtime

Add default value to configure settings to avoid cannot save configure
issue
2018-07-17 17:00:06 +08:00
Yan
9e65499c10
Add garbage collection job implemention, this job could (#5268)
be triggered by manual and schedule. It calls registrtctl
to do the GC job, and log the output.
2018-07-16 18:08:40 +08:00
Yan
d5b85a6748
Add the registry controller httpserver, it's responsible for controlling (#5265)
docker regsitry. This version has the API to call regsitry GC with jobservice
secret. Seprates it into a standalone container as do not want to invoke two
processes in one container.

It needs to mount the registry storage into this container in order to do GC,
and needs to copy the registry binary into it.
2018-07-16 16:50:28 +08:00
Steven Zou
b572e64a68 Refactor chart API endpoints
add /chartrepo after /api
add /chartrepo before /index.yaml,/:repo/index.yaml and /:repo/charts/:filename
add debug messages to the potential debug points
add more supporting mime types "multipart/form-data", "application/octet-stream" to the API endpoints

update travis file to inject ENV for UT cases of chart repo
2018-07-16 14:33:39 +08:00
Wenkai Yin
8a92019e8e
Merge pull request #5310 from reasonerjt/adminserver-update-schema
Let adminserver initialise the DB schema.
2018-07-16 12:52:11 +08:00
Daniel Jiang
0d6ea995e1 Let adminserver initialise the DB schema.
This commit make update to remove the code from ui container to init the
DB schema.  As UI has dependency on admin server, so it's safe to assume
adminserver has to be ready first.  Regardless the setting of the config
store of admin server, it will try to access and intialize the schema of
database.
2018-07-13 17:32:17 +08:00
Daniel Jiang
8f8a6a1fc9
Merge pull request #5304 from steven-zou/chart_repo_supporting
Add API routes of chart repo services in harbor API router
2018-07-13 16:55:49 +08:00
Steven Zou
3a44f76b94 Add API routes of chart repo services in harbor API router
add chart repo API controller
update GetChartVersion to extract repo name from the request
update the corresponding UI cases

update the chart controller initialization process
2018-07-13 16:10:46 +08:00
timchenxiaoyu
a912a55ac2 add sync registry env (#5294)
By default Harbor will call catalog API of registry and sync the result to DB, this becomes problematic when registry is configured to custom storage service, there maybe inconsistent result and the whole process may be very time consuming.
So in this commit a env var SYNC_REGISTRY is introduced if user want Harbor to sync the repo when it starts up, by default it's false.
2018-07-13 11:15:41 +08:00
Daniel Jiang
e415d56099
Merge pull request #5258 from steven-zou/chart_repo_supporting
Implement the API services to support chart repo functions
2018-07-11 18:46:36 +08:00
Steven Zou
6ea9291c09 Refactor code after PR reviewing
pass cache config to the constructor of chart cache
use break loop to instead of return in GetIndexYaml
fix typo reids to redis
pass credential to the reverse proxy and chart client via constructors
2018-07-11 17:31:34 +08:00
Steven Zou
da4359f56b Add UT cases for the code of supporting chart repo server
add UT cases for cache
add UT cases for ChartOperator
add UT cases for the main API service of chart server
export some consts in the security.go of filter package to let them visible in chartserver package
2018-07-11 13:55:35 +08:00
Steven Zou
44cbb29664 Add cache support for the querying of chart details
support in memory cache
support redis cache
2018-07-08 11:17:55 +08:00
Steven Zou
7d782c41fc Implement the functions of getting chart version details and chart lists
getting chart list returns chart list instead of map and provides total versions info
getting chart details will return dependencies and values besides the metatdata of the chart version
2018-07-06 20:53:13 +08:00
Daniel Jiang
ad7a85da51
Merge pull request #5200 from stonezdj/add_group_search_api
Add REST API to search LDAP by Group DN
2018-07-06 15:10:31 +08:00
Steven Zou
b65cc34c70 Implement a unified index.yaml entrypoint service to support namespace isolations
replace the helm package from github.com to k8s.io
implement /index.yaml service API
2018-07-05 18:07:00 +08:00
stonezdj
62acdb14f3 Add settings to define admin with LDAP group DN 2018-07-05 14:46:44 +08:00
stonezdj
2494a7aaab Add REST API to search LDAP by Group DN
Used to verify and search DN when adding group member to project
2018-07-05 12:55:44 +08:00
Daniel Jiang
e1474ac50b
Merge pull request #5242 from steven-zou/chart_repo_supporting
Implement the related handler methods of the transparent operations
2018-07-04 21:16:07 +08:00
Steven Zou
ce4e5ac01d Implement the related handler methods of the transparent operations based on proxy
support index file
support object downloading
support health checking
support related manipulating operations except getting chart version
2018-07-03 21:36:20 +08:00
Steven Zou
6dfccc7dea
Merge pull request #5074 from ninjadq/ldap_search_ui
Add LDAP search UI
2018-07-03 15:30:18 +08:00
Deng, Qian
72dfdd552f Add ldap serach
1. Add group management
2. Add rewrite import user to member ui
3. Add import group to member
4. Add new items in configuration page
2018-07-03 14:00:59 +08:00
Daniel Jiang
b02d100fb5
Merge pull request #5234 from steven-zou/chart_repo_supporting
Define the related handlers to handler the requests of chart server/repo
2018-07-03 11:05:11 +08:00
Deng, Qian
edbe2fe620 Update migrator to 1 6 0
1. Add new alembic_pg folder for postgres
2. Add migration file for 1.6.0
3. Update version to 1.6.0
4. update migrator dockerfile
2018-07-02 21:23:47 +08:00
Steven Zou
54a0d10994 Define the related handlers to handler the requests of chart server/repo
add chartserver directory to put chart server code
add controller to coordinate the flow
add base/repo/manipulation handlers to handle requests
add operator to parse more details of chart version
call dep ensure
2018-07-02 19:34:04 +08:00
Daniel Jiang
1afb09b6cf
Merge pull request #5194 from ywk253100/180626_search
Fix bug in search API
2018-06-29 21:13:09 +08:00
Qian Deng
3ba302622c
Merge pull request #5213 from vmware/replication_by_label_ui
Label filter UI for replication
2018-06-29 07:44:26 -04:00
Daniel Jiang
aef3213dfa
Merge pull request #5190 from stonezdj/reload_config
Fix issue that harbor tile can not save customized settings
2018-06-29 13:04:36 +08:00
Daniel Jiang
c9b1962b1e Initialise Harbor DB schema in Harbor UI/adminserver container
This commit fixes #5040, the harbor-db image will only contain empty
databases, and harbor ui container will use migrate tool to run initial
SQL scripts to do initialization.  This is helpful for the case to
configure Harbor against external DB or DBaaS like RDS for HA deployment
However, this change will results some confusion as there are two tables
to track schema versions have been using alembic for migration, for this
release we'll try to use alembic to mock a `migration` table during
upgrade so the migrator will be bypassed, in future we'll consider to
consolidate to the golang based migrator.
Another issue is that the UI and adminserver containers will access DB
after start up in different congurations, can't ensure the sequence, so
both of them will try to update the schema when started up.
2018-06-28 16:22:53 +08:00
stonezdj
72e9b22e10 Fix issue that harbor tile can not save customized settings 2018-06-28 16:20:10 +08:00
Wenkai Yin
982760a132 Fix bug in search API
Refactor the logic of search API to fix bug mentioned in issue #5156 and #3838
2018-06-27 12:51:08 +08:00
Wenkai Yin
66811b3289
Merge pull request #5160 from ywk253100/180619_response_code
Parse the error got from jobservice, fix #5047
2018-06-22 17:17:26 +08:00
stonezdj
d6a4d79a03 Handle Invalid syntax and not found error 2018-06-20 14:27:29 +08:00
Wenkai Yin 79628
078360a021 Parse the error got from jobservice, fix #5047
Parse the error got from jobservice, and return the corresponding HTTP code if it's a HTTP error to caller
2018-06-19 13:30:06 +08:00
Daniel Jiang
1fae22add1
Merge pull request #5157 from pengpengshui/repLabelNew
Add replication rule label filter function #4861
2018-06-16 04:40:56 +08:00
pfh
ffbcdf62a0 Modify small bugs about code 2018-06-15 17:46:00 +08:00
pfh
963830b9d1 Add replication rule label filter 2018-06-15 11:03:47 +08:00