Commit Graph

60 Commits

Author SHA1 Message Date
ricolin 9bbf3d8a97 retire js-openstack-lib
This project is being retired

Release update: https://review.opendev.org/c/openstack/governance/+/771789

ML: http://lists.openstack.org/pipermail/openstack-discuss/2021-January/019847.html
Codesearch: https://codesearch.opendev.org/?q=js-openstack-lib&i=nope&files=&excludeFiles=&repos=

Change-Id: I94c42c0ac3ec23c685d1b50d35383ad078916f06
2023-10-19 12:29:20 -07:00
Monty Taylor 346f7eeda0 Update eslint and switch to standard
The openstack eslint package is just really not needed at this
point. Use standardjs and run --fix on it.

Switch away from using node 8 to run linters and tests.

Change-Id: I51f68d4ec30c8da5d1601ef00045e53f90d0554b
2020-06-12 13:04:59 -05:00
Monty Taylor 7f843d7ecb Update babel, webpack, karma, jasmine and istanbul
Update to babel v7 and webpack v4

Remove runtime depend on corejs-2 which is
unsupported. Just switch to runtime which requires polyfills be
provided by the end user.

Remove NSP - the service is being shut down and the important bits
are built in to npm now.

istanbul has been replaced by the nyc runner. Update karma
to latest.

Update yaml-loader and json-loader

Disable browser testing for now - we'll bring it back in a followup.

Change-Id: I45d1f77bb43e5d67f4154c5149fac77b853e3686
2020-06-12 12:35:09 -05:00
Radosław Piliszek 8354146c11 CI: New jobs
This follows removal of jobs from project-config. [1]

New jobs use newer node versions and new Zuul v3 format,
reusing devstack for deployment of OpenStack for functional
testing of jslib.

Version tests have been adapted to follow support logic
already in place instead of hardcoded supported versions.

Includes workaround (fixup) of devstack's bug. [2]

Move the functional test to experimental for now, because version
discovery doesn't work right and Firefox is generally grumpy.
We want to get the structural stuff in first.

[1] https://review.opendev.org/702030
[2] https://bugs.launchpad.net/devstack/+bug/1860287

Depends-on: https://review.opendev.org/704882
Depends-on: https://review.opendev.org/726547
Co-authored-by: Monty Taylor <mordred@inaugust.com>
Change-Id: I197eb2b59be7a49d168edf09d554b444bbcc29b2
2020-06-12 17:06:24 +00:00
Corentin Ardeois 4f19bfad3b Update glance version
This patch will fix functionnal test by updating glance version
to 2.5

Change-Id: Icdad36fad58c01c15b61ad4310c8d96c5e8a4f37
2017-02-08 20:54:39 -05:00
Jenkins 76da62a7c8 Merge "Add flavorList to Openstack wrapper" 2017-01-25 13:58:50 +00:00
Jenkins e8d6bcdda6 Merge "Created Nova service with flavorList method." 2017-01-20 14:47:23 +00:00
Corentin Ardeois b362b89813 Update supported keystone version
This patch will fix functionnal tests

Change-Id: Iffd37201e7b3f49468b964bd357d1d94854e4ce7
2017-01-19 19:37:59 -05:00
Dong Ma cfc2f665d4 Add flavorList to Openstack wrapper
This patch integrated nova into Openstack wrapper, allowing
flavorList to be used

Change-Id: Ic149ce2bd11bc439431cca0e2aa294874708d234
2016-12-04 07:18:15 -08:00
Michael Krotscheck 7ee22fdfbe Created Nova service with flavorList method.
We can now query for flavors.

Change-Id: Ia19afa530ae8c2df60db740cec9267fe240978c0
2016-12-02 17:49:37 -05:00
Jenkins cf336dec98 Merge "Add imageList to Openstack wrapper" 2016-12-02 21:55:05 +00:00
Corentin Ardeois beec17c6e4 Use serviceEndpoint compatible with versions
This patch adds a more flexible selection of version in AbstractService.
A version will be selected if it's compatible with the 'supportedVersions'.
Example:
  supportedVersions = ['v3.1'];
  All minor versions above 3.1 will be compatible (3.1.2, 3.2, 3.3 etc)
  However 4.x will not be compatible

Change-Id: Icd540449ebf6a09d9bb7e1d25a85e2dbe787c5a4
2016-11-23 09:53:27 -05:00
Corentin Ardeois 0ba0ea9668 Add imageList to Openstack wrapper
This patch integrated glance into Openstack wrapper, allowing
imageList to be  used

Change-Id: I64e5d432224aa673ab1e6ace3e927af2f8b3a13f
2016-11-21 15:17:44 -05:00
Corentin Ardeois 0a4fb9f8b9 Added support for multi-region catalog
OpenStack wrapper will read the 'region_name' from config, and use
the correct endpoint matching this region

Change-Id: I01049f3bed227eb1e11f9a1f7d338177e95aef34
2016-10-25 12:44:20 +02:00
Vitaly Kramskikh 9dabaecf11 Added tokenInfo() method to Keystone API
Also fixed nesting in keystone functional tests and deduplicated
mock data for Keystone.

Change-Id: Ia2f0def84d45616eb8c3464b7ba4f47fadfda50d
2016-10-17 21:53:07 +00:00
Jenkins 8828ec6382 Merge "Support names and ids for users, projects and domains in Keystone" 2016-10-17 21:49:20 +00:00
Vitaly Kramskikh 3956dbe65b Support names and ids for users, projects and domains in Keystone
In Keystone API it's possible to provide both ids and names for
users, projects, user domains and project domains. This commit
adds support for this functionality.

Change-Id: I3268bd82cc92a150927c98e0827ebd105d91f5e3
2016-10-17 19:01:11 +03:00
Corentin Ardeois c330bbdc62 Added networkList() method to OpenStack wrapper
This patch adds the networkList() method to the OpenStack wrapper
class. This method will initialize `Neutron` instance if needed and
cache it. As neutron needs the URL, `Keystone` instance is also
initialize and cache if needed.

Change-Id: If12af29a86b9856a145c1f91de25eb3473938de5
2016-10-17 10:31:41 -04:00
Corentin Ardeois 70a98fb10c Added networkList() method to neutron API
This patch adds the networkList() method to the network API.

Change-Id: Ie0878787169988253a93dd6d67b07a97bd005587
2016-10-05 15:58:42 -04:00
Vitaly Kramskikh 08aa4981f1 Fix unit tests failure caused my fetch-mock update
In some unit tests mockOptions.name was used instead of
mockOptions.matcher, and it was always undefined - this stopped
working with fetch-mock 5.5.0. This commit replaces
mockOptions.name with mockOptions.matcher where it is needed.

Change-Id: I367e1d957ce206c20c6b9d15c9f5ff1a2b285e33
2016-10-04 17:22:14 +03:00
Dong Ma c5c58bcaad Seperate OpenStack class from index.js
This commit to seperate OpenStack class from index.js to new file

Change-Id: If433040fce752e0033eb61139fd8daa9c6dbb669
2016-09-29 09:12:54 -07:00
Dong Ma 9677a06a2d OpenStack wrapper instance
Create wrapper class that takes clouds.yaml instance

Change-Id: I37429b7bda35ca09efc3bf153841d4dc92d96b55
2016-09-28 07:38:46 -07:00
Corentin Ardeois b033ad652e Added Neutron Service
This neutron service follows the same pattern as the glance service,
and provides both version negotiation and endpoint discovery.

Change-Id: Ia2f59213eedf6d7acbb02789ee921c13ff391d09
2016-09-26 14:05:34 -04:00
msmol 7c544e1460 Updates linting rules
New linting rule to disable spaces after functions, before parens
Fixed all new linting errors

I suppose I'd like this to eventually get landed in official
`eslint-config-openstack` project, but for now it is here

Change-Id: I6c77524c5679117ce3b211db0bd9943c5ad5e646
2016-09-23 13:46:04 -04:00
Jenkins 3221a3513d Merge "Export supported services from index.js" 2016-09-23 16:25:48 +00:00
Vitaly Kramskikh c2164e8b15 Export supported services from index.js
This is required to make services provided by library accessible
this way:

  import {Keystone} from 'openstack-lib';

instead of

  import Keystone from 'openstack-lib/dist/keystone';

Also, Test class and dummy functional and unit tests for it were
removed since they aren't needed anymore.

Change-Id: I6bf0b6eebab095d6585d19d8398d9f2ac119cacc
2016-09-22 20:42:27 +03:00
Michael Krotscheck 525d5897c7
Renamed abstract_service to abstractService
Mostly because abstract_serviceTest looks weird.

Change-Id: Ia27b0e0cc70b8e4280f52f40eb78b466e358aa54
2016-09-22 07:39:42 -07:00
Michael Krotscheck c8dfb08c50
Miscellaneous test cleanup.
This patch cleans up our constructor exception tests, and removes
old versions(), version(), and serviceEndpoint() tests that are
now handled in the parent class. Service specific tests have been
kept, and several tests to assert correct API behavior for specific
implementations have been added.

Change-Id: Ib42d94033ebb5613ee7e5c96654ab22f31fe4feb
2016-09-22 07:38:30 -07:00
Michael Krotscheck c8f7503f88
Moved serviceEndpoint() tests into abstract_serviceTest.
Also removed them from child classes.

Change-Id: I291e0d418a4a87ea21bf829712935cd0b1fb6530
2016-09-22 07:36:52 -07:00
Michael Krotscheck abfe901b5e
AbstractService will try to detect the versions resource in more places.
We have no guarantees that the keystone service catalog will have the
root resource of any given service registered. As most versioned API
endpoints require tokens, we can reasonably assume that a 401 will
be encountered. This patch adds an extra check against the response
from the provided URL, and should a 401 be encountered, attempts
to resolve the versions from the root resource of the provided URL.

Change-Id: I655409f0eb9bfbd3489827db46faef026ede82f9
2016-09-22 07:36:39 -07:00
Michael Krotscheck b60cb86755
Created test suite for the AbstractService
This patch creates a test suite for the AbstractService.

Change-Id: I23c61d3f9b77e911e24a740ad489e25d0ac08c86
2016-09-13 22:04:17 -07:00
Jenkins 3cacbffd74 Merge "Added imageList() method to glance API" 2016-09-05 15:04:54 +00:00
Jenkins 88696bb420 Merge "Added Glance Service" 2016-09-05 14:39:56 +00:00
Michael Krotscheck 45809be72b Added imageList() method to glance API
This patch adds the imageList() method (and associated token handling)
to the glance API.

Change-Id: I840f347d446b9b774c532afe38d62a94e5336a73
2016-09-01 14:38:52 -07:00
Michael Krotscheck 7a64d24795 Added Glance Service
This glance service follows the same pattern as the keystone service,
and provides both version negotiation and endpoint discovery. Unlike
the keystone service, however, it is configured using an endpoint
configuration object as discovered from the Keystone service catalog.

Change-Id: I0fe2bc9690022688e2cb80b9ca1b10bcea86c13d
2016-09-01 14:38:37 -07:00
Michael Krotscheck 5295a1025b Added more verbose logging to keystone functional tests.
This will assist in debugging DSVM errors.

Change-Id: Ieeee59722e203e763a50f427db55188bc683f21d
2016-09-01 11:00:32 -07:00
Michael Krotscheck c98bc9cd23 Added loglevel
This patch adds loglevel back in as our logging framework, as
an assistatn for debugging the in/outbound HTTP requests.

Change-Id: I545e27f5c957f9c5c7a2dc73730b9db91600c1ce
2016-09-01 11:00:29 -07:00
Michael Krotscheck 71fef1257b Use clouds.yaml credentials for admin functional tests.
Credentials for the admin devstack configuration are no
longer hardcoded. Thus, if infra changes the DSVM config,
we should pick up the changes.

Change-Id: I8924120aae8a8843d57327793bebce839dea0ebd
2016-09-01 10:58:22 -07:00
Michael Krotscheck 7767d0183c Removed request and response interception.
The request/response interception has not yet been used, and
introduced quite a bit of complexity, especially surrounding fetchMock.
Furthermore, they made our DSVM tests fail, as the browser's implementation
of Request requires that a request body be accessed using the regular
json(), text(), etc. promise generators. Since this would have
simply added more complexity to an already complex, unused feature,
we've simply removed the feature.

Change-Id: I4cdf7b7106c771f0562de47e8835076d48d03a31
2016-08-30 14:22:52 -07:00
Michael Krotscheck a3bfae8976 Removed authenticate() method
Functionality is now available via tokenIssue() and catalogList().

Change-Id: I9871304694286d1d0f4f6c395074ebd6d8f2e2c8
2016-08-24 17:08:31 -07:00
Michael Krotscheck be86176883 Added catalogList() method to keystone API
Given a token, this method will return a promise which resolves to
the service catalog.

Change-Id: If1b7832f5e5e48902e0ef31d28384bb9aeab2fd5
2016-08-24 17:08:31 -07:00
Michael Krotscheck 558ceea566 Added tokenRevoke() method to keystone API.
This method permits the revocation of an auth token, whether by
the auth token itself, or by an admin token.

Change-Id: Ia80fd70986410b364351bffeaa5823a36d25d2cc
2016-08-24 17:08:31 -07:00
Michael Krotscheck 365f07cc0f Fixed header bug in fetchMock
Fetch-mock doesn't sanely match against a Headers() instance, whose
implementation varies due to isomorphic-fetch. Here we deconstruct the instance
back into a map, so that the actual fetch() request is properly handled.

Change-Id: Ie99ca23a6cf75c48c8762e7de36aee71ef819b7f
2016-08-24 17:08:31 -07:00
Michael Krotscheck d7de0cfb52 Added tokenIssue() method to keystone API.
This method handles sending an authorization request against the
keystone API, and returns the issued Authorization Token. At this
time it only supports the password authorization plugin. Additional
use cases should be provided by third-party developers.

It is the long term intent that this method will deprecate the
authorize() method, in order to provide a consistently idempotent
implementation.

Change-Id: If1368bcdae251606d2e03043345cd4fc6f0b8b80
2016-08-24 17:08:31 -07:00
Michael Krotscheck e86ebe7778 Keystone authenticate() now uses resolved service endpoint.
Authenticate is now called against an endpoint whose version is
known, and thus can be more easily supported.

Change-Id: I6e5dd64ac7ccc91d0a35630335f301377d87079c
2016-08-24 17:08:31 -07:00
Michael Krotscheck 5b2db185d7 Added serviceEndpoint() method.
This method will return the service endpoint of the current supported
keystone version.

Change-Id: I3af0faf5191b89cfd7a266edfe0bd044d6dd02ce
2016-08-24 17:08:31 -07:00
Michael Krotscheck f231326d83 Added version() resource.
This resource will attempt to resolve a supported API version from
the versions available on the Keystone API.

Change-Id: Icca49d3c124fb9526aa4316290b475d95cfda2ce
2016-08-24 17:08:29 -07:00
Michael Krotscheck 8ee9b24233 Created versions() resource for Keystone
This resource returns a (caching) promise, which will eventually
resolve to the list of versions published at the auth_url. It also
updates the unit tests to draw from a consolidated set of mock data.

Change-Id: I0d0de5b6ef6a1e3d1f5daa40a88ec3d799c43a64
2016-08-24 17:07:48 -07:00
Michael Krotscheck 528bccbf81 Http class now rejects 4xx and 5xx responses
This patch makes sure that successful HTTP requests, which result
in an error code, are passed to the catch() or reject handler, rather
than the success handler.

This results in two different cases in the claim() handler, that of
an internally thrown exception (like a TypeError), and that of a
Response() instance. In most cases, developers should not write
code that throws exceptions - and even in those, the ES6 Promise
API silently swallows most uncaught throws.

Change-Id: I736bcaccf6324a3d66191692e5f2ce922a727dea
2016-08-18 13:08:18 -07:00
Michael Krotscheck abd0508c30 Created HTTP wrapper
This utility class provides an abstraction layer for HTTP calls via fetch(). Its purpose is
to provide common, SDK-wide behavior for all HTTP requests. Included are:

- Providing a common extension point for request and response manipulation.
- Access to default headers.

In the future, this class chould also be extended to provide:

- Some form of progress() support for large uploads and downloads (perhaps via introduction of Q)
- Convenience decoding of the response body, depending on Content-Type.
- Internal error handling (At this time, HTTP errors are passed to then() rather than catch()).
- Other features.

Change-Id: I8173554b1b7ef052e2a74504b98f4ec574ce6136
2016-08-18 13:08:14 -07:00