27 lines
771 B
Go
27 lines
771 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"oci-portal/internal/oci"
|
|
)
|
|
|
|
// Compartments 递归列出租户下全部 ACTIVE compartment(不含租户根)。
|
|
func (s *OciConfigService) Compartments(ctx context.Context, id uint) ([]oci.Compartment, error) {
|
|
cred, err := s.credentialsByID(ctx, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return s.client.ListCompartments(ctx, cred)
|
|
}
|
|
|
|
// credentialsInCompartment 取配置凭据并限定资源操作的目标 compartment(空为租户根)。
|
|
func (s *OciConfigService) credentialsInCompartment(ctx context.Context, id uint, compartmentID string) (oci.Credentials, error) {
|
|
cred, err := s.credentialsByID(ctx, id)
|
|
if err != nil {
|
|
return oci.Credentials{}, err
|
|
}
|
|
cred.CompartmentID = compartmentID
|
|
return cred, nil
|
|
}
|