[TextField] Select option in toolbar do not match iOS platform

Steps to reproduce

Execute flutter run on the code sample
Input some words
The "Select" button is not shown in the toolbar
The toolbar does not show when tapping on the cursor

Expected results

The "Select" button is shown in the toolbar on iOS
Tapping on the cursor toggles the toolbar's visibility.

Actual results

The "Select" button is not shown in the toolbar
The toolbar does not show when tapping on the cursor, it's wired, sometimes tapping causes it to show, and other times it does not.

Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: "TextField bug"),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: const Center(
        child: Padding(padding: EdgeInsets.symmetric(horizontal: 64),
          child: TextField()
        ),
      ),
    );
  }
}

Screenshots or Video

The "Select" button is not shown in the toolbar:

The toolbar does not show when tapping on the cursor sometime:
https://github.com/flutter/flutter/assets/15030386/379a6d55-0842-49d7-97f4-5a1ae9b116be

Logs
Logs
No issues found!

Flutter Doctor output
Doctor output
[!] Flutter (Channel unknown, 3.9.0-11.0.pre.28, on macOS 14.2.1 23C71 darwin-x64, locale zh-Hans-CN)
    ! Flutter version 3.9.0-11.0.pre.28 on channel unknown at /Users/xxx/workspace/flutter
      Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
      If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install.
    ! Unknown upstream repository.
      Reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install.
    • Framework revision 934cad3e8b (1 year ago), 2023-03-19 20:47:44 +0800
    • Engine revision 2ed59405e7
    • Dart version 3.0.0 (build 3.0.0-339.0.dev)
    • DevTools version 2.22.2
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/xxx/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • ANDROID_HOME = /Users/xxx/Library/Android/sdk
    • Java binary at: /Users/xxx/Library/Java/JavaVirtualMachines/corretto-1.8.0_292/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment Corretto-8.292.10.1 (build 1.8.0_292-b10)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2021.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.87.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • xxx  (mobile) • 00008101-001D18E93C91001E • ios            • iOS 16.3.1 20D67
    • macOS (desktop)  • macos                     • darwin-x64     • macOS 14.2.1 23C71 darwin-x64
    • Chrome (web)     • chrome                    • web-javascript • Google Chrome 123.0.6312.87
    ! Error: Browsing on the local area network for iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network
      as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 3 categories.

Hi @acumen1005, this is a known issue being tracked at https://github.com/flutter/flutter/issues/107578. Closing this issue as a duplicate, so please follow up on it for further updates.


Add Application Name to the application details

To distribute an application you will need a full application name format and it confusing with the display name, and its only available from the url or CLI.
Describe the solution you'd like
I believe its highly important to add it to the Application details somewhere under the "application display name".
When you go to the Settings > App details. i Think its the right place for it

Thanks for describing your issue. We'll consider it for future improvements.
Thank you!


avoid chance of division by 0 panic

Avoid the possibility of a division by 0 error by checking length and returning empty value when length is 0. Allows calling code to manage situation without adding complications.

Oh, missed this PR. Is it alright if I close this in lieu of #22 (since it logs & exits instead of silently returning)?

Yeah. I missed #22. log.Fatal() is fine with me. Thanks.


training gets killed sometimes

rasa NLU version (e.g. 0.10):
Used backend / pipeline (mitie):
Operating system (ubuntu):
Issue:
While training it gets stopped(killed). If I try to train the same data again and again(2 to 3 times),its getting trained. I just  want to know why the training was killed at sometimes.
no of categories : 9
no of samples : 16
Content of configuration file (if used & relevant):

Is there an error message you get or some other information you can share with us that makes this reproducible?

When I do training, it was killed without throwing any error and when I do training after sometime it gets trained. In both cases training data remains the same.Refer both screenshots attached.

this looks like an out of memory error. How much ram do you have?

thanks for your reply @amn41.  I have 4GB ram. In general how much RAM is required?

that should be OK, since you're training with a pretty small data set. Try using top to track the memory while the training runs.  How much RAM is required?

From my understanding the MITIE or Spacy model plus your training data set all have to fit into memory. Plus some overhead. Plus any previously loaded models.
Looks like you may have MySQL running at the same time, which can use a chunk of RAM.

Thanks @wrathagom . I will increase the RAM and check it.

You could increase your swap size.

@AP8050 I'm closing, let us know if you weren't able to resolve this issue.

I increased the Ram from 4GB to 8GB. I have 16  intents with 73 samples and I tracked the memory while the training runs. It didn't consume any other resources. Only Trainingdata.json is created after that the training process gets killed.

Okay, to help we're going to need more information, and not in screenshots. Either post in gists or In your response the actual text.
Can you provide:

Operating System
Rasa version
complete config file
Complete training data (in a gist or privately e-mailed if you don't want to share publicly)

I've mailed you the information you asked for on Aug 01, 2017. Please check with it. @wrathagom

I see it now, will try to get some time to play with this today.

@wrathagom what happened?did you checked with that?

I run into the same problem. Did this fixed?

I couldn't reproduce this yet, which makes it hard to fix. @chenxian01 are you running the latest version from github?

Yes, I use the latest version. And I tried on my Ubuntu16.04 & Ubuntu17.04. I have 71 examples. When I trained the model, after a long long time, then they will show killed.

@chenxian01 how much memory are you using and which pipeline is specified in your configuration?

I use 2G memory and pipline is mitie.

mitie is most likely running out of memory there. either use spacy or use a machine with more memory.

I don't have too much memory in my machine. How much memory is enough? And the entity recognoziton for spacy is not better than mitie, sometimes it will give wrong prediction.

entity recognition for spacy can perform just as well as MITIE, it just needs to be trained properly, which likely just means more training examples.
Memory for MITIE is hard to calculate, but the .dat file it uses is > 1GB. Plus you'll need room to train you're model. I'd say you need at least 2-4 GB of RAM free before starting Rasa. That number increases as your number of intents increases.

@AP8050 sorry didn't realize I never responded. Was your training data modified before you sent it to me? There was a missing , on line 262.
I am training right now to see if it succeeds for me.

Hi I see this thread has been closed, I am facing same issue with Spacy_Sklearn, I am running my script on 8gb ram. While calling parse method rasa_nlu is making a sudden spike in CPU, which lead to killing the script specially if you are running it on cloud instance.

I am facing same issue with rasa 1.1.4.my config is
`language: "zh"
pipeline:

name: "tokenizer_jieba"
name: "intent_entity_featurizer_regex"
name: "ner_crf"
name: "ner_duckling_http"
language: "zh$core"
dimensions: ["time","number","duration","phone-number"]
name: "intent_featurizer_count_vectors"
OOV_token: oov
token_pattern: '(?u)\b\w+\b'
name: "intent_classifier_tensorflow_embedding"`
My training data  has a size of 118m . 2 intents  2789856 entity examples (1 distinct entities)
And an run the project on centos with 8 cpu cores and  528020320 KB   memery.
hopes for reply ,thanks

i have the same problem  . please help me


Read the docs first, all options are described there, including pagination.


Two times settling a channel leads to non-clickable token

Steps to reproduce

Connect to Kovan
Open the dApp at lightclient.raiden.network
Settle only available channel (has not been a valid address)
Settle the channel a 2nd time
Going back to the token screen
Click on the WETH token

Expected result

Menu to pay, etc. opens

Actual result

Nothing happens (see
lightclient.raiden.network-1566887702277.log

Warning:
Adding default global override for .m.rule.tombstone

Errors:
MetaMask - RPC Error: The execution failed due to an exception
Error: No seed provided

Actual result (after restart)

Empty token list

After a restart and reconnection the token list is empty

@christianbrb I wasn't able to reproduce this

I'm closing this one, as I can't reproduce it. I assume it got fixed within another bug fix


added autocode

Before issuing a pull request, please see the contributing page.

NOTE: some aspects of bot are commented out for testing purposes


REST feature layer extractor

Adding a new extractor to load data from a feature layer in a REST map or feature service endpoint.

Ok, I think I've addressed all the different ideas and suggestions (minus creating a properties class...). Do you guys know of a non-OBJECTID service I can test the arbitrarily-named object id stuff against?

Do you guys know of a non-OBJECTID service I can test the arbitrarily-named object id stuff against?

Here's one that I just put up. Let me know when you are done testing so that I can clean it up. I just download the dataset as a shapefile and then re-uploaded it.
https://services1.arcgis.com/99lidPhWCzftIe9K/ArcGIS/rest/services/Utah_County_Boundaries_TEST/FeatureServer/0

Do you guys know of a non-OBJECTID service I can test the arbitrarily-named object id stuff against?

Here's one that I just put up. Let me know when you are done testing so that I can clean it up. I just download the dataset as a shapefile and then re-uploaded it.
https://services1.arcgis.com/99lidPhWCzftIe9K/ArcGIS/rest/services/Utah_County_Boundaries_TEST/FeatureServer/0

Ok, duh, I could have done that :) But thank you! It works like it should.

Is authenticated access to private layers on the radar?

I hadn't thought about that, but that would be a good idea. I'll add it to the list while I'm rethinking/refactoring.

Ok, I think this is finally ready. I added access to the retry values as global variables that can be set by the client programs in case the default time/retries are not enough for a given application.

@stdavis and @steveoh, I'd love a final look at this and any last thoughts you've got.


7.0 refactoring

This change is

Reviewed 2 of 2 files at r1, 5 of 5 files at r2, 5 of 13 files at r3.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Create jace-ty

This is a template I've made from my blog @ https://jace.pro

I have a demo url https://jace-ty.netlify.app
I'll resubmit this or update with demo attribute


MINOR: Use close() instead of dispose() in various RocksDB classes

The latter has been deprecated.

Review by @guozhangwang

Thanks @ijuma , LGTM and merged to trunk.


Update README.md

Changed word driver for client on few places

The usage of driver is correct. The client manages drivers, drivers manage sessions, sessions manage transactions and transactions manage queries


Standalone waterline unable to use getDatastore() and use SendNativeQuery()

Hi,
I am using Waterline Standalone, from the documentation it said I can use raw SQL by using SendNativeQuery(), but to do that I need to get datastore first, but every time I use
collection.datastores or 'collection.getDatastore('default')`, it said it is not a function.
Is there any required step to use SendNativeQuery without using Sails?

@raqem , thanks, I hope you can look into this as I have tried and read a lot of docs but no avail, our team are planning to change ORM if we don't have access to Transaction and raw SQL to cover the ORM limitation.

Hi @rained23 I am not able to reproduce your issue. Would you be able to put together an example repo reproducing the behavior you're seeing?

@raqem Sure, I will find time for it.

Hi @raqem,
Please check the following repo
https://github.com/rained23/standalone-waterline-datastore

Hi @rained23, sorry for the confusion-- this is the expected behavior.  The concept of userland access to datastores, including dynamic connection leases, transactions, etc are implemented in sails-hook-orm and are not currently part of Waterline core.  We anticipate this changing eventually, but at the moment, you'll need to be using Sails to take advantage of those features.

So the only solution is to use sails.js? we are just in the beginning phase of selecting our ORM, are Sails planning to include it in near future or it is not in a roadmap currently?

Hi @rained23 adding this functionality to Standalone Waterline is on the roadmap but the core team is not currently working on it and it is impossible to say when this will land on someones desk.
Standalone Waterline is more limited in what it can do with Sails but feel free to check out the docs for information on fully supported features without Sails.


update deps

I just did a fresh 'make' of zot, and it generated these changes to go.mod
and go.sum; let's include them.
Signed-off-by: Tycho Andersen<EMAIL_ADDRESS>

Hmm. All I did was do a fresh clone and type 'make', does that not reproduce for you?

Codecov Report

Merging #32 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #32   +/-   ##
=======================================
  Coverage   56.56%   56.56%
=======================================
  Files          12       12
  Lines        1692     1692
=======================================
  Hits          957      957
  Misses        629      629
  Partials      106      106

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1dad866...5df6b36. Read the comment docs.

Hmm. All I did was do a fresh clone and type 'make', does that not reproduce for you?

Nope.

/tmp git clone https://github.com/anuvu/zot
Cloning into 'zot'...
remote: Enumerating objects: 102, done.
remote: Counting objects: 100% (102/102), done.
remote: Compressing objects: 100% (82/82), done.
remote: Total 285 (delta 37), reused 62 (delta 19), pack-reused 183
Receiving objects: 100% (285/285), 142.54 KiB | 1.18 MiB/s, done.
Resolving deltas: 100% (109/109), done.
/tmp cd zot/
/tmp/zot master make
swag -v || go install github.com/swaggo/swag/cmd/swag
/bin/sh: 1: swag: not found
go: finding github.com/gorilla/mux v1.7.3
go: finding github.com/jtblin/go-ldap-client v0.0.0-20170223121919-b73f66626b33
go: finding github.com/mitchellh/mapstructure v1.1.2
go: finding github.com/rs/zerolog v1.14.3
go: finding github.com/nmcclain/ldap v0.0.0-20190703182433-09931d85c0ff
go: finding github.com/swaggo/swag v1.6.2
go: finding github.com/nmcclain/asn1-ber v0.0.0-20170104154839-2661553a0484
go: finding github.com/spf13/viper v1.4.0
go: finding golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456
go: finding golang.org/x/tools v0.0.0-20190827205025-b29f5f60c37a
go: finding github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: finding gopkg.in/resty.v1 v1.12.0
go: finding golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586
go: finding github.com/modern-go/reflect2 v1.0.1
go: finding github.com/json-iterator/go v1.1.6
go: finding github.com/gorilla/websocket v1.4.0
go: finding github.com/spf13/cobra v0.0.5
go: finding github.com/gogo/protobuf v1.2.1
go: finding github.com/spf13/afero v1.1.2
go: finding golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
go: finding github.com/coreos/etcd v3.3.10+incompatible
go: finding gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d
go: finding github.com/getlantern/deepcopy v0.0.0-20160317154340-7f45deb8130a
go: finding github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef
go: finding github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
go: finding github.com/go-openapi/spec v0.19.0
go: finding github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f
go: finding github.com/opencontainers/distribution-spec v1.0.0-rc0
go: finding golang.org/x/net v0.0.0-20190620200207-3b0461eec859
go: finding github.com/gofrs/uuid v3.2.0+incompatible
go: finding github.com/spf13/viper v1.3.2
go: finding golang.org/x/net v0.0.0-20190522155817-f3200d17e092
go: finding github.com/magiconair/properties v1.8.0
go: finding go.uber.org/atomic v1.4.0
go: finding github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2
go: finding github.com/coreos/bbolt v1.3.2
go: finding github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14
go: finding github.com/go-openapi/swag v0.17.0
go: finding golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc
go: finding github.com/go-openapi/jsonreference v0.17.0
go: finding gopkg.in/ldap.v2 v2.5.1
go: finding github.com/mitchellh/go-homedir v1.1.0
go: finding github.com/spf13/cast v1.3.0
go: finding golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
go: finding github.com/KyleBanks/depth v1.2.1
go: finding golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: finding github.com/soheilhy/cmux v0.1.4
go: finding github.com/swaggo/http-swagger v0.0.0-20190614090009-c2865af9083e
go: finding github.com/zenazn/goji v0.9.0
go: finding github.com/inconshreveable/mousetrap v1.0.0
go: finding github.com/jonboulle/clockwork v0.1.0
go: finding golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468
go: finding github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: finding golang.org/x/net v0.0.0-20181005035420-146acd28ed58
go: finding golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9
go: finding github.com/spf13/jwalterweatherman v1.0.0
go: finding github.com/go-chi/chi v4.0.2+incompatible
go: finding github.com/ugorji/go v1.1.4
go: finding github.com/dgrijalva/jwt-go v3.2.0+incompatible
go: finding github.com/pelletier/go-toml v1.2.0
go: finding github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
go: finding github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
go: finding github.com/cpuguy83/go-md2man v1.0.10
go: finding github.com/hashicorp/hcl v1.0.0
go: finding go.etcd.io/bbolt v1.3.2
go: finding github.com/go-openapi/jsonpointer v0.17.0
go: finding github.com/ghodss/yaml v1.0.0
go: finding github.com/prometheus/client_golang v0.9.3
go: finding golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a
go: finding github.com/grpc-ecosystem/go-grpc-middleware v1.0.0
go: finding github.com/coreos/go-semver v0.2.0
go: finding github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8
go: finding github.com/smartystreets/goconvey v0.0.0-20190710185942-9d28bd7c0945
go: finding golang.org/x/net v0.0.0-20181220203305-927f97764cc3
go: finding github.com/grpc-ecosystem/grpc-gateway v1.9.0
go: finding github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6
go: finding github.com/go-openapi/jsonreference v0.19.0
go: finding go.uber.org/multierr v1.1.0
go: finding google.golang.org/grpc v1.21.0
go: finding github.com/PuerkitoBio/purell v1.1.0
go: finding github.com/google/btree v1.0.0
go: finding go.uber.org/zap v1.10.0
go: finding github.com/coreos/go-etcd v2.0.0+incompatible
go: finding github.com/prometheus/tsdb v0.7.1
go: finding github.com/fsnotify/fsnotify v1.4.7
go: finding github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77
go: finding github.com/prometheus/common v0.4.0
go: finding google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8
go: finding github.com/kisielk/errcheck v1.1.0
go: finding github.com/jtolds/gls v4.20.0+incompatible
go: finding github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af
go: finding golang.org/x/tools v0.0.0-20190328211700-ab21143f2384
go: finding github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329
go: finding golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8
go: finding github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1
go: finding github.com/russross/blackfriday v1.5.2
go: finding github.com/beorn7/perks v1.0.0
go: finding github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954
go: finding github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
go: finding github.com/cespare/xxhash v1.1.0
go: finding github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
go: finding github.com/oklog/ulid v1.3.1
go: finding github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce
go: finding github.com/kisielk/gotool v1.0.0
go: finding golang.org/x/tools v0.0.0-20180221164845-07fd8470d635
go: finding github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084
go: finding github.com/rs/xid v1.2.1
go: finding google.golang.org/grpc v1.19.0
go: finding gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7
go: finding github.com/OneOfOne/xxhash v1.2.2
go: finding github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72
go: finding golang.org/x/net v0.0.0-20180826012351-8a410e7b638d
go: finding golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f
go: finding google.golang.org/appengine v1.1.0
go: finding golang.org/x/tools v0.0.0-20190114222345-bf090417da8b
go: finding github.com/golang/mock v1.1.1
go: finding github.com/client9/misspell v0.3.4
go: finding cloud.google.com/go v0.26.0
go: finding honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099
go: finding golang.org/x/tools v0.0.0-20190311212946-11955173bddd
go: finding golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
go: finding golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3
go: finding golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3
go: finding golang.org/x/sys v0.0.0-20180830151530-49385e6e1522
go: downloading github.com/swaggo/swag v1.6.2
go: extracting github.com/swaggo/swag v1.6.2
go: downloading github.com/KyleBanks/depth v1.2.1
go: downloading github.com/go-openapi/spec v0.19.0
go: downloading github.com/go-openapi/jsonreference v0.19.0
go: downloading golang.org/x/tools v0.0.0-20190827205025-b29f5f60c37a
go: downloading github.com/ghodss/yaml v1.0.0
go: extracting github.com/KyleBanks/depth v1.2.1
go: extracting github.com/go-openapi/jsonreference v0.19.0
go: downloading github.com/PuerkitoBio/purell v1.1.0
go: downloading github.com/go-openapi/jsonpointer v0.17.0
go: extracting github.com/ghodss/yaml v1.0.0
go: extracting github.com/go-openapi/jsonpointer v0.17.0
go: downloading github.com/go-openapi/swag v0.17.0
go: extracting github.com/PuerkitoBio/purell v1.1.0
go: downloading github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: extracting github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: extracting github.com/go-openapi/swag v0.17.0
go: downloading github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329
go: extracting github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329
go: extracting github.com/go-openapi/spec v0.19.0
go: extracting golang.org/x/tools v0.0.0-20190827205025-b29f5f60c37a
swag init -g pkg/api/routes.go
2019/10/15 15:51:15 Generate swagger docs....
2019/10/15 15:51:15 Generate general API Info, search dir:./
2019/10/15 15:51:15 Generating api.ImageManifest
2019/10/15 15:51:15 Field type of '*ast.SelectorExpr' is unsupported. Skipping
2019/10/15 15:51:15 Generating api.ImageTags
2019/10/15 15:51:15 Generating api.RepositoryList
2019/10/15 15:51:15 create docs.go at  docs/docs.go
2019/10/15 15:51:15 create swagger.json at  docs/swagger.json
2019/10/15 15:51:15 create swagger.yaml at  docs/swagger.yaml
go build -v -ldflags "-X  github.com/anuvu/zot/pkg/api.Commit=v0.3.0-6-g1dad866-dirty" -o bin/zot -tags=jsoniter ./cmd/zot
go: downloading github.com/rs/zerolog v1.14.3
go: downloading github.com/mitchellh/mapstructure v1.1.2
go: downloading github.com/spf13/viper v1.4.0
go: downloading github.com/spf13/cobra v0.0.5
go: downloading github.com/opencontainers/distribution-spec v1.0.0-rc0
go: downloading github.com/smartystreets/goconvey v0.0.0-20190710185942-9d28bd7c0945
go: downloading github.com/json-iterator/go v1.1.6
go: downloading github.com/jtblin/go-ldap-client v0.0.0-20170223121919-b73f66626b33
go: downloading golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586
Fetching https://golang.org/x/crypto?go-get=1
go: extracting github.com/spf13/viper v1.4.0
go: downloading github.com/getlantern/deepcopy v0.0.0-20160317154340-7f45deb8130a
go: extracting github.com/jtblin/go-ldap-client v0.0.0-20170223121919-b73f66626b33
go: downloading github.com/spf13/jwalterweatherman v1.0.0
go: extracting github.com/mitchellh/mapstructure v1.1.2
go: extracting github.com/opencontainers/distribution-spec v1.0.0-rc0
go: downloading github.com/swaggo/http-swagger v0.0.0-20190614090009-c2865af9083e
go: downloading github.com/spf13/cast v1.3.0
go: extracting github.com/getlantern/deepcopy v0.0.0-20160317154340-7f45deb8130a
go: downloading github.com/spf13/pflag v1.0.3
go: extracting github.com/json-iterator/go v1.1.6
go: extracting github.com/rs/zerolog v1.14.3
go: downloading gopkg.in/ldap.v2 v2.5.1
Fetching https://gopkg.in/ldap.v2?go-get=1
go: extracting github.com/swaggo/http-swagger v0.0.0-20190614090009-c2865af9083e
go: downloading github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc
go: downloading github.com/gorilla/mux v1.7.3
go: downloading gopkg.in/resty.v1 v1.12.0
Fetching https://gopkg.in/resty.v1?go-get=1
go: extracting github.com/spf13/cobra v0.0.5
go: extracting github.com/spf13/jwalterweatherman v1.0.0
go: downloading github.com/fsnotify/fsnotify v1.4.7
go: extracting github.com/spf13/cast v1.3.0
go: downloading github.com/hashicorp/hcl v1.0.0
go: extracting github.com/fsnotify/fsnotify v1.4.7
go: extracting github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc
go: extracting github.com/spf13/pflag v1.0.3
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: extracting github.com/gorilla/mux v1.7.3
go: downloading github.com/modern-go/reflect2 v1.0.1
go: downloading github.com/pelletier/go-toml v1.2.0
go: downloading golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456
Fetching https://golang.org/x/sys?go-get=1
go: extracting github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading github.com/magiconair/properties v1.8.0
go: extracting github.com/hashicorp/hcl v1.0.0
go: extracting github.com/modern-go/reflect2 v1.0.1
go: downloading github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14
go: downloading github.com/gofrs/uuid v3.2.0+incompatible
go: downloading github.com/spf13/afero v1.1.2
go: extracting github.com/pelletier/go-toml v1.2.0
go: extracting github.com/magiconair/properties v1.8.0
go: extracting github.com/gofrs/uuid v3.2.0+incompatible
go: extracting github.com/spf13/afero v1.1.2
go: extracting github.com/smartystreets/goconvey v0.0.0-20190710185942-9d28bd7c0945
go: downloading github.com/jtolds/gls v4.20.0+incompatible
go: downloading github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
go: extracting github.com/jtolds/gls v4.20.0+incompatible
go: extracting github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
Parsing meta tags from https://gopkg.in/ldap.v2?go-get=1 (status code 200)
Parsing meta tags from https://gopkg.in/resty.v1?go-get=1 (status code 200)
get "gopkg.in/ldap.v2": found meta tag get.metaImport{Prefix:"gopkg.in/ldap.v2", VCS:"git", RepoRoot:"https://gopkg.in/ldap.v2"} at https://gopkg.in/ldap.v2?go-get=1
get "gopkg.in/resty.v1": found meta tag get.metaImport{Prefix:"gopkg.in/resty.v1", VCS:"git", RepoRoot:"https://gopkg.in/resty.v1"} at https://gopkg.in/resty.v1?go-get=1
go: extracting gopkg.in/ldap.v2 v2.5.1
go: downloading gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d
Fetching https://gopkg.in/asn1-ber.v1?go-get=1
go: extracting gopkg.in/resty.v1 v1.12.0
Parsing meta tags from https://gopkg.in/asn1-ber.v1?go-get=1 (status code 200)
get "gopkg.in/asn1-ber.v1": found meta tag get.metaImport{Prefix:"gopkg.in/asn1-ber.v1", VCS:"git", RepoRoot:"https://gopkg.in/asn1-ber.v1"} at https://gopkg.in/asn1-ber.v1?go-get=1
go: extracting gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d
go: extracting github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14
Parsing meta tags from https://golang.org/x/sys?go-get=1 (status code 200)
get "golang.org/x/sys": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at https://golang.org/x/sys?go-get=1
Parsing meta tags from https://golang.org/x/crypto?go-get=1 (status code 200)
get "golang.org/x/crypto": found meta tag get.metaImport{Prefix:"golang.org/x/crypto", VCS:"git", RepoRoot:"https://go.googlesource.com/crypto"} at https://golang.org/x/crypto?go-get=1
go: extracting golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586
go: extracting golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456
github.com/anuvu/zot/errors
golang.org/x/crypto/blowfish
github.com/alecthomas/template/parse
github.com/opencontainers/go-digest
github.com/gofrs/uuid
github.com/opencontainers/image-spec/specs-go
github.com/rs/zerolog/internal/json
github.com/opencontainers/image-spec/specs-go/v1
github.com/getlantern/deepcopy
github.com/gorilla/mux
github.com/modern-go/concurrent
github.com/modern-go/reflect2
github.com/rs/zerolog
github.com/alecthomas/template
gopkg.in/asn1-ber.v1
gopkg.in/ldap.v2
github.com/anuvu/zot/docs
github.com/anuvu/zot/pkg/storage
github.com/opencontainers/distribution-spec
golang.org/x/net/webdav/internal/xml
golang.org/x/crypto/bcrypt
github.com/json-iterator/go
github.com/jtblin/go-ldap-client
github.com/anuvu/zot/pkg/compliance
github.com/jtolds/gls
github.com/smartystreets/assertions/internal/go-render/render
github.com/smartystreets/assertions/internal/oglematchers
github.com/smartystreets/goconvey/convey/gotest
github.com/smartystreets/goconvey/convey/reporting
github.com/smartystreets/assertions
golang.org/x/net/publicsuffix
golang.org/x/net/webdav
gopkg.in/resty.v1
github.com/smartystreets/goconvey/convey
github.com/mitchellh/mapstructure
github.com/rs/zerolog/log
github.com/spf13/pflag
golang.org/x/sys/unix
github.com/hashicorp/hcl/hcl/strconv
github.com/swaggo/files
github.com/hashicorp/hcl/hcl/token
github.com/hashicorp/hcl/hcl/ast
github.com/hashicorp/hcl/hcl/scanner
github.com/hashicorp/hcl/hcl/parser
github.com/hashicorp/hcl/json/token
github.com/hashicorp/hcl/json/scanner
github.com/spf13/cobra
github.com/hashicorp/hcl/json/parser
github.com/fsnotify/fsnotify
github.com/hashicorp/hcl
github.com/hashicorp/hcl/hcl/printer
github.com/magiconair/properties
github.com/pelletier/go-toml
github.com/spf13/afero/mem
github.com/spf13/afero
github.com/spf13/cast
github.com/swaggo/http-swagger
github.com/anuvu/zot/pkg/api
github.com/spf13/jwalterweatherman
github.com/anuvu/zot/pkg/compliance/v1_0_0
github.com/spf13/viper
github.com/anuvu/zot/pkg/cli
github.com/anuvu/zot/cmd/zot
go build -v -gcflags all='-N -l' -ldflags "-X  github.com/anuvu/zot/pkg/api.Commit=v0.3.0-6-g1dad866-dirty" -o bin/zot-debug -tags=jsoniter ./cmd/zot
errors
runtime/internal/atomic
internal/race
internal/cpu
github.com/anuvu/zot/errors
runtime/internal/sys
sync/atomic
runtime/internal/math
unicode
unicode/utf8
internal/bytealg
container/list
math/bits
crypto/internal/subtle
crypto/subtle
math
internal/testlog
runtime
internal/x/crypto/cryptobyte/asn1
internal/nettrace
internal/x/net/dns/dnsmessage
runtime/cgo
internal/x/crypto/curve25519
encoding
unicode/utf16
github.com/anuvu/zot/pkg/compliance
strconv
github.com/hashicorp/hcl/hcl/strconv
crypto/rc4
golang.org/x/crypto/blowfish
sync
io
reflect
math/rand
syscall
internal/singleflight
bytes
hash
crypto
strings
bufio
crypto/internal/randutil
crypto/sha512
time
internal/syscall/unix
crypto/hmac
crypto/sha1
crypto/sha256
encoding/binary
sort
internal/poll
internal/x/crypto/hkdf
path
internal/fmtsort
crypto/cipher
crypto/md5
encoding/base64
os
internal/x/crypto/poly1305
encoding/pem
crypto/aes
crypto/des
internal/x/crypto/internal/chacha20
fmt
path/filepath
internal/x/crypto/chacha20poly1305
regexp/syntax
io/ioutil
golang.org/x/text/transform
math/big
encoding/hex
context
net/url
net
encoding/json
github.com/alecthomas/template/parse
github.com/alecthomas/template
crypto/elliptic
encoding/asn1
crypto/rand
crypto/ecdsa
crypto/dsa
crypto/rsa
crypto/x509/pkix
internal/x/crypto/cryptobyte
go/token
regexp
go/scanner
text/template/parse
go/ast
os/exec
text/template
internal/goroot
log
go/parser
github.com/PuerkitoBio/urlesc
golang.org/x/text/unicode/bidi
go/doc
golang.org/x/text/unicode/norm
golang.org/x/text/secure/bidirule
golang.org/x/text/width
go/build
github.com/mailru/easyjson/jlexer
golang.org/x/net/idna
github.com/mailru/easyjson/buffer
github.com/mailru/easyjson/jwriter
github.com/KyleBanks/depth
gopkg.in/yaml.v2
compress/flate
github.com/PuerkitoBio/purell
hash/crc32
internal/x/text/transform
compress/gzip
internal/x/text/unicode/bidi
internal/x/text/unicode/norm
crypto/x509
internal/x/text/secure/bidirule
net/textproto
internal/x/net/http2/hpack
mime
mime/quotedprintable
net/http/internal
mime/multipart
internal/x/net/idna
encoding/gob
crypto/tls
github.com/pkg/errors
internal/x/net/http/httpguts
internal/x/net/http/httpproxy
container/heap
go/constant
golang.org/x/tools/go/ast/astutil
go/types
golang.org/x/tools/go/buildutil
golang.org/x/tools/go/internal/cgo
database/sql/driver
github.com/opencontainers/go-digest
github.com/opencontainers/image-spec/specs-go
github.com/gofrs/uuid
net/http/httptrace
github.com/opencontainers/image-spec/specs-go/v1
github.com/rs/zerolog/internal/json
github.com/getlantern/deepcopy
net/http
runtime/debug
github.com/modern-go/concurrent
github.com/rs/zerolog
github.com/modern-go/reflect2
golang.org/x/tools/go/loader
github.com/anuvu/zot/pkg/storage
gopkg.in/asn1-ber.v1
github.com/opencontainers/distribution-spec
encoding/xml
gopkg.in/ldap.v2
github.com/json-iterator/go
golang.org/x/net/webdav/internal/xml
github.com/jtblin/go-ldap-client
html
html/template
golang.org/x/crypto/bcrypt
flag
github.com/go-openapi/swag
github.com/gorilla/mux
golang.org/x/net/webdav
github.com/jtolds/gls
github.com/smartystreets/assertions/internal/go-render/render
github.com/smartystreets/assertions/internal/oglematchers
github.com/go-openapi/jsonpointer
github.com/smartystreets/goconvey/convey/gotest
github.com/go-openapi/jsonreference
github.com/smartystreets/goconvey/convey/reporting
github.com/smartystreets/assertions
github.com/go-openapi/spec
net/http/cookiejar
golang.org/x/net/publicsuffix
github.com/smartystreets/goconvey/convey
gopkg.in/resty.v1
github.com/swaggo/files
runtime/trace
testing
github.com/swaggo/swag
github.com/mitchellh/mapstructure
github.com/rs/zerolog/log
encoding/csv
golang.org/x/sys/unix
github.com/spf13/pflag
github.com/anuvu/zot/docs
github.com/hashicorp/hcl/hcl/token
github.com/hashicorp/hcl/hcl/ast
github.com/hashicorp/hcl/hcl/scanner
github.com/hashicorp/hcl/hcl/parser
github.com/spf13/cobra
github.com/hashicorp/hcl/json/token
github.com/fsnotify/fsnotify
github.com/hashicorp/hcl/json/scanner
text/tabwriter
github.com/hashicorp/hcl/json/parser
github.com/hashicorp/hcl/hcl/printer
github.com/hashicorp/hcl
github.com/magiconair/properties
github.com/pelletier/go-toml
github.com/swaggo/http-swagger
github.com/spf13/afero/mem
github.com/anuvu/zot/pkg/api
github.com/spf13/afero
github.com/spf13/cast
github.com/spf13/jwalterweatherman
github.com/anuvu/zot/pkg/compliance/v1_0_0
github.com/spf13/viper
github.com/anuvu/zot/pkg/cli
github.com/anuvu/zot/cmd/zot
+ openssl req -newkey rsa:2048 -nodes -days 3650 -x509 -keyout ca.key -out ca.crt -subj '/CN=*'
Generating a RSA private key
...............................+++++
.....................+++++
writing new private key to 'ca.key'
-----
+ openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.csr -subj '/OU=TestServer/CN=*'
Generating a RSA private key
.....................+++++
...............+++++
writing new private key to 'server.key'
-----
+ openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.cert -extfile /dev/fd/63
++ echo subjectAltName = IP:<IP_ADDRESS>
Signature ok
subject=OU = TestServer, CN = *
Getting CA Private Key
+ openssl req -newkey rsa:2048 -nodes -keyout client.key -out client.csr -subj '/OU=TestClient/CN=*'
Generating a RSA private key
..................................................+++++
....+++++
writing new private key to 'client.key'
-----
+ openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.cert
Signature ok
subject=OU = TestClient, CN = *
Getting CA Private Key
go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./...
go: downloading github.com/nmcclain/ldap v0.0.0-20190703182433-09931d85c0ff
go: extracting github.com/nmcclain/ldap v0.0.0-20190703182433-09931d85c0ff
go: downloading github.com/nmcclain/asn1-ber v0.0.0-20170104154839-2661553a0484
go: extracting github.com/nmcclain/asn1-ber v0.0.0-20170104154839-2661553a0484
?   	github.com/anuvu/zot	[no test files]
=== RUN   TestIntegration

  Make a new controller ✔✔Usage:
  zot [flags]
  zot [command]

Available Commands:
  compliance      `compliance` checks compliance with respect to OCI distribution-spec
  garbage-collect `garbage-collect` deletes layers not referenced by any manifests
  help            Help about any command
  serve           `serve` stores and distributes OCI images

Flags:
  -h, --help      help for zot
  -v, --version   show the version and exit

Use "zot [command] --help" for more information about a command.
✔

3 total assertions

--- PASS: TestIntegration (0.00s)
PASS
coverage: 0.0% of statements
ok  	github.com/anuvu/zot/cmd/zot	1.467s	coverage: 0.0% of statements
?   	github.com/anuvu/zot/docs	[no test files]
?   	github.com/anuvu/zot/errors	[no test files]
=== RUN   TestNew

  Make a new controller ✔✔

2 total assertions

--- PASS: TestNew (0.00s)
=== RUN   TestBasicAuth

  Make a new controller {"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test145150794"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8081","TLS":null,"Auth":{"FailDelay":0,"HTPasswd":{"Path":"../../test/data/htpasswd"},"LDAP":null},"Realm":"","AllowReadAccess":false},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:53.868734604-06:00","message":"configuration settings"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49588","method":"GET","path":"/v2/","statusCode":401,"latency":"539.986µs","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:53.980418888-06:00","message":"HTTP API"}
✔✔✔✔RESTY 2019/10/15 15:51:53 WARNING - Using Basic Auth in HTTP mode is not secure.
✔✔RESTY 2019/10/15 15:51:53 WARNING - Using Basic Auth in HTTP mode is not secure.
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49588","method":"GET","path":"/v2/","statusCode":200,"latency":"46.865225ms","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.034309797-06:00","message":"HTTP API"}
✔✔

10 total assertions

--- PASS: TestBasicAuth (0.17s)
=== RUN   TestTLSWithBasicAuth

  Make a new controller ✔{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test343985185"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8082","TLS":{"Cert":"../../test/data/server.cert","Key":"../../test/data/server.key","CACert":""},"Auth":{"FailDelay":0,"HTPasswd":{"Path":"../../test/data/htpasswd"},"LDAP":null},"Realm":"","AllowReadAccess":false},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:54.036503592-06:00","message":"configuration settings"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49070","method":"GET","path":"/v2/","statusCode":401,"latency":"116.136µs","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.154192161-06:00","message":"HTTP API"}
✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49070","method":"GET","path":"/v2/","statusCode":200,"latency":"48.51355ms","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.20602928-06:00","message":"HTTP API"}
✔✔

22 total assertions

--- PASS: TestTLSWithBasicAuth (0.17s)
=== RUN   TestTLSWithBasicAuthAllowReadAccess

  Make a new controller ✔{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test482336524"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8082","TLS":{"Cert":"../../test/data/server.cert","Key":"../../test/data/server.key","CACert":""},"Auth":{"FailDelay":0,"HTPasswd":{"Path":"../../test/data/htpasswd"},"LDAP":null},"Realm":"","AllowReadAccess":true},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:54.208504216-06:00","message":"configuration settings"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49076","method":"GET","path":"/v2/","statusCode":200,"latency":"45.483µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.233872486-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49076","method":"GET","path":"/v2/","statusCode":200,"latency":"34.029µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.236781607-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49076","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":401,"latency":"127.185µs","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.240025562-06:00","message":"HTTP API"}
✔✔

34 total assertions

--- PASS: TestTLSWithBasicAuthAllowReadAccess (0.04s)
=== RUN   TestTLSMutualAuth

  Make a new controller ✔{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test893441275"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8082","TLS":{"Cert":"../../test/data/server.cert","Key":"../../test/data/server.key","CACert":"../../test/data/ca.crt"},"Auth":null,"Realm":"","AllowReadAccess":false},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:54.244331532-06:00","message":"configuration settings"}
✔✔✔2019/10/15 15:51:54 http: TLS handshake error from <IP_ADDRESS>:49084: tls: client didn't provide a certificate
✔2019/10/15 15:51:54 http: TLS handshake error from <IP_ADDRESS>:49086: tls: client didn't provide a certificate
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49088","method":"GET","path":"/v2/","statusCode":200,"latency":"33.843µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.386602395-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49088","method":"GET","path":"/v2/","statusCode":200,"latency":"70.696µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.389282217-06:00","message":"HTTP API"}
✔✔

48 total assertions

--- PASS: TestTLSMutualAuth (0.15s)
=== RUN   TestTLSMutualAuthAllowReadAccess

  Make a new controller ✔{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test451097118"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8082","TLS":{"Cert":"../../test/data/server.cert","Key":"../../test/data/server.key","CACert":"../../test/data/ca.crt"},"Auth":null,"Realm":"","AllowReadAccess":true},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:54.391729716-06:00","message":"configuration settings"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49096","method":"GET","path":"/v2/","statusCode":200,"latency":"41.309µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.507354765-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49096","method":"GET","path":"/v2/","statusCode":200,"latency":"34.148µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.508790341-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49096","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":401,"latency":"5.000546369s","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.511965765-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49096","method":"GET","path":"/v2/","statusCode":200,"latency":"153.467µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.525958568-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49096","method":"GET","path":"/v2/","statusCode":200,"latency":"111.992µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.534279986-06:00","message":"HTTP API"}
✔✔

66 total assertions

--- PASS: TestTLSMutualAuthAllowReadAccess (5.15s)
=== RUN   TestTLSMutualAndBasicAuth

  Make a new controller ✔{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test750688485"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8082","TLS":{"Cert":"../../test/data/server.cert","Key":"../../test/data/server.key","CACert":"../../test/data/ca.crt"},"Auth":{"FailDelay":0,"HTPasswd":{"Path":"../../test/data/htpasswd"},"LDAP":null},"Realm":"","AllowReadAccess":false},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:59.540941423-06:00","message":"configuration settings"}
✔✔✔✔✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49108","method":"GET","path":"/v2/","statusCode":401,"latency":"102.192µs","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.683527076-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49108","method":"GET","path":"/v2/","statusCode":200,"latency":"30.505594ms","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.717006756-06:00","message":"HTTP API"}
✔✔

84 total assertions

--- PASS: TestTLSMutualAndBasicAuth (0.18s)
=== RUN   TestTLSMutualAndBasicAuthAllowReadAccess

  Make a new controller ✔{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test842540800"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8082","TLS":{"Cert":"../../test/data/server.cert","Key":"../../test/data/server.key","CACert":"../../test/data/ca.crt"},"Auth":{"FailDelay":0,"HTPasswd":{"Path":"../../test/data/htpasswd"},"LDAP":null},"Realm":"","AllowReadAccess":true},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:59.71841502-06:00","message":"configuration settings"}
✔✔✔✔✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49116","method":"GET","path":"/v2/","statusCode":200,"latency":"27.596µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.849071361-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49116","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":401,"latency":"100.459µs","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.851273719-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49116","method":"GET","path":"/v2/","statusCode":200,"latency":"20.399µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:59.853900754-06:00","message":"HTTP API"}
✔✔

103 total assertions

--- PASS: TestTLSMutualAndBasicAuthAllowReadAccess (0.14s)
=== RUN   TestBasicAuthWithLDAP

  Make a new controller {"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test531829855"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8081","TLS":null,"Auth":{"FailDelay":0,"HTPasswd":{"Path":""},"LDAP":{"Port":9636,"Insecure":true,"StartTLS":false,"SkipVerify":false,"SubtreeSearch":false,"Address":"<IP_ADDRESS>","BindDN":"cn=reader,ou=test","BindPassword":"******","BaseDN":"ou=test","UserAttribute":"uid","CACert":""}},"Realm":"","AllowReadAccess":false},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:59.868347606-06:00","message":"configuration settings"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49654","method":"GET","path":"/v2/","statusCode":401,"latency":"259.745µs","bodySize":258,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:52:00.1795301-06:00","message":"HTTP API"}
✔✔✔✔RESTY 2019/10/15 15:52:00 WARNING - Using Basic Auth in HTTP mode is not secure.
✔✔RESTY 2019/10/15 15:52:00 WARNING - Using Basic Auth in HTTP mode is not secure.
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:49654","method":"GET","path":"/v2/","statusCode":200,"latency":"9.546549ms","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Authorization":["Basic dGVzdDp0ZXN0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:52:00.196866343-06:00","message":"HTTP API"}
✔✔

111 total assertions

--- PASS: TestBasicAuthWithLDAP (0.34s)
PASS
coverage: 34.1% of statements
ok  	github.com/anuvu/zot/pkg/api	7.739s	coverage: 34.1% of statements
=== RUN   TestUsage

  Test usage `zot`

Usage:
  zot [flags]
  zot [command]

Available Commands:
  compliance      `compliance` checks compliance with respect to OCI distribution-spec
  garbage-collect `garbage-collect` deletes layers not referenced by any manifests
  help            Help about any command
  serve           `serve` stores and distributes OCI images

Flags:
  -h, --help      help for zot
  -v, --version   show the version and exit

Use "zot [command] --help" for more information about a command.
✔

1 total assertion

  Test version {"level":"info","distribution-spec":"0.1.0-dev","commit":"","time":"2019-10-15T15:51:54-06:00","message":"version"}
Usage:
  zot [flags]
  zot [command]

Available Commands:
  compliance      `compliance` checks compliance with respect to OCI distribution-spec
  garbage-collect `garbage-collect` deletes layers not referenced by any manifests
  help            Help about any command
  serve           `serve` stores and distributes OCI images

Flags:
  -h, --help      help for zot
  -v, --version   show the version and exit

Use "zot [command] --help" for more information about a command.
✔

2 total assertions

--- PASS: TestUsage (0.01s)
=== RUN   TestServe

  Test serve help `serve` stores and distributes OCI images

Usage:
  zot serve <config> [flags]

Aliases:
  serve, serve

Flags:
  -h, --help   help for serve
✔

3 total assertions

  Test serve config
    unknown config ✔
    non-existent config ✔
    bad config ✔✔✔✔

9 total assertions

--- PASS: TestServe (0.01s)
=== RUN   TestGC

  Test gc `garbage-collect` deletes layers not referenced by any manifests

Usage:
  zot garbage-collect <config> [flags]

Aliases:
  garbage-collect, gc

Flags:
  -m, --delete-untagged           delete manifests that are not currently referenced via tag
  -d, --dry-run                   do everything except remove the blobs
  -h, --help                      help for garbage-collect
  -r, --storage-root-dir string   Use specified directory for filestore backing image data
✔

10 total assertions

--- PASS: TestGC (0.00s)
PASS
coverage: 72.0% of statements
ok  	github.com/anuvu/zot/pkg/cli	1.338s	coverage: 72.0% of statements
?   	github.com/anuvu/zot/pkg/compliance	[no test files]
{"level":"info","params":{"Version":"0.1.0-dev","Commit":"","Storage":{"RootDirectory":"/tmp/oci-repo-test208617426"},"HTTP":{"Address":"<IP_ADDRESS>","Port":"8080","TLS":null,"Auth":null,"Realm":"","AllowReadAccess":false},"Log":{"Level":"debug","Output":""}},"time":"2019-10-15T15:51:54.67744306-06:00","message":"configuration settings"}
=== RUN   TestWorkflows
------------------------------
Checking for v1.0.0 compliance
------------------------------

  Make API calls to the controller
    Check version
Check version{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/","statusCode":200,"latency":"16.75µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.78094616-06:00","message":"HTTP API"}
✔✔
    Get repository catalog
Get repository catalog{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/_catalog","statusCode":200,"latency":"357.364µs","bodySize":19,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.782724796-06:00","message":"HTTP API"}
✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/z/blobs/uploads/","statusCode":202,"latency":"939.225µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.786214295-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/a/b/c/d/blobs/uploads/","statusCode":202,"latency":"314.889µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.789774309-06:00","message":"HTTP API"}
✔✔{"level":"debug","dir":"/tmp/oci-repo-test208617426/a/b/c/d","name":"d","time":"2019-10-15T15:51:54.792043583-06:00","caller":"/tmp/zot/pkg/storage/storage.go:182","message":"found image store"}
{"level":"debug","dir":"/tmp/oci-repo-test208617426/z","name":"z","time":"2019-10-15T15:51:54.792623792-06:00","caller":"/tmp/zot/pkg/storage/storage.go:182","message":"found image store"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/_catalog","statusCode":200,"latency":"1.751918ms","bodySize":32,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.793044346-06:00","message":"HTTP API"}
✔✔✔✔✔✔
    Get images in a repository
Get images in a repository{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/tags/list","statusCode":404,"latency":"462.946µs","bodySize":185,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.795313497-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":202,"latency":"387.532µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.798311921-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/tags/list","statusCode":200,"latency":"303.959µs","bodySize":25,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.799850902-06:00","message":"HTTP API"}
✔✔✔
    Monolithic blob upload
Monolithic blob upload{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":202,"latency":"129.97µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.806958814-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/uploads/07eecd60-d18d-4b5f-9ccf-02880a2a79b8","statusCode":204,"latency":"110.272µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.812025408-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/tags/list","statusCode":200,"latency":"150.82µs","bodySize":25,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.813499643-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/07eecd60-d18d-4b5f-9ccf-02880a2a79b8","statusCode":400,"latency":"12.957µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.818226565-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/07eecd60-d18d-4b5f-9ccf-02880a2a79b8?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":400,"latency":"32.219µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.822933615-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/07eecd60-d18d-4b5f-9ccf-02880a2a79b8?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":400,"latency":"20.744µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.827135771-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/07eecd60-d18d-4b5f-9ccf-02880a2a79b8?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":201,"latency":"475.291µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["14"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.83297207-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/uploads/07eecd60-d18d-4b5f-9ccf-02880a2a79b8","statusCode":404,"latency":"178.142µs","bodySize":220,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.837372534-06:00","message":"HTTP API"}
✔✔2019/10/15 15:51:54 http: superfluous response.WriteHeader call from github.com/anuvu/zot/pkg/api.(*statusWriter).WriteHeader (log.go:40)
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/sha256:58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":200,"latency":"231.316µs","bodySize":14,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.83957022-06:00","message":"HTTP API"}
✔✔
    Monolithic blob upload with multiple name components
Monolithic blob upload with multiple name components{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo1/repo2/repo3/blobs/uploads/","statusCode":202,"latency":"268.045µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.841977707-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo1/repo2/repo3/blobs/uploads/ac20b6dc-7987-4941-b6d5-6e9f1ca66af3","statusCode":204,"latency":"61.359µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.845367976-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo1/repo2/repo3/tags/list","statusCode":200,"latency":"105.862µs","bodySize":38,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.846194796-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo1/repo2/repo3/blobs/uploads/ac20b6dc-7987-4941-b6d5-6e9f1ca66af3","statusCode":400,"latency":"6.113µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.850761135-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo1/repo2/repo3/blobs/uploads/ac20b6dc-7987-4941-b6d5-6e9f1ca66af3?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":400,"latency":"13.562µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.854741184-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo1/repo2/repo3/blobs/uploads/ac20b6dc-7987-4941-b6d5-6e9f1ca66af3?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":400,"latency":"12.406µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.858587931-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo1/repo2/repo3/blobs/uploads/ac20b6dc-7987-4941-b6d5-6e9f1ca66af3?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":201,"latency":"394.188µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["14"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.862594348-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo1/repo2/repo3/blobs/uploads/ac20b6dc-7987-4941-b6d5-6e9f1ca66af3","statusCode":404,"latency":"85.789µs","bodySize":220,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.865900603-06:00","message":"HTTP API"}
✔✔2019/10/15 15:51:54 http: superfluous response.WriteHeader call from github.com/anuvu/zot/pkg/api.(*statusWriter).WriteHeader (log.go:40)
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo1/repo2/repo3/blobs/sha256:58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":200,"latency":"170.315µs","bodySize":14,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.867513526-06:00","message":"HTTP API"}
✔✔
    Chunked blob upload
Chunked blob upload{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":202,"latency":"79.828µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.869103775-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.872034365-06:00","message":"request headers"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PATCH","path":"/v2/repo/blobs/uploads/20386785-b905-4110-9731-48a225a84042","statusCode":202,"latency":"258.237µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.872279621-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/uploads/20386785-b905-4110-9731-48a225a84042","statusCode":204,"latency":"43.38µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.875017001-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.877873356-06:00","message":"request headers"}
{"level":"error","expected":0,"actual":23,"time":"2019-10-15T15:51:54.877924564-06:00","caller":"/tmp/zot/pkg/storage/storage.go:514","message":"invalid range start for blob upload"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PATCH","path":"/v2/repo/blobs/uploads/20386785-b905-4110-9731-48a225a84042","statusCode":400,"latency":"173.966µs","bodySize":181,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.87804717-06:00","message":"HTTP API"}
✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/20386785-b905-4110-9731-48a225a84042?digest=sha256%3Add498f16c558d6121920a9e03f4f70bf621a28d215eacf98d558da1af87366b9","statusCode":201,"latency":"375.168µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["24"],"Content-Range":["23-47"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.882058985-06:00","message":"HTTP API"}
✔✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/uploads/20386785-b905-4110-9731-48a225a84042","statusCode":404,"latency":"96.582µs","bodySize":220,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.885101136-06:00","message":"HTTP API"}
✔✔2019/10/15 15:51:54 http: superfluous response.WriteHeader call from github.com/anuvu/zot/pkg/api.(*statusWriter).WriteHeader (log.go:40)
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/sha256:dd498f16c558d6121920a9e03f4f70bf621a28d215eacf98d558da1af87366b9","statusCode":200,"latency":"214.533µs","bodySize":47,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.88687367-06:00","message":"HTTP API"}
✔✔
    Chunked blob upload with multiple name components
Chunked blob upload with multiple name components{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo4/repo5/repo6/blobs/uploads/","statusCode":202,"latency":"346.007µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.88932742-06:00","message":"HTTP API"}
✔✔✔✔✔{"level":"info","headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.892993814-06:00","message":"request headers"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PATCH","path":"/v2/repo4/repo5/repo6/blobs/uploads/312b398b-484e-4b8b-9696-c95e7e41fb62","statusCode":202,"latency":"332.643µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.893332858-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo4/repo5/repo6/blobs/uploads/312b398b-484e-4b8b-9696-c95e7e41fb62","statusCode":204,"latency":"45.719µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.896471562-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.899950648-06:00","message":"request headers"}
{"level":"error","expected":0,"actual":23,"time":"2019-10-15T15:51:54.900009069-06:00","caller":"/tmp/zot/pkg/storage/storage.go:514","message":"invalid range start for blob upload"}
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PATCH","path":"/v2/repo4/repo5/repo6/blobs/uploads/312b398b-484e-4b8b-9696-c95e7e41fb62","statusCode":400,"latency":"176.447µs","bodySize":181,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["23"],"Content-Range":["0-23"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.900136231-06:00","message":"HTTP API"}
✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo4/repo5/repo6/blobs/uploads/312b398b-484e-4b8b-9696-c95e7e41fb62?digest=sha256%3Add498f16c558d6121920a9e03f4f70bf621a28d215eacf98d558da1af87366b9","statusCode":201,"latency":"445.826µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["24"],"Content-Range":["23-47"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.904822478-06:00","message":"HTTP API"}
✔✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo4/repo5/repo6/blobs/uploads/312b398b-484e-4b8b-9696-c95e7e41fb62","statusCode":404,"latency":"96.252µs","bodySize":220,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.90833732-06:00","message":"HTTP API"}
✔✔2019/10/15 15:51:54 http: superfluous response.WriteHeader call from github.com/anuvu/zot/pkg/api.(*statusWriter).WriteHeader (log.go:40)
{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo4/repo5/repo6/blobs/sha256:dd498f16c558d6121920a9e03f4f70bf621a28d215eacf98d558da1af87366b9","statusCode":200,"latency":"222.492µs","bodySize":47,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.910246177-06:00","message":"HTTP API"}
✔✔
    Create and delete uploads
Create and delete uploads{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":202,"latency":"88.851µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.912098356-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"DELETE","path":"/v2/repo/blobs/uploads/f4654048-ac33-4862-beae-ce4d480160a8","statusCode":200,"latency":"47.857µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.915839352-06:00","message":"HTTP API"}
✔✔
    Create and delete blobs
Create and delete blobs{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":202,"latency":"123.182µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.918440619-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/7483cc7e-f800-46ba-b8b1-88c59966d9a3?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":201,"latency":"360.224µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["14"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.922180763-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"DELETE","path":"/v2/repo/blobs/sha256:58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":202,"latency":"77.149µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.923679766-06:00","message":"HTTP API"}
✔✔✔
    Manifests
Manifests{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"POST","path":"/v2/repo/blobs/uploads/","statusCode":202,"latency":"80.783µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["0"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.925284107-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/blobs/uploads/8f7af68b-45e6-495f-84c1-723f56161e81","statusCode":204,"latency":"45.287µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.928010758-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/blobs/uploads/8f7af68b-45e6-495f-84c1-723f56161e81?digest=sha256%3A58f98639eaa1dfe0e16628375bbbd42593585800d93a79b96a970d7bd909caf9","statusCode":201,"latency":"325.991µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"Content-Length":["14"],"Content-Type":["application/octet-stream"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.93156514-06:00","message":"HTTP API"}
✔✔✔✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"PUT","path":"/v2/repo/manifests/test:1.0","statusCode":201,"latency":"484.3µs","bodySize":0,"headers":{"Accept":["application/vnd.oci.image.manifest.v1+json"],"Accept-Encoding":["gzip"],"Content-Length":["156"],"Content-Type":["application/vnd.oci.image.manifest.v1+json"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.933312892-06:00","message":"HTTP API"}
✔✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"HEAD","path":"/v2/repo/manifests/test:1.0","statusCode":200,"latency":"207.466µs","bodySize":0,"headers":{"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.934376021-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/manifests/test:1.0","statusCode":200,"latency":"283.432µs","bodySize":156,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.935469542-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"HEAD","path":"/v2/repo/manifests/sha256:7f5961ccd272cb45667c9e291a9bc398805d70f51a0c768be3760f3a0ae5279c","statusCode":200,"latency":"211.27µs","bodySize":0,"headers":{"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.936652851-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/manifests/sha256:7f5961ccd272cb45667c9e291a9bc398805d70f51a0c768be3760f3a0ae5279c","statusCode":200,"latency":"222.03µs","bodySize":156,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.937937853-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"DELETE","path":"/v2/repo/manifests/test:1.0","statusCode":200,"latency":"262.071µs","bodySize":0,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.939682421-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"DELETE","path":"/v2/repo/manifests/sha256:7f5961ccd272cb45667c9e291a9bc398805d70f51a0c768be3760f3a0ae5279c","statusCode":404,"latency":"152.913µs","bodySize":260,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.941476848-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"HEAD","path":"/v2/repo/manifests/test:1.0","statusCode":404,"latency":"103.965µs","bodySize":197,"headers":{"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.942395449-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/manifests/test:1.0","statusCode":404,"latency":"103.677µs","bodySize":197,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.943256223-06:00","message":"HTTP API"}
✔✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"HEAD","path":"/v2/repo/manifests/sha256:7f5961ccd272cb45667c9e291a9bc398805d70f51a0c768be3760f3a0ae5279c","statusCode":404,"latency":"110.642µs","bodySize":260,"headers":{"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.944234348-06:00","message":"HTTP API"}
✔✔{"level":"info","module":"http","clientIP":"<IP_ADDRESS>:38696","method":"GET","path":"/v2/repo/manifests/sha256:7f5961ccd272cb45667c9e291a9bc398805d70f51a0c768be3760f3a0ae5279c","statusCode":404,"latency":"133.676µs","bodySize":260,"headers":{"Accept-Encoding":["gzip"],"User-Agent":["go-resty/1.12.0 (https://github.com/go-resty/resty)"]},"time":"2019-10-15T15:51:54.945472346-06:00","message":"HTTP API"}
✔✔✔

187 total assertions

--- PASS: TestWorkflows (0.17s)
PASS
coverage: 99.7% of statements
ok  	github.com/anuvu/zot/pkg/compliance/v1_0_0	1.597s	coverage: 99.7% of statements
=== RUN   TestAPIs

  Repo layout
    Validate repo without initialization ✔✔
    Initialize repo ✔
    Validate repo ✔✔
    Get repos {"level":"debug","dir":"/tmp/oci-repo-test068853443/test","name":"test","caller":"/tmp/zot/pkg/storage/storage.go:182","message":"found image store"}
✔✔
    Get image tags ✔✔
    New blob upload ✔✔
      Get blob upload ✔✔✔✔✔✔✔✔✔✔✔✔
        Bad image manifest {"level":"error","actual":"sha256:473e2576489c47f2637c97ff1e2a85d9ae3de69ea555aa8b2695b8b4104d4fba","expected":"sha256:a186000422feab857329c684e9fe91412b1a5db084100b37a98cfc95b62aa867","caller":"/tmp/zot/pkg/storage/storage.go:314","message":"manifest digest is not valid"}
✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔
        Good image manifest ✔✔✔✔✔✔

47 total assertions

--- PASS: TestAPIs (0.01s)
PASS
coverage: 67.4% of statements
ok  	github.com/anuvu/zot/pkg/storage	1.025s	coverage: 67.4% of statements
golangci-lint --version || curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.17.1
golangci-lint has version 1.15.0 built from 901cf25 on 2019-02-18T08:24:43Z
golangci-lint  --config .bazel/golangcilint.yaml run --enable-all ./cmd/... ./pkg/..

I just reproduced it again on a different box. Feel free to close it if I did something wrong, but something seems broken to me.

@tych0 it is the "go get swag" step that is updating the go.mod file. This can be merged I suppose.


migration created

Hello!
Running the command rails g active_admin:install creates db/migrate/20190301091416_create_active_admin_comments.rb
Rails 5.1.4
ruby 2.5.1
activeadmin (1.4.3)
      arbre (>= 1.1.1)
      coffee-rails
      formtastic (~> 3.1)
      formtastic_i18n
      inherited_resources (>= 1.9.0)
      jquery-rails (>= 4.2.0)
      kaminari (>= 0.15)
      railties (>= 4.2, < 5.3)
      ransack (>= 1.8.7)
      sass (~> 3.1)
      sprockets (< 4.1)
    activeadmin-mongoid (0.7.0)
      activeadmin (>= 1.3.0)
      jquery-rails
      mongoid (~> 6.0)
      sass-rails (>= 3.1.4)

I took a swing at this tonight:
# lib/activeadmin-mongoid.rb
require 'active_admin/mongoid'
require 'generators/active_admin/install/install_generator.rb'

ActiveAdmin::Generators::InstallGenerator.class_eval do

  # Make this a no-op so the AR migrations are not installed when ActiveAdmin-Mongoid is used.
  def create_migrations;end
end

It does stop the migrations from being installed, however, this pulls ActiveRecord in, so the specs fail.  I'll dig a bit more, but if anyone has any ideas on how to get around that please let me know.  @grzegorz-jakubiak @jdguzman
It has to do with this: https://github.com/activeadmin/activeadmin/blob/master/lib/generators/active_admin/install/install_generator.rb#L5
which must only be loaded when the rails g stuff is run.

I tried just replacing the whole install_generator.rb but I got:
Error: superclass mismatch for class Install Generator

I couldn't figure out the way not to require 'rails/generators' along with activerecord.
Maybe @deivid-rodriguez you have any ideas?
BTW @boie0025 https://github.com/activeadmin/activeadmin-mongoid/blob/master/lib/active_admin/mongoid/generators/install.rb it's already there but not required.

@grzegorz-jakubiak I am looking into this issue. I'd love to try this out. Hope that is fine if I share some insight on the findings I do or maybe come up with a solution.


Validate name and email tenant info fields

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Merge after console changes and updates to existing tenants.


Reference to global constant is lost

I'm using AMP ParallelFunctions to invoke a function that will call an HTTP endpoint multiple times
The code looks something like this:
$result = wait( parallelMap( $myArray, function($item) use ($api) {
   return $api->call_api( $item );
} ) );

The function $api->call_api lives on a different file and grabs a Bearer token from a global constant. It throws the message PHP Warning:  Use of undefined constant API_TOKEN every time it's invoked by the async process (it runs ok as a synchronous process)
I suspect this happens because parallelMap makes use of a PHP worker that doesn't have access to the same scope where API_TOKEN was defined. Is that correct? If so, is there a solution?
Any ideas how to make wait and/or parallelMap to recognize a variable defined by define('API_TOKEN', 'my-value')?

You're right, it makes use of workers which have their own scope. You can define a variable and use () is in the closure.
If all you do is HTTP requests, it's better to rely on https://amphp.org/http-client/ instead, so you don't have to deal with workers at all.

Thanks. I'll go with the local variable and use() approach.


Missing LICENSE file

While the README file references the project is licensed under the CC-BY-4.0 license and provides a link to the full license text. the lack of a LICENSE file prevent GitHub from recognizing the license.
I propose adding a plain text LICENSE  file like the one used in the ISA manual.
I'm happy to add this into the project directly and will do so shortly. If anyone has concerns, please raise them.
Thanks,
-Jeff

@jjscheel : Yes, please go ahead. Thanks!

@vlsunil, I've added the new file.  After another look at the licensing.adoc, I think we should move the Copyright information somewhere, perhaps back into the README.  I don't think we want to lose that information.
Do you want to take care of that?  I'm happy to do it if you'd prefer.
I'll leave this open until we decide.

Is this issue resolved?

@kumarsankaran, I still see the licensing.adoc file in the tree and the text in it is not in the README.  So, I'd say that this is not done.
I'm happy to complete the work if you'd prefer.

Yes, please Jeff. Can you complete what's needed and close this issue?

On retrospect, the licensing.adoc file should be part of the document, not the site.
@kumarsankaran, I don't see license info in the document.  I believe it should be there, do you agree?

@jjscheel Yes, the licensing info should be there in the document.

@kumarsankaran, when I review the last published riscv-platform-spec from Nov 1, I don't see the licensing information nor the changelog nor the contributor.  While I'm not yet an expert in asciidoc, I suspect that you failing to include these in your top file (riscv-platform-spec.adoc).  I see them listed in the Makefile as $PARTS and see where that file starts the build in the top file, but I don't see any additional include files.
I'll let you folks hand this as you want.  You can either continue to work it here, or open a new issuse and close this one.
Sound ok?

I see that these have now been included.  Closing.


Aggregated stats for queries with most elapsed_time

We need to be able to provide statistics about an individual query.
This is the first step, adding count, elapsed_ms, rows_written, and rows_read.

Those stats are not persisted on purpose, since we want them to be ephemeral and even reset from time to time.

elapsed_ms granularity may be too coarse to use as a sorting weight.
It may be a good idea to fall back to rows_read + rows_written.

@LucioFranco it looks like my background worker is making tests hang.
Any idea why? Probably the blocking thread?


Can we use Brownie with geth ?

Similar to how Truffle can be used to deploy smart contracts on the Rinkeby testnet through geth, is it possible that we can use Brownie can be used in the same fashion?
i am an absolute beginner so please let me know if i am missing anything ?
P.S : in case if there's absolutely no support for testnets like rinkeby OR clients like geth or parity, kindly convert this post into an Issue, calling for support to the aforementioned functionalities to be added.

It's possible, yes, but still needs to be properly documented.  The process is currently buried within the config file documentation.
You need to edit the configuration file for your project and point it at your local geth client, or add your own API token if you want to use Infura.  Then when running Brownie, include the --network flag to specify which network to connect to.
If you encounter any bugs while working on a non-local network please raise an issue, or feel free to reach out to me on gitter :)

Related issue - https://github.com/iamdefinitelyahuman/brownie/issues/41

@SyedMuhamadYasir I've opened another issue to get this properly documented it, and funded it via Gitcoin.  So hopefully it's solved soon!  Going to close this issue now in favor of #174.


Default value not displayed until input is clicked

I have a setup using ng-pickadate and populate that data from an async request
The problem is the input doesn't showup the value until I click to it.
I'm using the latest version.

I think it's because there's no watcher on pickADate variable. I'll try to have a look in the next few days, but fell free to open a pull request if you think you can fix this.


Bump to 2.13.3

Re-rendered and bumped to 2.13.3

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Thanks.


[Bug]: Template's image and icon is broken.

Is there an existing issue for this?

[X] I have searched the existing issues

Description

Steps To Reproduce
Navigate to the Maintenance order Management template and notice the broken image and icon
Public Sample App
No response
Environment
Release
Issue video log
No response
Version
Cloud

Hey, I'm new here and was trying to replicate this issue in my local setup but was unable to do so. In Templates >> Maintenance Order Management, checked on different device widths, all seems fine to me. Am I missing something?

@ezioishan I am able to reproduce this. Pull in the recent changes and search for Maintenance Order Management template under template section

@laveena-en I am not able to reproduce this. All template images and icons work fine. Is this still an issue?

Hey @harshitpandey0426, @laveena-en  we were not able to reproduce this neither in local nor on app.appsmith.com.
Can you please check this once after taking latest changes from release.

@rahulbarwal I could still see the broken image icon

@harshitpandey0426 Please put your observations for these 2:

Can you try hard refreshing the page?
a. If this still does not work, can you inspect the image url for the broken image and pass it?
Please check for same in app.appsmith.com

@rahulbarwal

I have done hard refresh and manually disabled cache for browser, but still I see this issue.
I don't see this in production.
PS:
I will try passing broken image url and let you know.
I wonder why others are not able to reproduce this.

@rahulbarwal
Any help from which file these images are getting loaded? I don't see any local reference

@rahulbarwal Yeah it works fine now. If possible please let me know the fix you made or the PR you merged.
Thanks

No PR as such, just updated the correct data.


Implement SQLiteKeyInfoManager

This issue will track the implementation of the SQLiteKeyInfoManager
Design
Overarching design discussion #424
Steps

[x] Create design proposal
[x] #487
[x] #496
[x] #488
[x] #503
[x] #509
[x] #510
[x] #516
[ ] #532
[ ] #518
[ ] #517
[ ] #519
[ ] #531

Removing the milestone from this issue as only some of the linked issues will be required for 0.9.0


added static typing

Description
I added types for all method signatures. Also, some of the methods had typos (ie.: action instead of actor) that I fixed.
Addressed issues
#57
Screenshots
No screenshots to show.

This fixes #57 - great job!


Sphereaccu now DEC ?

In latest commit, all our tags in sphereaccu are in DEC instead of HEX as in previous build.
It made some problems with linked items, no one cant equip anything linked to him now :(
I mean the fix by ourself would be easy i guess, but is it ok ?
TY.

The tags were saved as a hex value by accident recently, historically they were always saved as a decimal number (if the tag is pure numeric and not treated as a string)

OK no prob then, i think we can fix it by one eval or something.


Removes comment separators at the beginning

Signed-off-by: Matthias Luebken<EMAIL_ADDRESS>What does this PR do?

Removes the yaml doc separator at the beginning of the yamls. While this is valid yaml definition they are considered optional: (https://yaml.org/spec/1.0/#id2561718)
Motivation

We are running into an issue when building a configuration package. The current xpkg spec doesn't consider it a valid spec.
More

[ ] Yes, I have tested the PR using my local account setup  (Provide any test evidence report under Additional Notes)

[ ] Yes, I have added a new example under examples to support my PR

[ ] Yes, I have updated the docs for this feature

[ ] Yes, I have linked to an issue or feature request (applicable to PRs that solves a bug or a feature request)

Note:

Not all the PRs require examples and docs
We prefer small, well tested pull requests. Please ensure your pull requests are self-contained, and commits are squashed

For Moderators

[ ] E2E Test successfully complete before merge?

Additional Notes

The is @luebken! LGTM!


Update to 1.21

Also removed unused import statements

can you post the jar file?

@P3nguinMinecraft Here's the link to the release on my fork. It will not let me upload a .jar here
https://github.com/lccpianoman/easy-bedrock-breaker/releases/tag/0.1.0-1.21


Following multi account best practices.

Discussed in https://github.com/awslabs/sbt-aws/discussions/45

Originally posted by Xenoha May 16, 2024
Hello!
As usual, this is some good stuff. It incompasses a lot of best practices for Multi tenant SaaS. And because of your teams experience, the architecture of resources flows nicely.
I'm a little confused on a major best practice that is talked about all the time and used. That is the use of multiple accounts. In practice, services, app planes, control planes, and etc, would all live in other accounts. When are we going to see something that really showcases this major hurdle?
When using multiple accounts you have networking and resource sharing management, secret sharing management, IAM management for organizations or accounts based on security needs of the services/products, permissions services, and more. One of the major pain points is the SDLC of these different services and deployment of these service. Not to mention if there is a need to build/configure resources for tenants dynamically.
Is the team addressing these challenges through the community with kits like this one?

It would be interesting to introduce the concept of a cell, where a cell may encompass an entire AWS account for a single tenant, or multiple tenants can co-occupy a single AWS account.