summaryrefslogtreecommitdiff
path: root/src/fapi.py
diff options
context:
space:
mode:
authorPaul C. Buetow <paul@buetow.org>2014-04-13 14:49:46 +0200
committerPaul C. Buetow <paul@buetow.org>2014-04-13 14:49:46 +0200
commite77779a02c72c70ccccb0837892aa5cc02942a3a (patch)
treecc05cefcad33ea94fd340a5210a55e5ab61c0b52 /src/fapi.py
parent5cf3f2c25fa817fec2952df3bfb21612f2926abc (diff)
can create and delete vservers
Diffstat (limited to 'src/fapi.py')
-rwxr-xr-xsrc/fapi.py34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/fapi.py b/src/fapi.py
index e1c582a..b6e7c6e 100755
--- a/src/fapi.py
+++ b/src/fapi.py
@@ -263,18 +263,46 @@ class Fapi(object):
elif a.arg2 == 'brief':
def brief(f5):
d = {}
+ d['actual_hardware_acceleration'] = f5().get_actual_hardware_acceleration([a.name])
d['default_pool_name'] = f5().get_default_pool_name([a.name])
+ d['destination'] = f5().get_destination_v2([a.name])
+ d['enabled_state'] = f5().get_enabled_state([a.name])
d['object_status'] = f5().get_object_status([a.name])
d['profile'] = f5().get_profile([a.name])
d['protocol'] = f5().get_protocol([a.name])
- d['actual_hardware_acceleration'] = f5().get_actual_hardware_acceleration([a.name])
d['translate_port_state'] = f5().get_translate_port_state([a.name])
d['translate_port_state'] = f5().get_translate_port_state([a.name])
+ d['type'] = f5().get_type([a.name])
return d
return lambda: brief(f5)
elif a.arg2 == 'status':
return lambda: f5().get_object_status([a.name])
+ elif a.arg == 'create':
+ fqdn, ip, port = self.lookup(a.name)
+ protocol = a.arg2 if a.arg2 else 'PROTOCOL_TCP'
+ netmask = a.arg3 if a.arg3 else '255.255.255.255'
+ profile = a.arg4 if a.arg4 else 'tcp'
+ poolname = a.arg5
+ vserver = {
+ 'name': a.name,
+ 'address': ip,
+ 'port': port,
+ 'protocol': protocol,
+ }
+ resource = { 'type': 'RESOURCE_TYPE_POOL' }
+ if poolname: resource['default_pool_name'] = poolname
+ profile = {
+ 'profile_context': 'PROFILE_CONTEXT_TYPE_ALL',
+ 'profile_name': profile,
+ }
+ self.info("vserver:%s netmask:%s resource:%s, profile:%s"
+ % (vserver, netmask, resource, profile))
+ return lambda: f5().create([vserver], [netmask], [resource], [[profile]])
+
+ elif a.arg == 'delete':
+ return lambda: f5().delete_virtual_server([a.name])
+
elif a.arg == 'set':
if a.arg2 == 'pool':
poolname = a.arg3
@@ -300,6 +328,7 @@ class Fapi(object):
lazy = self.__do_vserver(lambda: self._f5.LocalLB.VirtualServer)
if isfunction(lazy):
+ self.info('Doing some stuf via the API, it may take a while')
self.__login()
self.out(lazy())
else:
@@ -322,7 +351,8 @@ if __name__ == '__main__':
parser.add_argument('arg', nargs='?', help='The first argument')
parser.add_argument('arg2', nargs='?', help='The second argument')
parser.add_argument('arg3', nargs='?', help='The third argument')
- #parser.add_argument('arg4', nargs='?', help='The fourth argument')
+ parser.add_argument('arg4', nargs='?', help='The fourth argument')
+ parser.add_argument('arg5', nargs='?', help='The fith argument')
args = parser.parse_args()