Adds option to truncate host name to Netbios len
In some scenarios it is necessary to limit the length of the host name to the maximum length allowed by Netbios. The "netbios_host_name_compatibility" option can be used to control this behaviour.
This commit is contained in:
parent
9752b11b85
commit
889a5f8e8c
@ -14,12 +14,24 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from cloudbaseinit.openstack.common import cfg
|
||||
from cloudbaseinit.openstack.common import log as logging
|
||||
from cloudbaseinit.osutils import factory as osutils_factory
|
||||
from cloudbaseinit.plugins import base
|
||||
from cloudbaseinit.openstack.common import log as logging
|
||||
|
||||
opts = [
|
||||
cfg.BoolOpt('netbios_host_name_compatibility', default=True,
|
||||
help='Truncates the hostname to 15 characters for Netbios '
|
||||
'compatibility'),
|
||||
]
|
||||
|
||||
CONF = cfg.CONF
|
||||
CONF.register_opts(opts)
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
NETBIOS_HOST_NAME_MAX_LEN = 15
|
||||
|
||||
|
||||
class SetHostNamePlugin(base.BasePlugin):
|
||||
def execute(self, service, shared_data):
|
||||
@ -30,7 +42,19 @@ class SetHostNamePlugin(base.BasePlugin):
|
||||
|
||||
osutils = osutils_factory.OSUtilsFactory().get_os_utils()
|
||||
|
||||
new_host_name = meta_data['hostname'].split('.', 1)[0]
|
||||
metadata_host_name = meta_data['hostname'].split('.', 1)[0]
|
||||
|
||||
if (len(metadata_host_name) > NETBIOS_HOST_NAME_MAX_LEN and
|
||||
CONF.netbios_host_name_compatibility):
|
||||
new_host_name = metadata_host_name[:NETBIOS_HOST_NAME_MAX_LEN]
|
||||
LOG.warn('Truncating host name for Netbios compatibility. '
|
||||
'Old name: %(metadata_host_name)s, new name: '
|
||||
'%(new_host_name)s' %
|
||||
{'metadata_host_name': metadata_host_name,
|
||||
'new_host_name': new_host_name})
|
||||
else:
|
||||
new_host_name = metadata_host_name
|
||||
|
||||
reboot_required = osutils.set_host_name(new_host_name)
|
||||
|
||||
return (base.PLUGIN_EXECUTION_DONE, reboot_required)
|
||||
|
Loading…
x
Reference in New Issue
Block a user