Commit 0826228f authored by Burak Kelgin's avatar Burak Kelgin
Browse files

first commit

parent 473ae868
*.pyc
.idea
django-orchestrator-stable
django-orchestrator-master-fc05819175fe05a4f80bd619761583d23c803225
from django.contrib import admin
# Register your models here.
from django.apps import AppConfig
class CommunicationConfig(AppConfig):
name = 'communication'
from ceilometerclient import client
import json, ast
def ceilometerc(request):
cc1 = client.get_client(version=2,
os_username="admin",
os_password="admin",
os_tenant_name='admin',
os_auth_url='http://192.168.171.3:5000/v2.0')
test = cc1.statistics.list('cpu_util')
list= cc1.meters.list()
print(list)
# convert to str
test = str(test[0])
# cut unnecessary stuff
test = test[12:(len(test) - 1)]
test = json.dumps(test)
test = json.loads(test)
# convert to dict
test = ast.literal_eval(test)
# get cpu usage avg
avg = test['avg']
print(avg)
return avg
\ No newline at end of file
import json
from django.core.management.base import BaseCommand
from polls.models import servers, count
#x is bytes output
def myparser(x):
res=x.content
print(x.content)
print(type(x.content))
parsed= res.decode() #convert to string
print(type(parsed))
decoded = json.loads(parsed)
print(json.dumps(decoded, sort_keys=True, indent=4))
return decoded
\ No newline at end of file
{
"nodes": [
{"name": "Myriel", "group": 1},
{"name": "Napoleon", "group": 1},
{"name": "Mlle.Baptistine", "group": 1},
{"name": "Mme.Magloire", "group": 1},
{"name": "CountessdeLo", "group": 1},
{"name": "Geborand", "group": 1},
{"name": "Champtercier", "group": 1},
{"name": "Cravatte", "group": 1},
{"name": "Count", "group": 1},
{"name": "OldMan", "group": 1},
{"name": "Labarre", "group": 2},
{"name": "Valjean", "group": 2},
{"name": "Marguerite", "group": 3},
{"name": "Mme.deR", "group": 2},
{"name": "Isabeau", "group": 2},
{"name": "Gervais", "group": 2},
{"name": "Tholomyes", "group": 3},
{"name": "Listolier", "group": 3},
{"name": "Fameuil", "group": 3},
{"name": "Blacheville", "group": 3},
{"name": "Favourite", "group": 3},
{"name": "Dahlia", "group": 3},
{"name": "Zephine", "group": 3},
{"name": "Fantine", "group": 3},
{"name": "Mme.Thenardier", "group": 4},
{"name": "Thenardier", "group": 4},
{"name": "Cosette", "group": 5},
{"name": "Javert", "group": 4},
{"name": "Fauchelevent", "group": 0},
{"name": "Bamatabois", "group": 2},
{"name": "Perpetue", "group": 3},
{"name": "Simplice", "group": 2},
{"name": "Scaufflaire", "group": 2},
{"name": "Woman1", "group": 2},
{"name": "Judge", "group": 2},
{"name": "Champmathieu", "group": 2},
{"name": "Brevet", "group": 2},
{"name": "Chenildieu", "group": 2},
{"name": "Cochepaille", "group": 2},
{"name": "Pontmercy", "group": 4},
{"name": "Boulatruelle", "group": 6},
{"name": "Eponine", "group": 4},
{"name": "Anzelma", "group": 4},
{"name": "Woman2", "group": 5},
{"name": "MotherInnocent", "group": 0},
{"name": "Gribier", "group": 0},
{"name": "Jondrette", "group": 7},
{"name": "Mme.Burgon", "group": 7},
{"name": "Gavroche", "group": 8},
{"name": "Gillenormand", "group": 5},
{"name": "Magnon", "group": 5},
{"name": "Mlle.Gillenormand", "group": 5},
{"name": "Mme.Pontmercy", "group": 5},
{"name": "Mlle.Vaubois", "group": 5},
{"name": "Lt.Gillenormand", "group": 5},
{"name": "Marius", "group": 8},
{"name": "BaronessT", "group": 5},
{"name": "Mabeuf", "group": 8},
{"name": "Enjolras", "group": 8},
{"name": "Combeferre", "group": 8},
{"name": "Prouvaire", "group": 8},
{"name": "Feuilly", "group": 8},
{"name": "Courfeyrac", "group": 8},
{"name": "Bahorel", "group": 8},
{"name": "Bossuet", "group": 8},
{"name": "Joly", "group": 8},
{"name": "Grantaire", "group": 8},
{"name": "MotherPlutarch", "group": 9},
{"name": "Gueulemer", "group": 4},
{"name": "Babet", "group": 4},
{"name": "Claquesous", "group": 4},
{"name": "Montparnasse", "group": 4},
{"name": "Toussaint", "group": 5},
{"name": "Child1", "group": 10},
{"name": "Child2", "group": 10},
{"name": "Brujon", "group": 4},
{"name": "Mme.Hucheloup", "group": 8}
],
"links": [
{"source": 1, "target": 0, "value": 1},
{"source": 2, "target": 0, "value": 8},
{"source": 3, "target": 0, "value": 10},
{"source": 3, "target": 2, "value": 6},
{"source": 4, "target": 0, "value": 1},
{"source": 5, "target": 0, "value": 1},
{"source": 6, "target": 0, "value": 1},
{"source": 7, "target": 0, "value": 1},
{"source": 8, "target": 0, "value": 2},
{"source": 9, "target": 0, "value": 1},
{"source": 11, "target": 10, "value": 1},
{"source": 11, "target": 3, "value": 3},
{"source": 11, "target": 2, "value": 3},
{"source": 11, "target": 0, "value": 5},
{"source": 12, "target": 11, "value": 1},
{"source": 13, "target": 11, "value": 1},
{"source": 14, "target": 11, "value": 1},
{"source": 15, "target": 11, "value": 1},
{"source": 17, "target": 16, "value": 4},
{"source": 18, "target": 16, "value": 4},
{"source": 18, "target": 17, "value": 4},
{"source": 19, "target": 16, "value": 4},
{"source": 19, "target": 17, "value": 4},
{"source": 19, "target": 18, "value": 4},
{"source": 20, "target": 16, "value": 3},
{"source": 20, "target": 17, "value": 3},
{"source": 20, "target": 18, "value": 3},
{"source": 20, "target": 19, "value": 4},
{"source": 21, "target": 16, "value": 3},
{"source": 21, "target": 17, "value": 3},
{"source": 21, "target": 18, "value": 3},
{"source": 21, "target": 19, "value": 3},
{"source": 21, "target": 20, "value": 5},
{"source": 22, "target": 16, "value": 3},
{"source": 22, "target": 17, "value": 3},
{"source": 22, "target": 18, "value": 3},
{"source": 22, "target": 19, "value": 3},
{"source": 22, "target": 20, "value": 4},
{"source": 22, "target": 21, "value": 4},
{"source": 23, "target": 16, "value": 3},
{"source": 23, "target": 17, "value": 3},
{"source": 23, "target": 18, "value": 3},
{"source": 23, "target": 19, "value": 3},
{"source": 23, "target": 20, "value": 4},
{"source": 23, "target": 21, "value": 4},
{"source": 23, "target": 22, "value": 4},
{"source": 23, "target": 12, "value": 2},
{"source": 23, "target": 11, "value": 9},
{"source": 24, "target": 23, "value": 2},
{"source": 24, "target": 11, "value": 7},
{"source": 25, "target": 24, "value": 13},
{"source": 25, "target": 23, "value": 1},
{"source": 25, "target": 11, "value": 12},
{"source": 26, "target": 24, "value": 4},
{"source": 26, "target": 11, "value": 31},
{"source": 26, "target": 16, "value": 1},
{"source": 26, "target": 25, "value": 1},
{"source": 27, "target": 11, "value": 17},
{"source": 27, "target": 23, "value": 5},
{"source": 27, "target": 25, "value": 5},
{"source": 27, "target": 24, "value": 1},
{"source": 27, "target": 26, "value": 1},
{"source": 28, "target": 11, "value": 8},
{"source": 28, "target": 27, "value": 1},
{"source": 29, "target": 23, "value": 1},
{"source": 29, "target": 27, "value": 1},
{"source": 29, "target": 11, "value": 2},
{"source": 30, "target": 23, "value": 1},
{"source": 31, "target": 30, "value": 2},
{"source": 31, "target": 11, "value": 3},
{"source": 31, "target": 23, "value": 2},
{"source": 31, "target": 27, "value": 1},
{"source": 32, "target": 11, "value": 1},
{"source": 33, "target": 11, "value": 2},
{"source": 33, "target": 27, "value": 1},
{"source": 34, "target": 11, "value": 3},
{"source": 34, "target": 29, "value": 2},
{"source": 35, "target": 11, "value": 3},
{"source": 35, "target": 34, "value": 3},
{"source": 35, "target": 29, "value": 2},
{"source": 36, "target": 34, "value": 2},
{"source": 36, "target": 35, "value": 2},
{"source": 36, "target": 11, "value": 2},
{"source": 36, "target": 29, "value": 1},
{"source": 37, "target": 34, "value": 2},
{"source": 37, "target": 35, "value": 2},
{"source": 37, "target": 36, "value": 2},
{"source": 37, "target": 11, "value": 2},
{"source": 37, "target": 29, "value": 1},
{"source": 38, "target": 34, "value": 2},
{"source": 38, "target": 35, "value": 2},
{"source": 38, "target": 36, "value": 2},
{"source": 38, "target": 37, "value": 2},
{"source": 38, "target": 11, "value": 2},
{"source": 38, "target": 29, "value": 1},
{"source": 39, "target": 25, "value": 1},
{"source": 40, "target": 25, "value": 1},
{"source": 41, "target": 24, "value": 2},
{"source": 41, "target": 25, "value": 3},
{"source": 42, "target": 41, "value": 2},
{"source": 42, "target": 25, "value": 2},
{"source": 42, "target": 24, "value": 1},
{"source": 43, "target": 11, "value": 3},
{"source": 43, "target": 26, "value": 1},
{"source": 43, "target": 27, "value": 1},
{"source": 44, "target": 28, "value": 3},
{"source": 44, "target": 11, "value": 1},
{"source": 45, "target": 28, "value": 2},
{"source": 47, "target": 46, "value": 1},
{"source": 48, "target": 47, "value": 2},
{"source": 48, "target": 25, "value": 1},
{"source": 48, "target": 27, "value": 1},
{"source": 48, "target": 11, "value": 1},
{"source": 49, "target": 26, "value": 3},
{"source": 49, "target": 11, "value": 2},
{"source": 50, "target": 49, "value": 1},
{"source": 50, "target": 24, "value": 1},
{"source": 51, "target": 49, "value": 9},
{"source": 51, "target": 26, "value": 2},
{"source": 51, "target": 11, "value": 2},
{"source": 52, "target": 51, "value": 1},
{"source": 52, "target": 39, "value": 1},
{"source": 53, "target": 51, "value": 1},
{"source": 54, "target": 51, "value": 2},
{"source": 54, "target": 49, "value": 1},
{"source": 54, "target": 26, "value": 1},
{"source": 55, "target": 51, "value": 6},
{"source": 55, "target": 49, "value": 12},
{"source": 55, "target": 39, "value": 1},
{"source": 55, "target": 54, "value": 1},
{"source": 55, "target": 26, "value": 21},
{"source": 55, "target": 11, "value": 19},
{"source": 55, "target": 16, "value": 1},
{"source": 55, "target": 25, "value": 2},
{"source": 55, "target": 41, "value": 5},
{"source": 55, "target": 48, "value": 4},
{"source": 56, "target": 49, "value": 1},
{"source": 56, "target": 55, "value": 1},
{"source": 57, "target": 55, "value": 1},
{"source": 57, "target": 41, "value": 1},
{"source": 57, "target": 48, "value": 1},
{"source": 58, "target": 55, "value": 7},
{"source": 58, "target": 48, "value": 7},
{"source": 58, "target": 27, "value": 6},
{"source": 58, "target": 57, "value": 1},
{"source": 58, "target": 11, "value": 4},
{"source": 59, "target": 58, "value": 15},
{"source": 59, "target": 55, "value": 5},
{"source": 59, "target": 48, "value": 6},
{"source": 59, "target": 57, "value": 2},
{"source": 60, "target": 48, "value": 1},
{"source": 60, "target": 58, "value": 4},
{"source": 60, "target": 59, "value": 2},
{"source": 61, "target": 48, "value": 2},
{"source": 61, "target": 58, "value": 6},
{"source": 61, "target": 60, "value": 2},
{"source": 61, "target": 59, "value": 5},
{"source": 61, "target": 57, "value": 1},
{"source": 61, "target": 55, "value": 1},
{"source": 62, "target": 55, "value": 9},
{"source": 62, "target": 58, "value": 17},
{"source": 62, "target": 59, "value": 13},
{"source": 62, "target": 48, "value": 7},
{"source": 62, "target": 57, "value": 2},
{"source": 62, "target": 41, "value": 1},
{"source": 62, "target": 61, "value": 6},
{"source": 62, "target": 60, "value": 3},
{"source": 63, "target": 59, "value": 5},
{"source": 63, "target": 48, "value": 5},
{"source": 63, "target": 62, "value": 6},
{"source": 63, "target": 57, "value": 2},
{"source": 63, "target": 58, "value": 4},
{"source": 63, "target": 61, "value": 3},
{"source": 63, "target": 60, "value": 2},
{"source": 63, "target": 55, "value": 1},
{"source": 64, "target": 55, "value": 5},
{"source": 64, "target": 62, "value": 12},
{"source": 64, "target": 48, "value": 5},
{"source": 64, "target": 63, "value": 4},
{"source": 64, "target": 58, "value": 10},
{"source": 64, "target": 61, "value": 6},
{"source": 64, "target": 60, "value": 2},
{"source": 64, "target": 59, "value": 9},
{"source": 64, "target": 57, "value": 1},
{"source": 64, "target": 11, "value": 1},
{"source": 65, "target": 63, "value": 5},
{"source": 65, "target": 64, "value": 7},
{"source": 65, "target": 48, "value": 3},
{"source": 65, "target": 62, "value": 5},
{"source": 65, "target": 58, "value": 5},
{"source": 65, "target": 61, "value": 5},
{"source": 65, "target": 60, "value": 2},
{"source": 65, "target": 59, "value": 5},
{"source": 65, "target": 57, "value": 1},
{"source": 65, "target": 55, "value": 2},
{"source": 66, "target": 64, "value": 3},
{"source": 66, "target": 58, "value": 3},
{"source": 66, "target": 59, "value": 1},
{"source": 66, "target": 62, "value": 2},
{"source": 66, "target": 65, "value": 2},
{"source": 66, "target": 48, "value": 1},
{"source": 66, "target": 63, "value": 1},
{"source": 66, "target": 61, "value": 1},
{"source": 66, "target": 60, "value": 1},
{"source": 67, "target": 57, "value": 3},
{"source": 68, "target": 25, "value": 5},
{"source": 68, "target": 11, "value": 1},
{"source": 68, "target": 24, "value": 1},
{"source": 68, "target": 27, "value": 1},
{"source": 68, "target": 48, "value": 1},
{"source": 68, "target": 41, "value": 1},
{"source": 69, "target": 25, "value": 6},
{"source": 69, "target": 68, "value": 6},
{"source": 69, "target": 11, "value": 1},
{"source": 69, "target": 24, "value": 1},
{"source": 69, "target": 27, "value": 2},
{"source": 69, "target": 48, "value": 1},
{"source": 69, "target": 41, "value": 1},
{"source": 70, "target": 25, "value": 4},
{"source": 70, "target": 69, "value": 4},
{"source": 70, "target": 68, "value": 4},
{"source": 70, "target": 11, "value": 1},
{"source": 70, "target": 24, "value": 1},
{"source": 70, "target": 27, "value": 1},
{"source": 70, "target": 41, "value": 1},
{"source": 70, "target": 58, "value": 1},
{"source": 71, "target": 27, "value": 1},
{"source": 71, "target": 69, "value": 2},
{"source": 71, "target": 68, "value": 2},
{"source": 71, "target": 70, "value": 2},
{"source": 71, "target": 11, "value": 1},
{"source": 71, "target": 48, "value": 1},
{"source": 71, "target": 41, "value": 1},
{"source": 71, "target": 25, "value": 1},
{"source": 72, "target": 26, "value": 2},
{"source": 72, "target": 27, "value": 1},
{"source": 72, "target": 11, "value": 1},
{"source": 73, "target": 48, "value": 2},
{"source": 74, "target": 48, "value": 2},
{"source": 74, "target": 73, "value": 3},
{"source": 75, "target": 69, "value": 3},
{"source": 75, "target": 68, "value": 3},
{"source": 75, "target": 25, "value": 3},
{"source": 75, "target": 48, "value": 1},
{"source": 75, "target": 41, "value": 1},
{"source": 75, "target": 70, "value": 1},
{"source": 75, "target": 71, "value": 1},
{"source": 76, "target": 64, "value": 1},
{"source": 76, "target": 65, "value": 1},
{"source": 76, "target": 66, "value": 1},
{"source": 76, "target": 63, "value": 1},
{"source": 76, "target": 62, "value": 1},
{"source": 76, "target": 48, "value": 1},
{"source": 76, "target": 58, "value": 1}
]
}
\ No newline at end of file
from django.db import models
# Create your models here.
import json
import requests
from .communication import myparser
from polls.models import servers,count,networks
from django.core.management.base import BaseCommand
def auth():
headers = {'Content-Type': 'application/json', }
#data = '{"auth": {"tenantName": "", "passwordCredentials":{"username": "tacker", "password": "tacker"}}}'
data = '{ "auth": { "identity": { "methods": ["password"],"password": {"user": {"domain": {"name": "'"default"'"},"name": "'"tacker"'", "password": "'"tacker"'"} } }, "scope": { "project": { "domain": { "name": "'"default"'" }, "name": "'"services"'" } } }}'
resp = requests.post('http://192.168.171.3:5000/v3/auth/tokens?nocatalog', headers=headers, data=data)
# test3 = requests.get('http://192.168.171.3/horizon/project/network_topology/', headers=headers, data=data )
# ('http://192.168.171.3/horizon/project/network_topology/', headers=headers, data=data)
# convert response to dict
body = resp.json()
headers = resp.headers
# convert dict to str
#test2 = json.dumps(test2)
# convert str to json
#test2 = json.loads(test2)
# access auth token id
#tokenid = test2['access']['token']['id'] # token id is inside here :)
print(headers)
headers2 = {'X-Auth-Token': headers['X-Subject-Token'] }
return headers2
#openstack endpoint list | grep public
def get_vm_list():
header = auth()
print(header)
anotherUrl = 'http://192.168.171.3:8774/v2.1/servers/detail'
nextreq = requests.get(anotherUrl, headers=header)
parsed= myparser(nextreq)
servers.objects.all().delete()
count.objects.all().delete()
server_count = 0
print("JSON parsing example: ", type(parsed['servers']))
for parsed in parsed["servers"]:
server_count = server_count + 1
server_id=parsed['id']
anotherUrl = 'http://192.168.171.3:8774/v2.1/servers/%s/os-interface' % server_id
nextreq = requests.get(anotherUrl, headers=header)
parsed2=nextreq.content
parsed2=parsed2.decode('utf8').replace("'", '"')
parsed2 = json.loads(parsed2)
print(type(parsed2))
parsed2=str(parsed2["interfaceAttachments"])
parsed2=parsed2.replace('[', '').replace(']', '')
print(parsed2)
parsed2=json.loads(parsed2.replace("'", '"' ))
print(type(parsed2))
print("PORTS: ", type(parsed2))
print(parsed2)
s = servers(server_name=parsed["name"], server_id=parsed["id"], server_status=parsed["status"],
server_netid=parsed2["net_id"],
server_portid=parsed2["port_id"],
server_ip=parsed2["fixed_ips"]["ip_address"],
server_subnet=parsed2["fixed_ips"]["subnet_id"])
s.save()
a=count(server_number=server_count)
a.save()
print(servers.objects.all())
return nextreq
def get_network():
header = auth()
print(header)
anotherUrl = 'http://192.168.171.3:9696//v2.0/networks'
nextreq = requests.get(anotherUrl, headers=header)
parsed= myparser(nextreq)
networks.objects.all().delete()
print(parsed)
for parsed in parsed["networks"]:
subnets=str(parsed["subnets"]).replace("[", "").replace("]", "").replace("'", "")
print(subnets)
a = networks(network_name=parsed["name"], network_subnet=subnets)
a.save()
return parsed
\ No newline at end of file
import json
import requests
import argparse
import sys
from .communication import myparser
from polls.models import vnf, servers
VNF_ID_DEFAULT='6be04d23-6329-4c7b-a276-9a0a184bf22d'
VNFD_ID_DEFAULT='e2975fc4-2414-4b49-960b-5cdb43b61f35'
VIM_ID_DEFAULT='f565dbdc-74aa-4ea9-8c65-511b4fcd1afb'
TRAFFIC_TYPE_DEFAULT='icmp'
VNF_UPDATE_BODY_DEFAULT = {"vnf": {"attributes": {"config":"vdus:\n VDU1:\n config:\n firewall: |\n package firewall\n config defaults\n option src net_mgmt\n option proto icmp\n option target REJECT\n"}}}
def auth():
headers = {'Content-Type': 'application/json', }
#data = '{"auth": {"tenantName": "", "passwordCredentials":{"username": "tacker", "password": "tacker"}}}'
data = '{ "auth": { "identity": { "methods": ["password"],"password": {"user": {"domain": {"name": "'"default"'"},"name": "'"tacker"'", "password": "'"tacker"'"} } }, "scope": { "project": { "domain": { "name": "'"default"'" }, "name": "'"services"'" } } }}'
resp = requests.post('http://192.168.171.3:5000/v3/auth/tokens?nocatalog', headers=headers, data=data)
# test3 = requests.get('http://192.168.171.3/horizon/project/network_topology/', headers=headers, data=data )
# ('http://192.168.171.3/horizon/project/network_topology/', headers=headers, data=data)
# convert response to dict
body = resp.json()
headers = resp.headers
# convert dict to str
#test2 = json.dumps(test2)
# convert str to json
#test2 = json.loads(test2)
# access auth token id
#tokenid = test2['access']['token']['id'] # token id is inside here :)
print(headers)
headers2 = {'X-Auth-Token': headers['X-Subject-Token'] }
return headers2
def create_vnf(vim_id, vnfd_id, vnf_name, vnf_description):
header = auth()
print(header)
anotherUrl = 'http://192.168.171.3:9890/v1.0/vnfs'
data={"vnf": {"attributes": {}, "vim_id": vim_id, "description": vnf_description, "vnfd_id": vnfd_id, "name": vnf_name}}
nextreq = requests.post(anotherUrl, headers=header, data=json.dumps(data))
print(nextreq.content)
return nextreq
def get_vnfd(vnfd_id):
header = auth()
print(header)
anotherUrl = 'http://192.168.171.3:9890/v1.0/vnfds/' + vnfd_id
nextreq = requests.get(anotherUrl, headers=header)
print(nextreq.content)
return nextreq