mirror of
https://github.com/goharbor/harbor
synced 2025-04-14 02:01:51 +00:00
update
This commit is contained in:
parent
b6e27f6ea2
commit
bcc6a4bbf2
|
@ -34,6 +34,11 @@ func TestReadWrite(t *testing.T) {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
if store.Name() != "JSON" {
|
||||||
|
t.Errorf("unexpected name: %s != %s", store.Name(), "JSON")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
config := &models.SystemCfg{
|
config := &models.SystemCfg{
|
||||||
Authentication: &models.Authentication{
|
Authentication: &models.Authentication{
|
||||||
LDAP: &models.LDAP{},
|
LDAP: &models.LDAP{},
|
||||||
|
@ -43,10 +48,12 @@ func TestReadWrite(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if err := store.Write(config); err != nil {
|
if err := store.Write(config); err != nil {
|
||||||
t.Fatalf("failed to write configurations to json file: %v", err)
|
t.Errorf("failed to write configurations to json file: %v", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err = store.Read(); err != nil {
|
if _, err = store.Read(); err != nil {
|
||||||
t.Fatalf("failed to read configurations from json file: %v", err)
|
t.Errorf("failed to read configurations from json file: %v", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,39 +15,31 @@
|
||||||
|
|
||||||
package systemcfg
|
package systemcfg
|
||||||
|
|
||||||
/*
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
comcfg "github.com/vmware/harbor/src/common/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// test functions under adminserver/systemcfg
|
||||||
func TestSystemcfg(t *testing.T) {
|
func TestSystemcfg(t *testing.T) {
|
||||||
key := "JSON_STORE_PATH"
|
key := "JSON_STORE_PATH"
|
||||||
tmpPath := "/tmp/config.json"
|
path := "/tmp/config.json"
|
||||||
originalPath := os.Getenv(key)
|
if _, err := os.Stat(path); err == nil {
|
||||||
defer func() {
|
if err := os.Remove(path); err != nil {
|
||||||
if err := os.Remove(tmpPath); err != nil {
|
t.Fatalf("failed to remove %s: %v", path, err)
|
||||||
t.Errorf("failed to remove %s: %v", tmpPath, err)
|
|
||||||
}
|
}
|
||||||
|
} else if !os.IsNotExist(err) {
|
||||||
|
t.Fatalf("failed to check the existence of %s: %v", path, err)
|
||||||
|
}
|
||||||
|
|
||||||
if len(originalPath) == 0 {
|
if err := os.Setenv(key, path); err != nil {
|
||||||
if err := os.Unsetenv(key); err != nil {
|
|
||||||
t.Fatalf("failed to unset env %s: %v", key, err)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := os.Setenv(key, originalPath); err != nil {
|
|
||||||
t.Fatalf("failed to set env %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
if err := os.Setenv(key, tmpPath); err != nil {
|
|
||||||
t.Fatalf("failed to set env %s: %v", key, err)
|
t.Fatalf("failed to set env %s: %v", key, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
m := map[string]string{
|
m := map[string]string{
|
||||||
|
"AUTH_MODE": comcfg.DBAuth,
|
||||||
"LDAP_SCOPE": "1",
|
"LDAP_SCOPE": "1",
|
||||||
"LDAP_TIMEOUT": "30",
|
"LDAP_TIMEOUT": "30",
|
||||||
"MYSQL_PORT": "3306",
|
"MYSQL_PORT": "3306",
|
||||||
|
@ -58,8 +50,7 @@ func TestSystemcfg(t *testing.T) {
|
||||||
|
|
||||||
for k, v := range m {
|
for k, v := range m {
|
||||||
if err := os.Setenv(k, v); err != nil {
|
if err := os.Setenv(k, v); err != nil {
|
||||||
t.Errorf("failed to set env %s: %v", k, err)
|
t.Fatalf("failed to set env %s: %v", k, err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,5 +58,46 @@ func TestSystemcfg(t *testing.T) {
|
||||||
t.Errorf("failed to initialize system configurations: %v", err)
|
t.Errorf("failed to initialize system configurations: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer func() {
|
||||||
|
if err := os.Remove(path); err != nil {
|
||||||
|
t.Fatalf("failed to remove %s: %v", path, err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
// run Init again to make sure it works well when the configuration file
|
||||||
|
// already exists
|
||||||
|
if err := Init(); err != nil {
|
||||||
|
t.Errorf("failed to initialize system configurations: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg, err := GetSystemCfg()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("failed to get system configurations: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.Authentication.Mode != comcfg.DBAuth {
|
||||||
|
t.Errorf("unexpected auth mode: %s != %s",
|
||||||
|
cfg.Authentication.Mode, comcfg.DBAuth)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg.Authentication.Mode = comcfg.LDAPAuth
|
||||||
|
if err = UpdateSystemCfg(cfg); err != nil {
|
||||||
|
t.Errorf("failed to update system configurations: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg, err = GetSystemCfg()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("failed to get system configurations: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.Authentication.Mode != comcfg.LDAPAuth {
|
||||||
|
t.Errorf("unexpected auth mode: %s != %s",
|
||||||
|
cfg.Authentication.Mode, comcfg.DBAuth)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ import (
|
||||||
"github.com/vmware/harbor/src/common/models"
|
"github.com/vmware/harbor/src/common/models"
|
||||||
"github.com/vmware/harbor/src/common/utils/log"
|
"github.com/vmware/harbor/src/common/utils/log"
|
||||||
"github.com/vmware/harbor/src/ui/auth"
|
"github.com/vmware/harbor/src/ui/auth"
|
||||||
"github.com/vmware/harbor/src/ui/config"
|
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
|
@ -210,12 +209,3 @@ func (b *BaseAPI) GetPaginationParams() (page, pageSize int64) {
|
||||||
|
|
||||||
return page, pageSize
|
return page, pageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetIsInsecure ...
|
|
||||||
func GetIsInsecure() (bool, error) {
|
|
||||||
verify, err := config.VerifyRemoteCert()
|
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return !verify, nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -13,23 +13,3 @@
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
package api
|
package api
|
||||||
|
|
||||||
/*
|
|
||||||
import (
|
|
||||||
"github.com/vmware/harbor/src/common/config"
|
|
||||||
"os"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestGetIsInsecure(t *testing.T) {
|
|
||||||
os.Setenv("VERIFY_REMOTE_CERT", "off")
|
|
||||||
err := config.Reload()
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("Failed to load config, error: %v", err)
|
|
||||||
}
|
|
||||||
if !GetIsInsecure() {
|
|
||||||
t.Errorf("GetIsInsecure() should be true when VERIFY_REMOTE_CERT is off, in fact: false")
|
|
||||||
}
|
|
||||||
os.Unsetenv("VERIFY_REMOTE_CERT")
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
|
@ -15,175 +15,12 @@
|
||||||
|
|
||||||
package dao
|
package dao
|
||||||
|
|
||||||
/*
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/vmware/harbor/src/common/models"
|
"github.com/vmware/harbor/src/common/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func deleteConfigByKey(key string) error {
|
|
||||||
if _, err := GetOrmer().Raw("delete from properties where k = ?", key).
|
|
||||||
Exec(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestGetConfigByKey(t *testing.T) {
|
|
||||||
cfg := &models.Config{
|
|
||||||
Key: "key",
|
|
||||||
Value: "value",
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := InsertConfig(cfg); err != nil {
|
|
||||||
t.Fatalf("failed to insert configuration into table: %v", err)
|
|
||||||
}
|
|
||||||
defer func(key string) {
|
|
||||||
if err := deleteConfigByKey(key); err != nil {
|
|
||||||
t.Fatalf("failed to delete configuration %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}(cfg.Key)
|
|
||||||
|
|
||||||
config, err := GetConfigByKey(cfg.Key)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to get configuration by key %s: %v", cfg.Key, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if config == nil {
|
|
||||||
t.Fatal("configuration is nil")
|
|
||||||
}
|
|
||||||
|
|
||||||
if config.Value != cfg.Value {
|
|
||||||
t.Fatalf("unexpected value: %s != %s", config.Value, cfg.Value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestListConfigs(t *testing.T) {
|
|
||||||
configs, err := ListConfigs()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to list configurations: %v", err)
|
|
||||||
}
|
|
||||||
size := len(configs)
|
|
||||||
|
|
||||||
cfg := &models.Config{
|
|
||||||
Key: "key",
|
|
||||||
Value: "value",
|
|
||||||
}
|
|
||||||
if err := InsertConfig(cfg); err != nil {
|
|
||||||
t.Fatalf("failed to insert configuration into table: %v", err)
|
|
||||||
}
|
|
||||||
defer func(key string) {
|
|
||||||
if err := deleteConfigByKey(key); err != nil {
|
|
||||||
t.Fatalf("failed to delete configuration %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}(cfg.Key)
|
|
||||||
|
|
||||||
configs, err = ListConfigs()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to list configurations: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if size+1 != len(configs) {
|
|
||||||
t.Fatalf("unexpected length of configurations: %d != %d", len(configs), size+1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestInsertConfig(t *testing.T) {
|
|
||||||
cfg := &models.Config{
|
|
||||||
Key: "key1",
|
|
||||||
Value: "value1",
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := InsertConfig(cfg); err != nil {
|
|
||||||
t.Fatalf("failed to insert configuration into table: %v", err)
|
|
||||||
}
|
|
||||||
defer func(key string) {
|
|
||||||
if err := deleteConfigByKey(key); err != nil {
|
|
||||||
t.Fatalf("failed to delete configuration %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}(cfg.Key)
|
|
||||||
|
|
||||||
config, err := GetConfigByKey(cfg.Key)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to get configuration by key %s: %v", cfg.Key, err)
|
|
||||||
}
|
|
||||||
if config == nil {
|
|
||||||
t.Fatal("configuration is nil")
|
|
||||||
}
|
|
||||||
|
|
||||||
if config.Value != cfg.Value {
|
|
||||||
t.Fatalf("unexpected value: %s != %s", config.Value, cfg.Value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestUpdateConfig(t *testing.T) {
|
|
||||||
cfg := &models.Config{
|
|
||||||
Key: "key",
|
|
||||||
Value: "value",
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := InsertConfig(cfg); err != nil {
|
|
||||||
t.Fatalf("failed to insert configuration into table: %v", err)
|
|
||||||
}
|
|
||||||
defer func(key string) {
|
|
||||||
if err := deleteConfigByKey(key); err != nil {
|
|
||||||
t.Fatalf("failed to delete configuration %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}(cfg.Key)
|
|
||||||
|
|
||||||
newCfg := &models.Config{
|
|
||||||
Key: "key",
|
|
||||||
Value: "new_value",
|
|
||||||
}
|
|
||||||
if err := UpdateConfig(newCfg); err != nil {
|
|
||||||
t.Fatalf("failed to update configuration: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
config, err := GetConfigByKey(cfg.Key)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to get configuration by key %s: %v", cfg.Key, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if config == nil {
|
|
||||||
t.Fatal("configuration is nil")
|
|
||||||
}
|
|
||||||
|
|
||||||
if config.Value != newCfg.Value {
|
|
||||||
t.Fatalf("unexpected value: %s != %s", config.Value, newCfg.Value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestInsertOrUpdateConfigs(t *testing.T) {
|
|
||||||
cfg1 := &models.Config{
|
|
||||||
Key: "key1",
|
|
||||||
Value: "value1",
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := InsertConfig(cfg1); err != nil {
|
|
||||||
t.Fatalf("failed to insert configuration into table: %v", err)
|
|
||||||
}
|
|
||||||
defer func(key string) {
|
|
||||||
if err := deleteConfigByKey(key); err != nil {
|
|
||||||
t.Fatalf("failed to delete configuration %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}(cfg1.Key)
|
|
||||||
|
|
||||||
cfg2 := &models.Config{
|
|
||||||
Key: "key2",
|
|
||||||
Value: "value2",
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := InsertOrUpdateConfigs([]*models.Config{cfg1, cfg2}); err != nil {
|
|
||||||
t.Fatalf("failed to insert or update configurations: %v", err)
|
|
||||||
}
|
|
||||||
defer func(key string) {
|
|
||||||
if err := deleteConfigByKey(key); err != nil {
|
|
||||||
t.Fatalf("failed to delete configuration %s: %v", key, err)
|
|
||||||
}
|
|
||||||
}(cfg2.Key)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAuthModeCanBeModified(t *testing.T) {
|
func TestAuthModeCanBeModified(t *testing.T) {
|
||||||
c, err := GetOrmer().QueryTable(&models.User{}).Count()
|
c, err := GetOrmer().QueryTable(&models.User{}).Count()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -233,4 +70,3 @@ func TestAuthModeCanBeModified(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -366,14 +366,14 @@ func (ra *RepositoryAPI) initRepositoryClient(repoName string) (r *registry.Repo
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
insecure, err := api.GetIsInsecure()
|
verify, err := config.VerifyRemoteCert()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
username, password, ok := ra.Ctx.Request.BasicAuth()
|
username, password, ok := ra.Ctx.Request.BasicAuth()
|
||||||
if ok {
|
if ok {
|
||||||
return newRepositoryClient(endpoint, insecure, username, password,
|
return newRepositoryClient(endpoint, !verify, username, password,
|
||||||
repoName, "repository", repoName, "pull", "push", "*")
|
repoName, "repository", repoName, "pull", "push", "*")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -382,7 +382,7 @@ func (ra *RepositoryAPI) initRepositoryClient(repoName string) (r *registry.Repo
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return cache.NewRepositoryClient(endpoint, insecure, username, repoName,
|
return cache.NewRepositoryClient(endpoint, !verify, username, repoName,
|
||||||
"repository", repoName, "pull", "push", "*")
|
"repository", repoName, "pull", "push", "*")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,12 +102,12 @@ func (t *TargetAPI) Ping() {
|
||||||
password = t.GetString("password")
|
password = t.GetString("password")
|
||||||
}
|
}
|
||||||
|
|
||||||
insecure, err := api.GetIsInsecure()
|
verify, err := config.VerifyRemoteCert()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("failed to check whether insecure or not: %v", err)
|
log.Errorf("failed to check whether insecure or not: %v", err)
|
||||||
t.CustomAbort(http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError))
|
t.CustomAbort(http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError))
|
||||||
}
|
}
|
||||||
registry, err := newRegistryClient(endpoint, insecure, username, password,
|
registry, err := newRegistryClient(endpoint, !verify, username, password,
|
||||||
"", "", "")
|
"", "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// timeout, dns resolve error, connection refused, etc.
|
// timeout, dns resolve error, connection refused, etc.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user