2017-04-13 12:54:58 +02:00
|
|
|
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
|
|
|
//
|
|
|
|
// 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.
|
2016-12-30 11:04:01 +01:00
|
|
|
|
|
|
|
package models
|
|
|
|
|
2017-02-08 10:17:33 +01:00
|
|
|
/*
|
2016-12-30 11:04:01 +01:00
|
|
|
// Authentication ...
|
|
|
|
type Authentication struct {
|
|
|
|
Mode string `json:"mode"`
|
|
|
|
SelfRegistration bool `json:"self_registration"`
|
|
|
|
LDAP *LDAP `json:"ldap,omitempty"`
|
|
|
|
}
|
2017-02-08 10:17:33 +01:00
|
|
|
*/
|
2016-12-30 11:04:01 +01:00
|
|
|
|
|
|
|
// Database ...
|
|
|
|
type Database struct {
|
|
|
|
Type string `json:"type"`
|
|
|
|
MySQL *MySQL `json:"mysql,omitempty"`
|
|
|
|
SQLite *SQLite `json:"sqlite,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// MySQL ...
|
|
|
|
type MySQL struct {
|
|
|
|
Host string `json:"host"`
|
|
|
|
Port int `json:"port"`
|
|
|
|
Username string `json:"username"`
|
2017-01-12 11:29:02 +01:00
|
|
|
Password string `json:"password,omitempty"`
|
2016-12-30 11:04:01 +01:00
|
|
|
Database string `json:"database"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// SQLite ...
|
|
|
|
type SQLite struct {
|
|
|
|
File string `json:"file"`
|
|
|
|
}
|
|
|
|
|
2017-12-19 08:25:12 +01:00
|
|
|
// PostGreSQL ...
|
|
|
|
type PostGreSQL struct {
|
2018-01-02 11:28:48 +01:00
|
|
|
Host string `json:"host"`
|
|
|
|
Port int `json:"port"`
|
2017-12-19 08:25:12 +01:00
|
|
|
Username string `json:"username"`
|
|
|
|
Password string `json:"password,omitempty"`
|
|
|
|
Database string `json:"database"`
|
|
|
|
}
|
|
|
|
|
2016-12-30 11:04:01 +01:00
|
|
|
// Email ...
|
|
|
|
type Email struct {
|
|
|
|
Host string `json:"host"`
|
2017-01-20 06:30:49 +01:00
|
|
|
Port int `json:"port"`
|
2016-12-30 11:04:01 +01:00
|
|
|
Username string `json:"username"`
|
|
|
|
Password string `json:"password"`
|
2017-01-12 11:29:02 +01:00
|
|
|
SSL bool `json:"ssl"`
|
2016-12-30 11:04:01 +01:00
|
|
|
Identity string `json:"identity"`
|
|
|
|
From string `json:"from"`
|
2017-08-30 09:15:44 +02:00
|
|
|
Insecure bool `json:"insecure"`
|
2016-12-30 11:04:01 +01:00
|
|
|
}
|
|
|
|
|
2017-02-08 10:17:33 +01:00
|
|
|
/*
|
2016-12-30 11:04:01 +01:00
|
|
|
// Registry ...
|
|
|
|
type Registry struct {
|
|
|
|
URL string `json:"url"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// TokenService ...
|
|
|
|
type TokenService struct {
|
|
|
|
URL string `json:"url"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// SystemCfg holds all configurations of system
|
|
|
|
type SystemCfg struct {
|
|
|
|
DomainName string `json:"domain_name"` // Harbor external URL: protocal://host:port
|
|
|
|
Authentication *Authentication `json:"authentication"`
|
|
|
|
Database *Database `json:"database"`
|
|
|
|
TokenService *TokenService `json:"token_service"`
|
|
|
|
Registry *Registry `json:"registry"`
|
|
|
|
Email *Email `json:"email"`
|
|
|
|
VerifyRemoteCert bool `json:"verify_remote_cert"`
|
|
|
|
ProjectCreationRestriction string `json:"project_creation_restriction"`
|
|
|
|
MaxJobWorkers int `json:"max_job_workers"`
|
|
|
|
JobLogDir string `json:"job_log_dir"`
|
2017-01-12 11:29:02 +01:00
|
|
|
InitialAdminPwd string `json:"initial_admin_pwd,omitempty"`
|
2016-12-30 11:04:01 +01:00
|
|
|
TokenExpiration int `json:"token_expiration"` // in minute
|
2017-01-12 11:29:02 +01:00
|
|
|
SecretKey string `json:"secret_key,omitempty"`
|
2016-12-30 11:04:01 +01:00
|
|
|
CfgExpiration int `json:"cfg_expiration"`
|
|
|
|
}
|
2017-02-08 10:17:33 +01:00
|
|
|
*/
|
2017-11-15 07:49:14 +01:00
|
|
|
|
|
|
|
// ConfigEntry ...
|
|
|
|
type ConfigEntry struct {
|
2018-01-02 11:28:48 +01:00
|
|
|
ID int64 `orm:"pk;auto;column(id)" json:"-"`
|
|
|
|
Key string `orm:"column(k)" json:"k"`
|
2017-11-15 07:49:14 +01:00
|
|
|
Value string `orm:"column(v)" json:"v"`
|
|
|
|
}
|
2018-01-02 11:28:48 +01:00
|
|
|
|
2017-11-15 07:49:14 +01:00
|
|
|
// TableName ...
|
2018-01-02 11:28:48 +01:00
|
|
|
func (ce *ConfigEntry) TableName() string {
|
2017-11-15 07:49:14 +01:00
|
|
|
return "properties"
|
2018-01-02 11:28:48 +01:00
|
|
|
}
|