mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-23 18:55:18 +01:00
9e55afbb9a
pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com>
446 lines
20 KiB
Plaintext
446 lines
20 KiB
Plaintext
# Copyright Project Harbor Authors
|
|
#
|
|
# Licensed 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
|
|
|
|
*** Settings ***
|
|
Documentation This resource provides any keywords related to the Harbor private registry appliance
|
|
Resource ../../resources/Util.robot
|
|
|
|
*** Variables ***
|
|
|
|
*** Keywords ***
|
|
Init LDAP
|
|
${rc} ${output}= Run And Return Rc And Output ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'
|
|
Log ${output}
|
|
Sleep 2
|
|
Input Text xpath=//*[@id='ldapUrl'] ldaps://${output}
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapSearchDN'] cn=admin,dc=example,dc=com
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapSearchPwd'] admin
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapBaseDN'] dc=example,dc=com
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapFilter'] (&(objectclass=inetorgperson)(memberof=cn=harbor_users,ou=groups,dc=example,dc=com))
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapUid'] cn
|
|
Sleep 1
|
|
Disable Ldap Verify Cert Checkbox
|
|
Retry Element Click xpath=${config_auth_save_button_xpath}
|
|
Sleep 2
|
|
Retry Element Click xpath=/html/body/harbor-app/harbor-shell/clr-main-container/div/div/config/div/div/div/button[3]
|
|
Sleep 1
|
|
|
|
Switch To Configure
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
|
|
Test Ldap Connection
|
|
${rc} ${output}= Run And Return Rc And Output ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'
|
|
Log ${output}
|
|
Sleep 2
|
|
Input Text xpath=//*[@id='ldapUrl'] ldaps://${output}
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapSearchDN'] cn=admin,dc=example,dc=com
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapSearchPwd'] admin
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapBaseDN'] dc=example,dc=com
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='ldapUid'] cn
|
|
Sleep 1
|
|
|
|
# default is checked, click test connection to verify fail as no cert.
|
|
Retry Element Click xpath=${test_ldap_xpath}
|
|
Sleep 1
|
|
Wait Until Page Contains Failed to verify LDAP server with error
|
|
Sleep 5
|
|
|
|
Disable Ldap Verify Cert Checkbox
|
|
# ldap checkbox unchecked, click test connection to verify success.
|
|
Sleep 1
|
|
Retry Element Click xpath=${test_ldap_xpath}
|
|
Wait Until Page Contains Connection to LDAP server is verified timeout=15
|
|
|
|
Test LDAP Server Success
|
|
Retry Element Click xpath=${test_ldap_xpath}
|
|
Wait Until Page Contains Connection to LDAP server is verified timeout=15
|
|
|
|
Disable Ldap Verify Cert Checkbox
|
|
Mouse Down xpath=//*[@id='clr-checkbox-ldapVerifyCert']
|
|
Mouse Up xpath=//*[@id='clr-checkbox-ldapVerifyCert']
|
|
Sleep 2
|
|
Ldap Verify Cert Checkbox Should Be Disabled
|
|
|
|
Ldap Verify Cert Checkbox Should Be Disabled
|
|
Checkbox Should Not Be Selected xpath=//*[@id='clr-checkbox-ldapVerifyCert']
|
|
|
|
Set Pro Create Admin Only
|
|
#set limit to admin only
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
Sleep 2
|
|
Retry Element Click xpath=${configuration_system_tabsheet_id}
|
|
Sleep 1
|
|
Retry Element Click xpath=//select[@id='proCreation']
|
|
Retry Element Click xpath=//select[@id='proCreation']//option[@value='adminonly']
|
|
Sleep 1
|
|
Retry Element Click xpath=${config_system_save_button_xpath}
|
|
|
|
Set Pro Create Every One
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
sleep 1
|
|
#set limit to Every One
|
|
Retry Element Click xpath=${configuration_system_tabsheet_id}
|
|
Sleep 1
|
|
Retry Element Click xpath=//select[@id='proCreation']
|
|
Retry Element Click xpath=//select[@id='proCreation']//option[@value='everyone']
|
|
Sleep 1
|
|
Retry Element Click xpath=${config_system_save_button_xpath}
|
|
Sleep 2
|
|
|
|
Disable Self Reg
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
Mouse Down xpath=${self_reg_xpath}
|
|
Mouse Up xpath=${self_reg_xpath}
|
|
Sleep 1
|
|
Self Reg Should Be Disabled
|
|
Retry Element Click xpath=${config_auth_save_button_xpath}
|
|
Sleep 1
|
|
|
|
Enable Self Reg
|
|
Mouse Down xpath=${self_reg_xpath}
|
|
Mouse Up xpath=${self_reg_xpath}
|
|
Sleep 1
|
|
Self Reg Should Be Enabled
|
|
Retry Element Click xpath=${config_auth_save_button_xpath}
|
|
Sleep 1
|
|
|
|
Self Reg Should Be Disabled
|
|
Checkbox Should Not Be Selected xpath=${self_reg_xpath}
|
|
|
|
Self Reg Should Be Enabled
|
|
Checkbox Should Be Selected xpath=${self_reg_xpath}
|
|
|
|
Project Creation Should Display
|
|
Retry Wait Until Page Contains Element xpath=${project_create_xpath}
|
|
|
|
Project Creation Should Not Display
|
|
Retry Wait Until Page Not Contains Element xpath=${project_create_xpath}
|
|
|
|
Switch To System Settings
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
Retry Element Click xpath=${configuration_system_tabsheet_id}
|
|
|
|
Switch To Project Quotas
|
|
Sleep 1
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
Sleep 1
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav//a[contains(.,'Project Quotas')]
|
|
Sleep 1
|
|
|
|
Switch To Distribution
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav-group//span[contains(.,'Distributions')]
|
|
|
|
Switch To Robot Account
|
|
Sleep 1
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav-group//span[contains(.,'Robot Accounts')]
|
|
Sleep 1
|
|
|
|
Modify Token Expiration
|
|
[Arguments] ${minutes}
|
|
Input Text xpath=//*[@id='tokenExpiration'] ${minutes}
|
|
Click Button xpath=${config_system_save_button_xpath}
|
|
Sleep 1
|
|
|
|
Token Must Be Match
|
|
[Arguments] ${minutes}
|
|
Textfield Value Should Be xpath=//*[@id='tokenExpiration'] ${minutes}
|
|
|
|
Robot Account Token Must Be Match
|
|
[Arguments] ${days}
|
|
Textfield Value Should Be xpath=//*[@id='robotTokenExpiration'] ${days}
|
|
|
|
## Replication
|
|
Check Verify Remote Cert
|
|
Mouse Down xpath=//*[@id='clr-checkbox-verifyRemoteCert']
|
|
Mouse Up xpath=//*[@id='clr-checkbox-verifyRemoteCert']
|
|
Retry Element Click xpath=${config_save_button_xpath}
|
|
Sleep 1
|
|
|
|
Switch To System Replication
|
|
Sleep 1
|
|
Switch To Configure
|
|
Retry Element Click xpath=//*[@id='config-replication']
|
|
Sleep 1
|
|
|
|
Should Verify Remote Cert Be Enabled
|
|
Checkbox Should Not Be Selected xpath=//*[@id='clr-checkbox-verifyRemoteCert']
|
|
|
|
Set Scan All To None
|
|
Retry Element Click //vulnerability-config//select
|
|
Retry Element Click //vulnerability-config//select/option[@value='none']
|
|
sleep 1
|
|
Retry Element Click ${vulnerbility_save_button_xpath}
|
|
|
|
Set Scan All To Daily
|
|
Retry Element Click //vulnerability-config//select
|
|
Retry Element Click //vulnerability-config//select/option[@value='daily']
|
|
sleep 1
|
|
Retry Element Click ${vulnerbility_save_button_xpath}
|
|
|
|
Click Scan Now
|
|
Retry Element Click //vulnerability-config//button[contains(.,'SCAN')]
|
|
|
|
|
|
Enable Read Only
|
|
${rc} ${output}= Run And Return Rc And Output curl -u admin:Harbor12345 -s --insecure -H "Content-Type: application/json" -X PUT -d '{"read_only":true}' "https://${ip}/api/v2.0/configurations"
|
|
Log To Console ${output}
|
|
Should Be Equal As Integers ${rc} 0
|
|
|
|
Disable Read Only
|
|
${rc} ${output}= Run And Return Rc And Output curl -u admin:Harbor12345 -s --insecure -H "Content-Type: application/json" -X PUT -d '{"read_only":false}' "https://${ip}/api/v2.0/configurations"
|
|
Log To Console ${output}
|
|
Should Be Equal As Integers ${rc} 0
|
|
|
|
## System labels
|
|
Switch To System Labels
|
|
Sleep 1
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav//a[contains(.,'Labels')]
|
|
|
|
Switch To Configuration System Setting
|
|
Sleep 1
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
Retry Element Click xpath=${configuration_system_tabsheet_id}
|
|
|
|
Switch To Configuration Security
|
|
Retry Element Click xpath=${configuration_xpath}
|
|
Retry Double Keywords When Error Retry Element Click xpath=${configuration_security_tabsheet_id} Retry Wait Until Page Contains Deployment security
|
|
|
|
Switch To Configuration Project Quotas
|
|
Sleep 1
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav//a[contains(.,'Project Quotas')]
|
|
|
|
Create New Labels
|
|
[Arguments] ${labelname}
|
|
Retry Element Click xpath=//button[contains(.,'New Label')]
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='name'] ${labelname}
|
|
Sleep 1
|
|
Retry Element Click xpath=//hbr-create-edit-label//clr-dropdown/clr-icon
|
|
Sleep 1
|
|
Retry Element Click xpath=//hbr-create-edit-label//clr-dropdown-menu/label[1]
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='description'] global
|
|
Retry Element Click xpath=//div/form/section/label[4]/button[2]
|
|
Wait Until Page Contains ${labelname}
|
|
|
|
Update A Label
|
|
[Arguments] ${labelname}
|
|
Retry Element Click xpath=//clr-dg-row[contains(.,'${labelname}')]//div[contains(@class,'clr-checkbox-wrapper')]//label[contains(@class,'clr-control-label')]
|
|
Sleep 1
|
|
Retry Element Click xpath=//button[contains(.,'Edit')]
|
|
Sleep 1
|
|
Input Text xpath=//*[@id='name'] ${labelname}1
|
|
Sleep 1
|
|
Retry Element Click xpath=//hbr-create-edit-label//form/section//button[2]
|
|
Wait Until Page Contains ${labelname}1
|
|
|
|
Delete A Label
|
|
[Arguments] ${labelname}
|
|
Retry Element Click xpath=//clr-dg-row[contains(.,'${labelname}')]//div[contains(@class,'clr-checkbox-wrapper')]//label[contains(@class,'clr-control-label')]
|
|
Sleep 1
|
|
Retry Element Click xpath=//button[contains(.,'Delete')]
|
|
Sleep 3
|
|
Retry Element Click xpath=//clr-modal//div//button[contains(.,'DELETE')]
|
|
Wait Until Page Contains Element //*[@id='contentAll']//div[contains(.,'${labelname}')]/../div/clr-icon[@shape='success-standard']
|
|
|
|
Add Items To System CVE Allowlist
|
|
[Arguments] ${cve_id}
|
|
Retry Element Click ${configuration_system_wl_add_btn}
|
|
Retry Text Input ${configuration_system_wl_textarea} ${cve_id}
|
|
Retry Element Click ${configuration_system_wl_add_confirm_btn}
|
|
Retry Element Click ${config_security_save_button_xpath}
|
|
|
|
Delete Top Item In System CVE Allowlist
|
|
[Arguments] ${count}=1
|
|
FOR ${idx} IN RANGE 1 ${count}
|
|
Retry Element Click ${configuration_system_wl_delete_a_cve_id_icon}
|
|
END
|
|
Retry Element Click ${config_security_save_button_xpath}
|
|
|
|
Set CVE Allowlist Expires
|
|
[Arguments] ${expired}
|
|
Retry Button Click ${cve_allowlist_expires_btn}
|
|
${element}= Set Variable If ${expired} ${cve_allowlist_expires_yesterday} ${cve_allowlist_expires_tomorrow}
|
|
Retry Element Click ${element}
|
|
Retry Element Click //button[contains(.,'SAVE')]
|
|
|
|
Get Project Count Quota Text From Project Quotas List
|
|
[Arguments] ${project_name}
|
|
Switch To Project Quotas
|
|
${count_quota}= Get Text xpath=//project-quotas//clr-datagrid//clr-dg-row[contains(.,'${project_name}')]//clr-dg-cell[3]//label
|
|
[Return] ${count_quota}
|
|
|
|
Get Project Storage Quota Text From Project Quotas List
|
|
[Arguments] ${project_name}
|
|
Switch To Configure
|
|
Switch To Project Quotas
|
|
${storage_quota}= Get Text xpath=//project-quotas//clr-datagrid//clr-dg-row[contains(.,'${project_name}')]//clr-dg-cell[3]//label
|
|
[Return] ${storage_quota}
|
|
|
|
Check Automatic Onboarding And Save
|
|
Switch To Configure
|
|
Retry Element Click ${cfg_auth_automatic_onboarding_checkbox}
|
|
Retry Element Click xpath=${config_auth_save_button_xpath}
|
|
|
|
Set User Name Claim And Save
|
|
[Arguments] ${type}
|
|
Switch To Configure
|
|
Retry Clear Element Text ${cfg_auth_user_name_claim_input}
|
|
Run Keyword If '${type}'=='${null}' Retry Text Input ${cfg_auth_user_name_claim_input} anytext
|
|
... ELSE Retry Text Input ${cfg_auth_user_name_claim_input} ${type}
|
|
Retry Element Click xpath=${config_auth_save_button_xpath}
|
|
|
|
Select Distribution
|
|
[Arguments] ${name}
|
|
Retry Element Click //clr-dg-row[contains(.,'${name}')]//div[contains(@class,'clr-checkbox-wrapper')]/label[contains(@class,'clr-control-label')]
|
|
|
|
Distribution Exist
|
|
[Arguments] ${name} ${endpoint}
|
|
Retry Wait Until Page Contains Element //clr-dg-row[contains(.,'${name}') and contains(.,'${endpoint}')]
|
|
|
|
Distribution Not Exist
|
|
[Arguments] ${name} ${endpoint}
|
|
Retry Wait Until Page Not Contains Element //clr-dg-row[contains(.,'${name}') and contains(.,'${endpoint}')]
|
|
|
|
Filter Distribution List
|
|
[Arguments] ${name} ${endpoint} ${exsit}=${true}
|
|
Retry Double Keywords When Error Retry Element Click ${filter_dist_btn} Wait Until Element Is Visible And Enabled ${filter_dist_input}
|
|
Retry Text Input ${filter_dist_input} ${name}
|
|
Run Keyword If ${exsit}==${true} Distribution Exist ${name} ${endpoint}
|
|
... ELSE Distribution Not Exist ${name} ${endpoint}
|
|
|
|
Select Provider
|
|
[Arguments] ${provider}
|
|
Retry Element Click ${distribution_provider_select_id}
|
|
Retry Element Click ${distribution_provider_select_id}//option[contains(.,'${provider}')]
|
|
|
|
Set Authcode
|
|
[Arguments] ${auth_code}
|
|
Retry Element Click ${distribution_provider_authmode_id}
|
|
Retry Text Input ${distribution_provider_authcode_id} ${auth_code}
|
|
|
|
Create An New Distribution
|
|
[Arguments] ${provider} ${name} ${endpoint} ${auth_token}
|
|
Switch To Distribution
|
|
Retry Element Click ${distribution_add_btn_id}
|
|
Select Provider ${provider}
|
|
Retry Text Input ${distribution_name_input_id} ${name}
|
|
Retry Text Input ${distribution_endpoint_id} ${endpoint}
|
|
Set Authcode ${auth_token}
|
|
Retry Double Keywords When Error Retry Element Click ${distribution_add_save_btn_id} Retry Wait Until Page Not Contains Element xpath=${distribution_add_save_btn_id}
|
|
Distribution Exist ${name} ${endpoint}
|
|
|
|
Delete A Distribution
|
|
[Arguments] ${name} ${endpoint} ${deletable}=${true}
|
|
${is_exsit} evaluate not ${deletable}
|
|
Switch To Distribution
|
|
Filter Distribution List ${name} ${endpoint}
|
|
Retry Double Keywords When Error Select Distribution ${name} Wait Until Element Is Visible //clr-datagrid//clr-dg-footer//clr-checkbox-wrapper/label[contains(@class,'clr-control-label')]
|
|
Retry Double Keywords When Error Retry Element Click ${distribution_action_btn_id} Wait Until Element Is Visible And Enabled ${distribution_del_btn_id}
|
|
Retry Double Keywords When Error Retry Element Click ${distribution_del_btn_id} Wait Until Element Is Visible And Enabled ${delete_confirm_btn}
|
|
Retry Double Keywords When Error Retry Element Click ${delete_confirm_btn} Retry Wait Until Page Not Contains Element ${delete_confirm_btn}
|
|
Filter Distribution List ${name} ${endpoint} exsit=${is_exsit}
|
|
|
|
Edit A Distribution
|
|
[Arguments] ${name} ${endpoint} ${new_endpoint}=${null}
|
|
Switch To Distribution
|
|
Filter Distribution List ${name} ${endpoint}
|
|
Retry Double Keywords When Error Select Distribution ${name} Wait Until Element Is Visible //clr-datagrid//clr-dg-footer//clr-checkbox-wrapper/label[contains(@class,'clr-control-label')] times=9
|
|
Retry Double Keywords When Error Retry Element Click ${distribution_action_btn_id} Wait Until Element Is Visible And Enabled ${distribution_edit_btn_id}
|
|
Retry Double Keywords When Error Retry Element Click ${distribution_edit_btn_id} Wait Until Element Is Visible And Enabled ${distribution_name_input_id}
|
|
Retry Text Input ${distribution_endpoint_id} ${new_endpoint}
|
|
Retry Double Keywords When Error Retry Element Click ${distribution_add_save_btn_id} Retry Wait Until Page Not Contains Element xpath=${distribution_add_save_btn_id}
|
|
Filter Distribution List ${name} ${new_endpoint}
|
|
Distribution Exist ${name} ${new_endpoint}
|
|
|
|
Set Audit Log Forward
|
|
[Arguments] ${syslog_endpoint} ${expected_msg}
|
|
Switch To System Settings
|
|
Run Keyword If '${syslog_endpoint}' == '${null}' Press Keys ${audit_log_forward_syslog_endpoint_input_id} CTRL+a BACKSPACE
|
|
... ELSE Retry Text Input ${audit_log_forward_syslog_endpoint_input_id} ${syslog_endpoint}
|
|
Retry Double Keywords When Error Retry Element Click ${config_save_button_xpath} Retry Wait Until Page Contains ${expected_msg}
|
|
|
|
Enable Skip Audit Log Database
|
|
Switch To System Settings
|
|
Retry Double Keywords When Error Click Element ${skip_audit_log_database_label} Checkbox Should Be Selected ${skip_audit_log_database_checkbox}
|
|
Retry Double Keywords When Error Retry Element Click ${config_save_button_xpath} Retry Wait Until Page Contains Configuration has been successfully saved.
|
|
|
|
Set Up Retain Image Last Pull Time
|
|
[Arguments] ${action}
|
|
Run Keyword If '${action}'=='enable' Retry Double Keywords When Error Click Element ${retain_image_last_pull_time_label} Checkbox Should Be Selected ${retain_image_last_pull_time_checkbox}
|
|
... ELSE Retry Double Keywords When Error Click Element ${retain_image_last_pull_time_label} Checkbox Should Not Be Selected ${retain_image_last_pull_time_checkbox}
|
|
Retry Double Keywords When Error Retry Element Click ${config_save_button_xpath} Retry Wait Until Page Contains Configuration has been successfully saved.
|
|
|
|
Set Banner Message
|
|
[Arguments] ${message} ${message_type}=${null} ${closable}=${null} ${in_duration}=${null}
|
|
IF '${message}' != '${null}'
|
|
Retry Text Input ${banner_message_input_id} ${message}
|
|
Select From List By Value ${banner_message_type_select_id} ${message_type}
|
|
Run Keyword If '${closable}' == '${true}' Retry Element Click ${banner_message_closable_checkbox}
|
|
IF '${in_duration}' == '${true}'
|
|
Retry Element Click ${banner_message_from_date}
|
|
Retry Element Click //td[.//button[contains(@class,'is-today')]]
|
|
Retry Element Click ${banner_message_to_date}
|
|
Retry Element Click ${banner_message_date_next_month}
|
|
Retry Element Click (//td[.//button[text()=' 1 ']])[1]
|
|
ELSE IF '${in_duration}' == '${false}'
|
|
Retry Element Click ${banner_message_from_date}
|
|
Retry Element Click ${banner_message_date_next_month}
|
|
Retry Element Click (//td[.//button[text()=' 1 ']])[1]
|
|
Retry Element Click ${banner_message_to_date}
|
|
Retry Element Click ${banner_message_date_next_month}
|
|
Retry Element Click (//td[.//button[text()=' 1 ']])[1]
|
|
END
|
|
ELSE
|
|
Clear Field Of Characters ${banner_message_input_id} 23
|
|
END
|
|
Retry Double Keywords When Error Retry Element Click ${config_save_button_xpath} Retry Wait Until Page Contains Configuration has been successfully saved.
|
|
|
|
Check Banner Message
|
|
[Arguments] ${message} ${message_type}=${null} ${closable}=${null}
|
|
IF '${message}' == '${null}'
|
|
Retry Wait Element Not Visible ${banner_message_alert}
|
|
ELSE
|
|
Retry Wait Element //span[text()='${message}']
|
|
${message_type_class}= Create Dictionary success=alert-success info=alert-info warning=alert-warning danger=alert-danger
|
|
Retry Wait Element //app-app-level-alerts//clr-alerts[contains(@class,'${message_type_class}[${message_type}]')]
|
|
Run Keyword If '${closable}' == '${true}' Retry Wait Element ${banner_message_close_alert}
|
|
END
|
|
|
|
Check Banner Message on other pages
|
|
[Arguments] ${message} ${message_type}=${null} ${closable}=${null}
|
|
@{pages}= Create List harbor/projects harbor/logs harbor/users harbor/robot-accounts harbor/Registries
|
|
... harbor/replications harbor/distribution/instances harbor/labels harbor/project-quotas harbor/interrogation-services/scanners
|
|
... harbor/interrogation-services/vulnerability harbor/interrogation-services/security-hub harbor/clearing-job/gc
|
|
... harbor/clearing-job/audit-log-purge harbor/job-service-dashboard/pending-jobs harbor/job-service-dashboard/schedules
|
|
... harbor/job-service-dashboard/workers harbor/configs/auth harbor/configs/security harbor/configs/setting
|
|
... harbor/projects/1/repositories harbor/projects/1/members harbor/projects/1/labels harbor/projects/1/scanner
|
|
... harbor/projects/1/p2p-provider/policies harbor/projects/1/tag-strategy/tag-retention harbor/projects/1/tag-strategy/immutable-tag
|
|
... harbor/projects/1/robot-account harbor/projects/1/webhook harbor/projects/1/logs harbor/projects/1/configs
|
|
FOR ${page} IN @{pages}
|
|
Go To ${HARBOR_URL}/${page}
|
|
Check Banner Message ${message} ${message_type} ${closable}
|
|
END
|
|
Logout Harbor
|
|
Check Banner Message ${message} ${message_type} ${closable}
|