204 lines
6.8 KiB
JavaScript
204 lines
6.8 KiB
JavaScript
/**
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
(function () {
|
|
'use strict';
|
|
|
|
angular
|
|
.module('horizon.app.core.openstack-service-api')
|
|
.factory('horizon.app.core.openstack-service-api.murano', muranoAPI);
|
|
|
|
muranoAPI.$inject = [
|
|
'horizon.framework.util.http.service',
|
|
'horizon.framework.widgets.toast.service'
|
|
];
|
|
|
|
/**
|
|
* @ngdoc service
|
|
* @name horizon.app.core.openstack-service-api.murano
|
|
* @description Provides direct pass through to Murano with NO abstraction.
|
|
*/
|
|
|
|
function muranoAPI(apiService, toastService) {
|
|
var service = {
|
|
getPackages: getPackages,
|
|
getComponentMeta: getComponentMeta,
|
|
editComponentMeta: editComponentMeta,
|
|
getEnvironmentMeta: getEnvironmentMeta,
|
|
editEnvironmentMeta: editEnvironmentMeta
|
|
};
|
|
|
|
return service;
|
|
|
|
/**
|
|
* @name horizon.app.core.openstack-service-api.murano.getPackages
|
|
* @description
|
|
* Get a list of packages.
|
|
*
|
|
* The listing result is an object with property "packages". Each item is
|
|
* an packages.
|
|
*
|
|
* @param {Object} params
|
|
* Query parameters. Optional.
|
|
*
|
|
* @param {boolean} params.paginate
|
|
* True to paginate automatically.
|
|
*
|
|
* @param {string} params.marker
|
|
* Specifies the image of the last-seen image.
|
|
*
|
|
* The typical pattern of limit and marker is to make an
|
|
* initial limited request and then to use the last
|
|
* image from the response as the marker parameter
|
|
* in a subsequent limited request. With paginate, limit
|
|
* is automatically set.
|
|
*
|
|
* @param {string} params.sort_dir
|
|
* The sort direction ('asc' or 'desc').
|
|
*/
|
|
|
|
function getPackages(params) {
|
|
var config = params ? { "params" : params} : {};
|
|
return apiService.get('/api/app-catalog/packages/', config)
|
|
.error(function () {
|
|
toastService.add('error', gettext('Unable to retrieve the packages.'));
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @name horizon.app.core.openstack-service-api.murano.getComponentMeta
|
|
* @description
|
|
* Get metadata attributes associated with a given component
|
|
*
|
|
* @param {Object} target
|
|
* The object identifying the target component
|
|
*
|
|
* @param {string} target.environment
|
|
* The identifier of the environment the component belongs to
|
|
*
|
|
* @param {string} target.component
|
|
* The identifier of the component within the environment
|
|
*
|
|
* @param {string} target.session
|
|
* The identifier of the configuration session for which the data should be
|
|
* fetched
|
|
*
|
|
* @returns {Object} The metadata object
|
|
*/
|
|
function getComponentMeta(target) {
|
|
var params = { params: { session: target.session} };
|
|
var url = '/api/app-catalog/environments/' + target.environment +
|
|
'/components/' + target.component + '/metadata/';
|
|
return apiService.get(url, params)
|
|
.error(function () {
|
|
toastService.add('error', gettext('Unable to retrieve component metadata.'));
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @name horizon.app.core.openstack-service-api.murano.editComponentMetadata
|
|
* @description
|
|
* Update metadata attributes associated with a given component
|
|
*
|
|
* @param {Object} target
|
|
* The object identifying the target component
|
|
*
|
|
* @param {string} target.environment
|
|
* The identifier of the environment the component belongs to
|
|
*
|
|
* @param {string} target.component
|
|
* The identifier of the component within the environment
|
|
*
|
|
* @param {string} target.session
|
|
* The identifier of the configuration session for which the data should be
|
|
* updated
|
|
*
|
|
* @param {object} updated New metadata definitions.
|
|
*
|
|
* @param {[]} removed Names of removed metadata definitions.
|
|
*
|
|
* @returns {Object} The result of the API call
|
|
*/
|
|
function editComponentMeta(target, updated, removed) {
|
|
var params = { params: { session: target.session} };
|
|
var url = '/api/app-catalog/environments/' + target.environment +
|
|
'/components/' + target.component + '/metadata/';
|
|
return apiService.post(
|
|
url, { updated: updated, removed: removed}, params)
|
|
.error(function () {
|
|
toastService.add('error', gettext('Unable to edit component metadata.'));
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @name horizon.app.core.openstack-service-api.murano.getEnvironmentMeta
|
|
* @description
|
|
* Get metadata attributes associated with a given environment
|
|
*
|
|
* @param {Object} target
|
|
* The object identifying the target environment
|
|
*
|
|
* @param {string} target.environment
|
|
* The identifier of the target environment
|
|
*
|
|
* @param {string} target.session
|
|
* The identifier of the configuration session for which the data should be
|
|
* fetched
|
|
*
|
|
* @returns {Object} The metadata object
|
|
*/
|
|
function getEnvironmentMeta(target) {
|
|
var params = { params: { session: target.session} };
|
|
var url = '/api/app-catalog/environments/' + target.environment +
|
|
'/metadata/';
|
|
return apiService.get(url, params)
|
|
.error(function () {
|
|
toastService.add('error', gettext('Unable to retrieve environment metadata.'));
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @name horizon.app.core.openstack-service-api.murano.editEnvironmentMeta
|
|
* @description
|
|
* Update metadata attributes associated with a given environment
|
|
*
|
|
* @param {Object} target
|
|
* The object identifying the target environment
|
|
*
|
|
* @param {string} target.environment
|
|
* The identifier of the environment the component belongs to
|
|
*
|
|
* @param {string} target.session
|
|
* The identifier of the configuration session for which the data should be
|
|
* updated
|
|
*
|
|
* @param {object} updated New metadata definitions.
|
|
*
|
|
* @param {[]} removed Names of removed metadata definitions.
|
|
*
|
|
* @returns {Object} The result of the API call
|
|
*/
|
|
function editEnvironmentMeta(target, updated, removed) {
|
|
var params = { params: { session: target.session} };
|
|
var url = '/api/app-catalog/environments/' + target.environment +
|
|
'/metadata/';
|
|
return apiService.post(
|
|
url, { updated: updated, removed: removed}, params)
|
|
.error(function () {
|
|
toastService.add('error', gettext('Unable to edit environment metadata.'));
|
|
});
|
|
}
|
|
|
|
}
|
|
})();
|