Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The plugin is configured with Brocade VDX Switch details (like IP Address, Username/Password) using APIs or GUI for Brocade VCS Service Provider. The APIs are listed in WebServices APIs section below.

WebServices APIs

  • addBrocadeVcsDevice: Adds a Brocade Vcs Switch

Request Parameters

Parameter Name

Description

Required

hostname

Hostname of the Brocade Vcs Switch.

true

username

Credentials to access the Brocade Vcs Switch

true

password

Credentials to access the Brocade Vcs Switch

true

physicalnetworkid

The Physical Network ID

true

...

Parameter Name

Description

addbrocadevcsdeviceresponse

Response object

  • deleteBrocadeVcsDevice: Delete a Brocade Vcs Switch

Request Parameters

Parameter Name

Description

Required

vcsdeviceid

device id of the Brocade Vcs Switch

true

...

Parameter Name

Description

deletebrocadevcsdeviceresponse

Response object

  • listBrocadeVcsDevices: Lists Brocade Vcs Switchs

Request Parameters

Parameter Name

Description

Required

vcsdeviceid

device id of the Brocade VCs Switch

false

physicalnetworkid

The Physical Network ID

false

...

Following tables are created for the plugin:

  1. external_brocade_vcs_devices: For storing the Brocade Switch details.

      Schema

  `id` bigint unsigned unsigned NOT NULL AUTO AUTO_INCREMENT COMMENT 'id',

  `uuid` `uuid` varchar(255) UNIQUE,

  `physical_network_id` bigint unsigned unsigned NOT NULL COMMENT  COMMENT 'id of the physical network in to which brocade vcs switch is added',

  `provider_name` name` varchar(255) NOT NULL COMMENT  COMMENT 'Service Provider name corresponding to this brocade vcs switch',

  `device_name` name` varchar(255) NOT NULL COMMENT  COMMENT 'name of the brocade vcs switch',

  `host_id` bigint unsigned unsigned NOT NULL COMMENT  COMMENT 'host id coresponding to the external brocade vcs switch',

  PRIMARY  PRIMARY KEY  (`id`)

 

2.  brocade_network_vlan_map: For maintaining the mapping of the network and it’s vlanid.

Schema

  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',

...

  1. BrocadeVdxGuestNetworkGuru: This is the implementation of the NetworkGuru interface which is invoked by the NetworkOrchestrator when an isolated Network is created/deleted and VM is attached to it or deleted. This class implements the network and creates a port profile on the switch, associates the VMs MAC address to the port profile when VM is created. When the VM is destroyed, VMs MAC address is disassociated from the port profile. When the network is deleted, the port profile for the network is deleted. The port profile name uses the VLAN id of the network to uniquely identify it.
  2. BrocadeVdxResource: This is the implementation of ServerResource interface. This class provides methods to execute the requests to communicate with the Brocade switch. The BrocadeVdxGuestNetworkGuru
  3. BrocadeVdxElement: This provides implementation for the APIs for adding, deleting and listing Brocade switches. This creates an instance of  BrocadeVdxResource of  BrocadeVdxResource for each Brocade switch and sends it to the ResourceManager for creating agent for this resource and deletes it at the time of delete operation.
  4. BrocadeVdxApi: This provides the API layer for interacting with the switch and makes REST API calls to the switch for configuration and operational status.
  5. CreatePortProfileCommand: This provides the implementation of the create port profile command. The BrocadeVdxGuestNetworkGuru creates an instance of this command for each request for creating port profile (when the isolated network is created) and sends it to AgentManager which in turn calls the BrocadeVdxResource to execute the request for this command.
  6. AssociateMacToPortProfileCommand: This provides the implementation of the associate mac to Port Profile command. The BrocadeVdxGuestNetworkGuru creates an instance of this command for each request for associating VMs MAC address to port profile (when the VM is created) and sends it to AgentManager which in turn calls the BrocadeVdxResource to execute the request for this command.
  7. DisassociateMacFromPortProfileCommand: This provides the implementation of the disassociate mac from Port Profile command. The BrocadeVdxGuestNetworkGuru creates an instance of this command for each request for disassociating VMs MAC address from port profile (when the VM is deleted) and sends it to AgentManager which in turn calls the BrocadeVdxResource to execute the request for this command.
  8. DeletePortProfileCommand: This provides the implementation of the delete port profile command. The BrocadeVdxGuestNetworkGuru creates an instance of this command for each request for deleting the port profile (when the network is deleted) and sends it to AgentManager which in turn calls the BrocadeVdxResource to execute the request for this command.
  9. CreatePortProfileAnswer: This provides the result for the CreatePortProfileCommand execution.
  10. AssociateMacToPortProfileAnswer: This provides the result for the AssociateMacToPortProfileCommand execution.
  11. DisassociateMacFromPortProfileAnswer: This provides the result for the DisassociateMacFromPortProfileCommand execution.
  12. DeletePortProfileAnswer: This provides the result for the DeletePortProfileCommand execution.

Sequence Diagrams

Port Profile Creation, VM MAC Association

...

Image Added

Image RemovedFigure 3 shows the sequence diagram for port profile creation, VM MAC address association to port profile and enabling monitoring of the switch. The NetworkOrchestrator invokes the BrocadeGuestNetworkGuru to implement the isolated network at the time of first VM creation. The BrocadeVdxGuestNetworkGuru finds the switches used for this network based on Zone and Pod of the network from the pod-switch properties file. It checks if the switch is already configured by doing does a lookup from the database table for network-switch mapping. If not available, it reads the switch details from the pre-configured properties file, configures a BrocadeVdxResource for this switch and adds it to the ResourceManager and to the database table for network-switch mapping. The ResourceManager calls the AgentManager to create an agent for this resource and enables the periodic pinging (monitoring) of the switch for its availabilityswitches based on the physical network used for this network. The BrocadeGuestNetworkGuru then creates an instance of CreatePortProfileCommand and sends it to AgentManager. The AgentManager uses the agent created for this host to call the BrocadeVdxResource to execute this command by using the BrocadeVdxApi. The BrocadeVdxApi interacts with the switch using REST API to create port profile for this network on the switch.

The NetworkOrchestrator invokes the BrocadeGuestNetworkGuru to reserve the resource for the VM at the time of VM creation. The BrocadeVdxGuestNetworkGuru does a lookup from the database table for network-switch mapping to find the switch switches based on the network where VM is createdphysical network used for this network. The BrocadeGuestNetworkGuru then creates an instance of AssociateMacToPortProfileCommand for the VM MAC address association with network’s port profile and sends it to AgentManager. The AgentManager uses the agent created for this host to call the BrocadeVdxResource to execute this command by using the BrocadeVdxApi. The BrocadeVdxApi interacts with the switch using REST API to associate the VM MAC address to port profile for this network on the switch.

Port Profile Deletion, VM MAC Disassociation

and Disabling Monitoring of the Switch

Image Added

Figure 4 shows

Image RemovedFigure 4 shows

the sequence diagram for port profile deletion, VM MAC address disassociation from port profile of the network

and disabling monitoring of the switch

. The NetworkOrchestrator invokes the BrocadeGuestNetworkGuru to deallocate the resources for the VM at the time of destroying VM. The BrocadeVdxGuestNetworkGuru does a lookup from the database table for

network-switch mapping to find the switch

switches based on the

network where VM is deleted

physical network used for this network. The BrocadeGuestNetworkGuru then creates an instance of DisassociateMacFromPortProfileCommand for the VM MAC address disassociation from network’s port profile and sends it to AgentManager. The AgentManager uses the agent created for this host to call the BrocadeVdxResource to execute this command by using the BrocadeVdxApi. The BrocadeVdxApi interacts with the switch using REST API to disassociate the VM MAC address from port profile for this network on the switch.

The NetworkOrchestrator invokes the BrocadeGuestNetworkGuru to trash the resources at the time of deleting isolated network.

.

The BrocadeVdxGuestNetworkGuru does a lookup from the database table for

network-switch mapping to find the switch

switches based on the physical network used for this network. The BrocadeGuestNetworkGuru then creates an instance of DeletePortProfileCommand and sends it to AgentManager. The AgentManager uses the agent created for this host to call the BrocadeVdxResource to execute this command by using the BrocadeVdxApi. The BrocadeVdxApi interacts with the switch using REST API to delete port profile for this network on the switch.

The BrocadeGuestNetworkGuru also deletes the network-switch mapping from network-switch mapping database table. If there are no isolated networks using this physical switch, the BrocadeGuestNetworkGuru deletes this resource

Add Brocade Device and Enabling Monitoring of the Switch

Image Added

Figure 5 shows the sequence diagram for adding Brocade Switch and enabling monitoring of the Switch. The BrocadeVdxElement configures a BrocadeVdxResource for the switch and adds it to the ResourceManager. The ResourceManager calls the AgentManager to create an agent for this resource and enables the periodic pinging (monitoring) of the switch for its availability.

Delete Brocade Device and Disabling Monitoring of the Switch

Image Added

Figure 6 shows the sequence diagram for deleting Brocade Switch and disabling monitoring of the Switch. The BrocadeVdxElement deletes the resource for this switch from the ResourceManager. The ResourceManager calls the AgentManager to delete an agent for this resource and disable the periodic pinging (monitoring) of the switch for its availability.