GithubHelp home page GithubHelp logo

krutaw / playbook Goto Github PK

View Code? Open in Web Editor NEW
2.0 5.0 0.0 86 KB

Playbook is a workflow engine for performing various tasks from the perspective of the NOC (Network Operations Center) team's perspective.

License: MIT License

Python 99.73% Shell 0.27%

playbook's Introduction

Playbook


What is this?

Playbook is a workflow engine for performing various tasks from the perspective of the NOC (Network Operations Center) team's perspective. The basic idea is to wrap tooling around action items that are performed when something happens. This could be restarting a service, calling the SME who is on-call via Twilio, etc.

Standards

  • Language
    • All code shall conform to Python 3.6+
    • All code shall pass Python Linter

Models

  • SMEs (Subject Matter Experts)
    • Cell Phone Number
    • Username
    • Email address
    • Given name
    • Surname
  • Teams (made up of SMEs)
    • Team Name
    • Team manager
    • SME
  • Calendars (allow for multiple per team)
    • Calendar name
    • Associated team
  • RecurRule
    • Name
    • Description
    • Frequency
    • Params
  • Schedule (allow for multiple per Calendar)
    • Schedule name
    • Associated Calendar
    • Start time
    • End time
    • Recurrence pattern (if any)
  • Schedule order
    • OnCall SME
    • Oncall Order
    • Oncall Schedule (reference to Schedule)
  • Actions
    • Action Type
      • Twilio SMS
      • Twilio Phone call
      • HipChat notification
        • Hipchat Room
      • Email
      • Ansible playbook
        • Associated certificate
      • Recovery check
    • Action Name
  • Auth Certificate
    • Password
    • Certificate name
  • Playbook
    • Playbook Name
    • Associated Team
  • Play
    • Associated Playbook
    • Order
    • Associated Action
    • Number of Retries
    • Associated action to check recovery (used for auto-corrective actions only)

Interfaces

  • Basic web interface for Playbook definition
  • API for tool interaction

Logical workflow

Logical workflow

Installation

  • Clone
  • Update core/Settings.py
    • REST_FRAMEWORK
      • URL_FIELD_NAME

Contributing

Please feel free to contribute or assist, this is literally a side project for me that I'm hoping will be useful to others. Please perform commits to the development branch and then do a pull request to merge into master.

playbook's People

Contributors

krutaw avatar

Stargazers

Chris Pisano avatar  avatar

Watchers

James Cloos avatar  avatar Chris Pisano avatar  avatar  avatar

playbook's Issues

Create models

Create all of the models based on the documentation thus far.

Dev branch

Create DEV branch and start performing all the work there first.

Rest API

Define the REST methods required and create the necessary Views using Django rest framework.

Fullcalendar integration

Need to write the Django bits to integrate with Fullcalendar to make the creation of on-call schedule "pretty".

Static content

Create the static content to eliminate the rest_framework errors:

[24/Feb/2018 22:38:21] "GET /static/rest_framework/css/bootstrap-tweaks.css HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/css/bootstrap.min.css HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/css/prettify.css HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/css/default.css HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/js/jquery-1.12.4.min.js HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/js/bootstrap.min.js HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/js/ajax-form.js HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/js/csrf.js HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/js/prettify-min.js HTTP/1.1" 304 0
[24/Feb/2018 22:38:21] "GET /static/rest_framework/js/default.js HTTP/1.1" 304 0

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.