~smoser/ubuntu/quantal/cloud-init/sru

« back to all changes in this revision

Viewing changes to cloudinit/DataSourceNoCloud.py

  • Committer: Scott Moser
  • Date: 2011-01-26 22:16:53 UTC
  • mto: This revision was merged to the branch mainline in revision 59.
  • Revision ID: smoser@ubuntu.com-20110126221653-31nkvnsunkt9zdpo
Tags: upstream-0.6.0
ImportĀ upstreamĀ versionĀ 0.6.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
import DataSource
20
20
 
21
 
import cloudinit
 
21
from cloudinit import seeddir
22
22
import cloudinit.util as util
23
23
import sys
24
24
import os.path
32
32
    supported_seed_starts = ( "/" , "file://" )
33
33
    seed = None
34
34
    cmdline_id = "ds=nocloud"
35
 
    seeddir = cloudinit.cachedir + '/nocloud'
36
 
 
37
 
    def __init__(self):
38
 
        pass
 
35
    seeddir = seeddir + '/nocloud'
39
36
 
40
37
    def __str__(self):
41
38
        mstr="DataSourceNoCloud"
57
54
            if parse_cmdline_data(self.cmdline_id, md):
58
55
                found.append("cmdline")
59
56
        except:
60
 
            util.logexc(cloudinit.log,util.WARN)
 
57
            util.logexc(self.log,util.WARN)
61
58
            return False
62
59
 
63
60
        # check to see if the seeddir has data.
66
63
            md = util.mergedict(md,seedret['meta-data'])
67
64
            ud = seedret['user-data']
68
65
            found.append(self.seeddir)
69
 
            cloudinit.log.debug("using seeded cache data in %s" % self.seeddir)
 
66
            self.log.debug("using seeded cache data in %s" % self.seeddir)
70
67
 
71
68
        # there was no indication on kernel cmdline or data
72
69
        # in the seeddir suggesting this handler should be used.
83
80
                    seedfound=proto
84
81
                    break
85
82
            if not seedfound:
86
 
                cloudinit.log.debug("seed from %s not supported by %s" %
 
83
                self.log.debug("seed from %s not supported by %s" %
87
84
                    (seedfrom, self.__class__))
88
85
                return False
89
86
 
90
87
            # this could throw errors, but the user told us to do it
91
88
            # so if errors are raised, let them raise
92
89
            (md_seed,ud) = util.read_seeded(seedfrom)
93
 
            cloudinit.log.debug("using seeded cache data from %s" % seedfrom)
 
90
            self.log.debug("using seeded cache data from %s" % seedfrom)
94
91
 
95
92
            # values in the command line override those from the seed
96
93
            md = util.mergedict(md,md_seed)
108
105
#  root=LABEL=uec-rootfs ro ds=nocloud
109
106
def parse_cmdline_data(ds_id,fill,cmdline=None):
110
107
    if cmdline is None:
111
 
        if 'DEBUG_PROC_CMDLINE' in os.environ:
112
 
            cmdline = os.environ["DEBUG_PROC_CMDLINE"]
113
 
        else:
114
 
            cmdfp = open("/proc/cmdline")
115
 
            cmdline = cmdfp.read().strip()
116
 
            cmdfp.close()
117
 
        cmdline = " %s " % cmdline.lower()
 
108
        cmdline = util.get_cmdline()
118
109
 
119
 
        if not ( " %s " % ds_id in cmdline or " %s;" % ds_id in cmdline ):
120
 
            return False
 
110
    if not ( " %s " % ds_id in cmdline or " %s;" % ds_id in cmdline ):
 
111
        return False
121
112
 
122
113
    argline=""
123
114
    # cmdline can contain:
149
140
class DataSourceNoCloudNet(DataSourceNoCloud):
150
141
    cmdline_id = "ds=nocloud-net"
151
142
    supported_seed_starts = ( "http://", "https://", "ftp://" )
152
 
    seeddir = cloudinit.cachedir + '/nocloud-net'
 
143
    seeddir = seeddir + '/nocloud-net'
 
144
 
 
145
datasources = (
 
146
  ( DataSourceNoCloud, ( DataSource.DEP_FILESYSTEM, ) ),
 
147
  ( DataSourceNoCloudNet, 
 
148
    ( DataSource.DEP_FILESYSTEM, DataSource.DEP_NETWORK ) ),
 
149
)
 
150
 
 
151
# return a list of data sources that match this set of dependencies
 
152
def get_datasource_list(depends):
 
153
    return(DataSource.list_from_depends(depends, datasources))