@@ -287,87 +287,111 @@ def setChassisDiscoveryPolicy(self, links):
287
287
print "Error setting Chassis Discovery policy"
288
288
289
289
def setGlobalQosPolicy (self , qosconfig ):
290
-
291
- #Pull MTU for default/best-effort class
292
- defmtu = str (qosconfig ['defaultmtu' ])
293
-
294
- #We want to send "normal" to UCS, not "1500".
295
- #Both will work, but "1500" will generate an annoying warning.
296
- if defmtu == "1500" :
297
- defmtu = "normal"
298
-
299
- #Position ourselves properly within the MO tree
300
- obj = self .handle .GetManagedObject (None , None , {"Dn" :"fabric/lan" })
301
- mo = self .handle .AddManagedObject (obj , "qosclassDefinition" ,
302
- {
303
- "PolicyOwner" :"local" ,
304
- "Dn" :"fabric/lan/classes" ,
305
- "Descr" :""
306
- }, True )
290
+ try :
307
291
308
- #Set params for Platinum class
309
- self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
310
- {
311
- "Priority" :"platinum" ,
312
- "Mtu" :"9126" ,
313
- "Name" :"" ,
314
- "Dn" :"fabric/lan/classes/class-platinum" ,
315
- "Weight" :"10" ,
316
- "AdminState" :"disabled" ,
317
- "Cos" :"5" ,
318
- "Drop" :"drop" ,
319
- "MulticastOptimize" :"no"
320
- }, True )
321
-
322
- #Set params for Gold class
323
- self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
324
- {
325
- "Priority" :"gold" ,
326
- "Mtu" :"9126" ,
327
- "Name" :"" ,
328
- "Dn" :"fabric/lan/classes/class-gold" ,
329
- "Weight" :"9" ,
330
- "AdminState" :"enabled" ,
331
- "Cos" :"4" ,
332
- "Drop" :"drop" ,
333
- "MulticastOptimize" :"no"
334
- }, True )
335
-
336
- #Set params for Silver class
337
- self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
338
- {
339
- "Priority" :"silver" ,
340
- "Mtu" :"9126" ,
341
- "Name" :"" ,
342
- "Dn" :"fabric/lan/classes/class-silver" ,
343
- "Weight" :"8" ,
344
- "AdminState" :"enabled" ,
345
- "Cos" :"2" ,
346
- "Drop" :"drop" ,
347
- "MulticastOptimize" :"no"
348
- }, True )
349
-
350
- #Set params for Bronze class
351
- self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
352
- {
353
- "Priority" :"bronze" ,
354
- "Mtu" :"9126" ,
355
- "Name" :"" ,
356
- "Dn" :"fabric/lan/classes/class-bronze" ,
357
- "Weight" :"7" ,
358
- "AdminState" :"enabled" ,
359
- "Cos" :"1" ,
360
- "Drop" :"drop" ,
361
- "MulticastOptimize" :"no"
362
- }, True )
363
-
364
- #Set params for Best-Effort class
365
- self .handle .AddManagedObject (mo , "qosclassEthBE" ,
366
- {
367
- "Name" :"" ,
368
- "MulticastOptimize" :"no" ,
369
- "Mtu" :defmtu ,
370
- "Dn" :"fabric/lan/classes/class-best-effort" ,
371
- "Weight" :"5"
372
- },
373
- True )
292
+ #Pull MTU for default/best-effort class
293
+ defmtu = str (qosconfig ['defaultmtu' ])
294
+
295
+ #We want to send "normal" to UCS, not "1500".
296
+ #Both will work, but "1500" will generate an annoying warning.
297
+ if defmtu == "1500" :
298
+ defmtu = "normal"
299
+
300
+ #Position ourselves properly within the MO tree
301
+ obj = self .handle .GetManagedObject (None , None , {"Dn" :"fabric/lan" })
302
+ mo = self .handle .AddManagedObject (obj , "qosclassDefinition" ,
303
+ {
304
+ "PolicyOwner" :"local" ,
305
+ "Dn" :"fabric/lan/classes" ,
306
+ "Descr" :""
307
+ }, True )
308
+
309
+ #Set params for Platinum class
310
+ self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
311
+ {
312
+ "Priority" :"platinum" ,
313
+ "Mtu" :"9126" ,
314
+ "Name" :"" ,
315
+ "Dn" :"fabric/lan/classes/class-platinum" ,
316
+ "Weight" :"10" ,
317
+ "AdminState" :"disabled" ,
318
+ "Cos" :"5" ,
319
+ "Drop" :"drop" ,
320
+ "MulticastOptimize" :"no"
321
+ }, True )
322
+
323
+ #Set params for Gold class
324
+ self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
325
+ {
326
+ "Priority" :"gold" ,
327
+ "Mtu" :"9126" ,
328
+ "Name" :"" ,
329
+ "Dn" :"fabric/lan/classes/class-gold" ,
330
+ "Weight" :"9" ,
331
+ "AdminState" :"enabled" ,
332
+ "Cos" :"4" ,
333
+ "Drop" :"drop" ,
334
+ "MulticastOptimize" :"no"
335
+ }, True )
336
+
337
+ #Set params for Silver class
338
+ self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
339
+ {
340
+ "Priority" :"silver" ,
341
+ "Mtu" :"9126" ,
342
+ "Name" :"" ,
343
+ "Dn" :"fabric/lan/classes/class-silver" ,
344
+ "Weight" :"8" ,
345
+ "AdminState" :"enabled" ,
346
+ "Cos" :"2" ,
347
+ "Drop" :"drop" ,
348
+ "MulticastOptimize" :"no"
349
+ }, True )
350
+
351
+ #Set params for Bronze class
352
+ self .handle .AddManagedObject (mo , "qosclassEthClassified" ,
353
+ {
354
+ "Priority" :"bronze" ,
355
+ "Mtu" :"9126" ,
356
+ "Name" :"" ,
357
+ "Dn" :"fabric/lan/classes/class-bronze" ,
358
+ "Weight" :"7" ,
359
+ "AdminState" :"enabled" ,
360
+ "Cos" :"1" ,
361
+ "Drop" :"drop" ,
362
+ "MulticastOptimize" :"no"
363
+ }, True )
364
+
365
+ #Set params for Best-Effort class
366
+ self .handle .AddManagedObject (mo , "qosclassEthBE" ,
367
+ {
368
+ "Name" :"" ,
369
+ "MulticastOptimize" :"no" ,
370
+ "Mtu" :defmtu ,
371
+ "Dn" :"fabric/lan/classes/class-best-effort" ,
372
+ "Weight" :"5"
373
+ },
374
+ True )
375
+ except UcsException :
376
+ print "Error setting Global QoS Policy"
377
+
378
+ def createQosPolicy (self , classname , hostcontrol ):
379
+ try :
380
+ mo = self .handle .AddManagedObject (self .org , "epqosDefinition" ,
381
+ {
382
+ "Name" :classname ,
383
+ "Dn" :self .orgNameDN + "ep-qos-" + classname ,
384
+ "PolicyOwner" :"local" ,
385
+ "Descr" :classname + " QoS Policy"
386
+ })
387
+ self .handle .AddManagedObject (mo , "epqosEgress" ,
388
+ {
389
+ "Name" :"" ,
390
+ "Burst" :"10240" ,
391
+ "HostControl" :hostcontrol ,
392
+ "Prio" :classname .lower (),
393
+ "Dn" :self .orgNameDN + "ep-qos-" + classname + "/egress" ,
394
+ "Rate" :"line-rate"
395
+ }, True )
396
+ except UcsException :
397
+ print "QoS Policy already exists"
0 commit comments