require 'spec_helper' describe "role::custom_windows" do context "using fact set Amazon-2018.03" do node_facts = {"aio_agent_version"=>"6.0.9", "architecture"=>"x86_64", "augeas"=>{"version"=>"1.11.0"}, "augeasversion"=>"1.11.0", "bios_release_date"=>"10/16/2017", "bios_vendor"=>"Amazon EC2", "bios_version"=>"1.0", "blockdevice_nvme0n1_model"=>"Amazon Elastic Block Store", "blockdevice_nvme0n1_size"=>8589934592, "blockdevices"=>"nvme0n1", "boardassettag"=>"i-0816d4c53ff8dc6a2", "boardmanufacturer"=>"Amazon EC2", "chassisassettag"=>"Amazon EC2", "chassistype"=>"Other", "dhcp_servers"=>{"eth0"=>"172.31.0.1", "system"=>"172.31.0.1"}, "disks"=>{"nvme0n1"=>{"model"=>"Amazon Elastic Block Store", "size"=>"8.00 GiB", "size_bytes"=>8589934592}}, "dmi"=>{"bios"=>{"release_date"=>"10/16/2017", "vendor"=>"Amazon EC2", "version"=>"1.0"}, "board"=>{"asset_tag"=>"i-0816d4c53ff8dc6a2", "manufacturer"=>"Amazon EC2"}, "chassis"=>{"asset_tag"=>"Amazon EC2", "type"=>"Other"}, "manufacturer"=>"Amazon EC2", "product"=>{"name"=>"t3a.xlarge", "serial_number"=>"ec21b37d-28ce-a3c2-956e-527e2857aeda", "uuid"=>"EC21B37D-28CE-A3C2-956E-527E2857AEDA"}}, "domain"=>"us-west-2.compute.internal", "ec2_metadata"=>{"ami-id"=>"ami-01e24be29428c15b2", "ami-launch-index"=>"0", "ami-manifest-path"=>"(unknown)", "block-device-mapping"=>{"ami"=>"xvda", "root"=>"/dev/xvda"}, "events"=>{"maintenance"=>{"history"=>"[]", "scheduled"=>"[]"}}, "hostname"=>"ip-172-31-3-153.us-west-2.compute.internal", "identity-credentials"=>{"ec2"=>{"info"=>"{\n \"Code\" : \"Success\",\n \"LastUpdated\" : \"2019-05-07T01:03:28Z\",\n \"AccountId\" : \"581165678935\"\n}"}}, "instance-action"=>"none", "instance-id"=>"i-0816d4c53ff8dc6a2", "instance-type"=>"t3a.xlarge", "local-hostname"=>"ip-172-31-3-153.us-west-2.compute.internal", "local-ipv4"=>"172.31.3.153", "mac"=>"0a:ca:e0:39:c1:f6", "metrics"=>{"vhostmd"=>""}, "network"=>{"interfaces"=>{"macs"=>{"0a:ca:e0:39:c1:f6"=>{"device-number"=>"0", "interface-id"=>"eni-04e7710af3cf1699c", "ipv4-associations"=>{"34.209.204.164"=>"172.31.3.153"}, "local-hostname"=>"ip-172-31-3-153.us-west-2.compute.internal", "local-ipv4s"=>"172.31.3.153", "mac"=>"0a:ca:e0:39:c1:f6", "owner-id"=>"581165678935", "public-hostname"=>"ec2-34-209-204-164.us-west-2.compute.amazonaws.com", "public-ipv4s"=>"34.209.204.164", "security-group-ids"=>"sg-05a2c52388c24f3ae", "security-groups"=>"launch-wizard-2", "subnet-id"=>"subnet-3bafc660", "subnet-ipv4-cidr-block"=>"172.31.0.0/20", "vpc-id"=>"vpc-287af44e", "vpc-ipv4-cidr-block"=>"172.31.0.0/16", "vpc-ipv4-cidr-blocks"=>"172.31.0.0/16"}}}}, "placement"=>{"availability-zone"=>"us-west-2c"}, "profile"=>"default-hvm", "public-hostname"=>"ec2-34-209-204-164.us-west-2.compute.amazonaws.com", "public-ipv4"=>"34.209.204.164", "public-keys"=>{"0"=>{"openssh-key"=>"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDk1QR+MwLPRohIOiWbCC8xjJKFYeCjIh2g2wAKnZFCkPjCG9BD3L4URnszJXdv+5XylfWO1y9O1Z95etjWfObApRZ5Ej22Dz1EExWWRNOKl9QdrEfCACSlc5gbT5rflHd/He9eD5OFRHlMY8fNIApEKdQrlxZgr1/NOusVQggoS/MiszxCl0dob3kz86XX6PrAmMyGfv7j/mPeeEUzP3bGxtjJyaZGcwukjPvlgq1yI4AzZlveY8fnokRsh9uDHXUEVB2hLNaBBZB/Evw261J/+QsnKopAuqQpwct/n/ulbg+w1h/2ZBiDXDBK8DQ8kOC4zuum6qwri1KNKdX9zIif thinkpad"}}, "reservation-id"=>"r-0b89c0e198506ec1f", "security-groups"=>"launch-wizard-2", "services"=>{"domain"=>"amazonaws.com", "partition"=>"aws"}}, "facterversion"=>"3.12.4", "filesystems"=>"ext3,ext4", "fips_enabled"=>false, "fqdn"=>"ip-172-31-3-153.us-west-2.compute.internal", "gid"=>"root", "hardwareisa"=>"x86_64", "hardwaremodel"=>"x86_64", "hostname"=>"ip-172-31-3-153", "hypervisors"=>{"kvm"=>{}}, "id"=>"root", "identity"=>{"gid"=>0, "group"=>"root", "privileged"=>true, "uid"=>0, "user"=>"root"}, "interfaces"=>"eth0,lo", "ipaddress"=>"172.31.3.153", "ipaddress6"=>"fe80::8ca:e0ff:fe39:c1f6", "ipaddress6_eth0"=>"fe80::8ca:e0ff:fe39:c1f6", "ipaddress6_lo"=>"::1", "ipaddress_eth0"=>"172.31.3.153", "ipaddress_lo"=>"127.0.0.1", "is_virtual"=>true, "kernel"=>"Linux", "kernelmajversion"=>"4.14", "kernelrelease"=>"4.14.77-70.59.amzn1.x86_64", "kernelversion"=>"4.14.77", "load_averages"=>{"15m"=>0.02, "1m"=>0.12, "5m"=>0.06}, "macaddress"=>"0a:ca:e0:39:c1:f6", "macaddress_eth0"=>"0a:ca:e0:39:c1:f6", "manufacturer"=>"Amazon EC2", "memory"=>{"system"=>{"available"=>"15.36 GiB", "available_bytes"=>16489611264, "capacity"=>"1.10%", "total"=>"15.53 GiB", "total_bytes"=>16673153024, "used"=>"175.04 MiB", "used_bytes"=>183541760}}, "memoryfree"=>"15.36 GiB", "memoryfree_mb"=>15725.71875, "memorysize"=>"15.53 GiB", "memorysize_mb"=>15900.7578125, "mountpoints"=>{"/"=>{"available"=>"6.55 GiB", "available_bytes"=>7033344000, "capacity"=>"15.45%", "device"=>"/dev/nvme0n1p1", "filesystem"=>"ext4", "options"=>["rw", "noatime", "data=ordered"], "size"=>"7.75 GiB", "size_bytes"=>8318783488, "used"=>"1.20 GiB", "used_bytes"=>1285439488}, "/dev/shm"=>{"available"=>"7.76 GiB", "available_bytes"=>8336576512, "capacity"=>"0%", "device"=>"tmpfs", "filesystem"=>"tmpfs", "options"=>["rw", "relatime"], "size"=>"7.76 GiB", "size_bytes"=>8336576512, "used"=>"0 bytes", "used_bytes"=>0}}, "mtu_eth0"=>9001, "mtu_lo"=>65536, "netmask"=>"255.255.240.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "netmask6_eth0"=>"ffff:ffff:ffff:ffff::", "netmask6_lo"=>"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "netmask_eth0"=>"255.255.240.0", "netmask_lo"=>"255.0.0.0", "network"=>"172.31.0.0", "network6"=>"fe80::", "network6_eth0"=>"fe80::", "network6_lo"=>"::1", "network_eth0"=>"172.31.0.0", "network_lo"=>"127.0.0.0", "networking"=>{"dhcp"=>"172.31.0.1", "domain"=>"us-west-2.compute.internal", "fqdn"=>"ip-172-31-3-153.us-west-2.compute.internal", "hostname"=>"ip-172-31-3-153", "interfaces"=>{"eth0"=>{"bindings"=>[{"address"=>"172.31.3.153", "netmask"=>"255.255.240.0", "network"=>"172.31.0.0"}], "bindings6"=>[{"address"=>"fe80::8ca:e0ff:fe39:c1f6", "netmask"=>"ffff:ffff:ffff:ffff::", "network"=>"fe80::"}], "dhcp"=>"172.31.0.1", "ip"=>"172.31.3.153", "ip6"=>"fe80::8ca:e0ff:fe39:c1f6", "mac"=>"0a:ca:e0:39:c1:f6", "mtu"=>9001, "netmask"=>"255.255.240.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "network"=>"172.31.0.0", "network6"=>"fe80::"}, "lo"=>{"bindings"=>[{"address"=>"127.0.0.1", "netmask"=>"255.0.0.0", "network"=>"127.0.0.0"}], "bindings6"=>[{"address"=>"::1", "netmask"=>"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "network"=>"::1"}], "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"=>"172.31.3.153", "ip6"=>"fe80::8ca:e0ff:fe39:c1f6", "mac"=>"0a:ca:e0:39:c1:f6", "mtu"=>9001, "netmask"=>"255.255.240.0", "netmask6"=>"ffff:ffff:ffff:ffff::", "network"=>"172.31.0.0", "network6"=>"fe80::", "primary"=>"eth0"}, "operatingsystem"=>"Amazon", "operatingsystemmajrelease"=>"2018", "operatingsystemrelease"=>"2018.03", "os"=>{"architecture"=>"x86_64", "family"=>"RedHat", "hardware"=>"x86_64", "name"=>"Amazon", "release"=>{"full"=>"2018.03", "major"=>"2018", "minor"=>"03"}, "selinux"=>{"enabled"=>false}}, "osfamily"=>"RedHat", "partitions"=>{"/dev/nvme0n1p1"=>{"filesystem"=>"ext4", "label"=>"/", "mount"=>"/", "partlabel"=>"Linux", "partuuid"=>"893c59db-bd86-4d67-b40f-221bc82c14c8", "size"=>"8.00 GiB", "size_bytes"=>8587820544, "uuid"=>"f25f5092-0401-4edb-9fac-c57f3c673803"}, "/dev/nvme0n1p128"=>{"partlabel"=>"BIOS Boot Partition", "partuuid"=>"9d1c14c8-e25b-4405-9171-de3c756f61b2", "size"=>"1.00 MiB", "size_bytes"=>1048576}}, "path"=>"/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin", "physicalprocessorcount"=>1, "processor0"=>"AMD EPYC 7571", "processor1"=>"AMD EPYC 7571", "processor2"=>"AMD EPYC 7571", "processor3"=>"AMD EPYC 7571", "processorcount"=>4, "processors"=>{"count"=>4, "isa"=>"x86_64", "models"=>["AMD EPYC 7571", "AMD EPYC 7571", "AMD EPYC 7571", "AMD EPYC 7571"], "physicalcount"=>1}, "productname"=>"t3a.xlarge", "puppetversion"=>"6.0.9", "ruby"=>{"platform"=>"x86_64-linux", "sitedir"=>"/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.5.0", "version"=>"2.5.3"}, "rubyplatform"=>"x86_64-linux", "rubysitedir"=>"/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.5.0", "rubyversion"=>"2.5.3", "selinux"=>false, "serialnumber"=>"ec21b37d-28ce-a3c2-956e-527e2857aeda", "ssh"=>{"dsa"=>{"fingerprints"=>{"sha1"=>"SSHFP 2 1 0b8e09e2fe5c820230d717a8f1c4bfd4bcb11dfd", "sha256"=>"SSHFP 2 2 956e88a3dd192f4a401c05deccf92985b16542027b7a77d36172a3c014c8491f"}, "key"=>"AAAAB3NzaC1kc3MAAACBALzgFDQ4Hu4sjtB0gYwh2uv/00U15avjHKLuffc1+rDmjnoW99OlbeijOb9nPBTDR/+OkAJuVzFdfP/EmPAajAMSE2bOPn5jgNBoKdw7g4LMhtRGomJ8ZxJ9kphYbFaq1JdX6a06HSJHn8RlkV6MV9WYnGQiE89e/7kf3krFssXJAAAAFQDuL8oufyAzYtkWvApZlOX+UlFvxwAAAIEAhibNA8agHCpQIrswmMj9PUOhEVx3OqS/F+0TB/vOqWdubFK97zlt56biu+2R2gHNCiqyiGorBA83xonkHrdjn44Nw2KsZVE9xR4BCbqIyrkwQkWbTHfGYwq0QCo9UyuTdrhen2FnFdZXsQw4b4mcedNDxSPzgLy9Pl/EAVINm6EAAACBAJOfk9MzOocneM35ROEMKRZV5oWFwkglRg/qT3Xcvc3PabEUKlTWQs65fVlVkyipri/0cIuPEo8NKUFJ614FHYGedgja2lFz4xEAonJX3wG3c4GSdbv9uMJT0K1p3zbfCuBoZ9my2nJvWBYPYrXvZgXMt48ewJHMy3HlTnhNSklI", "type"=>"ssh-dss"}, "ecdsa"=>{"fingerprints"=>{"sha1"=>"SSHFP 3 1 8fc1a45df472f27fd3fa19cd5e6df68434fa60d4", "sha256"=>"SSHFP 3 2 c4b4bb4362c47a3d0feaf030779e1bf06e2fd95911b1f8636ad2032b57cf087b"}, "key"=>"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL2ZVP/li7lMY6UrniJHcWOjBvTs1xdw2NQlmzLtuyaPhnolyh2uwoZctB5tOnlG97NlGqkBKV9pl7+fplDWip0=", "type"=>"ecdsa-sha2-nistp256"}, "ed25519"=>{"fingerprints"=>{"sha1"=>"SSHFP 4 1 10e0fcb0020748f776ff7178310be3e8e1c788bc", "sha256"=>"SSHFP 4 2 ef9e38c12ab7fa4e4eb82e26d6707110352d82a5beae30887f3de96e7a83fb8f"}, "key"=>"AAAAC3NzaC1lZDI1NTE5AAAAIHtcpSu4oquHdhVu57O9BP/sHvy1vgMuEWZ2Aoq1elFP", "type"=>"ssh-ed25519"}, "rsa"=>{"fingerprints"=>{"sha1"=>"SSHFP 1 1 70e536ec33e8312c25b6c606546d7acb2f471e28", "sha256"=>"SSHFP 1 2 ee810f2ab351653e9c2ca93270f9c73eb31dd824318b50af72d0afbe31d5d462"}, "key"=>"AAAAB3NzaC1yc2EAAAADAQABAAABAQDT/8RUum1jt8FZg8GJRvjjOQyU1VLn1199yjI4xr4aSx7yAmm3eHb5bsSPsxxPUMnlWcd8bq0hWQ5VI2G2WQfUpM4Tyx+wRnGdU1SB7xY8Flzg7w0JOIIIKf1ulxcscacCnGR2y/6rJUkdYVsiCKMADuQ6MUpqA6jLbWHAv8dJlvfq/vtCxBtTOzbhlWmmuvo0WPGXEmHW8Hvj94wcPkvRbf/Pohn+A5NrGs1SlIetn+N6tnK6CPK/g1dNMomPTwU+1+yAIUdTMedJPEeiB8pX5ydDhmO0X76KcXmaqIGvPWWMPEBoPKH8f/IFauOqkoaSAycdKBLYEUbb0iDIlXG1", "type"=>"ssh-rsa"}}, "sshdsakey"=>"AAAAB3NzaC1kc3MAAACBALzgFDQ4Hu4sjtB0gYwh2uv/00U15avjHKLuffc1+rDmjnoW99OlbeijOb9nPBTDR/+OkAJuVzFdfP/EmPAajAMSE2bOPn5jgNBoKdw7g4LMhtRGomJ8ZxJ9kphYbFaq1JdX6a06HSJHn8RlkV6MV9WYnGQiE89e/7kf3krFssXJAAAAFQDuL8oufyAzYtkWvApZlOX+UlFvxwAAAIEAhibNA8agHCpQIrswmMj9PUOhEVx3OqS/F+0TB/vOqWdubFK97zlt56biu+2R2gHNCiqyiGorBA83xonkHrdjn44Nw2KsZVE9xR4BCbqIyrkwQkWbTHfGYwq0QCo9UyuTdrhen2FnFdZXsQw4b4mcedNDxSPzgLy9Pl/EAVINm6EAAACBAJOfk9MzOocneM35ROEMKRZV5oWFwkglRg/qT3Xcvc3PabEUKlTWQs65fVlVkyipri/0cIuPEo8NKUFJ614FHYGedgja2lFz4xEAonJX3wG3c4GSdbv9uMJT0K1p3zbfCuBoZ9my2nJvWBYPYrXvZgXMt48ewJHMy3HlTnhNSklI", "sshecdsakey"=>"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL2ZVP/li7lMY6UrniJHcWOjBvTs1xdw2NQlmzLtuyaPhnolyh2uwoZctB5tOnlG97NlGqkBKV9pl7+fplDWip0=", "sshed25519key"=>"AAAAC3NzaC1lZDI1NTE5AAAAIHtcpSu4oquHdhVu57O9BP/sHvy1vgMuEWZ2Aoq1elFP", "sshfp_dsa"=>"SSHFP 2 1 0b8e09e2fe5c820230d717a8f1c4bfd4bcb11dfd\nSSHFP 2 2 956e88a3dd192f4a401c05deccf92985b16542027b7a77d36172a3c014c8491f", "sshfp_ecdsa"=>"SSHFP 3 1 8fc1a45df472f27fd3fa19cd5e6df68434fa60d4\nSSHFP 3 2 c4b4bb4362c47a3d0feaf030779e1bf06e2fd95911b1f8636ad2032b57cf087b", "sshfp_ed25519"=>"SSHFP 4 1 10e0fcb0020748f776ff7178310be3e8e1c788bc\nSSHFP 4 2 ef9e38c12ab7fa4e4eb82e26d6707110352d82a5beae30887f3de96e7a83fb8f", "sshfp_rsa"=>"SSHFP 1 1 70e536ec33e8312c25b6c606546d7acb2f471e28\nSSHFP 1 2 ee810f2ab351653e9c2ca93270f9c73eb31dd824318b50af72d0afbe31d5d462", "sshrsakey"=>"AAAAB3NzaC1yc2EAAAADAQABAAABAQDT/8RUum1jt8FZg8GJRvjjOQyU1VLn1199yjI4xr4aSx7yAmm3eHb5bsSPsxxPUMnlWcd8bq0hWQ5VI2G2WQfUpM4Tyx+wRnGdU1SB7xY8Flzg7w0JOIIIKf1ulxcscacCnGR2y/6rJUkdYVsiCKMADuQ6MUpqA6jLbWHAv8dJlvfq/vtCxBtTOzbhlWmmuvo0WPGXEmHW8Hvj94wcPkvRbf/Pohn+A5NrGs1SlIetn+N6tnK6CPK/g1dNMomPTwU+1+yAIUdTMedJPEeiB8pX5ydDhmO0X76KcXmaqIGvPWWMPEBoPKH8f/IFauOqkoaSAycdKBLYEUbb0iDIlXG1", "system_uptime"=>{"days"=>0, "hours"=>0, "seconds"=>136, "uptime"=>"0:02 hours"}, "timezone"=>"UTC", "uptime"=>"0:02 hours", "uptime_days"=>0, "uptime_hours"=>0, "uptime_seconds"=>136, "uuid"=>"EC21B37D-28CE-A3C2-956E-527E2857AEDA", "virtual"=>"kvm", "clientcert"=>"ip-172-31-3-153.us-west-2.compute.internal", "clientversion"=>"6.0.9", "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 = 'Amazon-2018.03' # Begin user-specified pre_condition # End user-specified pre_condition END } it { should compile } end end