Esempio n. 1
0
    def post(self, *args):
        if len(args) >= 1:
            name = args[0]
            project = Projects(name)
            for key, value in self.request.arguments.iteritems():
                if key in ("git_url", "version", "build_cmd", "install_cmd"):
                    setattr(project, key, value[0])
            project.save()

        try:
            if not Projects(self.get_argument('name')).exists():
                raise
        except Exception, e:
            project = Projects()
            project.name = self.get_argument('name')[0]
            project.git_url = self.get_argument('git_url')[0]
            for name, parm in self.request.arguments.iteritems():
                if name not in ('branch', 'version'):
                    setattr(project, str(name), parm[0])
            try:
                project.add_branch(self.get_argument('branch'))
                project.version(self.get_argument('branch'),
                                self.get_argument('version'))
                project.group_name = self.get_argument('group_name')
                project.save()
                log.msg('Project created:', project.name)

                self.write(cyclone.escape.json_encode({'status': 'ok'}))
            except Exception, e:
                log.err()
                self.write(cyclone.escape.json_encode({'status': "fail"}))
Esempio n. 2
0
def select_client(client_selection):
    client_label['text'] = f'Client: {client_selection}'
    project = Projects(workspaceId, clients.clients[client_selection])
    toggle_client_selection_off()
    scratch_pad.focus_set()
    payload['start'] = datetime.now(tz=timezone.utc).isoformat().replace(
        "+00:00", "Z")
    project_name_and_id.update(
        {p['name']: p['id']
         for p in project.project_client})
    if len(project_name_and_id) > 1:
        project_frame = ProjectButtons(button_frame, borderwidth=5)
        project_frame.grid(row=0, column=1, sticky=tk.NSEW)
        project_buttons = [
            ttk.Button(
                project_frame,
                text=project_item,
                command=lambda project_item=project_item: select_project(
                    project_name_and_id[project_item], project_frame))
            for project_item in project_name_and_id.keys()
        ]

        set_button_location(project_buttons)
    else:
        payload['projectId'] = [
            value for value in project_name_and_id.values()
        ][0]
Esempio n. 3
0
    def __init__(self, project):
        self.project = Projects(project)
        self.templates_dir = BrickConfig().get('workspace', 'template_dir')
        self.git = git.Git(self.project)
        self.build_system = BrickConfig().get('build', 'system')
        self.build_options = BuildOptions(self.git.workdir)

        self.build_container = None
        self.workspace = "%s/%s" % (
            BrickConfig().get('workspace', 'dir'),
            self.project.name,
        )

        self.real_workspace = "%s/%s" % (BrickConfig().get(
            'workspace', 'dir'), self.project.name)

        if self.build_system == 'rpm':
            self.mod_install_cmd = self.project.install_cmd.replace(
                'BUILDROOT', '%{buildroot}')
        elif self.build_system == 'deb' or self.build_system == None:
            self.mod_install_cmd = self.project.install_cmd.replace(
                'BUILDROOT', 'debian/tmp')
        if not os.path.isdir(self.workspace):
            os.makedirs(self.workspace)

        if not os.path.isdir(os.path.join(self.workspace, 'log')):
            os.makedirs(os.path.join(self.workspace, 'log'))

        self.stdout = None
        self.stderr = self.stdout
    def __init__(self, changelog_reader):
        # Administrator keyids.
        # Return a *deterministic* "keyid" for the snapshot administrator.
        # WARNING: Do *NOT* reuse this value anywhere else!
        # It just so happens that a SHA-256 hex digest is as long as our keyid.
        self.__snapshot_administrator_keyid = \
                              MetadataWriter.get_sha256('snapshot'.encode('utf-8'))
        self.__projects_administrator_keyid = MetadataWriter.get_random_keyid()
        self.__projects_subordinates_keyid = self.__projects_administrator_keyid

        # Administrator keyvals.
        self.__keyid_to_keyval = {
            self.__snapshot_administrator_keyid:
            MetadataWriter.get_random_ed25519_keyval(),
            self.__projects_administrator_keyid:
            MetadataWriter.get_random_ed25519_keyval()
        }

        # Administrator versions.
        self.__snapshot_administrator_version = 0
        self.__projects_administrator_version = 0

        # A map of which projects subordinates are responsible for which projects.
        # str (role name): {str} (set of project names)
        self._projects_subordinates_to_projects = {}
        # str (role name): int (version number > 0)
        self._projects_subordinates_to_version = {}

        # This object takes care of projects and their packages, keys, etc.
        self.__projects = Projects(changelog_reader)

        # Custom setup routine here.
        self._setup()
Esempio n. 5
0
    def __init__(self, runtime_env, ini_file="config.ini", os=None):
        self.logger = Logger(log_level=0, console_level=3)
        self.sts = Settings(self.logger, runtime_env, ini_file=ini_file)  # sts
        self.logger.set_console_level(self.sts.debug_level)
        self.logger.set_log_level(0)
        self.comfun = CommonFunctions(self.logger)

        if os is None:
            self.os = platform.system()
            if self.os == "Windows":
                self.os = "w"
            elif self.os == "Linux":
                self.os = "l"
            else:
                self.os = None

        # abbreviation for very often used variables, helping with identification the main modules
        self.usr = Users(self)  # usr
        self.prj = Projects(self)  # prj
        self.sch = Schemas(self)  # sch
        self.tsk = Tasks(self)  # tsk
        self.que = Queue(self)  # que
        self.nod = SimNodes(self)  # nod
        self.dfn = Definitions(self)  # dfn
        self.sio = StorageInOut(self)  # sio
        #  abbreviation  END

        self.logger.inf("SimBatch started")
Esempio n. 6
0
 def post(self, project_name):
     try:
         project = Projects(project_name)
         git = Git(project)
         git.clear_repo()
         self.write(cyclone.escape.json_encode({'status': 'ok'}))
     except Exception, e:
         self.write(
             cyclone.escape.json_encode({
                 'status': 'fail',
                 'error': str(e)
             }))
Esempio n. 7
0
    def __init__(self,
                 username=None,
                 password=None,
                 access_token=None,
                 request=None):

        self.request = request or PlayNicelyRequest(username, password)

        self.projects = Projects(self.request)
        self.milestones = Milestones(self.request)
        self.items = Items(self.request)
        self.users = Users(self.request)
        self.echo = Echo(self.request)
Esempio n. 8
0
def execute(cfg):
    users = Users(cfg).run()
    base.storage('users', users)

    groups = Groups(cfg).run()
    base.storage('groups', groups)

    members = GroupsMembers(cfg, users, groups).run()
    base.storage('groups-members', members)

    projects = Projects(cfg, users['target'], groups['target']).run()
    base.storage('projects', projects)

    Repositories(cfg, projects['source']).run()
Esempio n. 9
0
 def delete(self, name):
     log.msg("deleting project %s" % name)
     try:
         project = Projects(name)
         git = Git(project)
         git.clear_repo()
         project.clear_branches()
         project.delete()
         self.write(
             cyclone.escape.json_encode({'status': 'project deleted'}))
     except Exception, e:
         log.err(e)
         self.write(
             cyclone.escape.json_encode(
                 {'status': 'failed to delete %s' % str(e)}))
Esempio n. 10
0
    def get(self, name='', branch='master'):
        try:
            if name:
                project = Projects(name)
                reply = {
                    'name': project.name,
                    'branch': project.branches(),
                    'experimental': int(project.experimental),
                    'group_name': project.group_name,
                    'git_url': project.git_url,
                    'version': project.version(),
                    'last_tag_testing': project.last_tag(tag_type='testing'),
                    'last_tag_stable': project.last_tag(tag_type='stable'),
                    'last_tag_unstable': project.last_tag(tag_type='unstable'),
                    'last_commit': project.last_commit(branch)
                }

            else:
                projects = Projects.get_all()
                reply = []
                for project in projects:
                    reply.append({
                        'name':
                        project.name,
                        'branch':
                        project.branches(),
                        'experimental':
                        int(project.experimental),
                        'group_name':
                        project.group_name,
                        'git_url':
                        project.git_url,
                        'version':
                        project.version(),
                        'last_tag_testing':
                        project.last_tag(tag_type='testing'),
                        'last_tag_stable':
                        project.last_tag(tag_type='stable'),
                        'last_tag_unstable':
                        project.last_tag(tag_type='unstable'),
                        'last_commit':
                        project.last_commit(branch)
                    })

            self.write(cyclone.escape.json_encode(reply))
        except Exception, e:
            self.write(cyclone.escape.json_encode("%s No project found" % e))
Esempio n. 11
0
    def post(self, project_name):
        project = Projects(project_name)
        release = self.get_argument('tag')
        version = self.get_argument('version')
        commit = self.get_argument('commit', default=None)

        reactor.callInThread(
            queue.enqueue, 'build', 'builder.build_project', {
                'project': project.name,
                'branch': 'master',
                'release': release,
                'version': version,
                'commit': commit,
            })
        self.write(
            cyclone.escape.json_encode(
                {'status': 'build of branch %s scheduled' % release}))
Esempio n. 12
0
 def post(self, project_name):
     branch = self.get_argument('branch')
     project = Projects(project_name)
     if branch in project.branches():
         self.write(
             cyclone.escape.json_encode(
                 {'status': 'failed: branch already exist'}))
     else:
         project.add_branch(branch)
         project.version(branch, '0.1')
         reactor.callInThread(
             queue.enqueue, 'build', 'builder.build_project', {
                 'project': project.name,
                 'branch': self.get_argument('branch'),
                 'release': 'experimental'
             })
         self.write(cyclone.escape.json_encode({'status': 'ok'}))
Esempio n. 13
0
def execute(cfg):
    # cachepath = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),'cache')

    users = Users(cfg).run()
    #with open(cachepath + '/users.json','r') as f:
    #	users = json.load(f)

    groups = Groups(cfg).run()
    #with open( cachepath + '/groups.json','r') as f:
    #	groups = json.load(f)

    members = GroupsMembers(cfg, users, groups).run()

    projects = Projects(cfg, users, groups).run()
    # with open( cachepath + '/projects.json','r') as f:
    # 	projects = json.load(f)

    Repositories(cfg, projects).run()
Esempio n. 14
0
    def put(self, name):
        project = Projects(name)
        try:
            for aname, arg in self.request.arguments.iteritems():
                if aname in ('branch'):
                    branch = arg
                else:
                    setattr(project, aname, arg[0])

            json_data = json.loads(self.request.body)
            if len(json_data.keys()) > 0:
                for k, v in json_data.iteritems():
                    setattr(project, k, v)

            project.save()
        except Exception, e:
            log.err(e)
            self.finish(cyclone.escape.json_encode({'status': 'fail'}))
Esempio n. 15
0
        def display_search(project_list):
            # create a list of all projects matching serch criteria, if customer name list all projects beling to naem or names
            projects_tree.grid(row=1, column=0, columnspan=8)
            projects_tree.delete(*projects_tree.get_children())

            if type(project_list) == list:
                _list = []
                for project in project_list:
                    _list.append(
                        Projects(
                            project[1],
                            project[2],
                            project[3],
                            project[4],
                            project[5],
                            project[6],
                            project[7],
                            project[8],
                            project[9],
                            project[10],
                            project[11],
                            project[12],
                            project[13],
                            project[14],
                            project[0],
                        ))
                project_list = _list

            for projects in project_list:
                projects_tree.insert('',
                                     'end',
                                     text='project details',
                                     values=(
                                         Customer.get_customer_name_by_id(
                                             projects.customer_id),
                                         projects.project_name,
                                         projects.primary_contact,
                                         projects.project_reference,
                                         projects.project_address,
                                         projects.project_postcode,
                                         projects.project_triage,
                                         projects.project_id,
                                         projects.customer_id,
                                     ))
Esempio n. 16
0
        def add_project_to_db(entry_list):
            # take all the details from the page and add a new prject, make sure to check that the input is valid
            # and that the project does not exsist
            #get the info from the boxes, pass it to the project method

            new_project = Projects(
                entry_list['Customer ID'].get(),
                entry_list['Project Name'].get(),
                entry_list['Project Reference'].get(),
                entry_list['Project Address'].get(),
                entry_list['Project Postcode'].get(),
                entry_list['Primary Contact'].get(),
                entry_list['Project Type'].get(),
                entry_list['Project Price Approx'].get(),
                '',
                entry_list['Project Expected Profit'].get(),
                '',
                entry_list['Project Triage'].get(),
                entry_list['Project Lead MES'].get(),
                '',
                '',
            )
            # print(new_project)
            new_project.save_to_db()
Esempio n. 17
0
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

import logging
import os
import time
from optparse import OptionParser

from jsonbackend import JsonBackend
from projects import Projects


projects = Projects()


def init_logging():
    logfile = 'builder.log'

    if os.path.isfile(logfile):
        os.remove(logfile)

    logging.basicConfig(filename=logfile, level=logging.DEBUG)
    logger = logging.getLogger('')
    console = logging.StreamHandler()
    console.setLevel(logging.INFO)
    logger.addHandler(console)

Esempio n. 18
0
 def post(self, project_name):
     project = Projects(project_name)
     builder = Builder(project_name)
     builder.build_project()
Esempio n. 19
0
 def delete(self, project_name):
     project = Projects(project_name)
     branch = self.get_argument('branch')
     project.remove_branch(branch)
     self.write(cyclone.escape.json_encode({'status': 'ok'}))
Esempio n. 20
0
 def get(self, project_name):
     project = Projects(project_name)
     git = Git(project)
     branches = git.branches(remote=True)
     self.write(cyclone.escape.json_encode({'branches': branches}))
Esempio n. 21
0
import datetime
import calendar
import tkinter as tk
from tkinter import ttk
import hud as Hud
from customer import Customer
from database import Database
from projects import Projects
from tasks import Tasks
from tkcalendar import Calendar
from tkcalendar import DateEntry

current_customer = Customer('', '', '', '', '', '', '', '')
current_project = Projects('', '', '', '', '', '', '', '', '', '', '', '', '',
                           '', '')
current_task = Tasks('', '', '', '', '', '', '', '')
task_frame_count = []

LARGE_FONT = ('Verdaba', 12)


def convert_date_postgres(date_to_conv, I_or_O):
    # if I prepare for input, if O prepare for output
    if I_or_O.lower() == 'i':
        year_to = date_to_conv[6:10]
        month_to = date_to_conv[3:5]
        day_to = date_to_conv[0:2]
        iso = f'{year_to}-{month_to}-{day_to}'
        return iso

    if I_or_O.lower() == 'o':
Esempio n. 22
0
	usage()

try:
	srcSys = opts['-s']
	dstSys = opts['-d']
	grpNam = opts['-g']
except KeyError:
	usage()

# create a group itself	
grp = Groups()
try:
	srcGid = grp.by_name(srcSys, grpNam)['id']
except KeyError:
	usage("Group with name '%s' doesn't exist in the source system" % grpNam)
dstGid = grp.add(dstSys, grpNam)['id']

# add members to the group
add_members(grp, srcGid, dstGid)

# copy projects with their members from the source group to the destination one
prj = Projects()
for p in prj.by_namespace(srcSys, srcGid):
	add_members(prj, p['id'], prj.add(dstSys, p['name'], namespace_id = dstGid, **filter_dict(p, 
		'description',
		'issues_enabled',
		'merge_requests_enabled',
		'wiki_enabled',
		'snippets_enabled',
		'visibility_level'))['id'])