##### SUMMARY
Applying the module HOSTNAME against a box running OSMC (https://osmc.tv/) the following error appears:
`fatal: [raspitest.thucke.de]: FAILED! => {"changed": false, "msg": "hostname module cannot be used on platform Linux (Osmc)"}
`
##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
Module: hostname

##### ANSIBLE VERSION
```
ansible 2.9.2
  config file = /home/ansible/ansible/ansible.cfg
  configured module search path = ['/home/ansible/ansible/ansible_modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
```

##### CONFIGURATION
```
DEFAULT_HOST_LIST(/home/ansible/ansible/ansible.cfg) = ['/home/ansible/ansible/inventory.yml']
DEFAULT_MODULE_PATH(/home/ansible/ansible/ansible.cfg) = ['/home/ansible/ansible/ansible_modules']
DEFAULT_ROLES_PATH(/home/ansible/ansible/ansible.cfg) = ['/home/ansible/ansible/roles', '/home/ansible/ansible/roles']
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Target OS: OSMC on Rasperry Pi 2B+ (http://download.osmc.tv/installers/diskimages/OSMC_TGT_rbp2_20191118.img.gz)

##### STEPS TO REPRODUCE
Just apply a playbook with the module against such a machine.

```
- name: HOSTNAME | Setting real hostname
  hostname:
    name: "{{ inetHostname.stdout }}"
```

##### EXPECTED RESULTS
Module end without errors

##### ACTUAL RESULTS
`fatal: [raspitest.thucke.de]: FAILED! => {"changed": false, "msg": "hostname module cannot be used on platform Linux (Osmc)"}
`
"""
    This is a generic Hostname manipulation class that is subclassed
    based on platform.
    A subclass may wish to set different strategy instance to self.strategy.
    All subclasses MUST define platform and distribution (which may be None).
    """
    platform = 'Generic'
    distribution = None
    strategy_class = UnimplementedStrategy
    def __new__(cls, *args, **kwargs):
        new_cls = get_platform_subclass(Hostname)
        return super(cls, new_cls).__new__(new_cls)
    def __init__(self, module):
        self.module = module
        self.name = module.params['name']
        self.use = module.params['use']
        if self.use is not None:
            strat = globals()['%sStrategy' % STRATS[self.use]]
            self.strategy = strat(module)
        elif self.platform == 'Linux' and ServiceMgrFactCollector.is_systemd_managed(module):
            self.strategy = SystemdStrategy(module)
        else:
            self.strategy = self.strategy_class(module)
    def update_current_and_permanent_hostname(self):
        return self.strategy.update_current_and_permanent_hostname()
    def get_current_hostname(self):
        return self.strategy.get_current_hostname()
    def set_current_hostname(self, name):
        self.strategy.set_current_hostname(name)
    def get_permanent_hostname(self):