mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-26 12:15:20 +01:00
Merge pull request #1634 from reasonerjt/more-systeminfo
return ca root cert status in systeminfo
This commit is contained in:
commit
eda9aa189e
@ -2025,6 +2025,9 @@ definitions:
|
||||
self_registration:
|
||||
type: boolean
|
||||
description: Indicate whether the Harbor instance enable user to register himself.
|
||||
has_ca_root:
|
||||
type: boolean
|
||||
description: Indicate whether there is a ca root cert file ready for download in the file system.
|
||||
SystemInfo:
|
||||
type: object
|
||||
properties:
|
||||
|
@ -44,6 +44,7 @@ type GeneralInfo struct {
|
||||
RegistryURL string `json:"registry_url"`
|
||||
ProjectCreationRestrict string `json:"project_creation_restriction"`
|
||||
SelfRegistration bool `json:"self_registration"`
|
||||
HasCARoot bool `json:"has_ca_root"`
|
||||
}
|
||||
|
||||
// validate for validating user if an admin.
|
||||
@ -88,13 +89,16 @@ func (sia *SystemInfoAPI) GetVolumeInfo() {
|
||||
func (sia *SystemInfoAPI) GetCert() {
|
||||
sia.validate()
|
||||
if sia.isAdmin {
|
||||
if _, err := os.Stat(defaultRootCert); !os.IsNotExist(err) {
|
||||
if _, err := os.Stat(defaultRootCert); err == nil {
|
||||
sia.Ctx.Output.Header("Content-Type", "application/octet-stream")
|
||||
sia.Ctx.Output.Header("Content-Disposition", "attachment; filename=ca.crt")
|
||||
http.ServeFile(sia.Ctx.ResponseWriter, sia.Ctx.Request, defaultRootCert)
|
||||
} else {
|
||||
} else if os.IsNotExist(err) {
|
||||
log.Error("No certificate found.")
|
||||
sia.CustomAbort(http.StatusNotFound, "No certificate found.")
|
||||
} else {
|
||||
log.Errorf("Unexpected error: %v", err)
|
||||
sia.CustomAbort(http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError))
|
||||
}
|
||||
}
|
||||
sia.CustomAbort(http.StatusForbidden, "")
|
||||
@ -113,6 +117,7 @@ func (sia *SystemInfoAPI) GetGeneralInfo() {
|
||||
} else {
|
||||
registryURL = l[0]
|
||||
}
|
||||
_, caStatErr := os.Stat(defaultRootCert)
|
||||
info := GeneralInfo{
|
||||
AdmiralEndpoint: cfg[comcfg.AdmiralEndpoint].(string),
|
||||
WithAdmiral: config.WithAdmiral(),
|
||||
@ -121,6 +126,7 @@ func (sia *SystemInfoAPI) GetGeneralInfo() {
|
||||
ProjectCreationRestrict: cfg[comcfg.ProjectCreationRestriction].(string),
|
||||
SelfRegistration: cfg[comcfg.SelfRegistration].(bool),
|
||||
RegistryURL: registryURL,
|
||||
HasCARoot: caStatErr == nil,
|
||||
}
|
||||
sia.Data["json"] = info
|
||||
sia.ServeJSON()
|
||||
|
@ -48,6 +48,7 @@ func TestGetGeneralInfo(t *testing.T) {
|
||||
err = json.Unmarshal(body, g)
|
||||
assert.Nil(err, fmt.Sprintf("Unexpected Error: %v", err))
|
||||
assert.Equal(false, g.WithNotary, "with notary should be false")
|
||||
assert.Equal(true, g.HasCARoot, "has ca root should be true")
|
||||
}
|
||||
|
||||
func TestGetCert(t *testing.T) {
|
||||
|
Loading…
Reference in New Issue
Block a user