Coder Social home page Coder Social logo

beehive-service's Introduction

beehive-service

beehive-service is the project that contains the service component of the nivola cmp platform.

All code is written using python and support versions 3.7.x>

For more information refer to the nivola project

Overview

beehive service expose an API by which a final user may interact with the Nivola Cloud Management Platform cmp. When the method requires the interaction with same provider it wraps the invocations of beehive resource methods and sometimes it may orchestrate different calls. When the method requires some authentication and authorization it wraps the invocations of beehive auth methods.

Data model

In order to organize consumers and accounts for costs incurred, the legal entities using the platform are identified by the Organization entity. Each Organization is in turn divided into Division (there is always one by default), while one or more Accounts can be associated with a Division.

When created an Account is empty and has no services activated within it is just authorization concept. The Account configuration is created by means of enabling capabilities (AccountCapability).

An AccountCapability is enabled set of services are created inside the Account. Each Capability is designed in order do provide a consistent set of services which existence is needed by target services: eg. in order to create a ComputeInstance service the Account must contain one ComputeService, at least one ComputeImage, at least one ComputeVpc etc.

By enabling an AccountCapability, many ServiceInstance may be created in an Account in a single operation. One Account may have many AccountCapability enabled and associated with it.

The ServiceInstance is entity that describe the business services such as the ComputeInstance, DatabaseInstance, etc that can be created inside an Account.

Each ServiceInstance has one ServiceDefinition. The ServiceDefinition entity contains the template configuration required in order to create an ServiceInstance.

Each ServiceDefinition has one ServiceType. The ServiceType entity identify the plug-in which contains the logics in order to manage the ServiceInstance

All the ServiceDefinitions are organized into catalogues by means of the ServiceCatalog entity.

Installing

Install requirements

First of all you have to install some package:

$ sudo apt-get install gcc
$ sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev

At this point create a virtualenv

$ python3 -m venv /tmp/py3-test-env
$ source /tmp/py3-test-env/bin/activate
$ pip3 install wheel

Install python packages

public packages:

$ pip3 install -U git+https://github.com/Nivola/beehive-service.git

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use Semantic Versioning for versioning. (https://semver.org)

Authors

See the list of contributors who participated in this project in the file AUTHORS.md contained in each specific project.

Copyright

CSI Piemonte - 2018-2022

Regione Piemonte - 2020-2022

License

See the *LICENSE.txt file contained in each specific project for details.

Community site (Optional)

At https://www.nivolapiemonte.it/ could find all the informations about the project.

beehive-service's People

Contributors

gidor avatar filippovallero-csi avatar

Watchers

 avatar

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.