in agent/session/plugin/config/profile.go [86:143]
func (cp *Profile) Validate() error {
if cp.RegionId == "" {
return fmt.Errorf("region can't be empty")
}
if !IsRegion(cp.RegionId) {
return fmt.Errorf("invalid region %s", cp.RegionId)
}
if cp.Mode == "" {
return fmt.Errorf("profile %s is not configure yet, run `aliyun configure --profile %s` first", cp.Name, cp.Name)
}
switch cp.Mode {
case AK:
return cp.ValidateAK()
case StsToken:
err := cp.ValidateAK()
if err != nil {
return err
}
if cp.StsToken == "" {
return fmt.Errorf("invalid sts_token")
}
case RamRoleArn:
err := cp.ValidateAK()
if err != nil {
return err
}
if cp.RamRoleArn == "" {
return fmt.Errorf("invalid ram_role_arn")
}
if cp.RoleSessionName == "" {
return fmt.Errorf("invalid role_session_name")
}
case EcsRamRole, RamRoleArnWithEcs:
case RsaKeyPair:
if cp.PrivateKey == "" {
return fmt.Errorf("invalid private_key")
}
if cp.KeyPairName == "" {
return fmt.Errorf("invalid key_pair_name")
}
case External:
if cp.ProcessCommand == "" {
return fmt.Errorf("invalid process_command")
}
case CredentialsURI:
if cp.CredentialsURI == "" {
return fmt.Errorf("invalid credentials_uri")
}
default:
return fmt.Errorf("invalid mode: %s", cp.Mode)
}
return nil
}