+
    9!jھ             !       P   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t
 ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ]P(                  tR t]P.                  ! RRR7      t]P2                  ! RRR7      ]P4                  ! RRRR7      ]P6                  ! RR. R7      ]P2                  ! RRRR7      ]P4                  ! RRRR7      ]P2                  ! RRR7      ]P2                  ! R R!R7      ]P2                  ! R"R#RR$7      ]P2                  ! R%RR&R7      ]P2                  ! R'R(R7      ]P2                  ! R)R*R7      ]P2                  ! R+RR,R7      .t]P.                  ! R-R.R7      t]P2                  ! R/R-R0R7      ]P4                  ! R1R2R3R7      ]P2                  ! R4RR5R7      ]P2                  ! R6R7R7      ]P2                  ! R8R9R7      ]P2                  ! R:R;R<R7      ]P2                  ! R=R>R?R7      ]P2                  ! R@RA. ERORERF7      ]P2                  ! RGRD. ERORHRF7      ]P2                  ! RIRB. ERORJRF7      ]P2                  ! RKRCRLR7      ]P2                  ! RMRNROR7      ]P4                  ! RPR2RQR7      ]P<                  ! RR^RSR7      ]P<                  ! RT^RUR7      ]P<                  ! RV^RWR7      ]P<                  ! RX^ RYR7      .t]P.                  ! RZR[R7      t ]P<                  ! R\^<R]R7      ]P2                  ! R^R_R7      .t!]P.                  ! R`RaR7      t"]P4                  ! RbRRcR7      ]P4                  ! RdR2ReRRfRg7      ]P4                  ! RhRRiR7      ]P4                  ! RjRRkR7      ]P6                  ! RlRm.RnR7      ]P4                  ! RoR2RpR7      ]P4                  ! RqR2RrR7      ]P4                  ! RsRRtRRuRg7      ]P4                  ! RvRRwRRxRg7      ]P4                  ! RyR2RzR7      ]P4                  ! R{R2R|R7      .t#]P.                  ! R}R~R7      t$. ]P2                  ! RRR7      N]P2                  ! RRR7      N]P2                  ! RRR7      N]P2                  ! RRR7      N]P6                  ! RRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P<                  ! R^RR7      N]P<                  ! RRRR7      N]P<                  ! R^ RR7      N]P2                  ! RRR7      N]P2                  ! R/R}RR7      N]P2                  ! R=RRR7      N]P2                  ! RRD. ERORRF7      N]P2                  ! RRRR7      N]P<                  ! R^ RR7      N]P<                  ! R^RR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P4                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P6                  ! RRRR7      N]P6                  ! RRRR7      N]P6                  ! RRRR7      N]P2                  ! RRRR7      Nt%]P.                  ! RRR7      t&]P2                  ! RRB. ERORRF7      ]P2                  ! R/RRR7      ]P2                  ! R=RRR7      ]P2                  ! RRRR7      ]P2                  ! RRRR7      .t']P.                  ! RRR7      t(. ]P4                  ! RRRR7      N]P4                  ! RR2RR7      N]P4                  ! RR2RR7      N]P4                  ! RRRR7      N]P4                  ! RR2RR7      N]P4                  ! RRRR7      N]P4                  ! RRRR7      N]P4                  ! RR2RR7      N]P4                  ! RRRR7      N]P4                  ! RRRR7      N]P4                  ! RRRR7      N]P4                  ! RR2RR7      N]P4                  ! RRRR7      N]P4                  ! RR2RR7      N]P4                  ! RR2RRRRg7      N]P4                  ! RRRR7      N]P4                  ! RR2RR7      N]P2                  ! RRRRRRg7      N]P4                  ! RR2RRRRg7      N]P4                  ! RR2RRRRg7      N]P4                  ! RR2ER R7      N]P4                  ! ERRERR7      N]P4                  ! ERR2ERR7      N]P4                  ! ERRERR7      N]P4                  ! ERRERR7      N]P4                  ! ER	RER
R7      N]P4                  ! ERR2ERRERRg7      N]P4                  ! ERR2ERR7      N]P4                  ! ERRERR7      N]P4                  ! ERRERR7      N]P6                  ! ER. EROER]PR                  ! ERRER7      .ER7      N]P4                  ! ERR2ERR7      N]P4                  ! ERR2ERR7      N]P4                  ! ERR2ERR7      N]P4                  ! ERR2ER RER!Rg7      N]P4                  ! ER"RER#R7      N]P4                  ! ER$R2ER%R7      N]P4                  ! ER&RER'R7      Nt*]P.                  ! ER(ER)R7      t+]P2                  ! R/ER(ER*R7      ]P2                  ! R=RER+R7      ]P2                  ! RRD. EROER,RF7      ]P2                  ! ER-RER.R7      ]P2                  ! ER/RD. EROER0RF7      ]P4                  ! ER1R2ER2R7      ]P2                  ! ER3ER4ER5R7      ]P<                  ! RRER6R7      ]P<                  ! R^ER7R7      ]P6                  ! ER8. EROER:R7      ]P6                  ! ER;. EROER>R7      .t,]P.                  ! ER?ER@R7      t-]P4                  ! RdRERARERBRg7      ]P4                  ! ERCR2ERDR7      ]P4                  ! ERER2ERFR7      ]P4                  ! ERGR2ERHR7      .t.]P.                  ! ERIERJR7      t/]P`                  ! ]Pb                  ! ]Pd                  ! 4       RERK7      4      t3. ]P2                  ! R/ERIERLR7      N]P2                  ! R=RERMR7      N]P2                  ! RRD. EROERNRF7      N]P2                  ! EROERPERQR7      N]P<                  ! ERR^ERSR7      N]P2                  ! ERTERUERVR7      N]P<                  ! ERW^@ERXR7      N]P4                  ! ERYR2ERZR7      N]P2                  ! ER[RER\R7      N]P2                  ! ER]ER^R7      N]P2                  ! ER_RER`R7      N]P2                  ! ERaRERbR7      N]P<                  ! RRERcR7      N]P<                  ! R^ERdR7      N]P6                  ! EReERfERg.ERhRERiRg7      N]P2                  ! ERj. EROERkERl7      N]Ph                  ! ERm]3/ ERnERo7      N]P6                  ! ERpERqERr.ERsR7      N]P4                  ! ERtR2ERuR7      N]P2                  ! ERvRERwR7      N]P2                  ! ERxRERyR7      N]P2                  ! ERzRER{R7      N]P2                  ! ER|ER}ER~R7      N]P4                  ! ERR2ERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      Nt5]P.                  ! ERERR7      t6]P4                  ! ERRERR7      ]P6                  ! RlRm.ERR7      ]P6                  ! ERRm.ERR7      ]P4                  ! ERR2ERR7      ]P4                  ! ERRERR7      ]P4                  ! ERR2ERR7      ]P4                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERERERR7      ]P4                  ! ERR2ERR7      .
t7]P.                  ! ERERR7      t8]P2                  ! ERERERR7      ]P4                  ! R1R2R3R7      .t9]P.                  ! ERERR7      t:]P4                  ! ERRERR7      ]P4                  ! ERRERR7      ]P4                  ! ERRERR7      ]P2                  ! ERERERER.ERRF7      ]P2                  ! ERERER.ERRF7      ]P<                  ! ER^ERR7      ]P<                  ! ER^xERR7      ]P<                  ! ER^<ERR7      ]P<                  ! ERRERR7      ]P2                  ! ERERERR7      ]P2                  ! ERERERR7      ]P2                  ! ERERERRER7      ]P2                  ! ERERERRER7      ]P2                  ! ERERERR7      ]P<                  ! ER^8ERR7      ]P<                  ! ER^ERR7      ]P2                  ! ERERERR7      ]P2                  ! ERRBERR7      ]P2                  ! ERERERR7      ]Pv                  ! ERERERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P4                  ! ERR2ERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      .t<]P.                  ! ERER R7      t=. ]P<                  ! R^ERR7      N]P<                  ! RRERR7      N]P2                  ! R/ERERR7      N]P2                  ! R=RERR7      N]P2                  ! RRD. EROERRF7      N]P6                  ! ERERER	.ER
R7      N]P2                  ! ERRERR7      N]P2                  ! ERRERR7      N]P2                  ! ERERERR7      N]P2                  ! ERERERR7      N]P2                  ! ERER<ERR7      N]P<                  ! ER^ERR7      N]P<                  ! ER^ERR7      N]P6                  ! ERERER.ERR7      N]P6                  ! ERERER .ER!R7      N]P2                  ! RRRR7      N]P2                  ! RRRR7      N]P2                  ! ER"ER#ER$R7      N]P2                  ! ER%ER&ER'R7      N]P2                  ! ER(ER)ER*R7      N]P2                  ! ER+RER,R7      N]P2                  ! ER-RER.R7      N]P2                  ! ER/RER0R7      N]P2                  ! ER1RER2R7      N]P2                  ! ER3RER4R7      N]P2                  ! ER5RER6R7      N]P2                  ! ER7RER8R7      N]P2                  ! ER9RER:R7      N]P2                  ! ER;RER<R7      N]P2                  ! ER=RER>R7      N]P2                  ! ER?RER@R7      N]P2                  ! ERARERBR7      N]P2                  ! ERCRERDR7      N]P2                  ! ERERERFR7      Nt>]P.                  ! ERGERHR7      t?]P4                  ! ERIR2ERJR7      ]P4                  ! ERKRERLR7      ]P4                  ! ER	RERMR7      ]P4                  ! ERNREROR7      ]P4                  ! ERPR2ERQR7      ]P4                  ! ERRR2ERSR7      ]P6                  ! RlRm.ERTR7      ]P4                  ! ERUR2ERVR7      ]P4                  ! ERWR2ERXR7      ]P4                  ! ERYRERZR7      .
t@]P.                  ! ER[ER\R7      tA]P2                  ! R/ER]ER^R7      ]P2                  ! R=RER_R7      ]P2                  ! RRD. EROER`RF7      ]P<                  ! ERaERbERcR7      ]P<                  ! ERd^EReR7      ]P2                  ! ERfERgERhR7      ]P2                  ! ERiERjERkR7      ]P2                  ! ERlERmERnR7      ]P2                  ! ERoERpERqR7      ]P<                  ! R^
ERrR7      .
tB]P.                  ! ERsERtR7      tC]P6                  ! ERuRm.ERvR7      ]P4                  ! ERwRERxR7      ]P4                  ! ERyRERzR7      ]P4                  ! ER{RER|R7      ]P2                  ! ER}ER~ERR7      .tD]P.                  ! ERERR7      tE]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! RERERR7      .tF]P.                  ! ERERR7      tG]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! RRD. EROERRF7      ]P<                  ! RRERR7      ]P<                  ! RRERR7      .tH]P.                  ! ERERR7      tI]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P<                  ! RRERR7      ]P2                  ! ERERR7      ]P2                  ! ERERR7      ]P2                  ! ERERERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P<                  ! ER^ ERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P<                  ! ER^ ERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      .tJ]P.                  ! ERERR7      tK]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P<                  ! RERERR7      ]P2                  ! ERvRERR7      ]P6                  ! ERRERR7      .tL]P.                  ! ERERR7      tM]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P<                  ! RRERR7      ]P<                  ! R^ERR7      .tN]P.                  ! ERERR7      tO]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P2                  ! ERRERR7      .tP]P.                  ! ERERR7      tQ]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      .tR]P.                  ! ERERR7      tS]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P2                  ! ERERERR7      ]P6                  ! ERRERR7      .tT]P.                  ! ERERR7      tU]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P<                  ! RRERR7      ]P<                  ! R^ERR7      .tV]P.                  ! ERERR7      tW]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROER RF7      ]P<                  ! RRERR7      ]P<                  ! R^ERR7      .tX]P.                  ! ERERR7      tY]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P2                  ! ERRER	R7      .tZ]P.                  ! ER
ERR7      t[]P2                  ! R/ER
ERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      .t\]P.                  ! ERERR7      t]]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P<                  ! RERbERR7      ]P<                  ! R^
ERR7      .t^]P.                  ! ERERR7      t_]P2                  ! R/ERERR7      ]P2                  ! R=RERR7      ]P2                  ! RRD. EROERRF7      ]P2                  ! ERRERR7      ]P2                  ! ERRERR7      .t`]P.                  ! ERER R7      ta]P2                  ! R/ERER!R7      ]P2                  ! R=RER"R7      ]P2                  ! RRD. EROER#RF7      ]P2                  ! ERvRER$R7      ]P2                  ! ER%RER&R7      ]P2                  ! ER'RER(R7      ]P2                  ! ER)RER*R7      ]P2                  ! ER+RER,R7      ]P2                  ! ER-RNER.R7      ]P2                  ! ER/RER0R7      ]P<                  ! ER1RER2R7      ]P2                  ! ER3RER4R7      ]P2                  ! ER5RER6R7      .tb]P.                  ! ER7ER8R7      tc]P2                  ! ER9ER:ER;ER<ER=7      ]P2                  ! ER>ER=ER?R7      ]P2                  ! ER@ER9ERAR7      ]P                  ! ERBERCR7      ]P2                  ! ERDERE. EROERFRF7      ]P2                  ! ERGERHERERIRF7      .te]P.                  ! ERJERKR7      tf]P4                  ! ERLRERMR7      ]P4                  ! ERNR2EROR7      ]P4                  ! ERPRERQR7      ]P4                  ! ERRRERSR7      ]P4                  ! ERTRERUR7      ]P4                  ! ERVRERWR7      .tg]P.                  ! ERXERYR7      th]P4                  ! ERTR2ERZR7      ]P4                  ! ERNR2ER[R7      ]P4                  ! ERPR2ER\R7      ]P4                  ! ERLR2ER]R7      ]P4                  ! ER^R2ER_R7      ]P4                  ! RR2ER`R7      .ti]P.                  ! ERaERbR7      tj]P2                  ! ERcRERdR7      .tk]P.                  ! EReERfR7      tl]P2                  ! ERgERhR7      .tm]P.                  ! ERiERjR7      tn]P2                  ! ERkERlERmR7      ]P2                  ! ERnERoERpR7      .to]P4                  ! ERqR2ERrR7      .tp]P.                  ! ERsERtR7      tq]P6                  ! ERRERuR7      ]P2                  ! ERvRERwR7      .tr. ]]3N]$]%3N](]*3N]]3N] ]!3N]"]#3N]+],3N]-].3N]/]53N]6]73N]8]93N]:]<3N]=]>3N]?]@3N]A]B3N]C]D3N]E]F3N]G]H3N]I]J3N]K]L3N]M]N3N]O]P3N]Q]R3N]S]T3N]U]V3N]W]X3N]Y]Z3N]_]`3N][]\3N]a]b3N]]]^3N]c]e3N]f]g3N]h]i3N]j]k3N]&]'3N]l]m3N]n]o3N]q]r3NR]p3NtsERx ttERy tu ! ERz ER{]v4      tw ! ER| ER}]v4      tx]x! 4       tERER~ ltyER tz ! ER ER]P                  4      t|ER t}R# (      N)	lockutils)cfg)types)log)
exceptions)clients)plugins)datetime)
jsonloggerc           	          V'       d   V P                  V4       V F!  pV P                  V\        VR R4      R7       K#  	  R# )nameNgroup)register_groupregister_optgetattr)conf	opt_groupoptionsopts   &&& Z/Users/user/workspace/sujinbaek/cqa-test-app/flava-qa/cqa-cloud-api-test/configs/config.pyregister_opt_groupr   '   s9    I&#WY%EF     authz*Options for authentication and credentials)r   titletest_accounts_filea  Path to the yaml file that contains the list of credentials to use for running tests. If used when running in parallel you have to make sure sufficient credentials are provided in the accounts file. For example if no tests with roles are being run it requires at least `2 * CONC` distinct accounts configured in  the `test_accounts_file`, with CONC == the number of concurrent test processes.)helpuse_dynamic_credentialsTzAllows test cases to create/destroy projects and users. This option requires that OpenStack Identity API admin credentials are known. If false, isolated test cases and parallel execution, can still be achieved configuring a list of test accounts)defaultr   tempest_rolesz/Roles to assign to all users created by tempest)r   r   default_credentials_domain_nameDefaultzeDefault domain used when getting v3 credentials. This is the name keystone uses for v2 compatibility.create_isolated_networksaC  If use_dynamic_credentials is set to True and Neutron is enabled Tempest will try to create a usable network, subnet, and router when needed for each project it creates. However in some neutron configurations, like with VLAN provider networks, this doesn't work. So if set to False the isolated networks will not be createdadmin_usernamezUsername for an administrative user. This is needed for authenticating requests made by project isolation to create users and projectsadmin_project_namezProject name to use for an administrative user. This is needed for authenticating requests made by project isolation to create users and projectsadmin_passwordzPassword to use for an administrative user. This is needed for authenticating requests made by project isolation to create users and projects)r   secretadmin_domain_namezAdmin domain name for authentication (Keystone V3). The same domain applies to user and project if admin_user_domain_name and admin_project_domain_name are not specifiedadmin_user_domain_namez}Domain name that contains the admin user (Keystone V3). May be different from admin_project_domain_name and admin_domain_nameadmin_project_domain_namezDomain name that contains the project given by admin_project_name (Keystone V3). May be different from admin_user_domain_name and admin_domain_nameadmin_systemzThe system scope on which an admin user has an admin role assignment, if any. Valid values are 'all' or None. This must be set to 'all' if using the [oslo_policy]/enforce_scope=true option for the identity service.identityzKeystone Configuration Optionscatalog_typez%Catalog type of the Identity service."disable_ssl_certificate_validationFz2Set to True if using self-signed SSL certificates.ca_certificates_filezNSpecify a CA bundle file to use in verifying a TLS (https) server certificate.uriz5Full URI of the OpenStack Identity API (Keystone), v2uri_v3z5Full URI of the OpenStack Identity API (Keystone), v3auth_versionv3zAIdentity API version to be used for authentication for API tests.region	RegionOnezThe identity region name to use. Also used as the other services' region name unless they are set explicitly. If no such region is found in the service catalog, the first found one is used.v2_admin_endpoint_typeadminURLpublicadmin	publicURLzGThe admin endpoint type to use for OpenStack Identity (Keystone) API v2)r   choicesr   v2_public_endpoint_typezHThe public endpoint type to use for OpenStack Identity (Keystone) API v2v3_endpoint_typezBThe endpoint type to use for OpenStack Identity (Keystone) API v3.
admin_rolez'Role required to administrate keystone.default_domain_idr   zID of the default domainadmin_domain_scopezTWhether keystone identity v3 policy required a domain scoped token to use admin APIsuser_lockout_failure_attemptsaZ  The number of unsuccessful login attempts the user is allowed before having the account locked. This only takes effect when identity-feature-enabled.security_compliance is set to 'True'. For more details, refer to keystone config options keystone.conf:security_compliance.lockout_failure_attempts. This feature is disabled by default in keystone.user_lockout_durationa^  The number of seconds a user account will remain locked. This only takes effect when identity-feature-enabled.security_compliance is set to 'True'. For more details, refer to keystone config options keystone.conf:security_compliance.lockout_duration. Setting this option will have no effect unless you also set identity.user_lockout_failure_attempts.user_unique_last_password_counta  The number of passwords for a user that must be unique before an old password can be reused. This only takes effect when identity-feature-enabled.security_compliance is set to 'True'. This config option corresponds to keystone.conf: security_compliance.unique_last_password_count, whose default value is 0 meaning disabling this feature. NOTE: This config option value must be same as keystone.conf: security_compliance.unique_last_password_count otherwise test might failuser_minimum_password_agea  The number of days that a password must be used before the user can change it. This only takes effect when identity-feature-enabled.security_compliance is set to 'True'. For more details, refer to keystone config options keystone.conf:security_compliance.minimum_password_age.service-clientszService Clients Optionshttp_timeoutz9Timeout in seconds to wait for the http request to return	proxy_urlzSpecify an http proxy to use.identity-feature-enabledzEnabled Identity FeaturestrustzCDoes the identity service have delegation and impersonation enabledapi_v2zIs the v2 identity API enabledzThe identity v2.0 API was removed in the Queens release. Tests that exercise the v2.0 API will be removed from tempest in the v22.0.0 release. They are kept only to test stable branches.)r   r   deprecated_for_removaldeprecated_reasonapi_v2_adminz[Is the v2 identity admin API available? This setting only applies if api_v2 is set to True.api_v3zIs the v3 identity API enabledapi_extensionsallzA list of enabled identity extensions with a special entry all which indicates every extension is enabled. Empty list indicates all extensions are disabled. To get the list of extensions run: 'openstack extension list --identity'domain_specific_driverszAre domain specific drivers enabled? This configuration value should be same as [identity]->domain_specific_drivers_enabled in keystone.conf.security_compliancezCDoes the environment have the security compliance settings enabled?project_tagsz.Is the project tags identity v3 API available?z2Project tags API is a default feature since Queensapplication_credentialsz:Does the environment have application credentials enabled?z9Application credentials is a default feature since Queensaccess_rulesz/Does the environment have access rules enabled?immutable_user_sourcezSet to True if the environment has a read-only user source. This will skip all tests that attempt to create, delete, or modify users. This should not be set to True if using dynamic credentialscomputezCompute Service Options	image_refzLValid primary image reference to be used in tests. This is a required optionimage_ref_altzValid secondary image reference to be used in tests. This is a required option, but if only one image is available duplicate the value of image_ref aboveimage_ref_securezYValid secure image reference to be used in tests. This is for testing secure server casescertified_image_refa)  Valid image reference to be used in image certificate validation tests when enabled. This image must also have the required img_signature_* properties set. Additional details available within the following Nova documentation: https://docs.openstack.org/nova/latest/user/certificate-validation.htmlcertified_image_trusted_certszkA list of trusted certificates to be used when the image certificate validation compute feature is enabled.
flavor_ref1z%Valid primary flavor to use in tests.flavor_ref_alt2z+Valid secondary flavor to be used in tests.build_intervalz,Time in seconds between build status checks.build_timeouti,  z}Timeout in seconds to wait for an instance to build. Other services that do not define build_timeout will inherit this value.
ready_waitzUAdditional wait time for clean state, when there is no OS-EXT-STS extension availablefixed_network_namea@  Name of the fixed network that is visible to all test projects. If multiple networks are available for a project, this is the network which will be used for creating servers if tempest does not create a network or a network is not specified elsewhere. It may be used for ssh validation only if floating IPs are disabled.z$Catalog type of the Compute service. zThe compute region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.endpoint_typez1The endpoint type to use for the compute service.volume_device_namevdbzExpected device name when a volume is attached to an instance. Not all hypervisors guarantee that they will respect the user defined device name, tests may fail if inappropriate device name is set.shelved_offload_timezTime in seconds before a shelved instance is eligible for removing from a host.  -1 never offload, 0 offload when shelved. This configuration value should be same as nova.conf: DEFAULT.shelved_offload_time, and some tests will run for as long as the time.min_compute_nodeszThe minimum number of compute nodes expected. This will be utilized by some multinode specific tests to ensure that requests match the expected size of the cluster you are testing with.hypervisor_typezuHypervisor type of the test target on heterogeneous compute environment. The value can be 'QEMU', 'xen' or something.min_microversionaU  Lower version of the test target microversion range. The format is 'X.Y', where 'X' and 'Y' are int values. Tempest selects tests based on the range between min_microversion and max_microversion. If both values are not specified, Tempest avoids tests which require a microversion. Valid values are string with format 'X.Y' or string 'latest'max_microversionaU  Upper version of the test target microversion range. The format is 'X.Y', where 'X' and 'Y' are int values. Tempest selects tests based on the range between min_microversion and max_microversion. If both values are not specified, Tempest avoids tests which require a microversion. Valid values are string with format 'X.Y' or string 'latest'compute_volume_common_aza$  AZ to be used for Cinder and Nova. Set this parameter when the cloud has nova.conf: cinder.cross_az_attach set to false. Which means volumes attached to an instance must be in the same availability zone in Cinder as the instance availability zone in Nova. Set the common availability zone in this config which will be used to boot an instance as well as creating a volume. NOTE: If that AZ is not in Cinder (or allow_availability_zone_fallback=False in cinder.conf), the volume create request will fail and the instance will fail the build request.validate_metadatazQIf true, validate the metadata such as CMDB and IPDB after the server is created.flavor_name_prefixz?A prefix in the flavor name that indicates the official flavor.rich_vm_name_prefixzGA prefix in the rich vm flavor name that indicates the official flavor.lista_server_group_idz0lista server group id for testing flava instancelista_secret_server_group_idz7lista server group id for testing flava secret instancelista_public_server_group_idz7lista server group id for testing flava public instance'lista_internal_use_only_server_group_idzBlista server group id for testing flava internal_use_only instancelista_topsecret_server_group_idz;lista server group id for testing flava top secret instancepm_network_namezPM network name for testing pmpm_network_idzPM network id for testing pmpm_flavor_idzPM flavor id for testing pmpm_image_listzPM image id list for testing pmpm_host_listzPM host id list for testing pmpm_vulcan_profilez PM vulcan profile for testing pmssh_key_pathz2SSH Connection key path for testing ssh connection	placementzPlacement Service Optionsz3The endpoint type to use for the placement service.z&Catalog type of the Placement service.zThe placement region name to use. If empty, the value of [identity]/region is used instead. If no such region is found in the service catalog, the first region found is used.zLower version of the test target microversion range. The format is 'X.Y', where 'X' and 'Y' are int values. Valid values are string with format 'X.Y' or string 'latest'zUpper version of the test target microversion range. The format is 'X.Y', where 'X' and 'Y' are int values. Valid values are string with format 'X.Y' or string 'latest'compute-feature-enabledz Enabled Compute Service Featuresdisk_configz If false, skip disk config testshostname_fqdn_sanitizationzIf false, skip fqdn instance sanitization tests. Nova started sanitizing the instance name by replacing the '.' with '-' to comply with fqdn hostname. Nova changed that in Wallaby cycle, if your cloud is older than wallaby then you can keep/make it False.change_passwordz>Does the test environment support changing the admin password?console_outputzKDoes the test environment support obtaining instance serial console output?resizezDoes the test environment support resizing? When you enable this feature, 'flavor_ref_alt' should be set and it should refer to a larger flavor than 'flavor_ref' one.pausez*Does the test environment support pausing?shelvez6Does the test environment support shelving/unshelving?shelve_migratezEDoes the test environment support cold migration of unshelved server?suspendz1Does the test environment support suspend/resume?cold_migrationz1Does the test environment support cold migration?live_migrationz1Does the test environment support live migration?live_migrate_back_and_forthznDoes the test environment support live migrating VM back and forth between different versions of nova-compute?metadata_servicezbDoes the test environment support metadata service? Ignored unless validation.run_validation=true."block_migration_for_live_migrationz>Does the test environment use block devices for live migrationblock_migrate_cinder_iscsizDoes the test environment support block migration with Cinder iSCSI volumes. Note: libvirt >= 1.2.17 is required to support this if using the libvirt compute driver.zThis option duplicates the more generic [compute-feature-enabled]/block_migration _for_live_migration now that MIN_LIBVIRT_VERSION is >= 1.2.17 on all branches from stable/rocky and will be removed in a future release.can_migrate_between_any_hostszDoes the test environment support migrating between any hosts? In environments with non-homogeneous compute nodes you can set this to False so that it will select destination host for migrating automaticallyvnc_consolezUEnable VNC console. This configuration value should be same as nova.conf: vnc.enabledvnc_server_header
WebSockifyzEExpected VNC server name (WebSockify, nginx, etc) in response header.zThis option will be ignored because the usage of different response header fields to accomplish the same goal (in accordance with RFC7231 S6.2.2) makes it obsolete.spice_consolezYEnable Spice console. This configuration value should be same as nova.conf: spice.enabledz_This config option is not being used in Tempest, we can add it back when adding the test cases.rdp_consolezUEnable RDP console. This configuration value should be same as nova.conf: rdp.enabledserial_consolezgEnable serial console. This configuration value should be the same as nova.conf: serial_console.enabledrescuez7Does the test environment support instance rescue mode?stable_rescuezEDoes the test environment support stable device instance rescue mode?enable_instance_passwordzEnables returning of the instance password by the relevant server API calls such as create, rebuild or rescue. This configuration value should be same as nova.conf: DEFAULT.enable_instance_passwordinterface_attachzGDoes the test environment support dynamic network interface attachment?snapshotzPDoes the test environment support creating snapshot images of running instances?	nova_certz5Does the test environment have the nova cert running?zdOn Nova side, the nova-cert service is deprecated and the service will be removed as early as Ocata.personalityz4Does the test environment support server personalityattach_encrypted_volumezDoes the test environment support attaching an encrypted volume to a running server instance? This may depend on the combination of compute_driver in nova and the volume_driver(s) in cinder.config_drivez1Enable special configuration drive with metadata.scheduler_enabled_filtersa  A list of enabled filters that Nova will accept as hints to the scheduler when creating a server. If the default value is overridden in nova.conf by the test environment (which means that a different set of filters is enabled than what is included in Nova by default), then this option must be configured to contain the same filters that Nova uses in the test environment. A special entry 'all' indicates all filters that are included with Nova are enabled. If using 'all', be sure to enable all filters in nova.conf, as tests can fail in unpredictable ways if Nova's and Tempest's enabled filters don't match. Empty list indicates all filters are disabled. The full list of enabled filters is in nova.conf: filter_scheduler.enabled_filters.scheduler_available_filtersr   )r   r   deprecated_optsswap_volumez]Does the test environment support in-place swapping of volumes attached to a server instance?volume_backed_live_migrationz?Does the test environment support volume-backed live migration?volume_multiattachzDoes the test environment support attaching a volume to more than one instance? This depends on hypervisor and volume backend/type and compute API version 2.60.xenapi_apiszDoes the test environment support the XenAPI-specific APIs: os-agents, writeable server metadata and the resetNetwork server action? These were removed in Victoria alongside the XenAPI virt driver.zOn Nova side, XenAPI virt driver and the APIs that only worked with that driver have been removed and there's nothing to test after Ussuri.ide_buszUDoes the test environment support attaching devices using an IDE bus to the instance?unified_limitsz1Does the test environment support unified limits?force_deletez/Does the test environment support force delete?imagezImage Service Optionsz"Catalog type of the Image service.zThe image region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z/The endpoint type to use for the image service.alternate_image_endpointz0Alternate endpoint name for cross-worker testingalternate_image_endpoint_typez9The endpoint type to use for the alternate image service.image_caching_enabledzFlag to enable if caching is enabled by image service, operator should set this parameter to Trueif 'image_cache_dir' is set in glance-api.conf
http_imagezEhttp://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-uec.tar.gzzhttp accessible imagez<Timeout in seconds to wait for an image to become available.z6Time in seconds between image operation status checks.container_formatsbarez6A list of image's container formats users can specify.disk_formatsrawqcow2z1A list of image's disk formats users can specify.image-feature-enabledzEnabled image service featureszIs the v2 image API enabledzGlance v1 APIs are deprecated and v2 APIs are current one. In future, Tempest will test v2 APIs only so this config option will be removed.import_imagezIs image import feature enabledos_glance_reservedz4Should we check that os_glance namespace is reservedmanage_locationszIs show_multiple_locations enabled in glance. Note that at least one http store must be enabled as well, because we use that location scheme to test.networkzNetwork Service Options)boundsz$Catalog type of the Neutron service.zThe network region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z1The endpoint type to use for the network service.project_network_cidrz10.100.0.0/16z4The cidr block to allocate project ipv4 subnets fromproject_network_mask_bitsz&The mask bits for project ipv4 subnetsproject_network_v6_cidrz2001:db8::/48z4The cidr block to allocate project ipv6 subnets fromproject_network_v6_mask_bitsz&The mask bits for project ipv6 subnetsproject_networks_reachablezWhether project networks can be reached directly from the test client. This must be set to True when the 'fixed' connect_method is selected.public_network_idz<Id of the public network that provides external connectivityfloating_network_namezUDefault floating network name. Used to allocate floating IPs when neutron is enabled.	subnet_idzzSubnet id of subnet which is used for allocation of floating IPs. Specify when two or more subnets are present in network.public_router_idzId of the public router that provides external connectivity. This should only be used when Neutron's 'allow_overlapping_ips' is set to 'False' in neutron.conf. usually not needed past 'Grizzly' releasez=Timeout in seconds to wait for network operation to complete.z8Time in seconds between network operation status checks.dns_serversz8.8.8.8z8.8.4.4z<List of dns servers which should be used for subnet creationzDThis config option is no longer used anywhere, so it can be removed.port_vnic_typezvnic_type to use when launching instances with pre-configured ports. Supported ports are: ['normal', 'direct', 'macvtap', 'direct-physical', 'baremetal', 'virtio-forwarder'])r;   r   port_profilezGport profile to use when launching instances with pre-configured ports.)typer   r   default_networkz
1.0.0.0/16z
2.0.0.0/16z)List of ip pools for subnetpools creationshared_physical_networkzDThe environment does not support network separation between tenants.vpc_network_idzVId of the vpc network that predefined for the test.It should not be attached to a VPC.vpc_network_namez9The name of the vpc network that predefined for the test vpc_subnet_idz2The id of the subnet that predefined for the test vpc_network_typeDevzjThe network segment type for VPC network creation. Valid values: Dev, Tool, Prod, Pluto, TopSecret, Secretuse_predefined_networkzZThe boolean value which the indicates if the API test code will use predefined VPC networktest_conn_vpc_network_1_idz1A network_id for testing vpc network connectivitytest_conn_vpc_network_1_namez3A network_name for testing vpc network connectivitytest_conn_vpc_network_2_idtest_conn_vpc_network_2_nametest_negative_vpc_network_idz7A network_id for testing vpc network negative test casenon_vpc_test_network_1z*A network_id for testing non-vpc test casenon_vpc_test_network_2test_qa_acl_network_1z&A network_id for testing ACL test casetest_qa_acl_network_2test_qa_acl_network_3test_eip_network_idz'A network_id for testing the externalIPtest_ssh_check_network_namez3A network name for testing SSH validation test casetest_ssh_check_network_idz1A network id for testing SSH validation test casetest_pluto_network_idz0A network id for testing Pluto network test casetest_secret_network_idz1A network id for testing Secret network test casetest_top_secret_network_idz5A network id for testing Top Secret network test casetest_tool_network_idz/A network id for testing tool network test casetest_prod_network_idz/A network id for testing prod network test casenetwork-feature-enabledz Enabled network service featuresipv6z"Allow the execution of IPv6 tests.zA list of enabled network extensions with a special entry all which indicates every extension is enabled. Empty list indicates all extensions are disabled. To get the list of extensions run: 'openstack extension list --network'available_featureszA list of available network features with a special entry all that indicates every feature is available. Empty list indicates all features are disabled. This list can contain features that are not discoverable through the API.ipv6_subnet_attributeszrAllow the execution of IPv6 subnet tests that use the extended IPv6 attributes ipv6_ra_mode and ipv6_address_mode.port_admin_state_changez<Does the test environment support changing port admin state?port_securityz0Does the test environment support port security?floating_ipsz/Does the test environment support floating_ips?qos_placement_physnetzEName of the physnet for placement based minimum bandwidth allocation.!provider_net_base_segmentation_id3000zcBase segmentation ID to create provider networks. This value will be increased in case of conflict.qos_min_bw_and_ppszXDoes the test environment have minimum bandwidth and packet rate inventories configured?	dashboardzDashboard optionsdashboard_urlzhttp://localhost/z Where the dashboard can be found
validationzSSH Validation optionsrun_validationzEnable ssh on created servers and creation of additional validation resources to enable remote access. In case the guest does not support ssh set it to falsesecurity_groupzEnable/disable security groups.security_group_rulesz$Enable/disable security group rules.connect_methodfloatingfixedzDefault IP type used for validation: -fixed: uses the first IP belonging to the fixed network -floating: creates and uses a floating IPauth_methodkeypairzDefault authentication method to the instance. Only ssh via keypair is supported for now. Additional methods will be handled in a separate spec.ip_version_for_sshz'Default IP version for ssh connections.ping_timeoutz/Timeout in seconds to wait for ping to succeed.connect_timeoutzCTimeout in seconds to wait for the TCP connection to be successful.ssh_timeoutz.Timeout in seconds to wait for the ssh banner.image_ssh_userrootz.User name used to authenticate to an instance.image_alt_ssh_userz2User name used to authenticate to an alt instance.image_ssh_passwordpasswordz-Password used to authenticate to an instance.)r   r   r'   image_alt_ssh_passwordz1Password used to authenticate to an alt instance.ssh_shell_prologuez1set -eu -o pipefail; PATH=$$PATH:/sbin:/usr/sbin;zIShell fragments to use before executing a command when sshing to a guest.	ping_sizezDThe packet size for ping packets originating from remote linux hosts
ping_countz>The number of ping packets originating from remote linux hostsfloating_ip_rangez10.0.0.0/29zUnallocated floating IP range, which will be used to test the floating IP bulk feature for CRUD operation. This block must not overlap an existing floating IP pool.network_for_sshzENetwork used for SSH connections. Ignored if connect_method=floating.ssh_key_typeecdsazBType of key to use for ssh connections. Valid types are rsa, ecdsaallowed_network_downtimeg      @zAllowed VM network connection downtime during live migration, in seconds. When the measured downtime exceeds this value, an exception is raised.test_node_url_on_non_vpcz1URL of VQA test node connected to non-VPC networkremote_server_on_non_vpcz7Remote server id of server connected to non-VPC network#vpc_network_connectivity_validationzGIndicates if the VPC based network connectivity test should be executed,test_conn_client_with_vpc_network_1_hostnamez0A hostname for the client with the vpc_network_1&test_conn_client_with_vpc_network_1_ipz*A ip for the client with the vpc_network_1-test_conn_remote_with_vpc_network_1_server_idz6A server_id for a remote server with the vpc_network_1-test_conn_remote_with_vpc_network_2_server_idz6A server_id for a remote server with the vpc_network_2test_external_server_ipz(External server IP for the net-conn testvolumezBlock Storage Optionsz3Time in seconds between volume availability checks.z<Timeout in seconds to wait for a volume to become available.volumev3z"Catalog type of the Volume ServicezThe volume region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z0The endpoint type to use for the volume service.backend_names	BACKEND_1	BACKEND_2z\A list of backend names separated by comma. The backend name must be declared in cinder.confvolume_typez-Volume type to be used while creating volume.volume_type_multiattachz?Multiattach volume type used while creating multiattach volume.storage_protocoliSCSIz5Backend protocol to target when creating volume typesvendor_namezOpen Sourcez3Backend vendor to target when creating volume typesdisk_formatz1Disk format to use when copying a volume to imagevolume_sizez7Default size in GB for volumes created by volumes testsvolume_size_extendzSize in GB a volume is extended by - if a test extends a volume, the size of the new volume will be volume_size + volume_size_extend.manage_volume_refzsource-namez	volume-%szA reference to existing volume for volume manage. It contains two elements, the first is ref type (like 'source-name', 'source-id', etc), the second is volume name template used in storage backendmanage_snapshot_refz_snapshot-%szA reference to existing snapshot for snapshot manage. It contains two elements, the first is ref type (like 'source-name', 'source-id', etc), the second is snapshot name template used in storage backendvol_test_az_1ztokyo-1z(Main Available zone name for volume testvol_test_az_2ztokyo-2z*Second Available zone name for volume testvol_test_az_3ztokyo-3z)Third Available zone name for volume testvolume_type_ssdz$SSD Volume type name for volume testvolume_type_nvmez%NVME volume type name for volume testvolume_type_hddz$HDD volume type name for volume testvolume_type_prod_hddz)HDD volume type name for prod volume testvolume_type_dev_hddz(HDD volume type name for dev volume testvolume_type_tool_hddz)HDD volume type name for tool volume testvolume_type_pluto_hddz*HDD volume type name for pluto volume testvolume_type_secret_ssdz-Defined test server for secret volume testingvolume_type_topsecret_ssdz1Defined test server for top secret volume testingvolume_type_prod_nvmez*NVME volume type name for prod volume testvolume_type_dev_nvmez)NVME volume type name for dev volume testvolume_type_tool_nvmez*NVME volume type name for tool volume testvolume_type_pluto_nvmez+NVME volume type name for pluto volume testtest_endurance_volume_server_idz&Defined test server for volume testingvolume-feature-enabledzEnabled Cinder Featuresmulti_backendz4Runs Cinder multi-backend test (requires 2 backends)backupzRuns Cinder volumes backup testz Runs Cinder volume snapshot testclonezRuns Cinder volume clone testmanage_snapshotz!Runs Cinder manage snapshot testsmanage_volumezRuns Cinder manage volume testszA list of enabled volume extensions with a special entry all which indicates every extension is enabled. Empty list indicates all extensions are disabledextend_attached_volumea   Does the cloud support extending the size of a volume which is currently attached to a server instance? This depends on the 3.42 volume API microversion and the 2.51 compute API microversion. Also, not all volume or compute backends support this operation. extend_attached_encrypted_volumea  Does the cloud support extending the size of an encrypted volume  which is currently attached to a server instance? This depends on the 3.42 volume API microversion and the 2.51 compute API microversion. Also, not all volume or compute backends support this operation.extend_volume_with_snapshotzuDoes the cloud support extending the size of a volume which has snapshot? Some drivers do not support this operation.object-storagezObject Storage Service Optionszobject-storez+Catalog type of the Object-Storage service.zThe object-storage region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z6The endpoint type to use for the object-store service.container_sync_timeoutiX  z[Number of seconds to time on waiting for a container to container synchronization complete.container_sync_intervalzgNumber of seconds to wait while looping to check the status of a container to container synchronizationoperator_rolememberzJRole to add to users created for swift tests to enable creating containersreseller_admin_roleResellerAdminz!User role that has reseller admin
realm_namerealm1zName of sync realm. A sync realm is a set of clusters that have agreed to allow container syncing with each other. Set the same realm name as Swift's container-sync-realms.confcluster_namename1zOne name of cluster which is set in the realm whose name is set in 'realm_name' item in this file. Set the same cluster name as Swift's container-sync-realms.confz1Timeout in seconds to wait for objects to create.object-storage-feature-enabledzEnabled object-storage featuresdiscoverable_apiszA list of the enabled optional discoverable apis. A single entry, all, indicates that all of these features are expected to be enabledcontainer_syncz(Execute (old style) container-sync testsobject_versioningzExecute object-versioning testsdiscoverabilityzExecute discoverability teststempurl_digest_hashlibsha256zHashing algorithm to use for the temp_url tests. Needs to be supported both by Swift and the hashlib module, for example sha1 or sha256loadbalancerzLB Service OptionszCatalog type of the LB ServicezThe LB region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z,The endpoint type to use for the lb service.test_server_hostzServer host name for testing lbtls_cipher_profilez5TLS cipher profile for testing lb with https protocoltls_server_certificatez9TLS server certificate for testing lb with https protocoll4lb_deploy_timeout_seczThe deployment timeout for L4LBl7lb_deploy_timeout_seczThe deployment timeout for L7LBtls_server_certificate_cnamez"The certificate cname for each envlb_network_idzBNetwork ID for LoadBalancer tests (same as network.vpc_network_id)z$385f41de-3c54-4399-9532-8a0a244d6007z0Server group ID for LoadBalancer backend serversvpczVPC Service OptionskloudnfvzCatalog type of the VPC ServicezThe VPC region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.
acl_egressz'The egress ACL for the routing gateway.acl_ingressz(The ingress ACL for the routing gateway.z-The endpoint type to use for the VPC service.z.The build interval for the Flava VPC resourcesfaaszFaaS OptionsfunctionzCatalog type of the FaaSzThe FaaS region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z&The endpoint type to use for the FaaS.z>Timeout in seconds to wait for a function to become available.template_refzGValid template reference to be used in tests. This is a required optionemployee_idz@Valid employee id to be used in tests. This is a required optiongithub_hostzgit.linecorp.comz0Host for GitHub Enterprise to be used in tests. github_ownerz*Owner name on GitHub to be used in tests. github_repo_namez/Repository name on GitHub to be used in tests. github_repo_idz-Repository id on GitHub to be used in tests. 
github_shaz9Commit SHA in the GitHub repository to be used in tests. github_function_handlerzDFunction handler name in the GitHub repository to be used in tests. 	image_urlz)Container image URL to be used in tests. allowed_network_idzBID of the VPC network that allows all access for function testing.denied_network_idzBID of the VPC network that denies all access for function testing.secret_groupz:Secret group used in tests integrated with Secret Manager.secret_namez9Secret name used in tests integrated with Secret Manager.secret_versionz<Secret version used in tests integrated with Secret Manager.secret_valuez:Secret value used in tests integrated with Secret Manager.service_account_namez>Service account name to test attaching an IAM service account.pulsar_topic_namespacez1Pre-created Pulsar namespace to be used in tests.pulsar_topic_namezuPre-created Pulsar topic name to be used in tests. The topic should exist under the specified pulsar_topic_namespace.kaaszKaaS Optionszkubernetes-enginezCatalog type of the KaaSzThe KaaS region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z&The endpoint type to use for the KaaS.i  z=Timeout in seconds to wait for a cluster to become available.z6Id of the vpc network to be used in the control plane.availability_zone_listzOA list of availability zones in which nodes in the node pool will be scheduled.langfusezLangfuse Optionsz:Catalog type of the Langfuse service (non-catalog service)zXThe Langfuse region name to use. If empty, the value of identity.region is used instead.z2The endpoint type to use for the Langfuse service.z?Timeout in seconds to wait for Langfuse operations to complete.z9Time in seconds between Langfuse operation status checks.egressproxyzEgressProxy OptionszCatalog type of the EgressProxyzThe EgressProxy region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z-The endpoint type to use for the EgressProxy.allowed_source_network_idz*Id of the vpc network to be used in tests.container_registryzContainer Registry Optionszcontainer-registryz&Catalog type of the Container registryzThe Container Registry region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z4The endpoint type to use for the Container Registry.flava_pulsarzMQ for pulsar Optionsz!Catalog type of the MQ for pulsarzThe MQ for pulsar region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z/The endpoint type to use for the MQ for pulsar.tenantzflava-api-testz5The tenant name to use for testing the MQ for pulsar.replica_cluster_listz;The test replica cluster list to use for the MQ for pulsar.dnszDNS Service OptionszCatalog type of the DNS ServicezThe DNS region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z-The endpoint type to use for the DNS service.z.Timeout in seconds to wait for DNS operations.z4Time in seconds between DNS operation status checks.gslbzGSLB Service Optionsz Catalog type of the GSLB ServicezThe GSLB region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z.The endpoint type to use for the GSLB service.z6Timeout in seconds to wait for GSLB instance to build.z:Time in seconds between GSLB instance build status checks.
servicemapzServiceMap OptionszCatalog type of the ServiceMapzThe ServiceMap region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z,The endpoint type to use for the ServiceMap.
project_idzxThe project ID to use for ServiceMap tests. This is the existing project in ServiceMap that the test user has access to.api_gatewayzAPI Gateway OptionszCatalog type of the API GatewayzThe API Gateway region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z-The endpoint type to use for the API Gateway.cloud_blueprintzCloud Blueprint Optionsz#Catalog type of the Cloud BlueprintzThe Cloud Blueprint region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z1The endpoint type to use for the Cloud Blueprint.zFTimeout in seconds to wait for Cloud Blueprint operations to complete.z@Time in seconds between Cloud Blueprint operation status checks.rediszRedis OptionszCatalog type of the RediszThe Redis region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z'The endpoint type to use for the Redis.
network_idzNetwork ID for Redis instancesvpc_idzVPC ID for Redis instancesrolloutszRollouts OptionszCatalog type of the RolloutszThe Rollouts region name to use. If empty, the value of identity.region is used instead. If no such region is found in the service catalog, the first found one is used.z*The endpoint type to use for the Rollouts.z8VPC network ID for ALB traffic routing in rollout tests.endurance_primary_server_idzVPre-provisioned primary backend server ID used by the rollout 'server' endurance test.endurance_canary_server_idz`Pre-provisioned canary backend server ID used by the rollout 'server' endurance test (optional).endurance_fke_cluster_idzHPre-provisioned FKE cluster ID used by the rollout 'fke' endurance test.endurance_fke_ingress_namez+Pre-provisioned FKE ingress reference name.endurance_fke_ingress_namespacez0Pre-provisioned FKE ingress reference namespace.endurance_fke_primary_servicez)Pre-provisioned FKE primary service name.endurance_fke_primary_portz)Pre-provisioned FKE primary service port.endurance_fke_canary_servicezQPre-provisioned FKE canary service name used by the rollout 'fke' endurance test.endurance_fke_rollout_namezRollout name to create/delete in the FKE endurance test. Must match the value of the 'rolloutmanager.lycorp.co.jp/rollout' label on the target ingress -- the rollout manager enforces this equality before driving the rollout to Ready.scenariozScenario Test Optionsimg_fileqcow2_img_filezA/opt/stack/new/devstack/files/images/cirros-0.3.1-x86_64-disk.imgzImage full path.)deprecated_namer   r   img_disk_formatzImage disk formatimg_container_formatzImage container formatimg_propertieszAGlance image properties. Use for custom images which require themdhcp_clientudhcpczDHCP client used by images to renew DCHP lease. If left empty, update operation will be skipped. Supported clients: "udhcpc", "dhclient", "dhcpcd"protocolicmpzAThe protocol used in security groups tests to check connectivity.service_availablezAvailable OpenStack Servicescinderz1Whether or not cinder is expected to be availableneutronz2Whether or not neutron is expected to be availableglancez1Whether or not glance is expected to be availableswiftz0Whether or not swift is expected to be availablenovaz/Whether or not nova is expected to be availablehorizonz2Whether or not horizon is expected to be availableenforce_scopez%OpenStack Services with enforce scopezDoes the compute service API policies enforce scope and new defaults? This configuration value should be enabled when nova.conf: [oslo_policy]. enforce_new_defaults and nova.conf: [oslo_policy]. enforce_scope options are enabled in nova conf.zDoes the network service API policies enforce scope and new defaults? This configuration value should be enabled when neutron.conf: [oslo_policy]. enforce_new_defaults and neutron.conf: [oslo_policy]. enforce_scope options are enabled in neutron conf.zDoes the Image service API policies enforce scope and new defaults? This configuration value should be enabled when glance.conf: [oslo_policy]. enforce_new_defaults and glance.conf: [oslo_policy]. enforce_scope options are enabled in glance conf.zDoes the Volume service API policies enforce scope and new defaults? This configuration value should be enabled when cinder.conf: [oslo_policy]. enforce_new_defaults and cinder.conf: [oslo_policy]. enforce_scope options are enabled in cinder conf.keystonezDoes the Identity service API policies enforce scope and new defaults? This configuration value should be enabled when keystone.conf: [oslo_policy]. enforce_new_defaults and keystone.conf: [oslo_policy]. enforce_scope options are enabled in keystone conf.zDoes the placement service API policies enforce scope and new defaults? This configuration value should be enabled when placement.conf: [oslo_policy]. enforce_new_defaults and nova.conf: [oslo_policy]. enforce_scope options are enabled in placement conf.debugzDebug Systemtrace_requestsa  A regex to determine which requests should be traced.

This is a regex to match the caller for rest client requests to be able to
selectively trace calls out of specific classes and methods. It largely
exists for test development, and is not expected to be used in a real deploy
of tempest. This will be matched against the discovered ClassName:method
in the test environment.

Expected values for this field are:

 * ClassName:test_method_name - traces one test_method
 * ClassName:setUp(Class) - traces specific setup functions
 * ClassName:tearDown(Class) - traces specific teardown functions
 * ClassName:_run_cleanups - traces the cleanup functions

If nothing is specified, this feature is not enabled. To trace everything
specify .* as the regex.
profilerzOpenStack ProfilerkeyzThe secret key to enable OpenStack Profiler. The value should match the one configured in OpenStack services under `[profiler]/hmac_keys` property. The default empty value keeps profiling disabledlogstashzLogstash Optionshost	localhostz6The host of the logstash server (default is localhost)port5000z1The port of the logstash server (default is 5000)pause_teardownzWhether to pause a test in global teardown.

The best use case is investigating used resources of one test.
A test can be run as follows:
 $ stestr run --pdb TEST_ID
or
 $ python -m testtools.run TEST_IDcommonzCommon Options for testzAvailable zone list for testtarget_cloudz)The Cloud service name of the test targetc                      \         P                  ! 4       p \         F  w  r\        \        W4       K  	  V P                  \        4       R # N)r	   TempestTestPluginManager_optsr   _CONFregister_plugin_opts)ext_pluginsgos      r   register_optsr  ?  s6    224K5!'  $$U+r   c                     \         P                  ! 4       p \         UUu. uF  w  rW3NK
  	  pppVP                  V P	                  4       4       V# u uppi )zReturn a list of oslo.config options available.

The purpose of this is to allow tools like the Oslo sample config file
generator to discover the options exposed to users.
)r	   r  r  extendget_plugin_options_list)r  r  r  opt_lists       r   	list_optsr  H  sK     224K $))5415H)OOK779:O *s   Ac                      a a ] tR tRt oRt]P                  P                  ]P                  ! 4       R4      t	Rt
R tR tR	V 3R lltRtVtV ;t# )
TempestConfigPrivateiX  z-Provides OpenStack configuration information.etcztempest.confc                "    \        \        V4      # r  )r   r  )selfattrs   &&r   __getattr__ TempestConfigPrivate.__getattr___  s    ud##r   c                L   \         P                  V n        \         P                  V n        \         R ,          V n        \         P                  V n        \         R,          V n        \         R,          V n        \         P                  V n        \         R,          V n        \         P                  V n	        \         R,          V n
        \         P                  V n        \         P                  V n        \         P                  V n        \         R,          V n        \         R,          V n        \         R,          V n        \         R,          V n        \         R,          V n        \         R	,          V n        \         R
,          V n        \         R,          V n        \         P,                  V n        \         P.                  V n        \         P0                  V n        \         P2                  V n        \         P4                  V n        \6        P8                  ! R4       \:        P<                  ! 4       pVP?                  4        Fi  w  r#\A        V\B        PD                  4      '       d   VPF                  pVPH                  pMTpVPK                  RR4      p\M        W\         V,          4       Kk  	  R# )r   rE   rH   r   r   r0  r9  rD  rK  rS  ru  rz  ztempest.log-_N)'r  r   rW   compute_feature_enabledr,   service_clientsidentity_feature_enabledr   image_feature_enabledr   network_feature_enabledr   r   r  volume_feature_enabledobject_storageobject_storage_feature_enabledlbrK  rS  ru  rz  r  r  r  r  r  loggingtempest_set_log_filer	   r  r  
isinstancer   OptGroupr   destreplacesetattr)r  r  r   r  
group_name
group_dests   &     r   
_set_attrsTempestConfigPrivate._set_attrsc  s    JJ	}}',-F'G$$%67(-.H(I%[[
%*+B%C"}}',-F'G$**ll&+,D&E##$45.3,/.+'!.1<&M	7^
!&!8!8"00[[
$$]3
 668#;;=HE%.."ZZ
"ZZ
 #
"]]34
 DeJ&78 >r   c                  < \         \        V `  4        . pRV P                  ,           pV'       d   TpMs\        P
                  P                  RV P                  4      p\        P
                  P                  RV P                  4      p\        P                  P                  Wg4      p\        P                  P                  V4      '       g   TpV'       d   VP                  V4       \        P                  ! \        4       \        P                  P                  V4      '       d   \        . RVR7       M\        . RR7       R\        P                  P                  V4      ,          p\!        \        R4      '       d   \        P"                  f1   \        P                  P                  V4      '       d   V\        n        \        P$                  ! \        R
4       \        P&                  ! R4      p	V	P)                  RV4       \+        4        V P-                  4        V'       d'   \        P/                  V	\        P0                  4       R	# R	# )z?Initialize a configuration from a conf directory and conf file.z/etc/tempest/TEMPEST_CONFIG_DIRTEMPEST_CONFIGtempest)projectdefault_config_files)r  z%s/logging.conflog_config_appendNzcloud-api-testzUsing tempest config file %s)superr  __init__DEFAULT_CONFIG_FILEosenvirongetDEFAULT_CONFIG_DIRpathjoinisfileappendr  register_optionsr  dirnamehasattrr  setup	getLoggerinfor  r  log_opt_valuesDEBUG)r  
parse_confconfig_pathconfig_filesfailsafe_pathr  conf_dir	conf_filelogging_cfg_pathLOG	__class__s   &&&       r   r  TempestConfigPrivate.__init__  s   "D24'$*B*BBD zz~~&:&*&=&=?H

'7'+'?'?AI 77<<4Dww~~d## D %  '77>>$"ilK"i(,rwwt/DD 344$$,/00&6E# 	e-.	*/6  gmm4 r   )r   rW   r  r   r  r  ru  r,   r  r   r  r  rK  r  r   r  r  r  rz  r  r  r  r   r  r  rS  )TN)__name__
__module____qualname____firstlineno____doc__r  r  r  getcwdr  r  r  r  r  __static_attributes____classdictcell____classcell__r  __classdict__s   @@r   r  r  X  s>     7biik59($39j,5 ,5r   r  c                   r   a  ] tR tRt o RtRtR]P                  3R]P                  3.t	R t
R tR tRtV tR# )	TempestConfigProxyi  Nzparamiko.transportz(requests.packages.urllib3.connectionpoolc                    V P                    F4  w  r\        P                  ! V4      P                  P	                  V4       K6  	  R# )zTweak the oslo log defaults.N)_extra_log_defaultsr  r  loggersetLevel)r  r   levels   &  r   _fix_log_levels"TempestConfigProxy._fix_log_levels  s3    33KDd#**33E: 4r   c                   V P                   '       g   V P                  4        \        P                  P	                  \
        P                  ! 4       R 4      p\        P                  ! V4       \        V P                  R7      V n         \        4        \        P                  ! 4       P                  4        \        4        \!        V P                   V4      # )ztempest-lock)r  )_configr  r  r  r  tempfile
gettempdirr   set_defaultsr  _path!_register_tempest_service_clientsr	   r  _register_service_clients_add_logstash_handlerr   )r  r  lock_dirs   && r   r  TempestConfigProxy.__getattr__  s    |||  "ww||H$7$7$9>JH""8,/DJJGDL ./ ,,.HHJ "#t||T**r   c                    Wn         \        P                  P                  V4      \        P                  R &   \        P                  P                  V4      \        P                  R&   R# )r  r  N)r  r  r  r  r  basename)r  r  s   &&r   set_config_path"TempestConfigProxy.set_config_path  sC    
 ,.77??4+@

'(')ww'7'7'=

#$r   )r  r  )r  r  r  r  r  r  r  INFOWARNr  r  r  r  r  r   )r  s   @r   r  r    sE     GE 
w||,	3W\\B
;
+6> >r   r  c           
     X   R\         P                  P                  R\         P                  P                  R\         P                  P
                  R\         P                  P                  R\         P                  P                  /pV f   V# V P                  RR4      p \        \         V4      pT R	8w  d   \        TR
4      TR
&   R FP  p\        Y44      '       d   \        Y44      '       g   \        \         P                   T4      Y&   KC  \        Y44      Y&   KR  	  \        TR4      '       d   \        TR4      '       g   \         P                  P"                  TR&   M\        TR4      TR&   \        TR4      TR&   T#   \        P                   d    \        P                  ! T R7      hi ; i)a  Return a dict with the parameters to init service clients

Extracts from CONF the settings specific to the service_client_name and
api_version, and formats them as dict ready to be passed to the service
clients __init__:

    * `region` (default to identity)
    * `catalog_type`
    * `endpoint_type`
    * `build_timeout` (object-storage and identity default to compute)
    * `build_interval` (object-storage and identity default to compute)

The following common settings are always returned, even if
`service_client_name` is None:

    * `disable_ssl_certificate_validation`
    * `ca_certs`
    * `trace_requests`
    * `http_timeout`
    * `proxy_url`

The dict returned by this does not fit a few service clients:

    * The endpoint type is not returned for identity client, since it takes
      three different values for v2 admin, v2 public and v3
    * The `ServersClient` from compute accepts an optional
      `enable_instance_password` parameter, which is not returned.
    * The `VolumesClient` for both v1 and v2 volume accept an optional
      `default_volume_size` parameter, which is not returned.
    * The `TokenClient` and `V3TokenClient` have a very different
      interface, only auth_url is needed for them.

:param service_client_name: str Name of the service. Supported values are
    'compute', 'identity', 'image', 'network', 'object-storage', 'volume'
:return: dictionary of __init__ parameters for the service clients
:rtype: dict
r.   ca_certsr  rF   rG   r  r  )servicesr,   rf   r4   r-   service)rb   ra   )CONFr,   r.   r/   r  r  r  rF   rG   r  r   r   NoSuchOptErrorr   UnknownServiceClientr  rW   r4   )service_client_name_parametersconfig_groupr   settings   &    r   service_client_configr)    sn   N 	-MM<<DMM66$**33,,99T))33K " '..sC8LL$- j('.w'HO$ 7w((0I0I#*4<<#AK #*7#<K 	 7 7H%%WWh-G-G $ 4 4H ' :H$Wn=K	3  L--7JKKLs   E< <-F)c                     \         P                  ! 4       p \         P                  ! 4       p. pV  F  pW,          pVP                  R 4      ^ ,          p\	        R	RVP                  R R4      P                  RR4      RVRVP                  RVP                  /\        V4      B pVP                  V4       K  	  VP                  RV4       R# )
.r   r  r  service_versionmodule_pathclient_names__tempest__N )r   tempest_modulesClientsRegistrysplitdictr  r  __all__r)  r  register_service_client)r  registryall_clientsservice_clientmoduleconfigsservice_client_datas          r   r  r  Q	  s     --/O&&(HK) 0 &&s+A." 
''S199#sC
*
 
  	

 $G,
 	./ * $$]K@r   c                   2   a a ] tR tRt oV 3R ltRtVtV ;t# )CustomJsonFormatterik	  c                  < \         \        V `  WV4       \        P                  P                  R 4      VR&   VP                  R4      '       g2   \        P                  ! VP                  4      P                  4       VR&   VP                  R4      '       d   VR,          P                  4       VR&   R# VP                  VR&   R# )TEST_ENVenv	timestampr
  N)r  r>  
add_fieldsr  r  r  r
   fromtimestampcreated	isoformatupper	levelname)r  
log_recordrecordmessage_dictr  s   &&&&r   rC  CustomJsonFormatter.add_fieldsm	  s    !43JUJJNN:6
5~~k**&.&<&<V^^&L&V&V&XJ{#>>'""",W"5";";"=Jw"("2"2Jwr   r0  )r  r  r  r  rC  r  r   r  r  s   @@r   r>  r>  k	  s     3 3r   r>  c                 (   \         P                  ! \        P                   P                  \        P                   P                  R7      p V P                  \        4       4       \        P                  ! 4       pVP                  P                  V 4       R# )zX
This function adds a Logstash handler with a custom JSON formatter to the root logger.
)r  r  N)r  TCPLogstashHandlerr"  r  r  setFormatterr>  r  r  r  
addHandler)logstash_handlerroot_loggers     r   r  r  {	  se    
  228J8JQUQ^Q^QcQcd!!"5"78 ##%K!!"23r   )r8   r9   internalr:   r7   internalURL)r8   r9   rS  )AvailabilityZoneFilterComputeFilterComputeCapabilitiesFilterImagePropertiesFilterServerGroupAntiAffinityFilterServerGroupAffinityFilter)amiariakir   ovfova)
r[  r\  r]  vhdvmdkr   r   vdiisovhdx)Nnormaldirectmacvtapzdirect-physical	baremetalzvirtio-forwarder)r  dhclientdhcpcdre   )r  tcpudpr  )~r  r  r  oslo_concurrencyr   oslo_configr   r   oslo_logr   r  libr   lib.servicesr   r;  r	   r
   pythonjsonloggerr   r"  r  r   r  
auth_groupStrOptBoolOptListOpt	AuthGroupidentity_groupIntOptIdentityGroupservice_clients_groupServiceClientsGroupidentity_feature_groupIdentityFeatureGroupcompute_groupComputeGroupplacement_groupPlacementGroupcompute_features_groupDeprecatedOptComputeFeaturesGroupimage_group
ImageGroupimage_feature_groupImageFeaturesGroupnetwork_groupDictListStringProfileTypeOptNetworkGroupnetwork_feature_groupNetworkFeaturesGroupdashboard_groupDashboardGroupvalidation_groupFloatOptValidationGroupvolume_groupVolumeGroupvolume_feature_groupVolumeFeaturesGroupobject_storage_groupObjectStoreGroupobject_storage_feature_groupObjectStoreFeaturesGrouploadbalancer_groupLoadBalancerGroup	vpc_groupVpcGroup
faas_group	FaasGroup
kaas_group	KaasGrouplangfuse_groupLangfuseGroupegress_proxy_groupEgressProxyGroupcontainer_registry_groupContainerRegistryGroupflava_pulsar_groupFlavaPulsarGroup	dns_groupDnsGroup
gslb_group	GslbGroupservicemap_groupServiceMapGroupapi_gateway_groupApiGatewayGroupcloud_blueprint_groupCloudBlueprintGroupredis_group
RedisGrouprollouts_groupRolloutsGroupscenario_groupDictOptScenarioGroupservice_available_groupServiceAvailableGroupenforce_scope_groupEnforceScopeGroupdebug_group
DebugGroupprofiler_groupProfilerGroup	log_groupLogGroupDefaultGroupcommon_groupCommonGroupr  r  r  objectr  r  r)  r  JsonFormatterr>  r  r0  r   r   <module>r     s93    
   &   #      ' 	G \\v LN
 JJ#;< KK)DE KKF JJ0 KL KK*NO JJ01 JJ#=> JJ= 	
 JJ" () JJ'() JJ*CD JJ~()wB	H :$DF JJ~!;= KK4IK JJ%67 JJuKMJJxKMJJ~%& JJx"/0 JJ'!@(	) JJ("@(	) JJ!@)	* JJ|=? JJ" .0 KK$?@
 JJ.GH JJ&B	C JJ0	67 JJ*NOk]~ *;+DF  JJ~ JJ{35  +E,GI  KK-. KK5'+#:	; KK>? KK57 KK => KK))* KK%)* KKE'+#1	2 KK) '+#9: KKFH KK'<=q> @ )#<>dJJ{01d JJGH	d JJ!>?d JJ$78d$ KK/ !%d, JJ|;=-d2 JJAC3d8 JJBD9d> JJ*+?dH JJ|89IdP JJ#HIQd^ JJ~ :<_dd JJxedp JJ"@G	Iqdz JJ#@A{dF JJ%CDGdT JJ"-/Ud` JJ !"adj JJ!;<kd| JJ!;<}dN JJ)
34Odh KK#45idp JJ#qdx JJ$yd@ JJ&FHAdF JJ-MOGdL JJ-MOMdR JJ8XZSdX JJ0QSYd^ JJ 46_dd JJ24edj JJ~13kdp KK57qdv KK46wd| KK#79}dB JJ~HJCdL ,,K%@B JJ6IK JJ~"<> JJx  JJ!  JJ! )8 +D,NP RKK79R KK,EFR KK!!"R" KK ./#R* KK+R6 KKAC7R< KKMO=RB KK ;<CRJ KK	HJKRP KK HJQRV KK HJWR\ KK-%&]Rf KK"FGgRn KK4!"oRv KK,L (,#ABwRN KK/DEORZ KK9:[Rb JJ"#*&*"KLcRt KK;'+#;<uRD KK9'+#;<ERT KK 9:UR^ KK_Rf KK-.gRn KK*CDoRz KK"-.{RB KK
45CRJ KKL'+#7	8KRX KKKMYR^ KK)78_Rj KKHJkRp KK+69 "%!2!213"5 !6)7qR^ KK>?_Rf KK."#gRn KK$IJoRx KK$
 (,#78yRP KK	9:QRX KK HJYR^ KKFH_R h ll!8: JJ~8: JJx JJ"@E	G
 JJ)FH JJ."@ 	" KK'GI
 JJ|8+- JJ() JJ KK#C*+ KK/*+[2
h ll(?)IK  KK2'+#5	6 KK68 KK$KM KK"KM- : )#<> jjELLN4@A]JJ~ :<] JJx	] JJ"@G	I] JJ%&JL]$ JJ*<>%]* JJ(&JL+]0 JJ-<>1]6 KK,;<7]@ JJ"#$A]H JJ&34I]N JJ{*+O]X JJ!NOY]d JJ !e]l JJm]t KK"I.,'+#IJu]B JJ978C]R GGN/0S]\ KK!%|412]]d KK)()e]l JJ:;m]t JJ!OQu]z JJHJ{]@ JJ!NOA]H KK(qsI]N JJ+GIO]T JJ-IKU]Z JJ+GI[]` JJ-IKa]f JJ-MOg]l JJ'@Bm]r JJ'@Bs]x JJ&<>y]~ JJ&<>]D JJ&<>E]J JJ$=?K]P JJ,IKQ]V JJ*GIW]\ JJ&FH]]b JJ'GIc]h JJ+KMi]n JJ%EGo]t JJ%EGu]| *C+MO  KK9; KK <= KK$56 KK(. KK))* KKGI KKFH JJ&,- JJ2FHI KK$e;<Q+ Z ,,K%8: JJ*68 KK4IK	 <<\&>@  KK !" KK 68 KK&;= JJ!,@A JJ} !{MN JJ#=? JJ~EG JJ "# JJ}DF JJDF JJ#HJ JJ#!C JJ'!G JJ#J./ JJ{./ JJ|"# JJ"$ JJ /0 JJ~12 LL+-. JJ)GI JJ)MO KK5^` JJ=FH JJ7@B JJ>LN JJ>LN JJ(>@Sl\ ||"9;CJJIKC JJ!"	C JJ~!8:C JJxC" JJ"@F	H#C, KK$k2HI-C4 JJ}CE5C: JJ(;CB JJ!KMCCH JJ}$IKICN JJ}GIOCT JJ}MOUCZ JJ#89[Cd KK#&4DEeCp KK%&7FGqC| JJ!;>}CN JJ!;>OC` JJ >BaCf JJ @DgCl JJ ?CmCr JJ :>sCx JJ!;?yC~ JJ :>CD JJ%?CECJ JJ$>BKCP JJ%?CQCV JJ&@DWC\ JJ'CG]Cb JJ*GKcCh JJ&@DiCn JJ%?CoCt JJ&@DuCz JJ'AE{C@ JJ0<@ACJ ||)A*CE  KKKM KK68 KK
79 KK46 KK!8: KK68 KK HI
 KK(@A KK2"# KK-"#O- ^ ||)9*JL  JJ~%AC JJx#$ JJ"@L	N
 JJ'=> JJ(IJ JJ12 JJ$&79 JJ|12 JJ~NO
 JJGIS, \  #||	)
+ - 
 KK#;<
 KK ?A KK#68 KK!46 JJ'AB . \\~(<>  JJ~%46 JJx JJ"@B	D
 JJ!57 JJ#KM JJ'OQ JJ(57 JJ(57 JJ-8: JJXZ JJ&=FHI' T LLe46	 JJ~!57 JJx JJ|=? JJ}>@ JJ"@C	E
 JJDF JJDF1< \\v^<
 JJ~!.0 JJx JJ"@<	>
 JJ() JJ~01 JJ}01 JJ})FH JJ~@B JJ!EG JJCE JJ|OQ JJ(Z\ JJ{?A JJ#XZ JJ"XZ JJ~PR JJ}OQ JJRT JJ~PR JJ%TV JJ'GI JJ"YZMJ	Z \\v^<
 JJ~*.0 JJx JJ"@<	>
 JJSU JJLN KK(45+	8 :5GH JJ~!PR JJx:; JJ"@H	J
 JJ ! JJ#0 \\}<QR  JJ~$57 JJx JJ"@C	E
 JJ*@B * <<-AIef  JJ~+<> JJx JJ"@J	L $ \\~=TU  JJ~%79 JJx JJ"@E	G
 JJx'KM KK&QS% 0 LLe+@A	 JJ~57 JJx JJ"@C	E
 JJDF JJJL%0 \\v-CD
 JJ~68 JJx JJ"@D	F
 JJLN JJPR%	0 <<\9MN  JJ~#46 JJx JJ"@B	D
 JJ|*+. LLm;PQ  JJ~$57 JJx JJ"@C	E$ *;C\]  JJ~(9; JJx JJ"@G	I
 JJ ! JJ' 4 ll? JJ~/1 JJx JJ"@=	?
 JJ|46 JJx02%
2 :5GH JJ~!24 JJx JJ"@@	B
 JJNP JJ,78 JJ+BC JJ),- JJ+AC JJ0 FH JJ.?A JJ+?A JJ-45 JJ+DEo>@ :5LM JJz+;7&( JJ ') JJ%,. KK  (R SJJ};HI JJz-$%'4 ,,,?-KM  KKHJ KK	IK KKHJ KKGI KKFH KK	IK! * ll*9: 
 KKGH KK	JK KKIJ KKIJ KK
KL KKLMI+ Z ll!/1 JJ
. :$8: JJu56 LLj13	 JJv"LN JJvGI	 KK &'
 ||";= KK(37 JJ~?A	)	)	L!)	 12)	 ]#	)	
 /0)	 12)	 *)	 ,-)	 L!)	 01)	 n%)	 ')	 ;)	 ./)	 +,)	  "#;<!)	" *+#)	$ %)	& ')	( ))	* ]#+)	, )*-)	. 56/)	0 )*1)	2 3)	4 5)	6 '7)	8 *9)	: (;)	< ]#=)	> /0?)	@ ]#A)	B 34C)	D +,E)	F *G)	H n%I)	J ]#K)	L M)	N ;O)	P 
<Q)	X, l56 l5^/> />d RjA43*22 3 
4r   