annotate configmix/extras/aws.py @ 767:538a579cf6fe

Drop a note to use the new endpoint URL for the availability-zone
author Franz Glasner <f.glasner@feldmann-mg.com>
date Mon, 19 Feb 2024 15:58:27 +0100
parents a90273abc8a4
children 665cc514a0cc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 # :-
593
f454889e41fa Adjust copyright year (the end) to 2022
Franz Glasner <fzglas.hg@dom66.de>
parents: 296
diff changeset
3 # :Copyright: (c) 2015-2022, Franz Glasner. All rights reserved.
296
eed16a1ec8f3 Use SPDX license identifiers (either full or short) all over the package
Franz Glasner <fzglas.hg@dom66.de>
parents: 284
diff changeset
4 # :License: BSD-3-Clause. See LICENSE.txt for details.
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5 # :-
284
4aaf74858d07 Some links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws module
Franz Glasner <fzglas.hg@dom66.de>
parents: 283
diff changeset
6 """AWS namespace implementation.
4aaf74858d07 Some links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws module
Franz Glasner <fzglas.hg@dom66.de>
parents: 283
diff changeset
7
4aaf74858d07 Some links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws module
Franz Glasner <fzglas.hg@dom66.de>
parents: 283
diff changeset
8 .. see:: - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
4aaf74858d07 Some links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws module
Franz Glasner <fzglas.hg@dom66.de>
parents: 283
diff changeset
9 - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
4aaf74858d07 Some links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws moduleSome links to AWS docu into the aws module
Franz Glasner <fzglas.hg@dom66.de>
parents: 283
diff changeset
10 - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html
766
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
11 . IMDSv2: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13 """
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 from __future__ import division, absolute_import, print_function
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18 __all__ = []
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21 import requests
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22 import requests.exceptions
283
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
23 import requests.adapters
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
24 import urllib3
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27 _MARKER = object()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
28
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29
766
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
30 #
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
31 # These are for IMDSv1 (Instance Metadata Service)
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
32 #
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
33 # There is a new session-oriented IMDSv2 implementation using
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
34 # IPv4 (169.254.169.254) and IPv6 ([fd00:ec2::254]).
a90273abc8a4 Make any notes regarding IMDSv2 and IPv4/IPv6
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 593
diff changeset
35 #
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 URL_META_INSTANCEID = "http://169.254.169.254/latest/meta-data/instance-id"
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37 URL_META_REGION = "http://169.254.169.254/latest/meta-data/placement/region"
767
538a579cf6fe Drop a note to use the new endpoint URL for the availability-zone
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 766
diff changeset
38 # XXX FIXME: Use placement/availability-zone instead???
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 URL_META_AVAILABILITY_ZONE = "http://169.254.169.254/latest/meta-data/availability-zone"
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 URL_DYN_INSTANCE_IDENTITY_DOC = "http://169.254.169.254/latest/dynamic/instance-identity/document"
283
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
41 TIMEOUT = 2
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
42 # See https://gist.github.com/doublenns/7e3e4b72df4aaeccbeabf87ba767f44e
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
43 RETRIES = urllib3.Retry(total=3, backoff_factor=0.3)
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 _meta_instanceid = None
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 _meta_region = None
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 _meta_availability_zone = None
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 _dyn_instance_identity_doc = None
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 def _get_text_req(url):
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52 with requests.Session() as sess:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53 try:
283
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
54 a = requests.adapters.HTTPAdapter(max_retries=RETRIES)
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
55 sess.mount("http://", a)
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56 resp = sess.get(url, timeout=TIMEOUT)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
57 resp.raise_for_status()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58 return resp.text
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
59 except requests.exceptions.RequestException:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
60 return _MARKER
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 def _get_json_req(url):
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
64 with requests.Session() as sess:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65 try:
283
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
66 a = requests.adapters.HTTPAdapter(max_retries=RETRIES)
503768f91a05 More granular configuration of retrieving AWS metadata: retries with backoff setting
Franz Glasner <fzglas.hg@dom66.de>
parents: 282
diff changeset
67 sess.mount("http://", a)
282
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
68 resp = sess.get(url, timeout=TIMEOUT)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
69 resp.raise_for_status()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
70 return resp.json()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
71 except requests.exceptions.RequestException:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
72 return _MARKER
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
73 except ValueError:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
74 # JSON error
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
75 return _MARKER
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
76
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
77
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
78 def _get_meta_instanceid():
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
79 global _meta_instanceid
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
80 if _meta_instanceid is None:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
81 _meta_instanceid = _get_text_req(URL_META_INSTANCEID)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
82 return _meta_instanceid
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
83
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
84
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
85 def _get_meta_region():
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
86 global _meta_region
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
87 if _meta_region is None:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
88 _meta_region = _get_text_req(URL_META_REGION)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
89 return _meta_region
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
90
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
91
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
92 def _get_meta_avzone():
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
93 global _meta_availability_zone
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
94 if _meta_availability_zone is None:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
95 _meta_availability_zone = _get_text_req(URL_META_AVAILABILITY_ZONE)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
96 return _meta_availability_zone
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
97
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
98
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
99 def _get_dyn_instance_identity_doc():
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
100 global _dyn_instance_identity_doc
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
101 if _dyn_instance_identity_doc is None:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
102 _dyn_instance_identity_doc = _get_json_req(
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
103 URL_DYN_INSTANCE_IDENTITY_DOC)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
104 return _dyn_instance_identity_doc
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
105
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
106
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
107 def _awslookup(name, default=_MARKER):
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
108 if name == "metadata.instance-id":
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
109 v = _get_meta_instanceid()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
110 elif name == "metadata.placement.region":
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
111 v = _get_meta_region()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
112 elif name == "metadata.placement.availability-zone":
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
113 v = _get_meta_avzone()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
114 elif name.startswith("dynamic.instance-identity."):
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
115 idoc = _get_dyn_instance_identity_doc()
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
116 if idoc is _MARKER:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
117 v = _MARKER
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
118 else:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
119 v = idoc.get(name[26:], _MARKER)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
120 else:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
121 v = _MARKER
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
122 if v is _MARKER:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
123 if default is _MARKER:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
124 raise KeyError("key %r not found in the AWS namespace" % name)
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
125 else:
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
126 return default
da1596034954 Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
127 return v