github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/agent/format-1.18_whitebox_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Copyright 2014 Cloudbase Solutions SRL
     3  // Licensed under the AGPLv3, see LICENCE file for details.
     4  
     5  // The format tests are white box tests, meaning that the tests are in the
     6  // same package as the code, as all the format details are internal to the
     7  // package.
     8  
     9  package agent
    10  
    11  import (
    12  	"path/filepath"
    13  
    14  	jc "github.com/juju/testing/checkers"
    15  	"github.com/juju/utils"
    16  	"github.com/juju/version"
    17  	gc "gopkg.in/check.v1"
    18  
    19  	"github.com/juju/juju/state/multiwatcher"
    20  	"github.com/juju/juju/testing"
    21  )
    22  
    23  type format_1_18Suite struct {
    24  	testing.BaseSuite
    25  }
    26  
    27  var _ = gc.Suite(&format_1_18Suite{})
    28  
    29  func (s *format_1_18Suite) TestStatePortNotParsedWithoutSecret(c *gc.C) {
    30  	dataDir := c.MkDir()
    31  	configPath := filepath.Join(dataDir, agentConfigFilename)
    32  	err := utils.AtomicWriteFile(configPath, []byte(agentConfig1_18NotStateMachine), 0600)
    33  	c.Assert(err, jc.ErrorIsNil)
    34  	readConfig, err := ReadConfig(configPath)
    35  	c.Assert(err, jc.ErrorIsNil)
    36  	_, available := readConfig.StateServingInfo()
    37  	c.Assert(available, jc.IsFalse)
    38  }
    39  
    40  func (*format_1_18Suite) TestReadConfWithExisting1_18ConfigFileContents(c *gc.C) {
    41  	dataDir := c.MkDir()
    42  	configPath := filepath.Join(dataDir, agentConfigFilename)
    43  	err := utils.AtomicWriteFile(configPath, []byte(agentConfig1_18Contents), 0600)
    44  	c.Assert(err, jc.ErrorIsNil)
    45  
    46  	config, err := ReadConfig(configPath)
    47  	c.Assert(err, jc.ErrorIsNil)
    48  	c.Assert(config.UpgradedToVersion(), jc.DeepEquals, version.MustParse("1.17.5.1"))
    49  	c.Assert(config.Jobs(), jc.DeepEquals, []multiwatcher.MachineJob{multiwatcher.JobManageModel})
    50  	c.Assert(config.PreferIPv6(), jc.IsTrue)
    51  }
    52  
    53  var agentConfig1_18Contents = `
    54  # format 1.18
    55  tag: machine-0
    56  datadir: /home/user/.local/share/juju/local
    57  logdir: /var/log/juju-user-local
    58  nonce: user-admin:bootstrap
    59  jobs:
    60  - JobManageModel
    61  upgradedToVersion: 1.17.5.1
    62  cacert: '-----BEGIN CERTIFICATE-----
    63  
    64    MIICWzCCAcagAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy
    65  
    66    MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh
    67  
    68    bCIwHhcNMTQwMzA1MTQxOTA3WhcNMjQwMzA1MTQyNDA3WjBDMQ0wCwYDVQQKEwRq
    69  
    70    dWp1MTIwMAYDVQQDDClqdWp1LWdlbmVyYXRlZCBDQSBmb3IgZW52aXJvbm1lbnQg
    71  
    72    ImxvY2FsIjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHsKV7fKfmSQt2QL
    73  
    74    P4+hrqQJhDTMifgNkIY9nTlLHegV5jl5XJ8lRYjZBXJEMz0AzW/RbrDElkn5+4Do
    75  
    76    pIWPNDAT0eztXBvVwL6qQOUtiBsA7vHQJMQaLVAmZNKvrHyuhcoG+hpf8EMaLdbA
    77  
    78    iCGKifs+Y0MFt5AeriVDH5lGlzcCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgCkMA8G
    79  
    80    A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB3Td3SP66UToZkOjVh3Wy8b6HR6MB8G
    81  
    82    A1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqGSIb3DQEBBQOBgQB4
    83  
    84    izvSRSpimi40aEOnZIsSMHVBiSCclpBg5cq7lGyiUSsDROTIbsRAKPBmrflB/qbf
    85  
    86    J70rWFwh/d/5ssCAYrZviFL6WvpuLD3j3m4PYampNMmvJf2s6zVRIMotEY+bVwfU
    87  
    88    z4jGaVpODac0i0bE0/Uh9qXK1UXcYY57vNNAgkaYAQ==
    89  
    90    -----END CERTIFICATE-----
    91  
    92  '
    93  stateaddresses:
    94  - localhost:37017
    95  statepassword: NB5imrDaWCCRW/4akSSvUxhX
    96  apiaddresses:
    97  - localhost:17070
    98  apipassword: NB5imrDaWCCRW/4akSSvUxhX
    99  oldpassword: oBlMbFUGvCb2PMFgYVzjS6GD
   100  values:
   101    AGENT_SERVICE_NAME: juju-agent-user-local
   102    CONTAINER_TYPE: ""
   103    NAMESPACE: user-local
   104    PROVIDER_TYPE: local
   105    STORAGE_ADDR: 10.0.3.1:8040
   106    STORAGE_DIR: /home/user/.local/share/juju/local/storage
   107  controllercert: '-----BEGIN CERTIFICATE-----
   108  
   109    MIICNzCCAaKgAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy
   110  
   111    MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh
   112  
   113    bCIwHhcNMTQwMzA1MTQxOTE1WhcNMjQwMzA1MTQyNDE1WjAbMQ0wCwYDVQQKEwRq
   114  
   115    dWp1MQowCAYDVQQDEwEqMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJnbuN
   116  
   117    L3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzoD1jbXveclolg2xoUquga
   118  
   119    qxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAdReKJkOvTL4nTjpzgfeHR
   120  
   121    hRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQABo2cwZTAOBgNVHQ8BAf8E
   122  
   123    BAMCAKgwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFE1MB3d+5BW+n066
   124  
   125    lWcVkhta1etlMB8GA1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqG
   126  
   127    SIb3DQEBBQOBgQBnsBvl3hfIQbHhAlqritDBCWGpaXywlHe4PvyVL3LZTLiAZ9a/
   128  
   129    BOSBfovs81sjUe5l60j+1vgRQgvT2Pnw6WGWmYWhSyxW7upEUl1LuZxnw3AVGVFO
   130  
   131    r140iBNUtTfGUf3PmyBXHSotqgMime+rNSjl25qSoYwnuQXdFdCKJoutYg==
   132  
   133    -----END CERTIFICATE-----
   134  
   135  '
   136  controllerkey: '-----BEGIN RSA PRIVATE KEY-----
   137  
   138    MIICXAIBAAKBgQDJnbuNL3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzo
   139  
   140    D1jbXveclolg2xoUqugaqxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAd
   141  
   142    ReKJkOvTL4nTjpzgfeHRhRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQAB
   143  
   144    AoGASEtzETFQ6tI3q3dqu6vxjhLJw0BP381wO2sOZJcTl+fqdPHOOrgmGKN5DoE8
   145  
   146    SarHM1oFWGq6h/nc0eUdenk4+CokpbKRgUU9hB1TKGYMbN3bUTKPOqTMHbnrhWdT
   147  
   148    P/fqa+nXhvg7igMT3Rk7l9DsSxoYB5xZmiLaXqynVE5MNoECQQDRsgDDUrUOeMH6
   149  
   150    1+GO+afb8beRzR8mnaBvja6XLlZB6SUcGet9bMgAiGH3arH6ARfNNsWrDAmvArah
   151  
   152    SKeqRB5TAkEA9iMEQDkcybCmxu4Y3YLeQuT9r3h26QhQjc+eRINS/3ZLN+lxKnXG
   153  
   154    N019ZUlsyL97lJBDzTMPsBqfXJ2pbqXwcQJBAJNLuPN63kl7E68zA3Ld9UYvBWY6
   155  
   156    Mp56bJ7PZAs39kk4DuQtZNhmmBqfskkMPlZBfEmfJrxeqVKw0j56faPBU5cCQFYU
   157  
   158    mP/8+VxwM2OPEZMmmaS7gR1E/BEznzh5S9iaNQSy0kuTkMhQuCnPJ/OsYiczEH08
   159  
   160    lvnEyc/E/8bcPM09q4ECQCFwMWzw2Jx9VOBGm60yiOKIdLgdDZOY/tP0jigNCMJF
   161  
   162    47/BJx3FCgW3io81a4KOc445LxgiPUJyyCNlY1dW70o=
   163  
   164    -----END RSA PRIVATE KEY-----
   165  
   166  '
   167  caprivatekey: '-----BEGIN RSA PRIVATE KEY-----
   168  
   169    MIICXAIBAAKBgQDJnbuNL3m/oY7Er2lEF6ye1SodepvpI0CLCdLwrYP52cRxbVzo
   170  
   171    D1jbXveclolg2xoUqugaqxsAhvVzzGaoLux1BoBD+G0N637fnY4XSIC9IuSkPOAd
   172  
   173    ReKJkOvTL4nTjpzgfeHRhRin6Xckvp96L4Prmki7sYQ8PG9Q7TBcOf4yowIDAQAB
   174  
   175    AoGASEtzETFQ6tI3q3dqu6vxjhLJw0BP381wO2sOZJcTl+fqdPHOOrgmGKN5DoE8
   176  
   177    SarHM1oFWGq6h/nc0eUdenk4+CokpbKRgUU9hB1TKGYMbN3bUTKPOqTMHbnrhWdT
   178  
   179    P/fqa+nXhvg7igMT3Rk7l9DsSxoYB5xZmiLaXqynVE5MNoECQQDRsgDDUrUOeMH6
   180  
   181    1+GO+afb8beRzR8mnaBvja6XLlZB6SUcGet9bMgAiGH3arH6ARfNNsWrDAmvArah
   182  
   183    SKeqRB5TAkEA9iMEQDkcybCmxu4Y3YLeQuT9r3h26QhQjc+eRINS/3ZLN+lxKnXG
   184  
   185    N019ZUlsyL97lJBDzTMPsBqfXJ2pbqXwcQJBAJNLuPN63kl7E68zA3Ld9UYvBWY6
   186  
   187    Mp56bJ7PZAs39kk4DuQtZNhmmBqfskkMPlZBfEmfJrxeqVKw0j56faPBU5cCQFYU
   188  
   189    mP/8+VxwM2OPEZMmmaS7gR1E/BEznzh5S9iaNQSy0kuTkMhQuCnPJ/OsYiczEH08
   190  
   191    lvnEyc/E/8bcPM09q4ECQCFwMWzw2Jx9VOBGm60yiOKIdLgdDZOY/tP0jigNCMJF
   192  
   193    47/BJx3FCgW3io81a4KOc445LxgiPUJyyCNlY1dW70o=
   194  
   195    -----END RSA PRIVATE KEY-----
   196  
   197  '
   198  apiport: 17070
   199  prefer-ipv6: true
   200  `[1:]
   201  
   202  var agentConfig1_18NotStateMachine = `
   203  # format 1.18
   204  tag: machine-1
   205  datadir: /home/user/.local/share/juju/local
   206  logdir: /var/log/juju-user-local
   207  nonce: user-admin:bootstrap
   208  jobs:
   209  - JobManageModel
   210  upgradedToVersion: 1.17.5.1
   211  cacert: '-----BEGIN CERTIFICATE-----
   212  
   213    MIICWzCCAcagAwIBAgIBADALBgkqhkiG9w0BAQUwQzENMAsGA1UEChMEanVqdTEy
   214  
   215    MDAGA1UEAwwpanVqdS1nZW5lcmF0ZWQgQ0EgZm9yIGVudmlyb25tZW50ICJsb2Nh
   216  
   217    bCIwHhcNMTQwMzA1MTQxOTA3WhcNMjQwMzA1MTQyNDA3WjBDMQ0wCwYDVQQKEwRq
   218  
   219    dWp1MTIwMAYDVQQDDClqdWp1LWdlbmVyYXRlZCBDQSBmb3IgZW52aXJvbm1lbnQg
   220  
   221    ImxvY2FsIjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwHsKV7fKfmSQt2QL
   222  
   223    P4+hrqQJhDTMifgNkIY9nTlLHegV5jl5XJ8lRYjZBXJEMz0AzW/RbrDElkn5+4Do
   224  
   225    pIWPNDAT0eztXBvVwL6qQOUtiBsA7vHQJMQaLVAmZNKvrHyuhcoG+hpf8EMaLdbA
   226  
   227    iCGKifs+Y0MFt5AeriVDH5lGlzcCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgCkMA8G
   228  
   229    A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB3Td3SP66UToZkOjVh3Wy8b6HR6MB8G
   230  
   231    A1UdIwQYMBaAFB3Td3SP66UToZkOjVh3Wy8b6HR6MAsGCSqGSIb3DQEBBQOBgQB4
   232  
   233    izvSRSpimi40aEOnZIsSMHVBiSCclpBg5cq7lGyiUSsDROTIbsRAKPBmrflB/qbf
   234  
   235    J70rWFwh/d/5ssCAYrZviFL6WvpuLD3j3m4PYampNMmvJf2s6zVRIMotEY+bVwfU
   236  
   237    z4jGaVpODac0i0bE0/Uh9qXK1UXcYY57vNNAgkaYAQ==
   238  
   239    -----END CERTIFICATE-----
   240  
   241  '
   242  stateaddresses:
   243  - localhost:37017
   244  statepassword: NB5imrDaWCCRW/4akSSvUxhX
   245  apiaddresses:
   246  - localhost:17070
   247  apipassword: NB5imrDaWCCRW/4akSSvUxhX
   248  oldpassword: oBlMbFUGvCb2PMFgYVzjS6GD
   249  values:
   250    AGENT_SERVICE_NAME: juju-agent-user-local
   251    CONTAINER_TYPE: ""
   252    MONGO_SERVICE_NAME: juju-db-user-local
   253    NAMESPACE: user-local
   254    PROVIDER_TYPE: local
   255    STORAGE_ADDR: 10.0.3.1:8040
   256    STORAGE_DIR: /home/user/.local/share/juju/local/storage
   257  apiport: 17070
   258  prefer-ipv6: true
   259  `[1:]