Skip to content

Commit

Permalink
Merge pull request #396 from CartoDB/development
Browse files Browse the repository at this point in the history
Release 0.15.3 for the python library
  • Loading branch information
Mario de Frutos authored Aug 24, 2017
2 parents 2ed183a + 727e5c0 commit cb39640
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 10 deletions.
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Steps to deploy a new Data Services API version :
```
- Give permission to execute and select to the `dataservices_user` user:
```
psql -U postgres -d dataservices_db -c "BEGIN;CREATE EXTENSION IF NOT EXISTS observatory; COMMIT" -e
psql -U postgres -d dataservices_db -c "BEGIN;CREATE EXTENSION IF NOT EXISTS observatory VERSION 'dev'; COMMIT" -e
psql -U postgres -d dataservices_db -c "BEGIN;GRANT SELECT ON ALL TABLES IN SCHEMA cdb_observatory TO dataservices_user; COMMIT" -e
psql -U postgres -d dataservices_db -c "BEGIN;GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_observatory TO dataservices_user; COMMIT" -e
psql -U postgres -d dataservices_db -c "BEGIN;GRANT SELECT ON ALL TABLES IN SCHEMA observatory TO dataservices_user; COMMIT" -e
Expand Down Expand Up @@ -254,14 +254,16 @@ jsonb_set(
```
### User database configuration

#### Option 1 (manually)

User (client) databases need also some configuration so that the client extension can access the server:
#### Users/Organizations
##### Users/Organizations

```sql
SELECT CDB_Conf_SetConf('user_config', '{"is_organization": false, "entity_name": "<YOUR_USERNAME>"}');
```

#### Dataservices server
##### Dataservices server

The `geocoder_server_config` (the name is not accurate for historical reasons) entry points
to the dataservices server DB (you can use a specific database for the server or your same user's):
Expand All @@ -272,10 +274,14 @@ SELECT CDB_Conf_SetConf(
'{ "connection_str": "host=localhost port=5432 dbname=<SERVER_DB_NAME> user=postgres"}'
);
```
#### Search path
##### Search path

The search path must be configured in order to be able to execute the functions without using the schema:

```sql
ALTER ROLE "<USER_ROLE>" SET search_path="$user", public, cartodb, cdb_dataservices_client;
```

#### Option 2 (from builder)

See [the **Configuring Dataservices** documentation](http://cartodb.readthedocs.io/en/latest/operations/configure_data_services.html)
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,10 @@ def __check_data_observatory_quota(self):
service_type = self._user_service_config.service_type
current_used = self._user_service.used_quota(service_type, today)

if soft_limit or (user_quota > 0 and current_used < user_quota):
# Quick workaround so we don't take into account numer of credits
# spent for users that have defined the quota.
# See https://github.com/CartoDB/bigmetadata/issues/215
if soft_limit or (user_quota > 0):
return True
else:
return False
2 changes: 1 addition & 1 deletion server/lib/python/cartodb_services/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
setup(
name='cartodb_services',

version='0.15.2',
version='0.15.3',

description='CartoDB Services API Python Library',

Expand Down
11 changes: 7 additions & 4 deletions server/lib/python/cartodb_services/test/test_quota_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,35 +126,38 @@ def test_should_check_org_isolines_quota_correctly(self):
qs.increment_isolines_service_use(amount=1500000)
assert qs.check_user_quota() is False

# Quick workaround so we don't take into account numer of credits
# spent for users that have defined the quota.
# See https://github.com/CartoDB/bigmetadata/issues/215
def test_should_check_user_obs_snapshot_quota_correctly(self):
qs = self.__build_obs_snapshot_quota_service('test_user')
qs.increment_success_service_use()
assert qs.check_user_quota() is True
qs.increment_success_service_use(amount=100000)
assert qs.check_user_quota() is False
assert qs.check_user_quota() is True

def test_should_check_org_obs_snapshot_quota_correctly(self):
qs = self.__build_obs_snapshot_quota_service('test_user',
orgname='testorg')
qs.increment_success_service_use()
assert qs.check_user_quota() is True
qs.increment_success_service_use(amount=100000)
assert qs.check_user_quota() is False
assert qs.check_user_quota() is True

def test_should_check_user_obs_quota_correctly(self):
qs = self.__build_obs_snapshot_quota_service('test_user')
qs.increment_success_service_use()
assert qs.check_user_quota() is True
qs.increment_success_service_use(amount=100000)
assert qs.check_user_quota() is False
assert qs.check_user_quota() is True

def test_should_check_org_obs_quota_correctly(self):
qs = self.__build_obs_quota_service('test_user',
orgname='testorg')
qs.increment_success_service_use()
assert qs.check_user_quota() is True
qs.increment_success_service_use(amount=100000)
assert qs.check_user_quota() is False
assert qs.check_user_quota() is True

def __prepare_quota_service(self, username, service, quota, provider,
orgname, soft_limit, end_date):
Expand Down

0 comments on commit cb39640

Please sign in to comment.