Azure Dev Spaces debugging exception

Describe the bug
After starting VS 2019 with an ASP.NET Core 3.0 (must be Core 3.0) project, the first time you debug a project on Azure Dev Spaces, everything is fine. Then stop the debug session and debug again. You now get this:

To Reproduce
Steps to reproduce the behavior:

Open VS2019 and create a new ASP.NET Core 3.0 project - any type you like.
Add Kubernetes Container Support, and connect to Azure Dev Spaces.
Debug on Azure Dev Spaces - it works!
Stop the debugging session and debug on Azure Dev Spaces again - it fails
This continues until you close VS2019 and restart it - you get one more successful debug session until you have to close and open VS2019 again

Expected behavior
Debugging should work repeatedly, as indeed it does with ASP.NET Core 2.2 and earlier
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
None

@simonziegler this appears to be a tooling bug where it fails to stop the prior instance of the application. Can you please provide this tooling feedback through the feedback tool in Visual Studio?

Thanks, I have reported this in VS feedback as requested.

Closing this since Dev Spaces is outside of our scope. If their investigation yields an issue in our logic, they'll reach out to us.


Fixes description for HyperScale Citus overview

When sharing a link to HyperScale(citus) in Slack, I realized that the preview contained some information that appeared to be copy pasted from another managed service.
Feel free to update the description, and take ownership of this PR.

@hanefi : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jonels-msft
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Thanks for the fix!
#sign-off


fix retry conflicts on health check update

In cluster reconciler, we were not requeueing after updating the CR, which caused conflicts when updating health check. This is not really a big issue, since health check is updated in the next iteration correctly. However a fix is added to avoid unnecessary warnings in the logs

don't merge yet. testing in progress


JSON library

While I think it's technically possible to pull in an existing Lua JSON library like dkjson, it'd be great to ship with one since it's such a common format for tools.

Merged.


divs and /li

In client.js some postChat msgs are started with <div> but ended with </li>

Fixed! 00afa8cb35dd1cf5d3a7ba0097cf8ec565759167


some more ipv6 tests

I found a bug in my implementation 🐙 -- "<IP_ADDRESS>" was matching as an ipv6, because the number of octets was not being counted!

right, I forgot that ipv6 is defined in earlier drafts too :)  backported as far as draft4.  squash commit added.

lgtm!

rebased, squashed, merged.


Bug with Summary Test Counts

🐛 Summary
The values listed on the summary page for the common controls report are higher than they should be.
To reproduce
Run scubagoggles against common controls. Count the results, they are higher than they should be.
Expected behavior
See screenshot below.
Any helpful log output or screenshots

Correct counts should be: 2 and 31
(so many manual checks are needed because this is a brand new tenant so there are barely any log events, that's not the bug)
I suspect that what's happening is the "Rules" tests are being added in here as well, but haven't fully verified that yet.

A related issue: for rules with no events found, the warning icon is not displayed. Haven't tested, but I suspect the fix will be as simple as changing 'Rule Description': test['ReportDetails']}) to 'Rule Description': result})

Looking into this more this afternoon. I agree with you that rules are being passed in twice. I think at some point we had rules within common controls which is why things are happening the way they are. I think the culprit starts at line 270 in the reporter, but I could be wrong.


Allow non-JSON literals when property type is "Object".

It seems there are in general no tests if properties are correctly deserialized or I didn't see or get it???
If someone can give me a hint I would try to implement them.
Reference Issue
Fixes #4464

@pkaske You can add a test in this suite: https://github.com/Polymer/polymer/blob/4b0def6d04f2e552eef66dc39b7dd03561fbeb2c/test/unit/attributes.html#L90

@TimvdLippe I added some test. Are they sufficient? I'm jet not very experienced with testing web components, leave alone polymers internals. I'm more then open and thankful for any suggestions, tips, critique and hint to used anti patterns :)


Add Nownodes API to Blockchain

Add Nownodes API to Blockchain

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not have more than 100 characters
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

As per issue #2189 added Nownodes API to a new category named Blockchain, Kindly check for the same.

PR created for forked branch hence closing and recreating PR for public-apis master branch


Brick: dropdown-like widgets (context menu, popup, dropdown) should pass a widget to the stencil

Otherwise stencils (or block closures) have to capture an element in the context which prevents recyclability in lists

works now


Input box escape \n, \r etc in the setter

This PR aims to resolve #73975
When settings a value with newline chars to a html input element, the new line chars are getting removed.
To prevent this, just before the assignment, escaping the string value results in the expected behavior.

Thanks for the PR. However I think there is a helper method which we can use and not add soo much new code.
Please use this mehtod instead https://github.com/Microsoft/vscode/blob/b74c61286820d43e4540341d3d0700bc5e37d8b1/src/vs/workbench/contrib/debug/browser/baseDebugView.ts#L48

Yes I was looking for any existing method, searched with the work "escape" and could not find any, hence added a new function. Thanks for directing me to the right function. Will update the PR

@isidorn Using the existing helper method is causing a cyclic dependency. Thought of moving that function into base/common/strings.ts, is that ok?

There should be no change in the inputBox, it is unware of the debug world.
The only file which should change is variablesView or the baseDebugView.
Here are some code pointers which might help
https://github.com/Microsoft/vscode/blob/b74c61286820d43e4540341d3d0700bc5e37d8b1/src/vs/workbench/contrib/debug/browser/baseDebugView.ts#L176

Done as suggested.


angular production build - bundle is not uglified

🐞 Bug report

[ ] new
[x ] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
No
Description
I can see code (properties/functions/actual code) that is not uglified  in production build
🔬 Minimal Reproduction
Github repository that its reproduced in: https://github.com/saifabusaleh/my-locations-website
Link to demo website: http://pacific-spire-36644.herokuapp.com/locations

Build the bundle with npm run build
Open dev tools and view the bundle of locations lazy loaded module
I can see this code in dev tools:

                ngOnInit() {
                    this.locationName = this.route.snapshot.paramMap.get("locationName"),
                    this.locationName && this.getLocation(this.locationName)
                }
                getLocation(t) {
                    const e = this.locationService.getLocation(t);
                    e.status || (this.location = e.locations[0],
                    this.categoryName = this.location.category,
                    this.coordinate = this.location.coords)
                }
                onEditLocation() {
                    this.openLocationDialog(s.a.Edit).afterClosed().subscribe(t=>{
                        this.performUpdateLocation(t)
                    }
                    )
                }

🌍 Your Environment

Angular CLI: 9.0.2
Node: 12.16.3
OS: win32 x64

Angular: 9.0.1
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.2
@angular-devkit/build-angular     0.900.2
@angular-devkit/build-optimizer   0.900.2
@angular-devkit/build-webpack     0.900.2
@angular-devkit/core              9.0.2
@angular-devkit/schematics        9.0.2
@angular/cdk                      9.0.0
@angular/cli                      9.0.2
@angular/flex-layout              9.0.0-beta.29
@angular/material                 9.0.0
@ngtools/webpack                  9.0.2
@schematics/angular               9.0.2
@schematics/update                0.900.2
rxjs                              6.5.4
typescript                        3.7.5
webpack                           4.41.2

Anything else relevant?
Is there any option in the Angular CLI not to show function names/variables names?

Hi @saifabusaleh,
This is indented kindly see comment in: https://github.com/angular/angular-cli/issues/15257#issuecomment-519941787
To enable property names mangling, you will need to use a 3rd party Angular CLI builder such as https://github.com/manfredsteyer/ngx-build-plus or https://github.com/just-jeb/angular-builders.
While we allow extension of the Angular CLI, the Angular tooling team doesn't provide support for extended build configurations.


value-in-payable rule shouldn't enforce payable modifier on private & internal functions

declaring a private or internal function as payable results in compilation error.
value-in-payable rule shouldn't flag them even if they're using msg.value.
Currently the rule creates false positives because of this that can cause build failures

Thanks!


First app experience CLI: Simplify application delete

Summary
Captured as part of a usability study with first-app experience
The user thought his app name was app.bicep, because that is the file he spent the most time working with.
To delete his application, he attempted to delete app.bicep, which failed
Proposed actions:
We should extrapolate from an attempt to delete app.bicep that the customer is attempting to delete first-app
Also, we know rad app delete app.bicep will fail, so we should not prompt the user with "Are you sure you want to delete app.bicep.”  We should instead prompt them to clarify they are attempting to delete first-app
AB#8886

This was completed as part of 6039


Split out z/OS package data by source

When we first created our z/OS open source file with #5 , it was rather small and the software was scattered across various small outlets. This may still be the case for some (so we can keep a generic "other" file for z/OS), but we now have several sources which sometimes cause confusion and name collisions, and folks may now be looking to search those individually.
So the work done for #29 and #37 should be split out into separate files for each source, work which should begin in this repository. A follow-up issue will be created in the main tool so that anything we're automating gets split into those files too.

@Princee215 & @aashish-khatri This one is rather high priority because of how out-dated the source has become. Let's sync up about it on Thursday to discuss how we want to pull this apart. /cc @arshPratap

I think we also want to split out the Rocket Software and Open Mainframe Project tools into their own files since there may be potential to automate these, so I'm proposing the following files:

ZOS_OMP.json
ZOS_Rocket_Software.json
IBM_Z_zOS.json

I'm also going to remove all the z/OS Open Tools from the generic ZOS_Software_List.json because it's so out-dated at this point that I'm worried it's harmful, and work is being done to complete the automation for this, in its own new file.


fix: styles for ul & ol

Details

https://github.com/Expensify/App/issues/5008#issuecomment-923212885
Fixed Issues

$ https://github.com/Expensify/App/issues/5008
Tests | QA Steps

Lunch the app
Log in with expensifail account
On Search box - find Chronos
Text - Top

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web | Desktop

Mobile Web

iOS

Android

OH @parasharrajat I hate having to ask, can you pull main into this branch? a month of changes can introduce weirdness 😄

🚀 Deployed to staging by @johnmlee101 in version: 1.1.8-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


I can push Rocks up

Not sure if that should be possible

I just checked and this should not be possible

The only reason now that you would not be able to push things up is if the AI wants to go down. The game it self sees no difference between up or sideways, because there is no things such as gravity.
We could change the push code that the Up direction is not allowed but that is quite weird. I think asking the AI for permission might be better.

Done https://github.com/JordyMoos/elm-pixel-boulder-game/commit/f70647f378ec95a4575a802e996755ff7d398171


ValueError from meetup_group_names.py

Hi, curious if you ever ran into a ValueError when pulling data from Meetup.  I'd like to run your meetup_group_names.py script for "Baltimore", but I get JSON error that I haven't been able to get around.  Any ideas?
I'm swapping
cities =[("Bridgeport","CT"),("New Haven","CT")....
for
cities = [("Baltimore","MD")]
The script throws an error: ValueError: No JSON object could be decoded
Would appreciate your thoughts.

As it turns out, I was bumping up against the API limits.  Built in some fault tolerance with "try" "except"
            try:
                response=get_results({"sign":"true","country":"US", "city":city, "state":state, "radius": 10, "key":api_key, "page":per_page, "offset":offset })
            except ValueError as e:
                logging.warn('encounted a bad record')


set_targetdir generates wrong directory under CMake building

Describe the bug
To reproduce the issue:
In xmake.lua we set our target directory to  set_targetdir("../bins") and then generate CMake with xmake project -k cmake -y
and when we build with CMake, it builds in the wrong directory.
Expected behavior
In CMake we expect to have a ../../bins directory, but we get ../bins in the way defined in xmake.lua
Related Environment

xmake version: xmake v2.6.3+HEAD.e2bbeb1b0
os: Windows 10
ide: CLion 2021.2.3

Additional context

We need to be able to customize the CMake directory set_targetdir ("../bins", {cmake = "../../bins"})
If the above is not a good/acceptable idea, then generate an extra parent (../)

you can use absolute path, set_targetdir("$(projectdir)/bin")

The problem seems to persist after setting set_targetdir("$(projectdir)/../../bins"), is still building in the wrong directory

please update to dev and try it again. xmake update -s dev

Thanks it works great now


Upgrade numpy and pint

Removed pin to numpy and pint, and updated __repr__ in Parameter to handle new numpy behaviour.

Warning: this drops support for Python 3.9, since it doesn't play well with scipp. So we should probably wait a while to merge this.


nixos/dconf: support cross compilation

when cross compiling, ${pkgs.dconf} represents the host dconf and isn't guaranteed to be executable by the build platform. placing dconf in nativeBuildInputs and invoking it by name guarantees us a dconf which is executable by the build platform.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Does https://github.com/NixOS/nixpkgs/pull/234615 fix the problem?

yes, it seems 234615 has fixed this. or at least, config.environment.etc.dconf.source cross compiles -- if something downstream or adjacent to it fails i won't know for another few hours. certainly there's no need for this particular patch anymore though 👍


How to make Jest + esbuild-plugin-glsl work

First of all, great plugin!
I've been trying to set up esbuild-plugin-glsl with Jest but my tests were failing despite the code working fine:
● Test suite failed to run

  Jest encountered an unexpected token

  Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

  Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

  By default "node_modules" folder is ignored by transformers.

  Here's what you can do:
   • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
   • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
   • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
   • If you need a custom transformation specify a "transform" option in your config.
   • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

  You'll find more details and examples of these config options in the docs:
  https://jestjs.io/docs/configuration
  For information about custom transformations, see:
  https://jestjs.io/docs/code-transformation

  Details:

  /shader.vert:1
  ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){varying vec2 vUv;
                                                                                ^^^^

  SyntaxError: Unexpected identifier

Here's a workaround I came up with in case anyone stumbles upon the same problem:

➕  Add jest-transform-stub to avoid errors when importing non JavaScript assets.
🔧 Add this configuration to the Jest section of your package.json file:"moduleNameMapper": {
  "^.+.(vert|frag|glsl)$": "jest-transform-stub"
}

This plugin integrates shader code imports as string constants during the esbuild build process.
I'm assuming your unit tests import from your sources instead of the final bundle which means that the custom shader imports are still present and can't be resolved by Jest. If that's the case, I'd recommend importing from your bundle instead.
I'm not familiar with Jest, but with Ava.js, for example, you can import xyz from "my-package" and it imports from the exports specified in your package.json.

Hi @vanruesc and thanks for your quick response!
Yes, importing the final bundle will make it work in tests too without the need of extra stuff (as you do using Ava.js), but the problem is that our app is quite big and we are implementing unit-tests using ESM directly from sources (no build process involved). Our current approach with the jest-transform-stub works just fine and we just wanted to share it in case it helps eventual future readers. But yeah, probably having a build process (which will resolve shaders files) before starting tests is a good idea too! We'll try thanks!


OpenSearch Project Newsletter Volume 1 Issue 4

Description
OpenSearch Newsletter Volume 1 Issue 4
Issues Resolved
N/A
Check List

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

@krisfreedain @pajuric I believe I've addressed your changes. Have another look.

@nateynateynate - GTG on my end. Thank you.

@krisfreedain - One more round at your convenience my good man.


Define "read_index" in eventalign output

Hi!
I'd like to compare Nanopolish eventalign data with Tombo model_sample_compare data on a read-by-read basis. The problem is that Tombo and Nanopolish appear to label reads differently. Nanopolish eventalign output refers to a read_index, which is a nonnegative integer like 117, whereas Tombo uses read_ids that look like 00676bde-4b93-45bb-a850-c333e08c9927, (For us, the basename of each fast5 file equals the read_id of the read therein. We use single-Fast5s.)
How do I correctly convert between Tombo's read_id and Nanopolish's read_index?
Thanks,
Chris K

Hi Chris,
If you provide the --print-read-names option you'll get the same names as tombo.
Jared

If you provide the --print-read-names option you'll get the same names as tombo.

Thank you for that extremely fast response, @jts .


gpu-compute,mem-ruby: Add RubyHitMiss flag for TCP and TCC cache

Add hit and miss print for TCP and TCC cache with RubyHitMiss debug flag
Change-Id: I4430532b901811e03d9b077b61e2eca4557b34e1

In terms of code changes everything looks good to me. However there are at least two things that need to be changed elsewhere:

your commit message needs to include the "mem-ruby" tag too -- as this is largely a mem-ruby change.
It looks like you have ~6 commits for this change -- can you please merge those into a single commit?

I tried to squash these 6 commits into one locally, but it seems like the remote one does not work

In terms of code changes everything looks good to me. However there are at least two things that need to be changed elsewhere:

your commit message needs to include the "mem-ruby" tag too -- as this is largely a mem-ruby change.
It looks like you have ~6 commits for this change -- can you please merge those into a single commit?

I tried to squash these 6 commits into one locally, but it seems like the remote one does not work

What do you mean the remote one does not work?

In terms of code changes everything looks good to me. However there are at least two things that need to be changed elsewhere:

your commit message needs to include the "mem-ruby" tag too -- as this is largely a mem-ruby change.
It looks like you have ~6 commits for this change -- can you please merge those into a single commit?

I tried to squash these 6 commits into one locally, but it seems like the remote one does not work

What do you mean the remote one does not work?

I can squash them locally, but when I push the change here, it seems like it will not modify here

In terms of code changes everything looks good to me. However there are at least two things that need to be changed elsewhere:

your commit message needs to include the "mem-ruby" tag too -- as this is largely a mem-ruby change.
It looks like you have ~6 commits for this change -- can you please merge those into a single commit?

I tried to squash these 6 commits into one locally, but it seems like the remote one does not work

What do you mean the remote one does not work?

I can squash them locally, but when I push the change here, it seems like it will not modify here

How are you trying to push it?

In terms of code changes everything looks good to me. However there are at least two things that need to be changed elsewhere:

your commit message needs to include the "mem-ruby" tag too -- as this is largely a mem-ruby change.
It looks like you have ~6 commits for this change -- can you please merge those into a single commit?

I tried to squash these 6 commits into one locally, but it seems like the remote one does not work

What do you mean the remote one does not work?

I can squash them locally, but when I push the change here, it seems like it will not modify here

How are you trying to push it?

In terms of code changes everything looks good to me. However there are at least two things that need to be changed elsewhere:

your commit message needs to include the "mem-ruby" tag too -- as this is largely a mem-ruby change.
It looks like you have ~6 commits for this change -- can you please merge those into a single commit?

I tried to squash these 6 commits into one locally, but it seems like the remote one does not work

What do you mean the remote one does not work?

I can squash them locally, but when I push the change here, it seems like it will not modify here

How are you trying to push it?

Sorry for the late reply, just found a way to do it. Thanks!

@mattsinc @abmerop @yuxiaojia : VEGA_X86 fails to compile due to these changes: https://github.com/gem5/gem5/actions/runs/9553546579/job/26332597675

Build fails on develop (too slow, see above comment)

Strange, I thought @yuxiaojia had tested this and I thought the above tests would compile VEGA -- hence I was comfortable merging it in.  Seems that is not the case?  Or maybe I'm missing the above comment by @abmerop ...
In any event @yuxiaojia is traveling today (I think), so we should revert until he can fix this if it is a legit issue.


QuickFilter control is missing on my pattern list

QuickFilter control is missing on my pattern list

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d636f921-c6d6-25c3-c1e8-15332844eb6d
Version Independent ID: 657c8193-2829-2c9d-65d0-f0dab5547756
Content: Filtering options - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/user-interface/filtering.md
Service: dynamics-ax-platform
Product: ****
Technology: ****
GitHub Login: @jasongre
Microsoft Alias: jasongre

@jasongre - Can you take a look? Thanks.

Bug 438334 created to track this issue.

@AugmentXY can you provide some more information about what you're looking for?


VMware hosted VM with ISO attached live migration failure

ISSUE TYPE

Bug Report (minor)

COMPONENT NAME

CloudStack management

CLOUDSTACK VERSION

4.11.1
4.11.2-RC5 (hence possibly 4.11.2)

CONFIGURATION

Advanced zone
VMware vSphere 5.5u3
CloudStack management versions as above
VM with ISO attached

OS / ENVIRONMENT

N/A

SUMMARY

Migration of VM with ISO attached fails ungracefully.
Not clear if this is a limitation of VMware

STEPS TO REPRODUCE

Create VM, attach ISO

Attempt to migrate VM from one ESXi host to another.

Observe GUI error:
MigrationCommand failed due to Exception: java.lang.RuntimeException Message: Currently connected device 'CD/DVD drive 1' uses backing '[] /usr/lib/vmware/isoimages/linux.iso', which is not accessible.

Log error:
 2018-11-14 13:54:37,747 WARN  [c.c.h.v.r.VmwareResource] (DirectAgent-69:ctx-ddc4714b <IP_ADDRESS>, job-33/job-34, cmd: MigrateCommand) (logid:96e22c89) MigrationCommand failed due to Exception: java.lang.RuntimeException Message: Currently connected device 'CD/DVD drive 1' uses backing '[] /usr/lib/vmware/isoimages/linux.iso', which is not accessible.

java.lang.RuntimeException: Currently connected device 'CD/DVD drive 1' uses backing '[] /usr/lib/vmware/isoimages/linux.iso', which is not accessible.         at com.cloud.hypervisor.vmware.util.VmwareClient.waitForTask(VmwareClient.java:358)         at com.cloud.hypervisor.vmware.mo.VirtualMachineMO.migrate(VirtualMachineMO.java:415)         at com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResource.java:3814)         at com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(VmwareResource.java:444)         at com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:315)         at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)         at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)         at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)         at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)         at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)         at java.util.concurrent.FutureTask.run(FutureTask.java:266)         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)         at java.lang.Thread.run(Thread.java:748) 2018-11-14 13:54:37,748 DEBUG [c.c.a.m.DirectAgentAttache] (DirectAgent-69:ctx-ddc4714b) (logid:96e22c89) Seq 2-6622824727025025088: Response Received:

VC error:

Currently connected device 'CD/DVD drive 1' uses backing '[] /usr/lib/vmware/isoimages/linux.iso', which is not accessible.
EXPECTED RESULTS

Graceful error or successful migration.

ACTUAL RESULTS

Errors as above.

Test applied was incorrect - the VMware tools ISO can not be used for this test since it is contained on the local ESXi file system.
When attaching an uploaded ISO the migration works OK, hence closing this ticket.


Base client for Hawkular Alerts, can create and list triggers.

This is still a work in progress, I created a base client class, but Metrics doesn't use it for now.
I don't know if we are going to adopt requests library, so I'm still using urllib. Also, we need to integrate this with the previous alerts code on this PR https://github.com/hawkular/hawkular-client-python/pull/16.
I need to write some tests for this.
@burmanm @lucasponce Could you please start reviewing this? Thank you!

I am less versed in python but I am +1 to start adding iterative PR on Alerting on this client.
I miss some testing cappability, but not for this PR, it can go in a following one.

As for requests, I think that is not a decision @lucasponce or I can help with.  What is blocking the decision?

@burmanm I recall that you had some objections to use the 'requests' library. What are the issues when using it? How could the PR be changed to not use it?

@pilhuhn This PR does not use requests (the other one does)

Like I discussed yesterday with @rubenvp8510 the PR needs tests at least. I'll stick to that requirement, new feature -> new tests.

+1 to adding tests.
Personally I don't mind if they can go in a separate PR but if those can go in the same PR, that's good.

In order to not stuck the work on #16, do you think @rubenvp8510 that can be incorporated into this one ?
/cc @simon3z

Beside the specific comments on the code, my main issues at the moment are the urllib library (vs request) and the fact that this is not supporting groups yet (which are mandatory for our use-case).

Thing is, why use request ? I couldn't come up with anything that it solves for us right now. It only adds external dependency to the equation. Although it comes in RHEL distribution already, so that reduces the impact a little bit. But what's the benefit?

We need to agree about the use of urllib/request, at the end both solves the same problem but in different ways, if the goal is not to depend on another library, I think we will be fine using urllib. IMHO.
About the use of groups, that was not the intent of this PR , as I understand it is desirable to do small contributions, so I think we can add the support of groups in another PR, We can reuse #16 or we can reuse this PR if #16 is gonna be merged but again,  all depends on the decision of using requests or not. If we are not going to use request, I think we can merge this once it is ok for, and then add groups.

Thing is, why use request ? I couldn't come up with anything that it solves for us right now. It only adds external dependency to the equation. Although it comes in RHEL distribution already, so that reduces the impact a little bit. But what's the benefit?

@burmanm just to mention some off the top of my head:

json serialization is handled automatically so you can drop all the json calls (and the fact that you have to have different imports simplejson/json)

no need to mimic request with methods such as:

    def _put(self, url, data):
￼        self._http(url, 'PUT', data)

    def _delete(self, url):
        self._http(url, 'DELETE')

    def _post(self, url, data):
        self._http(url, 'POST', data)

not having to deal with conditional imports for python2/3

if you have to create a REST client you use a library that gives you rest client capabilities, using HTTP (urllib) is possible as it would be possible to use raw TCP sockets but that leads to the NIH syndrome (because you still need some code that is not related to the level of abstraction of your effort)

In essence you're right: it's not solving any issue in this project that you haven't solved already with some custom code. The benefit is exactly to drop (and not maintain) that custom code since it's not related to your level of abstraction (we're building the hawkular client, not a rest-api client library using HTTP primitives).
That said I don't think request is perfect (for example I don't think it's possible to load a CA from a regular string), but anyway it's a tool that is designed to create rest clients.

@rubenvp8510 it seems that the definition of transform_to_object disappeared (but it is still called).
(I am sure you're working on it but major gap here is the fact that Groups are missing).

@simon3z Thanks for the observation, I'll fix this and also add groups support . I wanted to add it on another PR, but if it is important I can add here too.

@rubenvp8510 yes groups are critical to have. Up to you whether to handle that in this PR or another (even though this latter solution seems slower).

@simon3z Updated with groups support, also added tests.

@burmanm @simon3z  @lucasponce
If this is ok and no one has another observation or objection. I think this is ready for merge, I'll document this in another PR.


Add docs about writing tests with test steps

We need a docs section about writing tests with test steps.

/assign


Tweaked SSD1325 init settings & replaced constants

Coverage remained the same at 100.0% when pulling 1cd8e034ddabe4d5d21502e27193d4cfcec43bb3 on ssd1325-tuneup into 3ae216dca30e5ab6eec7c95da1b41d747ac31fec on master.


Suggestion: Provide a Promise-based interface

While working with Stickerify, I've found that I frequently want to perform multiple operations on the image, it gets super verbose to be making Image objects every step of the way. I've been using a small Promise wrapper to fix this:
const promiseStickerify = ( imgSrc, size, color ) => {
	return new Promise( ( resolve, reject ) => {
		const image = new Image();
		image.onload = () => resolve( stickerify( image, size, color ) );
		image.onerror = ( e ) => reject( e );
		image.src = imgSrc;
	} );
};

It can then be used like so:
const paddedImage = await stickerify( imgURL, 15, 'white' )
	.then( ( img ) => stickerify( img.toDataURL(), 3, 'grey' ) );

This is a bit of a departure from how the library currently works, so I didn't want to open a PR without discussing it first. 🙂

great suggestion - maybe there is a way to avoid using HTMLImageElement altogether, but I'm not sure (tbh I'm not a frontend dev and not familiar with JS image APIs).
It would be good to decouple the whole thing from DOM elements - there should be a core API that can be used for both Browser & Node.js and then there should be extended APIs that wrap the core API making it easy to use from both frontend and backend. hope that makes sense.
Anyway, I'd be happy to look at and review any PR for this - I think it would be a great addition!


Fails to build for aarch64-unknown-linux-musl

error[E0425]: cannot find value `MAP_32BIT` in module `libc`
  --> /home/vi/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/src/sys/mman.rs:53:9
   |
53 |         MAP_32BIT;
   |         ^^^^^^^^^ not found in `libc`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0425`.
error: Could not compile `nix`.

To learn more, run the command again with --verbose.

This is probably a bug in libc.  You should check aarch64 musl to see if that symbol is actually defined.  If so, then submit a PR to libc to fix it.  If not, then it's a bug in Nix.

I checked the latest musl repo, find that MAP_32BIT does not defined in aarch64.

So shall nix-rust workaround and not use it on that platform then?

Nix doesn't do workarounds.  Instead, we should simply disable the feature on unsupported platforms.

This issue seems to be fixed at https://github.com/nix-rust/nix/commit/7f0fb19f21327e58faa71dace73c8b092c25c81b.
If so, I think this issue should be closed.

Are you sure?  The timestamps suggest otherwise.

The original error message shows the nix version is v0.11.0, and the commit is released at v0.12.0.
So I think it is fixed at v0.12.0.

Ahh, good.  Have you tested it lately?  I don't have that toolchain installed.

No. I don't have the environment too.

Just installed it.  Works for me.


[vault-operator] bank-vaults fails when using Vault auto unseal feature. Root key doesn't get stored.

Describe the bug:
Bank-vaults fails to encrypt and store root key when using the auto unseal feature from Vault.
Expected behaviour:
We are expecting bank-vaults to do just init, no unseal, letting Vault to auto unseal. It should store the encrypted root key in the desired bucket.
Steps to reproduce the bug:
After installing the operator. Try to create a Vault CRD with auto unseal. Like the provided one or https://github.com/banzaicloud/bank-vaults/blob/master/operator/deploy/cr-gcs-ha-autounseal.yaml
Additional context:
From the logs, we can see Vault gets initialized so bank-vaults is doing that and Vault does auto unseal, but it feels like at some point another call to init is made that results in a 400 which causes an error before storing the root key.
We believe this is the erroring call, as we can see the preflight check happening correctly, the test file is in the bucket.
https://github.com/banzaicloud/bank-vaults/blob/27e2ac544358bd3fc28e9c4cd22bb2b822f66a76/internal/vault/operator_client.go#L278-L286
But, at that point..seems that init already happened.
If we remove the seal config from Vault, everything works as expected. We get a cluster and the root and seal keys are stored in our bucket. This only happens when Vault auto unseal.
We can see that bank-vaults is run with:
Command:
      bank-vaults
      unseal
      --init
      --auto
      --raft
      --raft-leader-address
      http://vault-0:8200

Environment details:

Kubernetes version: 1.19
Cloud-provider/provisioner: GKE
bank-vaults version: 1.12.1
Install method: manifest (via argo)
Logs from the misbehaving component: These are the logs of vault and bank-vaults.

+ vault-0 › vault
+ vault-0 › bank-vaults
vault-0 bank-vaults time="2021-05-14T14:04:03Z" level=info msg="joining leader vault..."
vault-0 bank-vaults time="2021-05-14T14:04:03Z" level=info msg="vault metrics exporter enabled: :9091/metrics"
vault-0 bank-vaults time="2021-05-14T14:04:07Z" level=info msg="initializing vault..."
vault-0 bank-vaults time="2021-05-14T14:04:27Z" level=info msg="initializing vault"
vault-0 vault Couldn't start vault with IPC_LOCK.  Log data will stream in below:
vault-0 vault
vault-0 vault 2021-05-14T14:04:05.037Z [INFO]  proxy environment: http_proxy= https_proxy= no_proxy=
vault-0 vault 2021-05-14T14:04:05.128Z [DEBUG] service_registration.kubernetes: "namespace": "default"
vault-0 vault 2021-05-14T14:04:05.128Z [DEBUG] service_registration.kubernetes: "pod_name": "vault-0"
vault-0 vault 2021-05-14T14:04:07.015Z [DEBUG] core: set config: sanitized config={"api_addr":"http://vault.default:8200","cache_size":0,"cluster_addr":"https://vault-0:8201","cluster_cipher_suites":"","cluster_name":"","default_lease_ttl":0,"default_max_request_duration":0,"disable_cache":false,"disable_clustering":false,"disable_indexing":false,"disable_mlock":true,"disable_performance_standby":false,"disable_printable_check":false,"disable_sealwrap":false,"disable_sentinel_trace":false,"enable_ui":true,"listeners":[{"config":{"address":"<IP_ADDRESS>:8200","tls_disable":true},"type":"tcp"}],"log_format":"unspecified","log_level":"","max_lease_ttl":0,"pid_file":"","plugin_directory":"","raw_storage_endpoint":false,"seals":[{"disabled":false,"type":"gcpckms"}],"service_registration":{"type":"kubernetes"},"storage":{"cluster_addr":"https://vault-0:8201","disable_clustering":false,"redirect_addr":"http://vault.default:8200","type":"raft"}}
vault-0 vault 2021-05-14T14:04:07.015Z [DEBUG] storage.cache: creating LRU cache: size=0
vault-0 vault 2021-05-14T14:04:07.016Z [DEBUG] cluster listener addresses synthesized: cluster_addresses=[<IP_ADDRESS>:8201]
vault-0 vault 2021-05-14T14:04:07.017Z [INFO]  core: stored unseal keys supported, attempting fetch
vault-0 vault 2021-05-14T14:04:07.017Z [WARN]  failed to unseal core: error="stored unseal keys are supported, but none were found"
vault-0 vault 2021-05-14T14:04:12.017Z [INFO]  core: stored unseal keys supported, attempting fetch
vault-0 vault 2021-05-14T14:04:12.017Z [WARN]  failed to unseal core: error="stored unseal keys are supported, but none were found"
vault-0 vault 2021-05-14T14:04:17.017Z [INFO]  core: stored unseal keys supported, attempting fetch
vault-0 vault 2021-05-14T14:04:17.017Z [WARN]  failed to unseal core: error="stored unseal keys are supported, but none were found"
vault-0 vault 2021-05-14T14:04:22.017Z [INFO]  core: stored unseal keys supported, attempting fetch
vault-0 vault 2021-05-14T14:04:22.017Z [WARN]  failed to unseal core: error="stored unseal keys are supported, but none were found"
vault-0 vault 2021-05-14T14:04:27.017Z [INFO]  core: stored unseal keys supported, attempting fetch
vault-0 vault 2021-05-14T14:04:27.017Z [WARN]  failed to unseal core: error="stored unseal keys are supported, but none were found"
vault-0 vault 2021-05-14T14:04:27.049Z [INFO]  core: security barrier not initialized
vault-0 vault 2021-05-14T14:04:27.049Z [INFO]  core: security barrier not initialized
vault-0 vault 2021-05-14T14:04:28.519Z [WARN]  core: stored keys supported on init, forcing shares/threshold to 1
vault-0 vault 2021-05-14T14:04:28.519Z [INFO]  core: security barrier not initialized
vault-0 vault 2021-05-14T14:04:28.519Z [DEBUG] core: bootstrapping raft backend
vault-0 vault 2021-05-14T14:04:28.523Z [INFO]  storage.raft: initial configuration: index=1 servers="[{Suffrage:Voter ID:1f340b49-7f93-8865-56f0-645888f868d4 Address:vault-0:8201}]"
vault-0 vault 2021-05-14T14:04:28.523Z [INFO]  storage.raft: entering follower state: follower="Node at 1f340b49-7f93-8865-56f0-645888f868d4 [Follower]" leader=
vault-0 vault 2021-05-14T14:04:35.112Z [WARN]  storage.raft: heartbeat timeout reached, starting election: last-leader=
vault-0 vault 2021-05-14T14:04:35.112Z [INFO]  storage.raft: entering candidate state: node="Node at 1f340b49-7f93-8865-56f0-645888f868d4 [Candidate]" term=2
vault-0 vault 2021-05-14T14:04:35.116Z [DEBUG] storage.raft: votes: needed=1
vault-0 vault 2021-05-14T14:04:35.116Z [DEBUG] storage.raft: vote granted: from=1f340b49-7f93-8865-56f0-645888f868d4 term=2 tally=1
vault-0 vault 2021-05-14T14:04:35.116Z [INFO]  storage.raft: election won: tally=1
vault-0 vault 2021-05-14T14:04:35.116Z [INFO]  storage.raft: entering leader state: leader="Node at 1f340b49-7f93-8865-56f0-645888f868d4 [Leader]"
vault-0 vault 2021-05-14T14:04:35.119Z [DEBUG] core: finished bootstrapping raft backend

---- VAULT INITIALIZED HERE ----

vault-0 vault 2021-05-14T14:04:35.124Z [INFO]  core: security barrier initialized: stored=1 shares=1 threshold=1

---- END VAULT INITIALIZED HERE ----

vault-0 vault 2021-05-14T14:04:35.157Z [DEBUG] core: cluster name not found/set, generating new
vault-0 vault 2021-05-14T14:04:35.157Z [DEBUG] core: cluster name set: name=vault-cluster-90ca590a
vault-0 vault 2021-05-14T14:04:35.157Z [DEBUG] core: cluster ID not found, generating new
vault-0 vault 2021-05-14T14:04:35.157Z [DEBUG] core: cluster ID set: id=93ac8af8-d307-5d9c-2dd6-6cf7061f9604
vault-0 vault 2021-05-14T14:04:35.157Z [DEBUG] core: generating cluster private key
vault-0 vault 2021-05-14T14:04:35.167Z [DEBUG] core: generating local cluster certificate
vault-0 vault 2021-05-14T14:04:35.236Z [INFO]  core: post-unseal setup starting
vault-0 vault 2021-05-14T14:04:35.236Z [DEBUG] core: clearing forwarding clients
vault-0 vault 2021-05-14T14:04:35.236Z [DEBUG] core: done clearing forwarding clients
vault-0 vault 2021-05-14T14:04:35.236Z [DEBUG] core: persisting feature flags
vault-0 vault 2021-05-14T14:04:35.328Z [INFO]  core: loaded wrapping token key
vault-0 vault 2021-05-14T14:04:35.328Z [INFO]  core: successfully setup plugin catalog: plugin-directory=
vault-0 vault 2021-05-14T14:04:35.329Z [INFO]  core: no mounts; adding default mount table
vault-0 vault 2021-05-14T14:04:35.335Z [INFO]  core: successfully mounted backend: type=cubbyhole path=cubbyhole/
vault-0 vault 2021-05-14T14:04:35.335Z [INFO]  core: successfully mounted backend: type=system path=sys/
vault-0 vault 2021-05-14T14:04:35.336Z [INFO]  core: successfully mounted backend: type=identity path=identity/
vault-0 vault 2021-05-14T14:04:35.424Z [INFO]  core: successfully enabled credential backend: type=token path=token/
vault-0 vault 2021-05-14T14:04:35.424Z [INFO]  core: restoring leases
vault-0 vault 2021-05-14T14:04:35.424Z [INFO]  rollback: starting rollback manager
vault-0 vault 2021-05-14T14:04:35.425Z [DEBUG] expiration: collecting leases
vault-0 vault 2021-05-14T14:04:35.425Z [DEBUG] expiration: leases collected: num_existing=0
vault-0 vault 2021-05-14T14:04:35.425Z [INFO]  expiration: lease restore complete
vault-0 vault 2021-05-14T14:04:35.437Z [DEBUG] identity: loading entities
vault-0 vault 2021-05-14T14:04:35.437Z [DEBUG] identity: entities collected: num_existing=0
vault-0 vault 2021-05-14T14:04:35.437Z [INFO]  identity: entities restored
vault-0 vault 2021-05-14T14:04:35.437Z [DEBUG] identity: identity loading groups
vault-0 vault 2021-05-14T14:04:35.437Z [DEBUG] identity: groups collected: num_existing=0
vault-0 vault 2021-05-14T14:04:35.437Z [INFO]  identity: groups restored
vault-0 vault 2021-05-14T14:04:35.468Z [WARN]  core: post-unseal upgrade seal keys failed: error="no recovery key found"
vault-0 vault 2021-05-14T14:04:35.469Z [INFO]  core: usage gauge collection is disabled
vault-0 vault 2021-05-14T14:04:35.472Z [INFO]  core: post-unseal setup complete
vault-0 vault 2021-05-14T14:04:35.515Z [INFO]  core: root token generated
vault-0 vault 2021-05-14T14:04:35.542Z [INFO]  core: pre-seal teardown starting
vault-0 vault 2021-05-14T14:04:35.543Z [DEBUG] expiration: stop triggered
vault-0 vault 2021-05-14T14:04:35.543Z [DEBUG] expiration: finished stopping
vault-0 vault 2021-05-14T14:04:35.543Z [INFO]  rollback: stopping rollback manager
vault-0 vault 2021-05-14T14:04:35.543Z [INFO]  core: pre-seal teardown complete
vault-0 vault 2021-05-14T14:04:55.564Z [INFO]  core: stored unseal keys supported, attempting fetch
vault-0 vault 2021-05-14T14:04:55.596Z [DEBUG] core: starting cluster listeners
vault-0 vault 2021-05-14T14:04:55.596Z [INFO]  core.cluster-listener.tcp: starting listener: listener_address=<IP_ADDRESS>:8201
vault-0 vault 2021-05-14T14:04:55.596Z [INFO]  core.cluster-listener: serving cluster requests: cluster_listen_address=[::]:8201
vault-0 vault 2021-05-14T14:04:55.598Z [INFO]  storage.raft: initial configuration: index=1 servers="[{Suffrage:Voter ID:1f340b49-7f93-8865-56f0-645888f868d4 Address:vault-0:8201}]"
vault-0 vault 2021-05-14T14:04:55.599Z [INFO]  core: vault is unsealed
vault-0 vault 2021-05-14T14:04:55.599Z [INFO]  storage.raft: entering follower state: follower="Node at vault-0:8201 [Follower]" leader=
vault-0 vault 2021-05-14T14:04:55.599Z [INFO]  core: entering standby mode
vault-0 vault 2021-05-14T14:05:02.515Z [WARN]  storage.raft: heartbeat timeout reached, starting election: last-leader=
vault-0 vault 2021-05-14T14:05:02.515Z [INFO]  storage.raft: entering candidate state: node="Node at vault-0:8201 [Candidate]" term=3
vault-0 vault 2021-05-14T14:05:02.519Z [DEBUG] storage.raft: votes: needed=1
vault-0 vault 2021-05-14T14:05:02.519Z [DEBUG] storage.raft: vote granted: from=1f340b49-7f93-8865-56f0-645888f868d4 term=3 tally=1
vault-0 vault 2021-05-14T14:05:02.519Z [INFO]  storage.raft: election won: tally=1
vault-0 vault 2021-05-14T14:05:02.519Z [INFO]  storage.raft: entering leader state: leader="Node at vault-0:8201 [Leader]"
vault-0 vault 2021-05-14T14:05:02.523Z [INFO]  core: acquired lock, enabling active operation
vault-0 vault 2021-05-14T14:05:35.638Z [INFO]  core: unsealed with stored key
vault-0 vault 2021-05-14T14:05:35.639Z [WARN]  core: stored keys supported on init, forcing shares/threshold to 1
vault-0 vault 2021-05-14T14:05:35.639Z [WARN]  core: attempted unseal with stored keys, but vault is already unsealed
vault-0 vault 2021-05-14T14:05:35.640Z [DEBUG] core: generating cluster private key
vault-0 vault 2021-05-14T14:05:35.654Z [DEBUG] core: generating local cluster certificate
vault-0 vault 2021-05-14T14:05:55.766Z [INFO]  core: post-unseal setup starting
vault-0 vault 2021-05-14T14:05:55.767Z [DEBUG] core: clearing forwarding clients
vault-0 vault 2021-05-14T14:05:55.767Z [DEBUG] core: done clearing forwarding clients
vault-0 vault 2021-05-14T14:05:55.767Z [DEBUG] core: persisting feature flags
vault-0 vault 2021-05-14T14:05:55.770Z [INFO]  core: loaded wrapping token key
vault-0 vault 2021-05-14T14:05:55.770Z [INFO]  core: successfully setup plugin catalog: plugin-directory=
vault-0 vault 2021-05-14T14:05:55.771Z [INFO]  core: successfully mounted backend: type=system path=sys/
vault-0 vault 2021-05-14T14:05:55.771Z [INFO]  core: successfully mounted backend: type=identity path=identity/
vault-0 vault 2021-05-14T14:05:55.771Z [INFO]  core: successfully mounted backend: type=cubbyhole path=cubbyhole/
vault-0 vault 2021-05-14T14:05:55.773Z [INFO]  core: successfully enabled credential backend: type=token path=token/
vault-0 vault 2021-05-14T14:05:55.773Z [INFO]  core: restoring leases
vault-0 vault 2021-05-14T14:05:55.773Z [INFO]  rollback: starting rollback manager
vault-0 vault 2021-05-14T14:05:55.773Z [DEBUG] expiration: collecting leases
vault-0 vault 2021-05-14T14:05:55.773Z [DEBUG] expiration: leases collected: num_existing=0
vault-0 vault 2021-05-14T14:05:55.774Z [INFO]  expiration: lease restore complete
vault-0 vault 2021-05-14T14:05:55.779Z [DEBUG] identity: loading entities
vault-0 vault 2021-05-14T14:05:55.779Z [DEBUG] identity: entities collected: num_existing=0
vault-0 vault 2021-05-14T14:05:55.779Z [INFO]  identity: entities restored
vault-0 vault 2021-05-14T14:05:55.779Z [DEBUG] identity: identity loading groups
vault-0 vault 2021-05-14T14:05:55.779Z [DEBUG] identity: groups collected: num_existing=0
vault-0 vault 2021-05-14T14:05:55.779Z [INFO]  identity: groups restored
vault-0 vault 2021-05-14T14:05:55.790Z [DEBUG] core: request forwarding setup function
vault-0 vault 2021-05-14T14:05:55.790Z [DEBUG] core: clearing forwarding clients
vault-0 vault 2021-05-14T14:05:55.790Z [DEBUG] core: done clearing forwarding clients
vault-0 vault 2021-05-14T14:05:55.790Z [DEBUG] core: leaving request forwarding setup function
vault-0 vault 2021-05-14T14:05:55.820Z [INFO]  core: usage gauge collection is disabled

---- 400 ERROR HERE (root key not stored) ----

**vault-0 bank-vaults time="2021-05-14T14:05:55Z" level=fatal msg="error initializing vault: error initializing vault: Error making API request.\n\nURL: PUT http://<IP_ADDRESS>:8200/v1/sys/init\nCode: 400. Errors:\n\n* Vault is already initialized"

----- ERROR HERE----

vault-0 vault 2021-05-14T14:05:55.828Z [INFO]  core: post-unseal setup complete**
- vault-0 › bank-vaults
+ vault-0 › bank-vaults
vault-0 bank-vaults time="2021-05-14T14:05:56Z" level=info msg="joining leader vault..."
vault-0 bank-vaults time="2021-05-14T14:05:56Z" level=info msg="vault metrics exporter enabled: :9091/metrics"
vault-0 bank-vaults time="2021-05-14T14:05:57Z" level=info msg="initializing vault..."
vault-0 bank-vaults time="2021-05-14T14:05:57Z" level=info msg="vault is already initialized"

Resource definition (possibly in YAML format) that caused the issue, without sensitive data:

---
apiVersion: "vault.banzaicloud.com/v1alpha1"
kind: "Vault"
metadata:
  name: "vault"
spec:
  size: 3
  image: vault:1.6.2

  vaultEnvsConfig:
    - name: VAULT_LOG_LEVEL
      value: debug

  vaultContainerSpec:
    name: vault
    livenessProbe:
      failureThreshold: 5
      httpGet:
        path: /v1/sys/init
        port: api-port
        scheme: HTTP
      initialDelaySeconds: 120
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 30
    readinessProbe:
      failureThreshold: 5
      httpGet:
        path: "/v1/sys/health?standbyok=true&perfstandbyok=true&drsecondarycode=299"
        port: api-port
        scheme: HTTP
      initialDelaySeconds: 120
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 30

  # Specify the ServiceAccount where the Vault Pod and the Bank-Vaults configurer/unsealer is running
  serviceAccount: vault

  # Describe where you would like to store the Vault root token
  # in GCS encrypted with KMS.
  unsealConfig:
    options:
      preFlightChecks: true
    google:
      kmsKeyRing: "keyring"
      kmsCryptoKey: "cryptokey"
      kmsLocation: "europe-west2"
      kmsProject: "project"
      storageBucket: "bucket"

  statsdDisabled: true

  config:
    disable_mlock: true
    seal:
      # Configuration to use Vault auto-unseal
      gcpckms:
        project: "project"
        region: "europe-west2"
        key_ring: "key-ring"
        crypto_key: "key"
    storage:
      raft:
        path: /vault/data
    listener:
      tcp:
        address: "<IP_ADDRESS>:8200"
        tls_disable: true
    api_addr: http://vault.default:8200
    cluster_addr: "https://${.Env.POD_NAME}:8201"
    ui: true

  # Just basic examples
  externalConfig:
    policies:
      - name: allow_secrets
        rules: path "secret/*" {
          capabilities = ["create", "read", "update", "delete", "list"]
          }
    auth:
      - type: kubernetes
        roles:
          # Allow every pod in the default namespace to use the secret kv store
          - name: default
            bound_service_account_names: ["*"]
            bound_service_account_namespaces: ["*"]
            policies: ["allow_secrets", "allow_pki"]
            ttl: 1h

  serviceRegistrationEnabled: true

  resources:
    vault:
      limits:
        memory: "512Mi"
        cpu: "200m"
      requests:
        memory: "256Mi"
        cpu: "100m"

  volumeClaimTemplates:
    - metadata:
        name: vault-raft
      spec:
        accessModes:
          - ReadWriteOnce
        volumeMode: Filesystem
        resources:
          requests:
            storage: 10Gi

  volumeMounts:
    - name: vault-raft
      mountPath: /vault/data

/kind bug

I can add the issue doesn't happen using file as storage. Bank-vaults does only init and it stores the root and recovery keys.

Using a sidecar to debug the network, I can see two PUT request to /init.
bank-vault-uk-0 linkerd-debug  1008 57.276816078    <IP_ADDRESS> → <IP_ADDRESS>    HTTP 361 PUT /v1/sys/init HTTP/1.1

bank-vault-uk-0 linkerd-debug  1535<PHONE_NUMBER>52   <IP_ADDRESS> → <IP_ADDRESS>    HTTP 191 GET /v1/sys/init HTTP/1.1
bank-vault-uk-0 linkerd-debug  1540<PHONE_NUMBER>74    <IP_ADDRESS> → <IP_ADDRESS>    HTTP 172 GET /v1/sys/init HTTP/1.1
bank-vault-uk-0 linkerd-debug  1588<PHONE_NUMBER>15   <IP_ADDRESS> → <IP_ADDRESS>    HTTP 191 GET /v1/sys/init HTTP/1.1
bank-vault-uk-0 linkerd-debug  1593<PHONE_NUMBER>76    <IP_ADDRESS> → <IP_ADDRESS>    HTTP 172 GET /v1/sys/init HTTP/1.1
bank-vault-uk-0 linkerd-debug  1647<PHONE_NUMBER>33   <IP_ADDRESS> → <IP_ADDRESS>    HTTP 191 GET /v1/sys/init HTTP/1.1
bank-vault-uk-0 linkerd-debug  1649<PHONE_NUMBER>31    <IP_ADDRESS> → <IP_ADDRESS>    HTTP 172 GET /v1/sys/init HTTP/1.1

bank-vault-uk-0 linkerd-debug  1664<PHONE_NUMBER>05    <IP_ADDRESS> → <IP_ADDRESS>    HTTP 361 PUT /v1/sys/init HTTP/1.1`

Very interesting, tbh I have no idea for now, I will try to reproduce this @dgamo .

Thank you, let me know if I can help somehow to investigate this.

Hi @dgamo, I have compiled a Vault CR according to my understanding that mocks your situation, but I wan't able to reproduce the error, here is my CR:
apiVersion: "vault.banzaicloud.com/v1alpha1"
kind: "Vault"
metadata:
  name: "vault"
spec:
  size: 2
  image: vault:1.6.2

  # Describe where you would like to store the Vault unseal keys and root token
  # in GCS encrypted with KMS.
  unsealConfig:
    google:
      kmsKeyRing: "bank-vaults"
      kmsCryptoKey: "bank-vaults"
      kmsLocation: "global"
      kmsProject: "bank-vaults-project"
      storageBucket: "bank-vaults"

  # Specify the ServiceAccount where the Vault Pod and the Bank-Vaults configurer/unsealer is running
  serviceAccount: vault

  # A YAML representation of a final vault config file, this config represents
  # a HA config in Google Cloud.
  # See https://www.vaultproject.io/docs/configuration/ for more information.
  config:
    storage:
      raft:
        path: "/vault/file"
    listener:
      tcp:
        address: "<IP_ADDRESS>:8200"
        tls_cert_file: /vault/tls/server.crt
        tls_key_file: /vault/tls/server.key
    seal:
      gcpckms:
        project: "bank-vaults-project"
        region: "global"
        key_ring: "bank-vaults"
        crypto_key: "bank-vaults"
    api_addr: https://vault.default:8200
    cluster_addr: "https://${.Env.POD_NAME}:8201"
    ui: true

  # See: https://banzaicloud.com/docs/bank-vaults/cli-tool/#example-external-vault-configuration
  # The repository also contains a lot examples in the deploy/ and operator/deploy directories.
  externalConfig:
    policies:
      - name: allow_secrets
        rules: path "secret/*" {
          capabilities = ["create", "read", "update", "delete", "list"]
          }
    auth:
      - type: kubernetes
        roles:
          # Allow every pod in the default namespace to use the secret kv store
          - name: default
            bound_service_account_names: default
            bound_service_account_namespaces: default
            policies: allow_secrets
            ttl: 1h

  volumeClaimTemplates:
    - metadata:
        name: vault-raft
      spec:
        # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
        # storageClassName: ""
        accessModes:
          - ReadWriteOnce
        volumeMode: Filesystem
        resources:
          requests:
            storage: 1Gi

  volumeMounts:
    - name: vault-raft
      mountPath: /vault/file

  # If you are not using a Service Account to authenticate against GCP you can pass in an
  # GCP credentials refering to a Secret with the following configuration block. You have to
  # create the "gcp-sa" secret manually, it has to have a key called "service-account.json"
  # holding the configuration in the following format:
  # https://cloud.google.com/docs/authentication/getting-started
  credentialsConfig:
    env: GOOGLE_APPLICATION_CREDENTIALS
    path: /etc/gcp/service-account.json
    secretName: gcp-sa

Please check it and let me know if I have missed something. This example works fine for me.

Thanks for taking a look into this, tbh we are using bank-vaults to unseal for now until we can fix the issue, probably something on our side.
We can close the issue, thanks again!


Setup CircleCI

@lbighetti Anybody looking into all open issues currently. Would love to resolve them.

@rohanpujaris not currently. You are welcome to :)
Just leave a comment on which one you are working on so we can keep track in case someone else comes along.

@lbighetti Sure. Can you also check this PR if it looks good https://github.com/gothinkster/elixir-phoenix-realworld-example-app/pull/19

Working on this

Done in #21


Remove AlphaTaxonomy bulk tagging scripts

The Tag Importer UI now makes these rake tasks and scripts largely
redundant - they're fiddly to run and offer no particular advantage
over the browser-based option.

👍


[BUG] Some Polish characters don't work in the profile search

Please make sure you've tried the latest version of Fritter first, as the F-Droid version is sometimes out of date!

Describe the bug
The following Polish characters do not work when searching for profiles: "ć", "ł", "ń", "ś", "ź". When they are a part of the searched strings there are no results, when on Twitter it works normally.
When I change Polish characters to their simpler counterparts like "c", "l" etc. searching works, but it's more natural to use proper characters.
To Reproduce
Steps to reproduce the behavior:

Open Fritter.
Tap the search icon.
Enter "ćwiek", "jarosław", "zieliński", "świstak" or "paździoch".

Screenshots

Device
OnePlus 9 Pro, Android 11, v2.13.0

The fix for this will go out in the next version (v2.16.0)!


include: arch: riscv: rename global macro

SR and LR were used as global names for load and store RISC-V assembler
operations, colliding with other uses such as SR for STATUS REGISTER in
some peripherals. Renamed them to a longer more specific name to avoid
the collision.
Signed-off-by: Karsten Koenig<EMAIL_ADDRESS>

Tested this on a vega board, so only for RV32. There it also clashed with the status register of the LPSPI peripheral :-)
Ping @npitre
You've introduced the macros to use different operations based on either RV32 or RV64. I think I caught all of them based on your commit here
https://github.com/zephyrproject-rtos/zephyr/commit/0440a815a91b83bdb27e272b9770f558c1b8975c

This is fine with me.

@karstenkoenig @nategraff-sifive is this considered a bug-fix or enhancement? I.e. do we require this in 2.0?

I'd say it's a bugfix, SR is present on NXP/Freescale peripherals (RTC, LSSPI, MU) so there is a collision on the RV32M1 SoC. They aren't used yet on that SoC afaik, but if somebody were to use 2.0 as a starting point for it, it'd be annoying.

@karstenkoenig @nategraff-sifive is this considered a bug-fix or enhancement? I.e. do we require this in 2.0?
Thanks @karstenkoenig

@nategraff-sifive @nashif just give a green light if this is required for 2.0.0

I think this should go in 2.0.0.

@karstenkoenig could you rebase this one to latest master?

@ioannisg done, rebased onto current master and verified hello-world is still working on the openvega board


How to train model in multi-gpu in a single machine?

❓ How to train model in multi-gpu in a single machine?
while I run ./tools/train_net.py with command-line:
CUDA_VISIBLE_DEVICES=1 python ./tools/train_net.py --config-file /home/hbchen/fastreid_baseline/fast-reid-0.1-Learning/configs/VehicleID/bagtricks_R50-ibn.yml --machine-rank 1 --num-gpus 1
it works well.
But when I use
CUDA_VISIBLE_DEVICES=2,3 python ./tools/train_net.py --config-file /home/hbchen/fastreid_baseline/fast-reid-0.1-Learning/configs/VehicleID/bagtricks_R50-ibn.yml --machine-rank 1 --num-gpus 2
to train model in multi-gpu, there's something wrong with the program. And I type Ctrl+C twice to interrupt it.
Specific as follows：
CUDA_VISIBLE_DEVICES=2,3 python ./tools/train_net.py --config-file /home/hbchen/fastreid_baseline/fast-reid-0.1-Learning/configs/VehicleID/bagtricks_R50-ibn.yml --machine-rank 1 --num-gpus 2 --dist-url auto
Command Line Args: Namespace(config_file='/home/hbchen/fastreid_baseline/fast-reid-0.1-Learning/configs/VehicleID/bagtricks_R50-ibn.yml', dist_url='auto', eval_only=False, machine_rank=1, num_gpus=2, num_machines=1, opts=[], resume=False)
^CTraceback (most recent call last):
  File "./tools/train_net.py", line 67, in <module>
    args=(args,),
  File "./fastreid/engine/launch.py", line 68, in launch
    daemon=False,
  File "/home/hbchen/anaconda3/envs/fastreid/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 167, in spawn
    while not spawn_context.join():
  File "/home/hbchen/anaconda3/envs/fastreid/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 73, in join
    timeout=timeout,
  File "/home/hbchen/anaconda3/envs/fastreid/lib/python3.6/multiprocessing/connection.py", line 911, in wait
    ready = selector.select(timeout)
  File "/home/hbchen/anaconda3/envs/fastreid/lib/python3.6/selectors.py", line 376, in select
    fd_event_list = self._poll.poll(timeout)
KeyboardInterrupt
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/home/hbchen/anaconda3/envs/fastreid/lib/python3.6/multiprocessing/popen_fork.py", line 28, in poll
    pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt

Looking forward to your reply. Thanks!

I had got it. Machine rank should be 0 when use a single machine.


Insert entries

As a first step, insert an entry to a table without using free pages.

sqlite3BtreeInsert()
/*
** Insert a new record into the BTree.  The content of the new record
** is described by the pX object.  The pCur cursor is used only to
** define what table the record should be inserted into, and is left
** pointing at a random location.
**
** For a table btree (used for rowid tables), only the pX.nKey value of
** the key is used. The pX.pKey value must be NULL.  The pX.nKey is the
** rowid or INTEGER PRIMARY KEY of the row.  The pX.nData,pData,nZero fields
** hold the content of the row.
**
** For an index btree (used for indexes and WITHOUT ROWID tables), the
** key is an arbitrary byte sequence stored in pX.pKey,nKey.  The
** pX.pData,nData,nZero fields must be zero.
**
** If the seekResult parameter is non-zero, then a successful call to
** sqlite3BtreeIndexMoveto() to seek cursor pCur to (pKey,nKey) has already
** been performed.  In other words, if seekResult!=0 then the cursor
** is currently pointing to a cell that will be adjacent to the cell
** to be inserted.  If seekResult<0 then pCur points to a cell that is
** smaller then (pKey,nKey).  If seekResult>0 then pCur points to a cell
** that is larger than (pKey,nKey).
**
** If seekResult==0, that means pCur is pointing at some unknown location.
** In that case, this routine must seek the cursor to the correct insertion
** point for (pKey,nKey) before doing the insertion.  For index btrees,
** if pX->nMem is non-zero, then pX->aMem contains pointers to the unpacked
** key values and pX->aMem can be used instead of pX->pKey to avoid having
** to decode the key.
*/
int sqlite3BtreeInsert(
  BtCursor *pCur,                /* Insert data into the table of this cursor */
  const BtreePayload *pX,        /* Content of the row to be inserted */
  int flags,                     /* True if this is likely an append */
  int seekResult                 /* Result of prior IndexMoveto() call */
){

sqlite> explain insert into example(col1, col2) values (1, 2);
addr  opcode         p1    p2    p3    p4             p5  comment
----  -------------  ----  ----  ----  -------------  --  -------------
0     Init           0     8     0                    0   Start at 8
1     OpenWrite      0     2     0     2              0   root=2 iDb=0; example
2     Integer        1     2     0                    0   r[2]=1
3     Integer        2     3     0                    0   r[3]=2
4     NewRowid       0     1     0                    0   r[1]=rowid
5     MakeRecord     2     2     4                    0   r[4]=mkrec(r[2..3])
6     Insert         0     4     1     example        57  intkey=r[1] data=r[4]
7     Halt           0     0     0                    0
8     Transaction    0     1     1     0              1   usesStmtJournal=0
9     Goto           0     1     0                    0

OP_Insert calls sqlite3BtreeInsert().
  rc = sqlite3BtreeInsert(pC->uc.pCursor, &x,
      (pOp->p5 & (OPFLAG_APPEND|OPFLAG_SAVEPOSITION|OPFLAG_PREFORMAT)),
      seekResult
  );

sqlite3BtreeInsert()
/*
** Insert a new record into the BTree.  The content of the new record
** is described by the pX object.  The pCur cursor is used only to
** define what table the record should be inserted into, and is left
** pointing at a random location.
**
** For a table btree (used for rowid tables), only the pX.nKey value of
** the key is used. The pX.pKey value must be NULL.  The pX.nKey is the
** rowid or INTEGER PRIMARY KEY of the row.  The pX.nData,pData,nZero fields
** hold the content of the row.
**
** For an index btree (used for indexes and WITHOUT ROWID tables), the
** key is an arbitrary byte sequence stored in pX.pKey,nKey.  The
** pX.pData,nData,nZero fields must be zero.
**
** If the seekResult parameter is non-zero, then a successful call to
** sqlite3BtreeIndexMoveto() to seek cursor pCur to (pKey,nKey) has already
** been performed.  In other words, if seekResult!=0 then the cursor
** is currently pointing to a cell that will be adjacent to the cell
** to be inserted.  If seekResult<0 then pCur points to a cell that is
** smaller then (pKey,nKey).  If seekResult>0 then pCur points to a cell
** that is larger than (pKey,nKey).
**
** If seekResult==0, that means pCur is pointing at some unknown location.
** In that case, this routine must seek the cursor to the correct insertion
** point for (pKey,nKey) before doing the insertion.  For index btrees,
** if pX->nMem is non-zero, then pX->aMem contains pointers to the unpacked
** key values and pX->aMem can be used instead of pX->pKey to avoid having
** to decode the key.
*/
int sqlite3BtreeInsert(
  BtCursor *pCur,                /* Insert data into the table of this cursor */
  const BtreePayload *pX,        /* Content of the row to be inserted */
  int flags,                     /* True if this is likely an append */
  int seekResult                 /* Result of prior IndexMoveto() call */
){

sqlite3BtreeInsert() inserts if entry for the nKey does not exist in the btree, overwrites the entry if exists.
  TRACE(("INSERT: table=%d nkey=%lld ndata=%d page=%d %s\n",
          pCur->pgnoRoot, pX->nKey, pX->nData, pPage->pgno,
          loc==0 ? "overwrite" : "new entry"));

  newCell = p->pBt->pTmpSpace;

Overflow
The thresholds for overflow are calculated at lockBtree() and stored into BtShared.
  /* maxLocal is the maximum amount of payload to store locally for
  ** a cell.  Make sure it is small enough so that at least minFanout
  ** cells can will fit on one page.  We assume a 10-byte page header.
  ** Besides the payload, the cell must store:
  **     2-byte pointer to the cell
  **     4-byte child pointer
  **     9-byte nKey value
  **     4-byte nData value
  **     4-byte overflow page pointer
  ** So a cell consists of a 2-byte pointer, a header which is as much as
  ** 17 bytes long, 0 to N bytes of payload, and an optional 4 byte overflow
  ** page pointer.
  */
  pBt->maxLocal = (u16)((pBt->usableSize-12)*64/255 - 23);
  pBt->minLocal = (u16)((pBt->usableSize-12)*32/255 - 23);
  pBt->maxLeaf = (u16)(pBt->usableSize - 35);
  pBt->minLeaf = (u16)((pBt->usableSize-12)*32/255 - 23);
  if( pBt->maxLocal>127 ){
    pBt->max1bytePayload = 127;
  }else{
    pBt->max1bytePayload = (u8)pBt->maxLocal;
  }

fillInCell() looks doing the work.
/*
** Create the byte sequence used to represent a cell on page pPage
** and write that byte sequence into pCell[].  Overflow pages are
** allocated and filled in as necessary.  The calling procedure
** is responsible for making sure sufficient space has been allocated
** for pCell[].
**
** Note that pCell does not necessary need to point to the pPage->aData
** area.  pCell might point to some temporary storage.  The cell will
** be constructed in this temporary area then copied into pPage->aData
** later.
*/
static int fillInCell(


fix media query remove listener

the stopListening function was not actually doing anything since on line 32 it was being bound to an anonymous function.

Thanks, I'll have a look this afternoon.  Could you resolve the merge conflicts on this branch?


Reconcile a CAPC cluster to a CKS cluster

/kind feature
Describe the solution you'd like
CAPC reconciles various resources in CloudStack, we want to see CAPC leverage and reconcile notion of a CAPC k8s cluster to a CKS (unmanaged) cluster.
The CKS cluster resource in CloudStack captures notion of a k8s cluster in CloudStack, and recently a feature improvement made it possible to have notion of unmanaged k8s cluster with https://github.com/apache/cloudstack/pull/7515 with documentation at https://github.com/apache/cloudstack-documentation/pull/315 and API support via go-sdk change https://github.com/apache/cloudstack-go/pull/59. A PR proposed https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/pull/250 which couldn't satisfy review from other stakeholders. With this issue, alternative options and approaches can be discussed or the previous PR reimagined.
As a CAPC user I would want the following:

Ability to see my CAPC cluster show up as unmanaged CKS cluster in CloudStack (API and UI)
Be able to see usage, of my CAPC cluster via CKS cluster (cpu, memory etc.)
As MachineSets are added/removed, the related instances can be added removed in CKS 'unmanaged' cluster
In large environment, esp a typical CI/CD use-cases, if as a user I lose/forget my CAPC admin cluster I should be able to manually delete the CAPC cluster resources (namely, VMs and networks)
I should be able to do this as a user account type (note: a CloudStack role has a list of allowed/disallowed APIs, however, an account type control ability of an account type to do certain things such as acquire public IP of choice in a given shared/isolated/vpc network etc. needed typically for CAPC cluster)
Prefer not to use another tool, than CAPC for reconciliation of a CAPC cluster to a CloudStack Kubernetes Service (CKS) cluster

Brief design doc: (to be expanded by @vishesh92)

Lots of relevant conversation has already taken place on https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/pull/250.

Moving to v0.5.0 since this is a new feature (and requires some more discussion if I recall correctly) and we are only prioritizing vital bugfixes for v0.4.9

@weizhouapache @vishesh92 and I want to revisit this for v0.5.0, by making the integration/reconciliation disabled by default that we may revisit to enable by default in future. Users who want this feature will have to enable it; the related feature is already made into ACS 4.19 now (under RC1/testing/voting now): https://github.com/apache/cloudstack/pull/7515 and https://github.com/apache/cloudstack-documentation/pull/315
We've gathered a lot of support in the CloudStack community esp. during last year's meet-ups and CloudStack Collaboration conference, where users want to use the CKS feature with CAPC as high-level API/UI abstraction for their Kubernetes clusters; having CAPC clusters show us as unmanaged CKS cluster serves a lot of their requirements, with path of having CAPC cluster being orchestrated via CloudStack opening up in future.

@weizhouapache @vishesh92 and I want to revisit this for v0.5.0, by making the integration/reconciliation disabled by default that we may revisit to enable by default in future. Users who want this feature will have to enable it; the related feature is already made into ACS 4.19 now (under RC1/testing/voting now): apache/cloudstack#7515 and apache/cloudstack-documentation#315
We've gathered a lot of support in the CloudStack community esp. during last year's meet-ups and CloudStack Collaboration conference, where users want to use the CKS feature with CAPC as high-level API/UI abstraction for their Kubernetes clusters; having CAPC clusters show us as unmanaged CKS cluster serves a lot of their requirements, with path of having CAPC cluster being orchestrated via CloudStack opening up in future.

That sounds good to me! Thanks y'all for doing all the user research!
To facilitate future reviews, could y'all add this info (opt-in feature) to the issue description?
I would also love to discuss first the high level implementation first (here in the issue is totally fine although if y'all want to write a one pager design doc that's great too), just to avoid churn during PR reviews.

/remove-lifecycle stale


Implement ajax_add action

Allows to define a toolbar action that adds a plugin
Adds the ability to define custom per-toolbar item actions in the process

Coverage increased (+0.0%) to 90.9% when pulling 05c96c2b2e6ef2c95e11212d37adac24a26ea6bf on yakky:feature/ajax_add into 4a75faec8d1d0df8991b49be18505464850b7e5a on divio:develop.

Coverage increased (+0.0%) to 90.9% when pulling 05c96c2b2e6ef2c95e11212d37adac24a26ea6bf on yakky:feature/ajax_add into 4a75faec8d1d0df8991b49be18505464850b7e5a on divio:develop.

Coverage increased (+0.0%) to 90.9% when pulling 05c96c2b2e6ef2c95e11212d37adac24a26ea6bf on yakky:feature/ajax_add into 4a75faec8d1d0df8991b49be18505464850b7e5a on divio:develop.

@mkoistinen @ojii @FinalAngel  ready  for review

lgtm

added some comments, even if too late :)

@FinalAngel it's never too late :)


RuntimeError: Invalid parameters for enforcer.

in core_enforcer, there are these code:
class CoreEnforcer:
        #...
        def init_with_model_and_adapter(self, m, adapter=None):
        """initializes an enforcer with a model and a database adapter."""

            if not isinstance(m, Model) or adapter is not None and not isinstance(adapter, Adapter):
                raise RuntimeError("Invalid parameters for enforcer.")

so the async adapter is not instance of Adapter，then throw this error.
how to fix this problem?

i got it. if use AsyncAdapter, the enforcer must be use AsyncEnforcer. So the README.md example is incorrect.

@kingshuaishuai can you make a PR and fix the README?

Of course, I'd be happy to do


Preview copied and pasted should not include background colors

Please select the area your bug applies to. (Multiple selections are Possible)

[ ] Onboard. Initial vault setup and import/export pods
[ ] Create. Note creation, lookup, snippets and templates
[ ] Retrieve. Backlinks, references, graph view
[ ] Structure. Refactoring, multi-vault and schemas
[ ] Publish. Sharing your repo with the world
[x] Misc (Choose this if your not sure)

Describe the bug
When viewing a preview of a Dendron note, a Ctrl+A followed by a Ctrl+C will copy the contents of the preview to the clipboard. If it is then pasted into another application (Gmail, etc.), in some situations, it will carry with it the background coloring. It would be preferred that background coloring would not come with it or would be an option.
To Reproduce
Steps to reproduce the behavior:

Go to a Dendron note and open a preview of the note.
Click in the preview and do Ctrl-A to select the whole preview.
Do Ctrl+C to copy the preview to the clipboard.
Go to Gmail and create a new email.
Press Ctrl-V to paste the clipboard into the new email.
The email will contain the html interpretation of the preview, including the background coloring of the section(s) copied.

Expected behavior
When pasting into another application, it would be preferable to not include the background coloring. This would then allow the formatted text to be pasted in without the background.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information)

OS: Windows 10
Browser: Chrome
Version:  95.0.4638.69

Additional context
Add any other context about the problem here.
Dendron Log file
Please attach the output of > Dev:Dendron: Open Logs her
dendron.log
e

Thanks for the issue. We'll pick this up in our next sprint!

This should be fixed in v{VERSION_NUM} of Dendron. please post here if not, otherwise this issue will auto close in 4 days.


Jesse: Watch hongkongpools.wildapricot.org

Jesse requests the watch of the watch_keyword hongkongpools\.wildapricot\.org. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

hongkongpools\.wildapricot\.org has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


"configuration not public" on local test->test dependency if the same version has been resolved out of a public Maven repository

Problem
I saw this problem on stackoverflow too, but it didn't seem like it had been solved, and I couldn't find an issue, so I'm posting it here.
I'm trying to do development on twitter/util, but when I try to run update on util-collection, it tells me:
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.twitter#util-core_2.10;6.23.0: configuration not public in com.twitter#util-core_2.10;6.23.0: 'test'. It was required from com.twitter#util-collection_2.10;6.23.0 test
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]      com.twitter:util-core_2.10:6.23.0
[warn]        +- com.twitter:util-collection_2.10:6.23.0
[trace] Stack trace suppressed: run last util-collection/*:update for the full output.
[error] (util-collection/*:update) sbt.ResolveException: unresolved dependency: com.twitter#util-core_2.10;6.23.0: configuration not public in com.twitter#util-core_2.10;6.23.0: 'test'. It was required from com.twitter#util-collection_2.10;6.23.0 test
[error] Total time: 1 s, completed Jan 27, 2015 1:49:54 AM

I tried making a demo project to repro, and I found that I could only repro when I chose the same version, organization, and artifact name.

More interesting stuff:
mnakamura ⮀ ~ ⮀ find ~/.ivy2/ -name 6.23.0
/Users/mnakamura/.ivy2//local/com.twitter/util-core_2.10/6.23.0

What's the repro steps using twitter util 6.23.0?
I grabbed the code, ran publishLocal.
$ find ~/.ivy2/ -name 6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-app_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-benchmark_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-cache_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-class-preloader_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-codec_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-collection_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-core_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-events_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-hashing_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-jvm_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-logging_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-reflect_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-stats_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-test_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-thrift_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-zk-common_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util-zk_2.10/6.23.0
/Users/eugene/.ivy2//local/com.twitter/util_2.10/6.23.0

I started sbt again, switch into util-collection and run all the tests:
[info] GenerationalQueueTest:
[info] - ExactGenerationalQueue: Don't collect fresh data
[info] - ExactGenerationalQueue: Don't collect old data recently refreshed
[info] - ExactGenerationalQueue: collect one old data
[info] - ExactGenerationalQueue: collectAll old data
[info] - ExactGenerationalQueue: generate a long chain of bucket (if applicable)
[info] - ExactGenerationalQueue: Don't collect old data
[info] - BucketGenerationalQueue: Don't collect fresh data
[info] - BucketGenerationalQueue: Don't collect old data recently refreshed
[info] - BucketGenerationalQueue: collect one old data
[info] - BucketGenerationalQueue: collectAll old data
[info] - BucketGenerationalQueue: generate a long chain of bucket (if applicable)
[info] - BucketGenerationalQueue: Don't collect old data
[info] - BucketGenerationalQueue check removals
[info] ScalaTest
[info] Run completed in 302 milliseconds.
[info] Total number of tests run: 13
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 13, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[info] Passed: Total 13, Failed 0, Errors 0, Passed 13

I would in general recommend against publishing final version number locally since things will get cached by Ivy, but as-is I'm not able to reproduce the problem.

@eed3si9n could you try purging your local published version and just downloading the regular version off of maven central?

I used cleanLocal to wipe out the util:
$ find ~/.ivy2/ -name 6.23.0
$

You said:

when I try to run update on util-collection

so I ran clean and then update from util-collection. Works fine.
util-core resolves as an internal dependency, so it doesn't show up as an external dependency for me:
util-collection> update
[info] Updating {file:/Users/eugene/work/quick-test/twitter-util/}util-collection...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[success] Total time: 1 s, completed Feb 24, 2015 12:04:26 AM
util-collection> show externalDependencyClasspath
[info] List(Attributed(doesnotexist), Attributed(/Users/eugene/.conscript/boot/scala-2.10.4/lib/scala-library.jar), Attributed(/Users/eugene/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-1.3.9.jar), Attributed(/Users/eugene/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar), Attributed(/Users/eugene/.ivy2/cache/com.google.guava/guava/bundles/guava-16.0.1.jar), Attributed(/Users/eugene/.ivy2/cache/commons-collections/commons-collections/jars/commons-collections-3.2.1.jar))
[success] Total time: 0 s, completed Feb 24, 2015 12:04:41 AM

Hmm, ok, could you cleanLocal in util again, clone twitter/finagle, run update, make sure that util-core is downloaded, and then run util-collection update?

Grabbing finagle did it.
util-collection> update
[info] Updating {file:/Users/eugene/work/quick-test/twitter-util/}util-core...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Updating {file:/Users/eugene/work/quick-test/twitter-util/}util-collection...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	::          UNRESOLVED DEPENDENCIES         ::
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	:: com.twitter#util-core_2.10;6.23.0: configuration not public in com.twitter#util-core_2.10;6.23.0: 'test'. It was required from com.twitter#util-collection_2.10;6.23.0 test
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] 	Note: Unresolved dependencies path:
[warn] 		com.twitter:util-core_2.10:6.23.0
[warn] 		  +- com.twitter:util-collection_2.10:6.23.0
[trace] Stack trace suppressed: run last util-collection/*:update for the full output.
[error] (util-collection/*:update) sbt.ResolveException: unresolved dependency: com.twitter#util-core_2.10;6.23.0: configuration not public in com.twitter#util-core_2.10;6.23.0: 'test'. It was required from com.twitter#util-collection_2.10;6.23.0 test
[error] Total time: 1 s, completed Feb 24, 2015 12:42:55 AM

In my Ivy cache now is ivy-6.23.0.xml, which I guess was translated from pom saying the test configuration is private:
<conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/>

I guess a workaround would be using git SHA versioning or SNAPSHOT for non finals.

We have a "develop" branch and a "master" branch, where "develop" can depend on unpublished code in other twitter libraries (and hence requires locally publishing other libs) and, and where "master" only depends on stable builds.  We could bump the version number, but since master is typically the last published stable build, it's nice to be able to use the actual version number so you can see the code that's on the last version, and it's clear that it represents the last version.
We use -SNAPSHOT on the "develop" branch, which means that only folks who aren't on the "develop" branch run into the problem, but it would be nice to be able to build "master" too, without bumping the version or adding -SNAPSHOT suffix.  With that said, you're right that if it becomes a real pain point that that's a good workaround.
Thanks for taking the time to reproduce, sorry my reproduction case was so inexact.

Ideally speaking when you're working on util-collection, it shouldn't matter what's in ivy cache. Since it depends on util-core locally we should prioritize that first. In that sense this is a sbt bug. Not sure how easy it would be to fix this, but I'll keep this open.

:+1: awesome, thanks!  I'll keep following it, let me know what I can do to help.

Wow, yeah, this is where the impedance mismatch between Ivy + maven rears its ugly head.  What happens here is we've LOST information going Ivy -> Maven and back.  I'll try to dive into the issue shortly, but what we need is a new implementation of the Ivy cache that can evict "bad" nodes like this...

I am experiencing this issue with -SNAPSHOT dependencies.

I'm running into this now as I'm trying to do "compile->compile;test->test" using a Maven style repository. It seems like when Maven's "test" scope is translated into an Ivy configuration, Ivy makes it a private one.
https://github.com/sbt/ivy/blob/3cf31483b03e0ba294c76f5391dc7570b7649090/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java#L92-L96:
        new Configuration("test", Visibility.PRIVATE,
                "this scope indicates that the dependency is not required for normal use of "
                + "the application, and is only available for the test compilation and "
                + "execution phases.",
                new String[] {"runtime"}, true, null),

Modifying Ivy to make that public may have other consequences like update trying to resolve normally-unnecessary test dependencies. Not sure.
Here's my current workaround:
    libraryDependencies ++= Seq(utilLogging, (utilLogging % Test).classifier("tests")),

For other who may come to this page from Google: sometimes clearing out ~/.ivy2/cache/ can fix this when trying to build twitter-util (someone posted this in google groups)

This is pretty easy to run into when building Spark:
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	::          UNRESOLVED DEPENDENCIES         ::
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	:: org.apache.spark#spark-network-common_2.11;1.5.1: configuration not public in org.apache.spark#spark-network-common_2.11;1.5.1: 'test'. It was required from org.apache.spark#spark-network-shuffle_2.11;1.5.1 test
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] 	Note: Unresolved dependencies path:
[warn] 		org.apache.spark:spark-network-common_2.11:1.5.1 ((com.typesafe.sbt.pom.MavenHelper) MavenHelper.scala#L76)
[warn] 		  +- org.apache.spark:spark-network-shuffle_2.11:1.5.1
[trace] Stack trace suppressed: run last network-shuffle/*:update for the full output.
[error] (network-shuffle/*:update) sbt.ResolveException: unresolved dependency: org.apache.spark#spark-network-common_2.11;1.5.1: configuration not public in org.apache.spark#spark-network-common_2.11;1.5.1: 'test'. It was required from org.apache.spark#spark-network-shuffle_2.11;1.5.1 test

@jsuereth How should we resolve this one?  Some ideas that's been mentioned thus far are

"a new implementation of the Ivy cache"
Prioritize inter-project resolution over Ivy cache.

Here's another idea:

Display a warning saying test->test won't work if publishMavenStyle is true

Isn't allowing test->test promising something we can't deliver since Test configuration is private? (See also intransitive()) What do you think?

Sorry, does anybody have a workaround for this?

@maheshkelkar Are you seeing this with sbt 0.13.11?

@eed3si9n: Yes. I was using 0.13.8, but bumped it up to 0.13.11, but same problem http://github.com/lookout/borderpatrol.
Here is the error:

Someone recently ran into this issue again and mentioned it on the finagle gitter.  Is there any chance this will get scheduled?

@mosesn Is that before or after https://github.com/twitter/finagle/commit/6c8f8e23e30e83789a6561c7cb949588107a865c? https://github.com/sbt/sbt/pull/2345 was released in 0.13.11 (Feb 2016).

Before.  I'll check in with the person with the problem to see if this fixes it, thanks!

Closing this since this should be addressed by #2345 as much as we can.
Ultimately, test->test is not really safe for any artifacts published to Maven.


Change background color dark mode does not work

Style Settings > Color Palettes > Primary
Default is #000. One can change the color number, but nothing changes in the main panel showing the note.

hi! are you referring to these options?

super sorry it was so confusing, but those settings only affect these color schemes:

(there should be options to set different colors for each mode)

Yes, that is what I meant.
For Light I like the soft theme. But for dark I want a different primary color.

I am not sure how to do this.

I figured it out. My apologies for the confusion.


Improve snippet icon selection

Describe the feature
In the current way to select a snippet icon there is a lot of unused horizontal space and the icons might seem a little small. My suggestion is to change the icons from a list to a grid. It doesn't have to be exactly the same, but I'm imagining something similar to the iOS emoji picker (with categories, more symbols and/or emoji as an option, and maybe a search function). Hopefully it wouldn't be too much work to do, but it might be nice to see ☕☀
Screenshots / Draws

Hello @ftneek 👋
That's a very good issue!
I agree with you that the icon selection must be refactored.
You're right the iOS emoji picker is very good example to follow.


Nullability & New Attribute Objects for Objective-C Templates

I'm working on getting our ObjC templates updates.
Here's what's new in this one:

I replaced the old struct objects we were using for relationship and attribute names with first class NSObject instances. This lets us not annoy the Apple gods by putting NS objects inside structs, which is a no-no in ARC land. (__unsafe_unretained is cheating)
Added nullability attributes where appropriate for attributes, relationships, and fetched properties.

I still want to add lightweight generic support, but that is going to require some internal surgery I think.

instancetype: sure, awesome
nullable: sure, awesome
I was initially cold to replace the Mike-Ash-style structs with full-blown classes. I don't consider __unsafe_unretained in this very specific circumstance (static objects really existing to provide a missing language feature) cheating. But I've come around and this is Core Data code where Yet Another Message Send isn't going to even appear on the final bill of goods.

Is there a specific reason why the primitive accessors don't get nullability annotations? It looks like optional properties still get primitives that don't allow nil values.

Hey @sixten I don't quite understand, does this fix what you are talking about? https://github.com/rentzsch/mogenerator/pull/343


Quest change

Support for multi-language during quests; will need help testing

const session = new Quest(quest_id,)
//  Check if specified quest_id exists
if (!session.isValid) return
const isCorrectAnswer = session.answer(message.content)
if (!isCorrectAnswer) return
db.updateInventory({
  session.rewards.item_id,
  session.rewards.quantity,
  ...
})

Something similar to this. What do you think? @Moore2021

hmmm, possibly like so merge the one function i already did and turn it into a class and include the answering part as well?

:tada: This PR is included in version 9.7.6 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Question about linear evaluation

Generally, only the validation set is used to help select the best_model during the training. So I wonder, is it appropriate to use test_acc to help select the eval_acc?

Hi, thanks for your question. This might be inappropriate but actually it makes little difference to the final evaluation accuracy. Just make sure to use the same setting for all the comparing methods.

The results in Cora and Citeseer make little difference, but the performance in PubMed actually decreases. (~0.8091 for 20 random initialization).

Thanks again for pointing out this problem. We will update this result in the future version if possible. And as you can see, our method still beat other methods on PubMed dataset. Feel free to use your reproducing results if you would like to use our method as the baseline in the future.
Best

Thank you for your reply! And thanks for the excellent work!


[docs] Refer to different Scope setups as standalone and service modes

@pidster @kpoplin @abuehrle @mjlodge PTAL
This stems from the internal terminology discussion. It will make the Scope documentation consistent with https://github.com/weaveworks/integrations/pull/27 (which is awaiting for terminology consistency to be merged).
Both @abuehrle and I agree that standalone mode is more intuitive than multi-host setup. We also agree on this being ultimately a product/marketing decision.
CC: @peterbourgon @tomwilkie @paulbellamy

I agree with the standalone/hosted mode use cases for the single product called Weave Scope.
I think the section titles could be even more clear, i.e. “Using Weave Scope in Hosted Mode” and “Using Weave Scope in Standalone Mode”
(Dumb question but the "setup" in the older "Multi-host setup" doesn't mean the section includes setup instructions correct? If it did, I'd suggest adding that to the above titles, like "Using Weave Scope in Hosted Mode: Setup Instructions"...)
@2opremio @abuehrle @pidster @mjlodge what do you guys think?

Agree with @kpoplin that Standalone and Service make sense as terms.

I think the section titles could be even more clear, i.e. “Using Weave Scope in Hosted Mode” and “Using Weave Scope in Standalone Mode”

I have updated the PR to reflect this.

(Dumb question but the "setup" in the older "Multi-host setup" doesn't mean the section includes setup instructions correct? If it did, I'd suggest adding that to the above titles, like "Using Weave Scope in Hosted Mode: Setup Instructions"...)

It doesn't really include setup instructions, no.