'worker.'

def work(self):

    self.check_params()
    self.vlans_list_exist = self.get_vlans_list()
    if self.vlan_id:
        self.vlans_list_change.append(self.vlan_id)
        self.vlan_attr_exist = self.get_vlan_attr(self.vlan_id)
        if self.vlan_attr_exist:
            self.vlan_exist = True
    if self.vlan_range:
        new_vlans_tmp = self.vlan_range_to_list(self.vlan_range)
        if (self.state == 'present'):
            self.vlans_list_change = list((set(new_vlans_tmp) - set(self.vlans_list_exist)))
        else:
            self.vlans_list_change = [val for val in new_vlans_tmp if (val in self.vlans_list_exist)]
    if (self.state == 'present'):
        if self.vlan_id:
            if (not self.vlan_exist):
                self.config_vlan(self.vlan_id, self.name, self.description)
            elif (self.description and (self.description != self.vlan_attr_exist['description'])):
                self.merge_vlan(self.vlan_id, self.name, self.description)
            elif (self.name and (self.name != self.vlan_attr_exist['name'])):
                self.merge_vlan(self.vlan_id, self.name, self.description)
            if self.changed:
                self.updates_cmd.append(('vlan    %s' % self.vlan_id))
                if self.name:
                    self.updates_cmd.append(('name    %s' % self.name))
                if self.description:
                    self.updates_cmd.append(('description    %s' % self.description))
        elif (self.vlan_range and self.vlans_list_change):
            self.create_vlan_batch(self.vlans_list_change)
    elif self.vlan_id:
        if self.vlan_exist:
            self.undo_config_vlan(self.vlan_id)
    elif (self.vlan_range and self.vlans_list_change):
        self.delete_vlan_batch(self.vlans_list_change)
    if self.vlan_id:
        self.vlan_attr_end = self.get_vlan_attr(self.vlan_id)
    self.get_existing()
    self.get_proposed()
    self.get_end_state()
    self.results['changed'] = self.changed
    if self.changed:
        self.results['updates'] = self.updates_cmd
    else:
        self.results['updates'] = list()
    self.module.exit_json(**self.results)
