From 7aedb4721fb090eb19f9518627449a06a9d0e2fc Mon Sep 17 00:00:00 2001 From: Rob Richardson Date: Mon, 23 May 2016 12:58:35 -0700 Subject: [PATCH 1/2] add nova floating_ip_pools --- nova/v1.1/client.js | 2 ++ nova/v1.1/floating_ip_pools.js | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 nova/v1.1/floating_ip_pools.js diff --git a/nova/v1.1/client.js b/nova/v1.1/client.js index 538b1b6..6d00794 100644 --- a/nova/v1.1/client.js +++ b/nova/v1.1/client.js @@ -4,6 +4,7 @@ var AZManager = require("./availability_zones"), CertsManager = require("./certs"), FlavorManager = require("./flavors"), FloatingIPManager = require('./floating_ips'), + FloatingIPPoolManager = require('./floating_ip_pools'), ImageManager = require('./images'), KeypairManager = require('./keypairs'), LimitManager = require('./limits'), @@ -26,6 +27,7 @@ var Nova = base.Client.extend({ this.certs = new CertsManager(this); this.flavors = new FlavorManager(this); this.floating_ips = new FloatingIPManager(this); + this.floating_ip_pools = new FloatingIPPoolManager(this); this.images = new ImageManager(this); this.keypairs = new KeypairManager(this); this.limits = new LimitManager(this); diff --git a/nova/v1.1/floating_ip_pools.js b/nova/v1.1/floating_ip_pools.js new file mode 100644 index 0000000..7c98a19 --- /dev/null +++ b/nova/v1.1/floating_ip_pools.js @@ -0,0 +1,24 @@ +var base = require("../../client/base"); + +var FloatingIPPoolManager = base.Manager.extend({ + namespace: "os-floating-ip-pools", + plural: "floating_ip_pools", + + get: function (params, callback) { + params.parseResult = function (result) { + return result; + }; + this._super(params, callback); + }, + + all: function (params, callback) { + params.parseResult = function (results) { + return results; + }; + this._super(params, callback); + }, + +}); + + +module.exports = FloatingIPPoolManager; From b2a7c7ec4ff73b50f0ae561beaa7a151abf95619 Mon Sep 17 00:00:00 2001 From: Rob Richardson Date: Mon, 23 May 2016 12:58:51 -0700 Subject: [PATCH 2/2] add neutron v2.0 --- index.js | 6 ++++-- neutron/v2.0/client.js | 26 ++++++++++++++++++++++++++ neutron/v2.0/networks.js | 8 ++++++++ neutron/v2.0/ports.js | 8 ++++++++ neutron/v2.0/service_providers.js | 15 +++++++++++++++ neutron/v2.0/subnets.js | 8 ++++++++ neutron/versions.js | 4 ++++ 7 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 neutron/v2.0/client.js create mode 100644 neutron/v2.0/networks.js create mode 100644 neutron/v2.0/ports.js create mode 100644 neutron/v2.0/service_providers.js create mode 100644 neutron/v2.0/subnets.js create mode 100644 neutron/versions.js diff --git a/index.js b/index.js index 054ce5f..6931570 100644 --- a/index.js +++ b/index.js @@ -15,7 +15,8 @@ var openclient = { 'image': require('./glance/versions'), 'volume': require('./cinder/versions'), 'object-store': require('./swift/versions'), - 'orchestration': require('./heat/versions') + 'orchestration': require('./heat/versions'), + 'network': require('./neutron/versions') } }, @@ -39,7 +40,8 @@ var openclient = { ['Keystone', require("./keystone/v2.0/client")], ['Nova', require("./nova/v1.1/client")], ['Swift', require("./swift/v1/client")], - ['Heat', require("./heat/v1/client")] + ['Heat', require("./heat/v1/client")], + ['Neutron', require("./neutron/v2.0/client")] ].forEach(function (pair) { Object.defineProperty(openclient, pair[0], { get: function () { diff --git a/neutron/v2.0/client.js b/neutron/v2.0/client.js new file mode 100644 index 0000000..72d60c8 --- /dev/null +++ b/neutron/v2.0/client.js @@ -0,0 +1,26 @@ +var base = require('../../client/base'); +var NetworkManager = require('./networks'); +var PortManager = require('./ports'); +var ServiceProviderManager = require('./service_providers'); +var SubnetManager = require('./subnets'); + +var Neutron = base.Client.extend({ + service_type: 'network', + version: '2.0', + // this version_overrides shouldn't be necessary but neutronv2 isn't in the service_catalog: + version_overrides: { + 'network': [ + [/$/, '/v2.0'] // append /v2.0 to the end of the url + ] + }, + + init: function (options) { + this._super(options); + this.networks = new NetworkManager(this); + this.ports = new PortManager(this); + this.service_providers = new ServiceProviderManager(this); + this.subnets = new SubnetManager(this); + } +}); + +module.exports = Neutron; diff --git a/neutron/v2.0/networks.js b/neutron/v2.0/networks.js new file mode 100644 index 0000000..133b788 --- /dev/null +++ b/neutron/v2.0/networks.js @@ -0,0 +1,8 @@ +var base = require('../../client/base'); +var error = require('../../client/error'); + +var NetworkManager = base.Manager.extend({ + namespace: 'networks' +}); + +module.exports = NetworkManager; diff --git a/neutron/v2.0/ports.js b/neutron/v2.0/ports.js new file mode 100644 index 0000000..210b097 --- /dev/null +++ b/neutron/v2.0/ports.js @@ -0,0 +1,8 @@ +var base = require('../../client/base'); +var error = require('../../client/error'); + +var PortManager = base.Manager.extend({ + namespace: 'ports' +}); + +module.exports = PortManager; diff --git a/neutron/v2.0/service_providers.js b/neutron/v2.0/service_providers.js new file mode 100644 index 0000000..fb1519b --- /dev/null +++ b/neutron/v2.0/service_providers.js @@ -0,0 +1,15 @@ +var base = require('../../client/base'); +var error = require('../../client/error'); + +var ServiceProviderManager = base.Manager.extend({ + namespace: 'service-providers', + plural: 'service_providers', + + get: function (params) { throw new error.NotImplemented(); }, + update: function (params) { throw new error.NotImplemented(); }, + create: function (params) { throw new error.NotImplemented(); }, + del: function (params) { throw new error.NotImplemented(); } + +}); + +module.exports = ServiceProviderManager; diff --git a/neutron/v2.0/subnets.js b/neutron/v2.0/subnets.js new file mode 100644 index 0000000..78a5515 --- /dev/null +++ b/neutron/v2.0/subnets.js @@ -0,0 +1,8 @@ +var base = require('../../client/base'); +var error = require('../../client/error'); + +var SubnetManager = base.Manager.extend({ + namespace: 'subnets' +}); + +module.exports = SubnetManager; diff --git a/neutron/versions.js b/neutron/versions.js new file mode 100644 index 0000000..0719da5 --- /dev/null +++ b/neutron/versions.js @@ -0,0 +1,4 @@ +module.exports = { + current: '2.0', + '2.0': require('./v2.0/client') +};