Merge branch '9865-cwl-fix-ignored-exceptions'
[arvados.git] / lib / cloud / azure / azure_test.go
index cf2ee82eb361badb4ec8e4bd61b34f6052bdb9e9..61649c39800d7ad8e31252313285e0e85fe7b16c 100644 (file)
@@ -5,7 +5,7 @@
 //
 // How to manually run individual tests against the real cloud:
 //
-// $ go test -v git.curoverse.com/arvados.git/lib/cloud/azure -live-azure-cfg azconfig.yml -check.f=TestListInstance
+// $ go test -v git.curoverse.com/arvados.git/lib/cloud/azure -live-azure-cfg azconfig.yml -check.f=TestCreate
 //
 // Tests should be run individually and in the order they are listed in the file:
 //
 //      ClientSecret: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 //      TenantId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 //      ResourceGroup: zzzzz
-//      Network: zzzzz0:10 / 3:26:1
+//      Network: zzzzz
 //      Subnet: zzzzz-subnet-private
 //      StorageAccount: example
 //      BlobContainer: vhds
 //      DeleteDanglingResourcesAfter: 20s
+//      AdminUsername: crunch
 
 package azure
 
@@ -50,7 +51,6 @@ import (
        "github.com/Azure/go-autorest/autorest"
        "github.com/Azure/go-autorest/autorest/azure"
        "github.com/Azure/go-autorest/autorest/to"
-       "github.com/jmcvetta/randutil"
        "github.com/sirupsen/logrus"
        "golang.org/x/crypto/ssh"
        check "gopkg.in/check.v1"
@@ -132,12 +132,6 @@ func GetInstanceSet() (cloud.InstanceSet, cloud.ImageID, arvados.Cluster, error)
                        return nil, cloud.ImageID(""), cluster, err
                }
 
-               var azcfg azureInstanceSetConfig
-               err = json.Unmarshal(exampleCfg.DriverParameters, &azcfg)
-               if err != nil {
-                       println(err.Error())
-               }
-
                ap, err := newAzureInstanceSet(exampleCfg.DriverParameters, "test123", logrus.StandardLogger())
                return ap, cloud.ImageID(exampleCfg.ImageIDForTestSuite), cluster, err
        }
@@ -166,18 +160,16 @@ func (*AzureInstanceSetSuite) TestCreate(c *check.C) {
        pk, _, _, _, err := ssh.ParseAuthorizedKey(testKey)
        c.Assert(err, check.IsNil)
 
-       nodetoken, err := randutil.String(40, "abcdefghijklmnopqrstuvwxyz0123456789")
-       c.Assert(err, check.IsNil)
-
        inst, err := ap.Create(cluster.InstanceTypes["tiny"],
                img, map[string]string{
-                       "node-token": nodetoken},
-               pk)
+                       "TestTagName": "test tag value",
+               }, "umask 0600; echo -n test-file-data >/var/run/test-file", pk)
 
        c.Assert(err, check.IsNil)
 
-       tg := inst.Tags()
-       log.Printf("Result %v %v %v", inst.String(), inst.Address(), tg)
+       tags := inst.Tags()
+       c.Check(tags["TestTagName"], check.Equals, "test tag value")
+       c.Logf("inst.String()=%v Address()=%v Tags()=%v", inst.String(), inst.Address(), tags)
 
 }
 
@@ -312,19 +304,22 @@ func (*AzureInstanceSetSuite) TestSSH(c *check.C) {
        c.Assert(err, check.IsNil)
 
        if len(l) > 0 {
-
                sshclient, err := SetupSSHClient(c, l[0])
                c.Assert(err, check.IsNil)
+               defer sshclient.Conn.Close()
 
                sess, err := sshclient.NewSession()
                c.Assert(err, check.IsNil)
-
-               out, err := sess.Output("cat /home/crunch/node-token")
+               defer sess.Close()
+               _, err = sess.Output("find /var/run/test-file -maxdepth 0 -user root -perm 0600")
                c.Assert(err, check.IsNil)
 
-               log.Printf("%v", string(out))
-
-               sshclient.Conn.Close()
+               sess, err = sshclient.NewSession()
+               c.Assert(err, check.IsNil)
+               defer sess.Close()
+               out, err := sess.Output("sudo cat /var/run/test-file")
+               c.Assert(err, check.IsNil)
+               c.Check(string(out), check.Equals, "test-file-data")
        }
 }