I'm getting this error "~/test1$ docker run -v "$(...
# troubleshooting
l
I'm getting this error "~/test1$ docker run -v "$(pwd)":/projects -w /projects meltano/meltano add extractor tap-oracle Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to join our friendly Slack community. HTTPSConnectionPool(host='hub.meltano.com', port=443): Max retries exceeded with url: /meltano/api/v1/plugins/extractors/index (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)')))" What am I doing wrong?
c
e
I just posted the step-by-step workaround in the issue linked created from that thread: https://github.com/meltano/meltano/issues/6334#issuecomment-1306386704
l
@edgar_ramirez_mondragon I'm trying to follow your instructions. I got to step 1. I understand you want me to create a file inside
plugins/extractors/
folder in my created project in step 2. I assume I need to call it "tap-oracle". Is there an extension for that file?
e
Hey @leog! The full relative path in your project should be
plugins/extractors/tap-oracle--transferwise.lock
. Note the
.lock
extension ๐Ÿ™‚
l
@edgar_ramirez_mondragon I must be doing something wrong. Here is how my meltano.yml looks like
Copy code
version: 1
default_environment: dev
project_id: bfcf510d-44fc-40bb-b661-a666277d5679
plugins:
      extractors:
      - name: tap-oracle
        variant: transferwise
environments:
- name: dev
- name: staging
- name: prod
this is what
tap-oracle--transferwise.lock
file looks like.
Copy code
PLUGIN_TYPE=extractors
    PLUGIN=tap-oracle
    VARIANT=transferwise
    PLUGIN_PATH=plugins/$PLUGIN_TYPE/$PLUGIN--$VARIANT
    curl <https://hub.meltano.com/meltano/api/v1/$PLUGIN_PATH> > $PLUGIN_PATH.lock
What am I missing?
Just remember, I'm on windows using docker.
e
@leog oh no, those shouldnโ€™t be the contents of
tap-oracle--transferwise.lock
, theyโ€™re rather the shell instructions to download them from Meltano Hub. The actual contents should be
Copy code
{
  "description": "Cloud Database",
  "label": "Oracle DB",
  "name": "tap-oracle",
  "logo_url": "<https://hub.meltano.com/assets/logos/extractors/oracle.png>",
  "namespace": "tap_oracle",
  "variant": "transferwise",
  "pip_url": "pipelinewise-tap-oracle",
  "repo": "<https://github.com/transferwise/pipelinewise-tap-oracle>",
  "settings_group_validation": [
    [
      "sid",
      "host",
      "port",
      "user",
      "password"
    ]
  ],
  "settings": [
    {
      "name": "sid",
      "label": "SID",
      "description": "Your Oracle SID."
    },
    {
      "name": "host",
      "label": "Host",
      "description": "Your Oracle host."
    },
    {
      "name": "port",
      "label": "Port",
      "description": "Your Oracle port."
    },
    {
      "name": "user",
      "label": "User",
      "description": "Your Oracle user."
    },
    {
      "name": "password",
      "kind": "password",
      "label": "Password",
      "description": "Your Oracle password."
    },
    {
      "name": "default_replication_method",
      "label": "Default Replication Method",
      "description": "The default replication method to use if one is not automatically set on the stream. Options - 'LOG_BASED', 'FULL_TABLE', 'INCREMENTAL'."
    },
    {
      "name": "filter_schemas",
      "label": "Filter Schemas",
      "description": "A comma separated list of schema names to scan. Used to improve the performance of data extraction.",
      "placeholder": "SCHEMA1,SCHEMA2"
    }
  ],
  "capabilities": [
    "catalog",
    "discover",
    "state"
  ],
  "docs": "<https://hub.meltano.com/extractors/tap-oracle--transferwise>"
}
(from https://hub.meltano.com/meltano/api/v1/plugins/extractors/tap-oracle--transferwise)
l
OK. So I created the .lock file for oracle with the content from above. I added a portion to meltano.yml. I was able to run meltano install extractors but I get errors when I try to initiate Meltano UI. Do I need to download the actual code for oracle extractor?
2022-11-10T16:39:29.753280Z [warning  ] <Request '<http://localhost:5000/api/v1/version?include_latest=true>' [GET]> failed with error SSLError(MaxRetryError("HTTPSConnectionPool(host='<http://pypi.org|pypi.org>', port=443): Max retries exceeded with url: /pypi/meltano/json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)')))")) getting latest_version from <http://pypi.org|pypi.org>
2022-11-10T163929.835561Z [error ] Exception on /api/v1/plugins/installed [GET] โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ /venv/lib/python3.9/site-packages/flask/app.py:2073 in wsgi_app โ”‚ โ”‚ โ”‚ โ”‚ 2070 โ”‚ โ”‚ try: โ”‚ โ”‚ 2071 โ”‚ โ”‚ โ”‚ try: โ”‚ โ”‚ 2072 โ”‚ โ”‚ โ”‚ โ”‚ ctx.push() โ”‚ โ”‚ โฑ 2073 โ”‚ โ”‚ โ”‚ โ”‚ response = self.full_dispatch_request() โ”‚ โ”‚ 2074 โ”‚ โ”‚ โ”‚ except Exception as e: โ”‚ โ”‚ 2075 โ”‚ โ”‚ โ”‚ โ”‚ error = e โ”‚ โ”‚ 2076 โ”‚ โ”‚ โ”‚ โ”‚ response = self.handle_exception(e) โ”‚ โ”‚ โ”‚ โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โ”‚ โ”‚ ctx = <RequestContext โ”‚ โ”‚ โ”‚ โ”‚ 'http://localhost:5000/api/v1/plugins/installed' [GET] โ”‚ โ”‚ โ”‚ โ”‚ of meltano.api.app> โ”‚ โ”‚ โ”‚ โ”‚ e = TypeError("__init__() missing 1 required positional โ”‚ โ”‚ โ”‚ โ”‚ argument: 'plugin_type'") โ”‚ โ”‚ โ”‚ โ”‚ environ = { โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.errors': โ”‚ โ”‚ โ”‚ โ”‚ <gunicorn.http.wsgi.WSGIErrorsWrapper object at โ”‚ โ”‚ โ”‚ โ”‚ 0x7f31aa1336a0>, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.version': (1, 0), โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.multithread': False, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.multiprocess': True, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.run_once': False, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.file_wrapper': <class โ”‚ โ”‚ โ”‚ โ”‚ 'gunicorn.http.wsgi.FileWrapper'>, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.input_terminated': True, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'SERVER_SOFTWARE': 'gunicorn/20.1.0', โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'wsgi.input': <gunicorn.http.body.Body object at โ”‚ โ”‚ โ”‚ โ”‚ 0x7f31aa1334c0>, โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ 'gunicorn.socket': <socket.socket fd=10, โ”‚ โ”‚ โ”‚ โ”‚ family=AddressFamily.AF_INET, โ”‚ โ”‚ โ”‚ โ”‚ type=SocketKind.SOCK_STREAM, proto=0, โ”‚ โ”‚ โ”‚ โ”‚ laddr=('172.17.0.2', 5000), raddrโ€ฆ
@edgar_ramirez_mondragon Any other suggestions?
This is what my meltano.yml looks like.
Copy code
version: 1
default_environment: dev
project_id: bfcf510d-44fc-40bb-b661-a666277d5679
environments:
- name: dev
- name: staging
- name: prod
plugins:
  extractors:
  - name: tap-mongodb
    variant: transferwise
    pip_url: pipelinewise-tap-mongodb
  - name: tap-oracle
    variant: transferwise
    pip_url: pipelinewise-tap-oracle