def get(self): IP = self.prepare_kwargs.get('IP', None) if not IP: return I = IP.instance if not I: return self.write(_('No binding instance.')) IP.instance_id = None self.db.commit() msg = _('free ip %(ip)s from instance %(id)s manually.') % { 'ip': IP.ip, 'id': I.id } add_trace(self, ttype='IP', tid=IP.id, do=msg) I.update_network() self.db.commit() url = self.reverse_url('myun:instance:view') url += '?id=%s' % I.id self.redirect(url)
def set_ip(self, I): pool_count = self.db.query(NetworkPool.id).count() if pool_count < 1: logging.warning('Have not find available network pool.') return # TODO: get the default network pool free_ip = None for pool in self.db.query(NetworkPool): free_ip = pool.get_free_ip() if free_ip: break if not (free_ip and not free_ip.instance_id): logging.warning('Have not find available ip.') return free_ip.instance_id = I.id self.db.commit() I.update_network() self.db.commit() msg = _('get ip %(ip)s for instance %(id)s') % { 'ip': free_ip.ip, 'id': I.id } add_trace(self, ttype='IP', tid=free_ip.id, do=msg) self.db.commit()
def set_ip(self, I): pool_count = self.db.query(NetworkPool.id).count() if pool_count < 1: logging.warning('Have not find available network pool.') return # TODO: get the default network pool free_ip = None for pool in self.db.query(NetworkPool): free_ip = pool.get_free_ip() if free_ip: break if not ( free_ip and not free_ip.instance_id ): logging.warning('Have not find available ip.') return free_ip.instance_id = I.id self.db.commit() I.update_network() self.db.commit() msg = _('get ip %(ip)s for instance %(id)s') % { 'ip': free_ip.ip, 'id': I.id } add_trace(self, ttype='IP', tid=free_ip.id, do=msg) self.db.commit()
def post(self): I = self.I form = self.prepare_kwargs['form'] if form.validate(): IP = form._free_ip if IP and not IP.instance_id: IP.instance_id = I.id self.db.commit() I.update_network() self.db.commit() msg = _('get ip %(ip)s for instance %(id)s manually.') % { 'ip': IP.ip, 'id': I.id } add_trace(self, ttype='IP', tid=IP.id, do=msg) url = self.reverse_url('myun:instance:view') url += '?id=%s' % I.id return self.redirect(url) self.render()
def post(self): I, msg = self.get_instance_byid() if not I: return self.myfinish(msg) if I.is_running: return self.myfinish( _('Instance %s is running, can not delete it.') % I.id) # TODO: delete domain binding self.unbinding_domain(I) instance_id = I.id I.status = DELETED_S I.name = '_deleted_%s_' % I.id self.db.commit() for x in I.ips: for y in x.ports: y.ip_id = None y.ip_port = None x.instance_id = None x.updated = datetime.datetime.now() for x in I.domains: self.db.delete(x) for x in I.storages: self.db.delete(x) self.db.commit() # delete instance files ret = self.run_job(I, JOB_ACTION['DESTROY_INSTANCE']) if ret: code = 1 else: ret = self.trans(_('Task starts successfully.')) code = 0 # TODO: ret += ' %s' % I.id add_trace(self, ttype='INSTANCE', tid=instance_id, do=_('delete instance')) self.myfinish(data=ret, status=code)
def post(self): I, msg = self.get_instance_byid() if not I: return self.myfinish( msg ) if I.is_running: return self.myfinish( _('Instance %s is running, can not delete it.') % I.id ) # TODO: delete domain binding self.unbinding_domain( I ) instance_id = I.id I.status = DELETED_S I.name = '_deleted_%s_' % I.id self.db.commit() for x in I.ips: for y in x.ports: y.ip_id = None y.ip_port = None x.instance_id = None x.updated = datetime.datetime.now() for x in I.domains: self.db.delete(x) for x in I.storages: self.db.delete(x) self.db.commit() # delete instance files ret = self.run_job(I, JOB_ACTION['DESTROY_INSTANCE']) if ret: code = 1 else: ret = self.trans(_('Task starts successfully.')) code = 0 # TODO: ret += ' %s' % I.id add_trace( self, ttype = 'INSTANCE', tid = instance_id, do = _('delete instance') ) self.myfinish( data = ret, status = code )
def post(self): A = self.prepare_kwargs['APPLIANCE'] E = [] U = None user = self.get_argument('user', 0) if user: if user.isdigit(): U = self.db.query(User).get(user) if not U: U = self.db.query(User).filter_by(username=user).first() if U: old_owner = A.user.username new_owner = U.username A.user = U self.db.commit() # save trace do = _('change owner %(old)s to %(new)s') % { 'old': old_owner, 'new': new_owner } reason = self.get_argument('reason', None) if reason: do += ' : %s' % reason add_trace(self, ttype='APPLIANCE', tid=A.id, do=do) # TODO: send reason to user url = self.reverse_url('admin:appliance:view') url += '?id=%s' % A.id return self.redirect(url) else: E.append(_('Can not find user %s') % user) else: E.append(_('No user input !')) self.render(ERROR=E)
def post(self): A = self.prepare_kwargs['APPLIANCE'] E = [] U = None user = self.get_argument('user', 0) if user: if user.isdigit(): U = self.db.query(User).get(user) if not U: U = self.db.query(User).filter_by( username = user ).first() if U: old_owner = A.user.username new_owner = U.username A.user = U self.db.commit() # save trace do = _('change owner %(old)s to %(new)s') % { 'old': old_owner, 'new': new_owner } reason = self.get_argument('reason', None) if reason: do += ' : %s' % reason add_trace(self, ttype='APPLIANCE', tid=A.id, do=do) # TODO: send reason to user url = self.reverse_url('admin:appliance:view') url += '?id=%s' % A.id return self.redirect( url ) else: E.append( _('Can not find user %s') % user ) else: E.append( _('No user input !') ) self.render(ERROR = E)
def change_owner(self): I = self.instance d = { 'title': self.trans(_('Change owner of instance')), 'I': I } E = [] U = None if self.request.method == 'POST': user = self.get_argument('user', 0) if user: if user.isdigit(): U = self.db.query(User).get(user) if not U: U = self.db.query(User).filter_by(username=user).first() if not U: E.append( self.trans(_('Can not find user: %s')) % user ) else: E.append( self.trans(_('No user input !')) ) reason = self.get_argument('reason', '') do = _('change instance owner %(old)s to %(new)s: \ %(reason)') % { 'old': I.user.username, 'new': U.username, 'reason': reason } add_trace(self, ttype='INSTANCE', tid=I.id, do=do) if E: d['ERROR'] = E else: # TODO: send reason to user url = self.reverse_url('admin:instance') url += '?id=%s' % I.id return self.redirect( url ) self.render( 'admin/instance/change_owner.html', **d)
def get(self): IP = self.prepare_kwargs.get('IP', None) if not IP: return I = IP.instance if not I: return self.write( _('No binding instance.') ) IP.instance_id = None self.db.commit() msg = _('free ip %(ip)s from instance %(id)s manually.') % { 'ip': IP.ip, 'id': I.id } add_trace(self, ttype='IP', tid=IP.id, do=msg) I.update_network() self.db.commit() url = self.reverse_url('myun:instance:view') url += '?id=%s' % I.id self.redirect( url )
def post(self): I = self.I form = self.prepare_kwargs['form'] if form.validate(): IP = form._free_ip if IP and not IP.instance_id: IP.instance_id = I.id self.db.commit() I.update_network() self.db.commit() msg = _('get ip %(ip)s for instance %(id)s manually.') % { 'ip': IP.ip, 'id': I.id } add_trace(self, ttype='IP', tid=IP.id, do=msg) url = self.reverse_url('myun:instance:view') url += '?id=%s' % I.id return self.redirect( url ) self.render()