def create_port(self, args):
"""Support for the Quantum core API call"""
+ if not const.UCS_PLUGIN in self._plugins.keys():
+ return
least_reserved_blade_dict = \
self._ucs_inventory.get_least_reserved_blade()
if not least_reserved_blade_dict:
def delete_port(self, args):
"""Support for the Quantum core API call"""
+ if not const.UCS_PLUGIN in self._plugins.keys():
+ return
rsvd_info = \
self._ucs_inventory.get_rsvd_blade_intf_by_port(args[0],
args[2])
def plug_interface(self, args):
"""Support for the Quantum core API call"""
+ if not const.UCS_PLUGIN in self._plugins.keys():
+ return
rsvd_info = \
self._ucs_inventory.get_rsvd_blade_intf_by_port(args[0],
args[2])
def unplug_interface(self, args):
"""Support for the Quantum core API call"""
+ if not const.UCS_PLUGIN in self._plugins.keys():
+ return
rsvd_info = \
self._ucs_inventory.get_rsvd_blade_intf_by_port(args[0],
args[2])
def get_host(self, args):
"""Provides the hostname on which a dynamic vnic is reserved"""
LOG.debug("get_host() called\n")
- host_list = {const.HOST_LIST: {const.HOST_1: platform.node()}}
+ if not const.UCS_PLUGIN in self._plugins.keys():
+ return
+ tenant_id = args[0]
+ instance_id = args[1]
+ host_name = self._ucs_inventory.get_host_name(tenant_id, instance_id)
+ host_list = {const.HOST_LIST: {const.HOST_1: host_name}}
return host_list
def get_instance_port(self, args):
Get the portprofile name and the device namei for the dynamic vnic
"""
LOG.debug("get_instance_port() called\n")
- vif_desc = {const.VIF_DESC:
- {const.DEVICENAME: "eth2", const.UCSPROFILE: "default"}}
+ if not const.UCS_PLUGIN in self._plugins.keys():
+ return
+ tenant_id = args[0]
+ instance_id = args[1]
+ vif_id = args[2]
+ vif_info = self._ucs_inventory.get_instance_port(tenant_id,
+ instance_id,
+ vif_id)
+ vif_desc = {const.VIF_DESC: vif_info}
return vif_desc
return host_name
return None
- def get_instance_port(self, tenant_id, instance_id, vif_id):
+ def get_instance_port(self, tenant_id, instance_id, vif_id=None):
"""
Return the device name for a reserved interface
"""
port_id = port_binding[const.PORTID]
udb.update_portbinding(port_id,
vif_id=vif_id)
- return blade_intf_data[blade_intf]\
+ device_name = blade_intf_data[blade_intf]\
[const.BLADE_INTF_RHEL_DEVICE_NAME]
+ profile_name = port_binding[const.PORTPROFILENAME]
+ return {const.DEVICENAME: device_name,
+ const.UCSPROFILE: profile_name}
return None
def add_blade(self, ucsm_ip, chassis_id, blade_id):
"""Add a blade to the inventory"""
+ # TODO (Sumit)
pass
-
-
-def main():
- #client = UCSInventory()
- #client.build_state()
- ucsinv = UCSInventory()
- reserved_nics = []
- ucsinv.build_inventory_state()
- while True:
- reserved_blade_dict = ucsinv.get_least_reserved_blade()
- if not reserved_blade_dict:
- print "No more unreserved blades\n"
- break
-
- least_reserved_blade_ucsm = \
- reserved_blade_dict[const.LEAST_RSVD_BLADE_UCSM]
- least_reserved_blade_chassis = \
- reserved_blade_dict[const.LEAST_RSVD_BLADE_CHASSIS]
- least_reserved_blade_id = \
- reserved_blade_dict[const.LEAST_RSVD_BLADE_ID]
- least_reserved_blade_data = \
- reserved_blade_dict[const.LEAST_RSVD_BLADE_DATA]
- reserved_nic_dict = \
- ucsinv.reserve_blade_interface(least_reserved_blade_ucsm,
- least_reserved_blade_chassis,
- least_reserved_blade_id,
- least_reserved_blade_data,
- "demo", "12345", "profilename")
- if reserved_nic_dict:
- reserved_intf_nic_info = {const.RESERVED_INTERFACE_UCSM:
- least_reserved_blade_ucsm,
- const.RESERVED_INTERFACE_CHASSIS:
- least_reserved_blade_chassis,
- const.RESERVED_INTERFACE_BLADE:
- least_reserved_blade_id,
- const.RESERVED_INTERFACE_DN:
- reserved_nic_dict[const.BLADE_INTF_DN]}
- reserved_nics.append(reserved_intf_nic_info)
- #break
-
- for rnic in reserved_nics:
- ucsinv.unreserve_blade_interface(
- rnic[const.RESERVED_INTERFACE_UCSM],
- rnic[const.RESERVED_INTERFACE_CHASSIS],
- rnic[const.RESERVED_INTERFACE_BLADE],
- rnic[const.RESERVED_INTERFACE_DN])
-
-
-if __name__ == '__main__':
- main()