kanrisuru 0.12.0 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -1
- data/README.md +5 -5
- data/lib/kanrisuru/command.rb +10 -0
- data/lib/kanrisuru/core/apt/commands/autoclean.rb +13 -0
- data/lib/kanrisuru/core/apt/commands/autoremove.rb +15 -0
- data/lib/kanrisuru/core/apt/commands/clean.rb +13 -0
- data/lib/kanrisuru/core/apt/commands/full_upgrade.rb +14 -0
- data/lib/kanrisuru/core/apt/commands/install.rb +22 -0
- data/lib/kanrisuru/core/apt/commands/list.rb +21 -0
- data/lib/kanrisuru/core/apt/commands/purge.rb +18 -0
- data/lib/kanrisuru/core/apt/commands/remove.rb +18 -0
- data/lib/kanrisuru/core/apt/commands/search.rb +18 -0
- data/lib/kanrisuru/core/apt/commands/show.rb +21 -0
- data/lib/kanrisuru/core/apt/commands/update.rb +14 -0
- data/lib/kanrisuru/core/apt/commands/upgrade.rb +14 -0
- data/lib/kanrisuru/core/apt/commands.rb +14 -0
- data/lib/kanrisuru/core/apt/parser.rb +6 -0
- data/lib/kanrisuru/core/apt/parsers/base.rb +51 -0
- data/lib/kanrisuru/core/apt/parsers/list.rb +28 -0
- data/lib/kanrisuru/core/apt/parsers/search.rb +32 -0
- data/lib/kanrisuru/core/apt/parsers/show.rb +90 -0
- data/lib/kanrisuru/core/apt/types.rb +36 -0
- data/lib/kanrisuru/core/apt.rb +4 -284
- data/lib/kanrisuru/core/archive/commands/tar.rb +126 -0
- data/lib/kanrisuru/core/archive/commands.rb +3 -0
- data/lib/kanrisuru/core/archive/types.rb +9 -0
- data/lib/kanrisuru/core/archive.rb +3 -121
- data/lib/kanrisuru/core/disk/commands/blkid.rb +35 -0
- data/lib/kanrisuru/core/disk/commands/df.rb +26 -0
- data/lib/kanrisuru/core/disk/commands/du.rb +24 -0
- data/lib/kanrisuru/core/disk/commands/lsblk.rb +54 -0
- data/lib/kanrisuru/core/disk/commands.rb +6 -0
- data/lib/kanrisuru/core/disk/parser.rb +6 -0
- data/lib/kanrisuru/core/disk/parsers/blkid.rb +72 -0
- data/lib/kanrisuru/core/disk/parsers/df.rb +33 -0
- data/lib/kanrisuru/core/disk/parsers/du.rb +25 -0
- data/lib/kanrisuru/core/disk/parsers/lsblk.rb +96 -0
- data/lib/kanrisuru/core/disk/types.rb +21 -0
- data/lib/kanrisuru/core/disk.rb +5 -290
- data/lib/kanrisuru/core/dmi/commands/dmi.rb +42 -0
- data/lib/kanrisuru/core/dmi/commands.rb +3 -0
- data/lib/kanrisuru/core/dmi/parser.rb +3 -0
- data/lib/kanrisuru/core/dmi/parsers/dmi.rb +149 -0
- data/lib/kanrisuru/core/dmi/types.rb +361 -0
- data/lib/kanrisuru/core/dmi.rb +4 -522
- data/lib/kanrisuru/core/file/commands/chmod.rb +29 -0
- data/lib/kanrisuru/core/file/commands/chown.rb +35 -0
- data/lib/kanrisuru/core/file/commands/copy.rb +56 -0
- data/lib/kanrisuru/core/file/commands/link.rb +25 -0
- data/lib/kanrisuru/core/file/commands/mkdir.rb +37 -0
- data/lib/kanrisuru/core/file/commands/move.rb +48 -0
- data/lib/kanrisuru/core/file/commands/rm.rb +38 -0
- data/lib/kanrisuru/core/file/commands/symlink.rb +46 -0
- data/lib/kanrisuru/core/file/commands/touch.rb +33 -0
- data/lib/kanrisuru/core/file/commands/unlink.rb +13 -0
- data/lib/kanrisuru/core/file/commands/wc.rb +16 -0
- data/lib/kanrisuru/core/file/commands.rb +29 -0
- data/lib/kanrisuru/core/file/parser.rb +3 -0
- data/lib/kanrisuru/core/file/parsers/wc.rb +16 -0
- data/lib/kanrisuru/core/file/types.rb +9 -0
- data/lib/kanrisuru/core/file.rb +4 -312
- data/lib/kanrisuru/core/find/commands/find.rb +97 -0
- data/lib/kanrisuru/core/find/commands.rb +3 -0
- data/lib/kanrisuru/core/find/constants.rb +9 -0
- data/lib/kanrisuru/core/find/parser.rb +3 -0
- data/lib/kanrisuru/core/find/parsers/find.rb +18 -0
- data/lib/kanrisuru/core/find/types.rb +9 -0
- data/lib/kanrisuru/core/find.rb +5 -97
- data/lib/kanrisuru/core/group/commands/create_group.rb +21 -0
- data/lib/kanrisuru/core/group/commands/delete_group.rb +16 -0
- data/lib/kanrisuru/core/group/commands/get_gid.rb +17 -0
- data/lib/kanrisuru/core/group/commands/get_group.rb +29 -0
- data/lib/kanrisuru/core/group/commands/is_group.rb +14 -0
- data/lib/kanrisuru/core/group/commands/update_group.rb +23 -0
- data/lib/kanrisuru/core/group/commands.rb +8 -0
- data/lib/kanrisuru/core/group/parser.rb +4 -0
- data/lib/kanrisuru/core/group/parsers/gid.rb +15 -0
- data/lib/kanrisuru/core/group/parsers/group.rb +15 -0
- data/lib/kanrisuru/core/group/types.rb +10 -0
- data/lib/kanrisuru/core/group.rb +4 -81
- data/lib/kanrisuru/core/ip/commands/address.rb +86 -0
- data/lib/kanrisuru/core/ip/commands/address_label.rb +54 -0
- data/lib/kanrisuru/core/ip/commands/link.rb +116 -0
- data/lib/kanrisuru/core/ip/commands/link_set_opts.rb +61 -0
- data/lib/kanrisuru/core/ip/commands/link_type_opts.rb +313 -0
- data/lib/kanrisuru/core/ip/commands/maddress.rb +42 -0
- data/lib/kanrisuru/core/ip/commands/neighbour.rb +72 -0
- data/lib/kanrisuru/core/ip/commands/route.rb +152 -0
- data/lib/kanrisuru/core/ip/commands/rule.rb +57 -0
- data/lib/kanrisuru/core/ip/commands.rb +26 -0
- data/lib/kanrisuru/core/ip/constants.rb +25 -0
- data/lib/kanrisuru/core/ip/parser.rb +11 -0
- data/lib/kanrisuru/core/ip/parsers/address.rb +104 -0
- data/lib/kanrisuru/core/ip/parsers/address_label.rb +27 -0
- data/lib/kanrisuru/core/ip/parsers/base.rb +166 -0
- data/lib/kanrisuru/core/ip/parsers/link.rb +86 -0
- data/lib/kanrisuru/core/ip/parsers/maddress.rb +85 -0
- data/lib/kanrisuru/core/ip/parsers/neighbour.rb +89 -0
- data/lib/kanrisuru/core/ip/parsers/route.rb +76 -0
- data/lib/kanrisuru/core/ip/parsers/rule.rb +60 -0
- data/lib/kanrisuru/core/ip/parsers/version.rb +15 -0
- data/lib/kanrisuru/core/ip/types.rb +46 -0
- data/lib/kanrisuru/core/ip.rb +15 -1002
- data/lib/kanrisuru/core/mount/commands/mount.rb +65 -0
- data/lib/kanrisuru/core/mount/commands/umount.rb +35 -0
- data/lib/kanrisuru/core/mount/commands.rb +49 -0
- data/lib/kanrisuru/core/mount.rb +2 -125
- data/lib/kanrisuru/core/path/commands/ls.rb +26 -0
- data/lib/kanrisuru/core/path/commands/pwd.rb +16 -0
- data/lib/kanrisuru/core/path/commands/readlink.rb +22 -0
- data/lib/kanrisuru/core/path/commands/realpath.rb +18 -0
- data/lib/kanrisuru/core/path/commands/which.rb +19 -0
- data/lib/kanrisuru/core/path/commands/whoami.rb +16 -0
- data/lib/kanrisuru/core/path/commands.rb +8 -0
- data/lib/kanrisuru/core/path/parser.rb +4 -0
- data/lib/kanrisuru/core/path/parsers/ls.rb +53 -0
- data/lib/kanrisuru/core/path/parsers/which.rb +18 -0
- data/lib/kanrisuru/core/path/types.rb +12 -0
- data/lib/kanrisuru/core/path.rb +4 -121
- data/lib/kanrisuru/core/socket/commands/ss.rb +44 -0
- data/lib/kanrisuru/core/socket/commands.rb +3 -0
- data/lib/kanrisuru/core/socket/constants.rb +29 -0
- data/lib/kanrisuru/core/socket/parser.rb +3 -0
- data/lib/kanrisuru/core/socket/parsers/ss.rb +109 -0
- data/lib/kanrisuru/core/socket/types.rb +18 -0
- data/lib/kanrisuru/core/socket.rb +5 -164
- data/lib/kanrisuru/core/stat/commands/stat.rb +62 -0
- data/lib/kanrisuru/core/stat/commands.rb +3 -0
- data/lib/kanrisuru/core/stat/parser.rb +3 -0
- data/lib/kanrisuru/core/stat/parsers/stat.rb +34 -0
- data/lib/kanrisuru/core/stat/types.rb +14 -0
- data/lib/kanrisuru/core/stat.rb +4 -81
- data/lib/kanrisuru/core/stream/commands/cat.rb +25 -0
- data/lib/kanrisuru/core/stream/commands/echo.rb +20 -0
- data/lib/kanrisuru/core/stream/commands/head.rb +18 -0
- data/lib/kanrisuru/core/stream/commands/read_file_chunk.rb +21 -0
- data/lib/kanrisuru/core/stream/commands/sed.rb +23 -0
- data/lib/kanrisuru/core/stream/commands/tail.rb +18 -0
- data/lib/kanrisuru/core/stream/commands.rb +27 -0
- data/lib/kanrisuru/core/stream/parser.rb +4 -0
- data/lib/kanrisuru/core/stream/parsers/echo.rb +17 -0
- data/lib/kanrisuru/core/stream/parsers/sed.rb +17 -0
- data/lib/kanrisuru/core/stream.rb +3 -104
- data/lib/kanrisuru/core/system/commands/cpu_info.rb +32 -0
- data/lib/kanrisuru/core/system/commands/free.rb +25 -0
- data/lib/kanrisuru/core/system/commands/kernel_statistics.rb +21 -0
- data/lib/kanrisuru/core/system/commands/kill.rb +22 -0
- data/lib/kanrisuru/core/system/commands/last.rb +31 -0
- data/lib/kanrisuru/core/system/commands/load_average.rb +16 -0
- data/lib/kanrisuru/core/system/commands/load_env.rb +16 -0
- data/lib/kanrisuru/core/system/commands/lscpu.rb +17 -0
- data/lib/kanrisuru/core/system/commands/lsof.rb +16 -0
- data/lib/kanrisuru/core/system/commands/poweroff.rb +42 -0
- data/lib/kanrisuru/core/system/commands/ps.rb +35 -0
- data/lib/kanrisuru/core/system/commands/reboot.rb +42 -0
- data/lib/kanrisuru/core/system/commands/uptime.rb +18 -0
- data/lib/kanrisuru/core/system/commands/w.rb +24 -0
- data/lib/kanrisuru/core/system/commands.rb +34 -0
- data/lib/kanrisuru/core/system/parser.rb +11 -0
- data/lib/kanrisuru/core/system/parsers/kernel_statistics.rb +56 -0
- data/lib/kanrisuru/core/system/parsers/last.rb +64 -0
- data/lib/kanrisuru/core/system/parsers/load_average.rb +15 -0
- data/lib/kanrisuru/core/system/parsers/load_env.rb +24 -0
- data/lib/kanrisuru/core/system/parsers/lscpu.rb +90 -0
- data/lib/kanrisuru/core/system/parsers/lsof.rb +62 -0
- data/lib/kanrisuru/core/system/parsers/ps.rb +71 -0
- data/lib/kanrisuru/core/system/parsers/uptime.rb +38 -0
- data/lib/kanrisuru/core/system/parsers/w.rb +30 -0
- data/lib/kanrisuru/core/system/types.rb +108 -0
- data/lib/kanrisuru/core/system.rb +4 -687
- data/lib/kanrisuru/core/transfer/commands/download.rb +26 -0
- data/lib/kanrisuru/core/transfer/commands/upload.rb +23 -0
- data/lib/kanrisuru/core/transfer/commands/wget.rb +168 -0
- data/lib/kanrisuru/core/transfer/commands.rb +5 -0
- data/lib/kanrisuru/core/transfer/constants.rb +10 -0
- data/lib/kanrisuru/core/transfer.rb +3 -199
- data/lib/kanrisuru/core/user/commands/create_user.rb +57 -0
- data/lib/kanrisuru/core/user/commands/delete_user.rb +20 -0
- data/lib/kanrisuru/core/user/commands/get_uid.rb +15 -0
- data/lib/kanrisuru/core/user/commands/get_user.rb +48 -0
- data/lib/kanrisuru/core/user/commands/is_user.rb +14 -0
- data/lib/kanrisuru/core/user/commands/update_user.rb +63 -0
- data/lib/kanrisuru/core/user/commands.rb +8 -0
- data/lib/kanrisuru/core/user/parser.rb +4 -0
- data/lib/kanrisuru/core/user/parsers/getent.rb +17 -0
- data/lib/kanrisuru/core/user/parsers/groups.rb +17 -0
- data/lib/kanrisuru/core/user/types.rb +11 -0
- data/lib/kanrisuru/core/user.rb +4 -182
- data/lib/kanrisuru/core/yum/commands/autoremove.rb +14 -0
- data/lib/kanrisuru/core/yum/commands/clean.rb +23 -0
- data/lib/kanrisuru/core/yum/commands/erase.rb +20 -0
- data/lib/kanrisuru/core/yum/commands/info.rb +21 -0
- data/lib/kanrisuru/core/yum/commands/install.rb +18 -0
- data/lib/kanrisuru/core/yum/commands/list.rb +30 -0
- data/lib/kanrisuru/core/yum/commands/localinstall.rb +22 -0
- data/lib/kanrisuru/core/yum/commands/remove.rb +20 -0
- data/lib/kanrisuru/core/yum/commands/repolist.rb +20 -0
- data/lib/kanrisuru/core/yum/commands/search.rb +21 -0
- data/lib/kanrisuru/core/yum/commands/update.rb +14 -0
- data/lib/kanrisuru/core/yum/commands/upgrade.rb +14 -0
- data/lib/kanrisuru/core/yum/commands.rb +39 -0
- data/lib/kanrisuru/core/yum/parser.rb +7 -0
- data/lib/kanrisuru/core/yum/parsers/base.rb +31 -0
- data/lib/kanrisuru/core/yum/parsers/info.rb +69 -0
- data/lib/kanrisuru/core/yum/parsers/list.rb +24 -0
- data/lib/kanrisuru/core/yum/parsers/repolist.rb +60 -0
- data/lib/kanrisuru/core/yum/parsers/search.rb +30 -0
- data/lib/kanrisuru/core/yum/types.rb +41 -0
- data/lib/kanrisuru/core/yum.rb +4 -347
- data/lib/kanrisuru/core/zypper/commands/add_lock.rb +22 -0
- data/lib/kanrisuru/core/zypper/commands/add_repo.rb +38 -0
- data/lib/kanrisuru/core/zypper/commands/add_service.rb +26 -0
- data/lib/kanrisuru/core/zypper/commands/clean_cache.rb +22 -0
- data/lib/kanrisuru/core/zypper/commands/clean_locks.rb +17 -0
- data/lib/kanrisuru/core/zypper/commands/dist_upgrade.rb +25 -0
- data/lib/kanrisuru/core/zypper/commands/info.rb +25 -0
- data/lib/kanrisuru/core/zypper/commands/install.rb +39 -0
- data/lib/kanrisuru/core/zypper/commands/install_new_recommends.rb +23 -0
- data/lib/kanrisuru/core/zypper/commands/list_locks.rb +22 -0
- data/lib/kanrisuru/core/zypper/commands/list_patches.rb +34 -0
- data/lib/kanrisuru/core/zypper/commands/list_repos.rb +21 -0
- data/lib/kanrisuru/core/zypper/commands/list_services.rb +21 -0
- data/lib/kanrisuru/core/zypper/commands/list_updates.rb +30 -0
- data/lib/kanrisuru/core/zypper/commands/modify_repo.rb +48 -0
- data/lib/kanrisuru/core/zypper/commands/modify_service.rb +40 -0
- data/lib/kanrisuru/core/zypper/commands/patch.rb +40 -0
- data/lib/kanrisuru/core/zypper/commands/patch_check.rb +29 -0
- data/lib/kanrisuru/core/zypper/commands/purge_kernels.rb +18 -0
- data/lib/kanrisuru/core/zypper/commands/refresh_repos.rb +24 -0
- data/lib/kanrisuru/core/zypper/commands/refresh_services.rb +21 -0
- data/lib/kanrisuru/core/zypper/commands/remove.rb +26 -0
- data/lib/kanrisuru/core/zypper/commands/remove_lock.rb +22 -0
- data/lib/kanrisuru/core/zypper/commands/remove_repo.rb +32 -0
- data/lib/kanrisuru/core/zypper/commands/remove_service.rb +21 -0
- data/lib/kanrisuru/core/zypper/commands/rename_repo.rb +20 -0
- data/lib/kanrisuru/core/zypper/commands/search.rb +52 -0
- data/lib/kanrisuru/core/zypper/commands/source_install.rb +22 -0
- data/lib/kanrisuru/core/zypper/commands/update.rb +27 -0
- data/lib/kanrisuru/core/zypper/commands/verify.rb +23 -0
- data/lib/kanrisuru/core/zypper/commands.rb +109 -0
- data/lib/kanrisuru/core/zypper/constants.rb +19 -0
- data/lib/kanrisuru/core/zypper/parser.rb +11 -0
- data/lib/kanrisuru/core/zypper/parsers/base.rb +18 -0
- data/lib/kanrisuru/core/zypper/parsers/info.rb +77 -0
- data/lib/kanrisuru/core/zypper/parsers/list_locks.rb +36 -0
- data/lib/kanrisuru/core/zypper/parsers/list_patches.rb +40 -0
- data/lib/kanrisuru/core/zypper/parsers/list_repos.rb +37 -0
- data/lib/kanrisuru/core/zypper/parsers/list_services.rb +36 -0
- data/lib/kanrisuru/core/zypper/parsers/list_updates.rb +32 -0
- data/lib/kanrisuru/core/zypper/parsers/patch_check.rb +34 -0
- data/lib/kanrisuru/core/zypper/parsers/search.rb +37 -0
- data/lib/kanrisuru/core/zypper/types.rb +88 -0
- data/lib/kanrisuru/core/zypper.rb +5 -998
- data/lib/kanrisuru/version.rb +1 -1
- data/spec/functional/core/ip/ip_address_label_spec.rb +81 -0
- data/spec/functional/core/ip/ip_address_spec.rb +95 -0
- data/spec/functional/core/ip/ip_link_spec.rb +814 -0
- data/spec/functional/core/ip/ip_maddress_spec.rb +78 -0
- data/spec/functional/core/ip/ip_neighbour_spec.rb +119 -0
- data/spec/functional/core/ip/ip_route_spec.rb +174 -0
- data/spec/functional/core/ip/ip_rule_spec.rb +75 -0
- data/spec/functional/core/ip/ip_spec.rb +27 -0
- data/spec/functional/result_spec.rb +150 -0
- data/spec/{hosts.json → helper/hosts.json} +0 -0
- data/spec/helper/simplecov.rb +21 -0
- data/spec/helper/test_hosts.rb +3 -3
- data/spec/integration/core/apt/debian_spec.rb +9 -0
- data/spec/integration/core/apt/ubuntu_spec.rb +9 -0
- data/spec/integration/core/archive/centos_spec.rb +9 -0
- data/spec/integration/core/archive/debian_spec.rb +9 -0
- data/spec/integration/core/archive/fedora_spec.rb +9 -0
- data/spec/integration/core/archive/opensuse_spec.rb +9 -0
- data/spec/integration/core/archive/rhel_spec.rb +9 -0
- data/spec/integration/core/archive/sles_spec.rb +9 -0
- data/spec/integration/core/archive/ubuntu_spec.rb +9 -0
- data/spec/integration/core/disk/centos_spec.rb +9 -0
- data/spec/integration/core/disk/debian_spec.rb +9 -0
- data/spec/integration/core/disk/fedora_spec.rb +9 -0
- data/spec/integration/core/disk/opensuse_spec.rb +9 -0
- data/spec/integration/core/disk/rhel_spec.rb +9 -0
- data/spec/integration/core/disk/sles_spec.rb +9 -0
- data/spec/integration/core/disk/ubuntu_spec.rb +9 -0
- data/spec/integration/core/dmi/centos_spec.rb +9 -0
- data/spec/integration/core/dmi/debian_spec.rb +9 -0
- data/spec/integration/core/dmi/fedora_spec.rb +9 -0
- data/spec/integration/core/dmi/opensuse_spec.rb +9 -0
- data/spec/integration/core/dmi/rhel_spec.rb +9 -0
- data/spec/integration/core/dmi/sles_spec.rb +9 -0
- data/spec/integration/core/dmi/ubuntu_spec.rb +9 -0
- data/spec/integration/core/file/centos_spec.rb +9 -0
- data/spec/integration/core/file/debian_spec.rb +9 -0
- data/spec/integration/core/file/fedora_spec.rb +9 -0
- data/spec/integration/core/file/opensuse_spec.rb +9 -0
- data/spec/integration/core/file/rhel_spec.rb +9 -0
- data/spec/integration/core/file/sles_spec.rb +9 -0
- data/spec/integration/core/file/ubuntu_spec.rb +9 -0
- data/spec/integration/core/find/centos_spec.rb +9 -0
- data/spec/integration/core/find/debian_spec.rb +9 -0
- data/spec/integration/core/find/fedora_spec.rb +9 -0
- data/spec/integration/core/find/opensuse_spec.rb +9 -0
- data/spec/integration/core/find/rhel_spec.rb +9 -0
- data/spec/integration/core/find/sles_spec.rb +9 -0
- data/spec/integration/core/find/ubuntu_spec.rb +9 -0
- data/spec/integration/core/group/centos_spec.rb +9 -0
- data/spec/integration/core/group/debian_spec.rb +9 -0
- data/spec/integration/core/group/fedora_spec.rb +9 -0
- data/spec/integration/core/group/opensuse_spec.rb +9 -0
- data/spec/integration/core/group/rhel_spec.rb +9 -0
- data/spec/integration/core/group/sles_spec.rb +9 -0
- data/spec/integration/core/group/ubuntu_spec.rb +9 -0
- data/spec/integration/core/ip/centos_spec.rb +9 -0
- data/spec/integration/core/ip/debian_spec.rb +9 -0
- data/spec/integration/core/ip/fedora_spec.rb +9 -0
- data/spec/integration/core/ip/opensuse_spec.rb +9 -0
- data/spec/integration/core/ip/rhel_spec.rb +9 -0
- data/spec/integration/core/ip/sles_spec.rb +9 -0
- data/spec/integration/core/ip/ubuntu_spec.rb +9 -0
- data/spec/integration/core/path/centos_spec.rb +9 -0
- data/spec/integration/core/path/debian_spec.rb +9 -0
- data/spec/integration/core/path/fedora_spec.rb +9 -0
- data/spec/integration/core/path/opensuse_spec.rb +9 -0
- data/spec/integration/core/path/rhel_spec.rb +9 -0
- data/spec/integration/core/path/sles_spec.rb +9 -0
- data/spec/integration/core/path/ubuntu_spec.rb +9 -0
- data/spec/integration/core/socket/centos_spec.rb +9 -0
- data/spec/integration/core/socket/debian_spec.rb +9 -0
- data/spec/integration/core/socket/fedora_spec.rb +9 -0
- data/spec/integration/core/socket/opensuse_spec.rb +9 -0
- data/spec/integration/core/socket/rhel_spec.rb +9 -0
- data/spec/integration/core/socket/sles_spec.rb +9 -0
- data/spec/integration/core/socket/ubuntu_spec.rb +9 -0
- data/spec/integration/core/stat/centos_spec.rb +9 -0
- data/spec/integration/core/stat/debian_spec.rb +9 -0
- data/spec/integration/core/stat/fedora_spec.rb +9 -0
- data/spec/integration/core/stat/opensuse_spec.rb +9 -0
- data/spec/integration/core/stat/rhel_spec.rb +9 -0
- data/spec/integration/core/stat/sles_spec.rb +9 -0
- data/spec/integration/core/stat/ubuntu_spec.rb +9 -0
- data/spec/integration/core/stream/centos_spec.rb +9 -0
- data/spec/integration/core/stream/debian_spec.rb +9 -0
- data/spec/integration/core/stream/fedora_spec.rb +9 -0
- data/spec/integration/core/stream/opensuse_spec.rb +9 -0
- data/spec/integration/core/stream/rhel_spec.rb +9 -0
- data/spec/integration/core/stream/sles_spec.rb +9 -0
- data/spec/integration/core/stream/ubuntu_spec.rb +9 -0
- data/spec/integration/core/system/centos_spec.rb +9 -0
- data/spec/integration/core/system/debian_spec.rb +9 -0
- data/spec/integration/core/system/fedora_spec.rb +9 -0
- data/spec/integration/core/system/opensuse_spec.rb +9 -0
- data/spec/integration/core/system/rhel_spec.rb +9 -0
- data/spec/integration/core/system/sles_spec.rb +9 -0
- data/spec/integration/core/system/ubuntu_spec.rb +9 -0
- data/spec/integration/core/transfer/centos_spec.rb +9 -0
- data/spec/integration/core/transfer/debian_spec.rb +9 -0
- data/spec/integration/core/transfer/fedora_spec.rb +9 -0
- data/spec/integration/core/transfer/opensuse_spec.rb +9 -0
- data/spec/integration/core/transfer/rhel_spec.rb +9 -0
- data/spec/integration/core/transfer/sles_spec.rb +9 -0
- data/spec/integration/core/transfer/ubuntu_spec.rb +9 -0
- data/spec/integration/core/user/centos_spec.rb +9 -0
- data/spec/integration/core/user/debian_spec.rb +9 -0
- data/spec/integration/core/user/fedora_spec.rb +9 -0
- data/spec/integration/core/user/opensuse_spec.rb +9 -0
- data/spec/integration/core/user/rhel_spec.rb +9 -0
- data/spec/integration/core/user/sles_spec.rb +9 -0
- data/spec/integration/core/user/ubuntu_spec.rb +9 -0
- data/spec/integration/core/yum/centos_spec.rb +9 -0
- data/spec/integration/core/yum/fedora_spec.rb +9 -0
- data/spec/integration/core/yum/rhel_spec.rb +9 -0
- data/spec/integration/core/zypper/opensuse_spec.rb +9 -0
- data/spec/integration/core/zypper/sles_spec.rb +9 -0
- data/spec/integration/remote/cluster/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/cpu/centos_spec.rb +9 -0
- data/spec/integration/remote/cpu/debian_spec.rb +9 -0
- data/spec/integration/remote/cpu/fedora_spec.rb +9 -0
- data/spec/integration/remote/cpu/opensuse_spec.rb +9 -0
- data/spec/integration/remote/cpu/rhel_spec.rb +9 -0
- data/spec/integration/remote/cpu/sles_spec.rb +9 -0
- data/spec/integration/remote/cpu/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/env/centos_spec.rb +9 -0
- data/spec/integration/remote/env/debian_spec.rb +9 -0
- data/spec/integration/remote/env/fedora_spec.rb +9 -0
- data/spec/integration/remote/env/opensuse_spec.rb +9 -0
- data/spec/integration/remote/env/rhel_spec.rb +9 -0
- data/spec/integration/remote/env/sles_spec.rb +9 -0
- data/spec/integration/remote/env/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/fstab/centos_spec.rb +9 -0
- data/spec/integration/remote/fstab/debian_spec.rb +9 -0
- data/spec/integration/remote/fstab/fedora_spec.rb +9 -0
- data/spec/integration/remote/fstab/opensuse_spec.rb +9 -0
- data/spec/integration/remote/fstab/rhel_spec.rb +9 -0
- data/spec/integration/remote/fstab/sles_spec.rb +9 -0
- data/spec/integration/remote/fstab/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/host/centos_spec.rb +9 -0
- data/spec/integration/remote/host/debian_spec.rb +9 -0
- data/spec/integration/remote/host/fedora_spec.rb +9 -0
- data/spec/integration/remote/host/opensuse_spec.rb +9 -0
- data/spec/integration/remote/host/rhel_spec.rb +9 -0
- data/spec/integration/remote/host/sles_spec.rb +9 -0
- data/spec/integration/remote/host/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/memory/centos_spec.rb +9 -0
- data/spec/integration/remote/memory/debian_spec.rb +9 -0
- data/spec/integration/remote/memory/fedora_spec.rb +9 -0
- data/spec/integration/remote/memory/opensuse_spec.rb +9 -0
- data/spec/integration/remote/memory/rhel_spec.rb +9 -0
- data/spec/integration/remote/memory/sles_spec.rb +9 -0
- data/spec/integration/remote/memory/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/os/centos_spec.rb +9 -0
- data/spec/integration/remote/os/debian_spec.rb +9 -0
- data/spec/integration/remote/os/fedora_spec.rb +9 -0
- data/spec/integration/remote/os/opensuse_spec.rb +9 -0
- data/spec/integration/remote/os/rhel_spec.rb +9 -0
- data/spec/integration/remote/os/sles_spec.rb +9 -0
- data/spec/integration/remote/os/ubuntu_spec.rb +9 -0
- data/spec/integration/remote/remote_file/centos_spec.rb +9 -0
- data/spec/integration/remote/remote_file/debian_spec.rb +9 -0
- data/spec/integration/remote/remote_file/fedora_spec.rb +9 -0
- data/spec/integration/remote/remote_file/opensuse_spec.rb +9 -0
- data/spec/integration/remote/remote_file/rhel_spec.rb +9 -0
- data/spec/integration/remote/remote_file/sles_spec.rb +9 -0
- data/spec/integration/remote/remote_file/ubuntu_spec.rb +9 -0
- data/spec/spec_helper.rb +2 -11
- data/spec/support/shared_examples/integration/core/apt.rb +117 -0
- data/spec/support/shared_examples/integration/core/archive.rb +221 -0
- data/spec/support/shared_examples/integration/core/disk.rb +91 -0
- data/spec/support/shared_examples/integration/core/dmi.rb +34 -0
- data/spec/support/shared_examples/integration/core/file.rb +357 -0
- data/spec/support/shared_examples/integration/core/find.rb +50 -0
- data/spec/support/shared_examples/integration/core/group.rb +62 -0
- data/spec/support/shared_examples/integration/core/ip.rb +68 -0
- data/spec/support/shared_examples/integration/core/path.rb +90 -0
- data/spec/support/shared_examples/integration/core/socket.rb +27 -0
- data/spec/support/shared_examples/integration/core/stat.rb +95 -0
- data/spec/support/shared_examples/integration/core/stream.rb +112 -0
- data/spec/support/shared_examples/integration/core/system.rb +155 -0
- data/spec/support/shared_examples/integration/core/transfer.rb +101 -0
- data/spec/support/shared_examples/integration/core/user.rb +72 -0
- data/spec/support/shared_examples/integration/core/yum.rb +115 -0
- data/spec/support/shared_examples/integration/core/zypper.rb +196 -0
- data/spec/{integration/remote/cluster_spec.rb → support/shared_examples/integration/remote/cluster.rb} +2 -2
- data/spec/support/shared_examples/integration/remote/cpu.rb +38 -0
- data/spec/support/shared_examples/integration/remote/env_spec.rb +33 -0
- data/spec/support/shared_examples/integration/remote/fstab.rb +89 -0
- data/spec/support/shared_examples/integration/remote/host.rb +65 -0
- data/spec/support/shared_examples/integration/remote/memory.rb +27 -0
- data/spec/support/shared_examples/integration/remote/os.rb +60 -0
- data/spec/support/shared_examples/integration/remote/remote_file.rb +172 -0
- data/spec/unit/util_spec.rb +16 -0
- metadata +425 -29
- data/spec/integration/core/apt_spec.rb +0 -119
- data/spec/integration/core/archive_spec.rb +0 -223
- data/spec/integration/core/disk_spec.rb +0 -93
- data/spec/integration/core/dmi_spec.rb +0 -36
- data/spec/integration/core/file_spec.rb +0 -359
- data/spec/integration/core/find_spec.rb +0 -52
- data/spec/integration/core/group_spec.rb +0 -64
- data/spec/integration/core/ip_spec.rb +0 -70
- data/spec/integration/core/path_spec.rb +0 -92
- data/spec/integration/core/socket_spec.rb +0 -29
- data/spec/integration/core/stat_spec.rb +0 -97
- data/spec/integration/core/stream_spec.rb +0 -114
- data/spec/integration/core/system_spec.rb +0 -142
- data/spec/integration/core/transfer_spec.rb +0 -103
- data/spec/integration/core/user_spec.rb +0 -74
- data/spec/integration/core/yum_spec.rb +0 -117
- data/spec/integration/core/zypper_spec.rb +0 -198
- data/spec/integration/remote/cpu_spec.rb +0 -40
- data/spec/integration/remote/env_spec.rb +0 -35
- data/spec/integration/remote/fstab_spec.rb +0 -91
- data/spec/integration/remote/host_spec.rb +0 -67
- data/spec/integration/remote/memory_spec.rb +0 -29
- data/spec/integration/remote/os_spec.rb +0 -62
- data/spec/integration/remote/remote_file_spec.rb +0 -174
- data/spec/zz_reboot_spec.rb +0 -46
@@ -0,0 +1,78 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Core::IP do
|
6
|
+
before(:all) do
|
7
|
+
StubNetwork.stub!
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:all) do
|
11
|
+
StubNetwork.unstub!
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host) do
|
15
|
+
Kanrisuru::Remote::Host.new(
|
16
|
+
host: 'localhost',
|
17
|
+
username: 'ubuntu',
|
18
|
+
keys: ['id_rsa']
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
%w[maddress maddr m].each do |object_variant|
|
23
|
+
context "with ip #{object_variant}" do
|
24
|
+
context 'with json support' do
|
25
|
+
before(:all) do
|
26
|
+
StubNetwork.stub_command!(:ip_version) do
|
27
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
after(:all) do
|
32
|
+
StubNetwork.unstub_command!(:ip_version)
|
33
|
+
end
|
34
|
+
|
35
|
+
%w[show list].each do |action_variant|
|
36
|
+
it "prepares #{action_variant} command" do
|
37
|
+
expect_command(host.ip(object_variant, action_variant), 'ip -json maddress show')
|
38
|
+
expect_command(host.ip(object_variant, action_variant, {
|
39
|
+
dev: 'eth0',
|
40
|
+
family: 'inet'
|
41
|
+
}), 'ip -json -family inet maddress show dev eth0')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'without json support' do
|
47
|
+
before(:all) do
|
48
|
+
StubNetwork.stub_command!(:ip_version) do
|
49
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION - 23
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
after(:all) do
|
54
|
+
StubNetwork.unstub_command!(:ip_version)
|
55
|
+
end
|
56
|
+
|
57
|
+
%w[show list].each do |action_variant|
|
58
|
+
it "prepares #{action_variant} command" do
|
59
|
+
expect_command(host.ip(object_variant, action_variant), 'ip maddress show')
|
60
|
+
expect_command(host.ip(object_variant, action_variant, {
|
61
|
+
dev: 'eth0',
|
62
|
+
family: 'inet'
|
63
|
+
}), 'ip -family inet maddress show dev eth0')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
%w[add delete del].each do |action_variant|
|
69
|
+
it "prepares #{action_variant} command" do
|
70
|
+
expect_command(host.ip(object_variant, action_variant, {
|
71
|
+
address: '01:80:c2:00:00:0e',
|
72
|
+
dev: 'eth0'
|
73
|
+
}), "ip maddress #{action_variant} address 01:80:c2:00:00:0e dev eth0")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Core::IP do
|
6
|
+
before(:all) do
|
7
|
+
StubNetwork.stub!
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:all) do
|
11
|
+
StubNetwork.unstub!
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host) do
|
15
|
+
Kanrisuru::Remote::Host.new(
|
16
|
+
host: 'localhost',
|
17
|
+
username: 'ubuntu',
|
18
|
+
keys: ['id_rsa']
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
%w[neighbour neigh n].each do |object_variant|
|
23
|
+
context "with ip #{object_variant}" do
|
24
|
+
context 'with json support' do
|
25
|
+
before(:all) do
|
26
|
+
StubNetwork.stub_command!(:ip_version) do
|
27
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
after(:all) do
|
32
|
+
StubNetwork.unstub_command!(:ip_version)
|
33
|
+
end
|
34
|
+
|
35
|
+
%w[show list].each do |action_variant|
|
36
|
+
it "prepares #{action_variant} command" do
|
37
|
+
expect_command(host.ip(object_variant), 'ip -json neighbour show')
|
38
|
+
expect_command(host.ip(object_variant, {
|
39
|
+
stats: true,
|
40
|
+
to: '10.10.10.10',
|
41
|
+
dev: 'ens3',
|
42
|
+
vrf: 'red',
|
43
|
+
proxy: true,
|
44
|
+
unused: true,
|
45
|
+
nud: 'all'
|
46
|
+
}), 'ip -json -s neighbour show to 10.10.10.10 dev ens3 nud all proxy unused')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'without json support' do
|
52
|
+
before(:all) do
|
53
|
+
StubNetwork.stub_command!(:ip_version) do
|
54
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION - 10
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
after(:all) do
|
59
|
+
StubNetwork.unstub_command!(:ip_version)
|
60
|
+
end
|
61
|
+
|
62
|
+
%w[show list].each do |action_variant|
|
63
|
+
it "prepares #{action_variant} command" do
|
64
|
+
expect_command(host.ip(object_variant), 'ip neighbour show')
|
65
|
+
expect_command(host.ip(object_variant, {
|
66
|
+
stats: true,
|
67
|
+
to: '10.10.10.10',
|
68
|
+
dev: 'ens3',
|
69
|
+
vrf: 'red',
|
70
|
+
proxy: true,
|
71
|
+
unused: true,
|
72
|
+
nud: 'all'
|
73
|
+
}), 'ip -s neighbour show to 10.10.10.10 dev ens3 nud all proxy unused')
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
%w[add change replace].each do |action_variant|
|
79
|
+
it "prepares #{action_variant} command" do
|
80
|
+
expect_command(host.ip(object_variant, action_variant, {
|
81
|
+
to: '192.168.16.14',
|
82
|
+
dev: 'eno1',
|
83
|
+
proxy: true,
|
84
|
+
router: true,
|
85
|
+
extern_learn: true,
|
86
|
+
permanent: true,
|
87
|
+
nud: 'probe',
|
88
|
+
lladdr: '17:39:D1:24:53:CF'
|
89
|
+
}), "ip neighbour #{action_variant} to 192.168.16.14 dev eno1 lladdr 17:39:D1:24:53:CF nud probe proxy router extern_learn")
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
%w[delete del].each do |action_variant|
|
94
|
+
it "prepares #{action_variant} command" do
|
95
|
+
expect_command(host.ip(object_variant, action_variant, {
|
96
|
+
to: '192.168.16.14',
|
97
|
+
dev: 'eno1',
|
98
|
+
proxy: true,
|
99
|
+
router: true,
|
100
|
+
extern_learn: true,
|
101
|
+
permanent: true
|
102
|
+
}), "ip neighbour #{action_variant} to 192.168.16.14 dev eno1 proxy router extern_learn")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'prepares flush command' do
|
107
|
+
expect_command(host.ip(object_variant, 'flush', {
|
108
|
+
stats: true,
|
109
|
+
to: '10.10.10.10',
|
110
|
+
dev: 'ens3',
|
111
|
+
vrf: 'red',
|
112
|
+
proxy: true,
|
113
|
+
unused: true,
|
114
|
+
nud: 'all'
|
115
|
+
}), 'ip -s neighbour flush to 10.10.10.10 dev ens3 nud all unused')
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Core::IP do
|
6
|
+
before(:all) do
|
7
|
+
StubNetwork.stub!
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:all) do
|
11
|
+
StubNetwork.unstub!
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host) do
|
15
|
+
Kanrisuru::Remote::Host.new(
|
16
|
+
host: 'localhost',
|
17
|
+
username: 'ubuntu',
|
18
|
+
keys: ['id_rsa']
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
%w[route r ro rou rout].each do |object_variant|
|
23
|
+
context "with ip #{object_variant}" do
|
24
|
+
context 'with json support' do
|
25
|
+
before(:all) do
|
26
|
+
StubNetwork.stub_command!(:ip_version) do
|
27
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
after(:all) do
|
32
|
+
StubNetwork.unstub_command!(:ip_version)
|
33
|
+
end
|
34
|
+
|
35
|
+
%w[show list].each do |action_variant|
|
36
|
+
it "prepares #{action_variant} command" do
|
37
|
+
expect_command(host.ip(object_variant), 'ip -json route show')
|
38
|
+
expect_command(host.ip(object_variant, {
|
39
|
+
family: 'inet',
|
40
|
+
to: '10.0/16',
|
41
|
+
from: '10.1/16',
|
42
|
+
dev: 'eno4',
|
43
|
+
protocol: 'kernel',
|
44
|
+
dsfield: '0x30',
|
45
|
+
table: 'all',
|
46
|
+
vrf: 'blue',
|
47
|
+
cloned: true,
|
48
|
+
cached: true,
|
49
|
+
via: '10.0.0.1',
|
50
|
+
src: '10.5.5.5',
|
51
|
+
realms: '6'
|
52
|
+
}), 'ip -json -family inet route show to 10.0/16 dev eno4 protocol kernel table all dsfield 0x30 via 10.0.0.1 vrf blue src 10.5.5.5 realms 6 cloned cached')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'without json support' do
|
58
|
+
before(:all) do
|
59
|
+
StubNetwork.stub_command!(:ip_version) do
|
60
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION - 33
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
after(:all) do
|
65
|
+
StubNetwork.unstub_command!(:ip_version)
|
66
|
+
end
|
67
|
+
|
68
|
+
%w[show list].each do |action_variant|
|
69
|
+
it "prepares #{action_variant} command" do
|
70
|
+
expect_command(host.ip(object_variant), 'ip route show')
|
71
|
+
expect_command(host.ip(object_variant, {
|
72
|
+
family: 'inet',
|
73
|
+
to: '10.0/16',
|
74
|
+
from: '10.1/16',
|
75
|
+
dev: 'eno4',
|
76
|
+
protocol: 'kernel',
|
77
|
+
dsfield: '0x30',
|
78
|
+
table: 'all',
|
79
|
+
vrf: 'blue',
|
80
|
+
cloned: true,
|
81
|
+
cached: true,
|
82
|
+
via: '10.0.0.1',
|
83
|
+
src: '10.5.5.5',
|
84
|
+
realms: '6'
|
85
|
+
}), 'ip -family inet route show to 10.0/16 dev eno4 protocol kernel table all dsfield 0x30 via 10.0.0.1 vrf blue src 10.5.5.5 realms 6 cloned cached')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
%w[add change append del delete replace].each do |action_variant|
|
91
|
+
it "prepares #{action_variant} command" do
|
92
|
+
expect_command(host.ip(object_variant, action_variant, {
|
93
|
+
dev: 'eno2',
|
94
|
+
mtu: 1600,
|
95
|
+
congctl: 'test'
|
96
|
+
}), "ip route #{action_variant} dev eno2 mtu 1600 congctl test")
|
97
|
+
|
98
|
+
expect_command(host.ip(object_variant, action_variant, {
|
99
|
+
to: '0/0',
|
100
|
+
tos: '0x28',
|
101
|
+
dsfield: '0x98',
|
102
|
+
metric: 32,
|
103
|
+
table: 254,
|
104
|
+
vrf: 'green',
|
105
|
+
src: '172.3.3.3',
|
106
|
+
realm: '6',
|
107
|
+
mtu: 1600,
|
108
|
+
mtu_lock: true,
|
109
|
+
window: 3,
|
110
|
+
rtt: 4,
|
111
|
+
rttvar: 12,
|
112
|
+
rto_min: 1,
|
113
|
+
sshthresh: 0,
|
114
|
+
cwnd: 12,
|
115
|
+
initcwnd: 5,
|
116
|
+
initrwnd: 5,
|
117
|
+
features: 'ecn',
|
118
|
+
quickack: 'true',
|
119
|
+
fastopen_no_cookie: 'true',
|
120
|
+
congctl: 'test',
|
121
|
+
congctl_lock: true,
|
122
|
+
advmss: 7,
|
123
|
+
reordering: 3,
|
124
|
+
next_hop: {
|
125
|
+
via: '172.0.0.0',
|
126
|
+
dev: 'gateway',
|
127
|
+
weight: 100
|
128
|
+
},
|
129
|
+
scope: 0,
|
130
|
+
protocol: 'static',
|
131
|
+
onlink: true,
|
132
|
+
pref: 'high'
|
133
|
+
}), "ip route #{action_variant} to 0/0 tos 0x28 dsfield 0x98 metric 32 table 254 vrf green src 172.3.3.3 realm 6 mtu lock 1600 window 3 rtt 4 rttvar 12 rto_min 1 cwnd 12 initcwnd 5 initrwnd 5 features ecn quickack true fastopen_no_cookie true congctl lock test advmss 7 reordering 3 next_hop via 172.0.0.0 dev gateway weight 100 scope 0 protocol static onlink pref high")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'prepares flush command' do
|
138
|
+
expect_command(host.ip(object_variant, 'flush', {
|
139
|
+
family: 'inet',
|
140
|
+
to: '10.0/16',
|
141
|
+
from: '10.1/16',
|
142
|
+
dev: 'eno4',
|
143
|
+
protocol: 'kernel',
|
144
|
+
dsfield: '0x30',
|
145
|
+
table: 'all',
|
146
|
+
vrf: 'blue',
|
147
|
+
cloned: true,
|
148
|
+
cached: true,
|
149
|
+
via: '10.0.0.1',
|
150
|
+
src: '10.5.5.5',
|
151
|
+
realms: '6'
|
152
|
+
}), 'ip -family inet route flush to 10.0/16 dev eno4 protocol kernel table all dsfield 0x30 via 10.0.0.1 vrf blue src 10.5.5.5 realms 6 cloned cached')
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'prepares get command' do
|
156
|
+
expect_command(host.ip(object_variant, 'get', {
|
157
|
+
dev: 'eth1',
|
158
|
+
to: '10.0/16',
|
159
|
+
from: '10.1/16',
|
160
|
+
fibmatch: true,
|
161
|
+
tos: '0x28',
|
162
|
+
dsfield: '0x30',
|
163
|
+
iif: 'eth0',
|
164
|
+
oif: 'eth1',
|
165
|
+
mark: '0x20',
|
166
|
+
ipproto: 'tcp',
|
167
|
+
dport: 80,
|
168
|
+
sport: 80,
|
169
|
+
connected: true
|
170
|
+
}), 'ip route get fibmatch to 10.0/16 from 10.1/16 tos 0x28 dsfield 0x30 iif eth0 oif eth1 mark 0x20 ipproto tcp sport 80 dport 80 connected')
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Core::IP do
|
6
|
+
before(:all) do
|
7
|
+
StubNetwork.stub!
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:all) do
|
11
|
+
StubNetwork.unstub!
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host) do
|
15
|
+
Kanrisuru::Remote::Host.new(
|
16
|
+
host: 'localhost',
|
17
|
+
username: 'ubuntu',
|
18
|
+
keys: ['id_rsa']
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
%w[rule ru].each do |object_variant|
|
23
|
+
context "with ip #{object_variant}" do
|
24
|
+
context 'with json support' do
|
25
|
+
before(:all) do
|
26
|
+
StubNetwork.stub_command!(:ip_version) do
|
27
|
+
Kanrisuru::Core::IP::IPROUTE2_JSON_VERSION
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
after(:all) do
|
32
|
+
StubNetwork.unstub_command!(:ip_version)
|
33
|
+
end
|
34
|
+
|
35
|
+
%w[show list].each do |action_variant|
|
36
|
+
it "prepares #{action_variant} command" do
|
37
|
+
expect_command(host.ip(object_variant, action_variant), 'ip -json rule show')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
%w[add delete del].each do |action_variant|
|
42
|
+
it "prepares #{action_variant} command" do
|
43
|
+
expect_command(host.ip(object_variant, action_variant, {
|
44
|
+
type: 'unicast',
|
45
|
+
from: '0/0',
|
46
|
+
to: '0/0',
|
47
|
+
iif: 'eth0',
|
48
|
+
oif: 'eth1',
|
49
|
+
tos: '0x28',
|
50
|
+
dsfield: '0x30',
|
51
|
+
fwmark: 2,
|
52
|
+
uidrange: '1-10',
|
53
|
+
ipproto: 'tcp',
|
54
|
+
sport: 80,
|
55
|
+
dport: 80,
|
56
|
+
priority: 1,
|
57
|
+
table: 5,
|
58
|
+
protocol: 'kernel',
|
59
|
+
suppress_prefixlength: 8,
|
60
|
+
suppress_ifgroup: 6,
|
61
|
+
realms: '1',
|
62
|
+
nat: '10.1.1.1'
|
63
|
+
}), "ip rule #{action_variant} type unicast from 0/0 to 0/0 iif eth0 tos 0x28 dsfield 0x30 fwmark 2 priority 1 table 5 realms 1 nat 10.1.1.1")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'prepares flush command' do
|
68
|
+
expect_command(host.ip(object_variant, 'flush', {
|
69
|
+
protocol: 'kernel'
|
70
|
+
}), 'ip rule flush protocol kernel')
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Core::IP do
|
6
|
+
before(:all) do
|
7
|
+
StubNetwork.stub!
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:all) do
|
11
|
+
StubNetwork.unstub!
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host) do
|
15
|
+
Kanrisuru::Remote::Host.new(
|
16
|
+
host: 'localhost',
|
17
|
+
username: 'ubuntu',
|
18
|
+
keys: ['id_rsa']
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'with ip version' do
|
23
|
+
it 'prepares ip_version command' do
|
24
|
+
expect_command(host.ip_version, 'ip -V')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Result do
|
6
|
+
let(:command) { Kanrisuru::Command.new('hello') }
|
7
|
+
|
8
|
+
it 'initializes result' do
|
9
|
+
command.handle_status(0)
|
10
|
+
|
11
|
+
result = described_class.new(command)
|
12
|
+
expect(result).to be_instance_of(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'initializes with block and return struct fields' do
|
16
|
+
command.handle_status(0)
|
17
|
+
command.handle_data('world')
|
18
|
+
|
19
|
+
result = described_class.new(command) do |cmd|
|
20
|
+
Struct.new(:output).new(cmd.to_s)
|
21
|
+
end
|
22
|
+
|
23
|
+
expect(result).to respond_to(:output)
|
24
|
+
expect(result[:output]).to eq('world')
|
25
|
+
expect(result.data.output).to eq('world')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'is success from command' do
|
29
|
+
command.handle_status(0)
|
30
|
+
result = described_class.new(command)
|
31
|
+
expect(result).to be_success
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'is failure from command' do
|
35
|
+
command.handle_status(1)
|
36
|
+
result = described_class.new(command)
|
37
|
+
expect(result).to be_failure
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'returns exit status' do
|
41
|
+
command.handle_status(0)
|
42
|
+
result = described_class.new(command)
|
43
|
+
expect(result.status).to eq(0)
|
44
|
+
|
45
|
+
command.handle_status(1)
|
46
|
+
|
47
|
+
result = described_class.new(command)
|
48
|
+
expect(result.status).to eq(1)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'returns to_s on string result' do
|
52
|
+
command.handle_status(0)
|
53
|
+
result = described_class.new(command) do |_cmd|
|
54
|
+
'output'
|
55
|
+
end
|
56
|
+
|
57
|
+
expect(result.to_s).to eq('output')
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'returns to_a on array result' do
|
61
|
+
command.handle_status(0)
|
62
|
+
result = described_class.new(command) do |_cmd|
|
63
|
+
[0, 1, 2, 3]
|
64
|
+
end
|
65
|
+
|
66
|
+
expect(result.to_a).to eq([0, 1, 2, 3])
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'returns to_a on non-array result' do
|
70
|
+
command.handle_status(0)
|
71
|
+
result = described_class.new(command) do |_cmd|
|
72
|
+
'output'
|
73
|
+
end
|
74
|
+
|
75
|
+
expect(result.to_a).to eq(['output'])
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'returns to_i on integer return value' do
|
79
|
+
command.handle_status(0)
|
80
|
+
result = described_class.new(command) do |_cmd|
|
81
|
+
55
|
82
|
+
end
|
83
|
+
|
84
|
+
expect(result.to_i).to eq(55)
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'returns to_i on non-integer return value' do
|
88
|
+
command.handle_status(0)
|
89
|
+
result = described_class.new(command) do |_cmd|
|
90
|
+
'100'
|
91
|
+
end
|
92
|
+
|
93
|
+
expect(result.to_i).to eq(100)
|
94
|
+
|
95
|
+
result = described_class.new(command) do |_cmd|
|
96
|
+
'hello'
|
97
|
+
end
|
98
|
+
|
99
|
+
expect(result.to_i).to eq(0)
|
100
|
+
|
101
|
+
result = described_class.new(command) do |_cmd|
|
102
|
+
[0, 1, 2, 3]
|
103
|
+
end
|
104
|
+
|
105
|
+
expect(result.to_i).to eq([0, 1, 2, 3])
|
106
|
+
|
107
|
+
result = described_class.new(command) do |_cmd|
|
108
|
+
%w[0 1 2 3]
|
109
|
+
end
|
110
|
+
|
111
|
+
expect(result.to_i).to eq([0, 1, 2, 3])
|
112
|
+
|
113
|
+
result = described_class.new(command)
|
114
|
+
expect(result.to_i).to be_nil
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'raises error on to_i for invalid data type' do
|
118
|
+
command.handle_status(0)
|
119
|
+
result = described_class.new(command) do |_cmd|
|
120
|
+
{ 'hello' => 'world' }
|
121
|
+
end
|
122
|
+
|
123
|
+
expect do
|
124
|
+
result.to_i
|
125
|
+
end.to raise_error(NoMethodError)
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'returns success string variant on inspect' do
|
129
|
+
command.handle_status(0)
|
130
|
+
result = described_class.new(command) do |_cmd|
|
131
|
+
'hello'
|
132
|
+
end
|
133
|
+
|
134
|
+
expect(result.inspect).to eq(
|
135
|
+
"#<Kanrisuru::Result:0x#{result.object_id} @status=0 @data=\"hello\" @command=#{command.prepared_command}>"
|
136
|
+
)
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'returns error string variant on inspect' do
|
140
|
+
command.handle_status(1)
|
141
|
+
command.handle_data('error: this is an error')
|
142
|
+
result = described_class.new(command) do |_cmd|
|
143
|
+
'hello'
|
144
|
+
end
|
145
|
+
|
146
|
+
expect(result.inspect).to eq(
|
147
|
+
"#<Kanrisuru::Result:0x#{result.object_id} @status=1 @error=[\"error: this is an error\"] @command=#{command.prepared_command}>"
|
148
|
+
)
|
149
|
+
end
|
150
|
+
end
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'simplecov'
|
4
|
+
require 'simplecov-cobertura'
|
5
|
+
|
6
|
+
SimpleCov.start do
|
7
|
+
command_name "kanrisuru-tests#{ENV['TEST_ENV_NUMBER'] || ''}"
|
8
|
+
merge_timeout 2400
|
9
|
+
|
10
|
+
formatter SimpleCov::Formatter::MultiFormatter.new([
|
11
|
+
SimpleCov::Formatter::HTMLFormatter,
|
12
|
+
SimpleCov::Formatter::CoberturaFormatter
|
13
|
+
])
|
14
|
+
end
|
15
|
+
|
16
|
+
if ENV['TEST_ENV_NUMBER'] # parallel specs
|
17
|
+
SimpleCov.at_exit do
|
18
|
+
result = SimpleCov.result
|
19
|
+
result.format! if ParallelTests.number_of_running_processes <= 1
|
20
|
+
end
|
21
|
+
end
|
data/spec/helper/test_hosts.rb
CHANGED
@@ -10,7 +10,7 @@ class TestHosts
|
|
10
10
|
next if opts[:only] && !only?(opts, os_name)
|
11
11
|
|
12
12
|
host_json = TestHosts.host(os_name)
|
13
|
-
spec_dir = spec_dir(
|
13
|
+
spec_dir = spec_dir(host_json)
|
14
14
|
|
15
15
|
block.call(os_name, host_json, spec_dir)
|
16
16
|
end
|
@@ -20,7 +20,7 @@ class TestHosts
|
|
20
20
|
hosts(name)
|
21
21
|
end
|
22
22
|
|
23
|
-
def spec_dir(
|
23
|
+
def spec_dir(host_json)
|
24
24
|
random_string = SecureRandom.hex
|
25
25
|
"#{host_json['home']}/.kanrisuru_spec_files_#{random_string[0..5]}"
|
26
26
|
end
|
@@ -66,7 +66,7 @@ class TestHosts
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def hosts_list
|
69
|
-
json_config_path = File.join('spec', 'hosts.json')
|
69
|
+
json_config_path = File.join('spec', 'helper', 'hosts.json')
|
70
70
|
hosts_data = File.open(json_config_path).read
|
71
71
|
JSON.parse(hosts_data)
|
72
72
|
end
|