Loading cloudcontrol/server/clients/cli.py +29 −0 Original line number Diff line number Diff line Loading @@ -343,6 +343,35 @@ class CliHandler(RegisteredCCHandler): return errs.get_dict() @listed def vlans(self, query, vlan_update, mac_address=None): """ Edit VLANs propagated to a VM interface. :param query: the tql query to select objects. """ objects = self.client.list(query, show=('r', 'p', 'h'), method='vlans') if not objects: raise NotImplementedError('No objects matched by query') errs = Reporter() for obj in objects: if obj['r'] != 'vm': errs.error(obj['id'], 'bad role') continue try: hvcon = self.server.get_client(obj['p']) except KeyError: errs.error(obj['id'], 'hypervisor not connected') else: try: hvcon.proxy.vm_set_vlans(obj['h'], vlan_update, mac_address=mac_address) except Exception as err: errs.error(obj['id'], str(err)) else: errs.success(obj['id'], 'vlans updated') return errs.get_dict() # # Account management: # Loading Loading
cloudcontrol/server/clients/cli.py +29 −0 Original line number Diff line number Diff line Loading @@ -343,6 +343,35 @@ class CliHandler(RegisteredCCHandler): return errs.get_dict() @listed def vlans(self, query, vlan_update, mac_address=None): """ Edit VLANs propagated to a VM interface. :param query: the tql query to select objects. """ objects = self.client.list(query, show=('r', 'p', 'h'), method='vlans') if not objects: raise NotImplementedError('No objects matched by query') errs = Reporter() for obj in objects: if obj['r'] != 'vm': errs.error(obj['id'], 'bad role') continue try: hvcon = self.server.get_client(obj['p']) except KeyError: errs.error(obj['id'], 'hypervisor not connected') else: try: hvcon.proxy.vm_set_vlans(obj['h'], vlan_update, mac_address=mac_address) except Exception as err: errs.error(obj['id'], str(err)) else: errs.success(obj['id'], 'vlans updated') return errs.get_dict() # # Account management: # Loading