本文整理汇总了Python中utils.replace_cib_configuration函数的典型用法代码示例。如果您正苦于以下问题:Python replace_cib_configuration函数的具体用法?Python replace_cib_configuration怎么用?Python replace_cib_configuration使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了replace_cib_configuration函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: resource_master_remove
def resource_master_remove(argv):
if len(argv) < 1:
usage.resource()
sys.exit(1)
dom = utils.get_cib_dom()
master_id = argv.pop(0)
master_found = False
# Check to see if there's a resource/group with the master_id if so, we remove the parent
for rg in (dom.getElementsByTagName("primitive") + dom.getElementsByTagName("group")):
if rg.getAttribute("id") == master_id and rg.parentNode.tagName == "master":
master_id = rg.parentNode.getAttribute("id")
resources_to_cleanup = []
for master in dom.getElementsByTagName("master"):
if master.getAttribute("id") == master_id:
childNodes = master.getElementsByTagName("primitive")
for child in childNodes:
resources_to_cleanup.append(child.getAttribute("id"))
master_found = True
break
if not master_found:
print "Error: Unable to find multi-state resource with id %s" % master_id
sys.exit(1)
master.parentNode.removeChild(master)
utils.replace_cib_configuration(dom)
if (not utils.usefile):
for r in resources_to_cleanup:
args = ["crm_resource","-C","-r",r]
cmdoutput, retVal = utils.run(args)
开发者ID:grueni,项目名称:pcs,代码行数:33,代码来源:resource.py
示例2: remove_constraints_containing
def remove_constraints_containing(resource_id,output=False,constraints_element = None, passed_dom=None):
constraints,set_constraints = find_constraints_containing(resource_id, passed_dom)
for c in constraints:
if output == True:
print "Removing Constraint - " + c
if constraints_element != None:
constraint_rm([c], True, constraints_element, passed_dom=passed_dom)
else:
constraint_rm([c], passed_dom=passed_dom)
if len(set_constraints) != 0:
(dom, constraintsElement) = getCurrentConstraints(passed_dom)
for c in constraintsElement.getElementsByTagName("resource_ref")[:]:
# If resource id is in a set, remove it from the set, if the set
# is empty, then we remove the set, if the parent of the set
# is empty then we remove it
if c.getAttribute("id") == resource_id:
pn = c.parentNode
pn.removeChild(c)
if output == True:
print "Removing %s from set %s" % (resource_id,pn.getAttribute("id"))
if pn.getElementsByTagName("resource_ref").length == 0:
print "Removing set %s" % pn.getAttribute("id")
pn2 = pn.parentNode
pn2.removeChild(pn)
if pn2.getElementsByTagName("resource_set").length == 0:
pn2.parentNode.removeChild(pn2)
print "Removing constraint %s" % pn2.getAttribute("id")
if passed_dom:
return dom
utils.replace_cib_configuration(dom)
开发者ID:vincepii,项目名称:pcs,代码行数:31,代码来源:constraint.py
示例3: constraint_resource_update
def constraint_resource_update(old_id, passed_dom=None):
dom = utils.get_cib_dom() if passed_dom is None else passed_dom
resources = dom.getElementsByTagName("primitive")
found_resource = None
for res in resources:
if res.getAttribute("id") == old_id:
found_resource = res
break
new_id = None
if found_resource:
if found_resource.parentNode.tagName == "master" or found_resource.parentNode.tagName == "clone":
new_id = found_resource.parentNode.getAttribute("id")
if new_id:
constraints = dom.getElementsByTagName("rsc_location")
constraints += dom.getElementsByTagName("rsc_order")
constraints += dom.getElementsByTagName("rsc_colocation")
attrs_to_update=["rsc","first","then", "with-rsc"]
for constraint in constraints:
for attr in attrs_to_update:
if constraint.getAttribute(attr) == old_id:
constraint.setAttribute(attr, new_id)
if passed_dom is None:
utils.replace_cib_configuration(dom)
if passed_dom:
return dom
开发者ID:vincepii,项目名称:pcs,代码行数:29,代码来源:constraint.py
示例4: constraint_rule
def constraint_rule(argv):
if len(argv) < 2:
usage.constraint("rule")
sys.exit(1)
found = False
command = argv.pop(0)
constraint_id = None
rule_id = None
if command == "add":
constraint_id = argv.pop(0)
cib = utils.get_cib_dom()
constraint = utils.dom_get_element_with_id(
cib.getElementsByTagName("constraints")[0],
"rsc_location",
constraint_id
)
if not constraint:
utils.err("Unable to find constraint: " + constraint_id)
options, rule_argv = rule_utils.parse_argv(argv)
rule_utils.dom_rule_add(constraint, options, rule_argv)
location_rule_check_duplicates(cib, constraint)
utils.replace_cib_configuration(cib)
elif command in ["remove","delete"]:
cib = utils.get_cib_etree()
temp_id = argv.pop(0)
constraints = cib.find('.//constraints')
loc_cons = cib.findall(str('.//rsc_location'))
rules = cib.findall(str('.//rule'))
for loc_con in loc_cons:
for rule in loc_con:
if rule.get("id") == temp_id:
if len(loc_con) > 1:
print("Removing Rule: {0}".format(rule.get("id")))
loc_con.remove(rule)
found = True
break
else:
print(
"Removing Constraint: {0}".format(loc_con.get("id"))
)
constraints.remove(loc_con)
found = True
break
if found == True:
break
if found:
utils.replace_cib_configuration(cib)
else:
utils.err("unable to find rule with id: %s" % temp_id)
else:
usage.constraint("rule")
sys.exit(1)
开发者ID:akanouras,项目名称:pcs,代码行数:60,代码来源:constraint.py
示例5: acl_permission
def acl_permission(argv):
if len(argv) < 1:
usage.acl("permission")
sys.exit(1)
dom = utils.get_cib_dom()
dom, acls = get_acls(dom)
command = argv.pop(0)
if command == "add":
if len(argv) < 4:
usage.acl("permission add")
sys.exit(1)
role_id = argv.pop(0)
found = False
for role in dom.getElementsByTagName("acl_role"):
if role.getAttribute("id") == role_id:
found = True
break
if found == False:
acl_role(["create", role_id] + argv)
return
while len(argv) >= 3:
kind = argv.pop(0)
se = dom.createElement("acl_permission")
se.setAttribute("id", utils.find_unique_id(dom, role_id + "-" + kind))
se.setAttribute("kind", kind)
xp_id = argv.pop(0)
if xp_id == "xpath":
xpath_query = argv.pop(0)
se.setAttribute("xpath",xpath_query)
elif xp_id == "id":
acl_ref = argv.pop(0)
se.setAttribute("reference",acl_ref)
else:
usage.acl("permission add")
role.appendChild(se)
utils.replace_cib_configuration(dom)
elif command == "delete":
if len(argv) < 1:
usage.acl("permission delete")
sys.exit(1)
perm_id = argv.pop(0)
found = False
for elem in dom.getElementsByTagName("acl_permission"):
if elem.getAttribute("id") == perm_id:
elem.parentNode.removeChild(elem)
found = True
if not found:
utils.err("Unable to find permission with id: %s" % perm_id)
utils.replace_cib_configuration(dom)
else:
usage.acl("permission")
sys.exit(1)
开发者ID:MichalCab,项目名称:pcs,代码行数:60,代码来源:acl.py
示例6: cluster_remote_node
def cluster_remote_node(argv):
if len(argv) < 1:
usage.cluster(["remote-node"])
sys.exit(1)
command = argv.pop(0)
if command == "add":
if len(argv) < 2:
usage.cluster(["remote-node"])
sys.exit(1)
hostname = argv.pop(0)
rsc = argv.pop(0)
if not utils.is_resource(rsc):
utils.err("unable to find resource '%s'", rsc)
resource.resource_update(rsc, ["meta", "remote-node="+hostname] + argv)
elif command in ["remove","delete"]:
if len(argv) < 1:
usage.cluster(["remote-node"])
sys.exit(1)
hostname = argv.pop(0)
dom = utils.get_cib_dom()
nvpairs = dom.getElementsByTagName("nvpair")
nvpairs_to_remove = []
for nvpair in nvpairs:
if nvpair.getAttribute("name") == "remote-node" and nvpair.getAttribute("value") == hostname:
for np in nvpair.parentNode.getElementsByTagName("nvpair"):
if np.getAttribute("name").startswith("remote-"):
nvpairs_to_remove.append(np)
for nvpair in nvpairs_to_remove[:]:
nvpair.parentNode.removeChild(nvpair)
utils.replace_cib_configuration(dom)
else:
usage.cluster(["remote-node"])
sys.exit(1)
开发者ID:yash2710,项目名称:wamp,代码行数:35,代码来源:cluster.py
示例7: location_rule
def location_rule(argv):
if len(argv) < 3:
usage.constraint("location rule")
sys.exit(1)
res_name = argv.pop(0)
resource_valid, resource_error = utils.validate_constraint_resource(
utils.get_cib_dom(), res_name
)
if not resource_valid:
utils.err(resource_error)
argv.pop(0)
cib = utils.get_cib_dom()
constraints = cib.getElementsByTagName("constraints")[0]
lc = cib.createElement("rsc_location")
constraints.appendChild(lc)
lc_id = utils.find_unique_id(cib, "location-" + res_name)
lc.setAttribute("id", lc_id)
lc.setAttribute("rsc", res_name)
rule_utils.dom_rule_add(lc, argv)
utils.replace_cib_configuration(cib)
开发者ID:MichalCab,项目名称:pcs,代码行数:25,代码来源:constraint.py
示例8: colocation_set
def colocation_set(argv):
setoptions = []
for i in range(len(argv)):
if argv[i] == "setoptions":
setoptions = argv[i+1:]
argv[i:] = []
break
current_set = set_args_into_array(argv)
colocation_id = "pcs_rsc_colocation"
for a in argv:
if a.find('=') == -1:
colocation_id = colocation_id + "_" + a
cib = utils.get_cib_etree()
constraints = cib.find(".//constraints")
if constraints == None:
constraints = ET.SubElement(cib, "constraints")
rsc_colocation = ET.SubElement(constraints,"rsc_colocation")
rsc_colocation.set("id", utils.find_unique_id(cib,colocation_id))
rsc_colocation.set("score","INFINITY")
for opt in setoptions:
if opt.find("=") != -1:
name,value = opt.split("=")
rsc_colocation.set(name,value)
set_add_resource_sets(rsc_colocation, current_set, cib)
utils.replace_cib_configuration(cib)
开发者ID:BillTheBest,项目名称:pcs,代码行数:27,代码来源:constraint.py
示例9: order_rm
def order_rm(argv):
if len(argv) == 0:
usage.constraint()
sys.exit(1)
elementFound = False
(dom,constraintsElement) = getCurrentConstraints()
for resource in argv:
for ord_loc in constraintsElement.getElementsByTagName('rsc_order')[:]:
if ord_loc.getAttribute("first") == resource or ord_loc.getAttribute("then") == resource:
constraintsElement.removeChild(ord_loc)
elementFound = True
resource_refs_to_remove = []
for ord_set in constraintsElement.getElementsByTagName('resource_ref'):
if ord_set.getAttribute("id") == resource:
resource_refs_to_remove.append(ord_set)
elementFound = True
for res_ref in resource_refs_to_remove:
res_set = res_ref.parentNode
res_order = res_set.parentNode
res_ref.parentNode.removeChild(res_ref)
if len(res_set.getElementsByTagName('resource_ref')) <= 0:
res_set.parentNode.removeChild(res_set)
if len(res_order.getElementsByTagName('resource_set')) <= 0:
res_order.parentNode.removeChild(res_order)
if elementFound == True:
utils.replace_cib_configuration(dom)
else:
utils.err("No matching resources found in ordering list")
开发者ID:vincepii,项目名称:pcs,代码行数:34,代码来源:constraint.py
示例10: stonith_level_add
def stonith_level_add(level, node, devices):
dom = utils.get_cib_dom()
if not "--force" in utils.pcs_options:
for dev in devices.split(","):
if not utils.is_stonith_resource(dev):
utils.err("%s is not a stonith id (use --force to override)" % dev)
if not utils.is_pacemaker_node(node) and not utils.is_corosync_node(node):
utils.err("%s is not currently a node (use --force to override)" % node)
ft = dom.getElementsByTagName("fencing-topology")
if len(ft) == 0:
conf = dom.getElementsByTagName("configuration")[0]
ft = dom.createElement("fencing-topology")
conf.appendChild(ft)
else:
ft = ft[0]
fls = ft.getElementsByTagName("fencing-level")
for fl in fls:
if fl.getAttribute("target") == node and fl.getAttribute("index") == level and fl.getAttribute("devices") == devices:
utils.err("unable to add fencing level, fencing level for node: %s, at level: %s, with device: %s already exists" % (node,level,devices))
new_fl = dom.createElement("fencing-level")
ft.appendChild(new_fl)
new_fl.setAttribute("target", node)
new_fl.setAttribute("index", level)
new_fl.setAttribute("devices", devices)
new_fl.setAttribute("id", utils.find_unique_id(dom, "fl-" + node +"-" + level))
utils.replace_cib_configuration(dom)
开发者ID:ClaudiuPID,项目名称:pcs,代码行数:31,代码来源:stonith.py
示例11: constraint_rule
def constraint_rule(argv):
if len(argv) < 2:
usage.constraint("rule")
sys.exit(1)
found = False
command = argv.pop(0)
constraint_id = None
rule_id = None
cib = utils.get_cib_etree()
if command == "add":
constraint_id = argv.pop(0)
constraint = None
for a in cib.findall(".//configuration//*"):
if a.get("id") == constraint_id and a.tag == "rsc_location":
found = True
constraint = a
if not found:
utils.err("Unable to find constraint: " + constraint_id)
utils.rule_add(constraint, argv)
utils.replace_cib_configuration(cib)
elif command in ["remove","delete"]:
temp_id = argv.pop(0)
constraints = cib.find('.//constraints')
loc_cons = cib.findall('.//rsc_location')
rules = cib.findall('.//rule')
for loc_con in loc_cons:
for rule in loc_con:
if rule.get("id") == temp_id:
if len(loc_con) > 1:
print "Removing Rule:",rule.get("id")
loc_con.remove(rule)
found = True
break
else:
print "Removing Constraint:",loc_con.get("id")
constraints.remove(loc_con)
found = True
break
if found == True:
break
if found:
utils.replace_cib_configuration(cib)
else:
utils.err("unable to find rule with id: %s" % temp_id)
else:
usage.constraint("rule")
sys.exit(1)
开发者ID:vincepii,项目名称:pcs,代码行数:58,代码来源:constraint.py
示例12: stonith_cmd
def stonith_cmd(argv):
if len(argv) == 0:
argv = ["show"]
sub_cmd = argv.pop(0)
if (sub_cmd == "help"):
usage.stonith(argv)
elif (sub_cmd == "list"):
stonith_list_available(argv)
elif (sub_cmd == "describe"):
if len(argv) == 1:
stonith_list_options(argv[0])
else:
usage.stonith()
sys.exit(1)
elif (sub_cmd == "create"):
if len(argv) < 2:
usage.stonith()
sys.exit(1)
stn_id = argv.pop(0)
stn_type = "stonith:"+argv.pop(0)
st_values, op_values, meta_values = resource.parse_resource_options(
argv, with_clone=False
)
resource.resource_create(stn_id, stn_type, st_values, op_values, meta_values)
elif (sub_cmd == "update"):
stn_id = argv.pop(0)
resource.resource_update(stn_id,argv)
elif (sub_cmd == "delete"):
if len(argv) == 1:
stn_id = argv.pop(0)
utils.replace_cib_configuration(
stonith_level_rm_device(utils.get_cib_dom(), stn_id)
)
resource.resource_remove(stn_id)
else:
usage.stonith(["delete"])
sys.exit(1)
elif (sub_cmd == "show"):
resource.resource_show(argv, True)
stonith_level([])
elif (sub_cmd == "level"):
stonith_level(argv)
elif (sub_cmd == "fence"):
stonith_fence(argv)
elif (sub_cmd == "cleanup"):
if len(argv) == 0:
resource.resource_cleanup_all()
else:
res_id = argv.pop(0)
resource.resource_cleanup(res_id)
elif (sub_cmd == "confirm"):
stonith_confirm(argv)
else:
usage.stonith()
sys.exit(1)
开发者ID:krig,项目名称:pcs,代码行数:56,代码来源:stonith.py
示例13: set_node_utilization
def set_node_utilization(node, argv):
cib = utils.get_cib_dom()
node_el = utils.dom_get_node(cib, node)
if node_el is None:
utils.err("Unable to find a node: {0}".format(node))
utils.dom_update_utilization(
node_el, utils.convert_args_to_tuples(argv), "nodes-"
)
utils.replace_cib_configuration(cib)
开发者ID:akanouras,项目名称:pcs,代码行数:10,代码来源:node.py
示例14: order_set
def order_set(argv):
current_set = set_args_into_array(argv)
cib = utils.get_cib_etree()
constraints = cib.find(".//constraints")
if constraints == None:
constraints = ET.SubElement(cib, "constraints")
rsc_order = ET.SubElement(constraints,"rsc_order")
rsc_order.set("id", utils.find_unique_id(cib,"pcs_rsc_order"))
set_add_resource_sets(rsc_order, current_set, cib)
utils.replace_cib_configuration(cib)
开发者ID:FumihiroSaito,项目名称:pcs,代码行数:10,代码来源:constraint.py
示例15: acl_target
def acl_target(argv,group=False):
if len(argv) < 2:
if group:
usage.acl("group")
sys.exit(1)
else:
usage.acl("target")
sys.exit(1)
dom = utils.get_cib_dom()
dom, acls = get_acls(dom)
command = argv.pop(0)
tug_id = argv.pop(0)
if command == "create":
if utils.does_id_exist(dom,tug_id):
utils.err(tug_id + " already exists in cib")
if group:
element = dom.createElement("acl_group")
else:
element = dom.createElement("acl_target")
element.setAttribute("id", tug_id)
acls.appendChild(element)
for role in argv:
r = dom.createElement("role")
r.setAttribute("id", role)
element.appendChild(r)
utils.replace_cib_configuration(dom)
elif command == "delete":
found = False
if group:
elist = dom.getElementsByTagName("acl_group")
else:
elist = dom.getElementsByTagName("acl_target")
for elem in elist:
if elem.getAttribute("id") == tug_id:
found = True
elem.parentNode.removeChild(elem)
break
if not found:
if group:
utils.err("unable to find acl group: %s" % tug_id)
else:
utils.err("unable to find acl target/user: %s" % tug_id)
utils.replace_cib_configuration(dom)
else:
if group:
usage.acl("group")
else:
usage.acl("target")
sys.exit(1)
开发者ID:MichalCab,项目名称:pcs,代码行数:55,代码来源:acl.py
示例16: location_add
def location_add(argv,rm=False):
if len(argv) != 4 and (rm == False or len(argv) < 1):
usage.constraint()
sys.exit(1)
constraint_id = argv.pop(0)
# If we're removing, we only care about the id
if (rm == True):
resource_name = ""
node = ""
score = ""
else:
id_valid, id_error = utils.validate_xml_id(constraint_id, 'constraint id')
if not id_valid:
utils.err(id_error)
resource_name = argv.pop(0)
node = argv.pop(0)
score = argv.pop(0)
resource_valid, resource_error = utils.validate_constraint_resource(
utils.get_cib_dom(), resource_name
)
if not resource_valid:
utils.err(resource_error)
if not utils.is_score(score):
utils.err("invalid score '%s', use integer or INFINITY or -INFINITY" % score)
# Verify current constraint doesn't already exist
# If it does we replace it with the new constraint
(dom,constraintsElement) = getCurrentConstraints()
elementsToRemove = []
# If the id matches, or the rsc & node match, then we replace/remove
for rsc_loc in constraintsElement.getElementsByTagName('rsc_location'):
if (constraint_id == rsc_loc.getAttribute("id")) or \
(rsc_loc.getAttribute("rsc") == resource_name and \
rsc_loc.getAttribute("node") == node and not rm):
elementsToRemove.append(rsc_loc)
for etr in elementsToRemove:
constraintsElement.removeChild(etr)
if (rm == True and len(elementsToRemove) == 0):
utils.err("resource location id: " + constraint_id + " not found.")
if (not rm):
element = dom.createElement("rsc_location")
element.setAttribute("id",constraint_id)
element.setAttribute("rsc",resource_name)
element.setAttribute("node",node)
element.setAttribute("score",score)
constraintsElement.appendChild(element)
utils.replace_cib_configuration(dom)
开发者ID:MichalCab,项目名称:pcs,代码行数:54,代码来源:constraint.py
示例17: cluster_cib_rollback
def cluster_cib_rollback(argv):
if len(argv) != 1:
usage.cluster(["cib-rollback"])
sys.exit(1)
cib_path = os.path.join(settings.cib_dir, argv[0])
try:
snapshot_dom = parse(cib_path)
except Exception as e:
utils.err("unable to read CIB from '%s': %s" % (cib_path, e))
utils.replace_cib_configuration(snapshot_dom)
开发者ID:deriamis,项目名称:pcs,代码行数:11,代码来源:cluster.py
示例18: config_checkpoint_restore
def config_checkpoint_restore(argv):
if len(argv) != 1:
usage.config(["checkpoint", "restore"])
sys.exit(1)
cib_path = os.path.join(settings.cib_dir, "cib-%s.raw" % argv[0])
try:
snapshot_dom = parse(cib_path)
except Exception as e:
utils.err("unable to read the checkpoint: %s" % e)
utils.replace_cib_configuration(snapshot_dom)
开发者ID:disco-stu,项目名称:pcs,代码行数:11,代码来源:config.py
示例19: constraint_rm
def constraint_rm(argv,returnStatus=False, constraintsElement=None, passed_dom=None):
if len(argv) < 1:
usage.constraint()
sys.exit(1)
bad_constraint = False
if len(argv) != 1:
for arg in argv:
if not constraint_rm([arg],True, passed_dom=passed_dom):
bad_constraint = True
if bad_constraint:
sys.exit(1)
return
else:
c_id = argv.pop(0)
elementFound = False
if not constraintsElement:
(dom, constraintsElement) = getCurrentConstraints(passed_dom)
use_cibadmin = True
else:
use_cibadmin = False
for co in constraintsElement.childNodes[:]:
if co.nodeType != xml.dom.Node.ELEMENT_NODE:
continue
if co.getAttribute("id") == c_id:
constraintsElement.removeChild(co)
elementFound = True
if not elementFound:
for rule in constraintsElement.getElementsByTagName("rule")[:]:
if rule.getAttribute("id") == c_id:
elementFound = True
parent = rule.parentNode
parent.removeChild(rule)
if len(parent.getElementsByTagName("rule")) == 0:
parent.parentNode.removeChild(parent)
if elementFound == True:
if passed_dom:
return dom
if use_cibadmin:
utils.replace_cib_configuration(dom)
if returnStatus:
return True
else:
print >> sys.stderr, "Error: Unable to find constraint - '%s'" % c_id
if returnStatus:
return False
sys.exit(1)
开发者ID:vincepii,项目名称:pcs,代码行数:52,代码来源:constraint.py
示例20: unset_property
def unset_property(argv):
if len(argv) < 1:
usage.property()
sys.exit(1)
if "--node" in utils.pcs_options:
for arg in argv:
utils.set_node_attribute(arg, "",utils.pcs_options["--node"])
else:
cib_dom = utils.get_cib_dom()
for arg in argv:
utils.set_cib_property(arg, "", cib_dom)
utils.replace_cib_configuration(cib_dom)
开发者ID:panqijun2006,项目名称:pcs,代码行数:13,代码来源:prop.py
注:本文中的utils.replace_cib_configuration函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论