rename interface
Change-Id: I413e3d1770401e58cbf5b801892b46378d7840b0
This commit is contained in:
parent
375abedb8a
commit
b8a7a1cad2
|
@ -1472,7 +1472,23 @@ class ApplyNodeNetworking(BaseMaasAction):
|
||||||
machine.reset_network_config()
|
machine.reset_network_config()
|
||||||
machine.refresh()
|
machine.refresh()
|
||||||
|
|
||||||
|
self.logger.debug(
|
||||||
|
"The variable, n.interfaces is : %s"
|
||||||
|
% (n.interfaces))
|
||||||
|
|
||||||
for i in n.interfaces:
|
for i in n.interfaces:
|
||||||
|
|
||||||
|
self.logger.debug(
|
||||||
|
"The variable, name is : %s"
|
||||||
|
% (i.device_name))
|
||||||
|
# self.logger.debug(
|
||||||
|
# "The variable, i is : %s"
|
||||||
|
# % (i))
|
||||||
|
# rename only ens ones
|
||||||
|
# if "ens" in i.device_name:
|
||||||
|
|
||||||
|
machine.rename_interface(i.device_name)
|
||||||
|
|
||||||
if not i.network_link:
|
if not i.network_link:
|
||||||
self.logger.debug(
|
self.logger.debug(
|
||||||
"Interface %s has no network link, skipping configuration."
|
"Interface %s has no network link, skipping configuration."
|
||||||
|
|
|
@ -108,6 +108,43 @@ class Interface(model_base.ResourceBase):
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def update(self, **kwargs):
|
||||||
|
"""Update this interface.
|
||||||
|
|
||||||
|
{system_id} (string):Node/machine ID Required.
|
||||||
|
{id} (string):interface ID Required.
|
||||||
|
"""
|
||||||
|
if kwargs:
|
||||||
|
url = self.interpolate_url()
|
||||||
|
|
||||||
|
self.logger.debug("Updating interface %s:%s on system %s." %
|
||||||
|
(self.name, self.resource_id, self.system_id))
|
||||||
|
iface_params = dict()
|
||||||
|
|
||||||
|
# self.logger.debug("Setting interface parameters for interface %s on system %s." %
|
||||||
|
# (self.resource_id, self.system_id))
|
||||||
|
|
||||||
|
for k, v in kwargs.items():
|
||||||
|
iface_params[k] = v
|
||||||
|
|
||||||
|
iface_params["id"] = self.resource_id
|
||||||
|
|
||||||
|
resp = self.api_client.put(url, files=iface_params)
|
||||||
|
|
||||||
|
if not resp.ok:
|
||||||
|
self.logger.warning(
|
||||||
|
"Could not update interface, MaaS error: %s - %s" %
|
||||||
|
(resp.status_code, resp.text))
|
||||||
|
raise errors.DriverError(
|
||||||
|
"Could not update interface, MaaS error: %s - %s" %
|
||||||
|
(resp.status_code, resp.text))
|
||||||
|
else:
|
||||||
|
self.logger.warning(
|
||||||
|
"Could not update interface, no parameters supplied for update")
|
||||||
|
# resp = self.api_client.put(url, op='interfaces',
|
||||||
|
# files={"name": path_name, "id": interface_id})
|
||||||
|
|
||||||
|
|
||||||
def disconnect(self):
|
def disconnect(self):
|
||||||
"""Disconnect this interface from subnets and VLANs."""
|
"""Disconnect this interface from subnets and VLANs."""
|
||||||
url = self.interpolate_url()
|
url = self.interpolate_url()
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
"""Model representing MAAS node/machine resource."""
|
"""Model representing MAAS node/machine resource."""
|
||||||
import logging
|
import logging
|
||||||
import base64
|
import base64
|
||||||
|
import json
|
||||||
|
|
||||||
from threading import Lock, Condition
|
from threading import Lock, Condition
|
||||||
|
|
||||||
|
@ -82,6 +83,60 @@ class Machine(model_base.ResourceBase):
|
||||||
return i
|
return i
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_commissioning_results(self):
|
||||||
|
"""Load the commissioning script results"""
|
||||||
|
self.resource_url = 'nodes/{resource_id}/results/'
|
||||||
|
|
||||||
|
url = self.interpolate_url()
|
||||||
|
|
||||||
|
options = {
|
||||||
|
'filters': "99-netiface-names.sh",
|
||||||
|
'include_output': "true",
|
||||||
|
}
|
||||||
|
|
||||||
|
resp = self.api_client.get(url, files=options)
|
||||||
|
self.logger.debug("MaaS query URL : %s | Options: %s " % url % options)
|
||||||
|
self.logger.debug("MaaS response: %s" % resp.text)
|
||||||
|
|
||||||
|
output_str = resp.decode('utf-8')
|
||||||
|
data_dict = json.loads(output_str)
|
||||||
|
|
||||||
|
if resp.status_code == 200:
|
||||||
|
self.results = data_dict
|
||||||
|
|
||||||
|
if not resp.ok:
|
||||||
|
brief_msg = ("Error getting commissioning script, received HTTP %s from MaaS" %
|
||||||
|
resp.status_code)
|
||||||
|
self.logger.error(brief_msg)
|
||||||
|
self.logger.debug("MaaS response: %s" % resp.text)
|
||||||
|
raise errors.DriverError(brief_msg)
|
||||||
|
|
||||||
|
def rename_interface(self, interface_name):
|
||||||
|
"""rename interface"""
|
||||||
|
url = self.interpolate_url()
|
||||||
|
|
||||||
|
int_names = self.get_commissioning_results()
|
||||||
|
path_name = int_names.get(interface_name, "")
|
||||||
|
|
||||||
|
if path_name:
|
||||||
|
self.logger.info("Interface %s rename to %s"
|
||||||
|
% (interface_name, path_name))
|
||||||
|
iface = self.get_network_interface(interface_name)
|
||||||
|
if iface.name is not interface_name:
|
||||||
|
self.logger.info("Interface %s not the correct interface to rename."
|
||||||
|
% (iface.name))
|
||||||
|
return None
|
||||||
|
# maas_interface.update(name=path_name)
|
||||||
|
resp = self.api_client.put(url, op='interfaces',
|
||||||
|
params={"name": path_name, "id": iface.resource_id})
|
||||||
|
|
||||||
|
if not resp.ok:
|
||||||
|
brief_msg = ("Error updating interface name, received HTTP %s from MaaS" %
|
||||||
|
resp.status_code)
|
||||||
|
self.logger.error(brief_msg)
|
||||||
|
self.logger.debug("MaaS response: %s" % resp.text)
|
||||||
|
raise errors.DriverError(brief_msg)
|
||||||
|
|
||||||
def interface_for_mac(self, mac_address):
|
def interface_for_mac(self, mac_address):
|
||||||
"""Find the machine interface that owns the specified ``mac_address``.
|
"""Find the machine interface that owns the specified ``mac_address``.
|
||||||
|
|
||||||
|
@ -392,6 +447,7 @@ class Machine(model_base.ResourceBase):
|
||||||
def set_power_parameters(self, power_type, **kwargs):
|
def set_power_parameters(self, power_type, **kwargs):
|
||||||
"""Set power parameters for this node.
|
"""Set power parameters for this node.
|
||||||
|
|
||||||
|
|
||||||
Only available after the node has been added to MAAS.
|
Only available after the node has been added to MAAS.
|
||||||
|
|
||||||
:param power_type: The type of power management for the node
|
:param power_type: The type of power management for the node
|
||||||
|
|
Loading…
Reference in New Issue