git://git.onelab.eu
/
sfa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
in the case of an SM-SM federation, this check will avoid looping of get_resources...
[sfa.git]
/
sfa
/
plc
/
nodes.py
diff --git
a/sfa/plc/nodes.py
b/sfa/plc/nodes.py
index
96eb84b
..
a8e0b60
100644
(file)
--- a/
sfa/plc/nodes.py
+++ b/
sfa/plc/nodes.py
@@
-112,11
+112,13
@@
class Nodes(SimpleStorage):
rspec = RSpec()
credential = self.api.getCredential()
for aggregate in aggregates:
rspec = RSpec()
credential = self.api.getCredential()
for aggregate in aggregates:
+ if aggregate not in [self.api.auth.client_cred.get_gid_caller().get_hrn()]:
try:
caller_cred = self.caller_cred
# get the rspec from the aggregate
try:
try:
caller_cred = self.caller_cred
# get the rspec from the aggregate
try:
- agg_rspec = aggregates[aggregate].get_resources(credential, hrn, caller_cred)
+ request_hash=None
+ agg_rspec = aggregates[aggregate].get_resources(credential, hrn, request_hash, caller_cred)
except:
arg_list = [credential, hrn]
request_hash = self.api.key.compute_hash(arg_list)
except:
arg_list = [credential, hrn]
request_hash = self.api.key.compute_hash(arg_list)
@@
-175,6
+177,7
@@
class Nodes(SimpleStorage):
Get resource information from PLC
"""
Get resource information from PLC
"""
+ slicename = None
# Get the required nodes
if not hrn:
nodes = self.api.plshell.GetNodes(self.api.plauth, {'peer_id': None})
# Get the required nodes
if not hrn:
nodes = self.api.plshell.GetNodes(self.api.plauth, {'peer_id': None})
@@
-192,7
+195,10
@@
class Nodes(SimpleStorage):
# Filter out whitelisted nodes
public_nodes = lambda n: n.has_key('slice_ids_whitelist') and not n['slice_ids_whitelist']
# Filter out whitelisted nodes
public_nodes = lambda n: n.has_key('slice_ids_whitelist') and not n['slice_ids_whitelist']
- nodes = filter(public_nodes, nodes)
+
+ # ...only if they are not already assigned to this slice.
+ if (not slicename):
+ nodes = filter(public_nodes, nodes)
# Get all network interfaces
interface_ids = []
# Get all network interfaces
interface_ids = []