@@ -124,7 +124,8 @@ def __str__(self):
124124class FlavorManager (models .Manager ):
125125 """Manage database interactions for :class:`Flavor`."""
126126
127- def load_cloud_config_base (self ):
127+ @staticmethod
128+ def load_cloud_config_base ():
128129 """Read the base configuration file and return YAML data."""
129130 # load cloud-config-base yaml_
130131 _cloud_config_path = os .path .abspath (
@@ -137,30 +138,38 @@ def seed(self, user, **kwargs):
137138 """Seed the database with default Flavors for each cloud region."""
138139 # TODO: add optimized AMIs to default flavors
139140 flavors = (
140- {'id' : 'ec2-us-east-1' ,
141- 'provider' : 'ec2' ,
142- 'params' : json .dumps ({'region' : 'us-east-1' })},
143- {'id' : 'ec2-us-west-1' ,
144- 'provider' : 'ec2' ,
145- 'params' : json .dumps ({'region' : 'us-west-1' })},
146- {'id' : 'ec2-us-west-2' ,
147- 'provider' : 'ec2' ,
148- 'params' : json .dumps ({'region' : 'us-west-2' })},
149- {'id' : 'ec2-eu-west-1' ,
150- 'provider' : 'ec2' ,
151- 'params' : json .dumps ({'region' : 'eu-west-1' })},
152- {'id' : 'ec2-ap-northeast-1' ,
153- 'provider' : 'ec2' ,
154- 'params' : json .dumps ({'region' : 'ap-northeast-1' })},
155- {'id' : 'ec2-ap-southeast-1' ,
156- 'provider' : 'ec2' ,
157- 'params' : json .dumps ({'region' : 'ap-southeast-1' })},
158- {'id' : 'ec2-ap-southeast-2' ,
159- 'provider' : 'ec2' ,
160- 'params' : json .dumps ({'region' : 'ap-southeast-2' })},
161- {'id' : 'ec2-sa-east-1' ,
162- 'provider' : 'ec2' ,
163- 'params' : json .dumps ({'region' : 'sa-east-1' })},
141+ {'id' : 'ec2-us-east-1' , 'provider' : 'ec2' ,
142+ 'params' : json .dumps ({
143+ 'region' : 'us-east-1' , 'image' : Flavor .IMAGE_MAP ['us-east-1' ],
144+ 'zone' : 'any' , 'size' : 'm1.medium' })},
145+ {'id' : 'ec2-us-west-1' , 'provider' : 'ec2' ,
146+ 'params' : json .dumps ({
147+ 'region' : 'us-west-1' , 'image' : Flavor .IMAGE_MAP ['us-west-1' ],
148+ 'zone' : 'any' , 'size' : 'm1.medium' })},
149+ {'id' : 'ec2-us-west-2' , 'provider' : 'ec2' ,
150+ 'params' : json .dumps ({
151+ 'region' : 'us-west-2' , 'image' : Flavor .IMAGE_MAP ['us-west-2' ],
152+ 'zone' : 'any' , 'size' : 'm1.medium' })},
153+ {'id' : 'ec2-eu-west-1' , 'provider' : 'ec2' ,
154+ 'params' : json .dumps ({
155+ 'region' : 'eu-west-1' , 'image' : Flavor .IMAGE_MAP ['eu-west-1' ],
156+ 'zone' : 'any' , 'size' : 'm1.medium' })},
157+ {'id' : 'ec2-ap-northeast-1' , 'provider' : 'ec2' ,
158+ 'params' : json .dumps ({
159+ 'region' : 'ap-northeast-1' , 'image' : Flavor .IMAGE_MAP ['ap-northeast-1' ],
160+ 'zone' : 'any' , 'size' : 'm1.medium' })},
161+ {'id' : 'ec2-ap-southeast-1' , 'provider' : 'ec2' ,
162+ 'params' : json .dumps ({
163+ 'region' : 'ap-southeast-1' , 'image' : Flavor .IMAGE_MAP ['ap-southeast-1' ],
164+ 'zone' : 'any' , 'size' : 'm1.medium' })},
165+ {'id' : 'ec2-ap-southeast-2' , 'provider' : 'ec2' ,
166+ 'params' : json .dumps ({
167+ 'region' : 'ap-southeast-2' , 'image' : Flavor .IMAGE_MAP ['ap-southeast-2' ],
168+ 'zone' : 'any' , 'size' : 'm1.medium' })},
169+ {'id' : 'ec2-sa-east-1' , 'provider' : 'ec2' ,
170+ 'params' : json .dumps ({
171+ 'region' : 'sa-east-1' , 'image' : Flavor .IMAGE_MAP ['sa-east-1' ],
172+ 'zone' : 'any' , 'size' : 'm1.medium' })},
164173 )
165174 cloud_config = self .load_cloud_config_base ()
166175 for flavor in flavors :
@@ -184,6 +193,19 @@ class Flavor(UuidAuditedModel):
184193 params = fields .ParamsField ()
185194 init = fields .CloudInitField ()
186195
196+ # Deis-optimized EC2 amis -- with 3.8 kernel, chef 11 deps,
197+ # and large docker images (e.g. buildstep) pre-installed
198+ IMAGE_MAP = {
199+ 'ap-northeast-1' : 'ami-a57aeca4' ,
200+ 'ap-southeast-1' : 'ami-e03a72b2' ,
201+ 'ap-southeast-2' : 'ami-bd801287' ,
202+ 'eu-west-1' : 'ami-d9d3cdad' ,
203+ 'sa-east-1' : 'ami-a7df7bba' ,
204+ 'us-east-1' : 'ami-e85a2081' ,
205+ 'us-west-1' : 'ami-ac6942e9' ,
206+ 'us-west-2' : 'ami-b55ac885' ,
207+ }
208+
187209 class Meta :
188210 unique_together = (('owner' , 'id' ),)
189211
0 commit comments