diff --git a/_modules/maas.py b/_modules/maas.py
index 7db6bf3..cfc0f89 100644
--- a/_modules/maas.py
+++ b/_modules/maas.py
@@ -963,21 +963,21 @@
                                 data = {}
                                 action = 'override_failed_testing'
                                 cls._maas.post(u'api/2.0/machines/{0}/'
-                                    .format(sid, action, **data))
+                                    .format(sid), action, **data)
                                 LOG.info('Machine {0} overriden'.format(sid))
                                 counter[machine] = 1 if machine not in counter else (counter[machine] + 1)
                             elif status in ['Failed deployment', 'Allocated']:
                                 data = {}
                                 cls._maas.post(u'api/2.0/machines/{0}/'
-                                    .format(sid, 'mark_broken', **data))
+                                    .format(sid), 'mark_broken', **data)
                                 LOG.info('Machine {0} marked broken'.format(sid))
                                 cls._maas.post(u'api/2.0/machines/{0}/'
-                                    .format(sid, 'mark_fixed', **data))
+                                    .format(sid), 'mark_fixed', **data)
                                 LOG.info('Machine {0} marked fixed'.format(sid))
                                 if machine in counter and counter[machine]:
                                     data['testing_scripts'] = 'fio'
                                     cls._maas.post(u'api/2.0/machines/{0}/'
-                                        .format(sid, 'commission', **data))
+                                        .format(sid), 'commission', **data)
                                     LOG.info('Machine {0} fio test'.format(sid))
                                 DeployMachines().process()
                                 counter[machine] = 1 if machine not in counter else (counter[machine] + 1)
