Пример #1
0
from APIWrapper import FogDirector
import time, random, math
from infrastructure import ciscorouter_size300 as infrastructure

infrastructure.create()

fg = FogDirector("127.0.0.1:5000")
code = fg.authenticate("admin", "admin_123")
if code == 401:
    print("Failed Authentication")

DEVICES_NUMBER = 5
DEPLOYMENT_NUMBER = 30
# Adding devices
for i in range(0, DEVICES_NUMBER):
    deviceId = i + 1
    _, device1 = fg.add_device("10.10.20." + str(deviceId), "cisco", "cisco")

# Uploading Application
code, localapp = fg.add_app("./NettestApp2V1_lxc.tar.gz",
                            publish_on_upload=True)

for myapp_index in range(0, DEPLOYMENT_NUMBER):
    # Creating myapp1 endpoint
    dep = "dep" + str(myapp_index)
    _, myapp1 = fg.create_myapp(localapp["localAppId"], dep)

    # first installation
    r = random.random()
    deviceIp = "10.10.20." + str(math.floor(r * DEVICES_NUMBER) + 1)
Пример #2
0
from APIWrapper import FogDirector 
from infrastructure import ciscorouters_310pz_5b5m300s_withFails as infrastructure
from collections import defaultdict
import array, requests, simplejson, random, os
infrastructure.create()

MAX_SIMULATION_ITER = 15000

port = "5000"
fd = FogDirector("127.0.0.1:"+port)
code = fd.authenticate("admin", "admin_123")

def bestFit(cpu, mem):
    _, devices = fd.get_devices()
    devices = [ dev for dev in devices["data"] if dev["capabilities"]["nodes"][0]["cpu"]["available"] >= cpu 
                            and dev["capabilities"]["nodes"][0]["memory"]["available"] >= mem]
    devices.sort(reverse=True, key=(lambda dev: (dev["capabilities"]["nodes"][0]["cpu"]["available"], 
                                                dev["capabilities"]["nodes"][0]["memory"]["available"]) ))
    while len(devices) == 0:
        if simulation_counter() > 15000:
            print("Not able to find a bestfit. Simulation ends")
            exit()
        _, devices = fd.get_devices()
        devices = [ dev for dev in devices["data"] if dev["capabilities"]["nodes"][0]["cpu"]["available"] >= cpu 
                                    and dev["capabilities"]["nodes"][0]["memory"]["available"] >= mem]
        devices.sort(reverse=True, key=(lambda dev: (dev["capabilities"]["nodes"][0]["cpu"]["available"], 
                                                        dev["capabilities"]["nodes"][0]["memory"]["available"]) ))
    best_fit = devices[0]
    return best_fit["ipAddress"], best_fit["deviceId"]

def simulation_counter():
from APIWrapper import FogDirector
import time, requests
from infrastructure import fogdirmime_infra as infrastructure

infrastructure.create()

FOG_DIRECTOR_HOST = "127.0.0.1:5000"

def reset_simulation():
    url = "http://%s/simulationreset" % "127.0.0.1:5000"
    r = requests.get(url)
    return r.json()
reset_simulation()

fd = FogDirector(FOG_DIRECTOR_HOST)
code = fd.authenticate("admin", "admin_123")
if code == 401:
    print("Failed Authentication")

# Adding devices
_, device1 = fd.add_device("10.10.20.51", "cisco", "cisco")
_, device2 = fd.add_device("10.10.20.52", "cisco", "cisco")
_, device3 = fd.add_device("10.10.20.53", "cisco", "cisco")

code, localapp = fd.add_app("./NettestApp2V1_lxc.tar.gz", publish_on_upload=True)

_, myapp1 = fd.create_myapp(localapp["localAppId"], "dep1")
_, myapp2 = fd.create_myapp(localapp["localAppId"], "dep2", minjobs=1)

# Deploying on devices with default resources, 
# that are c1.small profile, defined by custom library