Coder Social home page Coder Social logo

renci-nrig / ahab Goto Github PK

View Code? Open in Web Editor NEW
0.0 7.0 1.0 461 KB

Ahab is a collection of libraries for managing the state of slices created in ORCA

License: Eclipse Public License 1.0

Java 92.55% Python 7.29% Shell 0.16%
exogeni geni java iaas-cloud

ahab's Introduction

This code is no longer being maintained. The repo is kept for historical reasons.

ahab

Ahab is a collection of libraries for managing the state of slices created in ORCA

Using ahab in your project

Ahab includes a Maven Archetype, providing a template for creating projects that use Ahab. You can run the following maven command to generate a new maven project / sample application, that is ready to compile and run. When run, it will create a simple slice using Ahab.

  • mvn archetype:generate -DarchetypeGroupId=org.renci.ahab -DarchetypeArtifactId=ahab-simple-archetype -DarchetypeVersion=0.1.7 -DgroupId=com.mycompany.app -DartifactId=my-app

The generated template will include a README.md file with instructions on how to build and run the sample application.

Releases

Release artifacts of Ahab are available from the The Central Repository, Open Source Software Repository Hosting (OSSRH). Information on the latest version available can be found using this search: g:"org.renci.ahab"

Use the following pom snippet to include Ahab in your project:

<dependency>
    <groupId>org.renci.ahab</groupId>
    <artifactId>ahab</artifactId>
    <version>0.1.6</version>
    <type>pom</type>
</dependency>

Further information for Ahab developers on the Release process can be found in RELEASE.md

ahab's People

Contributors

anriban avatar congwang09 avatar hinchliff avatar ibaldin avatar kthare10 avatar paul-ruth avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

yaoyj11

ahab's Issues

Getting data plane IP addresses for ComputeNode in MP/interdomain slices

Loading a manifest RDF for a multipoint/interdomain slice doesn't seem to create the underlying SliceGraph correctly when one does Slice s = Slice.loadManifest(manifest). There are no interfaces (i.e. s.getInterfaces().size() = 0), and hence one can't obtain the data plane IPs. It works fine in the intra-domain case.

Cannot set bandwidth for network links

I attempted to set bandwidth for BroadcastNetwork instances by calling its setBandwidth() method and it didn't take effect. The bandwidth was still the default 10Mbps as shown in the created request.

libtransport: create vs modify extra parameter

The create and modify methods on ISliceTransportAPIv1 have the following signatures:

public abstract String modifySlice(String sliceId, String modReq) throws TransportException, ContextTransportException;

public abstract String createSlice(String sliceId, String resReq, SliceAccessContext<? extends AccessToken> sliceCtx) throws TransportException, ContextTransportException;

I think the createSlice method does not nee the sliceCtx parameter. The proxy should already know the context b/c it is required to create a proxy. It would be simpler and more consistent if none of the api calls required the context. Otherwise libndl need to keep track of both the proxy and the context for each slice.

Duplicate Interfaces

s.getInterfaces() returns a list of interfaces in the slice, but each interface appears twice

AutoIP reassigns in use IP in case of modifySlice

AutoIP reassigns in use IP in case of modifySlice.

Issue exists because the order in which interfaces are processed in Network::autoIP function are processed is not deterministic.

Solution is to traverse all the interfaces which have IP addresses allocated should mark ip as used in subnet. Once subnet is populated, allocate IPs for new interfaces.

General Use Case Issues

Long term issue for keeping track of use cases that test ahab/exogeni

  • ComputeNodes. Including testing of all attributes (setting and getting)
  • Networks. Including testing of all attributes (setting and getting)
  • StitchPorts. Including testing of all attributes (setting and getting)
  • StorageNodes. Including testing of all attributes (setting and getting)
  • Timing of refresh. A quick refresh after a commit will get occasionally get an incomplete manifest
  • Intra. vs. Interdomain connections often have very different issues
  • Requests vs. modifies often have very different issues

Slice term setting

Setting the slice term should work. Flukes cannot extend AHAB-created slices. This may also be a problem with Flukes being too sensitive.

@dcvan24 @clarisca

Documentation

@paul-ruth @congwang09 Somewhere between Paul and Cong we need to produce some basic documentation for AHAB. It would be fine to create an ExoBlog (and may be preferable) and then link to it from the README file in this repo.

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.