def host_new(site_id): """ Create a new host. """ siteobj = mmlib.get_site(SESSION, site_id) if siteobj is None: flask.abort(404, 'Site not found') form = forms.AddHostForm() if form.validate_on_submit(): host = model.Host() SESSION.add(host) host.site_id = siteobj.id form.populate_obj(obj=host) host.bandwidth_int = int(host.bandwidth_int) host.asn = None if not host.asn else int(host.asn) try: SESSION.flush() flask.flash('Host added') except SQLAlchemyError as err: SESSION.rollback() flask.flash('Could not create the new host') APP.logger.debug('Could not create the new host') APP.logger.exception(err) SESSION.commit() return flask.redirect(flask.url_for('site_view', site_id=site_id)) return flask.render_template( 'host_new.html', form=form, site=siteobj, )
def host_view(host_id): """ Create a new host. """ hostobj = mmlib.get_host(SESSION, host_id) if hostobj is None: flask.abort(404, 'Host not found') form = forms.AddHostForm(obj=hostobj) if form.validate_on_submit(): form.populate_obj(obj=host) host.bandwidth_int = int(host.bandwidth_int) host.asn = None if not host.asn else int(host.asn) try: SESSION.flush() flask.flash('Host updated') except SQLAlchemyError as err: SESSION.rollback() flask.flash('Could not update the host') APP.logger.debug('Could not update the host') APP.logger.exception(err) SESSION.commit() return flask.redirect(flask.url_for('host_view', host_id=host_id)) return flask.render_template( 'host.html', form=form, host=hostobj, )
def host_view(host_id): """ Create a new host. """ hostobj = mmlib.get_host(SESSION, host_id) if hostobj is None: flask.abort(404, 'Host not found') form = forms.AddHostForm(obj=hostobj) if form.validate_on_submit(): form.populate_obj(obj=hostobj) hostobj.bandwidth_int = int(hostobj.bandwidth_int) hostobj.asn = None if not hostobj.asn else int(hostobj.asn) try: SESSION.flush() flask.flash('Host updated') except SQLAlchemyError as err: # pragma: no cover # We cannot check this because the code updates data therefore # the only situation where it could fail is a failure at the # DB server level itself. SESSION.rollback() flask.flash('Could not update the host') APP.logger.debug('Could not update the host') APP.logger.exception(err) SESSION.commit() return flask.redirect(flask.url_for('host_view', host_id=host_id)) return flask.render_template( 'host.html', form=form, host=hostobj, )
def host_view(host_id): """ Create a new host. """ topic = 'host.updated' hostobj = mmlib.get_host(SESSION, host_id) if hostobj is None: flask.abort(404, 'Host not found') if not (is_site_admin(flask.g.fas_user, hostobj.site) or is_mirrormanager_admin(flask.g.fas_user)): flask.abort(403, 'Access denied') form = forms.AddHostForm(obj=hostobj) if form.validate_on_submit(): admin_active = hostobj.admin_active private = hostobj.private form.populate_obj(obj=hostobj) hostobj.bandwidth_int = int(hostobj.bandwidth_int) hostobj.asn = None if not hostobj.asn else int(hostobj.asn) # If the user is *not* an admin, keep the current admin_active flag if not is_mirrormanager_admin(flask.g.fas_user): hostobj.admin_active = admin_active # If the private flag has been changed, invalidate mirrors if hostobj.private != private: hostobj.set_not_up2date(SESSION) message = dict( site_id=hostobj.site_id, host_id=host_id, bandwidth=hostobj.bandwidth_int, asn=hostobj.asn) try: SESSION.flush() flask.flash('Host updated') fedmsg_publish(topic, message) except SQLAlchemyError as err: # pragma: no cover # We cannot check this because the code updates data therefore # the only situation where it could fail is a failure at the # DB server level itself. SESSION.rollback() flask.flash('Could not update the host') APP.logger.debug('Could not update the host') APP.logger.exception(err) SESSION.commit() return flask.redirect(flask.url_for('host_view', host_id=host_id)) return flask.render_template( 'host.html', form=form, host=hostobj, )
def host_new(site_id): """ Create a new host. """ topic = 'host.added' siteobj = mmlib.get_site(SESSION, site_id) if siteobj is None: flask.abort(404, 'Site not found') if not (is_site_admin(flask.g.fas_user, siteobj) or is_mirrormanager_admin(flask.g.fas_user)): flask.abort(403, 'Access denied') form = forms.AddHostForm() if form.validate_on_submit(): host = model.Host() SESSION.add(host) host.site_id = siteobj.id form.populate_obj(obj=host) host.admin_active = True host.bandwidth_int = int(host.bandwidth_int) host.asn = None if not host.asn else int(host.asn) message = dict( site_id=host.site_id, bandwidth=host.bandwidth_int, asn=host.asn) try: SESSION.flush() flask.flash('Host added') fedmsg_publish(topic, message) except SQLAlchemyError as err: SESSION.rollback() flask.flash('Could not create the new host') APP.logger.debug('Could not create the new host') APP.logger.exception(err) SESSION.commit() return flask.redirect(flask.url_for('site_view', site_id=site_id)) return flask.render_template( 'host_new.html', form=form, site=siteobj, )