specinfra-cisco 2.40.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.gitmodules +3 -0
- data/.travis.yml +19 -0
- data/Gemfile +4 -0
- data/Guardfile +12 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +43 -0
- data/appveyor.yml +56 -0
- data/examples/multiple_backends.rb +46 -0
- data/lib/specinfra.rb +45 -0
- data/lib/specinfra/backend.rb +12 -0
- data/lib/specinfra/backend/base.rb +55 -0
- data/lib/specinfra/backend/cmd.rb +68 -0
- data/lib/specinfra/backend/docker.rb +112 -0
- data/lib/specinfra/backend/dockerfile.rb +32 -0
- data/lib/specinfra/backend/exec.rb +152 -0
- data/lib/specinfra/backend/lxc.rb +45 -0
- data/lib/specinfra/backend/powershell/command.rb +40 -0
- data/lib/specinfra/backend/powershell/script_helper.rb +86 -0
- data/lib/specinfra/backend/powershell/support/check_file_access_rules.ps1 +8 -0
- data/lib/specinfra/backend/powershell/support/crop_text.ps1 +11 -0
- data/lib/specinfra/backend/powershell/support/find_group.ps1 +8 -0
- data/lib/specinfra/backend/powershell/support/find_iis_component.ps1 +90 -0
- data/lib/specinfra/backend/powershell/support/find_installed_application.ps1 +37 -0
- data/lib/specinfra/backend/powershell/support/find_installed_hot_fix.ps1 +18 -0
- data/lib/specinfra/backend/powershell/support/find_scheduled_task.ps1 +7 -0
- data/lib/specinfra/backend/powershell/support/find_service.ps1 +5 -0
- data/lib/specinfra/backend/powershell/support/find_user.ps1 +8 -0
- data/lib/specinfra/backend/powershell/support/find_usergroup.ps1 +9 -0
- data/lib/specinfra/backend/powershell/support/is_port_listening.ps1 +14 -0
- data/lib/specinfra/backend/powershell/support/is_remote_port_listening.ps1 +51 -0
- data/lib/specinfra/backend/powershell/support/list_windows_features.ps1 +68 -0
- data/lib/specinfra/backend/shell_script.rb +29 -0
- data/lib/specinfra/backend/ssh.rb +182 -0
- data/lib/specinfra/backend/telnet.rb +111 -0
- data/lib/specinfra/backend/winrm.rb +29 -0
- data/lib/specinfra/command.rb +304 -0
- data/lib/specinfra/command/aix.rb +1 -0
- data/lib/specinfra/command/aix/base.rb +2 -0
- data/lib/specinfra/command/aix/base/file.rb +21 -0
- data/lib/specinfra/command/aix/base/group.rb +8 -0
- data/lib/specinfra/command/aix/base/host.rb +17 -0
- data/lib/specinfra/command/aix/base/inventory.rb +38 -0
- data/lib/specinfra/command/aix/base/package.rb +11 -0
- data/lib/specinfra/command/aix/base/port.rb +8 -0
- data/lib/specinfra/command/aix/base/service.rb +11 -0
- data/lib/specinfra/command/aix/base/user.rb +15 -0
- data/lib/specinfra/command/alpine.rb +1 -0
- data/lib/specinfra/command/alpine/base.rb +2 -0
- data/lib/specinfra/command/alpine/base/package.rb +19 -0
- data/lib/specinfra/command/alpine/base/process.rb +20 -0
- data/lib/specinfra/command/alpine/base/service.rb +11 -0
- data/lib/specinfra/command/amazon.rb +2 -0
- data/lib/specinfra/command/amazon/base.rb +2 -0
- data/lib/specinfra/command/arch.rb +1 -0
- data/lib/specinfra/command/arch/base.rb +11 -0
- data/lib/specinfra/command/arch/base/file.rb +14 -0
- data/lib/specinfra/command/arch/base/package.rb +30 -0
- data/lib/specinfra/command/arch/base/service.rb +5 -0
- data/lib/specinfra/command/base.rb +21 -0
- data/lib/specinfra/command/base/bond.rb +2 -0
- data/lib/specinfra/command/base/bridge.rb +2 -0
- data/lib/specinfra/command/base/cron.rb +17 -0
- data/lib/specinfra/command/base/file.rb +179 -0
- data/lib/specinfra/command/base/fstab.rb +2 -0
- data/lib/specinfra/command/base/group.rb +26 -0
- data/lib/specinfra/command/base/host.rb +25 -0
- data/lib/specinfra/command/base/interface.rb +2 -0
- data/lib/specinfra/command/base/inventory.rb +2 -0
- data/lib/specinfra/command/base/ip6tables.rb +2 -0
- data/lib/specinfra/command/base/ipfilter.rb +2 -0
- data/lib/specinfra/command/base/ipnat.rb +2 -0
- data/lib/specinfra/command/base/iptables.rb +2 -0
- data/lib/specinfra/command/base/kernel_module.rb +2 -0
- data/lib/specinfra/command/base/localhost.rb +7 -0
- data/lib/specinfra/command/base/lxc_container.rb +2 -0
- data/lib/specinfra/command/base/mail_alias.rb +12 -0
- data/lib/specinfra/command/base/package.rb +51 -0
- data/lib/specinfra/command/base/port.rb +10 -0
- data/lib/specinfra/command/base/ppa.rb +2 -0
- data/lib/specinfra/command/base/process.rb +15 -0
- data/lib/specinfra/command/base/routing_table.rb +9 -0
- data/lib/specinfra/command/base/selinux.rb +2 -0
- data/lib/specinfra/command/base/selinux_module.rb +2 -0
- data/lib/specinfra/command/base/service.rb +15 -0
- data/lib/specinfra/command/base/user.rb +94 -0
- data/lib/specinfra/command/base/yumrepo.rb +3 -0
- data/lib/specinfra/command/base/zfs.rb +1 -0
- data/lib/specinfra/command/coreos.rb +1 -0
- data/lib/specinfra/command/coreos/base.rb +2 -0
- data/lib/specinfra/command/coreos/base/service.rb +5 -0
- data/lib/specinfra/command/cumulus.rb +11 -0
- data/lib/specinfra/command/cumulus/base.rb +2 -0
- data/lib/specinfra/command/cumulus/base/ppa.rb +17 -0
- data/lib/specinfra/command/cumulus/base/service.rb +7 -0
- data/lib/specinfra/command/darwin.rb +1 -0
- data/lib/specinfra/command/darwin/base.rb +2 -0
- data/lib/specinfra/command/darwin/base/file.rb +47 -0
- data/lib/specinfra/command/darwin/base/host.rb +11 -0
- data/lib/specinfra/command/darwin/base/inventory.rb +28 -0
- data/lib/specinfra/command/darwin/base/package.rb +41 -0
- data/lib/specinfra/command/darwin/base/port.rb +8 -0
- data/lib/specinfra/command/darwin/base/service.rb +11 -0
- data/lib/specinfra/command/darwin/base/user.rb +15 -0
- data/lib/specinfra/command/debian.rb +1 -0
- data/lib/specinfra/command/debian/base.rb +11 -0
- data/lib/specinfra/command/debian/base/package.rb +33 -0
- data/lib/specinfra/command/debian/base/ppa.rb +2 -0
- data/lib/specinfra/command/debian/base/service.rb +32 -0
- data/lib/specinfra/command/debian/v8.rb +2 -0
- data/lib/specinfra/command/debian/v8/service.rb +5 -0
- data/lib/specinfra/command/esxi.rb +1 -0
- data/lib/specinfra/command/esxi/base.rb +2 -0
- data/lib/specinfra/command/esxi/base/package.rb +7 -0
- data/lib/specinfra/command/fedora.rb +1 -0
- data/lib/specinfra/command/fedora/base.rb +2 -0
- data/lib/specinfra/command/fedora/base/service.rb +11 -0
- data/lib/specinfra/command/fedora/v15.rb +2 -0
- data/lib/specinfra/command/fedora/v15/service.rb +5 -0
- data/lib/specinfra/command/freebsd.rb +1 -0
- data/lib/specinfra/command/freebsd/base.rb +3 -0
- data/lib/specinfra/command/freebsd/base/file.rb +42 -0
- data/lib/specinfra/command/freebsd/base/interface.rb +35 -0
- data/lib/specinfra/command/freebsd/base/inventory.rb +28 -0
- data/lib/specinfra/command/freebsd/base/package.rb +19 -0
- data/lib/specinfra/command/freebsd/base/port.rb +8 -0
- data/lib/specinfra/command/freebsd/base/routing_table.rb +9 -0
- data/lib/specinfra/command/freebsd/base/service.rb +11 -0
- data/lib/specinfra/command/freebsd/base/user.rb +20 -0
- data/lib/specinfra/command/freebsd/v10.rb +2 -0
- data/lib/specinfra/command/freebsd/v10/package.rb +31 -0
- data/lib/specinfra/command/freebsd/v6.rb +2 -0
- data/lib/specinfra/command/freebsd/v6/user.rb +19 -0
- data/lib/specinfra/command/gentoo.rb +1 -0
- data/lib/specinfra/command/gentoo/base.rb +2 -0
- data/lib/specinfra/command/gentoo/base/package.rb +7 -0
- data/lib/specinfra/command/gentoo/base/service.rb +19 -0
- data/lib/specinfra/command/linux.rb +1 -0
- data/lib/specinfra/command/linux/base.rb +2 -0
- data/lib/specinfra/command/linux/base/bond.rb +11 -0
- data/lib/specinfra/command/linux/base/bridge.rb +11 -0
- data/lib/specinfra/command/linux/base/file.rb +20 -0
- data/lib/specinfra/command/linux/base/fstab.rb +9 -0
- data/lib/specinfra/command/linux/base/interface.rb +38 -0
- data/lib/specinfra/command/linux/base/inventory.rb +31 -0
- data/lib/specinfra/command/linux/base/ip6tables.rb +15 -0
- data/lib/specinfra/command/linux/base/iptables.rb +12 -0
- data/lib/specinfra/command/linux/base/kernel_module.rb +7 -0
- data/lib/specinfra/command/linux/base/lxc_container.rb +11 -0
- data/lib/specinfra/command/linux/base/package.rb +2 -0
- data/lib/specinfra/command/linux/base/ppa.rb +2 -0
- data/lib/specinfra/command/linux/base/selinux.rb +12 -0
- data/lib/specinfra/command/linux/base/selinux_module.rb +16 -0
- data/lib/specinfra/command/linux/base/service.rb +2 -0
- data/lib/specinfra/command/linux/base/yumrepo.rb +2 -0
- data/lib/specinfra/command/linux/base/zfs.rb +5 -0
- data/lib/specinfra/command/module.rb +7 -0
- data/lib/specinfra/command/module/service/daemontools.rb +46 -0
- data/lib/specinfra/command/module/service/delegator.rb +20 -0
- data/lib/specinfra/command/module/service/god.rb +13 -0
- data/lib/specinfra/command/module/service/init.rb +42 -0
- data/lib/specinfra/command/module/service/monit.rb +13 -0
- data/lib/specinfra/command/module/service/runit.rb +13 -0
- data/lib/specinfra/command/module/service/supervisor.rb +13 -0
- data/lib/specinfra/command/module/service/systemd.rb +41 -0
- data/lib/specinfra/command/module/service/upstart.rb +13 -0
- data/lib/specinfra/command/module/ss.rb +39 -0
- data/lib/specinfra/command/module/systemd.rb +12 -0
- data/lib/specinfra/command/module/zfs.rb +25 -0
- data/lib/specinfra/command/nexus.rb +1 -0
- data/lib/specinfra/command/nexus/base.rb +2 -0
- data/lib/specinfra/command/nexus/base/file.rb +8 -0
- data/lib/specinfra/command/nexus/base/host.rb +2 -0
- data/lib/specinfra/command/nexus/base/iptables.rb +11 -0
- data/lib/specinfra/command/nexus/base/package.rb +30 -0
- data/lib/specinfra/command/nexus/base/port.rb +5 -0
- data/lib/specinfra/command/nexus/base/service.rb +2 -0
- data/lib/specinfra/command/nexus/base/yumrepo.rb +11 -0
- data/lib/specinfra/command/nexus/v7.rb +3 -0
- data/lib/specinfra/command/nixos.rb +1 -0
- data/lib/specinfra/command/nixos/base.rb +2 -0
- data/lib/specinfra/command/nixos/base/package.rb +17 -0
- data/lib/specinfra/command/nixos/base/service.rb +5 -0
- data/lib/specinfra/command/openbsd.rb +1 -0
- data/lib/specinfra/command/openbsd/base.rb +4 -0
- data/lib/specinfra/command/openbsd/base/bond.rb +11 -0
- data/lib/specinfra/command/openbsd/base/bridge.rb +11 -0
- data/lib/specinfra/command/openbsd/base/file.rb +47 -0
- data/lib/specinfra/command/openbsd/base/fstab.rb +9 -0
- data/lib/specinfra/command/openbsd/base/interface.rb +40 -0
- data/lib/specinfra/command/openbsd/base/inventory.rb +28 -0
- data/lib/specinfra/command/openbsd/base/mail_alias.rb +7 -0
- data/lib/specinfra/command/openbsd/base/package.rb +15 -0
- data/lib/specinfra/command/openbsd/base/port.rb +7 -0
- data/lib/specinfra/command/openbsd/base/routing_table.rb +9 -0
- data/lib/specinfra/command/openbsd/base/service.rb +11 -0
- data/lib/specinfra/command/openbsd/base/user.rb +11 -0
- data/lib/specinfra/command/opensuse.rb +1 -0
- data/lib/specinfra/command/opensuse/base.rb +3 -0
- data/lib/specinfra/command/opensuse/base/service.rb +12 -0
- data/lib/specinfra/command/plamo.rb +1 -0
- data/lib/specinfra/command/plamo/base.rb +3 -0
- data/lib/specinfra/command/plamo/base/package.rb +11 -0
- data/lib/specinfra/command/plamo/base/service.rb +14 -0
- data/lib/specinfra/command/redhat.rb +1 -0
- data/lib/specinfra/command/redhat/base.rb +2 -0
- data/lib/specinfra/command/redhat/base/file.rb +8 -0
- data/lib/specinfra/command/redhat/base/host.rb +2 -0
- data/lib/specinfra/command/redhat/base/iptables.rb +11 -0
- data/lib/specinfra/command/redhat/base/package.rb +39 -0
- data/lib/specinfra/command/redhat/base/port.rb +2 -0
- data/lib/specinfra/command/redhat/base/service.rb +2 -0
- data/lib/specinfra/command/redhat/base/yumrepo.rb +13 -0
- data/lib/specinfra/command/redhat/v5.rb +3 -0
- data/lib/specinfra/command/redhat/v5/iptables.rb +10 -0
- data/lib/specinfra/command/redhat/v7.rb +3 -0
- data/lib/specinfra/command/redhat/v7/host.rb +15 -0
- data/lib/specinfra/command/redhat/v7/port.rb +5 -0
- data/lib/specinfra/command/redhat/v7/service.rb +5 -0
- data/lib/specinfra/command/smartos.rb +1 -0
- data/lib/specinfra/command/smartos/base.rb +3 -0
- data/lib/specinfra/command/smartos/base/file.rb +11 -0
- data/lib/specinfra/command/smartos/base/package.rb +15 -0
- data/lib/specinfra/command/smartos/base/service.rb +11 -0
- data/lib/specinfra/command/solaris.rb +1 -0
- data/lib/specinfra/command/solaris/base.rb +2 -0
- data/lib/specinfra/command/solaris/base/cron.rb +12 -0
- data/lib/specinfra/command/solaris/base/file.rb +20 -0
- data/lib/specinfra/command/solaris/base/group.rb +8 -0
- data/lib/specinfra/command/solaris/base/host.rb +14 -0
- data/lib/specinfra/command/solaris/base/inventory.rb +37 -0
- data/lib/specinfra/command/solaris/base/ipfilter.rb +7 -0
- data/lib/specinfra/command/solaris/base/ipnat.rb +14 -0
- data/lib/specinfra/command/solaris/base/package.rb +14 -0
- data/lib/specinfra/command/solaris/base/port.rb +13 -0
- data/lib/specinfra/command/solaris/base/service.rb +24 -0
- data/lib/specinfra/command/solaris/base/user.rb +15 -0
- data/lib/specinfra/command/solaris/base/zfs.rb +13 -0
- data/lib/specinfra/command/solaris/v10.rb +2 -0
- data/lib/specinfra/command/solaris/v10/file.rb +42 -0
- data/lib/specinfra/command/solaris/v10/group.rb +7 -0
- data/lib/specinfra/command/solaris/v10/host.rb +13 -0
- data/lib/specinfra/command/solaris/v10/package.rb +11 -0
- data/lib/specinfra/command/solaris/v10/user.rb +18 -0
- data/lib/specinfra/command/suse.rb +1 -0
- data/lib/specinfra/command/suse/base.rb +2 -0
- data/lib/specinfra/command/suse/base/package.rb +21 -0
- data/lib/specinfra/command/suse/base/service.rb +14 -0
- data/lib/specinfra/command/ubuntu.rb +11 -0
- data/lib/specinfra/command/ubuntu/base.rb +2 -0
- data/lib/specinfra/command/ubuntu/base/ppa.rb +17 -0
- data/lib/specinfra/command/ubuntu/base/service.rb +7 -0
- data/lib/specinfra/command/ubuntu/v15.rb +1 -0
- data/lib/specinfra/command/ubuntu/v15/service.rb +5 -0
- data/lib/specinfra/command/windows.rb +1 -0
- data/lib/specinfra/command/windows/base.rb +22 -0
- data/lib/specinfra/command/windows/base/feature.rb +17 -0
- data/lib/specinfra/command/windows/base/file.rb +113 -0
- data/lib/specinfra/command/windows/base/group.rb +11 -0
- data/lib/specinfra/command/windows/base/host.rb +25 -0
- data/lib/specinfra/command/windows/base/hot_fix.rb +19 -0
- data/lib/specinfra/command/windows/base/iis_app_pool.rb +66 -0
- data/lib/specinfra/command/windows/base/iis_website.rb +59 -0
- data/lib/specinfra/command/windows/base/package.rb +11 -0
- data/lib/specinfra/command/windows/base/port.rb +17 -0
- data/lib/specinfra/command/windows/base/process.rb +31 -0
- data/lib/specinfra/command/windows/base/registry_key.rb +53 -0
- data/lib/specinfra/command/windows/base/scheduled_task.rb +10 -0
- data/lib/specinfra/command/windows/base/service.rb +31 -0
- data/lib/specinfra/command/windows/base/user.rb +22 -0
- data/lib/specinfra/command_factory.rb +83 -0
- data/lib/specinfra/command_result.rb +28 -0
- data/lib/specinfra/configuration.rb +62 -0
- data/lib/specinfra/core.rb +18 -0
- data/lib/specinfra/ec2_metadata.rb +93 -0
- data/lib/specinfra/ext.rb +2 -0
- data/lib/specinfra/ext/class.rb +9 -0
- data/lib/specinfra/ext/string.rb +14 -0
- data/lib/specinfra/helper.rb +6 -0
- data/lib/specinfra/helper/configuration.rb +41 -0
- data/lib/specinfra/helper/detect_os.rb +38 -0
- data/lib/specinfra/helper/detect_os/aix.rb +12 -0
- data/lib/specinfra/helper/detect_os/alpine.rb +8 -0
- data/lib/specinfra/helper/detect_os/arch.rb +7 -0
- data/lib/specinfra/helper/detect_os/coreos.rb +18 -0
- data/lib/specinfra/helper/detect_os/darwin.rb +11 -0
- data/lib/specinfra/helper/detect_os/debian.rb +26 -0
- data/lib/specinfra/helper/detect_os/esxi.rb +10 -0
- data/lib/specinfra/helper/detect_os/freebsd.rb +11 -0
- data/lib/specinfra/helper/detect_os/gentoo.rb +7 -0
- data/lib/specinfra/helper/detect_os/nexus.rb +14 -0
- data/lib/specinfra/helper/detect_os/nixos.rb +7 -0
- data/lib/specinfra/helper/detect_os/openbsd.rb +11 -0
- data/lib/specinfra/helper/detect_os/plamo.rb +7 -0
- data/lib/specinfra/helper/detect_os/redhat.rb +31 -0
- data/lib/specinfra/helper/detect_os/solaris.rb +15 -0
- data/lib/specinfra/helper/detect_os/suse.rb +15 -0
- data/lib/specinfra/helper/docker.rb +11 -0
- data/lib/specinfra/helper/host_inventory.rb +12 -0
- data/lib/specinfra/helper/lxc.rb +11 -0
- data/lib/specinfra/helper/os.rb +35 -0
- data/lib/specinfra/helper/properties.rb +14 -0
- data/lib/specinfra/helper/set.rb +10 -0
- data/lib/specinfra/host_inventory.rb +68 -0
- data/lib/specinfra/host_inventory/base.rb +14 -0
- data/lib/specinfra/host_inventory/cpu.rb +77 -0
- data/lib/specinfra/host_inventory/domain.rb +16 -0
- data/lib/specinfra/host_inventory/ec2.rb +11 -0
- data/lib/specinfra/host_inventory/filesystem.rb +31 -0
- data/lib/specinfra/host_inventory/fqdn.rb +16 -0
- data/lib/specinfra/host_inventory/hostname.rb +16 -0
- data/lib/specinfra/host_inventory/kernel.rb +27 -0
- data/lib/specinfra/host_inventory/memory.rb +83 -0
- data/lib/specinfra/host_inventory/platform.rb +9 -0
- data/lib/specinfra/host_inventory/platform_version.rb +15 -0
- data/lib/specinfra/host_inventory/virtualization.rb +39 -0
- data/lib/specinfra/processor.rb +229 -0
- data/lib/specinfra/properties.rb +17 -0
- data/lib/specinfra/runner.rb +35 -0
- data/lib/specinfra/version.rb +3 -0
- data/spec/backend/exec/build_command_spec.rb +148 -0
- data/spec/backend/exec/child_process_spec.rb +18 -0
- data/spec/backend/exec/env_spec.rb +16 -0
- data/spec/backend/exec/read_noblock_spec.rb +50 -0
- data/spec/backend/exec/stdxxx_handler_spec.rb +25 -0
- data/spec/backend/ssh/build_command_spec.rb +115 -0
- data/spec/command/amazon/interface_spec.rb +9 -0
- data/spec/command/amazon/package_spec.rb +7 -0
- data/spec/command/amazon/service_spec.rb +28 -0
- data/spec/command/base/file_spec.rb +91 -0
- data/spec/command/base/group_spec.rb +16 -0
- data/spec/command/base/localhost_spec.rb +7 -0
- data/spec/command/base/package_spec.rb +11 -0
- data/spec/command/base/user_spec.rb +59 -0
- data/spec/command/darwin/file_spec.rb +16 -0
- data/spec/command/darwin/user_spec.rb +15 -0
- data/spec/command/debian/service_spec.rb +28 -0
- data/spec/command/esxi/package_spec.rb +8 -0
- data/spec/command/factory_spec.rb +30 -0
- data/spec/command/freebsd/file_spec.rb +12 -0
- data/spec/command/freebsd/interface_spec.rb +28 -0
- data/spec/command/linux/bond_spec.rb +12 -0
- data/spec/command/linux/bridge_spec.rb +12 -0
- data/spec/command/linux/file_spec.rb +12 -0
- data/spec/command/linux/interface_spec.rb +24 -0
- data/spec/command/linux/inventory_spec.rb +15 -0
- data/spec/command/linux/ip6tables_spec.rb +7 -0
- data/spec/command/linux/selinux_module_spec.rb +12 -0
- data/spec/command/linux/selinux_spec.rb +8 -0
- data/spec/command/module/service/daemontools_spec.rb +18 -0
- data/spec/command/module/service/init_spec.rb +18 -0
- data/spec/command/module/service/systemd_spec.rb +16 -0
- data/spec/command/module/ss_spec.rb +28 -0
- data/spec/command/module/systemd_spec.rb +19 -0
- data/spec/command/module/zfs_spec.rb +6 -0
- data/spec/command/openbsd/file_spec.rb +12 -0
- data/spec/command/openbsd/interface_spec.rb +28 -0
- data/spec/command/redhat/package_spec.rb +8 -0
- data/spec/command/redhat/service_spec.rb +28 -0
- data/spec/command/redhat7/host_spec.rb +13 -0
- data/spec/command/redhat7/interface_spec.rb +9 -0
- data/spec/command/redhat7/port_spec.rb +8 -0
- data/spec/command/redhat7/service_spec.rb +32 -0
- data/spec/command/ubuntu/ppa_spec.rb +12 -0
- data/spec/command/windows/registry_key_spec.rb +36 -0
- data/spec/configuration_spec.rb +14 -0
- data/spec/helper/detect_os/aix_spec.rb +58 -0
- data/spec/helper/detect_os/darwin_spec.rb +42 -0
- data/spec/helper/detect_os/esxi_spec.rb +22 -0
- data/spec/helper/detect_os/freebsd_spec.rb +42 -0
- data/spec/helper/detect_os/openbsd_spec.rb +42 -0
- data/spec/helper/os_spec.rb +58 -0
- data/spec/helper/properties_spec.rb +11 -0
- data/spec/helper/set_spec.rb +14 -0
- data/spec/host_inventory/aix/filesystem_spec.rb +107 -0
- data/spec/host_inventory/darwin/filesystem_spec.rb +63 -0
- data/spec/host_inventory/freebsd/filesystem_spec.rb +123 -0
- data/spec/host_inventory/linux/cpu_spec.rb +123 -0
- data/spec/host_inventory/linux/filesystem_spec.rb +53 -0
- data/spec/host_inventory/linux/kernel_spec.rb +33 -0
- data/spec/host_inventory/linux/memory_spec.rb +145 -0
- data/spec/host_inventory/linux/virtualization_docker_spec.rb +134 -0
- data/spec/host_inventory/linux/virtualization_kvm_spec.rb +132 -0
- data/spec/host_inventory/openbsd/filesystem_spec.rb +43 -0
- data/spec/host_inventory/solaris/filesystem_spec.rb +137 -0
- data/spec/spec_helper.rb +26 -0
- data/specinfra-cisco.gemspec +28 -0
- metadata +613 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Coreos < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if run_command('ls /etc/coreos/update.conf').success?
|
4
|
+
distro = nil
|
5
|
+
release = nil
|
6
|
+
lsb_release = run_command("cat /etc/lsb-release")
|
7
|
+
if lsb_release.success?
|
8
|
+
lsb_release.stdout.each_line do |line|
|
9
|
+
distro = line.split('=').last.strip if line =~ /^DISTRIB_ID=/
|
10
|
+
release = line.split('=').last.strip if line =~ /^DISTRIB_RELEASE=/
|
11
|
+
end
|
12
|
+
end
|
13
|
+
distro ||= 'coreos'
|
14
|
+
release ||= nil
|
15
|
+
{ :family => distro.gsub(/[^[:alnum:]]/, '').downcase, :release => release }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Darwin < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if ( uname = run_command('uname -sr').stdout ) && uname =~ /Darwin/i
|
4
|
+
if uname =~ /([\d.]+)$/
|
5
|
+
{ :family => 'darwin', :release => $1 }
|
6
|
+
else
|
7
|
+
{ :family => 'darwin', :release => nil }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Debian < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if run_command('ls /etc/debian_version').success?
|
4
|
+
distro = nil
|
5
|
+
release = nil
|
6
|
+
lsb_release = run_command("lsb_release -ir")
|
7
|
+
if lsb_release.success?
|
8
|
+
lsb_release.stdout.each_line do |line|
|
9
|
+
distro = line.split(':').last.strip if line =~ /^Distributor ID:/
|
10
|
+
release = line.split(':').last.strip if line =~ /^Release:/
|
11
|
+
end
|
12
|
+
else
|
13
|
+
lsb_release = run_command("cat /etc/lsb-release")
|
14
|
+
if lsb_release.success?
|
15
|
+
lsb_release.stdout.each_line do |line|
|
16
|
+
distro = line.split('=').last.strip if line =~ /^DISTRIB_ID=/
|
17
|
+
release = line.split('=').last.strip if line =~ /^DISTRIB_RELEASE=/
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
distro ||= 'debian'
|
22
|
+
release ||= nil
|
23
|
+
{ :family => distro.gsub(/[^[:alnum:]]/, '').downcase, :release => release }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Freebsd < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if ( uname = run_command('uname -sr').stdout ) && uname =~ /FreeBSD/i
|
4
|
+
if uname =~ /(\d+)\./
|
5
|
+
{ :family => 'freebsd', :release => $1 }
|
6
|
+
else
|
7
|
+
{ :family => 'freebsd', :release => nil }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Nexus < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
# CentOS has a os-release file too, but this should do the right thing
|
4
|
+
if File.exists?('/etc/os-release')
|
5
|
+
contents = {}
|
6
|
+
File.read('/etc/os-release').split.collect {|x| x.split('=')}.each {|x| contents[x[0]] = x[1]}
|
7
|
+
# This test should only work on a nexus platform in the native OS
|
8
|
+
# It will fail in a guest/container shell, which should be picked up elsewhere
|
9
|
+
if contents['CISCO_RELEASE_INFO'] && contents['CISCO_RELEASE_INFO'] == "/etc/os-release"
|
10
|
+
{ :family => 'nexus', :release => contents['VERSION'] }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Openbsd < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if ( uname = run_command('uname -sr').stdout ) && uname =~ /OpenBSD/i
|
4
|
+
if uname =~ /(\d+\.\d+)/
|
5
|
+
{ :family => 'openbsd', :release => $1 }
|
6
|
+
else
|
7
|
+
{ :family => 'openbsd', :release => nil }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Redhat < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
# Fedora also has an /etc/redhat-release so the Fedora check must
|
4
|
+
# come before the RedHat check
|
5
|
+
if run_command('ls /etc/fedora-release').success?
|
6
|
+
line = run_command('cat /etc/redhat-release').stdout
|
7
|
+
if line =~ /release (\d[\d]*)/
|
8
|
+
release = $1
|
9
|
+
end
|
10
|
+
{ :family => 'fedora', :release => release }
|
11
|
+
elsif run_command('ls /etc/redhat-release').success?
|
12
|
+
line = run_command('cat /etc/redhat-release').stdout
|
13
|
+
if line =~ /release (\d[\d.]*)/
|
14
|
+
release = $1
|
15
|
+
end
|
16
|
+
|
17
|
+
{ :family => 'redhat', :release => release }
|
18
|
+
elsif run_command('ls /etc/system-release').success?
|
19
|
+
line = run_command('cat /etc/system-release').stdout
|
20
|
+
if line =~ /release (\d[\d.]*)/
|
21
|
+
release = $1
|
22
|
+
end
|
23
|
+
{ :family => 'amazon', :release => release }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Solaris < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if ( uname = run_command('uname -sr').stdout) && uname =~ /SunOS/i
|
4
|
+
if uname =~ /5.10/
|
5
|
+
{ :family => 'solaris', :release => 10 }
|
6
|
+
elsif run_command('grep -q "Oracle Solaris 11" /etc/release').success?
|
7
|
+
{ :family => 'solaris', :release => 11 }
|
8
|
+
elsif run_command('grep -q SmartOS /etc/release').success?
|
9
|
+
{ :family => 'smartos', :release => nil }
|
10
|
+
else
|
11
|
+
{ :family => 'solaris', :release => nil }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Suse < Specinfra::Helper::DetectOs
|
2
|
+
def detect
|
3
|
+
if run_command('ls /etc/SuSE-release').success?
|
4
|
+
line = run_command('cat /etc/SuSE-release').stdout
|
5
|
+
if line =~ /SUSE Linux Enterprise Server (\d+)/
|
6
|
+
release = $1
|
7
|
+
family = 'suse'
|
8
|
+
elsif line =~ /openSUSE (\d+\.\d+|\d+)/
|
9
|
+
release = $1
|
10
|
+
family = 'opensuse'
|
11
|
+
end
|
12
|
+
{ :family => family, :release => release }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'specinfra/helper/detect_os'
|
2
|
+
|
3
|
+
module Specinfra
|
4
|
+
module Helper
|
5
|
+
module Os
|
6
|
+
def os
|
7
|
+
property[:os] = {} if ! property[:os]
|
8
|
+
if ! property[:os].include?(:family)
|
9
|
+
property[:os] = detect_os
|
10
|
+
end
|
11
|
+
property[:os]
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def detect_os
|
16
|
+
return Specinfra.configuration.os if Specinfra.configuration.os
|
17
|
+
|
18
|
+
backend = Specinfra.configuration.backend
|
19
|
+
if backend == :cmd || backend == :winrm
|
20
|
+
return { :family => 'windows', :release => nil, :arch => nil }
|
21
|
+
end
|
22
|
+
|
23
|
+
Specinfra::Helper::DetectOs.subclasses.each do |c|
|
24
|
+
res = c.detect
|
25
|
+
if res
|
26
|
+
res[:arch] ||= Specinfra.backend.run_command('uname -m').stdout.strip
|
27
|
+
return res
|
28
|
+
end
|
29
|
+
end
|
30
|
+
raise NotImplementedError, "Specinfra failed os detection."
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'specinfra/properties'
|
2
|
+
|
3
|
+
module Specinfra
|
4
|
+
module Helper
|
5
|
+
module Properties
|
6
|
+
def property
|
7
|
+
Specinfra::Properties.instance.properties
|
8
|
+
end
|
9
|
+
def set_property(prop)
|
10
|
+
Specinfra::Properties.instance.properties(prop)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Specinfra
|
2
|
+
class HostInventory
|
3
|
+
KEYS = %w{
|
4
|
+
memory
|
5
|
+
ec2
|
6
|
+
hostname
|
7
|
+
domain
|
8
|
+
fqdn
|
9
|
+
platform
|
10
|
+
platform_version
|
11
|
+
filesystem
|
12
|
+
cpu
|
13
|
+
virtualization
|
14
|
+
kernel
|
15
|
+
}
|
16
|
+
|
17
|
+
include Enumerable
|
18
|
+
|
19
|
+
attr_reader :backend
|
20
|
+
|
21
|
+
def self.instance
|
22
|
+
property[:host_inventory] ||= {}
|
23
|
+
self.new(Specinfra.backend, property[:host_inventory])
|
24
|
+
end
|
25
|
+
|
26
|
+
def initialize(backend, inventory = {})
|
27
|
+
@backend = backend
|
28
|
+
@inventory = inventory
|
29
|
+
end
|
30
|
+
|
31
|
+
def [](key)
|
32
|
+
@inventory[key.to_sym] ||= {}
|
33
|
+
if @inventory[key.to_sym].empty?
|
34
|
+
begin
|
35
|
+
inventory_class = Specinfra::HostInventory.const_get(key.to_s.to_camel_case)
|
36
|
+
@inventory[key.to_sym] = inventory_class.new(self).get
|
37
|
+
rescue
|
38
|
+
@inventory[key.to_sym] = nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
@inventory[key.to_sym]
|
42
|
+
end
|
43
|
+
|
44
|
+
def each
|
45
|
+
KEYS.each do |k|
|
46
|
+
yield k, self[k]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def each_key
|
51
|
+
KEYS.each do |k|
|
52
|
+
yield k
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def each_value
|
57
|
+
KEYS.each do |k|
|
58
|
+
yield self[k]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
require "specinfra/host_inventory/base"
|
66
|
+
Specinfra::HostInventory::KEYS.each do |k|
|
67
|
+
require "specinfra/host_inventory/#{k}"
|
68
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module Specinfra
|
2
|
+
class HostInventory
|
3
|
+
class Cpu < Base
|
4
|
+
def get
|
5
|
+
cmd = backend.command.get(:get_inventory_cpu)
|
6
|
+
ret = backend.run_command(cmd)
|
7
|
+
if ret.exit_status == 0
|
8
|
+
parse(ret.stdout)
|
9
|
+
else
|
10
|
+
nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
def parse(cmd_ret)
|
14
|
+
cpuinfo = {}
|
15
|
+
cpus = cmd_ret.split(/[^^]processor/)
|
16
|
+
cpuinfo['total'] = cpus.length.to_s
|
17
|
+
cpus.each_with_index do |cpu, idx|
|
18
|
+
idx = idx.to_s
|
19
|
+
cpuinfo[idx] = {}
|
20
|
+
cpu.each_line do |line|
|
21
|
+
case line
|
22
|
+
when /^vendor_id\s*:\s+(.+)$/
|
23
|
+
cpuinfo[idx]['vendor_id'] = $1
|
24
|
+
when /^cpu family\s*:\s+(\d+)$/
|
25
|
+
cpuinfo[idx]['cpu_family'] = $1
|
26
|
+
when /^model\s*:\s+(\d+)$/
|
27
|
+
cpuinfo[idx]['model'] = $1
|
28
|
+
when /^model\sname\s*:\s+(.+)$/
|
29
|
+
cpuinfo[idx]['model_name'] = $1
|
30
|
+
when /^stepping\s*:\s+(\d+)$/
|
31
|
+
cpuinfo[idx]['stepping'] = $1
|
32
|
+
when /^microcode\s*:\s+(.+)$/
|
33
|
+
cpuinfo[idx]['microcode'] = $1
|
34
|
+
when /^cpu MHz\s*:\s+(.+)$/
|
35
|
+
cpuinfo[idx]['cpu_mhz'] = $1
|
36
|
+
when /^cache size\s*:\s+(\d+) (.+)$/
|
37
|
+
cpuinfo[idx]['cache_size'] = "#{$1}#{$2}"
|
38
|
+
when /^physical id\s*:\s+(\d+)$/
|
39
|
+
cpuinfo[idx]['physical_id'] = $1
|
40
|
+
when /^siblings\s*:\s+(\d+)$/
|
41
|
+
cpuinfo[idx]['siblings'] = $1
|
42
|
+
when /^core id\s*:\s+(\d+)$/
|
43
|
+
cpuinfo[idx]['core_id'] = $1
|
44
|
+
when /^cpu cores\s*:\s+(\d+)$/
|
45
|
+
cpuinfo[idx]['cpu_cores'] = $1
|
46
|
+
when /^apicid\s*:\s+(\d+)$/
|
47
|
+
cpuinfo[idx]['apicid'] = $1
|
48
|
+
when /^initial apicid\s*:\s+(\d+)$/
|
49
|
+
cpuinfo[idx]['initial_apicid'] = $1
|
50
|
+
when /^fpu\s*:\s+(.+)$/
|
51
|
+
cpuinfo[idx]['fpu'] = $1
|
52
|
+
when /^fpu_exception\s*:\s+(.+)$/
|
53
|
+
cpuinfo[idx]['fpu_exception'] = $1
|
54
|
+
when /^cpuid level\s*:\s+(\d+)$/
|
55
|
+
cpuinfo[idx]['cpuid_level'] = $1
|
56
|
+
when /^wp\s*:\s+(.+)$/
|
57
|
+
cpuinfo[idx]['wp'] = $1
|
58
|
+
when /^flags\s*:\s+(.+)$/
|
59
|
+
cpuinfo[idx]['flags'] = $1.split(/\s/)
|
60
|
+
when /^bogomips\s*:\s+(.+)$/
|
61
|
+
cpuinfo[idx]['bogomips'] = $1
|
62
|
+
when /^clflush size\s*:\s+(\d+)$/
|
63
|
+
cpuinfo[idx]['clflush_size'] = $1
|
64
|
+
when /^cache_alignment\s*:\s+(\d+)$/
|
65
|
+
cpuinfo[idx]['cache_alignment'] = $1
|
66
|
+
when /^address sizes\s*:\s+(.+)$/
|
67
|
+
cpuinfo[idx]['address_sizes'] = $1
|
68
|
+
when /^power management\s*:\s+(.*)$/
|
69
|
+
cpuinfo[idx]['power_management'] = $1
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
cpuinfo
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|