require 'spec_helper' describe "role::custom_windows" do context "using fact set Ubuntu-14.04-64" do node_facts = {"aio_agent_build"=>"1.2.2", "aio_agent_version"=>"1.2.2", "architecture"=>"amd64", "augeas"=>{"version"=>"1.4.0"}, "augeasversion"=>"1.4.0", "bios_release_date"=>"12/01/2006", "bios_vendor"=>"innotek GmbH", "bios_version"=>"VirtualBox", "blockdevice_sda_model"=>"VBOX HARDDISK", "blockdevice_sda_size"=>21474836480, "blockdevice_sda_vendor"=>"ATA", "blockdevices"=>"sda", "boardmanufacturer"=>"Oracle Corporation", "boardproductname"=>"VirtualBox", "boardserialnumber"=>"0", "chassistype"=>"Other", "concat_basedir"=>"/opt/puppetlabs/puppet/cache/concat", "custom_auth_conf"=>"false", "datacenter"=>"portland", "dhcp_servers"=>{"eth0"=>"10.0.2.2", "system"=>"10.0.2.2"}, "disks"=>{"sda"=>{"model"=>"VBOX HARDDISK", "size"=>"20.00 GiB", "size_bytes"=>21474836480, "vendor"=>"ATA"}}, "dmi"=>{"bios"=>{"release_date"=>"12/01/2006", "vendor"=>"innotek GmbH", "version"=>"VirtualBox"}, "board"=>{"manufacturer"=>"Oracle Corporation", "product"=>"VirtualBox", "serial_number"=>"0"}, "chassis"=>{"type"=>"Other"}, "manufacturer"=>"innotek GmbH", "product"=>{"name"=>"VirtualBox", "serial_number"=>"0", "uuid"=>"C3C98552-9F17-434C-866B-0E254F5CD115"}}, "domain"=>"pdx.puppetlabs.demo", "facterversion"=>"3.0.2", "filesystems"=>"ext2,ext3,ext4,vfat", "fqdn"=>"ubuntu1404a.pdx.puppetlabs.demo", "gid"=>"root", "hardwareisa"=>"x86_64", "hardwaremodel"=>"x86_64", "homedir"=>"/root", "hostname"=>"ubuntu1404a", "id"=>"root", "identity"=>{"gid"=>0, "group"=>"root", "uid"=>0, "user"=>"root"}, "interfaces"=>"eth0,eth1,lo", "ip6tables_version"=>"1.4.21", "ipaddress"=>"10.0.2.15", "ipaddress6"=>"fe80::a00:27ff:feea:2027", "ipaddress6_eth0"=>"fe80::a00:27ff:feea:2027", "ipaddress6_eth1"=>"fe80::a00:27ff:fe61:1916", "ipaddress6_lo"=>"::1", "ipaddress_eth0"=>"10.0.2.15", "ipaddress_eth1"=>"10.20.1.93", "ipaddress_lo"=>"127.0.0.1", "iptables_version"=>"1.4.21", "is_admin"=>true, "is_pe"=>false, "is_virtual"=>true, "kernel"=>"Linux", "kernelmajversion"=>"3.16", "kernelrelease"=>"3.16.0-30-generic", "kernelversion"=>"3.16.0", "load_averages"=>{"15m"=>0.06, "1m"=>0.49, "5m"=>0.17}, "lsbdistcodename"=>"trusty", "lsbdistdescription"=>"Ubuntu 14.04.2 LTS", "lsbdistid"=>"Ubuntu", "lsbdistrelease"=>"14.04", "lsbmajdistrelease"=>"14.04", "macaddress"=>"08:00:27:ea:20:27", "macaddress_eth0"=>"08:00:27:ea:20:27", "macaddress_eth1"=>"08:00:27:61:19:16", "manufacturer"=>"innotek GmbH", "memory"=>{"swap"=>{"available"=>"512.00 MiB", "available_bytes"=>536866816, "capacity"=>"0%", "total"=>"512.00 MiB", "total_bytes"=>536866816, "used"=>"0 bytes", "used_bytes"=>0}, "system"=>{"available"=>"331.30 MiB", "available_bytes"=>347394048, "capacity"=>"32.35%", "total"=>"489.74 MiB", "total_bytes"=>513531904, "used"=>"158.44 MiB", "used_bytes"=>166137856}}, "memoryfree"=>"331.30 MiB", "memoryfree_mb"=>331.30078125, "memorysize"=>"489.74 MiB", "memorysize_mb"=>489.7421875, "mountpoints"=>{"/"=>{"available"=>"17.58 GiB", "available_bytes"=>18880684032, "capacity"=>"6.62%", "device"=>"/dev/mapper/localhost--vg-root", "filesystem"=>"ext4", "options"=>["rw", "errors=remount-ro"], "size"=>"18.83 GiB", "size_bytes"=>20219142144, "used"=>"1.25 GiB", "used_bytes"=>1338458112}, "/boot"=>{"available"=>"198.65 MiB", "available_bytes"=>208301056, "capacity"=>"15.58%", "device"=>"/dev/sda1", "filesystem"=>"ext2", "options"=>["rw"], "size"=>"235.32 MiB", "size_bytes"=>246755328, "used"=>"36.67 MiB", "used_bytes"=>38454272}}, "mtu_eth0"=>1500, "mtu_eth1"=>1500, "mtu_lo"=>65536, "mysql_server_id"=>8608807, "netmask"=>"255.255.255.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "netmask6_eth0"=>"ffff:ffff:ffff:ffff::", "netmask6_eth1"=>"ffff:ffff:ffff:ffff::", "netmask6_lo"=>"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "netmask_eth0"=>"255.255.255.0", "netmask_eth1"=>"255.255.255.0", "netmask_lo"=>"255.0.0.0", "network"=>"10.0.2.0", "network6"=>"fe80::", "network6_eth0"=>"fe80::", "network6_eth1"=>"fe80::", "network6_lo"=>"::1", "network_eth0"=>"10.0.2.0", "network_eth1"=>"10.20.1.0", "network_lo"=>"127.0.0.0", "networking"=>{"dhcp"=>"10.0.2.2", "domain"=>"pdx.puppetlabs.demo", "fqdn"=>"ubuntu1404a.pdx.puppetlabs.demo", "hostname"=>"ubuntu1404a", "interfaces"=>{"eth0"=>{"dhcp"=>"10.0.2.2", "ip"=>"10.0.2.15", "ip6"=>"fe80::a00:27ff:feea:2027", "mac"=>"08:00:27:ea:20:27", "mtu"=>1500, "netmask"=>"255.255.255.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "network"=>"10.0.2.0", "network6"=>"fe80::"}, "eth1"=>{"ip"=>"10.20.1.93", "ip6"=>"fe80::a00:27ff:fe61:1916", "mac"=>"08:00:27:61:19:16", "mtu"=>1500, "netmask"=>"255.255.255.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "network"=>"10.20.1.0", "network6"=>"fe80::"}, "lo"=>{"ip"=>"127.0.0.1", "ip6"=>"::1", "mtu"=>65536, "netmask"=>"255.0.0.0", "netmask6"=>"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "network"=>"127.0.0.0", "network6"=>"::1"}}, "ip"=>"10.0.2.15", "ip6"=>"fe80::a00:27ff:feea:2027", "mac"=>"08:00:27:ea:20:27", "mtu"=>1500, "netmask"=>"255.255.255.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "network"=>"10.0.2.0", "network6"=>"fe80::"}, "operatingsystem"=>"Ubuntu", "operatingsystemmajrelease"=>"14.04", "operatingsystemrelease"=>"14.04", "os"=>{"architecture"=>"amd64", "distro"=>{"codename"=>"trusty", "description"=>"Ubuntu 14.04.2 LTS", "id"=>"Ubuntu", "release"=>{"full"=>"14.04", "major"=>"14.04"}}, "family"=>"Debian", "hardware"=>"x86_64", "name"=>"Ubuntu", "release"=>{"full"=>"14.04", "major"=>"14.04"}, "selinux"=>{"enabled"=>false}}, "osfamily"=>"Debian", "partitions"=>{"/dev/mapper/localhost--vg-root"=>{"filesystem"=>"ext4", "mount"=>"/", "size"=>"0 bytes", "size_bytes"=>0, "uuid"=>"c94f234c-f947-450d-aaaf-d32be1b7f27f"}, "/dev/mapper/localhost--vg-swap_1"=>{"filesystem"=>"swap", "size"=>"0 bytes", "size_bytes"=>0, "uuid"=>"5501b007-e44b-46cf-b22b-177428cbe5d6"}, "/dev/sda1"=>{"filesystem"=>"ext2", "mount"=>"/boot", "size"=>"243.00 MiB", "size_bytes"=>254803968, "uuid"=>"3a97a5b0-ebd0-4ce6-ba62-d39b4fd0719e"}, "/dev/sda5"=>{"filesystem"=>"LVM2_member", "size"=>"19.76 GiB", "size_bytes"=>21216886784, "uuid"=>"vgfiUo-lVmS-57wx-qv4m-N3fR-efa0-iBI6Cn"}}, "path"=>"/opt/puppetlabs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "pe_concat_basedir"=>"/opt/puppetlabs/puppet/cache/pe_concat", "physicalprocessorcount"=>1, "platform_symlink_writable"=>true, "platform_tag"=>"ubuntu-14.04-amd64", "processor0"=>"Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz", "processorcount"=>1, "processors"=>{"count"=>1, "isa"=>"x86_64", "models"=>["Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz"], "physicalcount"=>1}, "productname"=>"VirtualBox", "puppet_files_dir_present"=>false, "puppet_vardir"=>"/opt/puppetlabs/puppet/cache", "puppetversion"=>"4.2.1", "root_home"=>"/root", "ruby"=>{"platform"=>"x86_64-linux", "sitedir"=>"/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.1.0", "version"=>"2.1.6"}, "rubyplatform"=>"x86_64-linux", "rubysitedir"=>"/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.1.0", "rubyversion"=>"2.1.6", "selinux"=>false, "serialnumber"=>"0", "ssh"=>{"dsa"=>{"fingerprints"=>{"sha1"=>"SSHFP 2 1 528b28369558620d8fb12d7bea179e437823154c", "sha256"=>"SSHFP 2 2 5a7688dbb06e4b0c72e6e78ae4ca8b379620ba14b019d5b3ae5670936e1acdf4"}, "key"=>"AAAAB3NzaC1kc3MAAACBAI8c8/RV/kAfEuo71eUt5O1BBbzk34v7b14bi3swzOnzJslJXt2KR/3Dy+8eazzkcw8nbmzZSHvcyo93yQ0LjsExXfG0EkzN7uiE840Fcpg5LFmeCHan0So3Cc1FLavcGu8N+RpWHYYLLmPjlQqPdHSS1rhhXdqKIoiTdlaocXD5AAAAFQCJ0mBV1SSayMNI6tTF4W0o1Y6+cQAAAIBWY05wbeTi/vFgkhH57X0/S7Kr86K3Q/BMz7ZmKF2XCzZW9LJ6Ou0T7tHKAr472DBwUm6IxGHoUXky0Q0+XDCVut9YLYXJK8L/P8SbGwhMfj1YPiv9uorECcrqJMB5W1GCFS+HIo4DvmKYzivcmpE25b/y0V1u5Oas9cQaNZnhxwAAAIBqvLMiEyQPpemji+p+p/9E3sdX6RMUeSHj7n3WSkRTdq09nZ0ewtH12LpbENCjoc4PFh02/qqdub0tjpbgJrMYgwJDADD/AsrdcDBd3gU7mDjyF8PFzWV9nEVYExu447svRt422OW6gkkJ6sn3fovBAvDaWy7OR5YYrg5JLp+/4A=="}, "ecdsa"=>{"fingerprints"=>{"sha1"=>"SSHFP 3 1 505ac6e68fa78305f635f305e11fbb0cc597e8ad", "sha256"=>"SSHFP 3 2 d5840c440b5f52a582589e3b2b583ecea53fd6618851dbcfce2e5cca7624f3c8"}, "key"=>"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJKYyLqXe/n2LFUbqMkwhLyOpg10LYOx/MpdgFXTxUB67AP4/GoX8zfz5Lb6fOidSJTlrzD5FB584JiRlEGUGLo="}, "ed25519"=>{"fingerprints"=>{"sha1"=>"SSHFP 4 1 53784fee8fc968dca5c5d17e731716a012e59234", "sha256"=>"SSHFP 4 2 95b82a785582818106bf403e53667fc559eeabf176f103a929a210a38e9c4e05"}, "key"=>"AAAAC3NzaC1lZDI1NTE5AAAAIAAhP8P8zhiQrKmyV/U+e5M7nd5X+ZuIEYCPHDoza0rP"}, "rsa"=>{"fingerprints"=>{"sha1"=>"SSHFP 1 1 4d3d498c7a3377c8f95ac713db4866c32199be51", "sha256"=>"SSHFP 1 2 949c0790f27d5ef7e8b0c35ceabb23bdd50d81611093531c0354330a7234b833"}, "key"=>"AAAAB3NzaC1yc2EAAAADAQABAAABAQDIPayGCFe5RUpJ8/UsH6gf+ecMRWo1dc20+HAy0bV4KalYWN5jUB/wrs41rdJRwMKWczgSDi2gFMsJ7q8Vjvpm2hUy+3H3/AEASRij99+37X1T4A6vPpT45EhTpS6JgGROii1Q2+9AJ/6BE6fSawymgR7jDx5QNLbKRy/FiwZAG+A0n29iUALeKqEZMd/1fU0hQCy/V+9V4DgRbHcJz4lKgc6nYrMymj8tUivTd8zm+CQov+YsUAdaXHSxIGVofnFQYXzbPqWGVV8S3fpwvrn/IY6paZ2F/lHoWombHwE271Bw863oWdkKpzP1nhjR3+Q1z++Tl2ZXT+rp6mhS9Pwv"}}, "sshdsakey"=>"AAAAB3NzaC1kc3MAAACBAI8c8/RV/kAfEuo71eUt5O1BBbzk34v7b14bi3swzOnzJslJXt2KR/3Dy+8eazzkcw8nbmzZSHvcyo93yQ0LjsExXfG0EkzN7uiE840Fcpg5LFmeCHan0So3Cc1FLavcGu8N+RpWHYYLLmPjlQqPdHSS1rhhXdqKIoiTdlaocXD5AAAAFQCJ0mBV1SSayMNI6tTF4W0o1Y6+cQAAAIBWY05wbeTi/vFgkhH57X0/S7Kr86K3Q/BMz7ZmKF2XCzZW9LJ6Ou0T7tHKAr472DBwUm6IxGHoUXky0Q0+XDCVut9YLYXJK8L/P8SbGwhMfj1YPiv9uorECcrqJMB5W1GCFS+HIo4DvmKYzivcmpE25b/y0V1u5Oas9cQaNZnhxwAAAIBqvLMiEyQPpemji+p+p/9E3sdX6RMUeSHj7n3WSkRTdq09nZ0ewtH12LpbENCjoc4PFh02/qqdub0tjpbgJrMYgwJDADD/AsrdcDBd3gU7mDjyF8PFzWV9nEVYExu447svRt422OW6gkkJ6sn3fovBAvDaWy7OR5YYrg5JLp+/4A==", "sshecdsakey"=>"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJKYyLqXe/n2LFUbqMkwhLyOpg10LYOx/MpdgFXTxUB67AP4/GoX8zfz5Lb6fOidSJTlrzD5FB584JiRlEGUGLo=", "sshed25519key"=>"AAAAC3NzaC1lZDI1NTE5AAAAIAAhP8P8zhiQrKmyV/U+e5M7nd5X+ZuIEYCPHDoza0rP", "sshfp_dsa"=>"SSHFP 2 1 528b28369558620d8fb12d7bea179e437823154c\nSSHFP 2 2 5a7688dbb06e4b0c72e6e78ae4ca8b379620ba14b019d5b3ae5670936e1acdf4", "sshfp_ecdsa"=>"SSHFP 3 1 505ac6e68fa78305f635f305e11fbb0cc597e8ad\nSSHFP 3 2 d5840c440b5f52a582589e3b2b583ecea53fd6618851dbcfce2e5cca7624f3c8", "sshfp_ed25519"=>"SSHFP 4 1 53784fee8fc968dca5c5d17e731716a012e59234\nSSHFP 4 2 95b82a785582818106bf403e53667fc559eeabf176f103a929a210a38e9c4e05", "sshfp_rsa"=>"SSHFP 1 1 4d3d498c7a3377c8f95ac713db4866c32199be51\nSSHFP 1 2 949c0790f27d5ef7e8b0c35ceabb23bdd50d81611093531c0354330a7234b833", "sshrsakey"=>"AAAAB3NzaC1yc2EAAAADAQABAAABAQDIPayGCFe5RUpJ8/UsH6gf+ecMRWo1dc20+HAy0bV4KalYWN5jUB/wrs41rdJRwMKWczgSDi2gFMsJ7q8Vjvpm2hUy+3H3/AEASRij99+37X1T4A6vPpT45EhTpS6JgGROii1Q2+9AJ/6BE6fSawymgR7jDx5QNLbKRy/FiwZAG+A0n29iUALeKqEZMd/1fU0hQCy/V+9V4DgRbHcJz4lKgc6nYrMymj8tUivTd8zm+CQov+YsUAdaXHSxIGVofnFQYXzbPqWGVV8S3fpwvrn/IY6paZ2F/lHoWombHwE271Bw863oWdkKpzP1nhjR3+Q1z++Tl2ZXT+rp6mhS9Pwv", "staging_http_get"=>"curl", "swapfree"=>"512.00 MiB", "swapfree_mb"=>511.99609375, "swapsize"=>"512.00 MiB", "swapsize_mb"=>511.99609375, "system_uptime"=>{"days"=>0, "hours"=>0, "seconds"=>47, "uptime"=>"0:00 hours"}, "timezone"=>"PDT", "uptime"=>"0:00 hours", "uptime_days"=>0, "uptime_hours"=>0, "uptime_seconds"=>47, "uuid"=>"C3C98552-9F17-434C-866B-0E254F5CD115", "virtual"=>"virtualbox", "clientcert"=>"ubuntu1404a.pdx.puppetlabs.demo", "clientversion"=>"4.2.1", "clientnoop"=>false} let(:facts) { node_facts } before :each do # Curtrently there is some code within Puppet that will try to execute # commands when compiling a catalog even though it shouldn't. One example is # the groups attribute of the user resource on AIX. If we are running on # Windows but pretending to be UNIX this will definitely fail so we need to # mock it (or vice versa) # Details: # https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/execution.rb#L191 expected_null_file = Puppet::Util::Platform.windows? ? 'NUL' : '/dev/null' unless File.exist? expected_null_file allow(Puppet::Util::Execution).to receive(:execute).and_raise(Puppet::ExecutionFailure.new("Onceover caused this")) end end let(:pre_condition) { pp = <<-'END' $onceover_class = 'role::custom_windows' $onceover_node = 'Ubuntu-14.04-64' # Begin user-specified pre_condition # End user-specified pre_condition END } it { should compile } end end