Example #1
0
def form(request, id=False):
    if id:
        instance = get_object_or_404(Project, id=id, deleted=False)
        title = _("Edit project")
        msg = "Vellykket endret prosjekt"
        pid = instance.pid
    else:
        instance = Project()
        msg = "Vellykket lagt til nytt prosjekt"
        title = _("New project")
        pid = Project.calculate_next_pid()

    #Save and set to active, require valid form
    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=instance)
        if form.is_valid():
            o = form.save(commit=False)
            o.owner = request.user
            o.save(no_allemployee_group_permissions=True)
            request.message_success(msg)

            return redirect(view, o.id)

    else:
        form = ProjectForm(instance=instance, initial={'pid': pid})

    return render(request, "projects/form.html", {
        'title': title,
        'project': instance,
        'form': form
    })
Example #2
0
def form (request, id=False):
    if id:
        instance = get_object_or_404(Project, id=id, deleted=False)
        title = _("Edit project")
        msg = "Vellykket endret prosjekt"
        pid = instance.pid
    else:
        instance = Project()
        msg = "Vellykket lagt til nytt prosjekt"
        title = _("New project")
        pid = Project.calculate_next_pid()

    #Save and set to active, require valid form
    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=instance)
        if form.is_valid():
            o = form.save(commit=False)
            o.owner = request.user
            o.save(no_allemployee_group_permissions=True)
            request.message_success(msg)

            return redirect(view, o.id)

    else:
        form = ProjectForm(instance=instance, initial={'pid': pid})

    return render(request, "projects/form.html", {'title': title, 'project': instance, 'form': form})
Example #3
0
 def get(self, request):
     users = User.get_users(status=None)
     projects = Project.get_projects()
     return render(request, "index.html", {
         "users": serializers.serialize('json', users),
         "projects": serializers.serialize('json', projects),
     })
    def export(self):
        try:
            self.log("Starting usage export. Date: " + str(self.date))

            date_str = self.date.isoformat()
            usage_records = ELKClient().find_usage_records(
                self.region, None, date_str, date_str)
            records = UsageRecordBuilder(self.region).build_usage_report(
                usage_records, date_str, date_str)

            base_document = self.create_base_document()
            records_grouped_by_project = dict()
            for record in records['usage']:
                record_list = records_grouped_by_project.get(
                    record['project_id'], [])
                if not record_list:
                    records_grouped_by_project[
                        record['project_id']] = record_list
                record_list.append(record)

            for project_id, record_list in records_grouped_by_project.iteritems(
            ):
                project = Project.find_by_uuid(project_id)
                base_document['distribuicao'].append(
                    self.create_distribution(project, record_list))

            self._send(base_document)
        except:
            self.log("Error", 'exception')
Example #5
0
 def get(self, request):
     users = User.get_users(status=None)
     projects = Project.get_projects()
     return render(
         request, "index.html", {
             "users": serializers.serialize('json', users),
             "projects": serializers.serialize('json', projects),
         })
Example #6
0
def userhome():
    if request.method == "POST":
        if request.form["create"]:
            if not g.user.projects.filter_by(id=5).first():
                project_name = request.form["project_name"]
                if not Project.query.filter_by(project_name=project_name).first():
                    new_project = Project(project_name=project_name)
                    db.session.add(new_project)
                    db.session.commit()
                    flash("Project created!")
                    return redirect(url_for("project_home", project_id=new_project.id))
                else:
                    flash("Project name already exists!")
                    return redirect("/userhome")
            else:
                flash("Max project limit reached")
                return redirect("/userhome")
    projects = g.user.projects.all()
    return render_template("userhome.html", projects=projects)
Example #7
0
def add(request):
    form = ProjectFormSimple(request.POST, instance=Project())

    if form.is_valid():
        a = form.save()

        return HttpResponse(simplejson.dumps({
            'name': a.project_name,
            'id': a.id,
            'valid': True
        }),
                            mimetype='application/json')

    else:
        errors = dict([(field, errors[0])
                       for field, errors in form.errors.items()])

        return HttpResponse(simplejson.dumps({
            'errors': errors,
            'valid': False
        }),
                            mimetype='application/json')

    return HttpResponse("ERROR")
    def build_usage_report(self, aggregations, start, end):
        records = {"usage": []}

        records_grouped_by_type = {'Running VM': [], 'Allocated VM': []}

        for project_bucket in aggregations['by_project']['buckets']:
            project_id = project_bucket['key']
            project = next(
                (x for x in self.projects if x.get('id') == project_id),
                dict())
            local_project = Project.find_by_uuid(project_id)

            for resource_type_bucket in project_bucket['by_type']['buckets']:
                usage_type = resource_type_bucket['key']

                for offering_bucket in resource_type_bucket['by_offering'][
                        'buckets']:
                    offering_struct = offering_bucket['key'].split('|')
                    offering_id = offering_struct[0] or None
                    offering_name = offering_struct[1] or None
                    offering_cpu = offering_struct[2] or None
                    offering_ram = offering_struct[3] or None
                    raw_usage = float(offering_bucket['rawusage_sum']['value'])

                    if raw_usage > app.config['USAGE_MINIMUM_TIME']:
                        account = project.get('account', '-')
                        domain = project.get('domain', '-')

                        usage_record = {
                            'project_id':
                            local_project.uuid
                            if local_project else project_id,
                            'project_name':
                            local_project.name if local_project else '-',
                            'type':
                            usage_type,
                            'start_date':
                            start,
                            'end_date':
                            end,
                            'offering_id':
                            offering_id,
                            'offering_name':
                            offering_name,
                            'offering_cpu':
                            offering_cpu,
                            'offering_ram':
                            offering_ram,
                            'usage':
                            raw_usage,
                            'account':
                            account,
                            'domain':
                            domain,
                            'region':
                            self.region.upper()
                        }
                        records['usage'].append(usage_record)
                        records_grouped_by_type[usage_type].append(
                            usage_record)

        self._calculate_allocated_vm_time(records_grouped_by_type, records)

        return records