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:
@@ -14,12 +14,24 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# 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.osutils import factory as osutils_factory
|
||||||
from cloudbaseinit.plugins import base
|
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__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
NETBIOS_HOST_NAME_MAX_LEN = 15
|
||||||
|
|
||||||
|
|
||||||
class SetHostNamePlugin(base.BasePlugin):
|
class SetHostNamePlugin(base.BasePlugin):
|
||||||
def execute(self, service, shared_data):
|
def execute(self, service, shared_data):
|
||||||
@@ -30,7 +42,19 @@ class SetHostNamePlugin(base.BasePlugin):
|
|||||||
|
|
||||||
osutils = osutils_factory.OSUtilsFactory().get_os_utils()
|
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)
|
reboot_required = osutils.set_host_name(new_host_name)
|
||||||
|
|
||||||
return (base.PLUGIN_EXECUTION_DONE, reboot_required)
|
return (base.PLUGIN_EXECUTION_DONE, reboot_required)
|
||||||
|
|||||||
Reference in New Issue
Block a user