mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-29 21:54:13 +01:00
refactor: cleanup unused code about scan
1. Cleanup unused code about clair. 2. Cleanup unused definitions in legacy_swagger.yaml about scan. Signed-off-by: He Weiwei <hweiwei@vmware.com>
This commit is contained in:
parent
80027c3b86
commit
69ca7a0dae
@ -2155,7 +2155,7 @@ paths:
|
|||||||
'500':
|
'500':
|
||||||
description: Unexpected internal errors.
|
description: Unexpected internal errors.
|
||||||
'503':
|
'503':
|
||||||
description: Harbor is not deployed with Clair.
|
description: Harbor is not deployed with scanners.
|
||||||
/configurations:
|
/configurations:
|
||||||
get:
|
get:
|
||||||
summary: Get system configurations.
|
summary: Get system configurations.
|
||||||
@ -4172,9 +4172,9 @@ definitions:
|
|||||||
with_notary:
|
with_notary:
|
||||||
type: boolean
|
type: boolean
|
||||||
description: If the Harbor instance is deployed with nested notary.
|
description: If the Harbor instance is deployed with nested notary.
|
||||||
with_clair:
|
with_chartmuseum:
|
||||||
type: boolean
|
type: boolean
|
||||||
description: If the Harbor instance is deployed with nested clair.
|
description: If the Harbor instance is deployed with nested chartmuseum.
|
||||||
registry_url:
|
registry_url:
|
||||||
type: string
|
type: string
|
||||||
description: The url of registry against which the docker command should be issued.
|
description: The url of registry against which the docker command should be issued.
|
||||||
@ -4196,30 +4196,6 @@ definitions:
|
|||||||
harbor_version:
|
harbor_version:
|
||||||
type: string
|
type: string
|
||||||
description: The build version of Harbor.
|
description: The build version of Harbor.
|
||||||
next_scan_all:
|
|
||||||
type: integer
|
|
||||||
description: 'The UTC time in milliseconds, after which user can call scanAll API to scan all images.'
|
|
||||||
clair_vulnerability_status:
|
|
||||||
type: object
|
|
||||||
description: The status of vulnerability data of Clair.
|
|
||||||
properties:
|
|
||||||
overall_last_update:
|
|
||||||
type: integer
|
|
||||||
description: 'The UTC timestamp in milliseconds of last successful update for Clair vulnerability data, when all the updaters are successfully executed.'
|
|
||||||
details:
|
|
||||||
type: array
|
|
||||||
description: Detail timestamp of different namespace. This is introduced to handle the case when some updaters are executed successfully and some not.
|
|
||||||
items:
|
|
||||||
$ref: '#/definitions/VulnNamespaceTimestamp'
|
|
||||||
VulnNamespaceTimestamp:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
namespace:
|
|
||||||
type: string
|
|
||||||
description: The namespace of the Vulnerability
|
|
||||||
last_update:
|
|
||||||
type: integer
|
|
||||||
description: The UTC timestamp in miliseconds of last successful update for vulnerability data.
|
|
||||||
SystemInfo:
|
SystemInfo:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -5633,124 +5609,6 @@ definitions:
|
|||||||
type: string
|
type: string
|
||||||
description: The identifier of the scanner registration
|
description: The identifier of the scanner registration
|
||||||
|
|
||||||
VulnerabilityItem:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
id:
|
|
||||||
type: string
|
|
||||||
description: ID of the CVE.
|
|
||||||
example: 'CVE-2017-8283'
|
|
||||||
package:
|
|
||||||
type: string
|
|
||||||
description: 'An operating system or software dependency package containing the vulnerability.'
|
|
||||||
example: 'dpkg'
|
|
||||||
version:
|
|
||||||
type: string
|
|
||||||
description: 'The version of the package containing the vulnerability.'
|
|
||||||
example: '1.17.27'
|
|
||||||
fix_version:
|
|
||||||
type: string
|
|
||||||
description: 'The version of the package containing the fix if available.'
|
|
||||||
example: '1.18.0'
|
|
||||||
severity:
|
|
||||||
type: string
|
|
||||||
description: 'A standard scale for measuring the severity of a vulnerability.'
|
|
||||||
example: 'high'
|
|
||||||
description:
|
|
||||||
type: string
|
|
||||||
description: 'Description of the CVE'
|
|
||||||
example: 'dpkg-source in dpkg 1.3.0 through 1.18.23 is able to use a non-GNU patch program'
|
|
||||||
links:
|
|
||||||
type: array
|
|
||||||
description: 'The list of link to the upstream database with the full description of the vulnerability.'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
example: 'https://security-tracker.debian.org/tracker/CVE-2017-8283'
|
|
||||||
Report:
|
|
||||||
type: object
|
|
||||||
description: 'The harbor native report format'
|
|
||||||
properties:
|
|
||||||
generated_at:
|
|
||||||
type: string
|
|
||||||
description: 'Time of generating this report'
|
|
||||||
example: '2006-01-02T15:04:05'
|
|
||||||
severity:
|
|
||||||
type: string
|
|
||||||
description: 'A standard scale for measuring the severity of a vulnerability.'
|
|
||||||
example: 'high'
|
|
||||||
vulnerabilities:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
$ref: '#/definitions/VulnerabilityItem'
|
|
||||||
scanner:
|
|
||||||
$ref: '#/definitions/Scanner'
|
|
||||||
|
|
||||||
ScanOverview:
|
|
||||||
type: object
|
|
||||||
description: 'The scan overview attached in the metadata of tag'
|
|
||||||
additionalProperties:
|
|
||||||
$ref: '#/definitions/NativeReportSummary'
|
|
||||||
|
|
||||||
NativeReportSummary:
|
|
||||||
type: object
|
|
||||||
description: 'The summary for the native report'
|
|
||||||
properties:
|
|
||||||
report_id:
|
|
||||||
type: string
|
|
||||||
description: 'id of the native scan report'
|
|
||||||
example: '5f62c830-f996-11e9-957f-0242c0a89008'
|
|
||||||
scan_status:
|
|
||||||
type: string
|
|
||||||
description: 'The status of the report generating process'
|
|
||||||
example: 'Success'
|
|
||||||
severity:
|
|
||||||
type: string
|
|
||||||
description: 'The overall severity'
|
|
||||||
example: 'High'
|
|
||||||
duration:
|
|
||||||
type: integer
|
|
||||||
format: int64
|
|
||||||
description: 'The seconds spent for generating the report'
|
|
||||||
example: 300
|
|
||||||
summary:
|
|
||||||
$ref: '#/definitions/VulnerabilitySummary'
|
|
||||||
start_time:
|
|
||||||
type: string
|
|
||||||
format: date-time
|
|
||||||
description: 'The start time of the scan process that generating report'
|
|
||||||
example: '2006-01-02T14:04:05'
|
|
||||||
end_time:
|
|
||||||
type: string
|
|
||||||
format: date-time
|
|
||||||
description: 'The end time of the scan process that generating report'
|
|
||||||
example: '2006-01-02T15:04:05'
|
|
||||||
|
|
||||||
VulnerabilitySummary:
|
|
||||||
type: object
|
|
||||||
description: |
|
|
||||||
VulnerabilitySummary contains the total number of the foun d vulnerabilities number and numbers of each severity level.
|
|
||||||
properties:
|
|
||||||
total:
|
|
||||||
type: integer
|
|
||||||
format: int
|
|
||||||
description: 'The total number of the found vulnerabilities'
|
|
||||||
example: 500
|
|
||||||
fixable:
|
|
||||||
type: integer
|
|
||||||
format: int
|
|
||||||
description: 'The number of the fixable vulnerabilities'
|
|
||||||
example: 100
|
|
||||||
summary:
|
|
||||||
type: object
|
|
||||||
description: 'Numbers of the vulnerabilities with different severity'
|
|
||||||
additionalProperties:
|
|
||||||
type: integer
|
|
||||||
format: int
|
|
||||||
example: 10
|
|
||||||
example:
|
|
||||||
'Critical': 5
|
|
||||||
'High': 5
|
|
||||||
|
|
||||||
Stats:
|
Stats:
|
||||||
type: object
|
type: object
|
||||||
description: Stats provides the overall progress of the scan all process.
|
description: Stats provides the overall progress of the scan all process.
|
||||||
|
@ -24,7 +24,6 @@ func init() {
|
|||||||
new(Project),
|
new(Project),
|
||||||
new(Role),
|
new(Role),
|
||||||
new(RepoRecord),
|
new(RepoRecord),
|
||||||
new(ClairVulnTimestamp),
|
|
||||||
new(ProjectMetadata),
|
new(ProjectMetadata),
|
||||||
new(ConfigEntry),
|
new(ConfigEntry),
|
||||||
new(Label),
|
new(Label),
|
||||||
|
@ -1,136 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
package models
|
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ClairVulnTimestampTable is the name of the table that tracks the timestamp of vulnerability in Clair.
|
|
||||||
const ClairVulnTimestampTable = "clair_vuln_timestamp"
|
|
||||||
|
|
||||||
// ClairVulnTimestamp represents a record in DB that tracks the timestamp of vulnerability in Clair.
|
|
||||||
type ClairVulnTimestamp struct {
|
|
||||||
ID int64 `orm:"pk;auto;column(id)" json:"-"`
|
|
||||||
Namespace string `orm:"column(namespace)" json:"namespace"`
|
|
||||||
LastUpdate time.Time `orm:"column(last_update)" json:"-"`
|
|
||||||
LastUpdateUTC int64 `orm:"-" json:"last_update"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TableName is required by beego to map struct to table.
|
|
||||||
func (ct *ClairVulnTimestamp) TableName() string {
|
|
||||||
return ClairVulnTimestampTable
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairLayer ...
|
|
||||||
type ClairLayer struct {
|
|
||||||
Name string `json:"Name,omitempty"`
|
|
||||||
NamespaceNames []string `json:"NamespaceNames,omitempty"`
|
|
||||||
Path string `json:"Path,omitempty"`
|
|
||||||
Headers map[string]string `json:"Headers,omitempty"`
|
|
||||||
ParentName string `json:"ParentName,omitempty"`
|
|
||||||
Format string `json:"Format,omitempty"`
|
|
||||||
Features []ClairFeature `json:"Features,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairFeature ...
|
|
||||||
type ClairFeature struct {
|
|
||||||
Name string `json:"Name,omitempty"`
|
|
||||||
NamespaceName string `json:"NamespaceName,omitempty"`
|
|
||||||
VersionFormat string `json:"VersionFormat,omitempty"`
|
|
||||||
Version string `json:"Version,omitempty"`
|
|
||||||
Vulnerabilities []ClairVulnerability `json:"Vulnerabilities,omitempty"`
|
|
||||||
AddedBy string `json:"AddedBy,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairVulnerability ...
|
|
||||||
type ClairVulnerability struct {
|
|
||||||
Name string `json:"Name,omitempty"`
|
|
||||||
NamespaceName string `json:"NamespaceName,omitempty"`
|
|
||||||
Description string `json:"Description,omitempty"`
|
|
||||||
Link string `json:"Link,omitempty"`
|
|
||||||
Severity string `json:"Severity,omitempty"`
|
|
||||||
Metadata map[string]interface{} `json:"Metadata,omitempty"`
|
|
||||||
FixedBy string `json:"FixedBy,omitempty"`
|
|
||||||
FixedIn []ClairFeature `json:"FixedIn,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairError ...
|
|
||||||
type ClairError struct {
|
|
||||||
Message string `json:"Message,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairLayerEnvelope ...
|
|
||||||
type ClairLayerEnvelope struct {
|
|
||||||
Layer *ClairLayer `json:"Layer,omitempty"`
|
|
||||||
Error *ClairError `json:"Error,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairNotification ...
|
|
||||||
type ClairNotification struct {
|
|
||||||
Name string `json:"Name,omitempty"`
|
|
||||||
Created string `json:"Created,omitempty"`
|
|
||||||
Notified string `json:"Notified,omitempty"`
|
|
||||||
Deleted string `json:"Deleted,omitempty"`
|
|
||||||
Limit int `json:"Limit,omitempty"`
|
|
||||||
Page string `json:"Page,omitempty"`
|
|
||||||
NextPage string `json:"NextPage,omitempty"`
|
|
||||||
Old *ClairVulnerabilityWithLayers `json:"Old,omitempty"`
|
|
||||||
New *ClairVulnerabilityWithLayers `json:"New,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairNotificationEnvelope ...
|
|
||||||
type ClairNotificationEnvelope struct {
|
|
||||||
Notification *ClairNotification `json:"Notification,omitempty"`
|
|
||||||
Error *ClairError `json:"Error,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairVulnerabilityWithLayers ...
|
|
||||||
type ClairVulnerabilityWithLayers struct {
|
|
||||||
Vulnerability *ClairVulnerability `json:"Vulnerability,omitempty"`
|
|
||||||
OrderedLayersIntroducingVulnerability []ClairOrderedLayerName `json:"OrderedLayersIntroducingVulnerability,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairOrderedLayerName ...
|
|
||||||
type ClairOrderedLayerName struct {
|
|
||||||
Index int `json:"Index"`
|
|
||||||
LayerName string `json:"LayerName"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairVulnerabilityStatus reflects the readiness and freshness of vulnerability data in Clair,
|
|
||||||
// which will be returned in response of systeminfo API.
|
|
||||||
type ClairVulnerabilityStatus struct {
|
|
||||||
OverallUTC int64 `json:"overall_last_update,omitempty"`
|
|
||||||
Details []ClairNamespaceTimestamp `json:"details,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairNamespaceTimestamp is a record to store the clairname space and the timestamp,
|
|
||||||
// in practice different namespace in Clair maybe merged into one, e.g. ubuntu:14.04 and ubuntu:16.4 maybe merged into ubuntu and put into response.
|
|
||||||
type ClairNamespaceTimestamp struct {
|
|
||||||
Namespace string `json:"namespace"`
|
|
||||||
Timestamp int64 `json:"last_update"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairNamespace ...
|
|
||||||
type ClairNamespace struct {
|
|
||||||
Name string `json:"Name,omitempty"`
|
|
||||||
VersionFormat string `json:"VersionFormat,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClairNamespaceEnvelope ...
|
|
||||||
type ClairNamespaceEnvelope struct {
|
|
||||||
Namespaces *[]ClairNamespace `json:"Namespaces,omitempty"`
|
|
||||||
Error *ClairError `json:"Error,omitempty"`
|
|
||||||
}
|
|
@ -51,20 +51,19 @@ type Storage struct {
|
|||||||
|
|
||||||
// GeneralInfo wraps common systeminfo for anonymous request
|
// GeneralInfo wraps common systeminfo for anonymous request
|
||||||
type GeneralInfo struct {
|
type GeneralInfo struct {
|
||||||
WithNotary bool `json:"with_notary"`
|
WithNotary bool `json:"with_notary"`
|
||||||
AuthMode string `json:"auth_mode"`
|
AuthMode string `json:"auth_mode"`
|
||||||
AuthProxySettings *models.HTTPAuthProxy `json:"authproxy_settings,omitempty"`
|
AuthProxySettings *models.HTTPAuthProxy `json:"authproxy_settings,omitempty"`
|
||||||
RegistryURL string `json:"registry_url"`
|
RegistryURL string `json:"registry_url"`
|
||||||
ExtURL string `json:"external_url"`
|
ExtURL string `json:"external_url"`
|
||||||
ProjectCreationRestrict string `json:"project_creation_restriction"`
|
ProjectCreationRestrict string `json:"project_creation_restriction"`
|
||||||
SelfRegistration bool `json:"self_registration"`
|
SelfRegistration bool `json:"self_registration"`
|
||||||
HasCARoot bool `json:"has_ca_root"`
|
HasCARoot bool `json:"has_ca_root"`
|
||||||
HarborVersion string `json:"harbor_version"`
|
HarborVersion string `json:"harbor_version"`
|
||||||
ClairVulnStatus *models.ClairVulnerabilityStatus `json:"clair_vulnerability_status,omitempty"`
|
RegistryStorageProviderName string `json:"registry_storage_provider_name"`
|
||||||
RegistryStorageProviderName string `json:"registry_storage_provider_name"`
|
ReadOnly bool `json:"read_only"`
|
||||||
ReadOnly bool `json:"read_only"`
|
WithChartMuseum bool `json:"with_chartmuseum"`
|
||||||
WithChartMuseum bool `json:"with_chartmuseum"`
|
NotificationEnable bool `json:"notification_enable"`
|
||||||
NotificationEnable bool `json:"notification_enable"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVolumeInfo gets specific volume storage info.
|
// GetVolumeInfo gets specific volume storage info.
|
||||||
|
Loading…
Reference in New Issue
Block a user