def deploy_csr(self): # Create linked disks self.clone() # Create libvirt domain definitions from template xml_tree = ElementTree() dom_xml = xml_tree.parse("domain_template.xml") for csr in range(0, self.csr_amount): dom_xml.find('.//name').text = 'CSR{0}'.format(csr) dom_xml.find('devices/disk/source' ).attrib['file'] = 'linked_clone{0}.qcow2'.format(csr) dom_xml.find('devices/interface/mac' ).attrib['address'] = self.gen_mac_address(csr) # Get next available port, starting at the dynamic port range assigned_port = check_tcp_port(49152) dom_xml.find( 'devices/console/source').attrib['file'] = assigned_port dom_xml.find( 'devices/serial/source').attrib['file'] = assigned_port # TODO: Set golden image path to ENV variable dom_xml = xml_tree.tostring(dom_xml) # Deploy CSR domains self.libvirt_conn.createXML( dom_xml, 0 ) # TODO: Build in error checking, add counter for amount of created domains
def write_xml(elem): """Write out a pretty print xml doc to file. """ rough_string = ElementTree.tostring(elem, 'utf-8') reparsed = minidom.parseString(rough_string) with open('ucb-guides-feeds.opml', mode='w') as a_file: a_file.write(reparsed.toprettyxml(indent=" "))
def create_endpoint_bulk(self): """ Creates a batch of endpoints using bulk method """ root = Element( "ns4:endpointBulkRequest", { "operationType": "create", "resourceMediaType": "vnd.com.cisco.ise.identity.endpoint.1.0+xml", "xmlns:ns6": "sxp.ers.ise.cisco.com", "xmlns:ns5": "trustsec.ers.ise.cisco.com", "xmlns:ns8": "network.ers.ise.cisco.com", "xmlns:ns7": "anc.ers.ise.cisco.com", "xmlns:ers": "ers.ise.cisco.com", "xmlns:xs": "http://www.w3.org/2001/XMLSchema", "xmlns:ns4": "identity.ers.ise.cisco.com", }, ) parent = SubElement(root, "ns4:resourcesList") child = SubElement(parent, "ns4:endpoint", {"description": "My Description"}) mac = SubElement(child, "mac") mac.text = "00:00:00:00:00:00" # mdmAttributes = SubElement(child, "mdmAttributes") # mdmComplianceStatus = SubElement(mdmAttributes, "mdmComplianceStatus") # mdmEncrypted = SubElement(mdmAttributes, "mdmEncrypted") # mdmEnrolled = SubElement(mdmAttributes, "mdmEnrolled") # mdmIMEI = SubElement(mdmAttributes, "mdmIMEI") # mdmJailBroken = SubElement(mdmAttributes, "mdmJailBroken") # mdmManufacturer = SubElement(mdmAttributes, "mdmManufacturer") # mdmModel = SubElement(mdmAttributes, "mdmModel") # mdmOS = SubElement(mdmAttributes, "mdmOS") # mdmPhoneNumber = SubElement(mdmAttributes, "mdmPhoneNumber") # mdmPinLock = SubElement(mdmAttributes, "mdmPinLock") # mdmReachable = SubElement(mdmAttributes, "mdmReachable") # mdmSerial = SubElement(mdmAttributes, "mdmSerial") portalUser = SubElement(child, "portalUser") portalUser.text = "MyPortalUser" profileId = SubElement(child, "profileId") staticGroupAssignment = SubElement(child, "staticGroupAssignment") staticGroupAssignment.text = "false" staticProfileAssignment = SubElement(child, "staticProfileAssignment") staticProfileAssignment.text = "false" payload = ElementTree.tostring(root, method="html") print(payload) url = f"{self.base_url}" response = HttpMethods(self, url).request( "PUT", self.user, self.password, payload, headers={"Content-Type": "application/xml"}, ) return response
def __call__(self): faultstring = self.request['faultexc'].__class__.__name__ self.request.response.setStatus('InternalServerError', reason=faultstring) faultcode = 'Server' fault = make_soap_fault(faultstring, faultcode, detail=None) self.request.response.setHeader('Content-Type', 'text/xml') return ElementTree.tostring(fault, encoding=string_encoding)
def prettify(self, elem): """Parse xml elements for pretty printing""" from xml.etree import ElementTree from re import sub rawString = ElementTree.tostring(elem, 'utf-8') parsedString = sub(r'(?=<[^/].*>)', '\n', rawString) # Adds newline after each closing tag return parsedString[1:]
def __call__(self): faultstring = self.request['faultexc'].__class__.__name__ self.request.response.setStatus('InternalServerError', reason=faultstring) faultcode = 'Server' fault = make_soap_fault(faultstring, faultcode, detail=None) self.request.response.setHeader('Content-Type', 'text/xml') return ElementTree.tostring(fault, encoding=string_encoding)
def dict2xml(data): """dict to xml @:param data: Dictionary @:return: string """ # return as_text( xmltodict.unparse({'xml': data_dict}, pretty=True) ) root = ElementTree.Element('xml') for k in data: v = data[k] child = ElementTree.SubElement(root, k) child.text = str(v) return as_text(ElementTree.tostring(root, encoding='utf-8'))
def save_game(world): #press q to load """this will read in the model.world dictionary and save each block to an xml file to be loaded from in the future""" u = 0 BLOCKWORLD = Element("BLOCKWORLD") for key in world: coords = get_texture(world[key]) BLOCK = SubElement(BLOCKWORLD, 'BLOCK' + str(u), X=str(key[0]), Y=str(key[1]), Z=str(key[2]), AX=str(coords[0]), AY=str(coords[1]), BX=str(coords[2]), BY=str(coords[3]), CX=str(coords[4]), CY=str(coords[5])) f = open("savedworld.xml", 'w') f.write('<?xml version="1.0"?>') f.write(ElementTree.tostring(BLOCKWORLD)) f.close()
def __str__(self): return ET.tostring(root_node)
def formatXML(elem): rough_string = ElementTree.tostring(elem, 'utf-8') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent=" ")
def prettify(elem): """Return a pretty-printed XML string for the Element. """ rough_string = ElementTree.tostring(elem, 'unicode') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent="\t")
def __str__(self): return ET.tostring(root_node)
def prettify(data): rough_string = ElementTree.tostring(data, 'utf-8') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent=" ")
def prettify(elem): """Return a pretty-printed XML string for the Element. """ rough_string = ElementTree.tostring(elem, 'utf-8') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent=" ")
def export_orders(self, request, last_update=None): root = Element(u'КоммерческаяИнформация') root.set(u'ВерсияСхемы', '2.05') root.set(u'ДатаФормирования', datetime.now()) orders = Order.object.filter(state_changed__gt=last_update) for order in orders: xml_order = SubElement(root, u'Документ') SubElement(xml_order, u'Ид').text = str(order.id) SubElement(xml_order, u'Номер').text = str(order.number) SubElement(xml_order, u'Дата').text = str(order.created.date()) SubElement(xml_order, u'Время').text = str(order.created.time()) SubElement(xml_order, u'ХозОперация').text = u'Заказ товара' SubElement(xml_order, u'Роль').text = u'Продавец' SubElement(xml_order, u'Курс').text = '1' SubElement(xml_order, u'Сумма').text = order.price SubElement(xml_order, u'Комментарий').text = order.comment contragents = SubElement(xml_order, u'Контрагенты') customer = SubElement(contragents, u'Контрагент') SubElement(customer, u'Ид').text = order.get_customer().id SubElement(customer, u'Наименование').text = order.name SubElement(customer, u'ПолноеНаименование').text = order.fullname SubElement(customer, u'Роль').text = u'Покупатель' addr = SubElement(customer, u'АдресРегистрации') SubElement(addr, u'Представление').text = order.shipping_address() addr_field = SubElement(addr, u'АдресноеПоле') SubElement(addr_field, u'Тип').text = u'Страна' SubElement(addr_field, u'Значение').text = shop.country addr_field = SubElement(addr, u'АдресноеПоле') SubElement(addr_field, u'Тип').text = u'Регион' SubElement(addr_field, u'Значение').text = order.shipping_address() contacts = SubElement(customer, u'Контакты') contact = SubElement(contacts, u'Контакт') SubElement(contact, u'Тип').text = u'Телефон' SubElement(contact, u'Значение').text = order.shipping_phone contact = SubElement(contacts, u'Контакт') SubElement(contact, u'Тип').text = u'Почта' SubElement(contact, u'Значение').text = order.shipping_email xml_orderitems = SubElement(xml_order, u'Товары') for orderitem in order.items(): product = orderitem.product try: external_id = product.external_id except AttributeError: external_id = orderitem.product_id xml_product = SubElement(xml_orderitems, u'Товар') SubElement(xml_product, u'Ид').text = external_id SubElement(xml_product, u'Артикул').text = product.sku SubElement(xml_product, u'Наименование').text = orderitem.product_name price = orderitem.get_price_with_discount() SubElement(xml_product, u'ЦенаЗаЕдиницу').text = price SubElement(xml_product, u'Количество').text = orderitem.product_amount SubElement(xml_product, u'Cумма').text = price * orderitem.product_amount xml_discounts = SubElement(xml_product, u'Скидки') xml_discount = SubElement(xml_discounts, u'Скидка') SubElement(xml_discount, u'Cумма').text = order.discount_price SubElement(xml_discount, u'УчтеноВСумме').text = "true" xml_props = SubElement(xml_product, u'ЗначенияРеквизитов') xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') SubElement(xml_prop, u'Наименование').text = u'ВидНоменклатуры' SubElement(xml_prop, u'Значение').text = u'Товар' xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') SubElement(xml_prop, u'Наименование').text = u'ТипНоменклатуры' SubElement(xml_prop, u'Значение').text = u'Товар' if order.shipping_price > 0: xml_product = SubElement(xml_orderitems, u'Товар') SubElement(xml_product, u'Ид').text = order.shipping_method_id SubElement(xml_product, u'Артикул').text = order.shipping_method.sku SubElement(xml_product, u'Наименование').text = order.shipping_method.sku price = order.shipping_price SubElement(xml_product, u'ЦенаЗаЕдиницу').text = price SubElement(xml_product, u'Количество').text = 1 SubElement(xml_product, u'Cумма').text = price xml_props = SubElement(xml_product, u'ЗначенияРеквизитов') xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') SubElement(xml_prop, u'Наименование').text = u'ВидНоменклатуры' SubElement(xml_prop, u'Значение').text = u'Услуга' xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') SubElement(xml_prop, u'Наименование').text = u'ТипНоменклатуры' SubElement(xml_prop, u'Значение').text = u'Услуга' if order.payment_price > 0: xml_product = SubElement(xml_orderitems, u'Товар') SubElement(xml_product, u'Ид').text = order.payment_method_id SubElement(xml_product, u'Артикул').text = order.payment_method.sku SubElement(xml_product, u'Наименование').text = order.payment_method.sku price = order.payment_price SubElement(xml_product, u'ЦенаЗаЕдиницу').text = price SubElement(xml_product, u'Количество').text = 1 SubElement(xml_product, u'Cумма').text = price xml_props = SubElement(xml_product, u'ЗначенияРеквизитов') xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') SubElement(xml_prop, u'Наименование').text = u'ВидНоменклатуры' SubElement(xml_prop, u'Значение').text = u'Услуга' xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') SubElement(xml_prop, u'Наименование').text = u'ТипНоменклатуры' SubElement(xml_prop, u'Значение').text = u'Услуга' xml_props = SubElement(xml_order, u'ЗначенияРеквизитов') xml_prop = SubElement(xml_props, u'ЗначениеРеквизита') if order.state == 1: SubElement(xml_prop, u'Наименование').text = u'Статус заказа' SubElement(xml_prop, u'Значение').text = u'[N] Принят' elif order.state == 2: SubElement(xml_prop, u'Наименование').text = u'Статус заказа' SubElement(xml_prop, u'Значение').text = u'[F] Доставлен' elif order.state == 3: SubElement(xml_prop, u'Наименование').text = u'Отменен' SubElement(xml_prop, u'Значение').text = u'true' # Needed BOM ? return ('<?xml version="1.0" encoding="utf-8"?>\n' '%s' % ElementTree.tostring(root, encoding='utf8'))