Error: "Error validating value 'flavor name ####': No Flavor matching {'name' 'flavor name ####'}. (HTTP 404)" while updating a Heat stack.
search cancel

Error: "Error validating value 'flavor name ####': No Flavor matching {'name' 'flavor name ####'}. (HTTP 404)" while updating a Heat stack.

book

Article ID: 445626

calendar_today

Updated On:

Products

VMware Integrated OpenStack VMware Telco Cloud Platform

Issue/Introduction

  • Unable to modify an existing Heat orchestration stack using "openstack stack update -- <stack name>" command fails immediately during the pre-flight validation.
  • Performing a scale in or scale out operation fails due to flavor mismatch HTTP 404 error. 
  • The openstack flavor show command output shows that the flavor is designated as private.

    os-flavor-access:is_public: False
    access_project_ids: <project id #########>, <project id #########>

Environment

VIO 7.3

TCP 3.0

Cause

  • When a flavor is designated as private, it is invisible to any project in openstack that is not listed in the access_project_ids array.
  • When Heat Orchestrator is executing the stack update within a specific project context but if the stack's project ID is missing from that list, Nova fails to validate the template and returns HTTP 404 Not Found error.

Resolution

Option 1:

Grant explicit access for the private flavor to the project that owns the Heat stack.  

  1. Identify the Stack's Project ID

    openstack stack show< project id ####> -c project

  2. Grant Flavor Access using the project ID retrieved from the previous step, grant it access to the flavor:

    openstack flavor set --project < project id #####> <flavor name #####>

  3. Re-execute the Stack Update

    openstack stack update --existing <stack id ############>

Option 2: 

Delete and recreate the flavor as Public as modifications to core flavor attributes after creation is restricted in Nova to prevent state inconsistencies for running instances.

  1. Delete the Private Flavor

    openstack flavor delete <flavor name>

  2. Recreate as a Public Flavor

    openstack flavor create --public --vcpus <size> --ram <size> --disk <flavor name>

  3. Confirm the os-flavor-access:is_public property now set as True.

    openstack flavor show <flavor id>

  4. Re-execute the Stack Update

    openstack stack update --existing <stack id ############>

  5. Once the stacl is recreated change flavor from public to private. 

    openstack flavor set --is-public false <flavor name #####>

  6. Map the project to the flavor

    openstack flavor set --project <project_id_or_name> <flavor name #####>

  7.  Verify the flavor

    openstack flavor show <flavor name #####>