Skip to content

Support the Placement API #526

Description

@jaypipes

The Placement API was introduced to OpenStack in the Newton release.

It allows administrative users to request and modify data about resource providers, inventory records, allocation records and grouping of providers (aggregates).

While the Placement API is currently a directory within the nova source tree, it is an entirely independent service from the OpenStack Compute API. It has its own service endpoint in the Keystone catalog and has its own REST API microversion history.

It would be great to add support to gophercloud for the placement API service.

I'm eager to contribute this if cores give me the go-ahead.

Activity

  1. jtopjian commented on Sep 24, 2017

    @jtopjian
    Contributor

    I'm eager to contribute this if cores give me the go-ahead.

    Sure - go for it :)

    For entire feature sets such as this, we like to break things up into per-method PRs. Picking something arbitrary from the link you gave, each of these would be a separate PR.

    You can bundle them up into a single Issue like how it was done in #287.

    Usually the first PR, GET, will be the largest since it'll include a lot of boilerplate code and the resource's resulting structure. You can "chain" branches/PRs together since the next branch/PR will naturally use code from the previous. If you submit PRs this way, prefix the title such as:

    Placement: GET traits
    [pending #above] Placement: PUT traits
    

    This can cause a rebase chain if a parent PR needed changes. It's admittedly a nuisance, but it does help keep things small.

    Let me know if you have any questions or need any help.

  2. jtopjian commented on Sep 29, 2017

    @jtopjian
    Contributor

    @jaypipes Quick question: You mentioned the word "aggregates". Does the Placement API modify the functionality of the os-aggregates API calls?

    I was just about to open an issue to add os-aggregates functionality and wanted to know if there will be some overlap. No doubt os-aggregates will still be applicable for pre-placement environments, but future behavior will be good to note.

  3. jaypipes commented on Sep 29, 2017

    @jaypipes
    Author

    @jtopjian Placement aggregates and Nova host aggregates are different concepts, actually. Both concepts will remain in each API for the foreseeable future. If you'd like to create an issue about os-aggregates and assign to me, go for it. :)

  4. jaypipes commented on Sep 29, 2017

    @jaypipes
    Author

    @jtopjian Some of the differences between Nova host aggregates and Placement aggregates include:

    1. Nova host aggregates can have metadata associated with them (this is actually how availability zones are "implemented" in Nova). Placement aggregates are ONLY groupings of resource providers [1], nothing more.

    2. A Nova host aggregate is actually NOT associated with a compute node (the thing that provides compute resources). Nova host aggregates are actually tied to a nova-compute service daemon. The significance of this is that Nova host aggregates are not applicable to Ironic compute nodes, because a single nova-compute service daemon controls many Ironic compute nodes. It's not possible to say "Ironic compute node A and B are associated with Nova host aggregate X if Ironic compute node A and B are associated with different nova-compute service daemons.

    [1] A resource provider can be a compute node, a volume group, an IP pool, pretty much anything.

  5. jtopjian commented on Sep 29, 2017

    @jtopjian
    Contributor

    @jaypipes Got it. Thank you!

  6. ildarsv commented on Dec 22, 2017

    @ildarsv
    Contributor

    @jaypipes @jtopjian Hello! Do you know, does anybody work on Nova host aggregates stuff? If not, let me do it, I'll create a separate issue.

  7. jaypipes commented on Dec 22, 2017

    @jaypipes
    Author
  8. ildarsv commented on Dec 31, 2017

    @ildarsv
    Contributor

    Hi, np, os-aggregates support was merged!
    #691

  9. dkt26111 commented on Jan 10, 2020

    @dkt26111
    Contributor

    Since there hasn't been any activity on this for 2 years, I will create a PR to add the first placement APIs.

  10. pierreprinetti commented on Oct 29, 2021

    @pierreprinetti
    Member

    @dkt26111
    Thank you for your work on the placement API.

    Do you think there is more work required to complete a basic coverage of the API?

  11. 75 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions