X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fclient%2Fbonfire.py;fp=sfa%2Fclient%2Fbonfire.py;h=0000000000000000000000000000000000000000;hb=8f91a75912df7fce175100403caf3c3ae02104d9;hp=96ec1727958a7b34a3317b002bf7b67e1841935e;hpb=cd533ea33bcf974e79837fd2a15f3bb75ec52add;p=sfa.git
diff --git a/sfa/client/bonfire.py b/sfa/client/bonfire.py
deleted file mode 100644
index 96ec1727..00000000
--- a/sfa/client/bonfire.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#tested with federica 18
-#yum -y install python-pip
-#pip install requests
-import requests
-import xml.etree.ElementTree as ET
-
-# helping functions
-# ########################################################## #
-
-def create_fed4fire_exp(name, groups, description, walltime, slice_id, exp_owner):
- # create experiement with tag fed4fire
- xmldescription='' + name + '' + groups + '' + description + '' + walltime + 'ready' + slice_id + '' + exp_owner + ''
- postexp("https://api.integration.bonfire.grid5000.fr/experiments", xmldescription)
-
-def postexp(url, xmldescription):
- headers = {'content-type': 'application/vnd.bonfire+xml'}
- r = requests.post(url, data=xmldescription, headers=headers, verify=False, auth=('nlebreto', 'GDRU_23tc$'))
-
-def stop_vm(testbed, num_compute):
- # compute bonfire to stopped state
- url = "https://api.integration.bonfire.grid5000.fr/" + "locations/" + testbed + "/computes/" + num_compute
- xmldescription = 'stopped'
- headers = {'content-type': 'application/vnd.bonfire+xml'}
- requests.put(url, data=xmldescription, headers=headers, verify=False, auth=('nlebreto', 'GDRU_23tc$'))
-
-def provisioning(num_experiment):
- # experiment bonfire to running status
- url = "https://api.integration.bonfire.grid5000.fr/experiments/" + num_experiment
- xmldescription = 'running'
- headers = {'content-type': 'application/vnd.bonfire+xml'}
- requests.put(url, data=xmldescription, headers=headers, verify=False, auth=('nlebreto', 'GDRU_23tc$'))
-
-def callcurl(url):
- r = requests.get(url, verify=False, auth=('nlebreto', 'GDRU_23tc$'))
- if r.status_code == 200:
- return r.text
-
-def buildpagehttp(part1, part2):
- res = []
- for page in locations:
- res.append(part1 + page + "/" + part2)
- return res
-
-def boucle(itemname, xmltree, hashrspec, name):
- for item in xmltree.findall(itemname):
- hashrspec[name.text][itemname] = item.text
-
-def jfedfeat(bonfires, pageurl):
- pageforstatus = callcurl(pageurl)
- xmlreduit = ET.fromstring(pageforstatus)
- hashrspec = {}
- itemshost = ["DISK_USAGE", "MEM_USAGE", "CPU_USAGE", "MAX_DISK", "MAX_MEM", "MAX_CPU",
- "FREE_DISK", "FREE_MEM", "FREE_CPU", "FREE_MEM", "FREE_CPU", "USED_DISK",
- "USED_MEM", "USED_CPU", "RUNNING_VMS"
- ]
- # retrieve info for xml tree
- for host in xmlreduit.findall('HOST'):
- for name in host.findall('NAME'):
- hashrspec[name.text] = {"name" : name.text}
- for hostshare in host.findall('HOST_SHARE'):
- for itemshostname in itemshost:
- boucle(itemshostname, hostshare, hashrspec, name)
- # jfed feature
- for clef in hashrspec:
- bonfires.append("" +
- " " +
- " " +
- " " +
- " " +
- " " +
- " ")
- for infohost in itemshost:
- bonfires.append(" ")
- bonfires.append("")
-
-def remove_needless_txt(txt):
- txt=str(txt)
- txt=txt.replace("\n","\n")
- txt=txt.replace("\n","\n")
- return txt
-
-def rsa_user_bonfire(testbed, num_compute):
- url = "https://api.integration.bonfire.grid5000.fr/" + "locations/" + testbed + "/computes/" + num_compute
- pagebonfirecompute = callcurl(url)
- xmlreduit = ET.fromstring(pagebonfirecompute)
- hash = {}
- hash["url"] = url
- for name in xmlreduit:
- if name.tag == "{http://api.bonfire-project.eu/doc/schemas/occi}groups":
- hash["name"] = name.text
- for context in name:
- if context.tag == "{http://api.bonfire-project.eu/doc/schemas/occi}authorized_keys":
- hash["keys"] = context.text
- return hash
-
-# parameters
-# ########################################################## #
-locations = ["fr-inria", "be-ibbt", "uk-epcc"]
-urlnetworks = buildpagehttp("https://api.integration.bonfire.grid5000.fr/locations/", "networks")
-urlstorages = buildpagehttp("https://api.integration.bonfire.grid5000.fr/locations/", "storages")
-urlcomputes = buildpagehttp("https://api.integration.bonfire.grid5000.fr/locations/", "computes")
-
-# main code
-# ########################################################## #
-
-# list for all bonfire resources
-def bonsources():
- bonfires = []
- bonfires.append("")
- bonfires.append("")
- manag_exp = remove_needless_txt(callcurl("https://api.bonfire-project.eu/managed_experiments"))
- bonfires.append(manag_exp)
- bonfires.append("")
- jfedfeat(bonfires, "http://frontend.bonfire.grid5000.fr/one-status.xml")
- jfedfeat(bonfires, "http://bonfire.epcc.ed.ac.uk/one-status.xml")
- jfedfeat(bonfires, "http://bonfire.psnc.pl/one-status.xml")
- jfedfeat(bonfires, "http://nebulosus.rus.uni-stuttgart.de/one-status.xml")
- bonfires.append("")
- for xmlnetworks in urlnetworks:
- bonfires.append(remove_needless_txt(callcurl(xmlnetworks)))
- bonfires.append("")
- for xmlstorages in urlstorages:
- bonfires.append(remove_needless_txt(callcurl(xmlstorages)))
- bonfires.append("")
- for xmlcomputes in urlcomputes:
- bonfires.append(remove_needless_txt(callcurl(xmlcomputes)))
- bonfires.append("")
- exp = callcurl("https://api.integration.bonfire.grid5000.fr/experiments")
- rexp = remove_needless_txt(exp)
- bonfires.append(rexp)
- bonfires.append("")
- reserv = callcurl("https://api.integration.bonfire.grid5000.fr/locations/fr-inria/reservations")
- rreserv = remove_needless_txt(reserv)
- bonfires.append(rreserv)
- bonfires.append("")
- bonfires.append("")
- bonfires = "\n".join(bonfires)
- bonfires = bonfires.replace("\n\n","")
- return bonfires