def test_oc_s2i_template(self): api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: openshift_backend.get_status() openshift_backend.create_app_from_template( image_name=CENTOS_PYTHON_3, name=DJANGO_POSTGRES_TEMPLATE, template="https://raw.githubusercontent.com/sclorg/django-ex" "/master/openshift/templates/django-postgresql.json", oc_new_app_args=["-p", "NAMESPACE=%s" % MY_PROJECT, "-p", "NAME=%s" % DJANGO_POSTGRES_TEMPLATE, "-p", "SOURCE_REPOSITORY_REF=master", "-p", "PYTHON_VERSION=3.6", "-p", "POSTGRESQL_VERSION=%s" % CENTOS_POSTGRES_9_6_TAG], name_in_template={"python": "3.6"}, other_images=[{"%s:%s" % (CENTOS_POSTGRES_9_6, CENTOS_POSTGRES_9_6_TAG): "postgresql:%s" % CENTOS_POSTGRES_9_6_TAG}], project=MY_PROJECT) try: openshift_backend.wait_for_service( app_name=DJANGO_POSTGRES_TEMPLATE, port=8080, expected_output='Welcome to your Django application on OpenShift', timeout=300) finally: openshift_backend.get_logs(DJANGO_POSTGRES_TEMPLATE) # pass name from template as argument openshift_backend.clean_project(DJANGO_POSTGRES_TEMPLATE)
def test_oc_s2i_local_mariadb(self): api_key = get_oc_api_token() with OpenshiftBackend( api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: openshift_backend.get_status() app_name = openshift_backend.create_new_app_from_source( CENTOS_MARIADB_10_2, oc_new_app_args=[ "--env", "MYSQL_ROOT_PASSWORD=test", "--env", "MYSQL_OPERATIONS_USER=test1", "--env", "MYSQL_OPERATIONS_PASSWORD=test1", "--env", "MYSQL_DATABASE=testdb", "--env", "MYSQL_USER=user1", "--env", "MYSQL_PASSWORD=user1" ], source="examples/openshift/extend-mariadb-image", project=MY_PROJECT) openshift_backend.get_status() try: openshift_backend.wait_for_service(app_name=app_name, port=3306, timeout=300) assert openshift_backend.all_pods_are_ready(app_name) finally: openshift_backend.get_logs(app_name) openshift_backend.clean_project(app_name)
def test_oc_s2i_remote(self): api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: openshift_backend.get_status() with DockerBackend(logging_level=logging.DEBUG) as backend: python_image = backend.ImageClass(CENTOS_PYTHON_3) login_to_registry(OC_CLUSTER_USER, token=api_key) app_name = openshift_backend.create_new_app_from_source( python_image, source="https://github.com/openshift/django-ex.git", project=MY_PROJECT) try: openshift_backend.wait_for_service( app_name=app_name, port=8080, expected_output='Welcome to your Django application on OpenShift', timeout=300) finally: openshift_backend.get_logs(app_name) openshift_backend.clean_project(app_name)
def test_deploy_image(self): api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: with DockerBackend(logging_level=logging.DEBUG) as backend: # builder image mariadb_image = backend.ImageClass(CENTOS_MARIADB_10_2) # docker login inside OpenShift internal registry login_to_registry(OC_CLUSTER_USER, token=api_key) # create new app from remote source in OpenShift cluster app_name = openshift_backend.deploy_image(mariadb_image, oc_new_app_args=[ "--env", "MYSQL_ROOT_PASSWORD=test"], project=MY_PROJECT) try: # wait until service is ready to accept requests openshift_backend.wait_for_service( app_name=app_name, port=3306, timeout=300) assert openshift_backend.all_pods_are_ready(app_name) finally: openshift_backend.get_logs(app_name) openshift_backend.clean_project(app_name)
def test_oc_s2i_local(self): api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: openshift_backend.get_status() with DockerBackend(logging_level=logging.DEBUG) as backend: python_image = backend.ImageClass(CENTOS_PYTHON_3) login_to_registry(OC_CLUSTER_USER, token=api_key) app_name = openshift_backend.create_new_app_from_source( python_image, source="examples/openshift/standalone-test-app", project=MY_PROJECT) try: openshift_backend.wait_for_service( app_name=app_name, port=8080, expected_output="Hello World from standalone WSGI application!", timeout=300) finally: openshift_backend.get_logs(app_name) openshift_backend.clean_project(app_name)
def test_import_image(self): api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: image_name = "mariadb" openshift_backend.import_image(image_name, CENTOS_MARIADB_10_2) # check if image was successfully imported to internal registry assert openshift_backend.get_image_registry_url("mariadb") == INTERNAL_REGISTRY_URL + \ "/" + MY_PROJECT + "/" + "mariadb"
def test_deploy_image(self): api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: # create new app from remote source in OpenShift cluster app_name = openshift_backend.deploy_image(CENTOS_MARIADB_10_2, oc_new_app_args=[ "--env", "MYSQL_ROOT_PASSWORD=test"], project=MY_PROJECT) try: # wait until service is ready to accept requests openshift_backend.wait_for_service( app_name=app_name, port=3306, timeout=300) assert openshift_backend.all_pods_are_ready(app_name) finally: openshift_backend.get_logs(app_name) openshift_backend.clean_project(app_name)
def test_get_project_name(self): api_key = get_oc_api_token() with OpenshiftBackend( api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: assert openshift_backend.get_current_project() == MY_PROJECT
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # import logging from conu import OpenshiftBackend, \ DockerBackend from conu.backend.origin.registry import login_to_registry from conu.utils import get_oc_api_token api_key = get_oc_api_token() with OpenshiftBackend(api_key=api_key, logging_level=logging.DEBUG) as openshift_backend: openshift_backend.get_status() with DockerBackend(logging_level=logging.DEBUG) as backend: # builder image python_image = backend.ImageClass("centos/python-36-centos7") # docker login inside OpenShift internal registry login_to_registry('developer') # create new app from remote source in OpenShift cluster app_name = openshift_backend.create_new_app_from_source( python_image, source="https://github.com/openshift/django-ex.git", project='myproject')