Git Product home page Git Product logo

elastest / elastest-service-manager Goto Github PK

View Code? Open in Web Editor NEW
2.0 8.0 5.0 1.25 MB

This is the elastest service manager that is responsible for providing support service instances to test jobs. It's an implementation of the OSBA with further extensions.

Home Page: https://elastest.github.io/elastest-service-manager/

License: Apache License 2.0

Python 97.03% Shell 0.85% Groovy 1.26% Dockerfile 0.86%
elastest esm osba broker service tjob openservicebrokerapi services delivery docker

elastest-service-manager's Introduction

Copyright © 2017-2019 Zuercher Hochschule fuer Angewandte Wissenschaften. Licensed under Apache 2.0 License.

elastest-service-manager (esm)

License badge Documentation badge Build Status codecov

This is the elastest service manager that is responsible for providing support service instances to test jobs. It's an implementation of the Open Service Broker API, v2.12, with further extensions (See the spec for further details).

What is ElasTest

This repository is part of ElasTest, which is an open source elastic platform aimed to simplify end-to-end testing. ElasTest platform is based on three principles: i) Test orchestration: Combining intelligently testing units for creating a more complete test suite following the “divide and conquer” principle. ii) Instrumentation and monitoring: Customizing the SuT (Subject under Test) infrastructure so that it reproduces real-world operational behavior and allowing to gather relevant information during testing. iii) Test recommendation: Using machine learning and cognitive computing for recommending testing actions and providing testers with friendly interactive facilities for decision taking.

Documentation

The ElasTest project provides detailed documentation including tutorials, installation and development guide.

Detailed documentation on the ESM can be found under the docs directory.

Source

Source code for other ElasTest projects can be found in the GitHub ElasTest Group.

Support

If you need help and support with the ESM, please refer to the ElasTest Bugtracker. Here you can find the help you need.

News

Follow us on Twitter @ElasTest Twitter.

Contribution Policy

You can contribute to the ElasTest community through bug-reports, bug-fixes, new code or new documentation. For contributing to the ElasTest community, you can use the issue support of GitHub providing full information about your contribution and its value. In your contributions, you must comply with the following guidelines

  • You must specify the specific contents of your contribution either through a detailed bug description, through a pull-request or through a patch.
  • You must specify the licensing restrictions of the code you contribute.
  • For newly created code to be incorporated in the ElasTest code-base, you must accept ElasTest to own the code copyright, so that its open source nature is guaranteed.
  • You must justify appropriately the need and value of your contribution. The ElasTest project has no obligations in relation to accepting contributions from third parties.
  • The ElasTest project leaders have the right of asking for further explanations, tests or validations of any code contributed to the community before it being incorporated into the ElasTest code-base. You must be ready to addressing all these kind of concerns before having your code approved.

Licensing and distribution

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.

elastest-service-manager's People

Contributors

ademord avatar dizz avatar edujgurjc avatar franciscordiaz avatar gtunon avatar luksa avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elastest-service-manager's Issues

Problems starting TSS in ElasTest HEK

Hi,

we are having problems starting Test Support Services in ElasTest HEK.

The problem occurs when the ESM checks whether the namespace exists or not before creating it (https://github.com/elastest/elastest-service-manager/blob/master/src/adapters/resources.py#L686). The Kubernetes api returns a 404 not found, and the ESM code throws an exception:

usr/lib/python3.6/site-packages/urllib3/connectionpool.py:1004: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning,
2020-01-08 07:51:47,968 DEBUG https://100.64.0.1:443 "GET /api/v1/namespaces/14ba508a-dabc-453e-a3a3-39556e25c0f7 HTTP/1.1" 404 252
2020-01-08 07:51:47,968 DEBUG https://100.64.0.1:443 "GET /api/v1/namespaces/14ba508a-dabc-453e-a3a3-39556e25c0f7 HTTP/1.1" 404 252
DEBUG:urllib3.connectionpool:https://100.64.0.1:443 "GET /api/v1/namespaces/14ba508a-dabc-453e-a3a3-39556e25c0f7 HTTP/1.1" 404 252
DEBUG:kubernetes.client.rest:response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"namespaces \"14ba508a-dabc-453e-a3a3-39556e25c0f7\" not found","reason":"NotFound","details":{"name":"14ba508a-dabc-453e-a3a3-39556e25c0f7","kind":"namespaces"},"code":404}


ERROR:esm_api:Exception on /v2/service_instances/14ba508a-dabc-453e-a3a3-39556e25c0f7 [PUT]
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/lib/python3.6/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/lib/python3.6/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/lib/python3.6/site-packages/connexion/decorators/decorator.py", line 73, in wrapper
    response = function(request)
  File "/usr/lib/python3.6/site-packages/connexion/decorators/uri_parsing.py", line 117, in wrapper
    response = function(request)
  File "/usr/lib/python3.6/site-packages/connexion/decorators/validation.py", line 163, in wrapper
    response = function(request)
  File "/usr/lib/python3.6/site-packages/connexion/decorators/validation.py", line 336, in wrapper
    return function(request)
  File "/usr/lib/python3.6/site-packages/connexion/decorators/decorator.py", line 44, in wrapper
    response = function(request)
  File "/usr/lib/python3.6/site-packages/connexion/decorators/parameter.py", line 207, in wrapper
    return function(**kwargs)
  File "/app/esm/controllers/service_instances_controller.py", line 75, in create_service_instance
    entity, context = CreateInstance(entity, context).start()
  File "/app/adapters/generic.py", line 52, in start
    return self.run()
  File "/app/esm/controllers/tasks.py", line 76, in run
    c_type=mani.manifest_type, parameters=self.entity_req.parameters)
  File "/app/adapters/resources.py", line 946, in create
    be.create(instance_id, content, c_type, **kwargs)
  File "/app/adapters/resources.py", line 686, in create
    namespace_exists = self.core_api_instance.read_namespace(namespace)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/apis/core_v1_api.py", line 17555, in read_namespace
    (data) = self.read_namespace_with_http_info(name, **kwargs)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/apis/core_v1_api.py", line 17640, in read_namespace_with_http_info
    collection_formats=collection_formats)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 334, in call_api
    _return_http_data_only, collection_formats, _preload_content, _request_timeout)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 168, in __call_api
    _request_timeout=_request_timeout)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 355, in request
    headers=headers)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/rest.py", line 231, in GET
    query_params=query_params)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/rest.py", line 222, in request
    raise ApiException(http_resp=r)

kubernetes.client.rest.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json', 'Date': 'Wed, 08 Jan 2020 07:51:47 GMT', 'Content-Length': '252'})
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"namespaces \"14ba508a-dabc-453e-a3a3-39556e25c0f7\" not found","reason":"NotFound","details":{"name":"14ba508a-dabc-453e-a3a3-39556e25c0f7","kind":"namespaces"},"code":404}

Thanks in advance

ESM ignores environment variables defined in the "manifest_content" section

Hi Andy,

I am trying to provide an EMS TSS using the ESM and I can see, that the environment variables defined in the "manifest_content" section are ignored

It would be convenient to keep these environment variables.

Is it possible?

At this moment, the elasticsearch that start up the EMS does not work for this reason.

Thanks.

All API methods return the same message

Hi ,

We are trying to integrate all modules of ElasTest and therefore we have deployed the ESM. When we try to use the API, either from the code or from the URL http://192.168.99.100:8080/ui/, it always returns us the following message:

"No X-Broker-Api-Version header supplied in the request. This endpoint supports 2.12."

Have you ever seen this message?
Any idea what the problem might be?

Thank you.

Obtain the container ip of a provisioned service

Hi,

Using the API method GET to obtain the detail info of a service instance ("/v2/et/service_instances/{instance_id}"), the ESM returns the 0.0.0.0 value in the field "elastest-eus_8040/tcp/HostIp".

Should not return the ip of the container?

Environment variables defined in the docker-compose file do not apper inside the container....

Hi,

I have the following issue. I have defined the environment variable "- ET_DOCKER_IMG_NOVNC=elastest/eus-novnc:latest\n" in the docker-compose of the EUS, but this variable does not appear when I do print env inside the Eus container.
So I think the reason for this is the environment variables sent in the "paramenters" request field override the environment variables defined in the docker-compose file.

I have attched the following files:

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.