Commit 1bbb6771 authored by Sofia Papagiannaki's avatar Sofia Papagiannaki
Browse files

astakos: WIP move all api calls under ``/astakos/api``

Refs: #3340
parent 68af7c49
...@@ -14,16 +14,12 @@ v0.13next ...@@ -14,16 +14,12 @@ v0.13next
Released: UNRELEASED Released: UNRELEASED
* Incorporate quotaholder in astakos
* obsolete settings:
PITHOS_USE_QUOTAHOLDER, PITHOS_QUOTAHOLDER_URL, PITHOS_QUOTAHOLDER_TOKEN
* new settins:
PITHOS_ASTAKOSCLIENT_POOLSIZE
Synnefo-wide Synnefo-wide
------------ ------------
* Create 'snf_django' Python package to hold common code for all Synnefo * Create 'snf_django' Python package to hold common code for all Synnefo
components. components.
* CLOUDBAR_SERVICES_URL should point to /astakos/api/get_services
* CLOUDBAR_MENU_URL should point to /astakos/api/get_menu
Astakos Astakos
------- -------
...@@ -51,6 +47,8 @@ Pithos ...@@ -51,6 +47,8 @@ Pithos
astakos users. astakos users.
* Remove 'PITHOS_USER_CATALOG_URL', 'PITHOS_USER_FEEDBACK_URL' and * Remove 'PITHOS_USER_CATALOG_URL', 'PITHOS_USER_FEEDBACK_URL' and
'PITHOS_USER_LOGIN_URL' settings. 'PITHOS_USER_LOGIN_URL' settings.
* Remove PITHOS_USE_QUOTAHOLDER, PITHOS_QUOTAHOLDER_URL,
PITHOS_QUOTAHOLDER_TOKEN and PITHOS_ASTAKOSCLIENT_POOLSIZE
Tools Tools
----- -----
......
...@@ -173,7 +173,7 @@ class AstakosClient(): ...@@ -173,7 +173,7 @@ class AstakosClient():
raise InvalidResponse(str(err), data) raise InvalidResponse(str(err), data)
# ------------------------ # ------------------------
# GET /im/authenticate # GET /astakos/api/authenticate
def get_user_info(self, token, usage=False): def get_user_info(self, token, usage=False):
"""Authenticate user and get user's info as a dictionary """Authenticate user and get user's info as a dictionary
...@@ -186,13 +186,13 @@ class AstakosClient(): ...@@ -186,13 +186,13 @@ class AstakosClient():
""" """
# Send request # Send request
auth_path = "/im/authenticate" auth_path = "/astakos/api/authenticate"
if usage: if usage:
auth_path += "?usage=1" auth_path += "?usage=1"
return self._call_astakos(token, auth_path) return self._call_astakos(token, auth_path)
# ---------------------------------- # ----------------------------------
# POST /user_catalogs (or /service/api/user_catalogs) # POST /astakos/api/user_catalogs (or /astakos/api/service/user_catalogs)
# with {'uuids': uuids} # with {'uuids': uuids}
def _uuid_catalog(self, token, uuids, req_path): def _uuid_catalog(self, token, uuids, req_path):
req_headers = {'content-type': 'application/json'} req_headers = {'content-type': 'application/json'}
...@@ -218,7 +218,7 @@ class AstakosClient(): ...@@ -218,7 +218,7 @@ class AstakosClient():
keys and the corresponding user names as values keys and the corresponding user names as values
""" """
req_path = "/user_catalogs" req_path = "/astakos/api/user_catalogs"
return self._uuid_catalog(token, uuids, req_path) return self._uuid_catalog(token, uuids, req_path)
def get_username(self, token, uuid): def get_username(self, token, uuid):
...@@ -232,7 +232,7 @@ class AstakosClient(): ...@@ -232,7 +232,7 @@ class AstakosClient():
def service_get_usernames(self, token, uuids): def service_get_usernames(self, token, uuids):
"""Return a uuid_catalog dict using a service's token""" """Return a uuid_catalog dict using a service's token"""
req_path = "/service/api/user_catalogs" req_path = "/astakos/api/service/user_catalogs"
return self._uuid_catalog(token, uuids, req_path) return self._uuid_catalog(token, uuids, req_path)
def service_get_username(self, token, uuid): def service_get_username(self, token, uuid):
...@@ -245,7 +245,7 @@ class AstakosClient(): ...@@ -245,7 +245,7 @@ class AstakosClient():
raise NoUserName(uuid) raise NoUserName(uuid)
# ---------------------------------- # ----------------------------------
# POST /user_catalogs (or /service/api/user_catalogs) # POST /astakos/api/user_catalogs (or /astakos/api/service/user_catalogs)
# with {'displaynames': display_names} # with {'displaynames': display_names}
def _displayname_catalog(self, token, display_names, req_path): def _displayname_catalog(self, token, display_names, req_path):
req_headers = {'content-type': 'application/json'} req_headers = {'content-type': 'application/json'}
...@@ -271,7 +271,7 @@ class AstakosClient(): ...@@ -271,7 +271,7 @@ class AstakosClient():
the names as keys and the corresponding uuids as values the names as keys and the corresponding uuids as values
""" """
req_path = "/user_catalogs" req_path = "/astakos/api/user_catalogs"
return self._displayname_catalog(token, display_names, req_path) return self._displayname_catalog(token, display_names, req_path)
def get_uuid(self, token, display_name): def get_uuid(self, token, display_name):
...@@ -285,7 +285,7 @@ class AstakosClient(): ...@@ -285,7 +285,7 @@ class AstakosClient():
def service_get_uuids(self, token, display_names): def service_get_uuids(self, token, display_names):
"""Return a display_name catalog using a service's token""" """Return a display_name catalog using a service's token"""
req_path = "/service/api/user_catalogs" req_path = "/astakos/api/service/user_catalogs"
return self._displayname_catalog(token, display_names, req_path) return self._displayname_catalog(token, display_names, req_path)
def service_get_uuid(self, token, display_name): def service_get_uuid(self, token, display_name):
...@@ -298,10 +298,10 @@ class AstakosClient(): ...@@ -298,10 +298,10 @@ class AstakosClient():
raise NoUUID(display_name) raise NoUUID(display_name)
# ---------------------------------- # ----------------------------------
# GET "/im/get_services" # GET "/astakos/api/get_services"
def get_services(self): def get_services(self):
"""Return a list of dicts with the registered services""" """Return a list of dicts with the registered services"""
return self._call_astakos(None, "/im/get_services") return self._call_astakos(None, "/astakos/api/get_services")
# ---------------------------------- # ----------------------------------
# GET "/astakos/api/resources" # GET "/astakos/api/resources"
......
...@@ -108,9 +108,9 @@ def _request_status_400(conn, method, url, **kwargs): ...@@ -108,9 +108,9 @@ def _request_status_400(conn, method, url, **kwargs):
def _request_ok(conn, method, url, **kwargs): def _request_ok(conn, method, url, **kwargs):
"""This request behaves like original Astakos does""" """This request behaves like original Astakos does"""
if url.startswith("/im/authenticate"): if url.startswith("/astakos/api/authenticate"):
return _req_authenticate(conn, method, url, **kwargs) return _req_authenticate(conn, method, url, **kwargs)
elif url.startswith("/user_catalogs"): elif url.startswith("/astakos/api/user_catalogs"):
return _req_catalogs(conn, method, url, **kwargs) return _req_catalogs(conn, method, url, **kwargs)
elif url.startswith("/astakos/api/resources"): elif url.startswith("/astakos/api/resources"):
return _req_resources(conn, method, url, **kwargs) return _req_resources(conn, method, url, **kwargs)
...@@ -472,7 +472,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -472,7 +472,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_offline]) _mock_request([_request_offline])
try: try:
client = AstakosClient("https://example.com", use_pool=pool) client = AstakosClient("https://example.com", use_pool=pool)
client._call_astakos(token_1, "/im/authenticate") client._call_astakos(token_1, "/astakos/api/authenticate")
except AstakosClientException: except AstakosClientException:
pass pass
else: else:
...@@ -493,7 +493,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -493,7 +493,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_ok]) _mock_request([_request_ok])
try: try:
client = AstakosClient("https://example.com", use_pool=pool) client = AstakosClient("https://example.com", use_pool=pool)
client._call_astakos(token, "/im/authenticate") client._call_astakos(token, "/astakos/api/authenticate")
except Unauthorized: except Unauthorized:
pass pass
except Exception: except Exception:
...@@ -516,7 +516,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -516,7 +516,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_ok]) _mock_request([_request_ok])
try: try:
client = AstakosClient("https://example.com", use_pool=pool) client = AstakosClient("https://example.com", use_pool=pool)
client._call_astakos(token_1, "/im/misspelled") client._call_astakos(token_1, "/astakos/api/misspelled")
except NotFound: except NotFound:
pass pass
except Exception: except Exception:
...@@ -539,7 +539,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -539,7 +539,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_ok]) _mock_request([_request_ok])
try: try:
client = AstakosClient("ftp://example.com", use_pool=pool) client = AstakosClient("ftp://example.com", use_pool=pool)
client._call_astakos(token_1, "/im/authenticate") client._call_astakos(token_1, "/astakos/api/authenticate")
except BadValue: except BadValue:
pass pass
except Exception: except Exception:
...@@ -562,7 +562,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -562,7 +562,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_ok]) _mock_request([_request_ok])
try: try:
client = AstakosClient("http://example.com", use_pool=pool) client = AstakosClient("http://example.com", use_pool=pool)
client._call_astakos(token_1, "/im/authenticate") client._call_astakos(token_1, "/astakos/api/authenticate")
except AstakosClientException as err: except AstakosClientException as err:
if err.status != 302: if err.status != 302:
self.fail("Should have returned 302 (Found)") self.fail("Should have returned 302 (Found)")
...@@ -584,7 +584,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -584,7 +584,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_ok]) _mock_request([_request_ok])
try: try:
client = AstakosClient("https://example.com", use_pool=pool) client = AstakosClient("https://example.com", use_pool=pool)
client._call_astakos(token_1, "/im/authenticate", method="POST") client._call_astakos(token_1, "/astakos/api/authenticate", method="POST")
except BadRequest: except BadRequest:
pass pass
except Exception: except Exception:
...@@ -607,7 +607,7 @@ class TestCallAstakos(unittest.TestCase): ...@@ -607,7 +607,7 @@ class TestCallAstakos(unittest.TestCase):
_mock_request([_request_ok]) _mock_request([_request_ok])
try: try:
client = AstakosClient("https://example.com", use_pool=pool) client = AstakosClient("https://example.com", use_pool=pool)
client._call_astakos(token_1, "/user_catalogs") client._call_astakos(token_1, "/astakos/api/user_catalogs")
except BadRequest: except BadRequest:
pass pass
except Exception: except Exception:
......
...@@ -20,6 +20,7 @@ Document Revisions ...@@ -20,6 +20,7 @@ Document Revisions
========================= ================================ ========================= ================================
Revision Description Revision Description
========================= ================================ ========================= ================================
0.14 (May 02, 2013) Change URIs (keep also the old ones until the next version)
0.13 (January 21, 2013) Extend api to export user presentation & quota information. 0.13 (January 21, 2013) Extend api to export user presentation & quota information.
0.6 (June 06, 2012) Split service and admin API. 0.6 (June 06, 2012) Split service and admin API.
0.1 (Feb 10, 2012) Initial release. 0.1 (Feb 10, 2012) Initial release.
...@@ -30,11 +31,11 @@ Get Services ...@@ -30,11 +31,11 @@ Get Services
Returns a json formatted list containing information about the supported cloud services. Returns a json formatted list containing information about the supported cloud services.
==================== ========= ================== ============================= ========= ==================
Uri Method Description Uri Method Description
==================== ========= ================== ============================= ========= ==================
``/im/get_services`` GET Get cloud services ``/astakos/api/get_services`` GET Get cloud services
==================== ========= ================== ============================= ========= ==================
Example reply: Example reply:
...@@ -44,17 +45,20 @@ Example reply: ...@@ -44,17 +45,20 @@ Example reply:
{"url": "/okeanos.html", "name": "~okeanos", "id": "2"}, {"url": "/okeanos.html", "name": "~okeanos", "id": "2"},
{"url": "/ui/", "name": "pithos+", "id": "3"}] {"url": "/ui/", "name": "pithos+", "id": "3"}]
.. warning:: The service is also available under ``/im/get_services``.
It will be removed in the next version.
Get Menu Get Menu
^^^^^^^^ ^^^^^^^^
Returns a json formatted list containing the cloud bar links. Returns a json formatted list containing the cloud bar links.
==================== ========= ================== ========================= ========= ==================
Uri Method Description Uri Method Description
==================== ========= ================== ========================= ========= ==================
``/im/get_menu`` GET Get cloud bar menu ``/astakos/api/get_menu`` GET Get cloud bar menu
==================== ========= ================== ========================= ========= ==================
Example reply if request user is not authenticated: Example reply if request user is not authenticated:
...@@ -66,10 +70,13 @@ Example reply if request user is authenticated: ...@@ -66,10 +70,13 @@ Example reply if request user is authenticated:
:: ::
[{"url": "/im/login", "name": "user@example.com"}, [{"url": "/im/", "name": "user@example.com"},
{"url": "/im/profile", "name": "My account"}, {"url": "/im/landing", "name": "Dashboard"},
{"url": "/im/logout", "name": "Sign out"}] {"url": "/im/logout", "name": "Sign out"}]
.. warning:: The service is also available under ``/im/get_menu``.
It will be removed in the next version.
Admin API Operations Admin API Operations
-------------------- --------------------
...@@ -84,11 +91,11 @@ Authenticate ...@@ -84,11 +91,11 @@ Authenticate
Authenticate API requests require a token. An application that wishes to connect to Astakos, but does not have a token, should redirect the user to ``/login``. (see :ref:`authentication-label`) Authenticate API requests require a token. An application that wishes to connect to Astakos, but does not have a token, should redirect the user to ``/login``. (see :ref:`authentication-label`)
==================== ========= ================== ============================= ========= ==================
Uri Method Description Uri Method Description
==================== ========= ================== ============================= ========= ==================
``/im/authenticate`` GET Authenticate user using token ``/astakos/api/authenticate`` GET Authenticate user using token
==================== ========= ================== ============================= ========= ==================
| |
...@@ -225,6 +232,9 @@ Return Code Description ...@@ -225,6 +232,9 @@ Return Code Description
500 (Internal Server Error) The request cannot be completed because of an internal error 500 (Internal Server Error) The request cannot be completed because of an internal error
=========================== ===================== =========================== =====================
.. warning:: The service is also available under ``/im/authenticate``.
It will be removed in the next version.
Send feedback Send feedback
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
...@@ -234,7 +244,7 @@ Post user feedback. ...@@ -234,7 +244,7 @@ Post user feedback.
========================= ========= ================== ========================= ========= ==================
Uri Method Description Uri Method Description
========================= ========= ================== ========================= ========= ==================
``/feedback`` POST Send feedback ``astakos/api/feedback`` POST Send feedback
========================= ========= ================== ========================= ========= ==================
| |
...@@ -274,7 +284,7 @@ Return a json formatted dictionary containing information about a specific user ...@@ -274,7 +284,7 @@ Return a json formatted dictionary containing information about a specific user
================================ ========= ================== ================================ ========= ==================
Uri Method Description Uri Method Description
================================ ========= ================== ================================ ========= ==================
``/user_catalogs`` POST Get 2 catalogs containing uuid to displayname mapping and the opposite ``astakos/api/user_catalogs`` POST Get 2 catalogs containing uuid to displayname mapping and the opposite
================================ ========= ================== ================================ ========= ==================
| |
...@@ -329,11 +339,11 @@ Get User catalogs ...@@ -329,11 +339,11 @@ Get User catalogs
Return a json formatted dictionary containing information about a specific user Return a json formatted dictionary containing information about a specific user
================================ ========= ================== ===================================== ========= ==================
Uri Method Description Uri Method Description
================================ ========= ================== ===================================== ========= ==================
``/user_catalogs`` POST Get 2 catalogs containing uuid to displayname mapping and the opposite ``astakos/api/service/user_catalogs`` POST Get 2 catalogs containing uuid to displayname mapping and the opposite
================================ ========= ================== ===================================== ========= ==================
| |
......
...@@ -86,11 +86,12 @@ Cloud service user ...@@ -86,11 +86,12 @@ Cloud service user
Alice requests a specific resource from a cloud service ex. Pithos+. In the Alice requests a specific resource from a cloud service ex. Pithos+. In the
request supplies the `X-Auth-Token` to identify whether she is eligible to request supplies the `X-Auth-Token` to identify whether she is eligible to
perform the specific task. The service contacts Astakos through its perform the specific task. The service contacts Astakos through its
``/im/authenticate`` api call (see :ref:`authenticate-api-label`) providing the ``/astakos/api/authenticate`` api call (see :ref:`authenticate-api-label`)
specific ``X-Auth-Token``. Astakos checkes whether the token belongs to an providing the specific ``X-Auth-Token``. Astakos checkes whether the token
active user and it has not expired and returns a dictionary containing user belongs to an active user and it has not expired and returns a dictionary
related information. Finally the service uses the ``uniq`` field included in containing user related information. Finally the service uses the ``uniq``
the dictionary as the account string to identify the user accessible resources. field included in the dictionary as the account string to identify the user
accessible resources.
.. _registration-flow-label: .. _registration-flow-label:
......
...@@ -610,9 +610,9 @@ Then edit ``/etc/synnefo/20-snf-astakos-app-cloudbar.conf`` : ...@@ -610,9 +610,9 @@ Then edit ``/etc/synnefo/20-snf-astakos-app-cloudbar.conf`` :
CLOUDBAR_LOCATION = 'https://node1.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://node1.example.com/static/im/cloudbar/'
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://node1.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://node1.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://node1.example.com/astakos/api/get_menu'
Those settings have to do with the black cloudbar endpoints and will be Those settings have to do with the black cloudbar endpoints and will be
described in more detail later on in this guide. For now, just edit the domain described in more detail later on in this guide. For now, just edit the domain
...@@ -912,8 +912,8 @@ pithos+ web UI with the astakos web UI (through the top cloudbar): ...@@ -912,8 +912,8 @@ pithos+ web UI with the astakos web UI (through the top cloudbar):
CLOUDBAR_LOCATION = 'https://node1.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://node1.example.com/static/im/cloudbar/'
PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE = '3' PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE = '3'
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://node1.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://node1.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://node1.example.com/astakos/api/get_menu'
The ``CLOUDBAR_LOCATION`` tells the client where to find the astakos common The ``CLOUDBAR_LOCATION`` tells the client where to find the astakos common
cloudbar. cloudbar.
...@@ -1722,8 +1722,8 @@ Edit ``/etc/synnefo/20-snf-cyclades-app-cloudbar.conf``: ...@@ -1722,8 +1722,8 @@ Edit ``/etc/synnefo/20-snf-cyclades-app-cloudbar.conf``:
CLOUDBAR_LOCATION = 'https://node1.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://node1.example.com/static/im/cloudbar/'
CLOUDBAR_ACTIVE_SERVICE = '2' CLOUDBAR_ACTIVE_SERVICE = '2'
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://node1.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://account.node1.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://account.node1.example.com/astakos/api/get_menu'
``CLOUDBAR_LOCATION`` tells the client where to find the Astakos common ``CLOUDBAR_LOCATION`` tells the client where to find the Astakos common
cloudbar. The ``CLOUDBAR_SERVICES_URL`` and ``CLOUDBAR_MENU_URL`` options are cloudbar. The ``CLOUDBAR_SERVICES_URL`` and ``CLOUDBAR_MENU_URL`` options are
......
...@@ -39,8 +39,8 @@ In `/etc/synnefo/astakos.conf` add: ...@@ -39,8 +39,8 @@ In `/etc/synnefo/astakos.conf` add:
.. code-block:: console .. code-block:: console
CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/'
CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://accounts.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://accounts.example.com/astakos/api/get_menu'
ASTAKOS_IM_MODULES = ['local'] ASTAKOS_IM_MODULES = ['local']
......
...@@ -42,8 +42,8 @@ In `/etc/synnefo/cloudcms.conf` add: ...@@ -42,8 +42,8 @@ In `/etc/synnefo/cloudcms.conf` add:
CLOUDBAR_ACTIVE = True CLOUDBAR_ACTIVE = True
CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/'
CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://accounts.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://accounts.example.com/astakos/api/get_menu'
WEBPROJECT_SERVE_STATIC = True WEBPROJECT_SERVE_STATIC = True
......
...@@ -64,7 +64,7 @@ In `/etc/synnefo/cyclades.conf` add: ...@@ -64,7 +64,7 @@ In `/etc/synnefo/cyclades.conf` add:
GANETI_USE_HOTPLUG = True GANETI_USE_HOTPLUG = True
CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/'
CLOUDBAR_ACTIVE_SERVICE = '2' CLOUDBAR_ACTIVE_SERVICE = '2'
CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://accounts.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://accounts.example.com/im/get_menu'
BACKEND_DB_CONNECTION = 'postgresql://synnefo:example_passw0rd@db.example.com:5432/snf_pithos' BACKEND_DB_CONNECTION = 'postgresql://synnefo:example_passw0rd@db.example.com:5432/snf_pithos'
BACKEND_BLOCK_PATH = '/srv/pithos/data/' BACKEND_BLOCK_PATH = '/srv/pithos/data/'
......
...@@ -85,8 +85,8 @@ In `/etc/synnefo/webclient.conf` add: ...@@ -85,8 +85,8 @@ In `/etc/synnefo/webclient.conf` add:
.. code-block:: console .. code-block:: console
CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/' CLOUDBAR_LOCATION = 'https://accounts.example.com/static/im/cloudbar/'
CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/im/get_services' CLOUDBAR_SERVICES_URL = 'https://accounts.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://accounts.example.com/im/get_menu' CLOUDBAR_MENU_URL = 'https://accounts.example.com/astakos/api/get_menu'
PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE = 'XXXXXXXX' PITHOS_UI_CLOUDBAR_ACTIVE_SERVICE = 'XXXXXXXX'
......
...@@ -74,3 +74,55 @@ Finally, Astakos needs to inform the quota system for the current number ...@@ -74,3 +74,55 @@ Finally, Astakos needs to inform the quota system for the current number
of pending applications per user:: of pending applications per user::
astakos-host$ snf-manage reconcile-resources-astakos --fix astakos-host$ snf-manage reconcile-resources-astakos --fix
4 Change Astakos URIs in settings
=================================
In astakos-host edit ``/etc/synnefo/20-snf-astakos-app-cloudbar.conf`` and replace
the following lines:
.. code-block:: console
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/im/get_services'
CLOUDBAR_MENU_URL = 'https://node1.example.com/im/get_menu'
with:
.. code-block:: console
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://node1.example.com/astakos/api/get_menu'
|
Also in pithos-host edit ``/etc/synnefo/20-snf-pithos-webclient-cloudbar.conf``
and the following lines:
.. code-block:: console
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/im/get_services'
CLOUDBAR_MENU_URL = 'https://node1.example.com/im/get_menu'
with:
.. code-block:: console
CLOUDBAR_SERVICES_URL = 'https://node1.example.com/astakos/api/get_services'
CLOUDBAR_MENU_URL = 'https://node1.example.com/astakos/api/get_menu'
|
Finally in cyclades-node edit ``/etc/synnefo/20-snf-cyclades-app-cloudbar.conf``
and replace the following lines:
.. code-block:: console