Beruflich Dokumente
Kultur Dokumente
http://www.XYZ.com/home/full-course-catalog
Introduction to Networking
Introduction to Python
XML
eXtensible Markup Language
JSON
Java Script Oriented Notation
WSDL
Web Services Description Language
SOAP
Simple Object Access Protocol
REST
REpresentational State Transfer
Web Services (Transport)
SSH HTTP
REST Overview
SSH)
Source
CLI Switch/
Router
HTTP(s)
SSH
HTTP://10.1.1.1/root/parent1/child2/object3
root
parent1 parent2
HTTP://10.1.1.1/root/parent1/child2/object3
root
parent1 parent2
HTTP://10.1.1.1/root/parent1/child2/object3
root
parent1 parent2
HTTP://10.1.1.1/root/parent1/child2/object3
root
parent1 parent2
HTTP://10.1.1.1/root/parent1/child2/object3
root
parent1 parent2
HTTP://10.1.1.1/root/parent1/child2/object3
root
parent1 parent2
HTTP://10.1.1.1/api/chassis1/linecard2/port1
api
chassis1 chassis2
HTTP://10.1.1.1/api/chassis1/linecard2/port1
api
chassis1 chassis2
HTTP://10.1.1.1/api/chassis1/linecard2/port1
api
chassis1 chassis2
HTTP://10.1.1.1/api/chassis1/linecard2/port1
api
chassis1 chassis2
HTTP://10.1.1.1/api/chassis1/linecard2/port1
api
chassis1 chassis2
Distinguished Name
dn = api/mo/chassis1/linecard1/port1
Object Naming
Distinguished Name
dn = api/mo/chassis1/linecard1/port1
class = api/class/LineCards
Encoded Documents
SSH)
Source
CLI Switch/
Router
{
<?xml version="1.0" encoding=“UTF-8"?> Company: {
Employee:{
Tree (MIM)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ‘FirstName’: ’Tanmay’,
<xs:element name="contact"> ‘LastName’ : ‘Patil’,
<xs:complexType> ‘ContactNo’:’1234567890’,
<xs:sequence> ‘Email’: ‘tanmaypatil@xyz.com’,
<xs:element name="name" type="xs:string" /> ‘Address’: {
<xs:element name="company" type="xs:string" /> ‘City’: ‘Banglore’,
<xs:element name="phone" type="xs:int" /> ‘State’: ‘Karnataka’,
</xs:sequence> ‘Zip’ : ‘560212’
</xs:complexType> }
</xs:element> }
</xs:schema> }
}
HTTP(s)
SSH
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
What is XML?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
What is XML?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
Tags <xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
Tags </xs:element>
</xs:schema>
What is XML?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
Tags <xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
Tags </xs:complexType>
</xs:element>
</xs:schema>
What is XML?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
<xs:complexType>
Tags <xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
Tags </xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
What is XML?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML Format
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
</Address>
</Employee>
</Company>
XML Format
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
</Address>
</Employee>
</Company>
XML Format
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
</Address>
</Employee>
</Company>
XML Format
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
</Address>
</Employee>
</Company>
XML Format
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
</Address>
</Employee>
</Company>
XML Format
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
</Address>
</Employee>
</Company>
What is JSON?
{
Company: {
Employee:{
‘FirstName’: ’Tanmay’,
‘LastName’ : ‘Patil’,
‘ContactNo’:’1234567890’,
‘Email’: ‘tanmaypatil@xyz.com’,
‘Address’: {
‘City’: ‘Banglore’,
‘State’: ‘Karnataka’,
‘Zip’ : ‘560212’
}
}
}
}
Application
Programmable Interface
Lesson 3
Data Models
Schema Overview
B File
C
A
D
F
Schema
B File
C
A
D
F
Schema Overview
B File
POST C
A
D
F
A
Schema Overview is in the
Schema File!
B File
POST C
A
D
F
Schema Overview
B File
POST C
A
D
F
Schema Overview
A
Update
B File
POST C
A A
D
F
Schema Overview
B File
POST C
G A
D
F
Schema Overview
B File
REJECT C
G A
D
F
Data Models
XML-Schema
XML Schema
XML
POST <xs:complexType name="computePsuPolicy" mixed="true">
XML
<xs:annotation> SCHEMA
<xs:appinfo>
<moClass value="computePsuPolicy" encrypted="false"/>
<label value="PSU Policy" default="false"/>
<rn value="psu-policy"/>
<access value="admin, pn-equipment, pn-policy"/>
<description value="NO COMMENTS"/>
</xs:appinfo>
<configConfMos
</xs:annotation>
inHierarchical="no">
<inConfigs> <xs:attribute name="redundancy">
<pair <xs:annotation>
key="org-root/psu-policy"> <xs:appinfo>
<moProperty value="computePsuDef:redundancy"/>
<computePsuPolicy
<label value="Redundancy" default="true"/>
descr="" <externAccess value="readWrite"/>
dn="org-root/psu-policy" <description value="NO COMMENTS"/>
policyOwner="local" </xs:appinfo>
redundancy="grid"> </xs:annotation>
</computePsuPolicy> <xs:simpleType>
</pair> <xs:restriction base="xs:string">
<xs:enumeration value="non-redundant"/>
</inConfigs>
<xs:enumeration value="n+1"/>
</configConfMos> <xs:enumeration value="grid"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
GUI
XML Schema
<xs:annotation>
<xs:appinfo>
<moClass value="computePsuPolicy" encrypted="false"/>
<label value="PSU Policy" default="false"/>
<rn value="psu-policy"/>
<access value="admin, pn-equipment, pn-policy"/>
<description value="NO COMMENTS"/>
</xs:appinfo>
<configConfMos
</xs:annotation>
inHierarchical="no">
<inConfigs>
<xs:attribute name="redundancy">
<pair <xs:annotation>
key="org-root/psu-policy"> <xs:appinfo>
<computePsuPolicy <moProperty value="computePsuDef:redundancy"/>
descr="" <label value="Redundancy" default="true"/>
dn="org-root/psu-policy" <externAccess value="readWrite"/>
policyOwner="local" <description value="NO COMMENTS"/>
</xs:appinfo>
redundancy="grid">
</xs:annotation>
</computePsuPolicy> <xs:simpleType>
</pair> <xs:restriction base="xs:string">
</inConfigs> <xs:enumeration value="non-redundant"/>
</configConfMos> <xs:enumeration value="n+1"/>
<xs:enumeration value="grid"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
XML Schema
<xs:annotation>
<xs:appinfo>
<moClass value="computePsuPolicy" encrypted="false"/>
<label value="PSU Policy" default="false"/>
<rn value="psu-policy"/>
<access value="admin, pn-equipment, pn-policy"/>
<description value="NO COMMENTS"/>
</xs:appinfo>
<configConfMos
</xs:annotation>
inHierarchical="no">
<inConfigs>
<xs:attribute name="redundancy">
<pair <xs:annotation>
key="org-root/psu-policy"> <xs:appinfo>
<computePsuPolicy <moProperty value="computePsuDef:redundancy"/>
descr="" <label value="Redundancy" default="true"/>
dn="org-root/psu-policy" <externAccess value="readWrite"/>
policyOwner="local" <description value="NO COMMENTS"/>
</xs:appinfo>
redundancy="grid">
</xs:annotation>
</computePsuPolicy> <xs:simpleType>
</pair> <xs:restriction base="xs:string">
</inConfigs> <xs:enumeration value="non-redundant"/>
</configConfMos> <xs:enumeration value="n+1"/>
<xs:enumeration value="grid"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
XML Schema
<xs:annotation>
<xs:appinfo>
<moClass value="computePsuPolicy" encrypted="false"/>
<label value="PSU Policy" default="false"/>
<rn value="psu-policy"/>
<access value="admin, pn-equipment, pn-policy"/>
<description value="NO COMMENTS"/>
</xs:appinfo>
<configConfMos
</xs:annotation>
inHierarchical="no">
<inConfigs>
<xs:attribute name="redundancy">
<pair <xs:annotation>
key="org-root/psu-policy"> <xs:appinfo>
<computePsuPolicy <moProperty value="computePsuDef:redundancy"/>
descr="" <label value="Redundancy" default="true"/>
dn="org-root/psu-policy" <externAccess value="readWrite"/>
policyOwner="local" <description value="NO COMMENTS"/>
</xs:appinfo>
redundancy="grid">
</xs:annotation>
</computePsuPolicy> <xs:simpleType>
</pair> <xs:restriction base="xs:string">
</inConfigs> <xs:enumeration value="non-redundant"/>
</configConfMos> <xs:enumeration value="n+1"/>
<xs:enumeration value="grid"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
Application
Programmable Interface
Lesson 4
Modifying the Schema
Using CURL
Input
User prompt> curl -d "<configConfMos><inConfigs><pair key=‘org-root/psu-
policy'><computePsuPolicy
redundancy='grid'></computePsuPolicy></pair></inConfigs></configConfMos>"
http://192.168.104.132/nuova
Output
import requests
url = http://172.16.48.135/nuova/
headers = {
'content-type': "application/xml",
'cache-control': "no-cache"
}
<xs:attribute name="redundancy">
<xs:annotation>
<xs:appinfo>
<moProperty value="computePsuDef:redundancy"/>
<label value="Redundancy" default="true"/>
<externAccess value="readWrite"/>
<description value="NO COMMENTS"/>
</xs:appinfo>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="non-redundant"/>
<xs:enumeration value="n+1"/>
<xs:enumeration value="grid"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
Application
Programmable Interface
Lesson 5
Data Maniputation and Extraction
Loading JSON
file = "/home/student/parse_json.json"
test = open(file, 'r')
readfile = test.read()
data = json.loads(readfile)
test.close()
print data
INDEX “1” },
"ownerKey": "",
"ownerTag": ""
"children": [{
"SUB_OBJ2": {
"attributes": {
"descr": "This is third section",
"type": "String",
"name": "TEST3_OBJECT",
"prio": "1"
}
}
}]
}
}]
}
}