skyline/src/client/neutron/index.js
Jingwei.Zhang 0f1bdfd682 fix: Fix update ironic node traits
1. Fix update iroinc node traits api
2. Add export client for better reusage

Change-Id: I47ef81265bb4f3a198067280f39206bb17b5fdc0
2022-05-26 16:41:31 +08:00

203 lines
4.7 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 { neutronBase } from '../client/constants';
export class NeutronClient extends Base {
get baseUrl() {
return neutronBase();
}
get resources() {
return [
{
key: 'networks',
responseKey: 'network',
subResources: [
{
name: 'dhcpAgents',
key: 'dhcp-agents',
},
],
},
{
key: 'subnets',
responseKey: 'subnet',
},
{
key: 'ports',
responseKey: 'port',
},
{
key: 'routers',
responseKey: 'router',
extendOperations: [
{
name: 'addRouterInterface',
key: 'add_router_interface',
method: 'put',
},
{
name: 'removeRouterInterface',
key: 'remove_router_interface',
method: 'put',
},
{
name: 'addExtraRoutes',
key: 'add_extraroutes',
method: 'put',
},
{
name: 'removeExtraRoutes',
key: 'remove_extraroutes',
method: 'put',
},
],
},
{
key: 'floatingips',
responseKey: 'floatingip',
subResources: [
{
name: 'portForwardings',
key: 'port_forwardings',
responseKey: 'port_forwarding',
},
],
},
{
key: 'extensions',
responseKey: 'extensions',
},
{
key: 'agents',
responseKey: 'agent',
subResources: [
{
name: 'dhcpNetworks',
key: 'dhcp-networks',
responseKey: 'network',
},
{
name: 'l3Routers',
key: 'l3-routers',
responseKey: 'router',
},
],
},
{
name: 'firewalls',
key: 'fwaas/firewall_groups',
responseKey: 'firewall_group',
},
{
name: 'firewallPolicies',
key: 'fwaas/firewall_policies',
responseKey: 'firewall_policy',
extendOperations: [
{
name: 'insertRule',
key: 'insert_rule',
method: 'put',
},
{
name: 'removeRule',
key: 'remove_rule',
method: 'put',
},
],
},
{
name: 'firewallRules',
key: 'fwaas/firewall_rules',
responseKey: 'firewall_rule',
},
{
name: 'networkIpAvailabilities',
key: 'network-ip-availabilities',
},
{
name: 'azones',
key: 'availability_zones',
},
{
name: 'qosPolicies',
key: 'qos/policies',
responseKey: 'policy',
subResources: [
{
name: 'bandwidthLimitRules',
key: 'bandwidth_limit_rules',
},
{
name: 'dscpMarkingRules',
key: 'dscp_marking_rules',
},
],
},
{
name: 'securityGroups',
key: 'security-groups',
responseKey: 'security_group',
},
{
name: 'securityGroupRules',
key: 'security-group-rules',
responseKey: 'security_group_rule',
},
{
key: 'subnets',
responseKey: 'subnet',
},
{
name: 'endpointGroups',
key: 'endpoint-groups',
responseKey: 'endpoint_group',
},
{
name: 'ikePolicies',
key: 'ikepolicies',
responseKey: 'ikepolicy',
},
{
name: 'ipsecPolicies',
key: 'ipsecpolicies',
responseKey: 'ipsecpolicy',
},
{
name: 'ipsecSiteConnections',
key: 'ipsec_site_connections',
responseKey: 'ipsec_site_connection',
},
{
key: 'vpnservices',
responseKey: 'vpnservice',
},
{
key: 'quotas',
responseKey: 'quota',
extendOperations: [
{
key: 'details',
},
],
},
];
}
}
const neutronClient = new NeutronClient();
export default neutronClient;