X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmanagers%2Faggregate_manager_max.py;h=36afd11c8cd559bdbd0077c67e9e8c83eeee7cf3;hb=7d9b6e0347b44af368b5db626676311c641629fa;hp=a20e7ead1ea8b04d72883333bdcaade264c78691;hpb=24bcba816b14a200542fa6ffb6b318c261292dcd;p=sfa.git diff --git a/sfa/managers/aggregate_manager_max.py b/sfa/managers/aggregate_manager_max.py index a20e7ead..36afd11c 100644 --- a/sfa/managers/aggregate_manager_max.py +++ b/sfa/managers/aggregate_manager_max.py @@ -2,9 +2,10 @@ from sfa.util.xrn import urn_to_hrn, hrn_to_urn, get_authority from sfa.util.plxrn import hrn_to_pl_slicename from sfa.util.plxrn import hrn_to_pl_slicename from sfa.util.rspec import RSpec -from sfa.util.sfalogging import sfa_logger +from sfa.util.sfalogging import logger from sfa.util.config import Config -from sfa.managers.aggregate_manager_pl import GetVersion +from sfa.managers.aggregate_manager_pl import GetVersion, __get_registry_objects +from sfa.plc.slices import Slices import os import time @@ -37,7 +38,7 @@ def call_am_apiclient(client_app, params, timeout): (client_path, am_url) = Config().get_max_aggrMgr_info() sys_cmd = "cd " + client_path + "; java -classpath AggregateWS-client-api.jar:lib/* net.geni.aggregate.client.examples." + client_app + " ./repo " + am_url + " " + ' '.join(params) ret = shell_execute(sys_cmd, timeout) - sfa_logger().debug("shell_execute cmd: %s returns %s" % (sys_cmd, ret)) + logger.debug("shell_execute cmd: %s returns %s" % (sys_cmd, ret)) # save request RSpec xml content to a tmp file def save_rspec_to_file(rspec): path = RSPEC_TMP_FILE_PREFIX + "_" + time.strftime('%Y%m%dT%H:%M:%S', time.gmtime(time.time())) +".xml" @@ -67,12 +68,24 @@ def get_xml_by_tag(text, tag): xml = text[indx1:indx2+len(tag)+2] return xml +def prepare_slice(api, xrn, users): + reg_objects = __get_registry_objects(slice_xrn, creds, users) + (hrn, type) = urn_to_hrn(slice_xrn) + slices = Slices(api) + peer = slices.get_peer(hrn) + sfa_peer = slices.get_sfa_peer(hrn) + registry = api.registries[api.hrn] + credential = api.getCredential() + (site_id, remote_site_id) = slices.verify_site(registry, credential, hrn, peer, sfa_peer, reg_objects) + slices.verify_slice(registry, credential, hrn, site_id, remote_site_id, peer, sfa_peer, reg_objects) + def create_slice(api, xrn, cred, rspec, users): indx1 = rspec.find("") if indx1 > -1 and indx2 > indx1: rspec = rspec[indx1+len(""):indx2-1] rspec_path = save_rspec_to_file(rspec) + prepare_slice(api, xrn, users) (ret, output) = call_am_apiclient("CreateSliceNetworkClient", [rspec_path,], 3) # parse output ? rspec = " Done! " @@ -92,9 +105,9 @@ def get_rspec(api, cred, options): rspec = " No resource found " else: comp_rspec = get_xml_by_tag(output, 'computeResource') - sfa_logger().debug("#### computeResource %s" % comp_rspec) + logger.debug("#### computeResource %s" % comp_rspec) topo_rspec = get_xml_by_tag(output, 'topology') - sfa_logger().debug("#### topology %s" % topo_rspec) + logger.debug("#### topology %s" % topo_rspec) rspec = " "; if comp_rspec != None: rspec = rspec + get_xml_by_tag(output, 'computeResource')