Skip to content

Database Structure

Alessandro Pagiaro edited this page Jan 21, 2019 · 6 revisions

This page is written in order to keep track of MongoDB collections. The collection structure is described in order to permit an easily access to the SimThread module, responsible for performing the simulation sampling.

Database structure

devices collection

    {
        "username": "admin",
        "password": "admin123",
        "usedCPU": 0,
        "usedMEM": 0,
        "installedApps": [ {"appid": myappid, "profile": profile} ],
        "alive": True,
        "tags": ["LeftSide", "Yellow"],
        "ipAddress": "10.10.20.51",
        "port": 8443,
        "deviceId": 1,
        "totalCPU": 1000,
        "totalMEM": 128,
        "totalVCPU": 2,
        "maxVCPUPerApp": 2,
        "chaos_down_prob": 0.4,
        "chaos_revive_prob": 0.2,
        "distributions": { 
            "CPU": [
                {
                    "timeStart": 0,
                    "timeEnd": 24,
                    "mean": 90,
                    "deviation": 10
                }
            ],
            "MEM": [
                {
                    "timeStart": 0,
                    "timeEnd": 24,
                    "mean": 110,
                    "deviation": 2
                }
            ]
        }
    }

application collection

{
  "_id": ObjectId("5c45f35ba74f818de8377236"),
  "icon": {
    "caption": "icon",
    "href": null
  },
  "images": [
    
  ],
  "packages": [
    {
      "href": "api/v1/appmgr/localapps/-1:1/packages/e0c9d17e-05a5-4253-a0c9-55e8a6da12c6"
    }
  ],
  "creationDate": 1548088155,
  "lastUpdatedDate": 1548088155,
  "descriptor": {
    "descriptor-schema-version": "2.0",
    "info": {
      "name": "NettestApp2",
      "description": "to address different ports used by different apps ",
      "version": "1",
      "author-link": "http://www.cisco.com",
      "author-name": "Cisco Systems"
    },
    "app": {
      "type": "lxc",
      "kernel-version": "3.8",
      "cpuarch": "x86_64",
      "resources": {
        "profile": "c1.small",
        "network": [
          {
            "interface-name": "eth0",
            "ports": {
              "tcp": [
                9000
              ],
              "udp": [
                12000
              ]
            }
          }
        ]
      },
      "startup": {
        "rootfs": "app.ext2",
        "target": "/sbin/init"
      }
    }
  },
  "signed": false,
  "localAppId": "5c45f35ba74f818de8377236",
  "version": "1",
  "sourceAppName": "5c45f35ba74f818de8377236:1",
  "name": "NettestApp2",
  "description": {
    "contentType": "text",
    "content": "to address different ports used by different apps "
  },
  "releaseNotes": {
    "contentType": "text"
  },
  "appType": "lxc",
  "categories": [
    
  ],
  "vendor": "",
  "published": true,
  "services": [
    
  ],
  "profileNeeded": "c1.small",
  "cpuUsage": 0,
  "memoryUsage": 0,
  "classification": "APP",
  "properties": [
    
  ]
}

myapps collection

    {
        "name": "NettestApp2",
        "sourceAppName": "c36d727c-e9c5-46ed-bc7ecbdd5cf49786:1.0",
        "version": 1,
        "type": "lxc",
        "myappId": "0123abc"
    }

jobs collection

    {   
        "myappId": "0123abc",
        "status": "deploy"/"start"/"stop",
        "devices": [
                    {
                        "deviceId": "DEVICE_TO_INSTALL",
                        "resourceAsk": {
                            "resources": {
                            "profile": "c1.tiny",
                            "cpu": 100,
                            "memory": 32,
                            "network": [
                                {
                                "interface-name": "eth0",
                                "network-name": "iox-bridge0"
                                }
                            ]
                            }
                        }
                    }
                   ],
        "payload": __http-complete-payload__,
        "profile": QUIET/NORMAL/BURSTY
    }