-
Mike Marsh authored
The netem file won't work, but I'll clean that up when it's needed.
Mike Marsh authoredThe netem file won't work, but I'll clean that up when it's needed.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
netem 1.19 KiB
#! /usr/bin/env python
import json
import subprocess
def main():
module = AnsibleModule(argument_spec=dict(
state=dict(required=True),
name=dict(required=True,type='str'),
device=dict(required=True,type='str'),
))
j = json.loads(module.params['state'])
name = module.params['name']
device = module.params['device']
changed = False
args = ["/sbin/ip",
"netns", "exec", name,
"tc", "qdisc", "change", "dev", device, "root",
"netem"]
if 'delay' in j:
args.append("delay")
args.append(j['delay'])
changed = True
if 'rate' in j:
args.append("rate")
args.append(j['rate'])
changed = True
if 'loss' in j:
args.append("loss")
args.append(j['loss'])
changed = True
if changed:
cmd = reduce( lambda x,y: "%s %s" % (x,y), args )
sargs = map( lambda x: str(x), args )
try:
subprocess.check_output(sargs,stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
module.fail_json(msg=e.output)
module.exit_json(changed=changed,cmd=cmd)
from ansible.module_utils.basic import *
main()