def post(self): # TODO: Currently all Heat parameters are hardcoded in # template. params = {} rcs = pecan.request.dbapi.get_heat_data() heat = heat_client() nova_utils = NovaClient() template_body = render( 'overcloud.yaml', dict(resource_classes=rcs, nova_util=nova_utils)) if heat.validate_template(template_body): if heat.exists_stack(): res = heat.update_stack(template_body, params) else: res = heat.create_stack(template_body, params) if res: for rc in rcs: [ pecan.request.dbapi.update_rack_state( r, 'CREATE_IN_PROGRESS') for r in rc.racks ] pecan.response.status_code = 202 return {} else: raise wsme.exc.ClientSideError( _("Cannot update the Heat overcloud template")) else: raise wsme.exc.ClientSideError( _("The overcloud Heat template" + "could not be validated"))
def post(self): # TODO(): Currently all Heat parameters are hardcoded in # template. params = {} rcs = pecan.request.dbapi.get_heat_data() heat = heat_client() nova_utils = NovaClient() template_body = render('overcloud.yaml', dict(resource_classes=rcs, nova_util=nova_utils)) if heat.validate_template(template_body): if heat.exists_stack(): res = heat.update_stack(template_body, params) else: res = heat.create_stack(template_body, params) if res: for rc in rcs: [pecan.request.dbapi.update_rack_state( r, 'CREATE_IN_PROGRESS') for r in rc.racks] pecan.response.status_code = 202 return {} else: raise wsme.exc.ClientSideError(_( "Cannot update the Heat overcloud template" )) else: raise wsme.exc.ClientSideError(_("The overcloud Heat template" "could not be validated"))
def post(self): # TODO(): Currently all Heat parameters are hardcoded in # template. params = {} params['AdminToken']=CONF.overcloud['OVERCLOUD_ADMIN_TOKEN'] params['AdminPassword']=CONF.overcloud['OVERCLOUD_ADMIN_PASSWORD'] params['CinderPassword']=CONF.overcloud['OVERCLOUD_CINDER_PASSWORD'] params['GlancePassword']=CONF.overcloud['OVERCLOUD_GLANCE_PASSWORD'] params['HeatPassword']=CONF.overcloud['OVERCLOUD_HEAT_PASSWORD'] params['NeutronPassword']=CONF.overcloud['OVERCLOUD_NEUTRON_PASSWORD'] params['NovaPassword']=CONF.overcloud['OVERCLOUD_NOVA_PASSWORD'] params['NovaComputeLibvirtType']=CONF.overcloud['OVERCLOUD_LIBVIRT_TYPE'] rcs = pecan.request.dbapi.get_heat_data() heat = heat_client() nova_utils = NovaClient() for resource in rcs: service_type = resource.service_type image_id = getattr(resource, "image_id", None) if image_id: if service_type == 'compute': params['NovaImage'] = image_id elif service_type in ('not_compute', 'controller'): params['notcomputeImage'] = image_id template_body = render('overcloud.yaml', dict(resource_classes=rcs, nova_util=nova_utils)) if heat.validate_template(template_body): if heat.exists_stack(): res = heat.update_stack(template_body, params) else: res = heat.create_stack(template_body, params) if res: for rc in rcs: [pecan.request.dbapi.update_rack_state( r, 'CREATE_IN_PROGRESS') for r in rc.racks] pecan.response.status_code = 202 return {} else: raise wsme.exc.ClientSideError(_( "Cannot update the Heat overcloud template" )) else: raise wsme.exc.ClientSideError(_("The overcloud Heat template" "could not be validated"))
def template(self): rcs = pecan.request.dbapi.get_heat_data() nova_utils = NovaClient() return render('overcloud.yaml', dict(resource_classes=rcs, nova_util=nova_utils))