feat: rainyun server service — list/get/start/stop/reboot/vnc/upgrade

This commit is contained in:
2026-07-28 16:02:59 +08:00
parent b817c56e9a
commit 7a19c154d0
3 changed files with 256 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
package rainyun
import (
"context"
"git.yoresee.cc/nightstar/ry/internal/provider"
)
func init() {
provider.Register("rainyun", New)
}
// Rainyun provider — 雨云 cloud platform.
type Rainyun struct {
client *client
server *ServerService
}
// New creates a Rainyun provider from config.
func New(cfg provider.ProviderConfig) (provider.Provider, error) {
c := newClient(cfg.Endpoint, cfg.APIKey)
r := &Rainyun{client: c}
r.server = &ServerService{client: c}
return r, nil
}
func (r *Rainyun) Name() string { return "rainyun" }
func (r *Rainyun) DisplayName() string { return "雨云" }
// ValidateAuth checks the API key by hitting the user info endpoint.
func (r *Rainyun) ValidateAuth(ctx context.Context) error {
var data any
return r.client.get(ctx, "/user/", &data)
}
func (r *Rainyun) Server() provider.ServerService {
if r.server == nil {
r.server = &ServerService{client: r.client}
}
return r.server
}
func (r *Rainyun) Domain() provider.DomainService { return nil }
func (r *Rainyun) Storage() provider.StorageService { return nil }
func (r *Rainyun) CDN() provider.CDNService { return nil }
func (r *Rainyun) Billing() provider.BillingService { return nil }