Skip to main content

SCS Flavor Naming Standard: Implementation and Testing Notes

Introduction

The three major versions of the standard that exist so far are very similar, and deliberately so. Therefore, the procedures needed to implement or test them are very similar as well. Yet, this document will only cover v3, because v1 and v2 are already obsolete by the time of writing.

Implementation Notes

Every flavor whose name starts with SCS- must conform with the naming scheme laid down in the standard.

Operational Tooling

Syntax Check

The test suite comes with a handy command-line utility that can be used to validate flavor names, to interactively construct a flavor name via a questionnaire, and to generate prose descriptions for given flavor names. See the README for more details.

The functionality of this script is also (partially) exposed via the web page https://flavors.scs.community/.

With the OpenStack tooling (python3-openstackclient, OS_CLOUD) in place, you can call cli.py -v parse v3 $(openstack flavor list -f value -c Name) to get a report on the syntax compliance of the flavor names of the cloud environment.

Flavor Creation

The OpenStack Flavor Manager will create a whole set of flavors in one go, given a YAML description of this set.

Automated Tests

Errors

The following items MUST be detected and reported as an error:

  • any syntax error in a name starting with SCS-,
  • any mismatch between any immediately discoverable property of a flavor (currently, CPU, RAM and disk size) and the meaning of its name (which is usually a lower bound), such as the CPU generation or hypervisor.

In addition, the following items MAY be reported as an error:

  • any mismatch between any non-immediately discoverable property of flavor and the meaning of its name.

Warnings

None so far.

Implementation

The script flavor-names-openstack.py talks to the OpenStack API of the cloud specified by the OS_CLOUD environment and queries properties and checks the names for standards compliance.

Manual Tests

To be determined.