Revision 67377ec3

b/kamaki/cli/commands/network.py
609 609
            'The network to preserve the IP on', '--network-id'),
610 610
        ip_address=ValueArgument('Allocate an IP address', '--address')
611 611
    )
612
    required = ('network_id', )
613 612

  
614 613
    @errors.generic.all
615 614
    @errors.cyclades.connection
616
    @errors.cyclades.network_id
617
    def _run(self, network_id):
615
    def _run(self):
618 616
        self._print(
619 617
            self.client.create_floatingip(
620
                network_id, floating_ip_address=self['ip_address']),
618
                self['network_id'], floating_ip_address=self['ip_address']),
621 619
            self.print_dict)
622 620

  
623 621
    def main(self):
624 622
        super(self.__class__, self)._run()
625
        self._run(network_id=self['network_id'])
623
        self._run()
626 624

  
627 625

  
628 626
@command(ip_cmds)
b/kamaki/clients/cyclades/__init__.py
215 215
        r = self.ports_post(json_data=dict(port=port), success=201)
216 216
        return r.json['port']
217 217

  
218
    def create_floatingip(self, floating_network_id, floating_ip_address=''):
219
        return super(CycladesNetworkClient, self).create_floatingip(
220
            floating_network_id, floating_ip_address=floating_ip_address)
218
    def create_floatingip(
219
            self, floating_network_id=None, floating_ip_address=''):
220
        """
221
        :param floating_network_id: if not provided, it is assigned
222
            automatically by the service
223
        :param floating_ip_address: only if the IP is availabel in network
224
            pool
225
        """
226
        floatingip = {}
227
        if floating_network_id:
228
            floatingip['floating_network_id'] = floating_network_id
229
        if floating_ip_address:
230
            floatingip['floating_ip_address'] = floating_ip_address
231
        r = self.floatingips_post(
232
            json_data=dict(floatingip=floatingip), success=200)
233
        return r.json['floatingip']

Also available in: Unified diff