Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
dmapi / usr / lib / python2.7 / dist-packages / dmapi / tests / functional / api / client.pyc
Size: Mime:
ó

[dc@sÓddlmZddlmZddlZddlmZeje	ƒZ
defd„ƒYZde
fd„ƒYZd	efd
„ƒYZdefd„ƒYZd
efd„ƒYZdefd„ƒYZdS(iÿÿÿÿ(tlog(t	jsonutilsN(tparsetAPIResponsecBs8eZdZdZdZiZiZd„Zd„ZRS(s3Decoded API Response

    This provides a decoded version of the Requests response which
    include a json decoded body, far more convenient for testing that
    returned structures are correct, or using parts of returned
    structures in tests.


    This class is a simple wrapper around dictionaries for API
    responses in tests. It includes extra attributes so that they can
    be inspected in addition to the attributes.

    All json responses from Nova APIs are dictionary compatible, or
    blank, so other possible base classes are not needed.

    iÈtcCs¢tt|ƒjƒ|j|_|j|_|jr’|jjdƒ}d|krd|jƒ|_	q’d|kr|j
|_	q’td|ƒ‚n|j|_dS(suConstruct an API response from a Requests response

        :param response: a ``requests`` library response
        scontent-typesapplication/jsons	text/htmls$Unexpected response content-type: %sN(tsuperRt__init__tstatus_codetstatustcontenttheaderstgettjsontbodyttextt
ValueError(tselftresponsetcontent_type((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyR's	
cCsd|j|jfS(Ns"<Response body:%r, status_code:%s>(R
R(R((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt__str__=s(	t__name__t
__module__t__doc__RR	R
R
RR(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyR
s	tOpenStackApiExceptioncBseZddd„ZRS(cCsl||_|sd}n|rR|j}|j}di|d6|d6|d6}ntt|ƒj|ƒdS(NsUnspecified errors4%(message)s
Status Code: %(_status)s
Body: %(_body)stmessaget_statust_body(RRR	RRR(RRRRR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRDs				N(RRtNoneR(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRCst#OpenStackApiAuthenticationExceptioncBseZddd„ZRS(cCs,|sd}ntt|ƒj||ƒdS(NsAuthentication error(RRR(RRR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRVs	N(RRRR(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRUst"OpenStackApiAuthorizationExceptioncBseZddd„ZRS(cCs,|sd}ntt|ƒj||ƒdS(NsAuthorization error(RRR(RRR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyR^s	N(RRRR(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyR]stOpenStackApiNotFoundExceptioncBseZddd„ZRS(cCs,|sd}ntt|ƒj||ƒdS(NsItem not found(RRR(RRR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRfs	N(RRRR(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRestTestOpenStackClientcBsueZdZdBd„ZddBdBd„Zdd„ZdBed„Zd„Z	d„Z
d	„Zd
„Zd„Z
d„ZedBd
„Zd„Zd„Zd„Zd„Zd„Zd„Zed„Zd„Zd„Zd„Zd„Zed„Zd„Zd„Zd„Zd„Z ed„Z!d„Z"d „Z#d!„Z$ed"„Z%d#„Z&d$„Z'd%„Z(d&„Z)d'„Z*d(„Z+d)„Z,d*„Z-d+„Z.dBd,„Z/d-„Z0d.„Z1d/„Z2d0„Z3d1„Z4d2„Z5d3„Z6d4„Z7d5„Z8d6„Z9d7„Z:d8„Z;dBdBd9„Z<d:„Z=d;„Z>d<„Z?d=„Z@d>„ZAd?„ZBd@„ZCdA„ZDRS(Cs¤Simple OpenStack API Client.

    This is a really basic OpenStack API client that is under our control,
    so we can make changes / insert hooks for testing

    cCsett|ƒjƒd|_||_||_||_|dkrOd|_n	||_d|_	dS(Nt 6f70656e737461636b20342065766572(
RRRRtauth_resultt	auth_usertauth_keytauth_urit
project_idtmicroversion(RR"R#R$R%((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRts					tGETcCsBidd6}|j|piƒtj||d|d|ƒ}|S(Nsapplication/jsonsContent-TypetdataR
(tupdatetrequeststrequest(RturltmethodR
R
t_headersR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyR+s
icCsÊ|jr|jS|j}i|jd6|jd6|jd6}|j|d|ƒ}|j}tjdi|d6|d6ƒ|dkr·|d	kr¥|j	d
|dƒSt
d|ƒ‚n|j|_|jS(
NsX-Auth-Users
X-Auth-KeysX-Auth-Project-IdR
s$%(auth_uri)s => code %(http_status)sR$thttp_statusi‘itretry_countiR(R!R$R"R#R%R+RtLOGtdebugt
_authenticateRR
(RR0R$R
RR/((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyR3ˆs"		


			cKsl|jƒ}|d}|r>dj|jddƒd ƒ}nd||f}|jdiƒ}|d|d<d	|ks†d
|kr•tdƒ‚n*|jr¿|j|d	<d|j|d
<n|j||}	|	j}
tj	d
i|d6|
d6ƒ|rh|
|krh|
dkr(t
d|	ƒ‚qe|
dkrFtd|	ƒ‚qetdd|	j
d|	ƒ‚qhn|	S(Nsx-server-management-urlt/iiÿÿÿÿs%s/%sR
sx-auth-tokensX-Auth-TokensX-OpenStack-Nova-API-VersionsOpenStack-API-VersionsDMicroversion should be set via microversion attribute in API client.s
compute %ss(%(relative_uri)s => code %(http_status)strelative_uriR/i”Ri‘RsUnexpected status code: %s(R3tjointsplitt
setdefaultt	ExceptionR&R+RR1R2RRRR(RR5tcheck_response_statust
strip_versiontkwargsR!tbase_uritfull_uriR
RR/((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytapi_request¤s6
"	
		
cCs7td|jƒ}|jr3tj|jƒ|_n|S(NR(RRR	RtloadsR
(RRtresp((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt_decode_jsonÍs	cKs)|jddgƒt|j||ƒS(NR:iÈ(R8RR?(RR5R<((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytapi_getÓscKstd|d<|rB|jdiƒ}d|d<tj|ƒ|d<n|jddd	d
dgƒt|j||ƒS(NtPOSTR-R
sapplication/jsonsContent-TypeR
R:iÈiÉiÊiÌ(R8RtdumpsRR?(RR5R
R<R
((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytapi_post×s

cKsqd|d<|rB|jdiƒ}d|d<tj|ƒ|d<n|jddd	d
gƒt|j||ƒS(NtPUTR-R
sapplication/jsonsContent-TypeR
R:iÈiÊiÌ(R8RRERR?(RR5R
R<R
((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytapi_putás

cKs9d|d<|jddddgƒt|j||ƒS(NtDELETER-R:iÈiÊiÌ(R8RR?(RR5R<((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
api_deleteës
cCs|jd|ƒjdS(Ns/servers/%stserver(RCR
(Rt	server_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
get_serverÿscCsŽ|rdnd}|dk	rzi}x*t|jƒƒD]\}}|||<q7W|rzdtj|ƒ}||7}qzn|j|ƒjdS(Ns/servers/details/serverss?%stservers(RtlisttitemsRt	urlencodeRCR
(Rtdetailtsearch_optstrel_urltqparamstopttvaltquery_string((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_serversscCs1|jd|ƒj}d|kr%|S|dSdS(Ns/serverstreservation_idRK(RFR
(RRKR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_serverscCs|jd||ƒjS(Ns/servers/%s(RHR
(RRLRK((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
put_serverscKs|jd|||jS(Ns/servers/%s/action(RFR
(RRLR(R<((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_server_actionscCs|jd|ƒS(Ns/servers/%s(RJ(RRL((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
delete_serverscCs2i|d6|d6|d6}|jd|ƒjdS(Nthosttbinarytforced_downs/os-services/force-downtservice(RHR
(RR_R`Ratreq((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytforce_down_services

cCs|jd|ƒjdS(Ns
/images/%stimage(RCR
(Rtimage_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt	get_image'scCs&|rdnd}|j|ƒjdS(Ns/images/details/imagestimages(RCR
(RRRRT((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
get_images*scCs|jd|ƒjdS(Ns/imagesRe(RFR
(RRe((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
post_image.scCs|jd|ƒS(Ns
/images/%s(RJ(RRf((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_image1scCs.ii||6d6}|jd||f|ƒS(s9Creates or updates a given image metadata key/value pair.tmetas/images/%s/metadata/%s(RH(RRftkeytvaluetreq_body((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytput_image_meta_key4s
cCs|jd|ƒjdS(Ns/flavors/%stflavor(RCR
(Rt	flavor_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
get_flavor>scCs&|rdnd}|j|ƒjdS(Ns/flavors/details/flavorstflavors(RCR
(RRRRT((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_flavorsAscCs|jd|ƒjdS(Ns/flavorsRq(RFR
(RRq((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_flavorEscCs|jd|ƒS(Ns/flavors/%s(RJ(RRr((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
delete_flavorHscCs|jd||ƒS(Ns/flavors/%s/os-extra_specs(RF(RRrtspec((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_extra_specKs	cCs|jd|ƒjdS(Ns/os-volumes/%stvolume(RCR
(Rt	volume_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
get_volumeOscCs&|rdnd}|j|ƒjdS(Ns/os-volumes/details/os-volumestvolumes(RCR
(RRRRT((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_volumesRscCs|jd|ƒjdS(Ns/os-volumesRz(RFR
(RRz((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_volumeVscCs|jd|ƒS(Ns/os-volumes/%s(RJ(RR{((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
delete_volumeYscCs|jd|ƒjdS(Ns/os-snapshots/%stsnapshot(RCR
(Rtsnap_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_snapshot\scCs&|rdnd}|j|ƒjdS(Ns/os-snapshots/details
/os-snapshotst	snapshots(RCR
(RRRRT((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
get_snapshots_scCs|jd|ƒjdS(Ns
/os-snapshotsR(RFR
(RR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
post_snapshotcscCs|jd|ƒS(Ns/os-snapshots/%s(RJ(RR‚((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_snapshotfscCs|jd||fƒjdS(Ns$/servers/%s/os-volume_attachments/%stvolumeAttachment(RCR
(RRLt
attachment_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_server_volumeis	cCs|jd|ƒjdS(Ns!/servers/%s/os-volume_attachmentstvolumeAttachments(RCR
(RRL((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_server_volumesns	cCs|jd||ƒjdS(Ns!/servers/%s/os-volume_attachmentsRˆ(RFR
(RRLtvolume_attachment((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_server_volumers	
cCs(|jd||fii|d6d6ƒS(Ns$/servers/%s/os-volume_attachments/%stvolumeIdRˆ(RH(RRLR‰R{((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytput_server_volumews	
cCs|jd||fƒS(Ns$/servers/%s/os-volume_attachments/%s(RJ(RRLR‰((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_server_volume|s	cCs9iid6}|dj|ƒ|jd||ƒjdS(Ntmetadatas/servers/%s/metadata(R)RFR
(RRLR’t	post_body((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_server_metadata€s

cCs|jd||fƒS(Ns/servers/%s/metadata/%s(RJ(RRLRm((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_server_metadata†s	cCs2|r|jdƒjdS|jdƒjdSdS(Ns/os-server-groups?all_projectst
server_groupss/os-server-groups(RCR
(Rtall_projects((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_server_groupsŠscCs|jd|ƒjdS(Ns/os-server-groups/%stserver_group(RCR
(Rtgroup_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_server_group‘s	cCs$|jdi|d6ƒ}|jdS(Ns/os-server-groupsR™(RFR
(RtgroupR((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_server_groups•scCs|jd|ƒdS(Ns/os-server-groups/%s(RJ(RRš((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_server_group™scCs|jd|ƒjdS(Ns/servers/%s/os-instance-actionstinstanceActions(RCR
(RRL((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_instance_actionsœs	cCs|jd|ƒjdS(Ns/os-aggregatest	aggregate(RFR
(RR¡((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_aggregate scCs|jd|ƒdS(Ns/os-aggregates/%s(RJ(Rtaggregate_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_aggregate£scCs"|jd|ii|d6d6ƒS(Ns/os-aggregates/%s/actionR_tadd_host(RF(RR£R_((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytadd_host_to_aggregate¦s
cCs|jdƒjdS(Ns/limitstlimits(RCR
(R((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt
get_limitsªscCs"|jd|i|d6ƒjdS(srPut (or replace) a list of tags on the given server.

        Returns the list of tags from the response.
        s/servers/%s/tagsttags(RHR
(RRLR©((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytput_server_tags­s
cCs|jd|ƒjdS(Ns/servers/%s/os-interfacetinterfaceAttachments(RCR
(RRL((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_port_interfacesµs	cCs|jd||ƒS(Ns/servers/%s/os-interface(RF(RRLtpost((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytattach_interface¹scCs|jd||fƒS(Ns/servers/%s/os-interface/%s(RJ(RRLtport_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdetach_interface¼s	cCsHd}|r|d|7}n|r4|d|7}n|j|ƒjdS(Ns
/os-services?s
binary=%s&shost=%s&tservices(RCR
(RR`R_R,((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_servicesÀscCs|jd||ƒjdS(Ns/os-services/%sRb(RHR
(Rt
service_idRc((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytput_serviceÈscCs|jd|ƒjdS(Ns/os-keypairstkeypair(RFR
(RRµ((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_keypairÌscCs|jd|ƒdS(Ns/os-keypairs/%s(RJ(Rtkeypair_name((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_keypairÏscCs|jd||ƒjdS(Ns/os-aggregates/%s/actionR¡(RFR
(RR£R
((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytpost_aggregate_actionÒscCs|jd|ƒjdS(Ns/servers/%s/migrationst
migrations(RCR
(RRL((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_active_migrationsÖs	cCs|jdƒjdS(Ns
os-migrationsRº(RCR
(R((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytget_migrationsÚscCs!|jd||fidd6ƒS(Ns /servers/%s/migrations/%s/actiontforce_complete(RFR(RRLtmigration_id((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytforce_complete_migrationÝs
cCs|jd||fƒS(Ns/servers/%s/migrations/%s(RJ(RRLR¾((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pytdelete_migrationâsN(ERRRRRR+R3tFalseR?RBRCRFRHRJRMtTrueRYR[R\R]R^RdRgRiRjRkRpRsRuRvRwRyR|R~RR€RƒR…R†R‡RŠRŒRŽRR‘R”R•R˜R›RRžR R¢R¤R¦R¨RªR¬R®R°R²R´R¶R¸R¹R»R¼R¿RÀ(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyRls‚(			
	
											
																																				(toslo_logRtloggingtoslo_serializationRR*tsix.moves.urllibRt	getLoggerRR1tobjectRR9RRRRR(((sE/usr/lib/python2.7/dist-packages/dmapi/tests/functional/api/client.pyt<module>s6