Versions Compared

Key

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

...

once you have your UCS setup in lab, you should have below information:

  • UCS manager IP address
  • UCS manager username
  • UCS manager password

call CloudStack API addUcsManager to register UCS manager. After registering, CloudStack will automatically discover blades and add them into resource pool. The resource pool is created automatically after UCS manager was added.

LIMITATIONS: in this phase, we assume user will not add/remove blades in setup after registering UCS manager into CloudStack. That means, CloudStack will not notice your changes on UCS hardware after UCS manager was registered

...

      2. list UCS profile 

you are able to retrieve pre-created UCS profile from UCS manager by calling listUcsProfile. You do this largely before associating a profile to a blade which is explained in later use case. 

NOTE: profile is synced between CloudStack and UCS manager. That means any change on profiles will be reflected next time you call listUcsProfile.

...

      3. list UCS blades

after registering UCS manager into CloudStack(use case 1), CloudStack will consult UCS manager for current blades in UCS setup. These blades would be retrieved by calling *listUcsBlade. *You do this largely before associating a

...

LIMITATIONS: in this phase, we assume user will not add/remove blades in setup after registering UCS manager into CloudStack. That means, CloudStack will not notice your changes on UCS hardware after UCS manager was registered

...

  4. associate a UCS profile to UCS blade

...

has not been finished at that time so I postponed this feature temporarily. It will come out soon.

...

  6. deleting a host that is from UCS blade

...

Architecture and Design description

Concepts:

  • A new concept of UCS manager will be added, it's a zone wide resource
    1. user can add multiple UCS managers into a zone
    2. CloudStack creates one resource pool for each UCS manager. In future release, CloudStack should be able to create multiple resource pools per UCS manager
    3. CloudStack discovers used/available UCS blades managed by UCS manager and add them into resource pool created in step2
  • On each resource pool, UI provides a button to add a blade in pool to an existing CloudStack cluster
    1. at this release, the CloudStack cluster is a CloudStack baremetal cluster
    2. when adding a blade, CloudStack provides a dropdown box showing all UCS templates in UCS manager
    3. user select a template and instruct CloudStack to realize blade from the template

Workflow:
This feature is default enabled as long as cloud-hypervisor-ucs.jar presents in classpath of CloudStack. User doesn't need to do any extra work to get the feature working,
a typical workflow is:

  1. open Zone page, click button 'Add Resource Pool'
  2.         in 'Add Resource Pool' wizzard, select 'UCS' as type
  3.         fill up information required for adding UCS manger, e.g IP address, username, password ...
  4.         click 'Add'. Cloudstack will automatically create the pool and discover the resources (UCS blades)

Implementations:
      The feature is implemented as a plugin locating in incubator-cloudstack/plugins/hypervisors/ucs

web services APIs

AddUcsManagerCmd

example: 

Implementation:

The feature is implemented as a plugin service locating in incubator-cloudstack/plugins/hypervisors/ucs. The service is self-contained with own API, it will not interfere with workflow of other CloudStack components.

web services APIs

...

addUcsManager

...

field name

description

zoneId

uuid of zone

name

a  texture name for the UCS manager. CloudStack would not use its value, it's only for user readable

url

ip address of UCS manager

username

username for UCS manager, this is gotten when you setup your UCS hardware

password

password for UCS manager, this is gotten when you setup your UCS hardware

curl "http://localhost:8096/?command=addUcsManager&zoneid=$zoneid&name=ucsmanager&url=$url&username=admin&password=C1tr1x99" curl "http://localhost:8096/?command=addUcsManager&zoneid=$zoneid&name=ucsmanager&url=$url&username=admin&password=C1tr1x99"

AssociateUcsProfileToBladeCmd

...

addUcsManager response

field name

description

id

uuid of UCS manager

name

name of UCS manager(the field specified in API)

url

ip of UCS manager

zoneId

zone uuid the UCS manager in

...

listUcsProfile

...

field name

description

ucsmanagerid

UCS manager uuid returned by addUcsManager

curl "http://localhost:8096/?command=associatesUscProfileToBladelistUcsProfile&ucsmanagerid=$ucsid&profiledn=$profileDn&bladeid=$bladeId"

ListUcsBladeCmd

...

"

...

listUcsProfile response (list response)

...

field name

description

dn

profile identity in UCS manager. please refer to cisco documents for details

...

listUcsBlade

...

field name

description

ucsmanagerid

UCS manager uuid returned by addUcsManager

curl "http://localhost:8096/?command=listUcsBlade&ucsmanagerid=$ucsid"

ListUcsManagerCmd

example:

TODO

...

listUcsBlade response (list response)

field name

description

id

UCS blade uuid in CloudStack

ucsManagerId

UCS manager uuid returned by addUcsManager

hostId

hostId the blade in baremetal cluster(maybe other hypervisor cluster in future), null means blade not belonging to any CloudStack cluster

dn

UCS blade identity in UCS manager

associatedProfileDn

UCS profile DN(see listUcsProfile response) the blade associates to. null means blade not associating to any profile

...

associatesUscProfileToBlade

...

field name

description

ucsmanagerid

UCS manager uuid returned by addUcsManager

profiledn

UCS profile DN(see listUcsProfile response)

bladeid

UCS blade uuid in CloudStack(see, listUcsBlade)

example:

curl "http://localhost:8096/?command=listUcsProfileassociatesUscProfileToBlade&ucsmanagerid=$ucsid&profiledn=$profileDn&bladeid=$bladeId"

associatesUscProfileToBlade response:

the same as listUcsBlade response, while associatedProfileDn points to profile the blade associates to

listUcsManager:

field name

description

zoneId

uuid of zone

listUcsManager response

the same as addUcsManager

UI flow

  • A new page for adding resource pool
  •         A new page for adding UCS manage in 'Add Resrouce Pool' page
  •         A new page for associating UCS profile to a selected UCS blade
  •         A new page for convert a UCS blade to Baremetal hostUI should be implemented using pluggable UI framework, for it's able to be dsiabled when needs

Appendix

Appendix A: Cisco related document, Part

Appendix B: