Exemplo n.º 1
0
    def delete(self, id):
        """
        Delete container
        :param id:
        :return status code
        """

        populate_containers_table()
        current_identity = import_user()

        try:
            c = Container.query.get(id)
            print(c)
        except:
            api.abort(code=404, message='Container doesn\'t exists')

        if id in current_identity.containers or current_identity.admin:
            res = lgw.lxd_api_delete('containers/' + c.name)
            print(res.text)
            if res.status_code == 400:
                api.abort(code=400, message='Container is running')
            if res.status_code == 404:
                api.abort(code=404, message='Container not found')
            if res.status_code == 202:
                db.session.delete(c)
                db.session.commit()
                return {}, 204
        else:
            api.abort(code=404, message='Container not found')
Exemplo n.º 2
0
    def delete(self, id, name):
        """
        Delete snapshot
        """
        current_identity = import_user()
        instance = Instance.query.get(id)
        lxdserver = Server.query.filter_by(name=instance.location).first()

        if instance.name and (id in current_identity.instances
                              or current_identity.admin):
            try:
                resx = lgw.lxd_api_get(
                    lxdserver,
                    'instances/' + instance.name + '/snapshots/' + name)
                app.logger.info('User: %s deleting snapshot on container %s',
                                current_identity.username, instance.name)
                if resx:
                    try:
                        res = lgw.lxd_api_delete(
                            lxdserver, 'instances/' + instance.name +
                            '/snapshots/' + name)
                        return {}, 204
                    except:
                        api.abort(code=500, message='Error deleting snapshot')
            except:
                api.abort(code=404, message='Snapshot doesn\'t exists')

        api.abort(code=404, message='Instance doesn\'t exists')
Exemplo n.º 3
0
 def delete(self, server, alias):
     """
     Delete alias
     """
     lxdserver = Server.query.filter_by(name=server).first()
     app.logger.info('User: %s deleting image alias %s',
                     import_user().username, alias)
     res = lgw.lxd_api_delete(lxdserver, 'images/aliases/' + alias)
     return res.json()['metadata']
Exemplo n.º 4
0
 def delete(self, url, server, name):
     """
     Delete 'universal'
     """
     lxdserver = Server.query.filter_by(name=server).first()
     app.logger.info('User: %s deleting something on %s',
                     import_user().username, url)
     res = lgw.lxd_api_delete(lxdserver, url + '/' + name)
     return res.json()['metadata']
Exemplo n.º 5
0
    def delete(self, id):
        """
        Delete instance
        :param id:
        :return status code
        """

        populate_instances_table()
        current_identity = import_user()

        try:
            c = Instance.query.get(id)
            lxdserver = Server.query.filter_by(name=c.location).first()
            # print(c)
        except:
            api.abort(code=404, message='Instance doesn\'t exists')

        if id in current_identity.instances or current_identity.admin:

            app.logger.info('User: %s deleting container %s',
                            current_identity.username, c.name)

            res = lgw.lxd_api_delete(lxdserver, 'instances/' + c.name)
            # print(res.status_code)
            if res.status_code == 400:
                api.abort(code=404, message='Instance is running')
            if res.status_code == 404:
                api.abort(code=404, message='Instance not found')
            if res.status_code == 202:
                db.session.delete(c)
                db.session.commit()
                return {}, 204

            # Delete redis cache
            redis_store.delete('server:' + lxdserver.name + ':instance:' +
                               c.name + ':info')
            redis_store.delete('server:' + lxdserver.name + ':instance:' +
                               c.name + ':state')

        else:
            api.abort(code=404, message='Instance not found')