コード例 #1
0
ファイル: rbpublish.py プロジェクト: sawatzkylindsey/rbtools
def main():
    valid = False

    if len(sys.argv) > 1:
        settings = Settings(config_file='rb_scripts.dat')
        cookie = settings.get_cookie_file()
        server_url = settings.get_server_url()
        resource_id = sys.argv[1]

        if resource_id.isdigit():
            valid = True
            server = ServerInterface(server_url, cookie)
            root = RootResource(server, server_url + 'api/')
            review_requests = root.get('review_requests')
            review_request = review_requests.get(resource_id)
            review_request_draft = \
                ReviewRequestDraft(review_request.get_or_create('draft'))
            review_request_draft.publish()

    if not valid:
        print "usage: rb publish <review_request_id>"
コード例 #2
0
ファイル: rbcreate.py プロジェクト: sawatzkylindsey/rbtools
def main():
    valid = True

    if len(sys.argv) > 0:
        settings = Settings(config_file='rb_scripts.dat')
        cookie = settings.get_cookie_file()
        server_url = settings.get_server_url()
        client = get_client(server_url)
        server_repo = client.get_info()
        diff, parent_diff = client.diff(None)
        diff_file = open('diff', 'w')
        diff_file.write(diff)
        diff_file.close()
        diff_data = {
            'filename': 'diff',
            'content': diff
        }
        parent_diff_data = None

        if parent_diff:
            parent_diff_data = {}
            parent_diff_file = open('parent_diff', 'w')
            parent_diff_file.write(parent_diff)
            parent_diff_file.close()
            parent_diff_path['filename'] = 'parent_diff'
            parent_diff_path['content'] = parent_diff

        server = ServerInterface(server_url, cookie)
        root = RootResource(server, server_url + 'api/')
        repositories = RepositoryList(root.get('repositories'))
        repo_id = repositories.get_repository_id(server_repo.path)

        if repo_id:
            try:
                review_requests = root.get('review_requests')
                review_request = review_requests.create()
                review_request.update_field('submit_as',
                                            settings.get_setting('user_name'))
                review_request.update_field('repository', str(repo_id))
                review_request.save()
                diffs = review_request.get_or_create('diffs')
                resource_diff = diffs.create()
                resource_diff.update_file('path', diff_data)

                if server_repo.base_path:
                    resource_diff.update_field('basedir',
                                               server_repo.base_path)

                if parent_diff_data:
                    diff.update_file('parent_diff_path', parent_diff_data)

                resource_diff.save()
                review_request_draft = ReviewRequestDraft(
                    review_request.get_or_create('draft'))
                review_request_draft.publish()
                print "Review request created at: %s\n" % review_request.url
                print "To view the review request in a browser go to: " \
                    "%sr/%s/" % (server_url, review_request.get_field('id'))
            except Error, e:
                raise e
        else:
            print "The repository could not be found on the server."
コード例 #3
0
ファイル: rbupload.py プロジェクト: sawatzkylindsey/rbtools
def main():
    valid = False

    if len(sys.argv) > 2:
        settings = Settings(config_file='rb_scripts.dat')
        cookie = settings.get_cookie_file()
        server_url = settings.get_server_url()
        resource_id = sys.argv[2]

        if resource_id.isdigit():
            split = re.split(':', sys.argv[1])
            file_type = split[0]
            file_name = split[1]

            if file_type and file_name:
                if file_type == SCREENSHOT_OPTION \
                    or file_type == DIFF_OPTION:
                    valid = True
                    server = ServerInterface(server_url, cookie)
                    root = RootResource(server, server_url + 'api/')
                    review_requests = root.get('review_requests')
                    review_request = review_requests.get(resource_id)
                    m = re.match(SCREENSHOT_OPTION, file_type)

                    try:
                        if m:
                            # Screenshot
                            ss_file = open('%s' % file_name, 'r')
                            ss_data = {
                                'filename': os.path.split(file_name)[1],
                                'content': ss_file.read()
                            }

                            sss = review_request.get_or_create('screenshots')
                            ss = sss.create()
                            ss.update_file('path', ss_data)

                            if len(sys.argv) > 3:
                                i = 3

                                while i < len(sys.argv):
                                    split = re.split(':', sys.argv[i])
                                    ss.update_field(split[0], split[1])
                                    i = i + 1

                            ss.save()
                        else:
                            # Diff
                            diff_file = open(file_name, 'r')
                            diff_data = {
                                'filename': file_name,
                                'content': diff_file.read()
                            }
                            diff_file.close()
                            diffs = review_request.get_or_create('diffs')
                            resource_diff = diffs.create()
                            resource_diff.update_file('path', diff_data)
                            resource_diff.save()

                        review_request_draft = \
                            ReviewRequestDraft(
                            review_request.get_or_create('draft'))
                        review_request_draft.publish()
                        print "Request complete.  See: %s" % review_request.url
                    except urllib2.HTTPError, e:
                        if e.code == 500:
                            print "There was an internal server error."
                            print "Please try your request again."
                        else:
                            print "The request failed."
                            print e.read()
                            raise e