【新增】增加API接口测试功能接口 为部分供应商API增加测试功能

This commit is contained in:
wantoper
2025-05-20 17:27:42 +08:00
parent 4a2f500006
commit 77d82ad8a0
18 changed files with 284 additions and 5 deletions

View File

@@ -29,3 +29,12 @@ func TestP(t *testing.T) {
err := Deploy1panel(cfg)
println(err)
}
func TestOnePanelAPITest(t *testing.T) {
result := OnePanelAPITest("8")
if result != nil {
t.Fatalf("SSHAPITest failed: %v", result)
} else {
t.Log("SSHAPITest success")
}
}

View File

@@ -97,9 +97,9 @@ func Request1panel(data *map[string]any, method, providerID, requestUrl string)
if code != 200 {
msg, ok := res["message"].(string)
if !ok {
return nil, fmt.Errorf("证书部署失败")
return nil, fmt.Errorf("请求失败")
}
return nil, fmt.Errorf("证书部署失败: %s", msg)
return nil, fmt.Errorf("请求失败: %s", msg)
}
return res, nil
@@ -223,3 +223,12 @@ func Deploy1panelSite(cfg map[string]any) error {
_, err = Request1panel(&data, "POST", providerID, fmt.Sprintf("api/v1/websites/%s/https", siteId))
return err
}
func OnePanelAPITest(providerID string) error {
data := map[string]interface{}{}
_, err := Request1panel(&data, "GET", providerID, "api/v1/settings/upgrade")
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}

View File

@@ -39,3 +39,12 @@ func TestALiOss(t *testing.T) {
t.Logf("DeployAliCdn succeeded")
}
}
func TestAliyunCdnAPITest(t *testing.T) {
result := AliyunCdnAPITest("10")
if result != nil {
t.Fatalf("SSHAPITest failed: %v", result)
} else {
t.Log("SSHAPITest success")
}
}

View File

@@ -6,11 +6,11 @@ import (
"fmt"
aliyuncdn "github.com/alibabacloud-go/cdn-20180510/v6/client"
aliyunopenapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
aliyunmarket "github.com/alibabacloud-go/market-20151101/v4/client"
"github.com/alibabacloud-go/tea/tea"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"strconv"
"strings"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func ClientAliCdn(accessKey, accessSecret string) (_result *aliyuncdn.Client, err error) {
@@ -183,3 +183,43 @@ func DeployOss(cfg map[string]any) error {
err = client.PutBucketCnameWithCertificate(bucket, putBucketCnameWithCertificateRequest)
return err
}
func ClientMaker(accessKeyId, accessKeySecret string) (*aliyunmarket.Client, error) {
config := &aliyunopenapi.Config{
AccessKeyId: tea.String(accessKeyId),
AccessKeySecret: tea.String(accessKeySecret),
Endpoint: tea.String("market.aliyuncs.com"),
}
client, _ := aliyunmarket.NewClient(config)
return client, nil
}
func AliyunCdnAPITest(providerID string) error {
providerData, err := access.GetAccess(providerID)
if err != nil {
return err
}
providerConfigStr, ok := providerData["config"].(string)
if !ok {
return fmt.Errorf("api配置错误")
}
// 解析 JSON 配置
var providerConfig map[string]string
err = json.Unmarshal([]byte(providerConfigStr), &providerConfig)
if err != nil {
return err
}
client, err := ClientMaker(providerConfig["access_key_id"], providerConfig["access_key_secret"])
describeApiMeteringRequest := &aliyunmarket.DescribeApiMeteringRequest{
PageNum: tea.Int32(1),
}
_, err = client.DescribeApiMetering(describeApiMeteringRequest)
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}

View File

@@ -1,6 +1,8 @@
package deploy
import "testing"
import (
"testing"
)
func TestBTSite(t *testing.T) {
cfg := map[string]any{
@@ -43,3 +45,12 @@ func TestBTDockerSite(t *testing.T) {
err := DeployBtDockerSite(cfg)
println(err)
}
func TestBtPanelAPITest(t *testing.T) {
result := BtPanelAPITest("4")
if result != nil {
t.Fatalf("SSHAPITest failed: %v", result)
} else {
t.Log("SSHAPITest success")
}
}

View File

@@ -197,3 +197,12 @@ func DeployBtDockerSite(cfg map[string]any) error {
}
return nil
}
func BtPanelAPITest(providerID string) error {
data := url.Values{}
_, err := RequestBt(&data, "POST", providerID, "mod/push/task/get_task_list")
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}

View File

@@ -199,3 +199,12 @@ func DeployBtWafSite(cfg map[string]any) error {
}
return nil
}
func BtWafAPITest(providerID string) error {
data := map[string]any{}
_, err := RequestBtWaf(&data, "POST", providerID, "api/overview/infos")
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}

View File

@@ -40,3 +40,11 @@ func TestGetBTWAFSiteList(t *testing.T) {
}
fmt.Println(err)
}
func TestBtWafAPITest(t *testing.T) {
result := BtWafAPITest("1")
if result != nil {
fmt.Println(result)
return
}
}

View File

@@ -204,3 +204,11 @@ func DeploySafeLineWafSite(cfg map[string]any, logger *public.Logger) error {
return nil
}
func SafeLineAPITest(providerID string) error {
_, err := RequestSafeLineWaf(&map[string]any{}, "GET", providerID, "api/open/site/group")
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}

View File

@@ -45,3 +45,12 @@ func TestGetSafeLineWAFSiteList(t *testing.T) {
siteId := matchSafeLineSiteByColumn(res, "comment", "测得3")
fmt.Println(siteId)
}
func TestSafeLineAPITest(t *testing.T) {
result := SafeLineAPITest("5")
if result != nil {
t.Fatalf("SafeLineAPITest failed: %v", result)
} else {
t.Log("SafeLineAPITest success")
}
}

View File

@@ -235,3 +235,61 @@ func DeployLocalhost(cfg map[string]any) error {
}
return nil
}
func SSHAPITest(providerID string) error {
providerData, err := access.GetAccess(providerID)
if err != nil {
return err
}
providerConfigStr, ok := providerData["config"].(string)
if !ok {
return fmt.Errorf("api配置错误")
}
// 解析 JSON 配置
var providerConfig SSHConfig
err = json.Unmarshal([]byte(providerConfigStr), &providerConfig)
if err != nil {
return err
}
var port string
switch v := providerConfig.Port.(type) {
case float64:
port = strconv.Itoa(int(v))
case string:
port = v
case int:
port = strconv.Itoa(v)
default:
port = "22"
}
addr := fmt.Sprintf("%s:%s", providerConfig.Host, port)
authMethods, err := buildAuthMethods(providerConfig.Password, providerConfig.PrivateKey)
if err != nil {
return err
}
sshConfig := &ssh.ClientConfig{
User: providerConfig.User,
Auth: authMethods,
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
}
client, err := ssh.Dial("tcp", addr, sshConfig)
if err != nil {
return fmt.Errorf("SSH连接失败: %v", err)
}
defer client.Close()
// 尝试创建会话来验证连接
session, err := client.NewSession()
if err != nil {
return fmt.Errorf("SSH会话创建失败: %v", err)
}
defer session.Close()
return nil
}

View File

@@ -20,3 +20,12 @@ func TestSSH(t *testing.T) {
}
// println(err.Error())
}
func TestSSHAPITest(t *testing.T) {
result := SSHAPITest("7")
if result != nil {
t.Fatalf("SSHAPITest failed: %v", result)
} else {
t.Log("SSHAPITest success")
}
}

View File

@@ -130,3 +130,33 @@ func DeployToTX(cfg map[string]any) error {
fmt.Println(response.Response.DeployRecordId)
return nil
}
func TencentCloudAPITest(providerID string) error {
providerData, err := access.GetAccess(providerID)
if err != nil {
return err
}
providerConfigStr, ok := providerData["config"].(string)
if !ok {
return fmt.Errorf("api配置错误")
}
// 解析 JSON 配置
var providerConfig map[string]string
err = json.Unmarshal([]byte(providerConfigStr), &providerConfig)
if err != nil {
return err
}
// 创建客户端
client := ClientTencentcloud(providerConfig["secret_id"], providerConfig["secret_key"], "")
request := ssl.NewDescribeCertificatesRequest()
_, err = client.DescribeCertificates(request)
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}

View File

@@ -0,0 +1,12 @@
package deploy
import "testing"
func TestTencentCloudAPITest(t *testing.T) {
result := TencentCloudAPITest("9")
if result != nil {
t.Fatalf("SSHAPITest failed: %v", result)
} else {
t.Log("SSHAPITest success")
}
}