ec2-api/HACKING.rst
Ngo Quoc Cuong 90ed02d682 Delete log translation functions and add hacking rule
The i18n team has decided not to translate the logs because it seems
like it not very useful; operators prefer to have them in English so
that they can search for those strings on the internet.

Since we have removed log translations completely, we should add hacking
rule to prevent future mistakes.

Change-Id: Ia7524308ef2675f8d41ac80b37dfc7e3787efd90
2017-07-03 04:14:44 -04:00

1.3 KiB

Ec2api Style Commandments

Ec2api Specific Commandments

General

  • Do not use locals(). Example:

    LOG.debug("volume %(vol_name)s: creating size %(vol_size)sG" %
              locals()) # BAD
    
    LOG.debug("volume %(vol_name)s: creating size %(vol_size)sG" %
              {'vol_name': vol_name,
               'vol_size': vol_size}) # OKAY
  • Use 'raise' instead of 'raise e' to preserve original traceback or exception being reraised:

    except Exception as e:
        ...
        raise e  # BAD
    
    except Exception:
        ...
        raise  # OKAY

Creating Unit Tests

For every new feature, unit tests should be created that both test and (implicitly) document the usage of said feature. If submitting a patch for a bug that had no unit test, a new passing unit test should be added. If a submitted bug fix does have a unit test, be sure to add a new one that fails without the patch and passes with the patch.

For more information on creating unit tests and utilizing the testing infrastructure in OpenStack Ec2api, please read ec2api/testing/README.rst.