Scripting Reference - project-ncl/pnc-cli GitHub Wiki

This page contains a description of all pnc-cli modules that can be imported and used in external scripts.

#Modules#

###buildconfigurations### Module containing all functionality that is detailed in the Build Configuration Commands page.

###Functions###

####add_product_version_to_build_configuration#### Associate an existing Product Version with a Build Configuration specified by either ID or name. Will overwrite any currently associated Product Version.

Call with one of ID or name. If both are supplied, ID will be used.

Returns: Build Configuration with new product_version_id.

buildconfigurations.add_product_version_to_build_configuration(id, name, product_version_id)

#####Example#####

>>> from pnc_cli import buildconfigurations
>>> buildconfigurations.get_build_configuration(id=1)
{'archived': False,
 'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': 'NONE',
 'creation_time': '2016-05-11',
 'dependency_ids': [],
 'description': 'test description',
 'environment': {'attributes': {u'JDK': '1.7.0', u'OS': 'Linux'},
                 'build_type': 'JAVA',
                 'description': 'Basic Java and Maven Environment',
                 'id': 1,
                 'image_id': '12345678',
                 'image_repository_url': None,
                 'name': 'Demo Environment 1',
                 'system_image_repository_url': None},
 'id': 1,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-05-11',
 'name': 'pnc-1.0.0.DR1',
 'product_version_id': 1,
 'project': {'configuration_ids': [1],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/project-ncl/pnc.git',
 'scm_revision': '*/v0.2'}
>>> buildconfigurations.add_product_version_to_build_configuration(id=1, product_version_id=2)
>>> buildconfigurations.get_build_configuration(id=1)
{'archived': False,
 'build_script': 'mvn clean deploy -DskipTests=true',
 'build_status': 'NONE',
 'creation_time': '2016-05-11',
 'dependency_ids': [],
 'description': 'test description',
 'environment': {'attributes': {u'JDK': '1.7.0', u'OS': 'Linux'},
                 'build_type': 'JAVA',
                 'description': 'Basic Java and Maven Environment',
                 'id': 1,
                 'image_id': '12345678',
                 'image_repository_url': None,
                 'name': 'Demo Environment 1',
                 'system_image_repository_url': None},
 'id': 1,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-05-12',
 'name': 'pnc-1.0.0.DR1',
 'product_version_id': 2,
 'project': {'configuration_ids': [1],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'https://github.com/project-ncl/pnc.git',
 'scm_revision': '*/v0.2'}

####build#### Builds the specified Build Configuration.

Call with one of either ID or name. If both are provided, ID will be used.

Returns: BuildRecord detailing the current build.

buildconfigurations.build(id, name)

#####Example#####

>>> buildconfigurations.build(id=1)
{'build_config_set_record_id': None,
 'build_configuration_audited': {'build_script': 'mvn clean deploy -DskipTests=true',
                                 'creation_time': None,
                                 'description': 'test description',
                                 'environment': {'attributes': {u'JDK': '1.7.0',
                                                                u'OS': 'Linux'},
                                                 'build_type': 'JAVA',
                                                 'description': 'Basic Java and Maven Environment',
                                                 'id': 1,
                                                 'image_id': '12345678',
                                                 'image_repository_url': None,
                                                 'name': 'Demo Environment 1',
                                                 'system_image_repository_url': None},
                                 'environment_id': 1,
                                 'id': 1,
                                 'id_rev': {'field_handler': None,
                                            'id': 1,
                                            'rev': 59},
                                 'last_modification_time': None,
                                 'name': 'pnc-1.0.0.DR1',
                                 'project': {'configuration_ids': [1],
                                             'description': 'Example Project for Newcastle Demo',
                                             'id': 1,
                                             'issue_tracker_url': None,
                                             'license_id': None,
                                             'name': 'Project Newcastle Demo Project 1',
                                             'project_url': 'https://github.com/project-ncl/pnc'},
                                 'project_id': 1,
                                 'repositories': None,
                                 'rev': 59,
                                 'scm_mirror_repo_url': None,
                                 'scm_mirror_revision': None,
                                 'scm_repo_url': 'https://github.com/project-ncl/pnc.git',
                                 'scm_revision': '*/v0.2'},
 'build_configuration_id': 1,
 'build_configuration_name': None,
 'build_configuration_rev': None,
 'build_content_id': None,
 'build_environment_id': None,
 'end_time': None,
 'external_archive_id': None,
 'id': 23,
 'live_logs_uri': None,
 'product_milestone_id': None,
 'scm_repo_url': None,
 'scm_revision': None,
 'start_time': None,
 'status': 'NEW',
 'submit_time': '2016-05-12',
 'user': {'email': '[email protected]',
          'first_name': 'Demo First Name',
          'id': 1,
          'last_name': 'Demo Last Name',
          'username': 'demo-user'},
 'user_id': 1,
 'username': 'demo-user'}

####create_build_configuration#### Creates a new BuildConfiguration.

Returns: The new BuildConfiguration.

buildconfigurations.create_build_configuration(name, project, environment, scm_repo_url, scm_revision, build_script, description=None, product_version_id=None, dependency_ids=None)

#####Example#####

>>> buildconfigurations.create_build_configuration(name="test", project=1, environment=1, scm_repo_url="http://someurl.com", scm_revision="somerevision", build_script="mvn package")
{'archived': False,
 'build_script': 'mvn package',
 'build_status': 'NONE',
 'creation_time': '2016-05-12',
 'dependency_ids': [],
 'description': None,
 'environment': {'attributes': {u'JDK': '1.7.0', u'OS': 'Linux'},
                 'build_type': 'JAVA',
                 'description': 'Basic Java and Maven Environment',
                 'id': 1,
                 'image_id': '12345678',
                 'image_repository_url': None,
                 'name': 'Demo Environment 1',
                 'system_image_repository_url': None},
 'id': 35,
 'internal_scm': None,
 'internal_scm_revison': None,
 'last_modification_time': '2016-05-12',
 'name': 'test',
 'product_version_id': None,
 'project': {'configuration_ids': [1, 35],
             'description': 'Example Project for Newcastle Demo',
             'id': 1,
             'issue_tracker_url': None,
             'license_id': None,
             'name': 'Project Newcastle Demo Project 1',
             'project_url': 'https://github.com/project-ncl/pnc'},
 'repositories': None,
 'scm_mirror_repo_url': None,
 'scm_mirror_revision': None,
 'scm_repo_url': 'http://someurl.com',
 'scm_revision': 'somerevision'}

####delete_build_configuration#### Remove an existing BuildConfiguration from PNC.

Call with one of either id or name. If both are provided, id will be used.

Returns: Exception upon failure. None upon success.

buildconfigurations.delete_build_configuration(id, name)

#####Example#####

>>> buildconfigurations.delete_build_configuration(id=35)
>>> buildconfigurations.get_build_configuration(id=35)
(404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Transfer-Encoding': 'chunked', 'Date': 'Thu, 12 May 2016 15:57:40 GMT', 'Content-Type': 'application/json', 'Server': 'Apache-Coyote/1.1'})
HTTP response body: {"content":null}

2016-05-12 11:57:40,798 ERROR No BuildConfiguration with ID 35 exists.