func (c *ComputeUtil) uploadSSHKey(instance *raw.Instance, sshKeyPath string) error {
	log.Infof("Uploading SSH Key")

	sshKey, err := ioutil.ReadFile(sshKeyPath + ".pub")
	if err != nil {
		return err
	}

	metaDataValue := fmt.Sprintf("%s:%s %s\n", c.userName, strings.TrimSpace(string(sshKey)), c.userName)

	op, err := c.service.Instances.SetMetadata(c.project, c.zone, c.instanceName, &raw.Metadata{
		Fingerprint: instance.Metadata.Fingerprint,
		Items: []*raw.MetadataItems{
			{
				Key:   "sshKeys",
				Value: &metaDataValue,
			},
		},
	}).Do()

	return c.waitForRegionalOp(op.Name)
}
func (c *ComputeUtil) uploadSSHKey(instance *raw.Instance, sshKeyPath string) error {
	log.Infof("Uploading SSH Key")

	sshKey, err := ioutil.ReadFile(sshKeyPath + ".pub")
	if err != nil {
		return err
	}

	metaDataValue := fmt.Sprintf("%s:%s %s\n", c.userName, strings.TrimSpace(string(sshKey)), c.userName)

	op, err := c.service.Instances.SetMetadata(c.project, c.zone, c.instanceName, &raw.Metadata{
		Fingerprint: instance.Metadata.Fingerprint,
		Items: []*raw.MetadataItems{
			{
				Key:   "sshKeys",
				Value: &metaDataValue,
			},
		},
	}).Do()

	return c.waitForRegionalOp(op.Name)
}
func ( c * ComputeUtil ) uploadSSHKey ( instance * raw . Instance , sshKeyPath string ) error { log . Infof ( " " ) sshKey , err := ioutil . ReadFile ( sshKeyPath + " " ) if err != nil { return err } metaDataValue := fmt . Sprintf ( " \n " , c . userName , strings . TrimSpace ( string ( sshKey ) ) , c . userName ) op , err := c . service . Instances . SetMetadata ( c . project , c . zone , c . instanceName , & raw . Metadata { Fingerprint : instance . Metadata . Fingerprint , Items : [ ] * raw . MetadataItems { { Key : " " , Value : & metaDataValue , } , } , } ) . Do ( ) return c . waitForRegionalOp ( op . Name ) }
// uploadSSHKey updates the instance metadata with the given ssh key.
uploadSSHKey updates the instance metadata with the given ssh key .