from sfa.util.rspec import *
from sfa.util.sfaticket import *
from sfa.util.debug import log
-from sfa.server.registry import Registries
-from sfa.server.aggregate import Aggregates
import sfa.plc.peers as peers
def delete_slice(api, xrn, origin_hrn=None):
credential = api.getCredential()
- aggregates = Aggregates(api)
+ aggregates = api.aggregates
for aggregate in aggregates:
success = False
# request hash is optional so lets try the call without it
def create_slice(api, xrn, rspec, origin_hrn=None):
hrn, type = urn_to_hrn(xrn)
- aggs = Aggregates(api)
- cred = api.getCredential()
- # Validate the RSpec against PlanetLab's schema
- schema = "/var/www/html/schemas/pl.rng"
+ # Validate the RSpec against PlanetLab's schema --disabled for now
+ # The schema used here needs to aggregate the PL and VINI schemas
+ # schema = "/var/www/html/schemas/pl.rng"
+ schema = None
if schema:
try:
tree = etree.parse(StringIO(rspec))
message = "%s (line %s)" % (error.message, error.line)
raise InvalidRSpec(message)
- aggs = Aggregates(api)
+ aggs = api.aggregates
cred = api.getCredential()
for agg in aggs:
if agg not in [api.auth.client_cred.get_gid_caller().get_hrn()]:
rspecs[net_hrn] = temp_rspec.toxml()
# send the rspec to the appropiate aggregate/sm
- aggregates = Aggregates(api)
+ aggregates = api.aggregates
credential = api.getCredential()
tickets = {}
for net_hrn in rspecs:
hrn, type = urn_to_hrn(xrn)
rspec = None
- aggs = Aggregates(api)
+ aggs = api.aggregates
cred = api.getCredential()
for agg in aggs:
if agg not in [api.auth.client_cred.get_gid_caller().get_hrn()]:
raise InvalidRSpec(message)
root = tree.getroot()
- if root.get("type") in ["Planetlab", "VINI"]:
+ if root.get("type") in ["SFA"]:
if rspec == None:
rspec = root
else:
for network in root.iterfind("./network"):
rspec.append(deepcopy(network))
+ for request in root.iterfind("./request"):
+ rspec.append(deepcopy(request))
return etree.tostring(rspec, xml_declaration=True, pretty_print=True)