Giter VIP home page Giter VIP logo

goss's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

goss's Issues

Builds fail with latest packer - Incompatible API version

With the latest packer (1.5.1), I started to get the following error with goss:

Failed to initialize build 'amazon-ebs': error initializing provisioner 'goss': Incompatible API version with plugin. Plugin version: 4, Ours: 5

Using goss 0.6.0

Evalute if the system package could be removed

Removal of the system package could be a good thing because it doesn't need to be abstracted behind an interface. It just gathers information about the system under test, which could be done by simple libraries/packages.

Add support for client certificates

It would be great if you could give the HTTPS request a client certificate.

Certificate format like:
-----BEGIN CERTIFICATE ----- ASDASDASDASDASDASDASD ASDASDASDASDASD .... -----END CERTIFICATE -----

Add vendor checks

I want to be able to scan for outdated go dependencies like greenkeeper for nodejs.

Plugin system

It would be super cool to add resource with plugins

add process misreads process status

For several processes on my RHEL 7.3 server, goss seems to misrecord the statuses of processes...

As a test, I pipe every process in ps into a goss add process command...

for p in $(ps -ef | grep -v '\[' | cut -b49- | cut -d" " -f1 | cut -d: -f1 | rev | cut -d/ -f1 | rev |sort -u); do 
  ../goss a process ${p}
done

Apart from the fluff (CMD from ps header, and ps, cut, rev, sort used in the command above), one would expect all these processes to be actual running processes. Yet, goss reports several of them as NOT running.

If I take just systemd processes as an example:

ps -ef | grep systemd
root         1     0  0 May21 ?        00:00:51 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root       898     1  0 May21 ?        00:01:01 /usr/lib/systemd/systemd-journald
root       932     1  0 May21 ?        00:00:00 /usr/lib/systemd/systemd-udevd
dbus      2353     1  0 May21 ?        00:00:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root      2383     1  0 May21 ?        00:00:08 /usr/lib/systemd/systemd-logind

We see 4 processes all running since May 21. If we examine the goss.yaml file we see this:

grep -A1 systemd goss.yaml
  systemd:            
    running: true     
  systemd-journald:   
    running: false    
  systemd-logind:     
    running: true     
  systemd-udevd:      
    running: true

3 of the 4 are listed as running, but even though systemd-journald is running, it is reported as false...

Whatever is happening is consistent, in the sense that validation will pass confirming "systemd-journald" is not running when goss re-executes.

There are a few other processes (excluding ps, cut, rev, sort from the command that fed goss) from a vendor product on my system that similarly report as running false when they are actually running...

Any idea what is happening to cause this strange behavior?

[This is using v0.3.7 AMD64]

Imported from goss-org/goss#451

Commands are not executed in the order they defined

Hi,

I've two ideas.

  1. I'd like to define multiple commands in goss.yml and I expect they are being run in the same order as they go in the file. But they do not run in the same order, sometimes they do. It looks like they run randomly.
    Example of commands:
  • mount a NFS share
  • check permissions
  • unmount the share.

It would be great if it possible to define either order of execution (maybe add an option "priority") or just follow the order the commands are defined in goss.yml.

  1. I feel a big inconvenience in running multiple commands using "command" test. It would be awesome to have a test called script where I can specify a code of a multiline script. This might look like this:
script:
  myscript:
    body: |
      #!/bin/bash, #!/usr/bin/env python, #!/usr/bin/awk, #!/usr/bin/sed, etc
      as many as need shell/python/awk/etc commands or other script language instructions
      on many lines
   exit-status: 
   stdout: []
  ... etc ...

I know I can put needed scripts on a target host/image and execute it using command but the powerfull side of Goss is a simplicity. I wouldn't like to split a simple configuration into multiple pieces.

Thanks,
Dmitrii

Imported from goss-org/goss#455

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.