# Shared Model Config QA # ## Common steps ## $ juju add-cloud awstest ~/Sync/juju/2.0/dev-clouds.yaml $ juju bootstrap awstest reed/aws/us-west-1 ## Testing modelconfig ## Test that we get defaults from our configuration. Here we get the controller level setting at the model level for no-proxy since this is our default model. We get xenial as our default series as set in the controller config and development is set to false which comes from the provider default config. $ juju model-config # output elided except some bits to show expected values Attribute From Value ... default-series controller xenial development default false enable-os-upgrade controller false ... no-proxy model https://local ... Let's add a model in us-east-1 to make sure it correctly inherits. $ juju add-model east1 us-east-1 $ juju model-config Attribute From Value ... default-series controller xenial development default false enable-os-upgrade controller false ... no-proxy region https://foo-east ... Then we set some values and verify they are set and that the source of the settings are correctly updated. $ juju model-config no-proxy=not-east development=true default-series=trusty $ juju model-config Attribute From Value ... default-series model trusty development model true enable-os-upgrade controller false firewall-mode default instance ... no-proxy model not-east ... Now if we create a model in us-west-1 and ensure it has it's own settings. $ juju add-model west1 us-west-1 $ juju model-config Attribute From Value ... default-series controller xenial development default false ... no-proxy region https://foo-west ... Switching back to the east we can reset settings, and then verify we get our original defaults back. Fo good measure we also set another setting here to ensure that we can set and reset at the same time... $ juju switch east1 $ juju model-config --reset development,default-series,no-proxy \ apt-ftp-proxy=some-proxy $ juju model-config Attribute From Value ... apt-ftp-proxy model some-proxy ... default-series controller xenial development default false no-proxy region https://foo-east ... ## Model Defaults Testing ## Let's kill the models and start over for model-defaults $ juju destroy-model east1 -y $ juju destroy-model west1 -y Let's make sure the defaults have loaded correctly when we created our controller. $ juju model-defaults Attribute Default Controller ... default-series xenial xenial ... enable-os-upgrade true false ... ftp-proxy "" - image-stream released - ... no-proxy "" https://local us-east-1 https://foo-east - us-west-1 https://foo-west - ... Set another value in east and ask for it. $ juju model-defaults us-east-1 ftp-proxy=ftp://east $ juju model-defaults ftp-proxy Attribute Default Controller ftp-proxy "" - us-east-1 ftp://east - Just ask for no-proxy which has settings in multiple regions. $ juju model-defaults no-proxy Attribute Default Controller no-proxy "" https://local us-east-1 https://foo-east - us-west-1 https://foo-west - Ask for only settings specific to us-east-1. $ juju juju model-defaults us-east-1 Attribute Default Controller ftp-proxy "" - us-east-1 ftp://east - no-proxy "" https://local us-east-1 https://foo-east - Ask only for no-proxy in us-east-1. $ juju model-defaults us-east-1 no-proxy Attribute Default Controller no-proxy "" https://local us-east-1 https://foo-east - Let's change some defaults and make sure they work. $ juju model-defaults enable-os-upgrade=true default-series=trusty $ juju model-defaults Attribute Default Controller ... default-series xenial trusty ... disable-network-management false - ... enable-os-upgrade true true ... Let's change some region settings and reset ftp-proxy. $ juju model-defaults --reset ftp-proxy us-east-1 default-series=xenial enable-os-upgrade=false $ juju model-defaults default-series Attribute Default Controller default-series xenial trusty us-east-1 xenial - $ juju model-defaults enable-os-upgrade Attribute Default Controller enable-os-upgrade true true us-east-1 false - We should get an error if we ask for a non existent setting. $ juju model-defaults us-east-1 ftp-proxy ERROR there are no default model values for "ftp-proxy" in region "us-east-1" Let add-models and make sure they inherit. West 1: $ juju add-model west1 us-west-1 $ juju model-config Attribute From Value ... default-series controller trusty ... enable-os-upgrade default true ... no-proxy region https://foo-west ... East 1 $ juju add-model east1 us-east-1 $ juju model-config Attribute From Value ... default-series region xenial ... enable-os-upgrade model false ... no-proxy region https://foo-east West 2: $ juju add-model west2 us-west-2 $ juju model-config Attribute From Value ... default-series controller trusty ... enable-os-upgrade default true ... no-proxy controller https://local Let's kill those models: $ juju switch default for c in east1 west1 west2;do juju destroy-model -y $c;done Reset some settings we set earlier. $ juju model-defaults --reset default-series,enable-os-upgrade,no-proxy Attribute Default Controller ... default-series xenial - us-east-1 xenial - ... enable-os-upgrade true - us-east-1 false - ... no-proxy "" - us-east-1 https://foo-east - us-west-1 https://foo-west - ... Now reset no-proxy in us-west-1 and test asking for all region settings. $ juju model-defaults --reset no-proxy us-west-1 $ juju model-defaults awstest/us-west-1 ERROR there are no default model values in region "us-west-1" $ juju model-defaults awstest/us-east-1 Attribute Default Controller default-series xenial - us-east-1 xenial - enable-os-upgrade true - us-east-1 false - no-proxy "" - us-east-1 https://foo-east - And remove the remote machines... $ juju kill-controller reed/aws/us-west-1 -y