
For ssh keys, try gathering all values found under both "public_keys" and "keys" fields under metadata. For x509 certificate keys, try looking into metadata under both "meta" and "keys" fields and finally userdata if no such information is retrieved earlier. Change-Id: I43345344aa008187787e97d6296abfc181416cf3
192 lines
7.5 KiB
Python
192 lines
7.5 KiB
Python
# Copyright 2013 Cloudbase Solutions Srl
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
|
|
NAME0 = "eth0"
|
|
MAC0 = "fa:16:3e:2d:ec:cd"
|
|
ADDRESS0 = "10.0.0.15"
|
|
ADDRESS60 = "2001:db8::3"
|
|
NETMASK0 = "255.255.255.0"
|
|
NETMASK60 = "64"
|
|
BROADCAST0 = "10.0.0.255"
|
|
GATEWAY0 = "10.0.0.1"
|
|
GATEWAY60 = "2001:db8::1"
|
|
DNSNS0 = "208.67.220.220 208.67.222.222"
|
|
|
|
NAME1 = "eth1"
|
|
ADDRESS1 = "10.1.0.2"
|
|
ADDRESS61 = "::ffff:a00:1"
|
|
NETMASK1 = "255.255.255.0"
|
|
NETMASK61 = None
|
|
BROADCAST1 = "10.1.0.255"
|
|
GATEWAY1 = "10.1.0.1"
|
|
GATEWAY61 = "2001::ffff:a00:1b"
|
|
|
|
|
|
def get_fake_metadata_json(version):
|
|
data1 = {
|
|
"random_seed": "Wn51FGjZa3vlZtTxJuPr96oCf+X8jqbA9U2XR5wNdnApy1fz"
|
|
"/2NNssUwPoNzG6etw9RBn+XiZ0zKWnFzMsTopaN7WwYjWTnI"
|
|
"sVw3cpIkTd579wQgoEr1ANqhfO3qTvkOVNMhzTAw1ps+wqRm"
|
|
"kLxH+1qYJnX06GcdKRRGkWTaOSlTkieA0LO2oTGFlbFDWcOW"
|
|
"2vT5BvSBmqP7vNLzbLDMTc7MIWRBzwmtcVPC17QL6EhZJTUc"
|
|
"Z0mTz7l0R0DocLmFwHEXFEEr+q4WaJjt1ejOOxVM3tiT7D8Y"
|
|
"pRZnnGNPfvEhq1yVMUoi8yv9pFmMmXicNBhm6zDKVjcWk0gf"
|
|
"bvaQcMnnOLrrE1VxAAzyNyPIXBI/H7AAHz2ECz7dgd2/4ocv"
|
|
"3bmTRY3hhcUKtNuat2IOvSGgMBUGdWnLorQGFz8t0/bcYhE0"
|
|
"Dve35U6Hmtj78ydV/wmQWG0iq49NX6hk+VUmZtSZztlkbsaa"
|
|
"7ajNjZ+Md9oZtlhXZ5vJuhRXnHiCm7dRNO8Xo6HffEBH5A4s"
|
|
"mQ1T2Kda+1c18DZrY7+iQJRifa6witPCw0tXkQ6nlCLqL2we"
|
|
"JD1XMiTZLSM/XsZFGGSkKCKvKLEqQrI/XFUq/TA6B4aLGFlm"
|
|
"mhOO/vMJcht06O8qVU/xtd5Mv/MRFzYaSG568Z/mhk4vYLYd"
|
|
"QYAA+pXRW9A=",
|
|
"uuid": "4b32ddf7-7941-4c36-a854-a1f5ac45b318",
|
|
"availability_zone": "nova",
|
|
"hostname": "windows.novalocal",
|
|
"launch_index": 0,
|
|
"public_keys": {
|
|
"key":
|
|
"ssh-rsa "
|
|
"AAAAB3NzaC1yc2EAAAADAQABAAABA"
|
|
"QDf7kQHq7zvBod3yIZs0tB/AOOZz5pab7qt/h"
|
|
"78VF7yi6qTsFdUnQxRue43R/75wa9EEyokgYR"
|
|
"LKIN+Jq2A5tXNMcK+rNOCzLJFtioAwEl+S6VL"
|
|
"G9jfkbUv++7zoSMOsanNmEDvG0B79MpyECFCl"
|
|
"th2DsdE4MQypify35U5ri5Qi7E6PEYAsU65LF"
|
|
"MG2boeCIB29BEooE6AgPr2DuJeJ+2uw+YScF9"
|
|
"FV3og4Wyz5zipPVh8YpVev6dlg0tRWUrCtZF9"
|
|
"IODpCTrT3vsPRG3xz7CppR+vGi/1gLXHtJCRj"
|
|
"frHwkY6cXyhypNmkU99K/wMqSv30vsDwdnsQ1"
|
|
"q3YhLarMHB Generated by Nova\n"
|
|
},
|
|
"keys": [
|
|
{
|
|
"data":
|
|
"ssh-rsa "
|
|
"AAAAB3NzaC1yc2EAAAADAQABAAABA"
|
|
"QDf7kQHq7zvBod3yIZs0tB/AOOZz5pab7qt/h"
|
|
"78VF7yi6qTsFdUnQxRue43R/75wa9EEyokgYR"
|
|
"LKIN+Jq2A5tXNMcK+rNOCzLJFtioAwEl+S6VL"
|
|
"G9jfkbUv++7zoSMOsanNmEDvG0B79MpyECFCl"
|
|
"th2DsdE4MQypify35U5ri5Qi7E6PEYAsU65LF"
|
|
"MG2boeCIB29BEooE6AgPr2DuJeJ+2uw+YScF9"
|
|
"FV3og4Wyz5zipPVh8YpVev6dlg0tRWUrCtZF9"
|
|
"IODpCTrT3vsPRG3xz7CppR+vGi/1gLXHtJCRj"
|
|
"frHwkY6cXyhypNmkU99K/wMqSv30vsDwdnsQ1"
|
|
"q3YhLarMHB Generated by Nova\n",
|
|
"type": "ssh",
|
|
"name": "key"
|
|
},
|
|
{
|
|
"data":
|
|
"-----BEGIN CERTIFICATE-----\n"
|
|
"MIIDNzCCAh+gAwIBAgIJAODgoAY83AxRMA0GCS"
|
|
"qGSIb3DQEBCwUAMCsxKTAnBgNV\nBAMTIGE3ZD"
|
|
"g3YTM1NzE1MDQzYzI4NDUwYTMzZGFiYWQwMDk2"
|
|
"MB4XDTE1MDUxMjE5\nNDEwNVoXDTI1MDUwOTE5"
|
|
"NDEwNVowKzEpMCcGA1UEAxMgYTdkODdhMzU3MT"
|
|
"UwNDNj\nMjg0NTBhMzNkYWJhZDAwOTYwggEiMA"
|
|
"0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQ"
|
|
"DAbRN9IRO0vEj6lgh5ZBAdpMR8mDymcP5M8uLT"
|
|
"CqvrFSuv2yB+rei3fJ7Rw4Tv\nHX/aKCMVjqAO"
|
|
"T3CwsO9UA+Q2BmbkCi/e8VpzHN8m8VwkyBLXNn"
|
|
"4ed6e+G5WOPVXH\n76RajfRkDq+WCo330SiBWt"
|
|
"QBsC0AP8l1M57XYxtowh/EweJDZ5bYIogPOnrP"
|
|
"XRSl\nylDKiJuAs74fOiDITdeXCGeiPTy2VFCi"
|
|
"LUV7DLpCRUV89tEpFlNVlD6yTmnE/Mrh\nA49s"
|
|
"m9PUMY1cI8Bl5f5B/CBQa+5lEQT72HMOuumFrX"
|
|
"MOD4jQIcNyRl4LKdam1wwA\nESu0s7Cz5LxvJc"
|
|
"d4EgUxwYrHAgMBAAGjXjBcMBMGA1UdJQQMMAoG"
|
|
"CCsGAQUFBwMC\nMEUGA1UdEQQ+MDygOgYKKwYB"
|
|
"BAGCNxQCA6AsDCphN2Q4N2EzNTcxNTA0M2MyOD"
|
|
"Q1\nMGEzM2RhYmFkMDA5NkBsb2NhbGhvc3QwDQ"
|
|
"YJKoZIhvcNAQELBQADggEBABpTP8mg\nOHl+Jp"
|
|
"3wcBVz5sdFUmPRCGJgPaG/rUgAHuC1UNNP3Oy0"
|
|
"VlDOIc3Yv0Wt3kLa081N\nUy7NIQjQAN29Pq3c"
|
|
"1Jsq0ucpzEroIBdwacCkB51lZ5CtzwlztK2KZ3"
|
|
"gWJVpraQwn\nt9ZZ2w+eKKt332+uXFVqNgkBjN"
|
|
"3LHeehFv1Vd0HQYPkuwWIrf7O0gpZP9MD3+GnZ"
|
|
"\nEMvBxOV5yFPbPFQSWX50YHijtEkKbXb/liEA"
|
|
"RccxZwl1aC2+IfaSrMh3JqWF/AQf\nlVtJYgGw"
|
|
"ixt/OUsA+oA5u6LuPSJhwFnrAN8UWrrOLlswcl"
|
|
"jQ2mfTambZp43AomqJ\n6N07zSahNAf/UqI=\n"
|
|
"-----END CERTIFICATE-----\n",
|
|
"type": "x509",
|
|
"name": "cert"
|
|
}
|
|
],
|
|
"network_config": {
|
|
"content_path": "network",
|
|
# This is not actually in the metadata json file,
|
|
# but is present here for the ease of reading such information.
|
|
"debian_config": ("""
|
|
# Injected by Nova on instance boot
|
|
#
|
|
# This file describes the network interfaces available on your system
|
|
# and how to activate them. For more information, see interfaces(5).
|
|
|
|
# The loopback network interface
|
|
auto lo
|
|
iface lo inet loopback
|
|
|
|
auto {name0}
|
|
iface {name0} inet static
|
|
hwaddress ether {mac0}
|
|
address {address0}
|
|
netmask {netmask0}
|
|
broadcast {broadcast0}
|
|
gateway {gateway0}
|
|
dns-nameservers {dnsns0}
|
|
post-up ip -6 addr add {address60}/{netmask60} dev {name0}
|
|
post-up ip -6 route add default via {gateway60} dev {name0}
|
|
|
|
auto {name1}
|
|
iface {name1} inet static
|
|
address {address1}
|
|
netmask {netmask1}
|
|
broadcast {broadcast1}
|
|
gateway {gateway1}
|
|
iface eth2 inet6 static
|
|
address {address61}
|
|
netmask {netmask61}
|
|
gateway {gateway61}
|
|
""").format(name0=NAME0, # eth0 (IPv4/6)
|
|
mac0=MAC0,
|
|
address0=ADDRESS0,
|
|
broadcast0=BROADCAST0,
|
|
netmask0=NETMASK0,
|
|
gateway0=GATEWAY0,
|
|
dnsns0=DNSNS0,
|
|
address60=ADDRESS60,
|
|
netmask60=NETMASK60,
|
|
gateway60=GATEWAY60,
|
|
# eth1 (IPv4/6)
|
|
name1=NAME1,
|
|
address1=ADDRESS1,
|
|
broadcast1=BROADCAST1,
|
|
netmask1=NETMASK1,
|
|
gateway1=GATEWAY1,
|
|
address61=ADDRESS61,
|
|
netmask61=NETMASK61,
|
|
gateway61=GATEWAY61
|
|
)
|
|
}
|
|
}
|
|
|
|
datadict = {
|
|
"2013-04-04": data1
|
|
}
|
|
|
|
return datadict.get(version)
|