- Add parallel mode for cluster. Allows hosts to run commands concurrently, reducing time it takes due to the high I/O blocking nature of the network requests.
- Add test cases for cluster parallel mode.
- Clean up methods on cluster class to use map and each methods in a simplified manner.
- Remove
/spec
dir from codecoverage.
- Allow hosts to be connected via proxy host. This is much like using a bastion / jump server.
- Add integration test cases for proxy host connection.
- Add additional family types to
ss
command.
- Fix bug in
ss
command with passing opts to parser.
- Add
to_h
to result class.
- Fix
load_env
command with parsing output, useto_a
for cleaner newline parsing.
- Add readonly version of
sysctl
command with test cases.
- Add
history
command with test cases.
- Add
nproc
command with test cases.
- Add additional options to
wget
command. - Rename some options to better reflect options from wget program.
- Fix issue with
download
command when downloading directories from remote server.
- Add recursive and all_targets opts to
umount
command.
- Fix
get_user
command by parsing output to get user name if uid is passed in.
- Add
non_unique
andsystem
opts tocreate_group
command
- Update date ranges for 2022 on license files.
- Add unit test case for
Kanrisuru::Logger
.
- Add functional and integration test cases for the
Kanrisuru::Remote::Cluster
class. - Allow for passing a command instance into
execute
andexecute_shell
on a cluster instance, by deep copying a command object.
- Add
iname
andiregex
params tofind
command.
- Use cp intead of mv for recurisive dir overwrite on upload command.
- Fix return value of field for dmi parser.
- Fix upload command to copy contents of directory when transfering directories from tmp location.
- Update homepage to docs website.
- Add
delete
to fstab class to delete an entry from the fstab.
- Refactor
dmi_field_translate
to reduce complexity.
- Refactor
Kanrisuru::Fstab::Entry
andKanrisuru::Fstab::Options
classes into separate files.
- Refactor
Kanrisuru::Mode::Permission
class into separate file.
- Organize functional ip specs
- Log in realtime, debug output the stdout from the remote server, as opposed to waiting until after the command is done.
- Fix the
opensuse_leap
for the stubnetwork rspec helper. - Refactor and cleanup the
append_array
method for theKanrisuru::Command
instance - Move
gpg_opts
forzypper
command into re-usable method - Add functional test cases for
zypper
command.
- Fix require class for
os_package
.
- Fix
append_array
for theKanrisuru::Command
class with negated check on Array type. - Add
to_f
method forKanrisuru::Command
andKanrisuru::Result
with unit test cases. - Refactor
lsblk_version
into seperate command namespace with it's own parser. - Add functional test cases for several core modules.
- Add
return_value
option tostub_command!
method for non-result return methods. These are few and far between, but need to be tested appropriately. - Refactor several core modules with use of
command
calls for legibility. - Fix several issues with
create_user
,update_user
, anddelete_user
.
- Add opts for
ip
command. - Refactor
ip
object commands into smaller methods. Refactorversion
for consistent use and stub ability in funcitonal test cases. - Add functional test cases for
ip
command. - Add
append_flag_no
toKanrisuru::Command
class. Adds no to value forfalsey
statements. Theno
flag is commonly appended to indicate a deactived state for many arguments passed to programs on the command line. - Fix test case
transfer
by appending the osname to the filename to avoid parallel overwrite.
- Add additional unit test cases for
util
methods. - Refactor the
core
module commands into smaller files, with each command split up. Also refactor parsing code into separateParser
class.
- Add functional test cases for
Kanrisuru::Result
class. - Refactor integration tests for better parallelization with the
parallel_tests
gem. This dropped overall test time from 35 minutes, to 22 minutes after first integration with 1 processor. After scaling upto 8 core machine, the run time dropped to 16 minutes, but was still sending the entire test file to a processor. By splitting up each host test into a seperate file, the run time dropped to a little over 9 minutes. There's probably a way to optimize which test gets run together, but overall a much better scenario.
- Fix typo in spec.
- Cleanup bad code style.
- Add functional test cases for
mount
command. - Fix typos and command preperation for
mount
command. - Refactor
os_package
module into smaller modules forKanrisuru::OsPackage::Collection
,Kanrisuru::OsPackage::Define
, andKanrisuru::OsPackage::Include
. - Add
append_array
tocommand
class for easy string to array conversion for variable option passing. - Cleanup bad coding styles.
- Add parallel testing support for long running integration tests on remote servers.
- Refactor specs to use variable spec_dir path for parallel testing on remote hosts with possible overwriting at the same time.
- Cleanup self-assignment branches
- Fix linting issues.
- Add codequality badge, cleanup code linting issues.
- Fix
fstab
issue with blkid device return type. - Fix
find
spec with sudo permissions. - Change
stub_network
result override to useblock.call
with a conditional check for indvidual command stubs. - Add
architecture
method tocpu
. - Add functional test cases for
cpu
class. - Add more unit test cases.
- Add
stub_command
andunstub_command
to mock indvidual command results from a remote server. - Add
count
anddelete
toKanrisuru::Remote::Env
class for managing environment variables. - Add unit and functional test cases for
Kanrisuru::Remote::Env
. - Add functional test cases for the
archive
command. - Fix typo bugs in the
archive
command. Fix--exclude
opt field inarchive
command. - Add unit test cases for
Kanrisuru::Mode
class.
- Add unit test cases for all core commands.
- Add unit test cases for
cluster
class. - Add codecov xml output for coverage badge.
- Fix type on
address_sizes
forKanrisuru::Remote::Cpu
class. - Add unit test cases for the
cpu
class.
- Add
delete
toKanrisuru::Remote::Cluster
class to allow removal of hosts from cluster. - Add functional test cases for remote cluster class.
- Add functional test cases for
yum
command - Add stub by operating system method, with support for
ubuntu
andcentos
os types. - Fix
ArgumentError
typo in yum commands,erase
andremove
.
- Add functional test cases for
apt
command
- Fix bug with
Kanrisuru::Mode
class, lookup table had incorrect value for execute only symbolic to numeric field.
- Unstub network requests for full rspec test-suite run
- Add functional test cases for
ss
command. - Enforce contraints on
family
parameter forss
command. - Deprecating
string_join_array
in favor ofarray_join_string
. Both methods do the same thing, and thearray_join_string
has a better nameing interface; will be removed in the next major release. - Replace
string_join_array
method calls inapt
,transfer
,yum
, andzypper
witharray_join_string
.
- Add functional test cases for
find
commmand. - Add
regex_type
option forfind
command. - Fix bug with
size
option when using number in a string format, regex testing has been simplified on matching correctness for size with options like100
,+100
,-100M
for comparitive fields.
- Add functional test cases for
transfer
module - Update wget command to accept hash for
headers
opt.
- Add functional test cases for
stream
andpath
modules - Create
expect_command
helper for quick testing on raw command result
- Move functional specs to integration. Anything that performs an actual network request will be under the integrations test.
- Create a
StubNetwork
to quickly monkey patch theKanrisuru::Remote::Host
to simulate aNet::SSH
channel request. Will add additional functionality for different simulations later on. - Start with testing the
stat
command as a functional test.
- Update
Kanrisuru::Remote::Cluster
instantiation method to use array splat instead of passing array directly.
- Fix
wc
command. Ensure result parsing is cast to integer values.
- Refactor
rmdir
command to only work on empty directories.
- Allow
Kanrisuru::Mode
as mode type option in mkdir method.
- Fix bug with rspec test case.
- Fix spelling error exception
ArgumentError
inKanrisuru::Mode
class.
- Add shorthand notation for tar command actions, such as
x
forextract
,t
forlist
, andc
forcreate
.
- Fix
FileInfo
field for ls command. Was set tomemory_blocks
, but was incorrect, corrected this tohard_links
.
- Add
minimum_io_size
,physical_sector_size
, andlogical_sector_size
to the blkid low level disk probe for devices.
- Add
summarize
option todu
command. This will only output a total disk usage size for the entire directory versus disk usage for each file individually.
- Convert
fsize
field to aninteger
for du disk module command.
- Fix bug with disk usage,
du
command by escaping the awk variables in the command. - Update
du
command to execute with shell user.
- Convert
major
andminor
device field values to aninteger
in lsblk disk module.
- Fix
nodeps
flag value forlsblk
command in disk module.
- Add last / lastb implementation in system core module.
- Fixed bug with zypper remove package, where the package names weren't being added to the linux command.
- Test case added to ensure package is removed.
- Fixed bug with the
os_method_cache
instance variable set in the namespaced instance of a host. This was causing collision issues inbetween host instances, where, hosts with the same aliased method name was getting overwritten (with a different OS), since the namespace instance variable existing on the host class definition wasn't getting reset inbetween host instantiations. Given that theos_method_cache
is normally re-instantiated, this bug fix addresses this so that theos_method_cache
is always defined on the host instance, ie:
host.instance_variable_get(:@os_method_cache)
host.instance_variable_set(:@os_method_cache, os_method_cache)
This is done instead of being saved on the namespace module. With the previous bug fix of using namespaced keys, there's no way for a method to be overwritten otherwise with a global os_method_cache
.
- Fix bug with
os_include
when caching namespace unbound methods, use the namespace in the cache key to avoid any namespace collisions with the same method name, namely:
"#{namespace}.#{method_name}"
- Simplify
FileInfo
struct for return object ofls
command. - Rename
size
tofsize
for theOpenFile
struct to avoid method naming conflicts of the struct class. - Allow
os_include
andos_collection
to define multiple groupings of methods with the same namespace. - Add
clear
method for remote env class, to remove any session based env variables. - Add
to_s
method to result for quick analysis of string based return values. - Remove duplicate
numeric
method in the utils module.
- Add
lsof
implementation in system core module - Fix changelog formatting
- Add changelog url to gemspec
- Add changelog documentation
- Update documentation table with new tested core module
- Deprecating
cpu_info
with replacement oflscpu
.cpu_info
will be removed in the next major release.
- Unit test cases for core module structs, constants and types.
- Add
zypper
package manager core module - Add
dmi
core module. Support for getting hardware information from virtual and physical machines. - Add only options for test_hosts to filter on which hosts to use for function style test cases. This is used within a test case and takes priority over command line
HOSTS=
andEXCLUDE=
env variables. - Add additional bit conversion string handling in the util module, such as kib, mib, and gib.
- Remove redudant namespacing in struct names, such as
Kanrisuru::Core::Yum::YumPackageOverview
, toKanrisuru::Core::Yum::PackageOverview
. - Fix backups test case for
cp
command with the correct filename. - Use 0755 as expected numeric mode for all OS functional tests in the
mkdir
test case. - Fix bug with
lscpu
regex match on cpus with more than 9 cores, ie/cpu\d/
to/cpu\d+/
- Add
kernel_statistics
to system core module.
- Update internal exit code of command from 0, to array of accpeted exit codes, with 0 being the default value.
- Add
append_exit_code
to command, allowing additional exit codes to be considered true forsuccess?
return value. - Add
@port
toNet::SSH.start
method - Fix test case with
host.os
return value ofopensuse_leap
. - Add
cpu_flags
method tocpu
module
- Fix typo from
key
tosignal
in hash fetch method.
- Add additional methods to
cpu
pulling fromlscpu
struct. - Fix
address_size
incpu
method call.
- Add
lscpu
system core module - Replace
cpu
module internal fetching of data fromcpu_info
tolscpu
struct.
- Fix fstab entry from
entry
toentry[:entry]
in thefor_each
iteration.
- Update gem development and runtime depedencies with stricter depencies.
- Set opensuse upstream to sles (Suse Enterprise Linux) in
os_family
- Force "-" to "_" from
os-release
release name inhost.os
module.
- Update gem depedencies to non-zero values.
- Change summary and description fields for
apt
. - Move
normalize_size
fromapt
core module, toKanrisuru::Util::Bits
class. - Add additional test cases for
apt
core module. - Add
-hi
towho
command to explicility print out ip address for user. - Update
inode?
command to execute without shell user. - Add
yum
package manager core module
- Fix error in
ip_rule
andip_address
sub modules with command typo.
- Add
apt
package manager core module
- Fix
read_file_chunk
on checking bounds for start and end line values.
- Add first working release on rubygems.org
- Initialize repository, start working on project.