cancel
Showing results for 
Search instead for 
Did you mean: 

Trying to create VIPs via Python and get an error

Maylin
Nimbostratus
Nimbostratus

Here is the snippet of code that is used to create the VIPs on the f5;

 

rv0=revisedServer.replace("dev_","test_vip_")

  print (eachServer[0][3].upper())

  rv1=eachServer[0][3].upper()

  params = {'name': rv0, 'source': "0.0.0.0/0", 'description': "TEST VS",'protocol': rv1,'pool': revisedServer,'profiles': profiles,'partition': 'Common','sourceAddressTranslation': {'type': 'snat'},'vlansEnabled': 'True','vlans': ['/Common/Dev'],'arp':'disabled','icmpecho':'disabled','state':'disabled','port':eachServer[0][1],'tagMode':'none'}

  print (params)

#LETS CREATE VIRTIUAL SERVERS IF THE SERVER ALREADY EXISTS KEEP IT MOVING

  try:

   ltm.virtuals.virtual.create(**params)

  except Exception as e:

   print (e)

 

 

 

When run I get the following error:

 

 

400 Unexpected Error: Bad Request for uri: https://pltbigip01.pexdev.corp:443/mgmt/tm/ltm/virtual/

Text: '{"code":400,"message":"Instance contains a string","errorStack":[],"apiError":1}'

 

Does anyone know why?

 

 

2 REPLIES 2

your 'vlansEnabled' receives a boolean as value. Booleans aren't strings.

 

So instead of:

'vlansEnabled': 'True',

Try:

'vlansEnabled': True,

There maybe other errors, so use this as a reference to make sure the values match the expected type:

params = {'name': vs_name, 'destination': '{}:{}'.format('192.168.100.10', str(80)), 'mask': '255.255.255.255', 'description': 'Created by Python', 'pool': my_pool, 'profiles': profiles, 'partition': 'Common', 'sourceAddressTranslation': {'type': 'automap'}, 'vlansEnabled': True, 'vlans': ['/Common/internal'] }   ltm.virtuals.virtual.create(**params)

Cheers.

Rodrigo

Not applicable

See this question for continuing conversation. Closing this question as dupe.

https://devcentral.f5.com/s/feed/0D51T0000867KgcSAE