Revision 6488097c

b/snf-cyclades-app/synnefo/logic/backend.py
746 746

  
747 747
    log.debug("Connecting vm %s to network %s(%s)", vm, network, address)
748 748

  
749
    kwargs = {
750
        "instance": vm.backend_vm_id,
751
        "nics": [("add", nic)],
752
        "depends": depends,
753
    }
754
    if vm.backend.use_hotplug():
755
        kwargs["hotplug"] = True
756
    if settings.TEST:
757
        kwargs["dry_run"] = True
758

  
749 759
    with pooled_rapi_client(vm) as client:
750
        return client.ModifyInstance(vm.backend_vm_id, nics=[('add',  nic)],
751
                                     hotplug=vm.backend.use_hotplug(),
752
                                     depends=depends,
753
                                     dry_run=settings.TEST)
760
        return client.ModifyInstance(**kwargs)
754 761

  
755 762

  
756 763
def disconnect_from_network(vm, nic):
757
    op = [('remove', nic.index, {})]
758

  
759 764
    log.debug("Removing nic of VM %s, with index %s", vm, str(nic.index))
760 765

  
766
    kwargs = {
767
        "instance": vm.backend_vm_id,
768
        "nics": [("remove", nic.index, {})],
769
    }
770
    if vm.backend.use_hotplug():
771
        kwargs["hotplug"] = True
772
    if settings.TEST:
773
        kwargs["dry_run"] = True
774

  
761 775
    with pooled_rapi_client(vm) as client:
762
        jobID = client.ModifyInstance(vm.backend_vm_id, nics=op,
763
                                      hotplug=vm.backend.use_hotplug(),
764
                                      dry_run=settings.TEST)
776
        jobID = client.ModifyInstance(**kwargs)
765 777
        # If the NIC has a tag for a firewall profile it must be deleted,
766 778
        # otherwise it may affect another NIC. XXX: Deleting the tag should
767 779
        # depend on the removing the NIC, but currently RAPI client does not
b/snf-cyclades-app/synnefo/logic/tests/servers.py
94 94
        self.assertFalse(pool.is_available("192.168.2.2"))
95 95
        args, kwargs = mrapi().ModifyInstance.call_args
96 96
        nics = kwargs["nics"][0]
97
        self.assertEqual(args[0], vm.backend_vm_id)
97
        self.assertEqual(kwargs["instance"], vm.backend_vm_id)
98 98
        self.assertEqual(nics[0], "add")
99 99
        self.assertEqual(nics[1]["ip"], "192.168.2.2")
100 100
        self.assertEqual(nics[1]["network"], net.backend_id)
......
111 111
        self.assertTrue(pool.is_available("192.168.2.2"))
112 112
        args, kwargs = mrapi().ModifyInstance.call_args
113 113
        nics = kwargs["nics"][0]
114
        self.assertEqual(args[0], vm.backend_vm_id)
114
        self.assertEqual(kwargs["instance"], vm.backend_vm_id)
115 115
        self.assertEqual(nics[0], "add")
116 116
        self.assertEqual(nics[1]["ip"], None)
117 117
        self.assertEqual(nics[1]["network"], net.backend_id)
......
125 125
        servers.connect(vm, net)
126 126
        args, kwargs = mrapi().ModifyInstance.call_args
127 127
        nics = kwargs["nics"][0]
128
        self.assertEqual(args[0], vm.backend_vm_id)
128
        self.assertEqual(kwargs["instance"], vm.backend_vm_id)
129 129
        self.assertEqual(nics[0], "add")
130 130
        self.assertEqual(nics[1]["ip"], None)
131 131
        self.assertEqual(nics[1]["network"], net.backend_id)

Also available in: Unified diff