Exemple #1
0
    def delete(self, id):
        environment = Environments.first(id=id)
        msg = "The jail could not be deleted."
        if environment:
            if Environments.delete(jail):
                msg = "Jail Type deleted."

        cherrypy.session['flash'] = msg

        raise cherrypy.HTTPRedirect('/environments')
Exemple #2
0
    def add(self, **post):
        environment = Environments.new(id="", code="", name="")
        if post:
            fields = ['code', 'name' ]
            data = self._get_data('environment', fields, post)
            self._set_data(environment, data)

            if environment.validates() and Environments.add(environment):
                cherrypy.session['flash'] = "Environment successfully added."
                raise cherrypy.HTTPRedirect("/environments")

            cherrypy.session['flash'] = "Invalid data."

        env = dict(
            environment = environment
        )
        return self.render("/environments/add.html", crumbs=self.crumbs, **env)
Exemple #3
0
 def view(self, environment):
     repo = YumRepositories.first(environment=environment)
     if not repo:
         cherrypy.session['flash'] = '404 Repository Not Found'
         raise cherrypy.HTTPRedirect('/repos/index')
     env = dict(
         repo=repo,
         env=Environments.first(id=repo.environment)
     )
     return self.render("/repos/view.html", crumbs=self.crumbs, **env)
Exemple #4
0
    def edit(self, id, **post):
        environment = Environments.first(id=id)
        if not environment:
            cherrypy.session['flash'] = "404 Environment Not Found"
            raise cherrypy.HTTPRedirect('/environments')

        if post:
            fields = ['name', 'code']
            data = self._get_data('environment', fields, post)
            if environment.update(data, fields):
                cherrypy.session['flash'] = "Environment successfully updated."
                raise cherrypy.HTTPRedirect('/environments')

        env=dict(environment = environment)
        return self.render("/environments/edit.html", crumbs=self.crumbs, **env)
Exemple #5
0
    def edit(self, id, **post):

        repo = YumRepositories.first(id=id)
        if not repo:
            raise cherrypy.HTTPRedirect('/repos')

        if 'repo' in post:
            if repo.validates(post['repo']):
                for k in post['repo']:
                    setattr(repo, k, post['repo'][k])
                YumRepositories.update(repo, ['data'])
                raise cherrypy.HTTPRedirect('/repos/view/%s' % id)

        env = dict(
            repo=repo,
            env=Environments.first(id=repo.environment)
        )
        return self.render("/repos/edit.html", crumbs=self.crumbs, **env)
Exemple #6
0
    def retrieve(self, request, pk=None):
        """
        get an entry detail by giving the pk key

        :param request: rest framework request
        :param pk: primary key
        :return: rest framework reaponse
        """
        if not pk:
            raise ParamNotEnoughException('id')
        try:
            instance = Environments.view(pk)
        except ObjectDoesNotExist:
            raise ObjectNotExistException(pk)
        # add the module information
        instance.details = instance.entries.all()
        serializer = EnvironmentSerializer(instance)
        return Response(serializer.data)
Exemple #7
0
    def add(self, **post):
        repo = YumRepositories.new(data="", environment="")
        if post:
            fields = ['data', 'environment']
            data = self._get_data('repo', fields, post)
            self._set_data(repo, data)

            if repo.validates() and YumRepositories.add(repo):
                cherrypy.session['flash'] = "Repo successfully added"
                raise cherrypy.HTTPRedirect("/repos/index")
            cherrypy.session['flash'] = "The repository data contains errors."

        # Only list environments not having a repo.
        repos = YumRepositories.all()
        environments = Environments.all()
        envs = [env.code for env in environments]
        repos = [repo.environment for repo in repos]
        available = set(envs) - set(repos)
        return self.render("/repos/add.html", crumbs=self.crumbs, environments=environments, available=available, repo=repo)
Exemple #8
0
    def add(self, **post):
        jail = Jails.new(id="", url="", name="", ip="", jail_type="", netmask="", environment="")
        if post:
            fields = ['name', 'url', 'ip', 'jail_type', 'netmask', 'environment']
            data = self._get_data('jail', fields, post)
            self._set_data(jail, data)

            if jail.validates() and Jails.add(jail):
                cherrypy.session['flash'] = "Jail successfully added"
                raise cherrypy.HTTPRedirect("/jails")
            cherrypy.session['flash'] = "The jail could not be created."

        env = dict(
                environments=Environments.all(),
                jailTypes=JailTypes.all(),
                jail=jail
        )

        return self.render("jails/add.html", crumbs=self.crumbs, **env)
Exemple #9
0
    def list(self, request):
        """
        get the environment list

        :param request: rest framework request
        :return:
        """
        try:
            index = int(request.query_params.get('index', 0))
        except ValueError:
            raise ParamTypeException('index')
        try:
            limit = int(request.query_params.get('limit', 8))
        except ValueError:
            raise ParamTypeException('limit')
        raw = Environments.list(index=index, limit=limit)
        serializer = EnvironmentSerializer(raw['datalist'], many=True)
        raw['datalist'] = serializer.data
        return Response(raw)
Exemple #10
0
    def edit(self, id, **post):
        jail = Jails.first(id=id)
        if not jail:
            cherrpy.session['flash'] = '404 Jail Not Found'
            raise cherrypy.HTTPRedirect('/jails/index')

        if post:
            fields = ['name', 'url', 'ip', 'jail_type', 'netmask', 'environment']
            data = self._get_data('jail', fields, post)
            tmp = Jails.new()
            self._set_data(tmp, data)
            if tmp.validates() and jail.update(data, fields):
                cherrypy.session['flash'] = "Jail successfully updated."
                raise cherrypy.HTTPRedirect("/jails")
            cherrypy.session['flash'] = "The jail could not be updated."

        env = dict(
                environments=Environments.all(),
                jailTypes=JailTypes.all(),
                jail=jail
        )

        return self.render("jails/edit.html", crumbs=self.crumbs, **env)
Exemple #11
0
 def update(self, request, pk=None):
     """
     update a
     :param request:
     :param pk:
     :return:
     """
     if not pk:
         raise ParamNotEnoughException('id')
     try:
         instance = Environments.view(pk=pk)
     except ObjectDoesNotExist:
         raise ObjectNotExistException(pk)
     serializer = EnvironmentSerializer(data=request.data)
     if serializer.is_valid(raise_exception=True):
         instance.name = serializer.validated_data['name']
         instance.description = serializer.validated_data.get(
             'description', instance.description)
         try:
             instance.save()
         except IntegrityError:
             raise DBIntegrityException(instance.name)
         return Response(EnvironmentSerializer(instance).data)
Exemple #12
0
 def GET(self):
     envs = Environments.all()
     return [e.to_dict() for e in envs]
Exemple #13
0
 def index(self):
     env = dict(
         repos=YumRepositories.all(),
         environments=Environments.all()
     )
     return self.render("/repos/index.html", crumbs=self.crumbs[:-1], **env)
Exemple #14
0
 def index(self):
     env = dict(environments=Environments.all())
     return self.render("/environments/index.html", crumbs=self.crumbs[:-1], **env)