Example #1
0
    def post(self):

        if not self.appliance:
            form = CreateInstanceForm(self.request.arguments)
            form.appliance.query = self.db2.query(Appliance).all()
            # app = self.db2.query(Appliance).get( form.appliance.data )e
            app = form.appliance.data
        else:
            form = CreateInstanceBaseForm(self.request.arguments)
            app = self.appliance

        if form.validate():
            instance = Instance(name=form.name.data, user=self.current_user, appliance=app)

            self.db2.add(instance)
            self.db2.commit()
            instance.logo = self.create_logo(app, instance.id)
            self.db2.commit()

            instance.mac = "92:1B:40:26:%02x:%02x" % (instance.id / 256, instance.id % 256)
            self.db2.commit()

            url = self.reverse_url("instance:view", instance.id)
            return self.redirect(url)

        self.render("instance/create.html", title=_("Create Instance"), form=form, appliance=app)
Example #2
0
    def post(self):

        if  self.appliance:
            form = CreateInstanceBaseForm( self.request.arguments )
            app = self.appliance 
        else:
            form = CreateInstanceForm( self.request.arguments )
            form.appliance.query = self.db2.query(Appliance).filter_by(
                isprivate = False).filter_by(isuseable = True).all()
            app = form.appliance.data

        self.d['APPLIANCE'] = app
        self.d['form'] = form

        if form.validate():
            # instance name have used by myself ?
            exist_inst = self.db2.query(Instance).filter_by(
                name = form.name.data).filter_by(
                user_id = self.current_user.id).first()
            if exist_inst:
                form.name.errors.append( _('You have used the name for a instance !') )

            # TODO: resource limit
            profile = self.current_user.profile
            if (form.cpus.data + self.USED_CPUS) > profile.cpus:
                form.cpus.errors.append( _('cpus can not greater than %s') % (profile.cpus - self.USED_CPUS) )
            if (form.memory.data + self.USED_MEMORY) > profile.memory:
                form.memory.errors.append( _('memory can not greater than %s') % (profile.memory - self.USED_MEMORY) )

            if ( form.name.errors or form.cpus.errors
                 or form.memory.errors ):
                return self.render( 'instance/create.html', **self.d )

            # Create new instance
            instance = Instance(
                name=form.name.data, user=self.current_user, appliance=app )

            instance.cpus = form.cpus.data
            instance.memory = form.memory.data
            instance.isprivate = form.isprivate.data

            self.db2.add(instance)
            self.db2.commit()
            instance.logo = self.create_logo(app, instance.id)
            self.db2.commit()

            instance.mac = '92:1B:40:26:%02x:%02x' % (
                instance.id / 256, instance.id % 256 )
            self.db2.commit()

            # TODO
            self.set_ip( instance )
            self.binding_domain( instance )

            url = self.reverse_url('instance:view', instance.id)
            return self.redirect(url)

        # Something is wrong
        self.render( 'instance/create.html', **self.d )
Example #3
0
    def post(self):

        A = self.A
        form = self.form

        if form.validate():

            if not A:
                A = self.db.query(Appliance).get(form.appliance.data)

            if not A:
                return self.write( _('Give me the appliance please.') )

            # Create new instance
            I = Instance( name = form.name.data,
                          user = self.current_user,
                          appliance = A )

            I.cpus = form.cpus.data
            I.memory = form.memory.data
            I.isprivate = form.isprivate.data

            self.db.add( I )
            self.db.commit()

            I.mac = '92:1B:40:26:%02x:%02x' % (
                I.id / 256, I.id % 256 )
            self.db.commit()

#            I.save_logo()

            # TODO: ip
            self.set_ip( I )

            # TODO: root password
            self.set_secret( I )

            url = self.reverse_url('myun:instance:view')
            url += '?id=%s' % I.id
            return self.redirect(url)

        # Something is wrong
        self.render()
Example #4
0
    def post(self):

        A = self.A
        form = self.form

        if form.validate():

            if not A:
                A = self.db.query(Appliance).get(form.appliance.data)

            if not A:
                return self.write(_('Give me the appliance please.'))

            # Create new instance
            I = Instance(name=form.name.data,
                         user=self.current_user,
                         appliance=A)

            I.cpus = form.cpus.data
            I.memory = form.memory.data
            I.isprivate = form.isprivate.data

            self.db.add(I)
            self.db.commit()

            #            I.save_logo()

            # TODO: ip
            self.set_ip(I)

            # TODO: root password
            self.set_secret(I)

            url = self.reverse_url('myun:instance:view')
            url += '?id=%s' % I.id
            return self.redirect(url)

        # Something is wrong
        self.render()
Example #5
0
    def post(self):

        if  self.appliance:
            form = CreateInstanceBaseForm( self.request.arguments )
            app = self.appliance 
        else:
            form = CreateInstanceForm( self.request.arguments )
            form.appliance.query = self.db2.query(Appliance).all()
            app = form.appliance.data

        self.d['APPLIANCE'] = app
        self.d['form'] = form

        if form.validate():

            # instance name have used by myself ?
            exist_inst = self.db2.query(Instance).filter_by(
                name = form.name.data).filter_by(
                user_id = self.current_user.id).first()
            if exist_inst:
                form.name.errors.append( _('You have used the name for a instance !') )

            # TODO: resource limit
            profile = self.current_user.profile
            if (form.cpus.data + self.USED_CPUS) > profile.cpus:
                form.cpus.errors.append( _('cpus can not greater than %s') % (profile.cpus - self.USED_CPUS) )
            if (form.memory.data + self.USED_MEMORY) > profile.memory:
                form.memory.errors.append( _('memory can not greater than %s') % (profile.memory - self.USED_MEMORY) )

            if ( form.name.errors or form.cpus.errors
                 or form.memory.errors ):
                return self.render( 'instance/create.html', **self.d )

            # Create new instance
            instance = Instance(
                name=form.name.data, user=self.current_user, appliance=app )

            instance.cpus = form.cpus.data
            instance.memory = form.memory.data
            instance.isprivate = form.isprivate.data

            self.db2.add(instance)
            self.db2.commit()
            instance.logo = self.create_logo(app, instance.id)
            self.db2.commit()

            instance.mac = '92:1B:40:26:%02x:%02x' % (
                instance.id / 256, instance.id % 256 )
            self.db2.commit()

            # TODO
            self.set_ip( instance )
            self.binding_domain( instance )

            url = self.reverse_url('instance:view', instance.id)
            return self.redirect(url)

        # Something is wrong
        self.render( 'instance/create.html', **self.d )