Giter Site home page Giter Site logo

klb's Introduction

klb

Build Status

Nash library to mimic the life of @lborguetti (aka klb).

Ok, just kidding, use klb to automate the creation of your infrastructure on AWS or Azure.

Demo

asciicast

Dependencies

To aid you we provide some scripts to install the deps, per distro. For arch linux you can use:

sudo ./deps/arch.sh

Or for debian linux you can use:

sudo ./deps/debian.sh

Contributions for other distros are welcomed. The scripts can assume that Go is already installed, all the other dependencies will be installed automatically.

Install

Just run:

make install

To install klb on your NASHPATH.

Running with Docker

A neowaylabs/klb image is also provided with the project, saving you the hussle of installing the dependencies on your machine.

To create a fast nash shell where you can play around with klb you can run:

make shell

To enter the shell you need to export the required variables that will enable you to use klb. More details on getting your credentials and exporting them on your environment can be found bellow.

The image is ready to run nash scripts that import klb modules.

Updating vendored dependencies

make vendor

Testing

Just run make test.

For each cloud you'll need the environment variables. See the docs for each cloud to help you with each one.

Logging by default will be saved on files, since the tests can be pretty long running and you can check out the progress on the files.

Inside each test package the logs will be saved at ./testdata/logs.

To run redirecting logs to stdout:

Just run make test logger=stdout.

There are also examples that can be run automatically, to validate if they are working. Just run:

make test-examples

They are not included on the CI or the common tests because they take too much time to run, but it is a good way to validate that complex scenarios are working fine.

Docs

P.S.:

  • barefoot running is not implemented.

Cleanup

The automated tests strives to always cleanup ALL created resources. But sometimes it may fail to delete resources, it can happen even because of a intermitent cloud service failure.

If you want to be absolutely sure to delete all test resources created by klb run:

make cleanup

Do not worry, resources are just going to be deleted after you carefully check the list of resources and accept it, it won't go beserk deleting everything on your account.

klb's People

Contributors

katcipis avatar i4ki avatar lborguetti avatar lucianobfaustino avatar kamilash avatar matheusvill avatar vitorarins avatar leocbs avatar uisso avatar wilsonnalmeida avatar ppizarro avatar paulopizarro avatar thiagocaiubi avatar

Stargazers

 avatar Lucas Menezes avatar Manoel V. Machado avatar Paulo Leonardo Benatto avatar Henrique Limas avatar  avatar  avatar Pery Lemke avatar  avatar  avatar  avatar Evaldo Felipe avatar Gabriella de Bem Natel de Moura avatar  avatar  avatar Hery Victor avatar Natel avatar  avatar  avatar Fabio Favero Henkes avatar

Watchers

 avatar Guilherme Santos avatar Victor Ramos Mello avatar  avatar James Cloos avatar Rodrigo Zanato Tripodi avatar Claudinei Callegari avatar  avatar Leonardo Artiero avatar Alfredo Tomio Junior avatar  avatar Vitor Tyburski avatar Henio Bez Junior avatar Daniel Avrella avatar Manoel V. Machado avatar  avatar Thiago Raulino Dal Pont avatar  avatar Lucas de Paula avatar Marcos Morelli avatar  avatar

klb's Issues

testing: Avoid lots of duplicated objects to manage Azure resources

Basically all the code on ./tests/lib/azure is considerably alike, for example, availset.go and storageaccount.go.

Perhaps there is a more generic API that can be used to test existence of different resources, and getting their properties on a more generic manner, like a map.

This can greatly increase the development time of future tests

deps: permission denied installing azure

git:(master)λ> make deps

...
npm ERR! Linux 4.7.0-rc7haswell-and-docker-friendly
npm ERR! argv "/usr/bin/node" "/bin/npm" "install" "--no-optional" "-g" "azure-cli"
npm ERR! node v7.6.0
npm ERR! npm  v4.3.0
npm ERR! path /usr/lib/node_modules/azure-cli/node_modules/ansi-regex
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules/azure-cli/node_modules/ansi-regex'
npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules/azure-cli/node_modules/ansi-regex'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/lib/node_modules/azure-cli/node_modules/ansi-regex' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/i4k/.npm/_logs/2017-04-19T14_32_06_424Z-debug.log
make: *** [Makefile:20: azure-deps] Error 243
ERROR: <interactive>:1:0: exit status 2

changing the command to sudo make deps doesn't works because GOPATH isn't set in root environment.
Changing the Makefile rule "azure-deps" to use sudo works.

makes sense change that?

Add install

I would be cool to have a make install :-)

Test VM creation

Example:

	vm <= azure_vm_new($VM_NAME, $RESOURCE_GROUP_NAME, $LOCATION, "Linux")
	vm <= azure_vm_set_vmsize($vm, $VM_SIZE)
	vm <= azure_vm_set_username($vm, $VM_USERNAME)
	vm <= azure_vm_set_availset($vm, $VM_AVAILSET_NAME)
	vm <= azure_vm_set_vnet($vm, $VNET_NAME)
	vm <= azure_vm_set_subnet($vm, $SUBNET_PUBLIC_NAME)
	vm <= azure_vm_set_nic($vm, $VM_NIC_NAME)
	vm <= azure_vm_set_storageaccount($vm, $storageaccount)
	vm <= azure_vm_set_osdiskvhd($vm, $VM_OS_DISK_VHD_NAME)
	vm <= azure_vm_set_imageurn($vm, $VM_IMAGE_URN)
	vm <= azure_vm_set_customdata($vm, $VM_CUSTOM_DATA)
	vm <= azure_vm_set_publickeyfile($vm, $VM_KEY_FILE)
	azure_vm_create($vm)

azure:login: make deps explicit

The way we do login today is practical but obligates the user to export env vars (credentials could be loaded from other place) and also does not make dependencies explicit (instead of using code to make deps explicit we use documentation, that can lie, specially about runtime dependencies like env vars). I propose we change azure_login to:

fn azure_login(service_principal, tenantid, clientid, secretid) {
}

And create another azure_login_from_env, or azure_login_env (or another name), that loads env vars according to the pattern established on the project and calls the azure_login function.

bug: regression on vnet and alb

Error:

cd tests/azure && go test -parallel 30  -timeout 30m -race -run= ./... -args -logger file--- FAIL: TestVnet (0.01s)
    --- FAIL: TestVnet/Vnet_Create (393.48s)
       retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420222b40} false false false false false 0xc420091a40 2 TestVnet/Vnet_Create {63627631347 676708000 0xadc900} 956 0xc4201e7860 0xc4201e78c0 []} true 0xc420071110}

               work "Shell.Run:./testdata/create_route_table.sh" failed, errors in order:
               error[0]: retrier timeout
--- FAIL: TestLoadBalancer (0.00s)
    --- FAIL: TestLoadBalancer/LoadBalancer (408.41s)
       retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420091bc0} false false false false false 0xc4200912c0 2 TestLoadBalancer/LoadBalancer {63627631347 669843679 0xadc900} 825 0xc420068c60 0xc420068cc0 []} true 0xc420071110}

               work "Shell.Run:./testdata/create_alb.sh" failed, errors in order:
               error[0]: error: exit status 1, executing script: ./testdata/create_alb.sh
               error[1]: error: exit status 1, executing script: ./testdata/create_alb.sh
               error[2]: error: exit status 1, executing script: ./testdata/create_alb.sh
               error[3]: error: exit status 1, executing script: ./testdata/create_alb.sh
               error[4]: error: exit status 1, executing script: ./testdata/create_alb.sh
               error[5]: error: exit status 1, executing script: ./testdata/create_alb.sh
               error[6]: retrier timeout
FAIL
FAIL   github.com/NeowayLabs/klb/tests/azure   982.726s
make: *** [Makefile:59: test] Error 1
ERROR: exit status 2

Vnet logs:

19:02:27 fixture: setting up resgroup "klb-test-fixture-Vnet_Create-4218645" at "eastus"
19:02:27 retrier: starting retry loop for work "ResourceGroup.Create"
19:02:27 retrier: executing work: ResourceGroup.Create
19:02:31 retrier: success running work "ResourceGroup.Create"
19:02:31 retrier: starting retry loop for work "ResourceGroup.AssertExists"
19:02:31 retrier: executing work: ResourceGroup.AssertExists
19:02:31 retrier: success running work "ResourceGroup.AssertExists"
19:02:31 fixture: created resgroup "klb-test-fixture-Vnet_Create-4218645" with success
19:02:31 fixture: calling test function
19:02:31 retrier: starting retry loop for work "Shell.Run:./testdata/create_vnet.sh"
19:02:31 retrier: executing work: Shell.Run:./testdata/create_vnet.sh
19:02:53 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:02:59 info:    Executing command �[1mconfig mode�[22m
19:02:59 info:    New mode is arm
19:02:59 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:03:01 info:    Executing command �[1mlogin�[22m
19:03:01 info:    Authenticating...
19:03:02 info:    Added subscription DADOS - QA
19:03:02 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:03:03 info:    Executing command �[1mnetwork vnet create�[22m
19:03:03 error:   There is no current subscription. Please use the azure login command to set your current subscription.
19:03:03 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:03:03 error:   �[1mnetwork vnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:03:04 Shell.Run:./testdata/create_vnet.sh: got error: error: exit status 1, executing script: ./testdata/create_vnet.sh
19:03:14 retrier: executing work: Shell.Run:./testdata/create_vnet.sh
19:03:22 ERROR: 'dict' object cannot be interpreted as an integer
Traceback (most recent call last):
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/main.py", line 37, in main
    cmd_result = APPLICATION.execute(args)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/application.py", line 157, in execute
    result = expanded_arg.func(params)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 368, in _execute_command
    raise ex
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 363, in _execute_command
    result = op(client, **kwargs) if client else op(**kwargs)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/command_modules/profile/custom.py", line 79, in login
    tenant)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/_profile.py", line 135, in find_subscriptions_on_login
    tenant))
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/_profile.py", line 498, in save_service_principal_cred
    self._service_principal_creds.pop(matched[0])
TypeError: 'dict' object cannot be interpreted as an integer
19:03:23 Shell.Run:./testdata/create_vnet.sh: got error: error: exit status 1, executing script: ./testdata/create_vnet.sh
19:03:33 retrier: executing work: Shell.Run:./testdata/create_vnet.sh
19:03:39 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:03:41 info:    Executing command �[1mconfig mode�[22m
19:03:41 info:    New mode is arm
19:03:41 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:03:42 info:    Executing command �[1mlogin�[22m
19:03:42 info:    Authenticating...
19:03:43 info:    Added subscription DADOS - QA
19:03:43 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:03:44 info:    Executing command �[1mnetwork vnet create�[22m
19:03:44 info:    Looking up the virtual network "klb-vnet-tests-722"
19:03:44 info:    Creating virtual network "klb-vnet-tests-722"
19:04:18 data:    Id                              : /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-Vnet_Create-4218645/providers/Microsoft.Network/virtualNetworks/klb-vnet-tests-722
19:04:18 data:    Name                            : klb-vnet-tests-722
19:04:18 data:    Type                            : Microsoft.Network/virtualNetworks
19:04:18 data:    Location                        : eastus
19:04:18 data:    Provisioning state              : Succeeded
19:04:18 data:    Address prefixes:
19:04:18 data:      10.116.0.0/16
19:04:18 data:    DNS servers:
19:04:18 data:      8.8.8.8
19:04:18 data:      4.4.4.4
19:04:18 info:    �[1mnetwork vnet create�[22m command �[1m�[32mOK�[39m�[22m
19:04:18 retrier: success running work "Shell.Run:./testdata/create_vnet.sh"
19:04:18 retrier: starting retry loop for work "Shell.Run:./testdata/create_nsg.sh"
19:04:18 retrier: executing work: Shell.Run:./testdata/create_nsg.sh
19:04:25 ERROR: 'dict' object cannot be interpreted as an integer
Traceback (most recent call last):
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/main.py", line 37, in main
    cmd_result = APPLICATION.execute(args)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/application.py", line 157, in execute
    result = expanded_arg.func(params)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 368, in _execute_command
    raise ex
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 363, in _execute_command
    result = op(client, **kwargs) if client else op(**kwargs)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/command_modules/profile/custom.py", line 79, in login
    tenant)
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/_profile.py", line 135, in find_subscriptions_on_login
    tenant))
  File "/home/katcipis/.local/lib/python3.6/site-packages/azure/cli/core/_profile.py", line 498, in save_service_principal_cred
    self._service_principal_creds.pop(matched[0])
TypeError: 'dict' object cannot be interpreted as an integer
19:04:26 Shell.Run:./testdata/create_nsg.sh: got error: error: exit status 1, executing script: ./testdata/create_nsg.sh
19:04:36 retrier: executing work: Shell.Run:./testdata/create_nsg.sh
19:04:42 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:04:45 info:    Executing command �[1mconfig mode�[22m
19:04:45 info:    New mode is arm
19:04:45 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:04:46 info:    Executing command �[1mlogin�[22m
19:04:46 info:    Authenticating...
19:04:47 info:    Added subscription DADOS - QA
19:04:47 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:04:49 info:    Executing command �[1mnetwork nsg create�[22m
19:04:49 info:    Looking up the network security group "klb-nsg-tests-298"
19:04:49 error:   No service key found for appid http://klb-sp-tests. Error No service principal key found
19:04:49 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:04:49 error:   �[1mnetwork nsg create�[22m command �[1m�[31mfailed
�[39m�[22m
19:04:49 Shell.Run:./testdata/create_nsg.sh: got error: error: exit status 1, executing script: ./testdata/create_nsg.sh
19:04:59 retrier: executing work: Shell.Run:./testdata/create_nsg.sh
19:05:05 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:05:08 info:    Executing command �[1mconfig mode�[22m
19:05:08 info:    New mode is arm
19:05:08 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:05:08 info:    Executing command �[1mlogin�[22m
19:05:08 info:    Authenticating...
19:05:09 info:    Added subscription DADOS - QA
19:05:09 info:    Setting subscription "DADOS - QA" as default
19:05:09 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:05:10 info:    Executing command �[1mnetwork nsg create�[22m
19:05:10 info:    Looking up the network security group "klb-nsg-tests-298"
19:05:11 info:    Creating a network security group "klb-nsg-tests-298"
19:05:45 data:    Id                              : /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-Vnet_Create-4218645/providers/Microsoft.Network/networkSecurityGroups/klb-nsg-tests-298
19:05:45 data:    Name                            : klb-nsg-tests-298
19:05:45 data:    Type                            : Microsoft.Network/networkSecurityGroups
19:05:45 data:    Location                        : eastus
19:05:45 data:    Provisioning state              : Succeeded
19:05:45 data:    Security rules:
19:05:45 data:    Name                           Source IP          Source Port  Destination IP  Destination Port  Protocol  Direction  Access  Priority
19:05:45 data:    -----------------------------  -----------------  -----------  --------------  ----------------  --------  ---------  ------  --------
19:05:45 data:    AllowVnetInBound               VirtualNetwork     *            VirtualNetwork  *                 *         Inbound    Allow   65000   
19:05:45 data:    AllowAzureLoadBalancerInBound  AzureLoadBalancer  *            *               *                 *         Inbound    Allow   65001   
19:05:45 data:    DenyAllInBound                 *                  *            *               *                 *         Inbound    Deny    65500   
19:05:45 data:    AllowVnetOutBound              VirtualNetwork     *            VirtualNetwork  *                 *         Outbound   Allow   65000   
19:05:45 data:    AllowInternetOutBound          *                  *            Internet        *                 *         Outbound   Allow   65001   
19:05:45 data:    DenyAllOutBound                *                  *            *               *                 *         Outbound   Deny    65500   
19:05:45 info:    �[1mnetwork nsg create�[22m command �[1m�[32mOK�[39m�[22m
19:05:45 retrier: success running work "Shell.Run:./testdata/create_nsg.sh"
19:05:45 retrier: starting retry loop for work "Shell.Run:./testdata/create_subnet.sh"
19:05:45 retrier: executing work: Shell.Run:./testdata/create_subnet.sh
19:05:46 info:    Executing command �[1mnetwork vnet subnet create�[22m
19:05:46 error:   There is no current subscription. Please use the azure login command to set your current subscription.
19:05:46 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:05:46 error:   �[1mnetwork vnet subnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:05:46 Shell.Run:./testdata/create_subnet.sh: got error: error: exit status 1, executing script: ./testdata/create_subnet.sh
19:05:56 retrier: executing work: Shell.Run:./testdata/create_subnet.sh
19:05:57 info:    Executing command �[1mnetwork vnet subnet create�[22m
19:05:57 info:    Looking up the network security group "klb-nsg-tests-298"
19:05:57 error:   No service key found for appid bc56de3a-b775-4542-826b-79d08908bee4. Error No service principal key found
19:05:57 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:05:57 error:   �[1mnetwork vnet subnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:05:57 Shell.Run:./testdata/create_subnet.sh: got error: error: exit status 1, executing script: ./testdata/create_subnet.sh
19:06:07 retrier: executing work: Shell.Run:./testdata/create_subnet.sh
19:06:08 info:    Executing command �[1mnetwork vnet subnet create�[22m
19:06:09 info:    Looking up the network security group "klb-nsg-tests-298"
19:06:09 error:   No service key found for appid http://klb-sp-tests. Error No service principal key found
19:06:09 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:06:09 error:   �[1mnetwork vnet subnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:06:09 Shell.Run:./testdata/create_subnet.sh: got error: error: exit status 1, executing script: ./testdata/create_subnet.sh
19:06:19 retrier: executing work: Shell.Run:./testdata/create_subnet.sh
19:06:20 info:    Executing command �[1mnetwork vnet subnet create�[22m
19:06:20 info:    Looking up the network security group "klb-nsg-tests-298"
19:06:21 info:    Looking up the virtual network "klb-vnet-tests-722"
19:06:21 info:    Looking up the subnet "klb-subnet-tests-77"
19:06:22 info:    Creating subnet "klb-subnet-tests-77"
19:06:54 data:    Id                              : /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-Vnet_Create-4218645/providers/Microsoft.Network/virtualNetworks/klb-vnet-tests-722/subnets/klb-subnet-tests-77
19:06:54 data:    Name                            : klb-subnet-tests-77
19:06:54 data:    Provisioning state              : Succeeded
19:06:54 data:    Address prefix                  : 10.116.1.0/24
19:06:54 data:    Network Security Group id       : /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-Vnet_Create-4218645/providers/Microsoft.Network/networkSecurityGroups/klb-nsg-tests-298
19:06:54 info:    �[1mnetwork vnet subnet create�[22m command �[1m�[32mOK�[39m�[22m
19:06:54 retrier: success running work "Shell.Run:./testdata/create_subnet.sh"
19:06:54 retrier: starting retry loop for work "Shell.Run:./testdata/create_route_table.sh"
19:06:54 retrier: executing work: Shell.Run:./testdata/create_route_table.sh
19:07:00 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:07:02 info:    Executing command �[1mconfig mode�[22m
19:07:02 info:    New mode is arm
19:07:02 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:07:03 info:    Executing command �[1mlogin�[22m
19:07:03 info:    Authenticating...
19:07:04 info:    Added subscription DADOS - QA
19:07:04 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:07:05 info:    Executing command �[1mnetwork route-table create�[22m
19:07:05 info:    Looking up Route Table "klb-route-tests-829"
19:07:06 info:    Creating Route Table "klb-route-tests-829"
19:07:27 retrier: Shell.Run:./testdata/create_route_table.sh: timeouted, returning all errors
19:07:27 ResourceGroup.Delete: "klb-test-fixture-Vnet_Create-4218645"
19:07:27 retrier: starting retry loop for work "ResourceGroup.Delete"
19:07:27 retrier: executing work: ResourceGroup.Delete
19:07:40 data:    Id                              : /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-Vnet_Create-4218645/providers/Microsoft.Network/routeTables/klb-route-tests-829
19:07:40 data:    Name                            : klb-route-tests-829
19:07:40 data:    Type                            : Microsoft.Network/routeTables
19:07:40 data:    Location                        : eastus
19:07:40 data:    Provisioning state              : Succeeded
19:07:40 info:    �[1mnetwork route-table create�[22m command �[1m�[32mOK�[39m�[22m
19:09:01 retrier: success running work "ResourceGroup.Delete"
19:09:01 ResourceGroup.Delete finished

ALB logs:

19:02:27 fixture: setting up resgroup "klb-test-fixture-LoadBalancer-1453531" at "eastus"
19:02:27 retrier: starting retry loop for work "ResourceGroup.Create"
19:02:27 retrier: executing work: ResourceGroup.Create
19:02:31 retrier: success running work "ResourceGroup.Create"
19:02:31 retrier: starting retry loop for work "ResourceGroup.AssertExists"
19:02:31 retrier: executing work: ResourceGroup.AssertExists
19:02:31 retrier: success running work "ResourceGroup.AssertExists"
19:02:31 fixture: created resgroup "klb-test-fixture-LoadBalancer-1453531" with success
19:02:31 fixture: calling test function
19:02:31 retrier: starting retry loop for work "Shell.Run:./testdata/create_alb.sh"
19:02:31 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:02:51 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:02:56 info:    Executing command �[1mconfig mode�[22m
19:02:56 info:    New mode is arm
info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:03:00 info:    Executing command �[1mlogin�[22m
19:03:00 info:    Authenticating...
19:03:01 info:    Added subscription DADOS - QA
19:03:01 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:03:02 info:    Executing command �[1mgroup create�[22m
19:03:03 info:    Getting resource group klb-test-fixture-LoadBalancer-1453531
19:03:03 info:    Updating resource group klb-test-fixture-LoadBalancer-1453531
19:03:04 info:    Updated resource group klb-test-fixture-LoadBalancer-1453531
19:03:04 data:    Id:                  /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-LoadBalancer-1453531
19:03:04 data:    Name:                klb-test-fixture-LoadBalancer-1453531
19:03:04 data:    Location:            eastus
19:03:04 data:    Provisioning State:  Succeeded
19:03:04 data:    Tags: null
19:03:04 data:    
19:03:04 info:    �[1mgroup create�[22m command �[1m�[32mOK�[39m�[22m
19:03:06 info:    Executing command �[1mnetwork vnet create�[22m
19:03:06 info:    Looking up the virtual network "alb-tests-vnet"
19:03:07 info:    Creating virtual network "alb-tests-vnet"
19:03:41 data:    Id                              : /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-LoadBalancer-1453531/providers/Microsoft.Network/virtualNetworks/alb-tests-vnet
19:03:41 data:    Name                            : alb-tests-vnet
19:03:41 data:    Type                            : Microsoft.Network/virtualNetworks
19:03:41 data:    Location                        : eastus
19:03:41 data:    Provisioning state              : Succeeded
19:03:41 data:    Address prefixes:
19:03:41 data:      10.120.0.0/16
19:03:41 data:    DNS servers:
19:03:41 data:      8.8.8.8
19:03:41 data:      8.8.4.4
19:03:41 info:    �[1mnetwork vnet create�[22m command �[1m�[32mOK�[39m�[22m
19:03:42 info:    Executing command �[1mnetwork nsg create�[22m
19:03:42 info:    Looking up the network security group "alb-tests-securitygroup"
19:03:42 error:   No service key found for appid bc56de3a-b775-4542-826b-79d08908bee4. Error No service principal key found
19:03:42 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:03:42 error:   �[1mnetwork nsg create�[22m command �[1m�[31mfailed
�[39m�[22m
19:03:42 Shell.Run:./testdata/create_alb.sh: got error: error: exit status 1, executing script: ./testdata/create_alb.sh
19:03:52 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:04:02 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:04:05 info:    Executing command �[1mconfig mode�[22m
19:04:05 info:    New mode is arm
19:04:05 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:04:06 info:    Executing command �[1mlogin�[22m
19:04:06 info:    Authenticating...
19:04:06 info:    Added subscription DADOS - QA
19:04:06 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:04:07 info:    Executing command �[1mgroup create�[22m
19:04:07 info:    Getting resource group klb-test-fixture-LoadBalancer-1453531
19:04:07 info:    Updating resource group klb-test-fixture-LoadBalancer-1453531
19:04:08 info:    Updated resource group klb-test-fixture-LoadBalancer-1453531
19:04:08 data:    Id:                  /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-LoadBalancer-1453531
19:04:08 data:    Name:                klb-test-fixture-LoadBalancer-1453531
19:04:08 data:    Location:            eastus
19:04:08 data:    Provisioning State:  Succeeded
19:04:08 data:    Tags: null
19:04:08 data:    
19:04:08 info:    �[1mgroup create�[22m command �[1m�[32mOK�[39m�[22m
19:04:10 info:    Executing command �[1mnetwork vnet create�[22m
19:04:10 info:    Looking up the virtual network "alb-tests-vnet"
19:04:10 error:   No service key found for appid http://klb-sp-tests. Error No service principal key found
19:04:10 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:04:10 error:   �[1mnetwork vnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:04:10 Shell.Run:./testdata/create_alb.sh: got error: error: exit status 1, executing script: ./testdata/create_alb.sh
19:04:20 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:04:26 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:04:28 info:    Executing command �[1mconfig mode�[22m
19:04:28 info:    New mode is arm
19:04:28 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:04:29 info:    Executing command �[1mlogin�[22m
19:04:29 info:    Authenticating...
19:04:30 info:    Added subscription DADOS - QA
19:04:30 info:    Setting subscription "DADOS - QA" as default
19:04:30 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:04:31 info:    Executing command �[1mgroup create�[22m
19:04:32 info:    Getting resource group klb-test-fixture-LoadBalancer-1453531
19:04:32 error:   No service key found for appid bc56de3a-b775-4542-826b-79d08908bee4. Error No service principal key found
19:04:32 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:04:32 error:   �[1mgroup create�[22m command �[1m�[31mfailed
�[39m�[22m
19:04:32 Shell.Run:./testdata/create_alb.sh: got error: error: exit status 1, executing script: ./testdata/create_alb.sh
19:04:42 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:04:49 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:04:52 info:    Executing command �[1mconfig mode�[22m
19:04:52 info:    New mode is arm
19:04:52 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:04:53 info:    Executing command �[1mlogin�[22m
19:04:53 info:    Authenticating...
19:04:53 info:    Added subscription DADOS - QA
19:04:53 info:    Setting subscription "DADOS - QA" as default
19:04:53 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:04:55 info:    Executing command �[1mgroup create�[22m
19:04:55 error:   There is no current subscription. Please use the azure login command to set your current subscription.
19:04:55 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:04:55 error:   �[1mgroup create�[22m command �[1m�[31mfailed
�[39m�[22m
19:04:55 Shell.Run:./testdata/create_alb.sh: got error: error: exit status 1, executing script: ./testdata/create_alb.sh
19:05:05 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:05:11 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:05:13 info:    Executing command �[1mconfig mode�[22m
19:05:13 info:    New mode is arm
19:05:13 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:05:14 info:    Executing command �[1mlogin�[22m
19:05:14 info:    Authenticating...
19:05:14 info:    Added subscription DADOS - QA
19:05:14 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:05:15 info:    Executing command �[1mgroup create�[22m
19:05:15 info:    Getting resource group klb-test-fixture-LoadBalancer-1453531
19:05:16 info:    Updating resource group klb-test-fixture-LoadBalancer-1453531
19:05:17 info:    Updated resource group klb-test-fixture-LoadBalancer-1453531
19:05:17 data:    Id:                  /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-LoadBalancer-1453531
19:05:17 data:    Name:                klb-test-fixture-LoadBalancer-1453531
19:05:17 data:    Location:            eastus
19:05:17 data:    Provisioning State:  Succeeded
19:05:17 data:    Tags: null
19:05:17 data:    
19:05:17 info:    �[1mgroup create�[22m command �[1m�[32mOK�[39m�[22m
19:05:18 info:    Executing command �[1mnetwork vnet create�[22m
19:05:18 info:    Looking up the virtual network "alb-tests-vnet"
19:05:19 error:   Virtual network "alb-tests-vnet" already exists in resource group "klb-test-fixture-LoadBalancer-1453531"
19:05:19 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:05:19 error:   �[1mnetwork vnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:05:19 Shell.Run:./testdata/create_alb.sh: got error: error: exit status 1, executing script: ./testdata/create_alb.sh
19:05:29 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:05:34 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:05:36 info:    Executing command �[1mconfig mode�[22m
19:05:36 info:    New mode is arm
19:05:36 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:05:37 info:    Executing command �[1mlogin�[22m
19:05:37 info:    Authenticating...
19:05:38 info:    Added subscription DADOS - QA
19:05:38 info:    Setting subscription "DADOS - QA" as default
19:05:38 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:05:39 info:    Executing command �[1mgroup create�[22m
19:05:39 info:    Getting resource group klb-test-fixture-LoadBalancer-1453531
19:05:39 info:    Updating resource group klb-test-fixture-LoadBalancer-1453531
19:05:40 info:    Updated resource group klb-test-fixture-LoadBalancer-1453531
19:05:40 data:    Id:                  /subscriptions/e3e74e5f-cc81-49d1-8fab-00fff864c080/resourceGroups/klb-test-fixture-LoadBalancer-1453531
19:05:40 data:    Name:                klb-test-fixture-LoadBalancer-1453531
19:05:40 data:    Location:            eastus
19:05:40 data:    Provisioning State:  Succeeded
19:05:40 data:    Tags: null
19:05:40 data:    
19:05:40 info:    �[1mgroup create�[22m command �[1m�[32mOK�[39m�[22m
19:05:41 info:    Executing command �[1mnetwork vnet create�[22m
19:05:41 info:    Looking up the virtual network "alb-tests-vnet"
19:05:42 error:   Virtual network "alb-tests-vnet" already exists in resource group "klb-test-fixture-LoadBalancer-1453531"
19:05:42 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:05:42 error:   �[1mnetwork vnet create�[22m command �[1m�[31mfailed
�[39m�[22m
19:05:42 Shell.Run:./testdata/create_alb.sh: got error: error: exit status 1, executing script: ./testdata/create_alb.sh
19:05:52 retrier: executing work: Shell.Run:./testdata/create_alb.sh
19:05:58 CloudName    IsDefault    Name        State    TenantId
-----------  -----------  ----------  -------  ------------------------------------
AzureCloud   True         DADOS - QA  Enabled  2d5fc15a-26b1-49b6-a937-4379c05e8ef8
19:07:27 retrier: Shell.Run:./testdata/create_alb.sh: timeouted, returning all errors
19:07:27 ResourceGroup.Delete: "klb-test-fixture-LoadBalancer-1453531"
19:07:27 retrier: starting retry loop for work "ResourceGroup.Delete"
19:07:27 retrier: executing work: ResourceGroup.Delete
19:07:30 info:    Executing command �[1mconfig mode�[22m
19:07:30 info:    New mode is arm
19:07:30 info:    �[1mconfig mode�[22m command �[1m�[32mOK�[39m�[22m
19:07:31 info:    Executing command �[1mlogin�[22m
19:07:31 info:    Authenticating...
19:07:31 info:    Added subscription DADOS - QA
19:07:31 info:    �[1mlogin�[22m command �[1m�[32mOK�[39m�[22m
19:07:32 info:    Executing command �[1mgroup create�[22m
19:07:32 info:    Getting resource group klb-test-fixture-LoadBalancer-1453531
19:07:33 info:    Updating resource group klb-test-fixture-LoadBalancer-1453531
19:07:33 error:   The resource group 'klb-test-fixture-LoadBalancer-1453531' is in deprovisioning state and cannot perform this operation.
19:07:33 error:   Error information has been recorded to /home/katcipis/.azure/azure.err
19:07:33 error:   �[1mgroup create�[22m command �[1m�[31mfailed
�[39m�[22m
19:09:16 retrier: success running work "ResourceGroup.Delete"
19:09:16 ResourceGroup.Delete finished

Race condition on Azure API

Glorious API :-)

WARNING: DATA RACE
Read at 0x000000ac6770 by goroutine 20:
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.UserAgent()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/version.go:43 +0x6d
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.NewWithBaseURI()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/client.go:53 +0x69
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.NewGroupsClientWithBaseURI()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/groups.go:41 +0x9c
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.NewGroupsClient()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/groups.go:36 +0x97
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.NewResourceGroup()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/resourcegroup.go:27 +0x75
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/resourcegroup.go:27 +0x75
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.Run.func1()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/fixture.go:78 +0x367
  testing.tRunner()
      /home/katcipis/go/src/testing/testing.go:610 +0xc9

Previous write at 0x000000ac6770 by goroutine 19:
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.UserAgent()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/version.go:44 +0x2bc
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.NewWithBaseURI()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/client.go:53 +0x69
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.NewGroupsClientWithBaseURI()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/groups.go:41 +0x9c
  github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources.NewGroupsClient()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/vendor/github.com/Azure/azure-sdk-for-go/arm/resources/resources/groups.go:36 +0x97
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.NewResourceGroup()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/resourcegroup.go:27 +0x75
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.Run.func1()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/fixture.go:78 +0x367
  testing.tRunner()
      /home/katcipis/go/src/testing/testing.go:610 +0xc9

Goroutine 20 (running) created at:
  testing.(*T).Run()
      /home/katcipis/go/src/testing/testing.go:646 +0x52f
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.Run()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/fixture.go:104 +0x149
  github.com/NeowayLabs/klb/tests/azure_test.TestNsg()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/azure/nsg_test.go:30 +0x8f
  testing.tRunner()
      /home/katcipis/go/src/testing/testing.go:610 +0xc9

Goroutine 19 (running) created at:
  testing.(*T).Run()
      /home/katcipis/go/src/testing/testing.go:646 +0x52f
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.Run()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/fixture.go:104 +0x149
  github.com/NeowayLabs/klb/tests/azure_test.TestRouteTable()
      /home/katcipis/workspace/go/src/github.com/NeowayLabs/klb/tests/azure/routetable_test.go:48 +0x8f
  testing.tRunner()
      /home/katcipis/go/src/testing/testing.go:610 +0xc9

All functions who creates some resource should be idempotent

I think a build script should be idempotent. This is expected behavior for most build scripts.

It means, if I run the script again and nothing changed the script should do nothing and generate no error. If only one resource has changed or is a new resource then only this resource should be affected when I run the script again.

KLB could help address this behavior by facilitating your users.

Currently for some resource types when I create the resource and it already exists KLB returns an error for others does not return error. This behavior reflects the behavior of azure cli.

It would be nice if KLB was not just a wrapper to call the commands of the cli.

Unable to install deps with Debian 9

KLB Version

0.9.1

Debian Version

Debian GNU/Linux 9

Steps to Reproduce

sudo ./deps/debian.sh
installing python pip and nodejs npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package npm    

I guess this approach works fine with Ubuntu, actually what's recommended by the NodeJS Foundation is run this script:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs:

The script detects your distribution and sets up the repository for you.

<3

Test NIC creation

Example:

	nic <= azure_nic_new($VM_NIC_NAME, $RESOURCE_GROUP_NAME, $LOCATION)
	nic <= azure_nic_set_vnet($nic, $VNET_NAME)
	nic <= azure_nic_set_subnet($nic, $SUBNET_PUBLIC_NAME)
	nic <= azure_nic_set_ipfw($nic, "true")
	nic <= azure_nic_set_publicip($nic, $VM_PUBLIC_IP_NAME)
	nic <= azure_nic_set_privateip($nic, $VM_ADDRESS)
	azure_nic_create($nic)

bug: tests.lib.log: race condition

Logs:

cd tests/azure && go test -parallel 30  -timeout 30m -race -run= ./... -args -logger file
==================
WARNING: DATA RACE
Write at 0x00c4200db880 by goroutine 31:
  os.(*file).close()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file_unix.go:143 +0x124
  os.(*File).Close()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file_unix.go:132 +0x55
  github.com/NeowayLabs/klb/tests/lib/log.newFile.func1()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/log/log.go:55 +0x41
  runtime.call32()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/runtime/asm_amd64.s:479 +0x4b
  testing.(*common).Fatal()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:490 +0x7c
  github.com/NeowayLabs/klb/tests/lib/retrier.(*Retrier).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:61 +0x808
  github.com/NeowayLabs/klb/tests/lib/nash.(*Shell).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/nash/nash.go:55 +0x236
  github.com/NeowayLabs/klb/tests/azure_test.testResourceGroupDelete()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:64 +0x3af
  testing.tRunner()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:610 +0xc9

Previous read at 0x00c4200db880 by goroutine 57:
  os.(*File).write()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file_unix.go:249 +0x8a
  os.(*File).Write()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file.go:142 +0x6f
  log.(*Logger).Output()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/log/log.go:166 +0x397
  log.(*Logger).Printf()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/log/log.go:173 +0x8f
  github.com/NeowayLabs/klb/tests/lib/retrier.retryUntilDone.func1()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:80 +0xf8

Goroutine 31 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:646 +0x52f
  github.com/NeowayLabs/klb/tests/azure_test.TestResourceGroup()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:78 +0x9a
  testing.tRunner()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:610 +0xc9

Goroutine 57 (running) created at:
  github.com/NeowayLabs/klb/tests/lib/retrier.retryUntilDone()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:82 +0xe1
  github.com/NeowayLabs/klb/tests/lib/retrier.(*Retrier).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:49 +0x1f2
  github.com/NeowayLabs/klb/tests/lib/nash.(*Shell).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/nash/nash.go:55 +0x236
  github.com/NeowayLabs/klb/tests/azure_test.testResourceGroupDelete()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:64 +0x3af
  testing.tRunner()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:610 +0xc9
==================
--- FAIL: TestStorageAccount (0.00s)
    --- FAIL: TestStorageAccount/StorageAccount_Create (334.01s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420119140} false false false false false 0xc42008f680 2 TestStorageAccount/StorageAccount_Create {63625719651 584166723 0xace8c0} 941 0xc420067f80 0xc420144000 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_storage_account.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_storage_account.sh
    		error[20]: retrier timeout
--- FAIL: TestVnet (0.01s)
    --- FAIL: TestVnet/Vnet_Create (334.44s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42008fbc0} false false false false false 0xc42008f8c0 2 TestVnet/Vnet_Create {63625719651 586196444 0xace8c0} 1897 0xc420066ba0 0xc420066c00 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_vnet.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[21]: retrier timeout
--- FAIL: TestNsg (0.01s)
    --- FAIL: TestNsg/Nsg_Create (348.65s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42008fa40} false false false false false 0xc42008f440 2 TestNsg/Nsg_Create {63625719651 585058651 0xace8c0} 2182 0xc420066ae0 0xc420066b40 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_nsg.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[21]: retrier timeout
--- FAIL: TestNic (0.01s)
    --- FAIL: TestNic/Nic_Create (349.31s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420119a40} false false false false false 0xc42008f380 2 TestNic/Nic_Create {63625719651 591717571 0xace8c0} 1676 0xc4201448a0 0xc420144900 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_nsg.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_nsg.sh
    		error[21]: retrier timeout
--- FAIL: TestSubnet (0.00s)
    --- FAIL: TestSubnet/testSubnetCreate (349.80s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420118840} false false false false false 0xc42008f740 2 TestSubnet/testSubnetCreate {63625719651 581120697 0xace8c0} 1442 0xc420067980 0xc4200679e0 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_vnet.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_vnet.sh
    		error[21]: retrier timeout
--- FAIL: TestRouteTable (0.01s)
    --- FAIL: TestRouteTable/RouteTable_AddVirtualApplianceRoute (347.91s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42015c9c0} false false false false false 0xc42008f5c0 2 TestRouteTable/RouteTable_AddVirtualApplianceRoute {63625719651 592216833 0xace8c0} 1367 0xc420145800 0xc420145860 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_route_table.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[18]: retrier timeout
    --- FAIL: TestRouteTable/RouteTable_Create (348.41s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420118fc0} false false false false false 0xc42008f5c0 2 TestRouteTable/RouteTable_Create {63625719651 593652282 0xace8c0} 1747 0xc420067ec0 0xc420067f20 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_route_table.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[19]: retrier timeout
    --- FAIL: TestRouteTable/RouteTable_AddInternetRoute (350.21s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42015c6c0} false false false false false 0xc42008f5c0 2 TestRouteTable/RouteTable_AddInternetRoute {63625719651 591191770 0xace8c0} 1549 0xc4201451a0 0xc420145200 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_route_table.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_route_table.sh
    		error[21]: retrier timeout
--- FAIL: TestAvailabilitySet (0.00s)
    --- FAIL: TestAvailabilitySet/AvailabilitySet_Create (350.08s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42014c240} false false false false false 0xc42008f2c0 2 TestAvailabilitySet/AvailabilitySet_Create {63625719651 586494644 0xace8c0} 1194 0xc42000c3c0 0xc42000c420 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_avail_set.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[21]: retrier timeout
    --- FAIL: TestAvailabilitySet/AvailabilitySet_Delete (355.08s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42014c3c0} false false false false false 0xc42008f2c0 2 TestAvailabilitySet/AvailabilitySet_Delete {63625719651 586571493 0xace8c0} 1466 0xc42000c9c0 0xc42000ca20 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_avail_set.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[21]: retrier timeout
==================
WARNING: DATA RACE
Write at 0x00c4201580c0 by goroutine 30:
  os.(*file).close()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file_unix.go:143 +0x124
  os.(*File).Close()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file_unix.go:132 +0x55
  github.com/NeowayLabs/klb/tests/lib/log.newFile.func1()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/log/log.go:55 +0x41
  runtime.call32()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/runtime/asm_amd64.s:479 +0x4b
  testing.(*common).Fatal()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:490 +0x7c
  github.com/NeowayLabs/klb/tests/lib/retrier.(*Retrier).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:61 +0x808
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.(*ResourceGroup).Delete()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/resourcegroup.go:67 +0x228
  github.com/NeowayLabs/klb/tests/azure_test.testResourceGroupCreate.func1()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:34 +0xf9
  runtime.call64()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/runtime/asm_amd64.s:480 +0x4b
  testing.(*common).Fatal()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:490 +0x7c
  github.com/NeowayLabs/klb/tests/lib/retrier.(*Retrier).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:61 +0x808
  github.com/NeowayLabs/klb/tests/lib/nash.(*Shell).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/nash/nash.go:55 +0x236
  github.com/NeowayLabs/klb/tests/azure_test.testResourceGroupCreate()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:42 +0x40c
  testing.tRunner()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:610 +0xc9

Previous read at 0x00c4201580c0 by goroutine 145:
  os.(*File).write()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file_unix.go:249 +0x8a
  os.(*File).Write()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/os/file.go:142 +0x6f
  log.(*Logger).Output()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/log/log.go:166 +0x397
  log.(*Logger).Printf()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/log/log.go:173 +0x8f
  github.com/NeowayLabs/klb/tests/lib/retrier.retryUntilDone.func1()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:80 +0xf8

Goroutine 30 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:646 +0x52f
  github.com/NeowayLabs/klb/tests/azure_test.TestResourceGroup()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:77 +0x6b
  testing.tRunner()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:610 +0xc9

Goroutine 145 (running) created at:
  github.com/NeowayLabs/klb/tests/lib/retrier.retryUntilDone()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:82 +0xe1
  github.com/NeowayLabs/klb/tests/lib/retrier.(*Retrier).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:49 +0x1f2
  github.com/NeowayLabs/klb/tests/lib/azure/fixture.(*ResourceGroup).Delete()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/azure/fixture/resourcegroup.go:67 +0x228
  github.com/NeowayLabs/klb/tests/azure_test.testResourceGroupCreate.func1()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:34 +0xf9
  runtime.call64()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/runtime/asm_amd64.s:480 +0x4b
  testing.(*common).Fatal()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:490 +0x7c
  github.com/NeowayLabs/klb/tests/lib/retrier.(*Retrier).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/retrier/retrier.go:61 +0x808
  github.com/NeowayLabs/klb/tests/lib/nash.(*Shell).Run()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/lib/nash/nash.go:55 +0x236
  github.com/NeowayLabs/klb/tests/azure_test.testResourceGroupCreate()
      /home/travis/gopath/src/github.com/NeowayLabs/klb/tests/azure/resourcegroup_test.go:42 +0x40c
  testing.tRunner()
      /home/travis/.gimme/versions/go1.7.linux.amd64/src/testing/testing.go:610 +0xc9
==================
--- FAIL: TestResourceGroup (0.00s)
    --- FAIL: TestResourceGroup/Delete (301.09s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc420119440} false false false false false 0xc42008f500 2 TestResourceGroup/Delete {63625719651 582311023 0xace8c0} 1269 0xc420144120 0xc420144180 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_resource_group.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[21]: retrier timeout
    --- FAIL: TestResourceGroup/Create (612.10s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc4201192c0} false false false false false 0xc42008f500 2 TestResourceGroup/Create {63625719651 584679245 0xace8c0} 1454 0xc420144060 0xc4201440c0 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_resource_group.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[21]: error: exit status 8, executing script: ./testdata/create_resource_group.sh
    		error[22]: retrier timeout
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [9 114 101 116 114 105 101 114 46 103 111 58 54 49 58 32 38 123 123 123 123 48 32 48 125 32 48 32 48 32 48 32 48 125 32 91 93 32 123 48 120 99 52 50 48 49 49 57 50 99 48 125 32 102 97 108 115 101 32 102 97 108 115 101 32 102 97 108 115 101 32 102 97 108 115 101 32 102 97 108 115 101 32 48 120 99 52 50 48 48 56 102 53 48 48 32 50 32 84 101 115 116 82 101 115 111 117 114 99 101 71 114 111 117 112 47 67 114 101 97 116 101 32 123 54 51 54 50 53 55 49 57 54 53 49 32 53 56 52 54 55 57 50 52 53 32 48 120 97 99 101 56 99 48 125 32 49 52 53 52 32 48 120 99 52 50 48 49 52 52 48 54 48 32 48 120 99 52 50 48 49 52 52 48 99 48 32 91 93 125 32 116 114 117 101 32 48 120 99 52 50 48 48 55 49 48 101 48 125 32 10 9 9 10 9 9 119 111 114 107 32 34 83 104 101 108 108 46 82 117 110 58 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 34 32 102 97 105 108 101 100 44 32 101 114 114 111 114 115 32 105 110 32 111 114 100 101 114 58 10 9 9 101 114 114 111 114 91 48 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 50 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 51 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 52 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 53 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 54 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 55 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 56 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 57 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 48 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 49 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 50 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 51 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 52 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 53 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 54 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 55 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 56 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 49 57 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 50 48 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 50 49 93 58 32 101 114 114 111 114 58 32 101 120 105 116 32 115 116 97 116 117 115 32 56 44 32 101 120 101 99 117 116 105 110 103 32 115 99 114 105 112 116 58 32 46 47 116 101 115 116 100 97 116 97 47 99 114 101 97 116 101 95 114 101 115 111 117 114 99 101 95 103 114 111 117 112 46 115 104 10 9 9 101 114 114 111 114 91 50 50 93 58 32 114 101 116 114 105 101 114 32 116 105 109 101 111 117 116 10] {0xc4201192c0} false true false true false 0xc42008f500 2 TestResourceGroup/Create {63625719651 584679245 0xace8c0} 1454 0xc420144060 0xc4201440c0 []} true 0xc4200710e0} 
    		
    		work "ResourceGroup.Delete" failed, errors in order:
    		error[0]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[1]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[2]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[3]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[4]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[5]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[6]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[7]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[8]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[9]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[10]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[11]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[12]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[13]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[14]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[15]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[16]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[17]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[18]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[19]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[20]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[21]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[22]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[23]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[24]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[25]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[26]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[27]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[28]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[29]: resources.GroupsClient#Delete: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'klb-resgroup-tests-904321' could not be found."
    		error[30]: retrier timeout
--- FAIL: TestVM (0.00s)
    --- FAIL: TestVM/VM_Create (1531.96s)
    	retrier.go:61: &{{{{0 0} 0 0 0 0} [] {0xc42008fd40} false false false false false 0xc42008f800 2 TestVM/VM_Create {63625719651 578299760 0xace8c0} 1849 0xc420066c60 0xc420066cc0 []} true 0xc4200710e0} 
    		
    		work "Shell.Run:./testdata/create_avail_set.sh" failed, errors in order:
    		error[0]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[1]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[2]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[3]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[4]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[5]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[6]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[7]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[8]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[9]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[10]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[11]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[12]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[13]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[14]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[15]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[16]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[17]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[18]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[19]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[20]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[21]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[22]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[23]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[24]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[25]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[26]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[27]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[28]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[29]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[30]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[31]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[32]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[33]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[34]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[35]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[36]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[37]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[38]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[39]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[40]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[41]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[42]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[43]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[44]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[45]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[46]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[47]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[48]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[49]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[50]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[51]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[52]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[53]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[54]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[55]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[56]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[57]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[58]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[59]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[60]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[61]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[62]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[63]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[64]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[65]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[66]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[67]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[68]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[69]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[70]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[71]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[72]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[73]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[74]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[75]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[76]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[77]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[78]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[79]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[80]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[81]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[82]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[83]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[84]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[85]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[86]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[87]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[88]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[89]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[90]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[91]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[92]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[93]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[94]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[95]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[96]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[97]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[98]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[99]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[100]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[101]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[102]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[103]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[104]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[105]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[106]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[107]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[108]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[109]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[110]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[111]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[112]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[113]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[114]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[115]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[116]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[117]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[118]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[119]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[120]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[121]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[122]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[123]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[124]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[125]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[126]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[127]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[128]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[129]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[130]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[131]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[132]: error: exit status 8, executing script: ./testdata/create_avail_set.sh
    		error[133]: retrier timeout
FAIL
FAIL	github.com/NeowayLabs/klb/tests/azure	1531.981s
make: *** [test] Error 1
/home/travis/build.sh: line 162:  4512 Terminated              travis_jigger $! $timeout $cmd

testing: fix CI failures

Right now CI is failing all the time on tests that when I run isolated works perfectly on my host. But when I try to run all tests I get some intermittent errors that seems be caused by azure instability x_x.

The current approach to try again is flawed because almost all errors leave the state on a unrecoverable state =(. This has to be fixed for the tests to remain useful.

feature: moving ALB

I was thinking about how to perform blue/green updates that works well with two scenarios that I know we have:

  • the entire old resource group will be removed after update
  • the same resource group will be used, with the old and new cluster inside

So, I thought on something like this:

azure_alb_move(src_resgroup, albname, dst_resgroup, vms_pattern)

The high level steps is:

  • Collect all vms that are currently on the alb
  • Add all vms from $dst_resgroup that matches the given $vms_pattern
  • Remove old vms from alb
  • If $src_resgroup != $dst_resgroup, move alb from src to dst, otherwise do nothing

This way it seems like a good building block for blue/green updates (nothing will be actually removed).

Performing a transition:

azure_alb_move("sourcegroup", "myalb", "destinygroup", "newvms*")

Ooops something went wrong, going back:

azure_alb_move("destinygroup", "myalb", "sourcegroup", "oldvms*")

When using the same resource group it is important to be able to differentiate between different clusters of VMs using a pattern (disambiguation)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.