mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-02 15:14:09 +01:00
f0ebd17994
Build base image step should be in build package workflow, and local base images build by new step should be removed since images have been pushed to docker hub. Signed-off-by: danfengliu <danfengl@vmware.com>
110 lines
5.7 KiB
Plaintext
110 lines
5.7 KiB
Plaintext
*** Settings ***
|
|
Documentation This resource provides any keywords related to the Harbor private registry appliance
|
|
Resource ../../resources/Util.robot
|
|
|
|
*** Variables ***
|
|
|
|
*** Keywords ***
|
|
Disable Scan Schedule
|
|
Retry Double Keywords When Error Retry Element Click ${vulnerability_edit_btn} Retry Wait Until Page Not Contains Element ${vulnerability_edit_btn}
|
|
Retry Element Click ${vulnerability_dropdown_list}
|
|
Retry Element Click ${vulnerability_dropdown_list_item_none}
|
|
Retry Double Keywords When Error Retry Element Click ${vulnerability_save_btn} Retry Wait Until Page Not Contains Element ${vulnerability_save_btn}
|
|
|
|
Set Scan Schedule
|
|
[Arguments] ${type} ${value}=${null}
|
|
Retry Double Keywords When Error Retry Element Click ${vulnerability_edit_btn} Retry Wait Until Page Not Contains Element ${vulnerability_edit_btn}
|
|
Retry Element Click ${vulnerability_dropdown_list}
|
|
Run Keyword If '${type}'=='custom' Run Keywords Retry Element Click ${vulnerability_dropdown_list_item_custom} AND Retry Text Input ${targetCron_id} ${value}
|
|
Retry Double Keywords When Error Retry Element Click ${vulnerability_save_btn} Retry Wait Until Page Not Contains Element ${vulnerability_save_btn}
|
|
|
|
Trigger Scan Now And Wait Until The Result Appears
|
|
Retry Element Click xpath=${scan_now_button}
|
|
Sleep 60
|
|
Retry Wait Until Page Contains Element ${scan_now_result}
|
|
|
|
Switch To Vulnerability Page
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav//a[contains(.,'Interrogation')]
|
|
Retry Element Click xpath=//app-interrogation-services//a[contains(.,'Vulnerability')]
|
|
Retry Wait Element ${scan_now_button}
|
|
|
|
|
|
Set Vulnerabilty Serverity
|
|
#0 is critical, 1 is high, 2 is medium, 3 is low, 4 is negligible.
|
|
[Arguments] ${level}
|
|
Goto Project Config
|
|
#enable first
|
|
Retry Element Click ${project_config_prevent_vulenrability_checkbox_label}
|
|
Checkbox Should Be Selected //project-detail//clr-checkbox-wrapper//input[@name='prevent-vulenrability-image-input']
|
|
Retry Element Click //project-detail//select
|
|
#wait for dropdown popup
|
|
Sleep 1
|
|
Select From List By Index //project-detail//select ${level}
|
|
Retry Element Click ${project_config_save_btn}
|
|
|
|
Scan Is Disabled
|
|
Retry Wait Until Page Contains Element //button[@id='scan-btn' and @disabled='']
|
|
|
|
Move To Summary Chart
|
|
Sleep 2
|
|
Wait Until Element Is Visible //hbr-vulnerability-bar//hbr-result-tip-histogram
|
|
Mouse Over //hbr-result-tip-histogram
|
|
Sleep 1
|
|
|
|
Scan Repo
|
|
#use fail for image can not scan, otherwise use success
|
|
[Arguments] ${tagname} ${status}
|
|
#select one tag
|
|
Retry Element Click //clr-dg-row[contains(.,'${tagname}')]//label
|
|
Retry Element Click //button[@id='scan-btn']
|
|
Run Keyword If '${status}' == 'Succeed' Wait Until Element Is Visible //hbr-vulnerability-bar//hbr-result-tip-histogram 300
|
|
Run Keyword If '${status}' == 'Fail' Wait Until Element Is Visible //hbr-vulnerability-bar//a 300
|
|
|
|
Scan Result Should Display In List Row
|
|
[Arguments] ${tagname} ${is_no_vulerabilty}=${false}
|
|
Run Keyword If ${is_no_vulerabilty}==${true} Retry Wait Until Page Contains Element //artifact-list-tab//clr-dg-row[contains(.,'No vulnerability') and contains(.,'${tagname}')]//clr-dg-cell//clr-tooltip
|
|
... ELSE Retry Wait Until Page Contains Element //artifact-list-tab//clr-dg-row[contains(.,'Total') and contains(.,'Fixable') and contains(.,'${tagname}')]//clr-dg-cell//clr-tooltip
|
|
|
|
Enable Scan On Push
|
|
Checkbox Should Not Be Selected //clr-checkbox-wrapper[@id='scan-image-on-push-wrapper']//input
|
|
Retry Element Click //clr-checkbox-wrapper[@id='scan-image-on-push-wrapper']//label
|
|
Checkbox Should Be Selected //clr-checkbox-wrapper[@id='scan-image-on-push-wrapper']//input
|
|
Retry Element Click ${project_config_save_btn}
|
|
Sleep 10
|
|
|
|
Vulnerability Not Ready Project Hint
|
|
Sleep 2
|
|
${element}= Set Variable xpath=//span[contains(@class, 'db-status-warning')]
|
|
Wait Until Element Is Visible And Enabled ${element}
|
|
|
|
Switch To Scanners Page
|
|
Retry Element Click xpath=//clr-main-container//clr-vertical-nav//a[contains(.,'Interrogation')]
|
|
Retry Wait Until Page Contains Element ${set_default_scanner}
|
|
|
|
Should Display The Default Trivy Scanner
|
|
Retry Wait Until Page Contains Element //clr-datagrid//clr-dg-row//clr-dg-cell[contains(.,'Trivy')]//span[contains(.,'Default')]
|
|
|
|
Trivy Is Immutable Scanner
|
|
Retry Element Click //clr-dg-row[contains(.,'Trivy')]//clr-radio-wrapper/label
|
|
Retry Double Keywords When Error Retry Element Click ${scanner_action_xpath} Retry Wait Until Page Contains Element ${delete_scanner_action_xpath}
|
|
Retry Double Keywords When Error Retry Element Click ${delete_scanner_action_xpath} Retry Wait Until Page Contains Element ${delete_scanner_confirm_btn}
|
|
Retry Double Keywords When Error Retry Element Click ${delete_scanner_confirm_btn} Retry Wait Until Page Contains Element ${immutable_trivy_msg_xpath}
|
|
|
|
Set Default Scanner
|
|
[Arguments] ${scanner_name}
|
|
Retry Element Click //clr-dg-row[contains(.,'${scanner_name}')]//clr-radio-wrapper/label
|
|
Retry Double Keywords When Error Retry Element Click ${scanner_set_default} Retry Wait Until Page Contains Element ${scanner_set_default_success_xpath}
|
|
|
|
Check Listed In CVE Allowlist
|
|
[Arguments] ${project_name} ${image} ${tag} ${cve_id} ${is_in}=Yes
|
|
Go Into Project ${project_name}
|
|
Go Into Repo ${project_name}/${image}
|
|
Go Into Artifact ${tag}
|
|
|
|
Scroll Element Into View //clr-dg-row[contains(.,'${cve_id}')]
|
|
${text}= Get Text //clr-dg-row[contains(.,'${cve_id}')]//clr-dg-cell[7]
|
|
Capture Page Screenshot
|
|
|
|
Log All is_in_allow_list:${text}
|
|
Should Be Equal As Strings '${text}' '${is_in}'
|