~ubuntu-branches/ubuntu/saucy/cloud-init/saucy

« back to all changes in this revision

Viewing changes to cloud-init-query.py

  • Committer: Package Import Robot
  • Author(s): Scott Moser
  • Date: 2011-01-26 17:28:36 UTC
  • mto: (132.1.16 oneiric)
  • mto: This revision was merged to the branch mainline in revision 281.
  • Revision ID: package-import@ubuntu.com-20110126172836-ozrm9fve9c6hnju8
* New upstream release.
* fix permissions on cloud-init.log so syslog can write to it (LP: ##704509)
* rework of /var/lib/cloud layout
* remove updates-check (LP: #653220)
* support resizing root partition on first boot (enabled by default)
* added cloud-config options for setting hostname, phone_home
* indicate "all the way up" with message to console and file creation
  in /var/lib/cloud/instance/ (LP: #653271)
* write ssh keys to console late in boot to ensure they're in console buffer
* add support for redirecting output of cloud-init, cloud-config, 
  cloud-final via the config file, or user data config file
* add support for posting data about the instance to a url (phone_home)
* add minimal OVF transport (iso) support
* make DataSources that are attempted dynamic and configurable from
  config. config option 'cloud_type' replaced by 'datasource_list'
* add 'timezone' option to cloud-config (LP: #645458)
* Added an additional archive format, that can be used for multi-part
  input to cloud-init.  This may be more user friendly then mime-multipart
  (LP: #641504)
* add support for reading Rightscale style user data (LP: #668400)
* make the message on 'disable_root' more clear (LP: #672417)
* do not require public key if private is given in ssh cloud-config 
  (LP: #648905)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
# vi: ts=4 expandtab
 
3
#
 
4
#    Copyright (C) 2009-2010 Canonical Ltd.
 
5
#
 
6
#    Author: Scott Moser <scott.moser@canonical.com>
 
7
#
 
8
#    This program is free software: you can redistribute it and/or modify
 
9
#    it under the terms of the GNU General Public License version 3, as
 
10
#    published by the Free Software Foundation.
 
11
#
 
12
#    This program is distributed in the hope that it will be useful,
 
13
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
#    GNU General Public License for more details.
 
16
#
 
17
#    You should have received a copy of the GNU General Public License
 
18
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
19
 
 
20
import sys
 
21
import cloudinit
 
22
import cloudinit.CloudConfig
 
23
import logging
 
24
import os
 
25
import traceback
 
26
 
 
27
def Usage(out = sys.stdout):
 
28
    out.write("Usage: %s name\n" % sys.argv[0])
 
29
    
 
30
def main():
 
31
    # expect to be called with name of item to fetch
 
32
    if len(sys.argv) != 2:
 
33
        Usage(sys.stderr)
 
34
        sys.exit(1)
 
35
 
 
36
    cc = cloudinit.CloudConfig.CloudConfig(cloudinit.cloud_config)
 
37
    cloud_config = cc.cfg
 
38
    data = {
 
39
        'user_data' : cc.cloud.get_userdata(),
 
40
        'user_data_raw' : cc.cloud.get_userdata_raw(),
 
41
        'instance_id' : cc.cloud.get_instance_id(),
 
42
    }
 
43
 
 
44
    name = sys.argv[1].replace('-','_')
 
45
 
 
46
    if name not in data:
 
47
        sys.stderr.write("unknown name '%s'.  Known values are:\n  %s\n" %
 
48
            (sys.argv[1], ' '.join(data.keys())))
 
49
        sys.exit(1)
 
50
 
 
51
    print data[name]
 
52
    sys.exit(0)
 
53
 
 
54
if __name__ == '__main__':
 
55
    main()