Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)