text:
SSH Agent authentication method

Enable SSH authentication using SSH  Agent alternatively or in addition to the existing SSH Key-Pair method. Disabled by default so no impact to the current behavior.

All TestTerraformSshExample tests passed. I'll have a look if I can add something to test the new ssh-agent feature.
=== RUN   TestTerraformSshExample
=== PAUSE TestTerraformSshExample
=== CONT  TestTerraformSshExample
TestTerraformSshExample 2018-08-09T09:22:20+02:00 test_structure.go:23: The 'SKIP_setup' environment variable is not set, so executing stage 'setup'.
TestTerraformSshExample 2018-08-09T09:22:20+02:00 region.go:72: Looking up all AWS regions available in this account
TestTerraformSshExample 2018-08-09T09:22:22+02:00 region.go:57: Using region ap-northeast-2
TestTerraformSshExample 2018-08-09T09:22:22+02:00 key_pair.go:31: Generating new public/private key of size 2048
TestTerraformSshExample 2018-08-09T09:22:24+02:00 keypair.go:49: Creating new Key Pair in EC2 region ap-northeast-2 named terratest-ssh-example-0OaIih
TestTerraformSshExample 2018-08-09T09:22:26+02:00 save_test_data.go:132: Storing test data in ../examples/terraform-ssh-example/.test-data/TerraformOptions.json so it can be reused later
TestTerraformSshExample 2018-08-09T09:22:26+02:00 save_test_data.go:135: [WARNING] The named test data at path ../examples/terraform-ssh-example/.test-data/TerraformOptions.json is non-empty. Save operation will overwrite existing value with "&{../examples/terraform-ssh-example map[aws_region:ap-northeast-2 instance_name:terratest-ssh-example-0OaIih key_pair_name:terratest-ssh-example-0OaIih] map[] map[] map[] 0 0s false false}".
.
TestTerraformSshExample 2018-08-09T09:22:26+02:00 save_test_data.go:132: Storing test data in ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json so it can be reused later
TestTerraformSshExample 2018-08-09T09:22:26+02:00 save_test_data.go:135: [WARNING] The named test data at path ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json is non-empty. Save operation will overwrite existing value with "&{0xc420456520 terratest-ssh-example-0OaIih ap-northeast-2}".
.
TestTerraformSshExample 2018-08-09T09:22:26+02:00 retry.go:69: Running terraform [init -upgrade=false]
TestTerraformSshExample 2018-08-09T09:22:26+02:00 command.go:52: Running command terraform with args [init -upgrade=false]
TestTerraformSshExample 2018-08-09T09:22:26+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:26+02:00 command.go:96: Initializing provider plugins...
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: The following providers do not have any version constraints in configuration,
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: so the latest version was installed.
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: To prevent automatic upgrades to new major versions that may contain breaking
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: changes, it is recommended to add version = "..." constraints to the
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: corresponding provider blocks in configuration, with the constraint strings
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: suggested below.
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: * provider.aws: version = "~> 1.31"
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: Terraform has been successfully initialized!
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: You may now begin working with Terraform. Try running "terraform plan" to see
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: any changes that are required for your infrastructure. All Terraform commands
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: should now work.
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: If you ever set or change modules or backend configuration for Terraform,
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: rerun this command to reinitialize your working directory. If you forget, other
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:96: commands will detect it and remind you to do so if necessary.
TestTerraformSshExample 2018-08-09T09:22:28+02:00 retry.go:69: Running terraform [get -update]
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:52: Running command terraform with args [get -update]
TestTerraformSshExample 2018-08-09T09:22:28+02:00 retry.go:69: Running terraform [apply -input=false -lock=false -auto-approve -var aws_region="ap-northeast-2" -var instance_name="terratest-ssh-example-0OaIih" -var key_pair_name="terratest-ssh-example-0OaIih"]
TestTerraformSshExample 2018-08-09T09:22:28+02:00 command.go:52: Running command terraform with args [apply -input=false -lock=false -auto-approve -var aws_region="ap-northeast-2" -var instance_name="terratest-ssh-example-0OaIih" -var key_pair_name="terratest-ssh-example-0OaIih"]
TestTerraformSshExample 2018-08-09T09:22:37+02:00 command.go:96: data.aws_ami.ubuntu: Refreshing state...
TestTerraformSshExample 2018-08-09T09:22:46+02:00 command.go:96: aws_security_group.example: Creating...
TestTerraformSshExample 2018-08-09T09:22:46+02:00 command.go:96:   arn:                                   "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:22:46+02:00 command.go:96:   description:                           "" => "Managed by Terraform"
TestTerraformSshExample 2018-08-09T09:22:46+02:00 command.go:96:   egress.#:                              "" => "1"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.cidr_blocks.#:        "" => "1"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.cidr_blocks.0:        "" => "0.0.0.0/0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.description:          "" => ""
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.from_port:            "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.ipv6_cidr_blocks.#:   "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.prefix_list_ids.#:    "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.protocol:             "" => "-1"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.security_groups.#:    "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.self:                 "" => "false"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   egress.482069346.to_port:              "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.#:                             "" => "1"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.cidr_blocks.#:      "" => "1"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.cidr_blocks.0:      "" => "0.0.0.0/0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.description:        "" => ""
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.from_port:          "" => "22"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.ipv6_cidr_blocks.#: "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.protocol:           "" => "tcp"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.security_groups.#:  "" => "0"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.self:               "" => "false"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   ingress.2541437006.to_port:            "" => "22"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   name:                                  "" => "terratest-ssh-example-0OaIih"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   owner_id:                              "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   revoke_rules_on_delete:                "" => "false"
TestTerraformSshExample 2018-08-09T09:22:47+02:00 command.go:96:   vpc_id:                                "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:22:57+02:00 command.go:96: aws_security_group.example: Still creating... (10s elapsed)
TestTerraformSshExample 2018-08-09T09:23:04+02:00 command.go:96: aws_security_group.example: Creation complete after 18s (ID: sg-028c95707db54f2f7)
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96: aws_instance.example_private: Creating...
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ami:                               "" => "ami-09960a24a97b8087b"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   arn:                               "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   associate_public_ip_address:       "" => "false"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   availability_zone:                 "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   cpu_core_count:                    "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   cpu_threads_per_core:              "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ebs_block_device.#:                "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ephemeral_block_device.#:          "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   get_password_data:                 "" => "false"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   instance_state:                    "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   instance_type:                     "" => "t2.micro"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ipv6_address_count:                "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ipv6_addresses.#:                  "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   key_name:                          "" => "terratest-ssh-example-0OaIih"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   network_interface.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   network_interface_id:              "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   password_data:                     "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   placement_group:                   "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   primary_network_interface_id:      "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   private_dns:                       "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   private_ip:                        "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   public_dns:                        "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   public_ip:                         "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   root_block_device.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   security_groups.#:                 "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   source_dest_check:                 "" => "true"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   subnet_id:                         "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   tags.%:                            "" => "1"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   tags.Name:                         "" => "terratest-ssh-example-0OaIih-private"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   tenancy:                           "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   volume_tags.%:                     "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   vpc_security_group_ids.#:          "" => "1"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   vpc_security_group_ids.2307636165: "" => "sg-028c95707db54f2f7"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96: aws_instance.example_public: Creating...
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ami:                               "" => "ami-09960a24a97b8087b"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   arn:                               "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   associate_public_ip_address:       "" => "true"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   availability_zone:                 "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   cpu_core_count:                    "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   cpu_threads_per_core:              "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ebs_block_device.#:                "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ephemeral_block_device.#:          "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   get_password_data:                 "" => "false"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   instance_state:                    "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   instance_type:                     "" => "t2.micro"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ipv6_address_count:                "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   ipv6_addresses.#:                  "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   key_name:                          "" => "terratest-ssh-example-0OaIih"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   network_interface.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   network_interface_id:              "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   password_data:                     "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   placement_group:                   "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   primary_network_interface_id:      "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   private_dns:                       "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   private_ip:                        "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   public_dns:                        "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   public_ip:                         "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   root_block_device.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   security_groups.#:                 "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   source_dest_check:                 "" => "true"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   subnet_id:                         "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   tags.%:                            "" => "1"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   tags.Name:                         "" => "terratest-ssh-example-0OaIih-public"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   tenancy:                           "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   volume_tags.%:                     "" => "<computed>"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   vpc_security_group_ids.#:          "" => "1"
TestTerraformSshExample 2018-08-09T09:23:05+02:00 command.go:96:   vpc_security_group_ids.2307636165: "" => "sg-028c95707db54f2f7"
TestTerraformSshExample 2018-08-09T09:23:15+02:00 command.go:96: aws_instance.example_private: Still creating... (10s elapsed)
TestTerraformSshExample 2018-08-09T09:23:15+02:00 command.go:96: aws_instance.example_public: Still creating... (10s elapsed)
TestTerraformSshExample 2018-08-09T09:23:25+02:00 command.go:96: aws_instance.example_private: Still creating... (20s elapsed)
TestTerraformSshExample 2018-08-09T09:23:25+02:00 command.go:96: aws_instance.example_public: Still creating... (20s elapsed)
TestTerraformSshExample 2018-08-09T09:23:35+02:00 command.go:96: aws_instance.example_private: Still creating... (30s elapsed)
TestTerraformSshExample 2018-08-09T09:23:35+02:00 command.go:96: aws_instance.example_public: Still creating... (30s elapsed)
TestTerraformSshExample 2018-08-09T09:23:35+02:00 command.go:96: aws_instance.example_public: Creation complete after 31s (ID: i-02273610c62562a73)
TestTerraformSshExample 2018-08-09T09:23:45+02:00 command.go:96: aws_instance.example_private: Still creating... (40s elapsed)
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: aws_instance.example_private: Creation complete after 43s (ID: i-0a5c55d5f762a642c)
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: Outputs:
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: private_instance_id = i-02273610c62562a73
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: private_instance_ip = 172.31.24.212
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: public_instance_id = i-02273610c62562a73
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: public_instance_ip = 52.79.250.127
TestTerraformSshExample 2018-08-09T09:23:48+02:00 test_structure.go:23: The 'SKIP_validate' environment variable is not set, so executing stage 'validate'.
TestTerraformSshExample 2018-08-09T09:23:48+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/TerraformOptions.json
TestTerraformSshExample 2018-08-09T09:23:48+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json
TestTerraformSshExample 2018-08-09T09:23:48+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-09T09:23:48+02:00 command.go:96: 52.79.250.127
TestTerraformSshExample 2018-08-09T09:23:48+02:00 retry.go:69: SSH to public host 52.79.250.127
TestTerraformSshExample 2018-08-09T09:23:48+02:00 ssh.go:167: Running command echo -n 'Hello, World' on ubuntu@52.79.250.127
TestTerraformSshExample 2018-08-09T09:23:52+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-09T09:23:52+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-09T09:23:52+02:00 command.go:96: 52.79.250.127
TestTerraformSshExample 2018-08-09T09:23:52+02:00 retry.go:69: Running terraform [output -no-color private_instance_ip]
TestTerraformSshExample 2018-08-09T09:23:52+02:00 command.go:52: Running command terraform with args [output -no-color private_instance_ip]
TestTerraformSshExample 2018-08-09T09:23:53+02:00 command.go:96: 172.31.24.212
TestTerraformSshExample 2018-08-09T09:23:53+02:00 retry.go:69: SSH to private host 52.79.250.127 via public host 172.31.24.212
TestTerraformSshExample 2018-08-09T09:23:53+02:00 ssh.go:167: Running command echo -n 'Hello, World' on ubuntu@172.31.24.212
TestTerraformSshExample 2018-08-09T09:24:02+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-09T09:24:02+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-09T09:24:02+02:00 command.go:96: 52.79.250.127
TestTerraformSshExample 2018-08-09T09:24:02+02:00 retry.go:69: SCP file to public host 52.79.250.127
TestTerraformSshExample 2018-08-09T09:24:02+02:00 ssh.go:167: Running command /usr/bin/scp -t /tmp/ on ubuntu@52.79.250.127
TestTerraformSshExample 2018-08-09T09:24:06+02:00 ssh.go:167: Running command cat /tmp/test.txt on ubuntu@52.79.250.127
TestTerraformSshExample 2018-08-09T09:24:11+02:00 test_structure.go:23: The 'SKIP_teardown' environment variable is not set, so executing stage 'teardown'.
TestTerraformSshExample 2018-08-09T09:24:11+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/TerraformOptions.json
TestTerraformSshExample 2018-08-09T09:24:11+02:00 retry.go:69: Running terraform [destroy -auto-approve -input=false -lock=false -var aws_region="ap-northeast-2" -var instance_name="terratest-ssh-example-0OaIih" -var key_pair_name="terratest-ssh-example-0OaIih"]
TestTerraformSshExample 2018-08-09T09:24:11+02:00 command.go:52: Running command terraform with args [destroy -auto-approve -input=false -lock=false -var aws_region="ap-northeast-2" -var instance_name="terratest-ssh-example-0OaIih" -var key_pair_name="terratest-ssh-example-0OaIih"]
TestTerraformSshExample 2018-08-09T09:24:17+02:00 command.go:96: aws_security_group.example: Refreshing state... (ID: sg-028c95707db54f2f7)
TestTerraformSshExample 2018-08-09T09:24:17+02:00 command.go:96: data.aws_ami.ubuntu: Refreshing state...
TestTerraformSshExample 2018-08-09T09:24:19+02:00 command.go:96: aws_instance.example_public: Refreshing state... (ID: i-02273610c62562a73)
TestTerraformSshExample 2018-08-09T09:24:19+02:00 command.go:96: aws_instance.example_private: Refreshing state... (ID: i-0a5c55d5f762a642c)
TestTerraformSshExample 2018-08-09T09:24:39+02:00 command.go:96: aws_instance.example_private: Destroying... (ID: i-0a5c55d5f762a642c)
TestTerraformSshExample 2018-08-09T09:24:39+02:00 command.go:96: aws_instance.example_public: Destroying... (ID: i-02273610c62562a73)
TestTerraformSshExample 2018-08-09T09:24:49+02:00 command.go:96: aws_instance.example_public: Still destroying... (ID: i-02273610c62562a73, 10s elapsed)
TestTerraformSshExample 2018-08-09T09:24:49+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-0a5c55d5f762a642c, 10s elapsed)
TestTerraformSshExample 2018-08-09T09:24:59+02:00 command.go:96: aws_instance.example_public: Still destroying... (ID: i-02273610c62562a73, 20s elapsed)
TestTerraformSshExample 2018-08-09T09:24:59+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-0a5c55d5f762a642c, 20s elapsed)
TestTerraformSshExample 2018-08-09T09:25:09+02:00 command.go:96: aws_instance.example_public: Still destroying... (ID: i-02273610c62562a73, 30s elapsed)
TestTerraformSshExample 2018-08-09T09:25:09+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-0a5c55d5f762a642c, 30s elapsed)
TestTerraformSshExample 2018-08-09T09:25:16+02:00 command.go:96: aws_instance.example_public: Destruction complete after 38s
TestTerraformSshExample 2018-08-09T09:25:19+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-0a5c55d5f762a642c, 40s elapsed)
TestTerraformSshExample 2018-08-09T09:25:29+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-0a5c55d5f762a642c, 51s elapsed)
TestTerraformSshExample 2018-08-09T09:25:39+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-0a5c55d5f762a642c, 1m1s elapsed)
TestTerraformSshExample 2018-08-09T09:25:39+02:00 command.go:96: aws_instance.example_private: Destruction complete after 1m1s
TestTerraformSshExample 2018-08-09T09:25:39+02:00 command.go:96: aws_security_group.example: Destroying... (ID: sg-028c95707db54f2f7)
TestTerraformSshExample 2018-08-09T09:25:43+02:00 command.go:96: aws_security_group.example: Destruction complete after 3s
TestTerraformSshExample 2018-08-09T09:25:43+02:00 command.go:96:
TestTerraformSshExample 2018-08-09T09:25:43+02:00 command.go:96: Destroy complete! Resources: 3 destroyed.
TestTerraformSshExample 2018-08-09T09:25:43+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json
TestTerraformSshExample 2018-08-09T09:25:43+02:00 keypair.go:79: Deleting Key Pair in EC2 region ap-northeast-2 named terratest-ssh-example-0OaIih
--- PASS: TestTerraformSshExample (203.88s)
	save_test_data.go:143: Marshalled JSON: {"TerraformDir":"../examples/terraform-ssh-example","Vars":{"aws_region":"ap-northeast-2","instance_name":"terratest-ssh-example-0OaIih","key_pair_name":"terratest-ssh-example-0OaIih"},"EnvVars":null,"BackendConfig":null,"RetryableTerraformErrors":null,"MaxRetries":0,"TimeBetweenRetries":0,"Upgrade":false,"NoColor":false}
	save_test_data.go:143: Marshalled JSON: {"PublicKey":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH+WYhqUQiKjyWBER08/Di47VgGu4zFfGxeCKechlD8hlTTcLyPlLzCg77B5VHIQBx2mrJzq5lGcIAYcBFPtJdiQhQyrGKN12QYpMftwmemn8YhvCeRBzz7ycnbsJogXZhxeSGbRB6I3ym5pqxDeYf3/jkyzfzV0YNBAqLvMKV1xfsuRC/bAQ8ed1bN81pqfcs8PPRFqnVkYpZo813NoyL383Vtm3zIjl0s5YNJDFFOBHC1gItrpHJBQGeqzcon/yC5Y3VLg8pOY3zQVKLCB9fbe1VtWwyykpJid4TAGNMGBS7JAVcuOcdukej6sYr6N8+ZvomkFsx/tEq6eVf4Nf1\n","PrivateKey":"-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAx/lmIalEIio8lgREdPPw4uO1YBruMxXxsXginnIZQ/IZU03C\n8j5S8woO+weVRyEAcdpqyc6uZRnCAGHART7SXYkIUMqxijddkGKTH7cJnpp/GIbw\nnkQc8+8nJ27CaIF2YcXkhm0QeiN8puaasQ3mH9/45Ms381dGDQQKi7zCldcX7LkQ\nv2wEPHndWzfNaan3LPDz0Rap1ZGKWaPNdzaMi9/N1bZt8yI5dLOWDSQxRTgRwtYC\nLa6RyQUBnqs3KJ/8guWN1S4PKTmN80FSiwgfX23tVbVsMspKSYneEwBjTBgUuyQF\nXLjnHbpHo+rGK+jfPmb6JpBbMf7RKunlX+DX9QIDAQABAoIBAEth/5cW2MFMTLR8\nfVXdE2RkVF4bKMoHLqoo0FwMROvxGozllmR9DAXkN8t3i1VZ4nII1RKoH+OqtxAv\nySwRR3nNC15xWkXxIwsnrbBZ7n1kXh7f11rB8GwgLhFWVmDQ1NB8qe3mtTxlnjrI\nWW3/AE3pv0h4Nuo7bwO/Dz6n9G5JEW6/MS4xETGQXKqHevLWjINk76LrUjaVVAA3\ntHSWfIcfA/jdPDLd7DzYwLYwVb654955queoWducS46qbhL9kZqqHPnX3nw1KhbK\n8mdTRUuS6QvW2gK7RHaWE1G0TAW4g9Nxtx60l0YJOgg3qV2UIbpDgslXmi6UBbaZ\nxJsibw0CgYEA6BeTediuB6YuSyTNhFUDdHC7xfdMaCAE+IHxIaINiWLnblQtb1y2\nMcfaCWUmlBC8k5AO7nVxNgq/3ao1YA4sJqq+7orKlz7Xjw5mcyZZ8kWLSgRDb7su\n36nmyKnKBRcfFCXCTTi8x0GkdCWSqHmWkwrnQrlF+4cynlr4yZY9j5MCgYEA3JLa\nVuEU7rnnkqN3W5Lzd7h+TiwTy97RAaf+Odg3ub9U4Eoi4kwqJ+oki7lmGPtT7xoW\n0jdkeyGHWoiO3iqB4WKv4ng7nJjjG0bUdNMn7S2HsTTIxZUi/paIi/0goXqHb7rN\n/SYiAldpcEp2pcgmTn9bz4qcmnCsbLseePIM31cCgYEAhcXA/QQFGueP20P1KQcP\nHLg1op8tbP63nrzWzTnob32QQylFnuBjK0IzzCJ/H+ydpLftw0fx3uJHQG5woVLJ\n4+eacUeSCabw+8WjC0/ZnCi1Zg4bCHVtSQFWweYLSO/Qu/4fhf7j4D1XmpJle7HJ\nNiucq/q5+YYtiNSKfTaZeP0CgYEAqz80Vpk/SCx7FoTlCOqpLXzGSui7od9mw3Nq\n0/wDH6nlOpE0Th8153FIWFZjZufRfWPy7dhloZchX+9/hAradWLKDPitx2GHiMjP\n77d0WxarL7A8Y/Hqjl/OuWiXqebYOa19eZnec5Tr3mthfEpNO0pzvEjwVpM9utj3\nyoyZ49cCgYAumYfENzdqe3jBi6USVExTrEJVJFEkKUBR0HRHdp3GevpvUe1Ok6Qa\ntVG9QpMM8QXf9nPhjLufK5yWQKT4hsHkqrImI/gZM13o1BX5ZMKY8EE1ftkW4/+W\ngPBfzNGu3P13Tgh5NXtbGbqSF2GjquX/GnszmpSccnCgQ7WQbct6Kw==\n-----END RSA PRIVATE KEY-----\n","Name":"terratest-ssh-example-0OaIih","Region":"ap-northeast-2"}
PASS
ok  	command-line-arguments	203.897s

OK, let me know if there's any reasonable way to add tests for this. Note that we run our tests in CircleCI, so it would have to work in that environment too.

I think I've followed all your recommendations. I've created two additional unit-tests using the new SSH agent feature: one to test public connections, and another to test private connections through a public server. SSH agent implementation may seem a bit over-engineered but at least it does not rely/expect any ssh agent installed on the system where tests are running. Let me know what you think.
SSH agent tests usually don't work on the first try because apparently it's not ready. This can be easily fixed with a 1-second sleep, or more elegantly using channels. I'm pretty new with golang so these "advanced" constructions don't come naturally out of me.
=== RUN   TestTerraformSshExample
=== PAUSE TestTerraformSshExample
=== CONT  TestTerraformSshExample
TestTerraformSshExample 2018-08-16T17:12:29+02:00 test_structure.go:23: The 'SKIP_setup' environment variable is not set, so executing stage 'setup'.
TestTerraformSshExample 2018-08-16T17:12:29+02:00 key_pair.go:31: Generating new public/private key of size 2048
TestTerraformSshExample 2018-08-16T17:12:30+02:00 keypair.go:49: Creating new Key Pair in EC2 region us-east-2 named terratest-ssh-example-jl6Dh1
TestTerraformSshExample 2018-08-16T17:12:31+02:00 save_test_data.go:132: Storing test data in ../examples/terraform-ssh-example/.test-data/TerraformOptions.json so it can be reused later
TestTerraformSshExample 2018-08-16T17:12:31+02:00 save_test_data.go:135: [WARNING] The named test data at path ../examples/terraform-ssh-example/.test-data/TerraformOptions.json is non-empty. Save operation will overwrite existing value with "&{../examples/terraform-ssh-example map[aws_region:us-east-2 instance_name:terratest-ssh-example-jl6Dh1 key_pair_name:terratest-ssh-example-jl6Dh1] map[] map[] map[] 0 0s false false}".
.
TestTerraformSshExample 2018-08-16T17:12:31+02:00 save_test_data.go:132: Storing test data in ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json so it can be reused later
TestTerraformSshExample 2018-08-16T17:12:31+02:00 save_test_data.go:135: [WARNING] The named test data at path ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json is non-empty. Save operation will overwrite existing value with "&{0xc420149ac0 terratest-ssh-example-jl6Dh1 us-east-2}".
.
TestTerraformSshExample 2018-08-16T17:12:31+02:00 retry.go:69: Running terraform [init -upgrade=false]
TestTerraformSshExample 2018-08-16T17:12:31+02:00 command.go:52: Running command terraform with args [init -upgrade=false]
TestTerraformSshExample 2018-08-16T17:12:31+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:31+02:00 command.go:96: Initializing provider plugins...
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: The following providers do not have any version constraints in configuration,
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: so the latest version was installed.
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: To prevent automatic upgrades to new major versions that may contain breaking
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: changes, it is recommended to add version = "..." constraints to the
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: corresponding provider blocks in configuration, with the constraint strings
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: suggested below.
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: * provider.aws: version = "~> 1.31"
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: Terraform has been successfully initialized!
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: You may now begin working with Terraform. Try running "terraform plan" to see
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: any changes that are required for your infrastructure. All Terraform commands
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: should now work.
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: If you ever set or change modules or backend configuration for Terraform,
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: rerun this command to reinitialize your working directory. If you forget, other
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:96: commands will detect it and remind you to do so if necessary.
TestTerraformSshExample 2018-08-16T17:12:32+02:00 retry.go:69: Running terraform [get -update]
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:52: Running command terraform with args [get -update]
TestTerraformSshExample 2018-08-16T17:12:32+02:00 retry.go:69: Running terraform [apply -input=false -lock=false -auto-approve -var aws_region="us-east-2" -var instance_name="terratest-ssh-example-jl6Dh1" -var key_pair_name="terratest-ssh-example-jl6Dh1"]
TestTerraformSshExample 2018-08-16T17:12:32+02:00 command.go:52: Running command terraform with args [apply -input=false -lock=false -auto-approve -var aws_region="us-east-2" -var instance_name="terratest-ssh-example-jl6Dh1" -var key_pair_name="terratest-ssh-example-jl6Dh1"]
TestTerraformSshExample 2018-08-16T17:12:35+02:00 command.go:96: data.aws_ami.ubuntu: Refreshing state...
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96: aws_security_group.example: Creating...
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   arn:                                   "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   description:                           "" => "Managed by Terraform"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.#:                              "" => "1"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.cidr_blocks.#:        "" => "1"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.cidr_blocks.0:        "" => "0.0.0.0/0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.description:          "" => ""
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.from_port:            "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.ipv6_cidr_blocks.#:   "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.prefix_list_ids.#:    "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.protocol:             "" => "-1"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.security_groups.#:    "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.self:                 "" => "false"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   egress.482069346.to_port:              "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.#:                             "" => "1"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.cidr_blocks.#:      "" => "1"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.cidr_blocks.0:      "" => "0.0.0.0/0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.description:        "" => ""
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.from_port:          "" => "22"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.ipv6_cidr_blocks.#: "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.protocol:           "" => "tcp"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.security_groups.#:  "" => "0"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.self:               "" => "false"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   ingress.2541437006.to_port:            "" => "22"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   name:                                  "" => "terratest-ssh-example-jl6Dh1"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   owner_id:                              "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   revoke_rules_on_delete:                "" => "false"
TestTerraformSshExample 2018-08-16T17:12:39+02:00 command.go:96:   vpc_id:                                "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96: aws_security_group.example: Creation complete after 5s (ID: sg-072cc938ea6a82fce)
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96: aws_instance.example_public: Creating...
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ami:                               "" => "ami-0552e3455b9bc8d50"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   arn:                               "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   associate_public_ip_address:       "" => "true"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   availability_zone:                 "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   cpu_core_count:                    "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   cpu_threads_per_core:              "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ebs_block_device.#:                "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ephemeral_block_device.#:          "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   get_password_data:                 "" => "false"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   instance_state:                    "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   instance_type:                     "" => "t2.micro"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ipv6_address_count:                "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ipv6_addresses.#:                  "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   key_name:                          "" => "terratest-ssh-example-jl6Dh1"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   network_interface.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   network_interface_id:              "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   password_data:                     "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   placement_group:                   "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   primary_network_interface_id:      "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   private_dns:                       "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   private_ip:                        "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   public_dns:                        "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   public_ip:                         "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   root_block_device.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   security_groups.#:                 "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   source_dest_check:                 "" => "true"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   subnet_id:                         "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   tags.%:                            "" => "1"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   tags.Name:                         "" => "terratest-ssh-example-jl6Dh1-public"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   tenancy:                           "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   volume_tags.%:                     "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   vpc_security_group_ids.#:          "" => "1"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   vpc_security_group_ids.1207296945: "" => "sg-072cc938ea6a82fce"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96: aws_instance.example_private: Creating...
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ami:                               "" => "ami-0552e3455b9bc8d50"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   arn:                               "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   associate_public_ip_address:       "" => "false"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   availability_zone:                 "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   cpu_core_count:                    "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   cpu_threads_per_core:              "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ebs_block_device.#:                "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ephemeral_block_device.#:          "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   get_password_data:                 "" => "false"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   instance_state:                    "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   instance_type:                     "" => "t2.micro"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ipv6_address_count:                "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   ipv6_addresses.#:                  "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   key_name:                          "" => "terratest-ssh-example-jl6Dh1"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   network_interface.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   network_interface_id:              "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   password_data:                     "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   placement_group:                   "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   primary_network_interface_id:      "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   private_dns:                       "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   private_ip:                        "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   public_dns:                        "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   public_ip:                         "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   root_block_device.#:               "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   security_groups.#:                 "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   source_dest_check:                 "" => "true"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   subnet_id:                         "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   tags.%:                            "" => "1"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   tags.Name:                         "" => "terratest-ssh-example-jl6Dh1-private"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   tenancy:                           "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   volume_tags.%:                     "" => "<computed>"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   vpc_security_group_ids.#:          "" => "1"
TestTerraformSshExample 2018-08-16T17:12:45+02:00 command.go:96:   vpc_security_group_ids.1207296945: "" => "sg-072cc938ea6a82fce"
TestTerraformSshExample 2018-08-16T17:12:56+02:00 command.go:96: aws_instance.example_public: Still creating... (11s elapsed)
TestTerraformSshExample 2018-08-16T17:12:56+02:00 command.go:96: aws_instance.example_private: Still creating... (11s elapsed)
TestTerraformSshExample 2018-08-16T17:13:06+02:00 command.go:96: aws_instance.example_public: Still creating... (21s elapsed)
TestTerraformSshExample 2018-08-16T17:13:06+02:00 command.go:96: aws_instance.example_private: Still creating... (21s elapsed)
TestTerraformSshExample 2018-08-16T17:13:12+02:00 command.go:96: aws_instance.example_public: Creation complete after 28s (ID: i-0d562ed40b3430e2d)
TestTerraformSshExample 2018-08-16T17:13:16+02:00 command.go:96: aws_instance.example_private: Still creating... (31s elapsed)
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: aws_instance.example_private: Creation complete after 39s (ID: i-09ed19e91e6b520a4)
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: Outputs:
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: private_instance_id = i-0d562ed40b3430e2d
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: private_instance_ip = 172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: public_instance_id = i-0d562ed40b3430e2d
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: public_instance_ip = 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:24+02:00 test_structure.go:23: The 'SKIP_validate' environment variable is not set, so executing stage 'validate'.
TestTerraformSshExample 2018-08-16T17:13:24+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/TerraformOptions.json
TestTerraformSshExample 2018-08-16T17:13:24+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json
TestTerraformSshExample 2018-08-16T17:13:24+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:24+02:00 command.go:96: 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:24+02:00 retry.go:69: SSH to public host 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:24+02:00 ssh.go:168: Running command echo -n 'Hello, World' on ubuntu@18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:26+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:26+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:26+02:00 command.go:96: 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:26+02:00 retry.go:69: Running terraform [output -no-color private_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:26+02:00 command.go:52: Running command terraform with args [output -no-color private_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:26+02:00 command.go:96: 172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:26+02:00 retry.go:69: SSH to private host 18.219.251.181 via public host 172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:26+02:00 ssh.go:168: Running command echo -n 'Hello, World' on ubuntu@172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:30+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:30+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:30+02:00 command.go:96: 18.219.251.181
**TestTerraformSshExample 2018-08-16T17:13:30+02:00 retry.go:69: SSH with Agent to public host 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:30+02:00 retry.go:81: SSH with Agent to public host 18.219.251.181 returned an error: dial unix /tmp/ssh-agent-457e73e00bc70331a892c06c079df26c55c8abc0.sock: connect: no such file or directory. Sleeping for 5s and will try again.
TestTerraformSshExample 2018-08-16T17:13:35+02:00 retry.go:69: SSH with Agent to public host 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:35+02:00 ssh.go:168: Running command echo -n 'Hello, World' on ubuntu@18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:37+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:37+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:37+02:00 command.go:96: 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:37+02:00 retry.go:69: Running terraform [output -no-color private_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:37+02:00 command.go:52: Running command terraform with args [output -no-color private_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:37+02:00 command.go:96: 172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:37+02:00 retry.go:69: SSH with Agent to private host 18.219.251.181 via public host 172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:37+02:00 retry.go:81: SSH with Agent to private host 18.219.251.181 via public host 172.31.46.64 returned an error: dial unix /tmp/ssh-agent-6146dcd1e9913dc19ffdb2d0b75e9e8cd6dcece1.sock: connect: no such file or directory. Sleeping for 5s and will try again.
TestTerraformSshExample 2018-08-16T17:13:42+02:00 retry.go:69: SSH with Agent to private host 18.219.251.181 via public host 172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:42+02:00 ssh.go:168: Running command echo -n 'Hello, World' on ubuntu@172.31.46.64
TestTerraformSshExample 2018-08-16T17:13:46+02:00 retry.go:69: Running terraform [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:46+02:00 command.go:52: Running command terraform with args [output -no-color public_instance_ip]
TestTerraformSshExample 2018-08-16T17:13:46+02:00 command.go:96: 18.219.251.181**
TestTerraformSshExample 2018-08-16T17:13:46+02:00 retry.go:69: SCP file to public host 18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:46+02:00 ssh.go:168: Running command /usr/bin/scp -t /tmp/ on ubuntu@18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:48+02:00 ssh.go:168: Running command cat /tmp/test.txt on ubuntu@18.219.251.181
TestTerraformSshExample 2018-08-16T17:13:50+02:00 test_structure.go:23: The 'SKIP_teardown' environment variable is not set, so executing stage 'teardown'.
TestTerraformSshExample 2018-08-16T17:13:50+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/TerraformOptions.json
TestTerraformSshExample 2018-08-16T17:13:50+02:00 retry.go:69: Running terraform [destroy -auto-approve -input=false -lock=false -var aws_region="us-east-2" -var instance_name="terratest-ssh-example-jl6Dh1" -var key_pair_name="terratest-ssh-example-jl6Dh1"]
TestTerraformSshExample 2018-08-16T17:13:50+02:00 command.go:52: Running command terraform with args [destroy -auto-approve -input=false -lock=false -var aws_region="us-east-2" -var instance_name="terratest-ssh-example-jl6Dh1" -var key_pair_name="terratest-ssh-example-jl6Dh1"]
TestTerraformSshExample 2018-08-16T17:13:53+02:00 command.go:96: aws_security_group.example: Refreshing state... (ID: sg-072cc938ea6a82fce)
TestTerraformSshExample 2018-08-16T17:13:53+02:00 command.go:96: data.aws_ami.ubuntu: Refreshing state...
TestTerraformSshExample 2018-08-16T17:13:54+02:00 command.go:96: aws_instance.example_private: Refreshing state... (ID: i-09ed19e91e6b520a4)
TestTerraformSshExample 2018-08-16T17:13:54+02:00 command.go:96: aws_instance.example_public: Refreshing state... (ID: i-0d562ed40b3430e2d)
TestTerraformSshExample 2018-08-16T17:14:02+02:00 command.go:96: aws_instance.example_public: Destroying... (ID: i-0d562ed40b3430e2d)
TestTerraformSshExample 2018-08-16T17:14:02+02:00 command.go:96: aws_instance.example_private: Destroying... (ID: i-09ed19e91e6b520a4)
TestTerraformSshExample 2018-08-16T17:14:12+02:00 command.go:96: aws_instance.example_public: Still destroying... (ID: i-0d562ed40b3430e2d, 10s elapsed)
TestTerraformSshExample 2018-08-16T17:14:12+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-09ed19e91e6b520a4, 10s elapsed)
TestTerraformSshExample 2018-08-16T17:14:22+02:00 command.go:96: aws_instance.example_public: Still destroying... (ID: i-0d562ed40b3430e2d, 20s elapsed)
TestTerraformSshExample 2018-08-16T17:14:22+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-09ed19e91e6b520a4, 20s elapsed)
TestTerraformSshExample 2018-08-16T17:14:33+02:00 command.go:96: aws_instance.example_public: Still destroying... (ID: i-0d562ed40b3430e2d, 31s elapsed)
TestTerraformSshExample 2018-08-16T17:14:33+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-09ed19e91e6b520a4, 31s elapsed)
TestTerraformSshExample 2018-08-16T17:14:35+02:00 command.go:96: aws_instance.example_public: Destruction complete after 33s
TestTerraformSshExample 2018-08-16T17:14:43+02:00 command.go:96: aws_instance.example_private: Still destroying... (ID: i-09ed19e91e6b520a4, 41s elapsed)
TestTerraformSshExample 2018-08-16T17:14:45+02:00 command.go:96: aws_instance.example_private: Destruction complete after 44s
TestTerraformSshExample 2018-08-16T17:14:45+02:00 command.go:96: aws_security_group.example: Destroying... (ID: sg-072cc938ea6a82fce)
TestTerraformSshExample 2018-08-16T17:14:47+02:00 command.go:96: aws_security_group.example: Destruction complete after 1s
TestTerraformSshExample 2018-08-16T17:14:47+02:00 command.go:96:
TestTerraformSshExample 2018-08-16T17:14:47+02:00 command.go:96: Destroy complete! Resources: 3 destroyed.
TestTerraformSshExample 2018-08-16T17:14:47+02:00 save_test_data.go:159: Loading test data from ../examples/terraform-ssh-example/.test-data/Ec2KeyPair.json
TestTerraformSshExample 2018-08-16T17:14:47+02:00 keypair.go:79: Deleting Key Pair in EC2 region us-east-2 named terratest-ssh-example-jl6Dh1
--- PASS: TestTerraformSshExample (134.15s)
	save_test_data.go:143: Marshalled JSON: {"TerraformDir":"../examples/terraform-ssh-example","Vars":{"aws_region":"us-east-2","instance_name":"terratest-ssh-example-jl6Dh1","key_pair_name":"terratest-ssh-example-jl6Dh1"},"EnvVars":null,"BackendConfig":null,"RetryableTerraformErrors":null,"MaxRetries":0,"TimeBetweenRetries":0,"Upgrade":false,"NoColor":false}
	save_test_data.go:143: Marshalled JSON: {"PublicKey":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0IttS7k8dhFkDmRuz6qbDvsaf5UE6zk004rWfvWkShG0HRxurP+AgW5FO3dS/7un9slSbQkRfCJJvaAfmYWuWiYOF8chFmU8MzsaMVlW29SVXvO90ZN0ntHfptaRUIV2br06RH6Kbrdd17a9Rsw+ve0mZVIr86S2l6qTmHCbnuXsXA5o3SUc0N6f7ZCMWRuuQC+1RodJilR2CFh7VHC1bapx3KloaIKDzk7X7vKsjrVooiFLg4TLt7Tdy6HWnFbiNaV3q8kzdlBchMIqJgDHSOpkWS4usshE4N9Q2m/gYl02YF2SpgGV4BYetu/OyEUECyJxtpznM8UXlbJKpo9xf\n","PrivateKey":"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAtCLbUu5PHYRZA5kbs+qmw77Gn+VBOs5NNOK1n71pEoRtB0cb\nqz/gIFuRTt3Uv+7p/bJUm0JEXwiSb2gH5mFrlomDhfHIRZlPDM7GjFZVtvUlV7zv\ndGTdJ7R36bWkVCFdm69OkR+im63Xde2vUbMPr3tJmVSK/Oktpeqk5hwm57l7FwOa\nN0lHNDen+2QjFkbrkAvtUaHSYpUdghYe1RwtW2qcdypaGiCg85O1+7yrI61aKIhS\n4OEy7e03cuh1pxW4jWld6vJM3ZQXITCKiYAx0jqZFkuLrLIRODfUNpv4GJdNmBdk\nqYBleAWHrbvzshFBAsicbac5zPFF5WySqaPcXwIDAQABAoIBAGixLXj4aeDEz5so\nvBIH2Z5AXV4Gtq9/wR1weZB6W/vYHSmyqSERQahsr3n/sStPpoy8vTFzBRuadsjq\n1FSP4CCgkWEikXvpyyitcHWVo8FunqJse1rRWDtARsT8vaHrtmTKMUZk9XO3SFcQ\nqek4wXACnlbP7Otqdg5M3kOirvXTOzvycWK6NeW+HxrYmJV3iOSl6maNZNzQwYH9\ns916X9q1bgVTw7e33VFLTVhOMPox+jY3jbY0UpEjjugP/5pZxlQzRKHiZjAEYRhc\nS51Y0zVuvslAKnxIpNs7/3JArPGlM5t97zV/cX5PZj/FfRyU8C61c9txvdhIBxw2\nQsE8jxkCgYEAw1nwDaFBLog0MLC4E+oXjz1IKKrqzebwZEtpa+6Cdv3H0jGVCVz/\n2w1XLnrWV1XrrUk+UZSC9Ssy9cVKaDYT090ptJ1w0OsXW0WT67gfBkUHKHDPlWRv\nlXzhf7QYcDmfrLjyyfOdts0CSO28mdNqxLbFD2Dfw3rJS1BRBYLmdUsCgYEA7A+n\navkCX11iHRFeuTBrIrxVlr4zJ0iPFgpXP2rpEPBSbzkCcFoCDrAUkyWoPGX0x6Cr\nj/SOhTyIgbS45GFAJyx79RvpHA+qnH4C2TaVPBjhEJM1unKwa1+aFnIL2McE374t\n11T4NAzHTXYZyTKTjcR3FThZF9J0w8ihC8znTL0CgYBulwKz5J8O5aKOEe0TsQlH\nWMz54NBuYhei36I9rNeE32R41QLnOxPJAYNiV73x0T1La1RxQJ7mhl8iDV9zIXIW\nFXUfv6V3UC93xyrXXfOKTBeiSELr8uDMgtbxwZW4Kpb/Y/BmbZjSPLrXaGbFuo8N\n794dN51Vf7RnA3/qm9E1gwKBgBeBn4w5a5EPfXujhSkvtxtoYaV3HyTkRstNEE8S\nWE8Ff0/v/1wsulO4GPRmJZCOHofaafsVwTNnSbiQxHCJdpfwCA/qTZYrwTOAIMx8\ncPPhDlhWMF12mja2+GMPzDoz5zpYd7wfi++y7g26muq8DJFrZOhKCiUjIdl1GwRP\nzSCJAoGASsfk6pAL2+tY3qwXzKWjHLl3IYWF20Xf+lwd3gMru8m01vDqAql7TRSa\njI6dbqWZUbYeEbZFuMPp3AG0a5N2FvQ5SnlQsyU60alJRza/WtR21ION6iV4kkop\nSGKlgM7Ko/KMjJizpgzYkrMkIg4OHOCcj91eR7LldcKHRVa7jAA=\n-----END RSA PRIVATE KEY-----\n","Name":"terratest-ssh-example-jl6Dh1","Region":"us-east-2"}
PASS
ok  	command-line-arguments	134.162s

https://github.com/gruntwork-io/terratest/releases/tag/v0.9.16

Awesome! Thanks for the feedback and merging/releasing so fast. I've learned a lot here :)

Thanks for the nice PR! 👍

repo: gruntwork-io/terratest


text:
🛑 kinderundjugendtanz.at is down

In d84ffbb, kinderundjugendtanz.at (https://kinderundjugendtanz.at) was down:

HTTP code: 0
Response time: 0 ms

Resolved: kinderundjugendtanz.at is back up in 3a734a1.

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
🛑 kinderundjugendtanz.at is down

In cf75076, kinderundjugendtanz.at (https://kinderundjugendtanz.at) was down:

HTTP code: 0
Response time: 0 ms

Resolved: kinderundjugendtanz.at is back up in f6be264.


text:
🛑 h4.bretterhofer.at is down

In b70bed8, h4.bretterhofer.at (https://h4.bretterhofer.at/toggle.php) was down:

HTTP code: 500
Response time: 713 ms

Resolved: h4.bretterhofer.at is back up in b734ce3 after 43 minutes.


text:
🛑 volkstanz.st is down

In 423980b, volkstanz.st (https://volkstanz.st) was down:

HTTP code: 0
Response time: 0 ms

Resolved: volkstanz.st is back up in 405cb9a after 7 minutes.


text:
aria2   file-allocation参数

这个参数预先磁盘分配的，我看docker里默认没开，也没有配置选项，能加一下么

在 /配置文件位置:/config 里的aria2.conf 修改。

config改了 难带容器自动更新不会被覆盖掉么

不会。


text:
multiple constructor for CurrencyTextInputFormatter

Its a breaking change.
Multiple constructors created for CurrencyTextInputFormatter that allows creation of NumberFormat.currency and NumberFormat.simpleCurrency directly and also another to pass NumberFormat as parameter. These constructors allow a more versatile way to control how NumberFormat is instantiated. Eg. NumberFormat.simpleCurrency uses the actual currency symbol instead of the currency ISO name.
Adds a method called getDouble to be able to get the double value directly.
Add example and tests for the newly getDouble method.
Also enable web compilation.

@rsegecin Amazing! Thanks. I will release new version soon.

Awesome, thank you too.

source: gharchive/pull-request

authors: gtgalone rsegecin


text:
Upgrading to Python 3 and adding support for pie chart

Hi ,
I downloaded this package and installed it for Python 3.4. it did not work.
I changed core.py module to

Work with Python 3

Made APIs more generic cab called by pandas or non-panda by passing X_LIST and Y_LIST to be plotted as two separate list.

Added support for 'pie' plot.

Do you want me to submit code to you so that yo can make new version.
If not is it okay to create branch 'yieldfrom-pandas-highchart'  and add changes there ?
Regards,
Shivaram

Hi shivaram
Thanks for contributing. Could you make a pull request?
Thanks

I have emailed you
the modified core.py and a sample usage python program.

Hi Guillaume Thomas,
Attached is the updated core,py
Work with Python 3Made APIs more generic cab called by pandas or non-panda by passing X_LIST and Y_LIST to be plotted as two separate list.Added support for 'pie' plot.
A sample usage / help program :===================================================================#!/usr/local/bin/python3.4
Note : This Example is run through "ipython nootebook", need to run "ipython nootebook"# using the Python 3 version installed in your machine.
import pandas as pdfrom urllib.request import urlopenfrom IPython.display import display, display_pretty, Javascript, HTMLfrom py_hicharts import serialize
df = pd.read_csv(    urlopen('http://www.quandl.com/api/v1/datasets/ODA/DEU_PCPIPCH.csv?column=1'))
df["Date"] = df["Date"].apply(lambda x: int(x[:4]))df = df.sort("Date")#print(df) ; print ('\n')
x_list = df['Date'].tolist() # If this does not work try df['Date'].get_values().tolist() inp_list = df['Value'].tolist()output_json_dict = {}
output_json_dict = serialize(inp_list, "germany rate",  output_json_dict,  title="Germany inflation rate", x_title="collection year", x_categories=x_list, y_title="Inflation rate", render_to="chart1")
This is to show that you can add different y-serieschart = serialize(inp_list, "new germany rate",  output_json_dict, "add_series", "get_new_hichart")
display(HTML("""     """ % locals()))
pie chart examplepie_name_list = ["Firefox", "IE", "Chrome", "Saafari", "Opera", "Others"]pie_value_list = [45, 26.8, 12.8, 8.5, 6.2, 0.7]
output_json_dict={}                  chart = serialize(pie_value_list, "Browsershare",  output_json_dict,                             "get_new_hichart", title="Browsershare", x_title="Browser names",                             x_categories=pie_name_list, y_title="browser use percentage",                             kind="pie",render_to="chart5")
display(HTML("""     """ % locals()))
Date: Wed, 4 Mar 2015 15:33:14 -0800
From: notifications@github.com
To: pandas-highcharts@noreply.github.com
CC: shivramp@hotmail.com
Subject: Re: [pandas-highcharts] Upgrading to Python 3 and adding support for pie chart (#11)
Hi shivaram
Thanks for contributing. Could you make a pull request?
Thanks
—
Reply to this email directly or view it on GitHub.

Hi Guillaume.
I am not familiar with pull request, let me know what I need to do.
I have given you all changes I did.

Please read this about pull requests.
I added support for py3.4. If it's ok for you, could you close the issue?

I added support for pie chart. I close the issue

authors: gtnx shivramp

repo: gtnx/pandas-highcharts

license: mit

license_source: bigquery


text:
Use eslint and @kentcdodds' presets

This introduces a "breaking change". Because we've adopted ES2015, node >= 4.0 is required.

Neat!!! :D

Let me know if there are any outstanding issues preventing this from getting merged! :wink: :beers:

Hey @gtramontina, thanks for being willing to collaborate on your own project ;-)
So I have one problem with this and that is that it drops support for Node 0.10.x and 0.12.x. This may not seem like a big deal, but the vast majority of developers are still on 0.12.x unfortunately.
Here's what I'd recommend, check out my series on creating an open source library (free on egghead) here. Specifically look for the ES6 stuff. One thing to note is that it's using an old version of Babel. I recommend you try to get the latest version of Babel working instead. See this branch to see how that's set up (still need to update the lesson, also don't be concerned with migrating our tests to ava as I do in that branch).
I definitely think it's important that we support older versions of Node.

Oh yeah! Totally! How could I forget about babel? Thanks for reminding me of it.
I'll do it as soon as I can. Cheers! :beers:

It seems that there's something funky going on with mock-fs after transpiling with babel. One of the tests break because it is reaching the actual filesystem... I pushed the changes up to get some help. :smile:
ps.: prepublish script is not there yet.
ps2.: commit message needs work. squashing/amending needed.

Hmmm.... I'm not sure. I'm pretty sure that babel's trying to get the config from the package.json. I think we need to mock the filesystem in a way that doesn't prevent babel from doing that...

The broken test can be fixed by using proxyquire to simulate the absence of the ghooks module directly, without further requirement to fiddle around with / mock anything on the fs.
I made the dedicated Pull Request #52 to branch master to show that the particular test now passes. (In return, there's still something different broken for Node versions 0.10 and 0.12 ☹)
Please note: I had to add babel-cli as a devDependency and alter the npm script coverage to run istanbul using babel-node, due to a known bug I ran into.

Thank you very much @ta2edchimp! I'll squash/amend my commits and merge this PR as soon as I get my hands on my laptop... There's only so much one can do from their mobile... :-D

Cool. I'll get my hands on #50 in the meanwhile ...

Travis looks happy, btw... :+1:

@ta2edchimp I've just added you as a collaborator so you and @kentcdodds can make decisions as well! I'm not always available!
Thanks again for your contributions!

I just noticed, we could also get rid of the babel-cli dependency (introduced with ea5b22c, but obsolete as of cb5187a), but now I am off my laptop 😖

So… I've squashed/amended some of the commits. Tried to make justice and keep @ta2edchimp as the author of the bulk of work. :smile:
I ended up having to bring babel-cli back in order to build dist (e4be646)… ¯\_(ツ)_/¯
But now I hit a road block… We currently have an install script that runs every time someones installs ghooks, which (now) executes dist/install. The problem happens when someone checks-out this project and runs npm install… the same script kicks in and breaks because there's no dist/ built. This is the reason Travis is broken.
Here's a couple ways I can think of about tackling this:

Find a way to no run scripts.install when running npm install on the project itself, only when being installed as a module.
cp lib/* dist/ on scripts.preinstall

I dislike them both, lol… So any suggestions are more than welcome!

I think this is one of the cases where build ≠ dist, as this project's build process depends on its very own functionality.
As I see it, it is correct to not mention dist in .npmignore, but I perceive its mention in .gitignore as a misconception: Rather should a directory named build be .npmignored and .gitignored. And the build process's results (output to build) should replace dist's contents only after a successful build, thus providing a cloned repo with a working copy of its own module.
A folder dist is always included (repo & npm), always providing the latest successful build.
A folder build is created during the build process and its contents replace those of dist only after a successful build.
This folder is .npmignored and .gitignored.
So basically:

replace dist by build in .gitignore,
add build to .npmignore,
change npm scripts:

 "scripts": {
   "prebuild": "rm -rf build && mkdir build",
   "build": "babel lib --out-dir build && babel lib/hook.template.raw --out-file build/hook.template.raw",
   "postbuild": "rm -rf dist && mkdir dist && cp build/* dist"
 }

This way one could successfully clone / fetch a repo with a broken build and work on it, without lacking ghooks' functionality.
... or am I missing something?

authors: gtramontina kentcdodds ta2edchimp

repo: gtramontina/ghooks


text:
Failure to Connect or Disconnects from Tor

I have noticed that my Orbot app fails to connect(hangs up at during connecting) or disconnects while in use. This is a new issue that has occurred recently.
Currently on iOS 17.1.1 (recent update)and Orbot 1.6.6, build 43.

Yeah. Sorry. It's... difficult. You can read about it here: (Follow the links.)
https://github.com/guardianproject/orbot-apple/issues/82#issuecomment-1789631432

repo: guardianproject/orbot-apple


text:
CI for Node

create ci-workflow for node.js

t

repo: guenthi/github-actions-for-ci


text:
Nested  every time the form is submitted

Every time the form is submitted a new nested <form> element is created

<form hx-post="/create_note_hxpost" class="">

    <form hx-post="/create_note_hxpost" class="">

        <form hx-post="/create_note_hxpost" class="">

            <form hx-post="/create_note_hxpost">

Thank you! I will have a look at this.

authors: donMichaelL guettli

repo: guettli/django-htmx-fun


text:
Auto-join of Border is not always working

Run Frames Demo:

I saw this a long time ago, but all of the discussions of "finishing" Adornments (#2994) reminded me it's broken.

I saw this a long time ago, but all of the discussions of "finishing" Adornments (#2994) reminded me it's broken.

Yes, that was after the new title drawing.

authors: BDisp tig


text:
Add CodeClimate badges

Add badges from Code Climate

repo: guibranco/bitcointrade-sdk-dotnet


text:
🛑 Sefaz - Rio Grande do Sul is down

In 9bc2b2e, Sefaz - Rio Grande do Sul (https://onboardapi.guichepass.com.br/sefaz?code=2) was down:

HTTP code: 500
Response time: 158 ms

Resolved: Sefaz - Rio Grande do Sul is back up in dde01b1.

repo: guichevirtual/statuspage


text:
🛑 Sefaz - Rio Grande do Sul is down

In aab5619, Sefaz - Rio Grande do Sul (https://onboardapi.guichepass.com.br/sefaz?code=2) was down:

HTTP code: 500
Response time: 982 ms

Resolved: Sefaz - Rio Grande do Sul is back up in 1259faf.


text:
GPU vs CPU benchmarking for sparse (and/or dense) emulator

We have the sparse implementation of the emulator working, yay!  :partying_face: :champagne:
I am running the sparse implementation on GPU now and it works nicely.  On the PHOENIX HPF-bandwith clone task, I'm seeing about 0.5 seconds per iteration on RTX 2070 GPU whereas my Macbook Air M1 is 3.8 seconds per iteration for a 7.5 boost on the GPU.  We are only using <10% of the memory and computation of the GPU though so I suspect we will see even bigger gains as I increase the wingcut size, and decrease the prominence of lines (i.e. emulator weaker and weaker lines, producing more lines to clone).
I'm impressed that the sparse matrix does Okay on the GPU.  I heard that the NVIDIA A100's have sparse matrix primatives, but I'm not sure how much of that exists in CUDA/PyTorch, and how an RTX-series GPU compares, especially for double precision, etc.

I increased the wingcut from 1000 to 6000 pixels.  The GPU usage shot up to about 44%, but the time-per-training epoch remained similar, about 0.7 seconds.  The M1 Macbook Air is at 22 seconds per iteration, so the GPU boost is 31x!  Yay!

lol, so the GPU is so fast that the cost of making a plot sending by sending tensors to CPU and plotting with Tensorboard was causing a bottleneck.  If I turn off the plotting, we are now achieving 0.2 seconds per iteration, a 100x improvement on GPU compared to CPU!  Wow!  We're getting 99% of the available GPU computing power, but still have some Memory left.

Ok, I finally maxed out of GPU memory on my RTX 2070 (8 GB), when I attempted 6000 pixel wingcut and 0.005 prominence (10,700 individual spectral lines, each with 6000 pixels surrounding them).  That's good news because those thresholds are somewhat extreme, we can probably get away with much smaller wingcuts and line prominences depending on the application.
The GPU could handle the same wingcut with "merely" 8700 spectral lines, taking up about 78% of the GPU memory.

I got the initialization time down, so it's easy to do iterate on benchmarks.  I've been developing on CPU with wingcuts of 100 pixels and prominence of 0.01, with 100 epochs in the the sparse emulator mode.  Just now I tried the same conditions on GPU.  Here are the head-to-head results:
CPU: 1.66 iterations/second
GPU: 120 iterations/second
Amazing!

Ok, we now have some text in the paper for this, and I don't think we need a full-on scaling chart, so I'm considering this issue closed for now.

repo: gully/blase


text:
[epic] vinyl-fs version 3.0.0

I'm creating this issue to get some more visibility on outstanding issues in vinyl-fs for it to reach 3.0 (which we'd like to ship with gulp 4).
If you are able to tackle any of these, the help would be very much appreciated.

[x] Decouple opening and closing of file descriptors from src and dest - gulpjs/vinyl-fs#158
[x] Support changing uid/gid from the vinyl object to the file on disk - gulpjs/vinyl-fs#157
[x] Support setting setuid/setgid/sticky bits - gulpjs/vinyl-fs#156
[x] Support functions for all options - gulpjs/vinyl-fs#139
[x] kebabCase the filenames - gulpjs/vinyl-fs#152
[x] vfs.dest(outfolder, { base.. }) ignores outfolder? - gulpjs/vinyl-fs#141
[x] The mkdirp module doesn't handle modes in the best way - gulpjs/vinyl-fs#165
[x] Account for process.umask - gulpjs/vinyl-fs#166
[x] Test refactor - gulpjs/vinyl-fs#194
[x] Separate prepareWrite into own module - gulpjs/vinyl-fs#193
[x] Fix Symlink TODOs (issues need to be created)
[x] Sink the symlink stream - gulpjs/vinyl-fs#195
[x] Get https://github.com/gulpjs/vinyl-sourcemap up-to-snuff

Updated! We've had some excellent contributions by @hgwood and @tmcgee123
Some of the improvements brought to light a couple of other things we need help with.

Note that vinyl-fs@0.3.14 will stop working with Node.js 7.0, as it includes graceful-fs@1.2.3:
└─┬ gulp@3.9.1
  └─┬ vinyl-fs@0.3.14
    └─┬ glob-watcher@0.0.6
      └─┬ gaze@0.5.2
        └─┬ globule@0.1.0
          └─┬ glob@3.1.21
            └── graceful-fs@1.2.3

See https://github.com/gulpjs/gulp/issues/1571 for more details.

Ah, no, I can't comment there.
The thing is,

There is nothing wrong with the dependency, especially since it is only used in development.

is invalid. The deprecation warning is emitted by Node.js only in those situations that would cause a throw in Node.js 7.0. Just running latest stable gulp with an empty gulpfile emits a warning — that means that it will throw.

Tracking issue: https://github.com/nodejs/node/issues/5213 (to get a status badge there).

Almost all these are wrapping up.  We need to get some more tests in place for the changes and solidify the "Support functions for all options" stuff.
Still looking for someone to tackle the uid/gid stuff.

What about a smaller update to vinyl? With this issue on minimatch everyone gets lots of sec. alerts :)

@odino no, those alerts don't matter. If you are passing user input directly to gulp, you have bigger problems.

That's true, but those alerts will keep coming due to gulp requiring the
library. So even if this has never been exploited people are gonna
"wtf?!?!" anyway unless they really dig into it and figure out that this is
not an issue at all.
If there's an easy way to upgrade to a version that has the patch I would
suggest to go for it, else if its a big PITA then never mind :)
On Jul 12, 2016 1:40 PM, "Blaine Bublitz" notifications@github.com wrote:

@odino https://github.com/odino no, those alerts don't matter. If you
are passing user input directly to gulp, you have bigger problems.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gulpjs/gulp/issues/1604#issuecomment-231989564, or mute
the thread
https://github.com/notifications/unsubscribe/AAUC5BPlBGK1FkEyh0WVf2e_q6GkZku2ks5qU2ElgaJpZM4IIqCY
.

@phated the UID/GID item should be checked off, no?

@phated any update on ^^?

re @odino and security fix. this could be fixed just by updating the version of vinyl-fs that gulp installs. Currently you get vinyl-fs@^0.3.0 which translates to a really old version of vinyl.
This is a problem for anyone requiring nsp check to pass for a build to succeed.

this could be fixed just by updating the version of vinyl-fs

@atomantic a lot of things was changed since vinyl-fs@0.3.14 https://github.com/gulpjs/vinyl-fs/blob/master/CHANGELOG.md#v0314-20150921-2357-0000 so it is impossible just bump the version.
In fact, migration to vinyl-fs@3.0.0 is a thing and the whole point of this issue.

@strugee @ilanbiala thanks, I've updated the list. However, a few more things had to be added to account for things I've found during the test refactor.

got it. Yeah, I noticed tests pass as long as I upgrade vinyl-fs to latest version and include glob-watcher 0.0.8--but that's still a really old version of glob-watcher. glob-watcher@3.0.0 has some differences that break it.

@atomantic the gulp tests are just a smoke test because each underlying library has a full test suite that we aren't going to duplicate.  Extreme amounts of stuff has changed and you should not assume everything will just work.

I've submitted the test refactor for review at https://github.com/gulpjs/vinyl-fs/pull/194 - I'd like to get feedback before I push it so feel free to comment.

Hey - any news on this? gulp is bringing in an outdated version of minimatch (with security issues)..

@pgilad I'm pretty diligent about updating this thread when there are updates, so no.  You can follow the linked issues to see progress on the outstanding items (and even contribute).  The minimatch warning you mention doesn't mean anything because you aren't passing raw user input to the gulp methods (or you shouldn't be).

@phated First, thanks for all the awesome contributions you continue to make to Gulp. Second, looking at the prepareWrite note it appears this is done as of https://github.com/gulpjs/vinyl-fs/commit/cc99707d7acd832af91ca0823bd5fa6388bef168 and the associated tests also landed. Was there more work to do before it could be checked off the list?

@addyosmani unfortunately that commit didn't solve everything and caused problems with the symlink method so it was never merged. There are some more option normalizations that are in progress, so I have been focusing on the glob-stream and vinyl dependencies.

thanks for your contributions

This epic is taking epic time to resolve :(

@abhijeetkpawar everyone working on Gulp is a volunteer. If you want it to go faster, you are welcome to volunteer as well.

We've also just received https://github.com/gulpjs/vinyl-sourcemap as a dependency for vinyl-fs.  There's still plenty of work to be done on it so any little bit helps.

I'm not that experienced, but I'd love to help.
I see that there are some points still unchecked. Any suggestions to which to roll up my sleeves at first, be it by priority or accessibility? (this last term used very vaguely, forgive me)

Running node v.7.1.0 and npm 4.0.2 and receiving an error when running gulp
Error: Cannot find module 'internal/fs'
at Object.<anonymous> (node_modules/vinyl-fs/node_modules/graceful-fs/fs.js:11:1)

@nhaglind please don't comment on random issues with (somewhat) unrelated problems.
Normally I'd tell you to file a new issue, but it would just be a duplicate of #1571 anyway.

Agreed @mcdado! I'd love to help in any way I can, any low hanging fruit that's just kind of tedious work for me to do? I just want to help out any way I can :)

@phated in the interest of Gulp 4 hitting npm sooner, couldn't some of these issues be pushed past the release? E.g. supporting functions for all options and separating prepareWrite into a separate module don't seem like semver-major changes (although I of course am not an expert). This is especially relevant given that Node 7 is now released and breaking Gulp 3 installs left and right.

@strugee no, that's a breaking change. This list is breaking change exclusive and everything else is being pushed.  Feel free to contribute on the issues.

@phated ah, okay. I still don't see how, but I'll take your word for it :)
Thanks for the quick response.

I need some help writing tests for https://github.com/gulpjs/glob-stream/pull/85 if anyone is interested.

I'd be down to help out @phated !

@kyleholzinger awesome!  shoot me a PR on the glob-stream repository when you have some tests.  Many thanks!

Will do

Chiming in here, I just got a warning message from graceful-fs:

graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible.

Tracking it down:
├─┬ gulp@3.9.1
│ └─┬ vinyl-fs@0.3.14
│   ├─┬ glob-watcher@0.0.6
│   │ └─┬ gaze@0.5.2
│   │   └─┬ globule@0.1.0
│   │     ├─┬ glob@3.1.21
│   │     │ ├── graceful-fs@1.2.3

If we don't update to vinyl v3, then graceful-fs won't be updated to 4.1.10 therefore gulp will not be compatible with Node >=7.0

@chipironcin This is not the issue you are looking for. Please see https://github.com/gulpjs/gulp/issues/1571. graceful-fs 1.x is fine, it works on Node 7. Only 2.x and 3.0-3.9 are problematic.

Thanks for the response @hgwood
I though any version would be problematic as it says:

graceful-fs v3.0.0 and before
And I am actually getting the warning so graceful-fs 1.x may not be fine. If it works, then the message from graceful-fs is wrong :P

Is this the last thing before the release?

@CKGrafico this issue is the largest remaining change for the release. There might be small stuff sprinkled around (we've been labeling everything with "help wanted")

Thanks @phated seems not a lot of work I will try to help with something, the community needs this release :)

Thanks but we have many issues opened throughout the organization.
You can see everything labeled as "help wanted" at https://github.com/issues?utf8=✓&q=is%3Aopen+org%3Agulpjs+label%3A"help+wanted"+
We are tackling some of them this weekend at HackIllinois

Amazing work, I'll wait to next week. Good luck at HackIllinois

This is getting really close.  I need help with https://github.com/gulpjs/vinyl-sourcemap/issues/19

Will this incorporate a vinyl-fs update? Following the dep tree there's a graceful-fs@1.2.3 dependency which warns me with graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in
 the tree.

Any progress on this ? Looks like almost things from list are already done. May be I can help somehow ?
gulp still have very old vinyl-fs dependency, and I get following warning each time I install/upgrade gulp:
npm WARN deprecated graceful-fs@2.0.3: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible
├─┬ gulp@3.9.1
│ └─┬ vinyl-fs@0.3.14
│   ├─┬ glob-watcher@0.0.6
│   │ └─┬ gaze@0.5.2
│   │   └─┬ globule@0.1.0
│   │     └─┬ glob@3.1.21
│   │       └── graceful-fs@1.2.3

@anru If you check out that link phated posted there's a bunch of issues left in the org, I think those are all related to the upgrade

@anru I believe the roadmap is here: https://github.com/gulpjs/gulp/issues/1945
More than the warning the main issue of the current version is the incompatibility with Node > 6. Later this year 8 will be LTS and then it will become more problematic to have gulp as a dependency.
I previously said I'm willing to help, I'll probably take a look at doc related issues.

#1945 is gulp 4 roadmap. And may be we could release gulp 3 with updated vinyl-fs dependency. Or is it will be more simple to help with gulp 4 where is vinul-fs already updated. What will be more quick/easy ?
I'm asking because there are no incomplete issues in issue description, except Fix Symlink TODOs (issues need to be created)

@anru @mcdado see #1571. The gulp team is aware of the graceful-fs problems, but it's impossible to upgrade Vinyl without breaking changes. Hence, gulp 4.

Any updates on this? The NSP check fails on all my projects which are using Gulp when scanning also dev dependencies :(

@subesokun
It seems like that vulnerability requires an attacker to be able to pass an arbitrary glob string to minimatch... which seems like a bad idea in general.

Is the "Fix Symlink TODOs (issues need to be created)" item the only thing that's left to do here?

@kyleholzinger yes, it is a tough problem we are trying to solve over on the vinyl-fs repo.

What can I do to help move this forward?

@nwhitmont the work is happening at https://github.com/gulpjs/vinyl-fs/pull/254

We've wrapped up the symlink/junction work.  There's just some documentation/rebasing/cleanup work to do on vinyl-fs before the 3.0 release.
If you are interested in this stuff, please go try out the master branch and give us feedback - there are some big changes over there.

Documentation has been finalized.  Rebase has been completed but it needs review.  Check out https://github.com/gulpjs/vinyl-fs/issues/284 if you are interested in reviewing.

Based on the reactions, I expected more review/feedback on the rebase :frowning_face:
Anyway, 3.0.0 has been published.  Changelog at https://github.com/gulpjs/vinyl-fs/releases/tag/v3.0.0

Thanks for your awesome job @phated

I tried to have a look but it was a bit overwhelming not knowing anything of the internals.
I second @CKGrafico, thank you and the whole team!

authors: CKGrafico ChALkeR Den-dp abhijeetkpawar addyosmani anru atomantic black-snow chipironcin errorx666 haoranw hgwood ilanbiala kyleholzinger mcdado nhaglind nwhitmont odino pgilad phated strugee subesokun

repo: gulpjs/gulp


text:
[cargo-compare] update to cargo 0.65

Just one small change.

Updated to 0.67.0 in 3bf5276084c5b5751f1e083dfcf39d20b22b41ad.

repo: guppy-rs/guppy


text:
⚠ 한경주요지수-코스피200 has degraded performance

In 608034e, 한경주요지수-코스피200 (https://markets.hankyung.com/indices/kospi200) experienced degraded performance:

HTTP code: 200
Response time: 6168 ms

Resolved: 신규상장 performance has improved in 991e619.


text:
Teste Git-GitHub

Teste para abertura de uma Issue. Estou fazendo o Curso Gustavo Guanabara, muito boa suas explicações, desde já agradeço.

Respondendo a Issue.

repo: gustavoguanabara/git-github


text:
Support for returning alternate value from ngModel.$render

Hi @guylabs, first of all great angular directive.
I have taken advantage of the templating functionality to display a City and State using State inside an "item-note" span. See screenshot

So far, working great. However, when I then see the returned value on the input field, it is [object Object], which makes sense as you run element.val(scope.getItemValue(ngModel.$viewValue, scope.itemViewValueKey)); in ngModel.$render. See screenshot

Is there any possibility to give an ng attribute to specify what model/property should be returned into element.val()? For example, in this case, I would want a format of {City}, {State} to be written into the input box.
Or if you already know of a better way I should be doing this, let me know.
Below is my template and directive setup:
<ion-autocomplete ng-model="model.AppointmentAddressCity"
		item-value-key="name"
		item-view-value-key="view"
		items-method="getCityQuery(query)"
		items-method-value-key="items"
		multiple-select="false"
		placeholder="Enter City or Postcode..."
		select-items-label="Select city..."
		items-clicked-method="itemsClicked(callback)"
		template-url="templates/city-select.html" />

city-select.html

			<input type="search" class="ion-autocomplete-search" ng-model="searchQuery" placeholder="{{placeholder}}" />

			<ion-spinner icon="{{loadingIcon}}"></ion-spinner>

		<button class="ion-autocomplete-cancel button button-clear">{{cancelLabel}}</button>

	<ion-content class="has-header has-header">
		<ion-list>
			<ion-item class="item-divider" ng-show="selectedItems.length > 0">{{selectedItemsLabel}}</ion-item>
			<ion-item ng-repeat="selectedItem in selectedItems track by $index" type="item-text-wrap" class="item-icon-left item-icon-right">
				 {{getItemValue(selectedItem, itemViewValueKey).City}}
				{{getItemValue(selectedItem, itemViewValueKey).State}}

			</ion-item>
			<ion-item class="item-divider" ng-show="items.length > 0">{{selectItemsLabel}}</ion-item>
			<ion-item collection-repeat="item in items" item-height="55" item-width="100%" type="item-text-wrap" ng-click="selectItem(item)">
				{{getItemValue(item, itemViewValueKey).City}}
				{{getItemValue(item, itemViewValueKey).State}}
			</ion-item>
		</ion-list>
	</ion-content>

Thanks again

Better yet, how about a community contribution :)
https://github.com/guylabs/ion-autocomplete/pull/61
Let me know what you think.
Graham

Hi Graham,
thanks for the praise and for the pull request. I just had a look at it and I will add some comments to it such that we can merge it to the master. Really cool that you want to contribute!
Thanks and regards,
Guy

Hi Graham,
I just had a look at the original implementation and I already use the $parse service from Angular. So you are already able to create complex format expressions. You just need to set the https://github.com/guylabs/ion-autocomplete#the-item-view-value-key to something like this and it will work:
item-view-value-key="'City + ', ' + State"

Then it will show inside the list and in the input field, so you do not need to have the template anymore.
I hope this fixes the issue and then the pull request is not needed anymore. Could you please try it and give me feedback?
Thanks and regards,
Guy

Hi Guy,
Thanks for the response. Great if we could get an existing solution working...
I tried,
item-view-value-key="'City + ', ' + State"

item-view-value-key="City + ', ' + State"

and
item-view-value-key="'City + ', ' + State'"

But to no avail, one returning blank and one returning error: [$parse:lexerr] Lexer Error: Unterminated quote at columns 21-22 ['] in expression ['City + ', ' + State'']. Any thoughts?
Graham

Hi Graham,
there was a typo in my first expression. The first single quote was wrong, sorry for that. Please have a look at the https://github.com/guylabs/ion-autocomplete/blob/master/test/e2e/ion-autocomplete.single-select.e2e.html and then you can try the following item-view-value-key:
item-view-value-key="id + ', ' + name"

And this works with this template. You need to add the exact property names of your JSON object which is returned from the items-method.
Hope you get it to work and maybe have a look at the documentation of the $parse service as there are also examples: https://docs.angularjs.org/api/ng/service/$parse
Regards,
Guy

Hi again Guy,
Had some time to spend this afternoon and got it working with the existing version.
This is what eventually worked for me:
<ion-autocomplete ng-model="model.AddressLocationID" item-value-key="ID" item-view-value-key="view.City + ', ' + view.State" items-method="getCityQuery(query)"
	items-method-value-key="items" multiple-select="false" placeholder="" select-items-label="Select city..."
	template-url="templates/city-select.html" />

Note I went through view. to get this happening:

			<input type="search" class="ion-autocomplete-search" ng-model="searchQuery" placeholder="Enter City or Postcode..." />

			<ion-spinner icon="{{loadingIcon}}"></ion-spinner>

		<button class="ion-autocomplete-cancel button button-clear">{{cancelLabel}}</button>

	<ion-content class="has-header">
		<ion-list>
			<ion-item class="item-divider" ng-show="selectedItems.length > 0">{{selectedItemsLabel}}</ion-item>
			<ion-item ng-repeat="selectedItem in selectedItems track by $index" type="item-text-wrap" class="item-icon-left item-icon-right">
				 {{selectedItem.view.City}}
				{{selectedItem.view.State}}

			</ion-item>
			<ion-item class="item-divider" ng-show="items.length > 0">{{selectItemsLabel}}</ion-item>
			<ion-item collection-repeat="item in items" item-height="55" item-width="100%" type="item-text-wrap" ng-click="selectItem(item)">
				{{item.view.City}}
				{{item.view.State}}
			</ion-item>
		</ion-list>
	</ion-content>

getCityQuery()
$scope.getCityQuery = (query) => {
	if (!query)
		return [];
	var deferred = this.$q.defer();
	this.lookupService.getLocations(query) // $http factory call
		.then((results: any) => {
			deferred.resolve(results.map(function(result) {
				return { items: { ID: result.ID, name: result.C, view: { City: result.C, State: result.S } } }
			}));
		});
	return deferred.promise;

Perhaps I still have a couple of redundancies, I'm not sure. But after understanding the workflow and the object graph, the whole thing makes a lot more sense now!
It would be great to see examples of complex templates on your GitHub page, feel free to share any of my above approaches :)
Graham

Hi Graham,
nice! Ok but you would not need the special template if it is ok for you to show the items as City, State. This way you always need to create a new template for each ion-autocomplete component you need in your project.
About the examples: Good idea! Maybe I will add some more codepen demos on how to achieve these things.
Can I then close the issue?
Thanks and regards,
Guy

Ah, but I do need the special template to place State into  unless you have a better suggestion?

Well you do not need to show the state in the special template. You can also try to remove it and then see what the result looks like.

No it's a business requirement to show the state, I don't just want to show the suburb, and looks a bit nicer in the item-note, rather than just with comma.

Ok then I would also leave it as it is. :) Can I then close the issue?

Yep :+1: Thanks a lot.

authors: goneale guylabs

repo: guylabs/ion-autocomplete


text:
Add cancel button to edit protest page

It would be much more elegent to have a button to allow you to cancel rather then just aborting mid edit if you change your mind.

@joeyede Do you mean a button that acts like a 'back' button?

yup.  with clear message on edits will be lost.
It's not clear that the way to change your mind about editing is use the back button.  People are used to a cancel option

Hey can I this?

Hey @CiTRuS93, sure, it's yours :)
Let's use ביטול for the text.

@guytepper
I was talking about confirmation massage, something like "edits will be lost"

Let's avoid the confirmation message for now.

authors: CiTRuS93 guytepper joeyede


text:
hhvm that does not support yield in a function argument

Trying to fix tests on hhvm and cleaning inconsistent use-statements

HHVM test still fail but at least we see the failures now instead of a syntax error.

I've found the problem. HHVM is not compatible with Generator::send, see https://github.com/facebook/hhvm/issues/6807

This is good to go. It won't get better.

Can second that finding, we see similar failures on the AWS SDK for PHP based on that HHVM issue.

I'm not sure what this change accomplishes. Guzzle coroutines are still incompatible with HHVM, and the HHVM team has announced that PHP compatibility is no longer a goal of the HHVM project.
This library does not work with HHVM, and I don't see that changing without a major version bump.

It accomplishes to see hhvm errors. I can also remove hhvm from travis config completely if you prefer that.

HHVM should probably stay in travis, at least to show the incompatibilities for those that explore it since there's no FAQ that provides this detail.
As for the fix itself, it's swapping out:

Fatal error: syntax error, unexpected T_YIELD in /home/travis/build/guzzle/promises/tests/functionsTest.php on line 536

for actual errors like:

GuzzleHttp\Promise\Tests\EachPromiseTest::testMutexPreventsGeneratorRecursion
Exception: Generator is already finished

I'm also in the not sure camp but lean towards cleaning this up since, while it doesn't provide anything functional, it more clearly defines that facebook/hhvm/#6807 is the real reason for this problem.

Is this going to get merged?

It's not possible to fix hhvm tests and most project dropped hhvm support, even composer https://github.com/composer/composer/issues/8127. So I removed hhvm and php 5.5 which is EOL since a while. This way I could also update phpunit.

authors: Tobion jeskew kstich

repo: guzzle/promises


text:
执行 vmr install-self 后，vmr文件被删除

https://v2ex.com/t/948678
跟go程序编译生成的exe文件在windows下被杀毒误报有关。
Windows-amd64版本已经启用了UPX压缩套壳，测试了一下在我的Win11虚拟机上不会误报了。可以重新试一下，Report一下结果。
特别感谢。

忘了说是mac系统

哦，明白问题在哪里了。
已经在安装目录的vmr，如果使用vmr install-self命令，它会先把自己删除，然后试图复制自己到安装目录的时候已经找不到了。
这里忘了考虑这种判断了。还得是用户反馈，不然很难意识到这点。
加个判断就行，对于已经安装的vmr，install-self不做任何操作就行了。

已修复。

authors: ghostzhang moqsien

repo: gvcgo/version-manager


text:
Update fs2-kafka to 3.3.1

About this PR
📦 Updates com.github.fd4s:fs2-kafka from 3.1.0 to 3.3.1
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (3.1.0).
You might want to review and update them manually.
modules/ws-client/yarn.lock
modules/ws-client/yarn.nix

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.fd4s", artifactId = "fs2-kafka" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.github.fd4s", artifactId = "fs2-kafka" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, version-scheme:early-semver, old-version-remains, commit-count:1

Superseded by #337.

repo: gvolpe/trading