GithubHelp home page GithubHelp logo

arcaflow-plugin-metadata's Introduction

Python Plugin Metadata

This is a simple plugin that collects all data from ansible-facts and outputs it.

Install via Poetry:

python3 -m poetry install --without dev

Run by executing the following command:

python3 metadata_plugin.py

Autogenerated Input/Output Documentation by Arcaflow-Docsgen Below

Collect Metadata (collect-metadata)

Collects ansible facts metadata

Input

Type:scope
Root object:InputParams
Properties
Objects
InputParams (object)
Type:object
Properties

Outputs

error

Type:scope
Root object:ErrorOutput
Properties
error (string)
Required:Yes
Type:string
Objects
ErrorOutput (object)
Type:object
Properties
error (string)
Required:Yes
Type:string

success

Type:scope
Root object:SelectedFacts
Properties
architecture (string)
Name:ansible architecture
Description:The system architecture
Required:Yes
Type:string
env (map[string,string])
Name:ansible env
Description:The system environment variables
Required:Yes
Type:map[string,string]
Key type
Type:string
Value type
Type:string
fqdn (string)
Name:ansible fqdn
Description:The system fully-qualified domain name
Required:Yes
Type:string
kernel (string)
Name:ansible kernel
Description:The system OS kernel
Required:Yes
Type:string
memtotal_mb (int)
Name:ansible memtotal MB
Description:The system total memory in MB
Required:Yes
Type:int
processor (list[string])
Name:ansible processor
Description:The system processor list
Required:Yes
Type:list[string]
List items
Type:string
processor_cores (int)
Name:ansible processor cores
Description:The system total processor cores
Required:Yes
Type:int
processor_count (int)
Name:ansible processor count
Description:The system total processor count
Required:Yes
Type:int
processor_threads_per_core (int)
Name:ansible processor threads per core
Description:The system threads per processor core
Required:Yes
Type:int
product_name (string)
Name:ansible product name
Description:The system product name
Required:Yes
Type:string
product_version (string)
Name:ansible product version
Description:The system product version
Required:Yes
Type:string
swaptotal_mb (int)
Name:ansible swaptotal mb
Description:The system swap size in MB
Required:Yes
Type:int
system_vendor (string)
Name:ansible system vendor
Description:The system vendor
Required:Yes
Type:string
uptime_seconds (int)
Name:ansible uptime seconds
Description:The system uptime in seconds
Required:Yes
Type:int
Objects
SelectedFacts (object)
Type:object
Properties
architecture (string)
Name:ansible architecture
Description:The system architecture
Required:Yes
Type:string
env (map[string,string])
Name:ansible env
Description:The system environment variables
Required:Yes
Type:map[string,string]
Key type
Type:string
Value type
Type:string
fqdn (string)
Name:ansible fqdn
Description:The system fully-qualified domain name
Required:Yes
Type:string
kernel (string)
Name:ansible kernel
Description:The system OS kernel
Required:Yes
Type:string
memtotal_mb (int)
Name:ansible memtotal MB
Description:The system total memory in MB
Required:Yes
Type:int
processor (list[string])
Name:ansible processor
Description:The system processor list
Required:Yes
Type:list[string]
List items
Type:string
processor_cores (int)
Name:ansible processor cores
Description:The system total processor cores
Required:Yes
Type:int
processor_count (int)
Name:ansible processor count
Description:The system total processor count
Required:Yes
Type:int
processor_threads_per_core (int)
Name:ansible processor threads per core
Description:The system threads per processor core
Required:Yes
Type:int
product_name (string)
Name:ansible product name
Description:The system product name
Required:Yes
Type:string
product_version (string)
Name:ansible product version
Description:The system product version
Required:Yes
Type:string
swaptotal_mb (int)
Name:ansible swaptotal mb
Description:The system swap size in MB
Required:Yes
Type:int
system_vendor (string)
Name:ansible system vendor
Description:The system vendor
Required:Yes
Type:string
uptime_seconds (int)
Name:ansible uptime seconds
Description:The system uptime in seconds
Required:Yes
Type:int

arcaflow-plugin-metadata's People

Contributors

arcalot-bot avatar dependabot[bot] avatar dustinblack avatar jaredoconnell avatar jdowni000 avatar lmilbaum avatar mfleader avatar platform-engineering-bot avatar redhat-renovate-bot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

arcaflow-plugin-metadata's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: None
Error type: Invalid gitAuthor
Message: gitAuthor is not parsed as valid RFC5322 format: Platform Engineering Bot

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.


โš  Dependency Lookup Warnings โš 

  • Renovate failed to look up the following dependencies: Failed to look up github-tags package actions/checkout, Failed to look up github-tags package actions/upload-artifact.

Files affected: .github/workflows/build.yaml


This repository currently has no open or pending branches.

Detected dependencies

docker-compose
docker-compose.yaml
dockerfile
Dockerfile
  • quay.io/arcalot/arcaflow-plugin-baseimage-python-buildbase 0.2.0@sha256:7b72424c08c51d1bb6215fac0e002fd9d406b6321dcd74233ea53ec653280be8
  • quay.io/arcalot/arcaflow-plugin-baseimage-python-osbase 0.2.0@sha256:a57baf7714d13b4fb0a01551990eed927b1f1251cd502ad01bcb05ffeeff31d8
github-actions
.github/workflows/act.yaml
.github/workflows/build.yaml
  • actions/checkout v3
  • actions/upload-artifact v3
pip_requirements
requirements.txt
  • ansible-core ==2.15.2
  • ansible-runner ==2.3.3
  • arcaflow-plugin-sdk ==0.10.3
  • attrs ==23.1.0
  • automat ==22.10.0
  • cbor2 ==5.4.6
  • cffi ==1.15.1
  • constantly ==15.1.0
  • cryptography ==41.0.3
  • docutils ==0.20.1
  • hyperlink ==21.0.0
  • idna ==3.4
  • incremental ==22.10.0
  • jinja2 ==3.1.2
  • lockfile ==0.12.2
  • MarkupSafe ==2.1.3
  • packaging ==23.1
  • pexpect ==4.8.0
  • ptyprocess ==0.7.0
  • pycparser ==2.21
  • pyparsing ==3.1.1
  • python-daemon ==3.0.1
  • PyYAML ==6.0.1
  • resolvelib ==1.0.1
  • setuptools ==68.0.0
  • six ==1.16.0
  • twisted-iocpsupport ==1.0.3
  • twisted ==22.10.0
  • typing-extensions ==4.7.1
  • zope-interface ==6.0
  • zope.interface ==6.0
poetry
pyproject.toml
  • arcaflow-plugin-sdk 0.10.3
  • ansible-core ^2.14.0
  • ansible-runner 2.3.3
  • docformatter ^1.5.0
  • autoflake ^2.0.0
  • black ^23.0.0

Re-implement metadata plugin with a defined output schema

Please describe what you would like to see in this project

The metadata plugin is currently a rudimentary proof-of-concept that indiscriminately collects the data from ansible gather-facts and dumps the output to an anytype schema. This causes a number of problems and limitations, and the collected metadata is too extensive and verbose to be useful. The plugin should be rebuilt to specify explicitly what metadata should be collected and how the output schema should be formatted.

Please describe your use case

A metadata plugin is likely to be used very extensively across workflows. It should be lightweight and well-organized for portability and reuse.

Additional context

Possible approaches to consider:

  • Continue to use ansible gather-facts, but post-process the output within the plugin to only the information we care to report
  • Collect the interesting metadata directly from the filesystems and standard command outputs
  • Implement via the existing cloud-bulldozer metadata-collector system
  • Implement via the pbench tool-meister system (I'm not sure where to link to for more information as it doesn't seem to appear in the main pbench docs)

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.