xmlSetProp(new_xml_node, XML_ATTR_ID, id); if(subtype != NULL) xmlSetProp(new_xml_node, XML_CIB_ATTR_NODETYPE, subtype);
set_xml_property_copy(new_xml_node, XML_ATTR_ID, id); if(subtype != NULL) set_xml_property_copy(new_xml_node, XML_CIB_ATTR_NODETYPE, subtype);
handleDelete(void){    CRM_DEBUG2("Deleting existing CIB object %p",  obj_type);    if(obj_type == NULL)    {	cl_log(LOG_ERR, "You must specify an object type.  Use the -o option.");	return NULL;// error    }        xmlNodePtr xml_root_node, new_xml_node = NULL;;    const char *section_name = NULL;        if(strcmp("node", obj_type) == 0)    {	section_name = XML_CIB_TAG_NODES;	CRM_DEBUG2("Deleting exiting %s object", section_name);	if(id == NULL) return NULL;	new_xml_node = xmlNewNode( NULL, XML_CIB_TAG_NODE);	xmlSetProp(new_xml_node, XML_ATTR_ID, id);	if(subtype != NULL) xmlSetProp(new_xml_node, XML_CIB_ATTR_NODETYPE, subtype);    }    else if(strcmp("resource", obj_type) == 0)    {	section_name = XML_CIB_TAG_RESOURCES;	CRM_DEBUG2("Deleting exiting %s object", section_name);	if(id == NULL) return NULL;	new_xml_node = xmlNewNode( NULL, XML_CIB_TAG_RESOURCE);	xmlSetProp(new_xml_node, XML_ATTR_ID, id);	if(subtype != NULL) xmlSetProp(new_xml_node, XML_CIB_ATTR_NODETYPE, subtype);    }    else if(strcmp("constraint", obj_type) == 0)    {	section_name = XML_CIB_TAG_CONSTRAINTS;	CRM_DEBUG2("Deleting exiting %s object", section_name);	if(id == NULL) return NULL;	new_xml_node = xmlNewNode( NULL, XML_CIB_TAG_CONSTRAINT);	xmlSetProp(new_xml_node, XML_ATTR_ID, id);	if(subtype != NULL) xmlSetProp(new_xml_node, XML_CIB_ATTR_NODETYPE, subtype);    }    else    {	cl_log(LOG_INFO, "Object Type (%s) not supported", obj_type);	return NULL;    }    // create the cib request    xml_root_node = wrapUpdate(new_xml_node, section_name, "delete");    CRM_DEBUG("Creation of removal request complete");        return xml_root_node;    }