Exemplo n.º 1
0
 def setUp(self):
     super(VersionTestCase, self).setUp()
     admin = get_admin_user()
     self.client = self.create_client_with_tenant(
         username=admin['username'],
         password=admin['password'],
         tenant=DEFAULT_TENANT_NAME)
 def setUp(self):
     super(VersionTestCase, self).setUp()
     admin = get_admin_user()
     self.client = self.create_client_with_tenant(
         username=admin['username'],
         password=admin['password'],
         tenant=DEFAULT_TENANT_NAME
     )
Exemplo n.º 3
0
 def open(self, *args, **kwargs):
     kwargs = kwargs or {}
     admin = get_admin_user()[0]
     kwargs['headers'] = kwargs.get('headers') or {}
     kwargs['headers'].update(utils.create_auth_header(
         username=admin['username'], password=admin['password']))
     kwargs['headers']['tenant'] = DEFAULT_TENANT_NAME
     return super(TestClient, self).open(*args, **kwargs)
Exemplo n.º 4
0
 def _handle_default_db_config(self, server):
     server.db.create_all()
     admin_user = get_admin_user()
     default_tenant = create_default_user_tenant_and_roles(
         admin_username=admin_user['username'],
         admin_password=admin_user['password'],
     )
     server.app.config[constants.CURRENT_TENANT_CONFIG] = default_tenant
Exemplo n.º 5
0
 def test_version_does_not_require_tenant_header(self):
     # create a client without the tenant header
     admin = get_admin_user()
     no_tenant_client = self.create_client(headers=utils.create_auth_header(
         username=admin['username'],
         password=admin['password'],
     ))
     assert no_tenant_client.manager.get_version() == self._expected
Exemplo n.º 6
0
    def _setup_anonymous_user(flask_app, user_datastore):
        """Change the anonymous user to be admin, in order to have arbitrary
        access to the storage manager (which otherwise requires a valid user)

        :param flask_app: Flask app
        """
        admin_user = user_datastore.get_user(get_admin_user()['username'])
        login_manager = flask_app.extensions['security'].login_manager
        login_manager.anonymous_user = MagicMock(return_value=admin_user)
Exemplo n.º 7
0
 def open(self, *args, **kwargs):
     kwargs = kwargs or {}
     admin = get_admin_user()
     kwargs['headers'] = kwargs.get('headers') or {}
     kwargs['headers'].update(utils.create_auth_header(
         username=admin['username'], password=admin['password']))
     kwargs['headers'][constants.CLOUDIFY_TENANT_HEADER] = \
         constants.DEFAULT_TENANT_NAME
     return super(TestClient, self).open(*args, **kwargs)
Exemplo n.º 8
0
    def _handle_default_db_config(server):
        server.db.create_all()
        admin_user = get_admin_user()

        # We're mocking the AMQPManager, as we aren't really using Rabbit here
        default_tenant = create_default_user_tenant_and_roles(
            admin_username=admin_user['username'],
            admin_password=admin_user['password'],
            amqp_manager=MagicMock())
        server.app.config[constants.CURRENT_TENANT_CONFIG] = default_tenant
Exemplo n.º 9
0
 def open(self, *args, **kwargs):
     kwargs = kwargs or {}
     admin = get_admin_user()
     kwargs['headers'] = kwargs.get('headers') or {}
     if CLOUDIFY_EXECUTION_TOKEN_HEADER not in kwargs['headers']:
         kwargs['headers'].update(utils.create_auth_header(
             username=admin['username'], password=admin['password']))
     kwargs['headers'][constants.CLOUDIFY_TENANT_HEADER] = \
         constants.DEFAULT_TENANT_NAME
     return super(TestClient, self).open(*args, **kwargs)
Exemplo n.º 10
0
    def _add_users_and_roles(self, user_datastore):
        """Add users and roles for the test

        :param user_datastore: SQLAlchemyDataUserstore
        """
        # Add a fictitious admin user to the user_datastore
        utils.add_users_and_roles_to_userstore(
            user_datastore,
            get_admin_user(),
            get_admin_role()
        )
Exemplo n.º 11
0
    def _get_app(flask_app, user=None):
        """Create a flask.testing FlaskClient

        :param flask_app: Flask app
        :param user: a dict containing username and password
        :return: Our modified version of Flask's test client
        """
        if user is None:
            user = get_admin_user()
        flask_app.test_client_class = TestClient
        return flask_app.test_client(user=user)
Exemplo n.º 12
0
    def _handle_default_db_config():
        Migrate(app=server.app, db=server.db)
        try:
            upgrade(directory=MIGRATION_DIR)
        except sqlalchemy.exc.OperationalError:
            logger = logging.getLogger()
            logger.error("Could not connect to the database - is a "
                         "postgresql server running on localhost?")
            logger.error("HINT: Create a docker container running postgresql "
                         "by doing `docker run --name cloudify-db-unit-test "
                         "-e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER="******"cloudify -e POSTGRES_DB=cloudify_db -p 5432:5432 "
                         "-d postgres`")
            raise
        admin_user = get_admin_user()

        fd, temp_auth_file = tempfile.mkstemp()
        os.close(fd)
        with open(temp_auth_file, 'w') as f:
            yaml.dump(auth_dict, f)

        try:
            # We're mocking the AMQPManager, we aren't really using Rabbit here
            default_tenant = create_default_user_tenant_and_roles(
                admin_username=admin_user['username'],
                admin_password=admin_user['password'],
                amqp_manager=MagicMock(),
                authorization_file_path=temp_auth_file
            )
            default_tenant.rabbitmq_username = \
                'rabbitmq_username_default_tenant'
            default_tenant.rabbitmq_vhost = \
                'rabbitmq_vhost_defualt_tenant'
            default_tenant.rabbitmq_password = \
                'gAAAAABb9p7U_Lnlmg7vyijjoxovyg215ThYi-VCTCzVYa1p-vpzi31WGko' \
                'KD_hK1mQyKgjRss_Nz-3m-cgHpZChnVT4bxZIjnOnL6sF8RtozvlRoGHtnF' \
                'G6jxqQDeEf5Heos0ia4Q5H  '

            for reporter in get_status_reporters():
                create_status_reporter_user_and_assign_role(
                    reporter['username'],
                    reporter['password'],
                    reporter['role'],
                    reporter['id']
                )
            if premium_enabled:
                # License is required only when working with Cloudify Premium
                upload_mock_cloudify_license(get_storage_manager())

        finally:
            os.remove(temp_auth_file)

        utils.set_current_tenant(default_tenant)
Exemplo n.º 13
0
def reset_data():
    logger.info('Resetting PostgreSQL DB')

    setup_app()

    # Rebuild the DB
    db.drop_all()
    db.create_all()

    add_users_and_roles_to_userstore(user_datastore, get_admin_user(),
                                     get_admin_role())

    # Clear the connection
    db.session.remove()
    db.get_engine(app).dispose()
Exemplo n.º 14
0
    def _handle_default_db_config():
        Migrate(app=server.app, db=server.db)
        try:
            upgrade(directory=MIGRATION_DIR)
        except sqlalchemy.exc.OperationalError:
            logger = logging.getLogger()
            logger.error("Could not connect to the database - is a "
                         "postgresql server running on localhost?")
            logger.error("HINT: Create a docker container running postgresql "
                         "by doing `docker run --name cloudify-db-unit-test "
                         "-e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER="******"cloudify -e POSTGRES_DB=cloudify_db -p 5432:5432 "
                         "-d postgres`")
            raise
        admin_user = get_admin_user()

        fd, temp_auth_file = tempfile.mkstemp()
        os.close(fd)
        with open(temp_auth_file, 'w') as f:
            yaml.dump(auth_dict, f)

        try:
            # We're mocking the AMQPManager, we aren't really using Rabbit here
            default_tenant = create_default_user_tenant_and_roles(
                admin_username=admin_user['username'],
                admin_password=admin_user['password'],
                amqp_manager=MagicMock(),
                authorization_file_path=temp_auth_file
            )
            default_tenant.rabbitmq_password = \
                'gAAAAABb9p7U_Lnlmg7vyijjoxovyg215ThYi-VCTCzVYa1p-vpzi31WGko' \
                'KD_hK1mQyKgjRss_Nz-3m-cgHpZChnVT4bxZIjnOnL6sF8RtozvlRoGHtnF' \
                'G6jxqQDeEf5Heos0ia4Q5H  '

            if premium_enabled:
                # License is required only when working with Cloudify Premium
                upload_mock_cloudify_license(get_storage_manager())

        finally:
            os.remove(temp_auth_file)

        utils.set_current_tenant(default_tenant)
Exemplo n.º 15
0
    def _handle_default_db_config(server):
        server.db.create_all()
        admin_user = get_admin_user()

        fd, temp_auth_file = tempfile.mkstemp()
        os.close(fd)
        with open(temp_auth_file, 'w') as f:
            yaml.dump(auth_dict, f)

        try:
            # We're mocking the AMQPManager, we aren't really using Rabbit here
            default_tenant = create_default_user_tenant_and_roles(
                admin_username=admin_user['username'],
                admin_password=admin_user['password'],
                amqp_manager=MagicMock(),
                authorization_file_path=temp_auth_file)
        finally:
            os.remove(temp_auth_file)

        utils.set_current_tenant(default_tenant)
Exemplo n.º 16
0
    def _handle_default_db_config():
        try:
            server.db.create_all()
        except sqlalchemy.exc.OperationalError:
            logger = logging.getLogger()
            logger.error("Could not connect to the database - is a "
                         "postgresql server running on localhost?")
            logger.error("HINT: Create a docker container running postgresql "
                         "by doing `docker run --name cloudify-db-unit-test "
                         "-e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER="******"cloudify -e POSTGRES_DB=cloudify_db -p 5432:5432 "
                         "-d postgres`")
            raise
        admin_user = get_admin_user()

        fd, temp_auth_file = tempfile.mkstemp()
        os.close(fd)
        with open(temp_auth_file, 'w') as f:
            yaml.dump(auth_dict, f)

        try:
            # We're mocking the AMQPManager, we aren't really using Rabbit here
            default_tenant = create_default_user_tenant_and_roles(
                admin_username=admin_user['username'],
                admin_password=admin_user['password'],
                amqp_manager=MagicMock(),
                authorization_file_path=temp_auth_file
            )
            default_tenant.rabbitmq_password = \
                'gAAAAABb9p7U_Lnlmg7vyijjoxovyg215ThYi-VCTCzVYa1p-vpzi31WGko' \
                'KD_hK1mQyKgjRss_Nz-3m-cgHpZChnVT4bxZIjnOnL6sF8RtozvlRoGHtnF' \
                'G6jxqQDeEf5Heos0ia4Q5H  '
        finally:
            os.remove(temp_auth_file)

        utils.set_current_tenant(default_tenant)
Exemplo n.º 17
0
 def _get_users():
     return get_admin_user()