~rlane/nova/ldapimprovements

« back to all changes in this revision

Viewing changes to nova/api/openstack/servers.py

  • Committer: Ryan Lane
  • Date: 2010-11-24 15:46:32 UTC
  • mfrom: (382.48.1 trunk)
  • Revision ID: laner@controller-20101124154632-zh7kwjuyyd02a2lh
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
95
95
            db_driver = FLAGS.db_driver
96
96
        self.db_driver = utils.import_object(db_driver)
97
97
        self.network_manager = utils.import_object(FLAGS.network_manager)
 
98
        self.compute_manager = utils.import_object(FLAGS.compute_manager)
98
99
        super(Controller, self).__init__()
99
100
 
100
101
    def index(self, req):
242
243
        inst['memory_mb'] = flavor['memory_mb']
243
244
        inst['vcpus'] = flavor['vcpus']
244
245
        inst['local_gb'] = flavor['local_gb']
245
 
 
246
 
        ref = self.db_driver.instance_create(ctxt, inst)
247
 
        inst['id'] = ref.internal_id
248
 
 
249
246
        inst['mac_address'] = utils.generate_mac()
250
 
 
251
 
        #TODO(dietz) is this necessary?
252
247
        inst['launch_index'] = 0
253
248
 
254
 
        inst['hostname'] = str(ref.internal_id)
255
 
        self.db_driver.instance_update(ctxt, inst['id'], inst)
256
 
 
257
 
        network_manager = utils.import_object(FLAGS.network_manager)
258
 
        address = network_manager.allocate_fixed_ip(ctxt,
259
 
            inst['id'])
 
249
        ref = self.compute_manager.create_instance(ctxt, **inst)
 
250
        inst['id'] = ref['internal_id']
 
251
 
 
252
        inst['hostname'] = str(ref['internal_id'])
 
253
        self.compute_manager.update_instance(ctxt, inst['id'], **inst)
 
254
 
 
255
        address = self.network_manager.allocate_fixed_ip(ctxt,
 
256
                                                         inst['id'])
260
257
 
261
258
        # TODO(vish): This probably should be done in the scheduler
262
259
        #             network is setup when host is assigned
263
 
        network_topic = self._get_network_topic(ctxt, network_manager)
 
260
        network_topic = self._get_network_topic(ctxt)
264
261
        rpc.call(ctxt,
265
262
                 network_topic,
266
263
                 {"method": "setup_fixed_ip",
267
264
                  "args": {"address": address}})
268
265
        return inst
269
266
 
270
 
    def _get_network_topic(self, context, network_manager):
 
267
    def _get_network_topic(self, context):
271
268
        """Retrieves the network host for a project"""
272
 
        network_ref = network_manager.get_network(context)
 
269
        network_ref = self.network_manager.get_network(context)
273
270
        host = network_ref['host']
274
271
        if not host:
275
272
            host = rpc.call(context,