def post(self, id): inst = self.get_instance(id, isowner=True) if not inst: return form = StorageForm( self.request.arguments ) if form.validate(): # Is there have storage resource ? used_storage = self.get_used_storage_size() # print '''inst.user.profile.storage = %s, #used_storage = %s, #inst.storage = %s''' % (inst.user.profile.storage, # used_storage, inst.storage) if ( inst.user.profile.storage + inst.storage # Add this instance's storage - used_storage ) < form.size.data: url = self.get_no_resource_url() url += "?reason=Storage LIMIT&total=%s&used=%s" % ( inst.user.profile.storage, used_storage ) return self.redirect( url ) storage = { 'type': form.type.data, 'size': form.size.data, } if inst.config: config = json.loads(inst.config) else: config = {} config['storage'] = [ storage ] inst.config = json.dumps(config) if inst.is_running: inst.ischanged = True self.db2.commit() url = self.reverse_url('instance:view', id) url += '?view=storage' return self.redirect( url ) # Get error d = { 'title': _('Edit Storage'), 'instance': inst, 'form': form } self.render('instance/storage_edit.html', **d)
def post_storage(self, I): form = StorageForm(self) self.d['form'] = form if form.validate(): used_storage = self.get_used_storage_size() if ( I.user.profile.storage + I.storage # Add this instance's storage - used_storage ) < form.size.data: form.size.errors.append("Storage LIMIT: total=%s, used=%s" % ( I.user.profile.storage, used_storage )) return self.render( 'myun/instance/edit_storage.html', **self.d) storage = { 'type': form.type.data, 'size': form.size.data, } if I.config: config = json.loads(I.config) else: config = {} config['storage'] = [ storage ] I.config = json.dumps(config) if I.is_running: I.ischanged = True self.db2.commit() url = self.reverse_url('myun:instance:view', I.id) url += '?tab=storage' return self.redirect( url ) # ERROR FOUND self.render( 'myun/instance/edit_storage.html', **self.d)
def get(self, id): # if not inst.config.storage, just add inst = self.get_instance(id, isowner=True) if not inst: return form = StorageForm() if inst.config: config = json.loads(inst.config) if 'storage' in config.keys(): storage = config['storage'] if len(storage) > 0: storage = storage[0] form.type.data = storage['type'] form.size.data = storage['size'] d = { 'title': _('Edit Storage'), 'instance': inst, 'form': form } self.render('instance/storage_edit.html', **d)