ImageID cloud.ImageID
SSHKey ssh.Signer
SSHPort string
+ DeployPublicKey bool
BootProbeCommand string
InstanceInitCommand cloud.InitCommand
ShellCommand string
// Currently this means run once for each configured SubnetID.
func (t *tester) Run() bool {
var dp map[string]interface{}
- err := json.Unmarshal(t.DriverParameters, &dp)
- if err != nil {
- t.Logger.WithError(err).Error("error decoding configured CloudVMs.DriverParameters")
- return false
+ if len(t.DriverParameters) > 0 {
+ err := json.Unmarshal(t.DriverParameters, &dp)
+ if err != nil {
+ t.Logger.WithError(err).Error("error decoding configured CloudVMs.DriverParameters")
+ return false
+ }
}
subnets, ok := dp["SubnetID"].([]interface{})
if !ok || len(subnets) <= 1 {
bootDeadline := time.Now().Add(t.TimeoutBooting)
initCommand := worker.TagVerifier{Instance: nil, Secret: t.secret, ReportVerified: nil}.InitCommand() + "\n" + t.InstanceInitCommand
+ installPublicKey := t.SSHKey.PublicKey()
+ if !t.DeployPublicKey {
+ installPublicKey = nil
+ }
+
t.Logger.WithFields(logrus.Fields{
"InstanceType": t.InstanceType.Name,
"ProviderInstanceType": t.InstanceType.ProviderType,
"ImageID": t.ImageID,
"Tags": tags,
"InitCommand": initCommand,
+ "DeployPublicKey": installPublicKey != nil,
}).Info("creating instance")
t0 := time.Now()
- inst, err := t.is.Create(t.InstanceType, t.ImageID, tags, initCommand, t.SSHKey.PublicKey())
+ inst, err := t.is.Create(t.InstanceType, t.ImageID, tags, initCommand, installPublicKey)
lgrC := t.Logger.WithField("Duration", time.Since(t0))
if err != nil {
// Create() might have failed due to a bug or network