
Change-Id: Ifcee5d38a53918b332b5d9f59ba4b2038626f53c Signed-off-by: Sowmya Nethi <sowmya.kamavaram@rackspace.com>
102 lines
2.8 KiB
JavaScript
102 lines
2.8 KiB
JavaScript
// Copyright 2021 99cloud
|
|
//
|
|
// 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.
|
|
|
|
import Base from '../client/base';
|
|
import { octaviaBase } from '../client/constants';
|
|
|
|
export class OctaviaClient extends Base {
|
|
get baseUrl() {
|
|
return octaviaBase();
|
|
}
|
|
|
|
get request() {
|
|
const request = this.originRequest;
|
|
if (!this.enable) {
|
|
return super.request;
|
|
}
|
|
const updateConfig = (conf) => {
|
|
const { headers = {}, ...rest } = conf || {};
|
|
const newConf = {
|
|
headers: {
|
|
accept: 'application/json',
|
|
...headers,
|
|
},
|
|
...rest,
|
|
};
|
|
return newConf;
|
|
};
|
|
return {
|
|
get: (url, params, conf) =>
|
|
request.get(this.getUrl(url), params, updateConfig(conf)),
|
|
post: (url, data, params, conf) =>
|
|
request.post(this.getUrl(url), data, params, updateConfig(conf)),
|
|
put: (url, data, params, conf) =>
|
|
request.put(this.getUrl(url), data, params, updateConfig(conf)),
|
|
delete: (url, data, params, conf) =>
|
|
request.delete(this.getUrl(url), data, params, updateConfig(conf)),
|
|
patch: (url, data, params, conf) =>
|
|
request.patch(this.getUrl(url), data, params, updateConfig(conf)),
|
|
head: (url, params, conf) =>
|
|
request.head(this.getUrl(url), params, updateConfig(conf)),
|
|
copy: (url, params, conf) =>
|
|
request.copy(this.getUrl(url), params, updateConfig(conf)),
|
|
};
|
|
}
|
|
|
|
get resources() {
|
|
return [
|
|
{
|
|
name: 'healthMonitors',
|
|
key: 'lbaas/healthmonitors',
|
|
responseKey: 'healthmonitor',
|
|
},
|
|
{
|
|
name: 'listeners',
|
|
key: 'lbaas/listeners',
|
|
responseKey: 'listener',
|
|
},
|
|
{
|
|
name: 'loadbalancers',
|
|
key: 'lbaas/loadbalancers',
|
|
responseKey: 'loadbalancer',
|
|
},
|
|
{
|
|
name: 'pools',
|
|
key: 'lbaas/pools',
|
|
responseKey: 'pool',
|
|
extendOperations: [
|
|
{
|
|
name: 'batchUpdateMembers',
|
|
key: 'members',
|
|
method: 'put',
|
|
},
|
|
],
|
|
subResources: [
|
|
{
|
|
key: 'members',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'flavors',
|
|
key: 'lbaas/flavors',
|
|
responseKey: 'flavor',
|
|
},
|
|
];
|
|
}
|
|
}
|
|
|
|
const octaviaClient = new OctaviaClient();
|
|
export default octaviaClient;
|