Categorygithub.com/rchamarthy/zebra
modulepackage
0.0.0-20220706073134-eb49f3c48191
Repository: https://github.com/rchamarthy/zebra.git
Documentation: pkg.go.dev

# README

:vertical_traffic_light: zebra test Go Report Card codecov Maintainability Apache 2 licensed

Welcome to Zebra

Zebra is a tool to maintain resource inventory and reservations.

How Zebra works

Zebra is a neat and convenient tool for resource management. To start, any resource can be added to the system provided an ID string and other resource-specific details. Zebra must also be given the resource associations (i.e. how is the current resource connected to any other resources in the system). Once all resources and associations have been added, the inventory is complete. Zebra now models the entire system. From here, users can reserve the system resources. When a user reserves a resource, Zebra marks it as in-use. While the user holds the resource, Zebra continues to allocate free resources to subsequent users. When a user releases a resource, Zebra marks it as free.

Zebra for Metrics

We aim to develop a dashboard to track resource usage by user.​ This provides insight on which resources are in high-demand, how each user is utilizing system resources, etc. A further enhancement would be to allow user groups. By doing so, Zebra can track usage across a user group and gain insight into how a group is using system resources.

Getting started with Zebra

As of now, we have not determined a way in which Zebra will read input data to model a system.

Users

A user represents an temporary owner of a resource. Each user will be associated with a role. This role (such as developer, admin, client, etc.) determines the user's permissions. Once authenticated, a user will be allowed to reserve resources according to their role permissions. Once Zebra allocates a resource to the user, Zebra logs that the user is in current possession of the resource. Once the user is finished, Zebra will release the resource to be allocated to other users. As of now, we have not determined how to create/delete/authenticate users to begin reserving resources.

TO DO

# Packages

No description provided by the author
No description provided by the author
Package compute provides structs and functions pertaining to compute resources.
Package dc provides structs and functions pertaining to datacenter resources.
Package network provides structs and functions pertaining to network resources.
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Check to make sure password follows rules.
TO BE IMPLEMENTED AT A LATER TIME.

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

BaseResource must be embedded in all resource structs, ensuring each resource is assigned an ID string.
Credentials represents a named resource that has a set of keys (where each key is an authentication method) with corresponding values (where each value is the information to store for the authentication method).
NamedResource represents all resources assigned both a string ID and a name.
No description provided by the author
No description provided by the author

# Interfaces

Resource interface is implemented by all resources and provides resource validation and label selection methods.
No description provided by the author
Store interface requires basic store functionalities.

# Type aliases

Labels are key/value pairs that can be attached to any resource.