Migrating to Python v3
- support for Python v3.8.x
- support for Python v3.5.x
- new tag, 2019.2.8
- updates class generation and iterators
- unittests updated with coverage >75%
- new coverage routines
- unittests profiling
- full fake data for unittests
- unittest testrun is ~1.5 seconds long
Bugfixes
- 34834, proper use of 'sudo' option
- multiple proper iterator use
- 37919, show warning when installed and candidate versions
are newer comparing to release version
Change-Id: Idd6b889f7ce94ae0c832e2f0a0346e4fdc3264a3
Related-PROD: PROD-34834 PROD-34664 PROD-34919
diff --git a/tests/res/models/model01/classes/cluster/model01/cicd/empty.yml b/tests/res/models/model01/classes/cluster/model01/cicd/empty.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/res/models/model01/classes/cluster/model01/cicd/empty.yml
diff --git a/tests/res/models/model01/classes/cluster/model01/non_yml.yaml b/tests/res/models/model01/classes/cluster/model01/non_yml.yaml
new file mode 100644
index 0000000..7c7ffbc
--- /dev/null
+++ b/tests/res/models/model01/classes/cluster/model01/non_yml.yaml
@@ -0,0 +1,2 @@
+# Some non yml file
+echo 1
diff --git a/tests/res/models/model01/classes/cluster/model01/openstack/init.yml b/tests/res/models/model01/classes/cluster/model01/openstack/init.yml
new file mode 100644
index 0000000..5db4df3
--- /dev/null
+++ b/tests/res/models/model01/classes/cluster/model01/openstack/init.yml
@@ -0,0 +1,225 @@
+classes:
+ - system.linux.system.repo.mcp.apt_mirantis.openstack
+ - system.linux.system.repo.mcp.apt_mirantis.update.openstack
+ - system.linux.system.repo.mcp.apt_mirantis.ceph
+ - system.linux.system.repo.mcp.apt_mirantis.update.ceph
+ - cluster.model01.kernel
+parameters:
+ _param:
+ openstack_region: RegionOne
+ admin_email: root@localhost
+ ##Neutron osv/nodvr + dpdk
+ neutron_global_physnet_mtu: 1500
+ neutron_external_mtu: 1500
+
+ neutron_enable_qos: False
+ neutron_enable_vlan_aware_vms: False
+ neutron_enable_bgp_vpn: False
+ neutron_bgp_vpn_driver: bagpipe
+ neutron_compute_external_access: False
+ neutron_control_dvr: False
+ neutron_gateway_dvr: False
+ neutron_compute_dvr: False
+
+ neutron_gateway_agent_mode: legacy
+ neutron_compute_agent_mode: legacy
+
+ neutron_l3_ha: True
+ neutron_tenant_network_types: "flat,vlan,vxlan"
+
+ cluster_internal_protocol: http
+
+ galera_server_cluster_name: openstack_cluster
+ galera_server_maintenance_password: ${_param:galera_server_maintenance_password_generated}
+ galera_server_admin_password: ${_param:galera_server_admin_password_generated}
+ galera_server_sst_password: ${_param:galera_server_sst_password_generated}
+ rabbitmq_secret_key: ${_param:rabbitmq_secret_key_generated}
+ rabbitmq_admin_password: ${_param:rabbitmq_admin_password_generated}
+ rabbitmq_openstack_password: ${_param:rabbitmq_openstack_password_generated}
+ glance_service_host: ${_param:openstack_service_host}
+ keystone_service_host: ${_param:openstack_service_host}
+ heat_service_host: ${_param:openstack_service_host}
+ heat_domain_admin_password: ${_param:heat_domain_admin_password_generated}
+ cinder_service_host: ${_param:openstack_service_host}
+ aodh_service_host: ${_param:openstack_service_host}
+ ceilometer_service_host: ${_param:openstack_service_host}
+ ceilometer_influxdb_password: ${_param:ceilometer_influxdb_password_generated}
+ nova_service_host: ${_param:openstack_service_host}
+ placement_service_host: ${_param:openstack_service_host}
+ neutron_service_host: ${_param:openstack_service_host}
+ glusterfs_service_host: ${_param:infra_kvm_address}
+
+ mysql_admin_user: root
+ mysql_admin_password: ${_param:galera_server_admin_password}
+ mysql_aodh_username: username
+ mysql_cinder_username: username
+ mysql_ceilometer_username: username
+ mysql_gnocchi_username: username
+ mysql_panko_username: username
+ mysql_glance_username: username
+ mysql_heat_username: username
+ mysql_keystone_username: username
+ mysql_neutron_username: username
+ mysql_nova_username: username
+ keystone_service_token: ${_param:keystone_service_token_generated}
+ keystone_ceilometer_username: username
+ keystone_panko_username: username
+ keystone_gnocchi_username: username
+ keystone_cinder_username: username
+ keystone_glance_username: username
+ keystone_heat_username: username
+ keystone_neutron_username: username
+ keystone_nova_username: username
+ keystone_aodh_username: username
+ ceilometer_secret_key: ${_param:ceilometer_secret_key_generated}
+ horizon_secret_key: ${_param:horizon_secret_key_generated}
+ horizon_identity_host: ${_param:openstack_control_address}
+ horizon_identity_encryption: none
+ keystone_service_protocol: ${_param:cluster_internal_protocol}
+ glance_service_protocol: ${_param:cluster_internal_protocol}
+ nova_service_protocol: ${_param:cluster_internal_protocol}
+ neutron_service_protocol: ${_param:cluster_internal_protocol}
+ heat_service_protocol: ${_param:cluster_internal_protocol}
+ cinder_service_protocol: ${_param:cluster_internal_protocol}
+ mongodb_server_replica_set: ceilometer
+ mongodb_ceilometer_password: ${_param:mongodb_ceilometer_password_generated}
+ mongodb_admin_password: ${_param:mongodb_admin_password_generated}
+ mongodb_shared_key: ${_param:mongodb_shared_key_generated}
+ metadata_password: ${_param:openstack_metadata_password_generated}
+ salt_pki_proxy_alt_names: DNS:${_param:cluster_public_host},IP:${_param:openstack_proxy_address},DNS:horizon.${_param:cluster_domain}
+ stacklight_notification_topic: stacklight_notifications
+ openstack_notification_topics: ${_param:stacklight_notification_topic}
+
+ # OpenStack Compute
+ openstack_compute_rack01_hostname: mhv
+
+ # openstack service hostnames
+ openstack_proxy_hostname: prx
+ openstack_proxy_node01_hostname: prx01
+ openstack_proxy_node02_hostname: prx02
+ openstack_control_hostname: ctl
+ openstack_control_node01_hostname: ctl01
+ openstack_control_node02_hostname: ctl02
+ openstack_control_node03_hostname: ctl03
+ openstack_database_hostname: dbs
+ openstack_database_node01_hostname: dbs01
+ openstack_database_node02_hostname: dbs02
+ openstack_database_node03_hostname: dbs03
+ openstack_message_queue_hostname: msg
+ openstack_message_queue_node01_hostname: msg01
+ openstack_message_queue_node02_hostname: msg02
+ openstack_message_queue_node03_hostname: msg03
+ openstack_gateway_node01_hostname: gtw01
+ openstack_gateway_node02_hostname: gtw02
+ openstack_gateway_node03_hostname: gtw03
+
+ nginx_proxy_gerrit_server_site_host: ${_param:cluster_public_host}
+ nginx_proxy_gerrit_server_site_port: 8070
+ openstack_log_appender: true
+ openstack_fluentd_handler_enabled: true
+ # Unversioned endpoint for pike, queens
+ keystone_public_path: "/"
+ keystone_internal_path: "/"
+ keystone_admin_path: "/"
+
+ # Memcache security
+ openstack_heat_cloudwatch_api_enabled: False
+
+ # Barbican
+ barbican_integration_enabled: False
+ barbican_enabled: False
+ linux:
+ network:
+ host:
+ prx:
+ address: ${_param:openstack_proxy_address}
+ names:
+ - admin
+ - ${_param:openstack_admin_url}
+ - ${_param:openstack_proxy_hostname}
+ - ${_param:openstack_proxy_hostname}.${_param:cluster_domain}
+ prx01:
+ address: ${_param:openstack_proxy_node01_address}
+ names:
+ - ${_param:openstack_proxy_node01_hostname}
+ - ${_param:openstack_proxy_node01_hostname}.${_param:cluster_domain}
+ prx02:
+ address: ${_param:openstack_proxy_node02_address}
+ names:
+ - ${_param:openstack_proxy_node02_hostname}
+ - ${_param:openstack_proxy_node02_hostname}.${_param:cluster_domain}
+ ctl:
+ address: ${_param:openstack_control_address}
+ names:
+ - ${_param:openstack_control_hostname}
+ - ${_param:openstack_control_hostname}.${_param:cluster_domain}
+ ctl01:
+ address: ${_param:openstack_control_node01_address}
+ names:
+ - ${_param:openstack_control_node01_hostname}
+ - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
+ ctl02:
+ address: ${_param:openstack_control_node02_address}
+ names:
+ - ${_param:openstack_control_node02_hostname}
+ - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
+ ctl03:
+ address: ${_param:openstack_control_node03_address}
+ names:
+ - ${_param:openstack_control_node03_hostname}
+ - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
+ msg:
+ address: ${_param:openstack_message_queue_address}
+ names:
+ - ${_param:openstack_message_queue_hostname}
+ - ${_param:openstack_message_queue_hostname}.${_param:cluster_domain}
+ msg01:
+ address: ${_param:openstack_message_queue_node01_address}
+ names:
+ - ${_param:openstack_message_queue_node01_hostname}
+ - ${_param:openstack_message_queue_node01_hostname}.${_param:cluster_domain}
+ msg02:
+ address: ${_param:openstack_message_queue_node02_address}
+ names:
+ - ${_param:openstack_message_queue_node02_hostname}
+ - ${_param:openstack_message_queue_node02_hostname}.${_param:cluster_domain}
+ msg03:
+ address: ${_param:openstack_message_queue_node03_address}
+ names:
+ - ${_param:openstack_message_queue_node03_hostname}
+ - ${_param:openstack_message_queue_node03_hostname}.${_param:cluster_domain}
+ dbs:
+ address: ${_param:openstack_database_address}
+ names:
+ - ${_param:openstack_database_hostname}
+ - ${_param:openstack_database_hostname}.${_param:cluster_domain}
+ dbs01:
+ address: ${_param:openstack_database_node01_address}
+ names:
+ - ${_param:openstack_database_node01_hostname}
+ - ${_param:openstack_database_node01_hostname}.${_param:cluster_domain}
+ dbs02:
+ address: ${_param:openstack_database_node02_address}
+ names:
+ - ${_param:openstack_database_node02_hostname}
+ - ${_param:openstack_database_node02_hostname}.${_param:cluster_domain}
+ dbs03:
+ address: ${_param:openstack_database_node03_address}
+ names:
+ - ${_param:openstack_database_node03_hostname}
+ - ${_param:openstack_database_node03_hostname}.${_param:cluster_domain}
+ gtw01:
+ address: ${_param:openstack_gateway_node01_address}
+ names:
+ - ${_param:openstack_gateway_node01_hostname}
+ - ${_param:openstack_gateway_node01_hostname}.${_param:cluster_domain}
+ gtw02:
+ address: ${_param:openstack_gateway_node02_address}
+ names:
+ - ${_param:openstack_gateway_node02_hostname}
+ - ${_param:openstack_gateway_node02_hostname}.${_param:cluster_domain}
+ gtw03:
+ address: ${_param:openstack_gateway_node03_address}
+ names:
+ - ${_param:openstack_gateway_node03_hostname}
+ - ${_param:openstack_gateway_node03_hostname}.${_param:cluster_domain}
diff --git a/tests/res/models/model01/classes/system/empty.yml b/tests/res/models/model01/classes/system/empty.yml
new file mode 100644
index 0000000..ed97d53
--- /dev/null
+++ b/tests/res/models/model01/classes/system/empty.yml
@@ -0,0 +1 @@
+---
diff --git a/tests/res/models/model01/nodes/cfg01.az2.n9.jungle.tech.yml b/tests/res/models/model01/nodes/cfg01.az2.n9.jungle.tech.yml
new file mode 100644
index 0000000..4dfc666
--- /dev/null
+++ b/tests/res/models/model01/nodes/cfg01.az2.n9.jungle.tech.yml
@@ -0,0 +1,11 @@
+classes:
+- cluster.sm_sjc.infra.config
+parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision: master
+ linux:
+ system:
+ name: cfg01
+ domain: az2.n9.jungle.tech
+
\ No newline at end of file
diff --git a/tests/res/models/model02/classes/cluster/model02/cicd/empty.yml b/tests/res/models/model02/classes/cluster/model02/cicd/empty.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/res/models/model02/classes/cluster/model02/cicd/empty.yml
diff --git a/tests/res/models/model02/classes/cluster/model02/cicd/nonyml.txt b/tests/res/models/model02/classes/cluster/model02/cicd/nonyml.txt
new file mode 100644
index 0000000..605904d
--- /dev/null
+++ b/tests/res/models/model02/classes/cluster/model02/cicd/nonyml.txt
@@ -0,0 +1,2 @@
+# Some non yml file
+{ "a": 1 }
\ No newline at end of file
diff --git a/tests/res/models/model02/classes/cluster/model02/openstack/init.yml b/tests/res/models/model02/classes/cluster/model02/openstack/init.yml
new file mode 100644
index 0000000..5081da8
--- /dev/null
+++ b/tests/res/models/model02/classes/cluster/model02/openstack/init.yml
@@ -0,0 +1,224 @@
+classes:
+ - system.linux.system.repo.mcp.apt_mirantis.openstack
+ - system.linux.system.repo.mcp.apt_mirantis.update.openstack
+ - system.linux.system.repo.mcp.apt_mirantis.ceph
+ - system.linux.system.repo.mcp.apt_mirantis.update.ceph
+ - cluster.model02.kernel
+parameters:
+ _param:
+ openstack_region: RegionOne
+ admin_email: root@localhost
+ neutron_global_physnet_mtu: 1500
+ neutron_external_mtu: 1500
+
+ neutron_enable_qos: False
+ neutron_enable_vlan_aware_vms: False
+ neutron_enable_bgp_vpn: False
+ neutron_bgp_vpn_driver: bagpipe
+ neutron_compute_external_access: False
+ neutron_control_dvr: False
+ neutron_gateway_dvr: False
+ neutron_compute_dvr: False
+
+ neutron_gateway_agent_mode: legacy
+ neutron_compute_agent_mode: legacy
+
+ neutron_l3_ha: True
+ neutron_tenant_network_types: "flat,vlan,vxlan"
+
+ cluster_internal_protocol: http
+
+ galera_server_cluster_name: openstack_cluster
+ galera_server_maintenance_password: ${_param:galera_server_maintenance_password_generated}
+ galera_server_admin_password: ${_param:galera_server_admin_password_generated}
+ galera_server_sst_password: ${_param:galera_server_sst_password_generated}
+ rabbitmq_secret_key: ${_param:rabbitmq_secret_key_generated}
+ rabbitmq_admin_password: ${_param:rabbitmq_admin_password_generated}
+ rabbitmq_openstack_password: ${_param:rabbitmq_openstack_password_generated}
+ glance_service_host: ${_param:openstack_service_host}
+ keystone_service_host: ${_param:openstack_service_host}
+ heat_service_host: ${_param:openstack_service_host}
+ heat_domain_admin_password: ${_param:heat_domain_admin_password_generated}
+ cinder_service_host: ${_param:openstack_service_host}
+ aodh_service_host: ${_param:openstack_service_host}
+ ceilometer_service_host: ${_param:openstack_service_host}
+ ceilometer_influxdb_password: ${_param:ceilometer_influxdb_password_generated}
+ nova_service_host: ${_param:openstack_service_host}
+ placement_service_host: ${_param:openstack_service_host}
+ neutron_service_host: ${_param:openstack_service_host}
+ glusterfs_service_host: ${_param:infra_kvm_address}
+
+ mysql_admin_user: root
+ mysql_admin_password: ${_param:galera_server_admin_password}
+ mysql_aodh_username: username
+ mysql_cinder_username: username
+ mysql_ceilometer_username: username
+ mysql_gnocchi_username: username
+ mysql_panko_username: username
+ mysql_glance_username: other_user
+ mysql_heat_username: username
+ mysql_keystone_username: username
+ mysql_neutron_username: username
+ mysql_nova_username: username
+ keystone_service_token: ${_param:keystone_service_token_generated}
+ keystone_ceilometer_username: username
+ keystone_panko_username: username
+ keystone_gnocchi_username: username
+ keystone_cinder_username: username
+ keystone_glance_username: username
+ keystone_heat_username: username
+ keystone_neutron_username: username
+ keystone_nova_username: username
+ keystone_aodh_username: username
+ ceilometer_secret_key: ${_param:ceilometer_secret_key_generated}
+ horizon_secret_key: ${_param:horizon_secret_key_generated}
+ horizon_identity_host: ${_param:openstack_control_address}
+ horizon_identity_encryption: none
+ keystone_service_protocol: ${_param:cluster_internal_protocol}
+ glance_service_protocol: ${_param:cluster_internal_protocol}
+ nova_service_protocol: ${_param:cluster_internal_protocol}
+ neutron_service_protocol: ${_param:cluster_internal_protocol}
+ heat_service_protocol: ${_param:cluster_internal_protocol}
+ cinder_service_protocol: ${_param:cluster_internal_protocol}
+ mongodb_server_replica_set: ceilometer
+ mongodb_ceilometer_password: ${_param:mongodb_ceilometer_password_generated}
+ mongodb_admin_password: ${_param:mongodb_admin_password_generated}
+ mongodb_shared_key: ${_param:mongodb_shared_key_generated}
+ metadata_password: ${_param:openstack_metadata_password_generated}
+ salt_pki_proxy_alt_names: DNS:${_param:cluster_public_host},IP:${_param:openstack_proxy_address},DNS:horizon.${_param:cluster_domain}
+ stacklight_notification_topic: stacklight_notifications
+ openstack_notification_topics: ${_param:stacklight_notification_topic}
+
+ # OpenStack Compute
+ openstack_compute_rack01_hostname: mhv
+
+ # openstack service hostnames
+ openstack_proxy_hostname: prx
+ openstack_proxy_node01_hostname: prx01
+ openstack_proxy_node02_hostname: prx02
+ openstack_control_hostname: ctl
+ openstack_control_node01_hostname: ctl01
+ openstack_control_node02_hostname: ctl02
+ openstack_control_node03_hostname: ctl03
+ openstack_database_hostname: dbs
+ openstack_database_node01_hostname: dbs01
+ openstack_database_node02_hostname: dbs02
+ openstack_database_node03_hostname: dbs03
+ openstack_message_queue_hostname: msg
+ openstack_message_queue_node01_hostname: msg01
+ openstack_message_queue_node02_hostname: msg02
+ openstack_message_queue_node03_hostname: msg03
+ openstack_gateway_node01_hostname: gtw01
+ openstack_gateway_node02_hostname: gtw02
+ openstack_gateway_node03_hostname: gtw03
+
+ nginx_proxy_gerrit_server_site_host: ${_param:cluster_public_host}
+ nginx_proxy_gerrit_server_site_port: 8070
+ openstack_log_appender: true
+ openstack_fluentd_handler_enabled: true
+ # Unversioned endpoint for pike, queens
+ keystone_public_path: "/"
+ keystone_internal_path: "/"
+ keystone_admin_path: "/"
+
+ # Memcache security
+ openstack_heat_cloudwatch_api_enabled: False
+
+ # Barbican
+ barbican_integration_enabled: False
+ barbican_enabled: False
+ linux:
+ network:
+ host:
+ prx:
+ address: ${_param:openstack_proxy_address}
+ names:
+ - admin
+ - ${_param:openstack_admin_url}
+ - ${_param:openstack_proxy_hostname}
+ - ${_param:openstack_proxy_hostname}.${_param:cluster_domain}
+ prx01:
+ address: ${_param:openstack_proxy_node01_address}
+ names:
+ - ${_param:openstack_proxy_node01_hostname}
+ - ${_param:openstack_proxy_node01_hostname}.${_param:cluster_domain}
+ prx02:
+ address: ${_param:openstack_proxy_node02_address}
+ names:
+ - ${_param:openstack_proxy_node02_hostname}
+ - ${_param:openstack_proxy_node02_hostname}.${_param:cluster_domain}
+ ctl:
+ address: ${_param:openstack_control_address}
+ names:
+ - ${_param:openstack_control_hostname}
+ - ${_param:openstack_control_hostname}.${_param:cluster_domain}
+ ctl01:
+ address: ${_param:openstack_control_node01_address}
+ names:
+ - ${_param:openstack_control_node01_hostname}
+ - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
+ ctl02:
+ address: ${_param:openstack_control_node02_address}
+ names:
+ - ${_param:openstack_control_node02_hostname}
+ - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
+ ctl03:
+ address: ${_param:openstack_control_node03_address}
+ names:
+ - ${_param:openstack_control_node03_hostname}
+ - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
+ msg:
+ address: ${_param:openstack_message_queue_address}
+ names:
+ - ${_param:openstack_message_queue_hostname}
+ - ${_param:openstack_message_queue_hostname}.${_param:cluster_domain}
+ msg01:
+ address: ${_param:openstack_message_queue_node01_address}
+ names:
+ - ${_param:openstack_message_queue_node01_hostname}
+ - ${_param:openstack_message_queue_node01_hostname}.${_param:cluster_domain}
+ msg02:
+ address: ${_param:openstack_message_queue_node02_address}
+ names:
+ - ${_param:openstack_message_queue_node02_hostname}
+ - ${_param:openstack_message_queue_node02_hostname}.${_param:cluster_domain}
+ msg03:
+ address: ${_param:openstack_message_queue_node03_address}
+ names:
+ - ${_param:openstack_message_queue_node03_hostname}
+ - ${_param:openstack_message_queue_node03_hostname}.${_param:cluster_domain}
+ dbs:
+ address: ${_param:openstack_database_address}
+ names:
+ - ${_param:openstack_database_hostname}
+ - ${_param:openstack_database_hostname}.${_param:cluster_domain}
+ dbs01:
+ address: ${_param:openstack_database_node01_address}
+ names:
+ - ${_param:openstack_database_node01_hostname}
+ - ${_param:openstack_database_node01_hostname}.${_param:cluster_domain}
+ dbs02:
+ address: ${_param:openstack_database_node02_address}
+ names:
+ - ${_param:openstack_database_node02_hostname}
+ - ${_param:openstack_database_node02_hostname}.${_param:cluster_domain}
+ dbs03:
+ address: ${_param:openstack_database_node03_address}
+ names:
+ - ${_param:openstack_database_node03_hostname}
+ - ${_param:openstack_database_node03_hostname}.${_param:cluster_domain}
+ gtw01:
+ address: ${_param:openstack_gateway_node01_address}
+ names:
+ - ${_param:openstack_gateway_node01_hostname}
+ - ${_param:openstack_gateway_node01_hostname}.${_param:cluster_domain}
+ gtw02:
+ address: ${_param:openstack_gateway_node02_address}
+ names:
+ - ${_param:openstack_gateway_node02_hostname}
+ - ${_param:openstack_gateway_node02_hostname}.${_param:cluster_domain}
+ gtw03:
+ address: ${_param:openstack_gateway_node03_address}
+ names:
+ - ${_param:openstack_gateway_node03_hostname}
+ - ${_param:openstack_gateway_node03_hostname}.${_param:cluster_domain}
diff --git a/tests/res/models/model02/classes/system/empty.yml b/tests/res/models/model02/classes/system/empty.yml
new file mode 100644
index 0000000..ed97d53
--- /dev/null
+++ b/tests/res/models/model02/classes/system/empty.yml
@@ -0,0 +1 @@
+---
diff --git a/tests/res/models/model02/nodes/cfg01.az2.n9.jungle.tech.yml b/tests/res/models/model02/nodes/cfg01.az2.n9.jungle.tech.yml
new file mode 100644
index 0000000..4dfc666
--- /dev/null
+++ b/tests/res/models/model02/nodes/cfg01.az2.n9.jungle.tech.yml
@@ -0,0 +1,11 @@
+classes:
+- cluster.sm_sjc.infra.config
+parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision: master
+ linux:
+ system:
+ name: cfg01
+ domain: az2.n9.jungle.tech
+
\ No newline at end of file