Lab 18 error generating event hub client app

Module: 07
Lab/Demo: 18
Task: 00
Step: 00
Description of issue
During setup the event hub client app creation fails.

Repro steps:
Don't know how to fix this problem
1.
1.
1.

Running locally goes fine:

Its a path issue, I cloned the repository in the clouddrive. The setup describes to clone the repository in the root folder
If I copy the lab folder to the root, no problem anymore


Actions don't work?

Checklist:

[x] I updated to the latest version available
[x] I cleared the cache of my browser

The problem
Hello. I am using 2024.8.0 and mobile app/website. I still can't get any of the actions to work. (Click, double click, long click.) Could you please check if everything is ok or if I am doing something wrong? Thanks.

Can confirm that actions don't work from the editor :/
I spent some time looking into it, but couldn't get it to work. I'm attempting to use the built-in ha-form which the built-in cards use, but it is undocumented and there is something off.
Actions work when configured via yaml.


feat(closure): copy closurebuilder.py so it works with es modules

We added support for parsing es6 deps to depswriter.py, this brings in the closurebuilder.py script so it can also handle these in deps files. This script is useful for detecting circular dependencies with the createManifest function.
Locally I'm using a script like this to run createManifest which will output dependency cycles in a more helpful manner than the compiler.
const path = require('path');
const {createManifest} = require('opensphere-build-closure-helper');

const argsPath = path.join(process.cwd(), '.build', 'gcc-args.json');
const gccArgs = require(argsPath);

createManifest(gccArgs);

:tada: This PR is included in version 7.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow setup to ask to not manage the service

Hi @bobtfish and thanks for the PR. Sorry for the long delay.
This looks potentially useful, although the parameter naming rings awkward with me.
How do you feel about exposing the values for ensure and enable as module parameters, so that the user can override them to be undef or whatever is appropriate?

closing for inactivity, failing tests, and awkward naming.


feat: use typescript

This PR changes the source code to use typescript.
I also changed it to use unbuild for building. This will allow us to provide bundled d.ts.

Codecov Report
Base: 96.70% // Head: 97.27% // Increases project coverage by +0.56% :tada:

Coverage data is based on head (0053bb8) compared to base (e9fb466).
Patch coverage: 98.59% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #60      +/-   ##
==========================================
+ Coverage   96.70%   97.27%   +0.56%
==========================================
  Files          13       14       +1
  Lines        2003     2531     +528
  Branches      380      390      +10
==========================================
+ Hits         1937     2462     +525
- Misses         65       68       +3
  Partials        1        1

Impacted Files
Coverage Δ

src/get-string-if-constant.ts
77.77% <77.77%> (ø)

src/get-property-name.ts
95.55% <95.55%> (ø)

src/get-static-value.ts
96.60% <98.77%> (ø)

src/reference-tracker.ts
97.13% <98.92%> (ø)

src/find-variable.ts
100.00% <100.00%> (ø)

src/get-function-head-location.ts
100.00% <100.00%> (ø)

src/get-function-name-with-kind.ts
100.00% <100.00%> (ø)

src/get-innermost-scope.ts
100.00% <100.00%> (ø)

src/get-parent.ts
100.00% <100.00%> (ø)

src/has-side-effect.ts
98.79% <100.00%> (ø)

... and 8 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@MichaelDeBoey Sorry for the delay. Thank you for checking this PR.
I fixed this PR. Could you please check again?


White Screen on Launch

Describe the bug
When I launch the jar file using the command line, it appears to start up normally without any errors, but the window is white and displays nothing.
Expected behavior
That the interface would display.
Desktop (please complete the following information):

OS: Arch Linux

Hi! I'm sorry that you are having that issue.
Two things:
Which version of EOCV-Sim are you using?
And, could you provide the logs? You might be able to see a "lasterror-eocvsim.log" file, or a "crashreport-blablahblah-eocvsim.log"
If you don't see such file, can you run the sim using the console and copypasting the messages once it reaches to the blank screen?
Hope that's clear

I just tested this again with the most recent release, 3.3.2. I am using openjdk 17.0.1. I have pasted the output from when I run the jar from the command line. Thanks so much for your help!
`
00:00  INFO: [LockFile] Probably locked file /home/warren/.eocvsim/.lock
00:00  INFO: [EOCVSim] Confirmed claiming of the lock file in /home/warren/.eocvsim
00:00  INFO: [EOCVSim] Initializing EasyOpenCV Simulator v3.3.2 (c86b9e3)
00:00  INFO: [EOCVSim] Loading native lib...
00:00  INFO: [Icons] Loading future icon ico_eocvsim
00:00  INFO: [EOCVSim] Successfully loaded the OpenCV native lib
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
00:00  INFO: [EOCVSim] Using the OpenIMAJ webcam driver
00:00  INFO: [ConfigManager] Initializing...
00:00  INFO: [ClasspathScan] Starting to scan classpath...
00:00  INFO: [ConfigManager] Loaded config from file successfully
00:00  INFO: [WorkspaceManager] Set current workspace to /home/warren/.eocvsim/default_workspace
00:00  INFO: [WorkspaceManager] Loaded workspace config successfully
00:00  INFO: [FileWatcher-Workspace] Starting to watch directories in:
/home/warren/.eocvsim/default_workspace
/home/warren/.eocvsim/default_workspace
00:00  INFO: [WorkspaceManager] Loaded workspace config successfully
00:00  INFO: [InputSourceManager] Initializing...
00:00  INFO: [InputSourceManager] Adding InputSource ImageSource("/tmp/ug_eocvsim_4.jpg", 320x240) (ImageSource)
00:00  INFO: [InputSourceManager] Adding InputSource ImageSource("/tmp/ug_eocvsim_1.jpg", 320x240) (ImageSource)
00:00  INFO: [InputSourceManager] Adding InputSource ImageSource("/tmp/ug_eocvsim_0.jpg", 320x240) (ImageSource)
00:00  INFO: [Icons] Loading future icon ico_colorpick_pointer
00:00  INFO: [InputSourceManager] Set InputSource to ImageSource("/tmp/ug_eocvsim_4.jpg", 320x240) (ImageSource)
00:00  INFO: [InputSourceLoader] InputSources file version is SEIS
00:00  INFO: [PipelineManager] Initializing...
00:00  INFO: [CompiledPipelineManager] Initializing...
00:01  INFO: [WorkspaceManager] Loaded workspace config successfully
00:01  INFO: [CompiledPipelineManager] Building java files in workspace, at /home/warren/.eocvsim/default_workspace
00:01  INFO: [PipelineStandardFileManager] Scanning classpath files...
00:01  INFO: [PipelineStandardFileManager] Found classpath file /home/warren/Downloads/EOCV-Sim-3.3.2-all.jar in classpath
00:01  INFO: [ClasspathScan] ClassGraph finished scanning (took 0.798668451s)
00:01  INFO: [ClasspathScan] Found 0 pipelines
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.BooleanField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.EnumField
00:01  INFO: [ClasspathScan] Found acceptor for this tunable field, com.github.serivesmejia.eocvsim.tuner.field.EnumField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.StringField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.cv.PointField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.cv.RectField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.cv.ScalarField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.numeric.DoubleField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.numeric.FloatField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.numeric.IntegerField
00:01  INFO: [ClasspathScan] Found tunable field com.github.serivesmejia.eocvsim.tuner.field.numeric.LongField
00:01  INFO: [ClasspathScan] Found 10 tunable fields and 1 acceptors
00:01  INFO: [ClasspathScan] Finished scanning (took 0.807403911s)
00:01  INFO: [PipelineManager] Found 1 pipeline(s)
00:01  INFO: [Icons] Loading future icon ico_img
00:01  INFO: [EOCVSim] Begin EOCVSim loop
00:02  INFO: [CompiledPipelineManager] Looking for pipelines in jar file /home/warren/.eocvsim/compiler/out_jars/pipelines.jar
00:02  INFO: [CompiledPipelineManager] Added AprilTagDetectionPipeline from jar
00:02  INFO: [CompiledPipelineManager] Added SimpleThresholdPipeline from jar
00:02  INFO: [CompiledPipelineManager] Added SkystoneDeterminationPipeline from jar
00:02  INFO: [CompiledPipelineManager] Added StageSwitchingPipeline from jar
00:02  INFO: [CompiledPipelineManager] Added StoneOrientationAnalysisPipeline from jar
00:02  INFO: [CompiledPipelineManager] Build successful (took 1.00 seconds)
Using the JDK compiler

AprilTagDetectionPipeline.java
(95:17): MANDATORY_WARNING: finalize() in java.lang.Object has been deprecated

00:02  INFO: [Icons] Loading future icon ico_hammer
00:02  INFO: [Icons] Loading future icon ico_gears
00:02  INFO: [PipelineManager] Changing to pipeline com.github.serivesmejia.eocvsim.pipeline.DefaultPipeline
00:02  INFO: [PipelineManager] Instantiated pipeline class com.github.serivesmejia.eocvsim.pipeline.DefaultPipeline
00:02  INFO: [PipelineSnapshot] Taken snapshot of pipeline com.github.serivesmejia.eocvsim.pipeline.DefaultPipeline
00:02  INFO: [Icons] Loading future icon ico_slider
00:02  INFO: [Icons] Loading future icon ico_config
00:02  INFO: [Icons] Loading future icon ico_colorpick
00:02  INFO: [PipelineManager] Initialized pipeline DefaultPipeline
`

Hm, that doesn't look like it's a problem on the eocv sim side since UI initialization is happening correctly (see the "loading future icon" messages at different points, which means that the UI is correctly loading and requesting the required icons).
Though, for arch Linux specifically i found something on the wiki regarding to java UI apps: https://wiki.archlinux.org/title/Java#Gray_window,_applications_not_resizing_with_WM,_menus_immediately_closing
That might be the problem? I have never used arch honestly so I'm not sure but i hope this helps!

Thanks so much for the wiki link! Sorry to bother you with an unrelated issue. Running export _JAVA_AWT_WM_NONREPARENTING=1 before running the program fixed it.


Restore the build branch to EXACTLY 479530dbc

PR description

FORCE update the build branch to the exact commit https://github.com/kaleido-io/besu/commit/479530dbcc0b316d08e53e58f034d376b4412a44

This is exactly what we have in all the software releases
Fixed Issue(s)
for for https://github.com/kaleido-io/kaleido-planning/issues/2180#issuecomment-1853483285

This is just an example PR, the actually task is to force update kaleido-noderunner-dev to this commit OR update the build job to build from kaleido-noderunner-dev-479530dbc


GetSqlBuilder.Format with multiple types

I'm building an update query that contains a subquery from a different table to the one being updated.  GetSqlBuilder<T>.Format will only let me refer to the table and columns of its type T. How can I include multiple types in the string without breaking the string into several formatted parts?

You can use Sql.Table<T> and Sql.Column<T> methods to generate your query. Like bellow:

var rawSqlQuery = OrmConfiguration.GetSqlBuilder<User>().Format(
        $@" SELECT {Sql.Column<Person>(nameof(Person.FirstName))},
                   {nameof(User.Username):C}
            FROM
                   {Sql.Table(Person)} INNER JOIN {nameof(User):T} ON
                       {nameof(User.PersonID):C} = {Sql.Column<Person>(nameof(Person.ID))} ");

The Sql class contains more helpful methods.

Great, thanks.


Consider /page and /page/ as a one thing

I'd like goaccess consider /page and /page/ as a one thing in REQUESTED FILES (URLS) panel. How do I do that?

A quick workaround is to remove the trailing slash using something like awk.
As far as merging these two, I think /page and /page/ have different semantics. However, the question is how should goaccess address this? or how would it know that they're are the same? an option maybe? should it include other trailing chars? Thoughts?

I think an option with a possibility to specify trailing characters would be fine.


feat: add charm tracing integration

Description
We add charm tracing integration making it possible to send charm traces to Tempo and observe them in Grafana.
Usage
Deploy COS lite with Tempo
Create a model for COS
juju add-model cos
Deploy cos-lite
juju deploy cos-lite --trust
Deploy tempo and integrate it with grafana
juju deploy tempo-k8s tempo
juju integrate grafana:grafana-source tempo:grafana-source
Deploy Self Signed Certificates
Create a new model
juju add-model dev
Deploy Self Signed Certificates
juju deploy self-signed-certificates
Integrate Self Signed Certificates with Tempo
From the COS model, create an offer:
juju offer cos.tempo:tracing
From the dev model, consume the offer:
juju consume obs.tempo
Integrate Self Signed Certificates with Tempo
juju integrate self-signed-certificates tempo
Screenshot

Notes
We currently don't use the server_cert parameter in trace_charm as it is not clear why it is needed or what that certificate should be. There is a request for enhancement on the tempo documentation to make this more obvious:

https://github.com/canonical/tempo-k8s-operator/issues/90

References

https://grafana.com/docs/tempo/latest/

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that validate the behaviour of the software
[ ] I validated that new and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have bumped the version of the library

Looks good :)
How did you figure out that you need the decorator from the V1 and the Requirer object from the V2 of the lib?

By looking at how other charms implemented the same integration (like traefik or prometheus). I agree it's not the most intuitive thing.

Looks good :)
How did you figure out that you need the decorator from the V1 and the Requirer object from the V2 of the lib?

By looking at how other charms implemented the same integration (like traefik or prometheus). I agree it's not the most intuitive thing.

it's different libraries ;)


Unsupported OP_QUERY command: aggregate.

Hi  ajeje93,
Is it possible to have an image based on the fork https://github.com/SiemaApplications/mongodb-grafana that is more up to date ? Because I have an error "Unsupported OP_QUERY command: aggregate. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal" due to the version of the npm mongo package being "^3.0.8" when I run this request on timeseries collection:
db.measurements.aggregate(
[
    {
        "$project": {
            "name": "$metadata.DevEUI",
            "value": "$temperature",
            "ts": "$timestamp",
            "_id": 0
        }
    }
]
)

and that works when my mongo package is at least in "^4.12.1"
Can you do something for me ?
Sincerely

Hi, I'll try and get back to you

@UnCanard14 I updated the image with the plugin you suggested, everything seems to work fine.
The only difference (I think it depends on the Grafana version), is that you should do your projections like this:
db.measurements.aggregate(
[
    {
        "$project": {
            "yourLabel": "$temperature",
            "time": "$timestamp",
            "_id": 0
        }
    }
]
)

Let me know if the new image works for you.

I'll look into it when I can and get back to you :)

I obviously don't have the Unsupported OP_QUERY error anymore but I do a simple query in grafana:
db.temperature.aggregate(
[
    {
        "$project": {
            "_id": 0
        }
    }
]
)

I have a "Gateway Timeout" error. I confess that I did not succeed in installing the version without docker image of SiemaApplications...

Can you share a little bit more about your configuration? I had no problems running the container and the plugin seems to work fine also.
I have a working example over here: https://github.com/ajeje93/speedtest-to-mongodb#docker
There you can find an application writing to MongoDB and the link to a Grafana dashboard to visualize data. I used the container from this repo.

ok thank you very much, i will send you my configuration in the evening

I install my grafana image and mongo db with this docker compose :
GNU nano 6.2                                                                                docker-compose.yml

version: "3.7"

services:
  mongodb:
    image: mongo:6-jammy
    container_name: mongodb
    ports:
      - '27017:27017'
    volumes:
      - dbdata6:/data/db

  grafana:
    image: ajeje93/grafana-mongodb
    container_name: grafana-mongo
    ports:
      - 3000:3000
    restart: unless-stopped
    volumes:
      - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
      - grafana-data:/var/lib/grafana
      - /var/lib/grafana/plugins

volumes:
  dbdata6:
  grafana-data:

With " mongodb compass " I connect to my base
I create a base with mongosh use mydatabse
I am making a time series collection

db.createCollection(
    "weather",
    {
       timeseries: {
          timeField: "timestamp",
          metaField: "metadata",
          granularity: "hours"
       }
    }
)

5.I import my temperature file " temperature.json " (which are the data sent by my sensors) i have to shorten the file for the example:
[{
  "timestamp": {
    "$date": "2023-04-24T14:47:33.489Z"
  },
  "metadata": {
    "DevEUI": "20635F0221000014"
  },
  "_id": {
    "$oid": "64469684410ecc8270e76e38"
  },
  "temperature": 21.8
},{
  "timestamp": {
    "$date": "2023-04-24T14:48:47.850Z"
  },
  "metadata": {
    "DevEUI": "20635F01080008E4"
  },
  "_id": {
    "$oid": "644696d0410ecc8270e76e39"
  },
  "temperature": 29.4
},{
  "timestamp": {
    "$date": "2023-04-24T14:48:56.459Z"
  },
  "metadata": {
    "DevEUI": "20635F01080010D6"
  },
  "_id": {
    "$oid": "644696d7410ecc8270e76e3a"
  },
  "temperature": 29.9
}]

6.With mongogsh this request works
db.weather.aggregate(
	[
	    {
	        "$project": {
	            "name": "$metadata.DevEUI",
	            "value": "$temperature",
	            "ts": "$timestamp",
	            "_id": 0
	        }
	    }
	]
)

On grafana I add my "data source" with
http://localhost:3333
mongodb://localhost:27017/
mydatabase

8.When I try with the same query in grafana I get the error "Query error
Gateway Timeout "

Ok thanks, I'll try to look into it in the weekend

@UnCanard14 I understood the problem. You should specify mongodb://mongodb:27017 as MongoDB URL . This is due to the fact that you should use the internal docker name of the container for communication between the Grafana container and the MongoDB container.

Ah yes indeed that was it!!!
Thanks a lot for your help !

@UnCanard14 I updated the image with the plugin you suggested, everything seems to work fine.
The only difference (I think it depends on the Grafana version) is that you should do your projections like this:
db.measurements.aggregate(
[
    {
        "$project": {
            "yourLabel": "$temperature",
            "time": "$timestamp",
            "_id": 0
        }
    }
]
)

Let me know if the new image works for you.

One last thing by chance, did you find the new "name" field to put to have a curve for each "$metadata.DevEUI" ?

I tried to search for something but I haven't tried anything yet.
I think the solution could be to have a dynamic value instead of yourLabel as field name in the output, so a projection with a dynamic field name.
I found this MongoDB JIRA issue  in which a guy from the team shows a projection in which the values became the field names in the output.
Maybe you can try something like that.

@UnCanard14 I got how to make it work. I used this aggretation:
db.weather.aggregate([
  {
    $replaceWith: {
      $mergeObjects: [
        {
          $arrayToObject: [
            [
              {
                k: "$metadata.DevEUI",
                v: "$temperature",
              },
            ],
          ],
        },
        {
          time: "$timestamp",
        },
      ],
    },
  },
])

The output from MongoDB will be something like this:
[
  {
    "20635F0221000014": 21.8,
    "time": {
      "$date": "2023-04-24T14:47:33.489Z"
    }
  },
  {
    "20635F01080008E4": 29.4,
    "time": {
      "$date": "2023-04-24T14:48:47.850Z"
    }
  },
  {
    "20635F01080010D6": 29.9,
    "time": {
      "$date": "2023-04-24T14:48:56.459Z"
    }
  }
]

Then in the panel menu I selected table instead of timeserie to have multiple labels instead of one:

and as you can see in the top graph I have 3 points.
Hope this can help you! I'll close this for now.

Ok it's not bad but the points were not connected by lines. I found this that works with the old mongo query :
https://community.grafana.com/t/how-to-plot-multiple-time-series-with-the-same-time-on-the-same-graph/28112/15

db.weather.aggregate(
							[
							    {
							        "$project": {
							            "name": "$metadata.DevEUI",
							            "value": "$temperature",
							            "ts": "$timestamp",
							            "_id": 0
							        }
							    }
							]
						)

Thank you very much for your help ! 🙂

Ok it's not bad but the points were not connected by lines. I found this that works with the old mongo query : https://community.grafana.com/t/how-to-plot-multiple-time-series-with-the-same-time-on-the-same-graph/28112/15
db.weather.aggregate(
  [
    {
      "$project": {
        "name": "$metadata.DevEUI",
        "value": "$temperature",
        "ts": "$timestamp",
        "_id": 0
      }
    }
  ]
)

Thank you very much for your help ! 🙂

The last version does not allow query like this, how can achieve this result in the new version. I already use this:
db.weather.aggregate([   {     $replaceWith: {       $mergeObjects: [         {           $arrayToObject: [             [               {                 k: "$metadata.DevEUI",                 v: "$temperature",               },             ],           ],         },         {           time: "$timestamp",         },       ],     },   }, ])
But, only point are showed.

Ok it's not bad but the points were not connected by lines. I found this that works with the old mongo query : https://community.grafana.com/t/how-to-plot-multiple-time-series-with-the-same-time-on-the-same-graph/28112/15
db.weather.aggregate(
  [
    {
      "$project": {
        "name": "$metadata.DevEUI",
        "value": "$temperature",
        "ts": "$timestamp",
        "_id": 0
      }
    }
  ]
)

Thank you very much for your help ! 🙂

The last version does not allow query like this, how can achieve this result in the new version. I already use this: db.weather.aggregate([ { $replaceWith: { $mergeObjects: [ { $arrayToObject: [ [ { k: "$metadata.DevEUI", v: "$temperature", }, ], ], }, { time: "$timestamp", }, ], }, }, ])
But, only point are showed.

Do you get a specific error when doing the query like @UnCanard14 suggested?
By the way as said in the readme, the MongoDB plugin is not developed by me, you can also try to reach out the developers in their repo: https://github.com/SiemaApplications/mongodb-grafana

Hi @jealcuna I have the last version of ajeje93/grafana-mongodb (updated the Feb 1, 2024 at 3:34 am) and my request is still working and I've got the dots connected.


Complete example in documentation?

Hello, is there anything in the documentation that gives a complete example from start to finish of how to do something? Everything seems to be in pieces missing crucial context for getting the examples given to actually work.

I'm trying for some days now to get a connection and support is more or less off. To keep that demand actual, I comment again.
As in the first post: no linking examples. Errors over errors, regardless of what snippet of code from the docs one tries.
Due to namespaces and frameworks, its doodling. Might be a straight complete php (and other) version could help and integration to whatever environment can be handled individually?
Thanks @paulomarg for the links.


pip install broken in latest version

[X] I am using the latest SDK version
[X] This API is compatible with my vCenter version (You can get the info from 'vcenter_version' in each sample)
[X] I have searched existing issues and Troubleshooting wiki

Environment

sdk package version:
latest, installation is failing

python version:
pip --version
pip 20.2.4 from /opt/custom-venvs/ansible-capture52/lib/python3.6/site-packages/pip (python 3.6)
python --version
Python 3.6.8

vSphere version:
N/A

Operating System/Shell (used to run SDK-based apps):
Linux CentOS 7

Steps or code snippet to reproduce
Prepare a virtualenv on a clean container/machine (here on CentOS):
$ yum install -y python-setuptools epel-release openssl openssl-devel gcc python-devel python-virtualenv python36 python36-devel
$ virtualenv -p python3.6 /opt/custom-venvs/fooenv
$ source /opt/custom-venvs/fooenv/bin/activate
(fooenv) $ /opt/custom-venvs/fooenv/bin/pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --trusted-host github.com -U git+https://github.com/vmware/vsphere-automation-sdk-python.git --use-feature=2020-resolver

## Actual behavior
Collecting git+https://github.com/vmware/vsphere-automation-sdk-python.git
  Cloning https://github.com/vmware/vsphere-automation-sdk-python.git to /tmp/pip-req-build-p2_isynp
Ignoring suds: markers 'python_version < "3"' don't match your environment
Collecting lxml>=4.3.0
  Downloading lxml-4.6.1-cp36-cp36m-manylinux1_x86_64.whl (5.5 MB)
     |################################| 5.5 MB 372 kB/s
Collecting suds-jurko
  Downloading suds-jurko-0.6.zip (255 kB)
     |################################| 255 kB 4.7 MB/s
Collecting pyVmomi>=6.7
  Downloading pyvmomi-7.0.1.tar.gz (584 kB)
     |################################| 584 kB 3.9 MB/s
Processing ./tmp/pip-req-build-p2_isynp/lib/vapi-runtime/vapi_runtime-2.19.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in /opt/custom-venvs/fooenv/lib/python3.6/site-packages (from vapi-runtime@ file://localhost//tmp/pip-req-build-p2_isynp/lib/vapi-runtime/vapi_runtime-2.19.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.41.0) (28.8.0)
Processing ./tmp/pip-req-build-p2_isynp/lib/vapi-client-bindings/vapi_client_bindings-3.5.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in /opt/custom-venvs/fooenv/lib/python3.6/site-packages (from vapi-runtime@ file://localhost//tmp/pip-req-build-p2_isynp/lib/vapi-runtime/vapi_runtime-2.19.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.41.0) (28.8.0)
Processing ./tmp/pip-req-build-p2_isynp/lib/vapi-common-client/vapi_common_client-2.19.0-py2.py3-none-any.whl
Processing ./tmp/pip-req-build-p2_isynp/lib/vmc-client-bindings/vmc_client_bindings-1.30.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in /opt/custom-venvs/fooenv/lib/python3.6/site-packages (from vapi-runtime@ file://localhost//tmp/pip-req-build-p2_isynp/lib/vapi-runtime/vapi_runtime-2.19.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.41.0) (28.8.0)
Processing ./tmp/pip-req-build-p2_isynp/lib/nsx-python-sdk/nsx_python_sdk-<IP_ADDRESS>.0.16837625-py2.py3-none-any.whl
Processing ./tmp/pip-req-build-p2_isynp/lib/nsx-policy-python-sdk/nsx_policy_python_sdk-<IP_ADDRESS>.0.16837625-py2.py3-none-any.whl
Processing ./tmp/pip-req-build-p2_isynp/lib/nsx-vmc-policy-python-sdk/nsx_vmc_policy_python_sdk-<IP_ADDRESS>.0.16837625-py2.py3-none-any.whl
Processing ./tmp/pip-req-build-p2_isynp/lib/nsx-vmc-aws-integration-python-sdk/nsx_vmc_aws_integration_python_sdk-<IP_ADDRESS>.0.16837625-py2.py3-none-any.whl
Processing ./tmp/pip-req-build-p2_isynp/lib/vmc-draas-client-bindings/vmc_draas_client_bindings-1.14.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in /opt/custom-venvs/fooenv/lib/python3.6/site-packages (from vapi-runtime@ file://localhost//tmp/pip-req-build-p2_isynp/lib/vapi-runtime/vapi_runtime-2.19.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.41.0) (28.8.0)
Collecting requests>=2.3.0
  Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)
     |################################| 61 kB 324 kB/s
Collecting six>=1.7.3
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting pyOpenSSL>=18.0.0
  Downloading pyOpenSSL-19.1.0-py2.py3-none-any.whl (53 kB)
     |################################| 53 kB 1.3 MB/s
Collecting idna<3,>=2.5
  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
     |################################| 58 kB 2.2 MB/s
Collecting certifi>=2017.4.17
  Downloading certifi-2020.11.8-py2.py3-none-any.whl (155 kB)
     |################################| 155 kB 5.7 MB/s
Collecting chardet<4,>=3.0.2
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
     |################################| 133 kB 4.9 MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Downloading urllib3-1.25.11-py2.py3-none-any.whl (127 kB)
     |################################| 127 kB 4.4 MB/s
Collecting cryptography>=2.8
  Downloading cryptography-3.2.1-cp35-abi3-manylinux2010_x86_64.whl (2.6 MB)
     |################################| 2.6 MB 3.4 MB/s
Collecting cffi!=1.11.3,>=1.8
  Downloading cffi-1.14.3-cp36-cp36m-manylinux1_x86_64.whl (400 kB)
     |################################| 400 kB 4.2 MB/s
Collecting pycparser
  Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
     |################################| 112 kB 3.4 MB/s
Building wheels for collected packages: vSphere-Automation-SDK, suds-jurko, pyVmomi
  Building wheel for vSphere-Automation-SDK (setup.py) ... done
  Created wheel for vSphere-Automation-SDK: filename=vSphere_Automation_SDK-1.41.0-py3-none-any.whl size=2228 sha256=6d064fe3f7c417fb2243ba711a7c2887ac963a4db73f4447a28875443b8b732f
  Stored in directory: /tmp/pip-ephem-wheel-cache-0mt6b76l/wheels/8e/ff/54/645ff58ea9a0015f537c215d38ba69087bf8da12df04cf0c01
  Building wheel for suds-jurko (setup.py) ... done
  Created wheel for suds-jurko: filename=suds_jurko-0.6-py3-none-any.whl size=453007 sha256=837b435a768abf9fe07df5bc3c177d9f3c50fdda588f2be31b20e870ef4522ae
  Stored in directory: /root/.cache/pip/wheels/03/9f/e2/722c1275720fde3df9c7a87442f13c29067e488123b9887ed9
  Building wheel for pyVmomi (setup.py) ... done
  Created wheel for pyVmomi: filename=pyvmomi-7.0.1-py2.py3-none-any.whl size=250583 sha256=44b71ffc71b291d2e53aa29c1ec986386f75a8f6d6e8ad34a56e36992e1a7824
  Stored in directory: /root/.cache/pip/wheels/bc/33/4b/a1f4dce3e98656460f03aaa0865c7e34f8a8e87efa9105b892
Successfully built vSphere-Automation-SDK suds-jurko pyVmomi
Installing collected packages: pycparser, six, cffi, urllib3, idna, cryptography, chardet, certifi, requests, pyOpenSSL, vapi-runtime, vapi-common-client, vmc-draas-client-bindings, vmc-client-bindings, vapi-client-bindings, suds-jurko, pyVmomi, nsx-vmc-policy-python-sdk, nsx-vmc-aws-integration-python-sdk, nsx-python-sdk, nsx-policy-python-sdk, lxml, vSphere-Automation-SDK
**ERROR: vsphere-automation-sdk 1.41.0 requires suds, which is not installed.
Successfully installed certifi-2020.11.8 cffi-1.14.3 chardet-3.0.4 cryptography-3.2.1 idna-2.10 lxml-4.6.1 nsx-policy-python-sdk-<IP_ADDRESS>.0.16837625 nsx-python-sdk-<IP_ADDRESS>.0.16837625 nsx-vmc-aws-integration-python-sdk-<IP_ADDRESS>.0.16837625 nsx-vmc-policy-python-sdk-<IP_ADDRESS>.0.16837625 pyOpenSSL-19.1.0 pyVmomi-7.0.1 pycparser-2.20 requests-2.24.0 six-1.15.0 suds-jurko-0.6 urllib3-1.25.11 vSphere-Automation-SDK-1.41.0 vapi-client-bindings-3.5.0 vapi-common-client-2.19.0 vapi-runtime-2.19.0 vmc-client-bindings-1.30.0 vmc-draas-client-bindings-1.14.0**

Expected behavior
pip shouldn't even try to install "suds" because my Python version is > to 3.0
Despite the ERROR vSphere-Automation-SDK is installed, but this ERROR is failing one of our CI process.
Thank you

If I run it twice, the second run is without error.

@nbttmbrg
Can you try the installation again in a clean virtual environment?
Also, if the issue persists, can you show the output of pip list after the first run?

Hello,
Same symptom, as expected pip list shows the SDK as installed, but this ERROR is still crashing my CI process :
Package                            Version

certifi                            2020.11.8
cffi                               1.14.3
chardet                            3.0.4
cryptography                       3.2.1
idna                               2.10
lxml                               4.6.1
nsx-policy-python-sdk              <IP_ADDRESS>.0.16837625
nsx-python-sdk                     <IP_ADDRESS>.0.16837625
nsx-vmc-aws-integration-python-sdk <IP_ADDRESS>.0.16837625
nsx-vmc-policy-python-sdk          <IP_ADDRESS>.0.16837625
pip                                20.2.4
pycparser                          2.20
pyOpenSSL                          19.1.0
pyvmomi                            7.0.1
requests                           2.24.0
setuptools                         28.8.0
six                                1.15.0
suds-jurko                         0.6
urllib3                            1.25.11
vapi-client-bindings               3.5.0
vapi-common-client                 2.19.0
vapi-runtime                       2.19.0
vmc-client-bindings                1.30.0
vmc-draas-client-bindings          1.14.0
vSphere-Automation-SDK             1.41.0
wheel                              0.29.0

@nbttmbrg
Were you able to resolve this?

No, we're doing things differently now. Thanks


Added 5 test cases for fnv1a with offset and length.

Changes
Added 6 Unit tests to JdkHashCalculatorDigestTest for fnv1a with offset and length.

fnv1a32HashDigestWithOffsetAndLength
fnv1a64HashDigestWithOffsetAndLength
fnv1a128HashDigestWithOffsetAndLength
fnv1a256HashDigestWithOffsetAndLength
fnv1a512HashDigestWithOffsetAndLength
fnv1a1024HashDigestWithOffsetAndLength

Comments
All tests are running without any breakdown, and code coverage for fnv1a increased to 100% from 65%.

I don't have time to support the application, so the edits are unfortunately not relevant.


tracetools_analysis: 3.0.0-2 in 'rolling/distribution.yaml' [bloom]

Increasing version of package(s) in repository tracetools_analysis to 3.0.0-2:

upstream repository: https://gitlab.com/ros-tracing/tracetools_analysis.git
release repository: https://gitlab.com/ros-tracing/tracetools_analysis-release.git
distro file: rolling/distribution.yaml
bloom version: 0.10.7
previous version for package: 2.0.3-3

ros2trace_analysis
* Add 'process --convert-only' option
* Deprecate 'convert' verb since it is just an implementation detail
* Contributors: Christophe Bedard

tracetools_analysis
* Update context_fields option name in profile example launch file
* Fix both rcl and rmw subscriptions being added to the rcl dataframe
* Support rmw pub/sub init and take instrumentation
* Support publishing instrumentation
* Change 'input_path' arg help message wording
* Add 'process --convert-only' option
* Deprecate 'convert' verb since it is just an implementation detail
* Simplify jupyter notebooks and add way to use Debian packages
* Contributors: Christophe Bedard

Note: I manually switched the doc & source versions to master and the release repo to the one from the ros2-gbp org. Seems like editing the track when releasing doesn't automatically update the info here.

Holding for Rolling sync.


[Ballista] Add ballista plugin manager and UDF plugin

A sub pr of https://github.com/apache/arrow-datafusion/pull/1881
Because https://github.com/apache/arrow-datafusion/pull/1881 It includes plugin, plugin load and serialization and deserialization.  Then, the serialization and deserialization communities of LogicalPlan and PhysicalPlan  have been changing the implementation. So, I push this pr, This PR only includes plugin, plugin loader, Not includes serialization and deserialization for UDF/UDAF.

Currently I believe the "plugin_dir is a local dir, I think it is better to support distributed file systems(HDFS/Object store) so that both the Executors and Scheduler can load the plugin files from a single place.

Good Idea, I will add this feature in the future.

@thinkharderdev

Currently I believe the "plugin_dir is a local dir, I think it is better to support distributed file systems(HDFS/Object store) so that both the Executors and Scheduler can load the plugin files from a single place.

Alternatively, users could package up dependencies in a Docker container and deploy that way. This could be more efficient in the case where multiple executors are running on the same node since the image will be downloaded once and cached. It also provides better version control - all executors will be guaranteed to be running the same code (assume a specific version of the image is deployed).
I would be interested to hear more about the use case of loading dependencies from object store though. What would be the motivation of this approach?

Currently I believe the "plugin_dir is a local dir, I think it is better to support distributed file systems(HDFS/Object store) so that both the Executors and Scheduler can load the plugin files from a single place.

Alternatively, users could package up dependencies in a Docker container and deploy that way. This could be more efficient in the case where multiple executors are running on the same node since the image will be downloaded once and cached. It also provides better version control - all executors will be guaranteed to be running the same code (assume a specific version of the image is deployed).
I would be interested to hear more about the use case of loading dependencies from object store though. What would be the motivation of this approach?

maybe in the future, we can support create  custom udf&udaf like hive.
CREATE FUNCTION myfunc AS 'myclass' USING JAR 'hdfs:///path/to/jar';

Who can review and merge this pr? We need use this feature in our ballista cluster.

@liukun4515 @yjshen

I think that since @thinkharderdev  has reviewed this and we have talked about it for a while, I will merge the code in and we can iterate on it as needed.
Thank you for your patience and perseverance @gaojun2048

@andygrove, if the udf/udaf libraries can only be loaded from local disk, we need to build a new image and redeploy the whole cluster when there's any changes for the libraries. Otherwise, if the udf/udaf libraries can be loaded from a shared remote storage, the image does not depend on the libraries and it will be easier to handle the changes.

Thank you all. I will iterate on it lately.


Bump the identity framework version.

$subject

Skipping the PR builder since PR builders were run for the following PRs related to the version bump.

https://github.com/wso2/carbon-identity-framework/pull/6040
https://github.com/wso2/carbon-identity-framework/pull/6039


Issue with multiline fixed-width blocks

MarkPad renders the following:
    ```
    line 1
    line 2
    ```

in a single line.

MarkPad renders the following:
```
line 1
line 2
```

in a single line.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread
2016年7月21日 20:31於 "Timur Kristóf"<EMAIL_ADDRESS>
MarkPad renders the following:
```
line 1
line 2
```

in a single line.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Code52/DownmarkerWPF/issues/468, or mute the thread
https://github.com/notifications/unsubscribe-auth/ATFJ36dTYA3C-zJHdP4y9CBB3_MWXASYks5qX2a-gaJpZM4JRvnM
.

I would expect it to render that in multiple lines, in the same way as it works on GitHub and other places. :)


Package Regen

Part of #19

Unfortunately we need to use a fork of gomod2nix until this PR lands.


fix: reduce spammy logs for pings

We call Ping over grpc at a frequent rate when waiting for services to be ready, with each grpc failure being automatically logged (debug).
Also, soon language plugins will be using grpc and so the amount of ping logs at start up will roughly double.
This PR tries to reduce the noise.
Changes:

Ping logs:

Constant ping call failures are silenced (noop log sync passed into the call)

Refactor: moved more logic into rpc.Ping() so that each caller doesn't need to write extra code, including

deadline handling
returning the relevant error (the latest ping error if deadline reached, otherwise the context error)

People might prefer the noise... will wait for review on this one.


Problem with yarn create eth-app my-eth-app

Hello Paul,
I hope you are doing well.))
I want to thank you for being a part of the team of such a great service, useDApp.
I'm working on my fintech dApp, and I want to use your service to run my project.
But I've encountered a problem right at the beginning.
The installation crashes after the command 'yarn create eth-app my-eth-app'.
I've tried to resolve it in different ways and also used ChatGPT for help.
But the problem still persists.
I have added a detailed explanation of the problem into the Github gist.

would be grateful if you could take the time to look through it and give advice about the reason for the mistake.
Thank you for your attention and time.
Regards,
Dima

by the way my yarn version is 1.22.19

Fantastic, thanks @maxhiker!


Add CF update/delete methods from Lambda

Fixes #2317

Coverage decreased (-0.09%) to 93.668% when pulling 791c25b51c5b68b2374a3d45170e1e0bd00d7c21 on bblommers:feature/2317 into 502957f1f9560cb6dff75271e6812498f4ff7bba on spulec:master.


chore: replace explicit subtractions with nots

Description
Problem*
Resolves
Summary*
Small PR to replace usage of (1-x) instead of not(x) for boolean x. This improves readability of the codegen imo.
Additional Context
Documentation*
Check one:

[x] No documentation needed.
[ ] Documentation included in this PR.
[ ] [Exceptional Case] Documentation to be submitted in a separate PR.

PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

sha2_byte	+28,332 ❌	+71.38%	+118,018 ❌	+76.92%

what

Ok making this draft as I want to investigate but this isn't high prio atm.


Recorder: add clockinfo

This introduces a clockinfo for the recorder, to allow quick toggling of recording state.
Currently the pause icon is white (for a dark background) - I use drawImage({ ..., palette }) to alter this based on the g.theme, but I'd like the icon to highlight when the clock info is selected, like the step icon.
I can't see how the step icon does it though - it's a fixed image, which apps then draw just by passing to g.drawImage() - does it work by something like the icon is 1-bit and so drawImage uses the background or foreground colour as its palette?

Great idea, thanks!
Does Recorder really need its own category though given it only has one icon? Maybe it's better just as a member of Bangle.
Also, maybe if there is no widget (eg the clock face isn't loading widgets) we should just not create a clockinfo at all? I think return { name: "Bangle", items: [] } should do it. Currently if there is no widget it'll return Paused but I think if it's tapped on, it'll cause an exception. The whole recorder widget isn't great, a library would be better - but it's a bit of a hangover from how things used to be done.

I'd like the icon to highlight when the clock info is selected, like the step icon.

You need to make sure you create a 1bpp icon, ideally transparent, with white as the color of the icon itself. I think most clocks expect 24x24px too - that's what we do for other clockinfos and it should work fine... If there's any trouble post the image up and I can do it here

Does Recorder really need its own category though given it only has one icon? Maybe it's better just as a member of Bangle.
Also, maybe if there is no widget (eg the clock face isn't loading widgets) we should just not create a clockinfo at all? I think return { name: "Bangle", items: [] } should do it. Currently if there is no widget it'll return Paused but I think if it's tapped on, it'll cause an exception. The whole recorder widget isn't great, a library would be better - but it's a bit of a hangover from how things used to be done.

Ah yes, it's much nicer like that, and likewise with handling a missing widget - thanks!

a 1bpp icon, ideally transparent, with white as the color of the icon itself. I think most clocks expect 24x24px too - that's what we do for other clockinfos and it should work fine... If there's any trouble post the image up and I can do it here

Thanks - I believe I have it sorted but can't test on my watch - unable to write and I'm holding off resetting it in case you'd like to debug into the FW addr fail error

Thanks - let's wait until you can test nicely then - thanks for the help debugging storage

The 1-bit image did the trick, thanks again! I've made a small tweak to clock_info too, which helped debug a load issue (WIDGETS not being defined), happy to move to another PR if desired.

There's one problem: if a clock loads clock_info before it does Bangle.loadWidgets(), the user will never see the recorder clock info because WIDGETS doesn't exist at that point.
Out of the clocks that use both clock_info and widgets, only lcdclock loads widgets first, so all the other clocks won't see the recorder widget.

Clocks using `clock_info` & widgets

grep -l clock_info apps/*/*.js | xargs grep -El 'clock_info|Bangle\.loadWidgets'

To fix this I think would be difficult, we'd have to make it so clocks load clock_info after any widget loads, or somehow make the clock_info menu dynamic. What do you think?

Sorted it - we always show the recorder clkinfo and if the widget's not present, the clock hasn't run Bangle.loadWidgets() but we just let the user scroll to another clkinfo.

Looks great, thanks! Is it worth putting in a PR for LCD clock to change it?


comprehensive code style cleanups

Codacy had downgraded ctapipe to grade "D", so in an attempt to fix a lot of simple style problems:

ran PyCharm "reformat code"  project-wide, which re-optimized imports and cleaned simple style issues
manually edited a few files that were not well-formatted by pycharm
ran black or yapf on a few files that needed more harsh reformatting
removed some redundant files after that was done

turns out PyCharm makes a lot of mistakes in indentation of continuation lines that pep8 doesn't like...

I think I'll drop this PR for now, and try to redo it later - it causes too many line changes


support CMake Script output format

support CMake script output format.

I'll do my part (hope this helps).
command in Windows 10:

sh.exe ..\autorevision.tag.sh -t hpp > bla.txt

result:
/* Generated by autorevision - do not hand-hack! */

#ifndef ABC_AUTOREVISION_H
#define ABC_AUTOREVISION_H

#include <string>

namespace abc
{
	const std::string VCS_TYPE		= "git";
	const std::string VCS_BASENAME	= "abc";
	const std::string VCS_UUID		= "371bfaaaa3815fdde4fd792d400ab74211c55940";
	const int VCS_NUM				= 825;
	const std::string VCS_DATE		= "2016-10-23T00:16:31Z";
	const std::string VCS_BRANCH	= "master";
	const std::string VCS_TAG		= "2016_09_27";
	const int VCS_TICK				= 72;
	const std::string VCS_EXTRA		= "";

	const std::string VCS_ACTION_STAMP	=<EMAIL_ADDRESS>	const std::string VCS_FULL_HASH		= "8d0f6aff9d020503d36ae93331ae047734a6d019";
	const std::string VCS_SHORT_HASH	= "8d0f6af";

	const int VCS_WC_MODIFIED			= 1;
}

#endif

/* end */

@luqiuwen I sent you a pull request that fixes some of the blocking issues; hopefully you can review them soon enough that I can pull this in in time for the next release in a few days.

support CMake script output format with examples, docs and etc.


Help on Windowns when dowloading from pip

Hi, how do I register uv to the command line when doing a pip install of uv, the reason I want that is because uv is not findable by the venv's I am using because it is only installed on my base python

Maybe you want pip install --system uv or pipx install uv? I'm not sure how Windows handles the base Python's bin directory. I'd really recommend just not installing from pip.

I can't not install from pip because my company only allow installations from pip in this case...

Just to be clear uv does work and is installed on system but I can`t from a venv use python-m uv...

Oh why are you using python-m uv instead of just uv? You could provide the path to your system interpreter... i.e., before activating your environment which python then \path\to\python -m uv. I imagine you can create an alias for that?

I trid to add the uv path to system variables, but that didn't work, but honestly I don't know enough windows to create an alias that when I would run uv it would point to that

I think you'll need to just look up how to add a path to your system — there's not much we can do for you here. This is why we have a separate installer that handles these things.

when I add to path which uv file should I use?

I think I can solve this be using temp names and aliases and doskey, thanks for the ideas!


delete deadletter and resend delete from deadletterQueue

Hello!
I was looking for a long time for a servicebus explorer for azure that would work in linux. And after testing many I found this and i absolutely love it.
I have been using the windows version and that was the only reason i could not change to work in linux because i needed that servicebusexplorer.
But there is something I am not able to do in CrossExplorer and it is the ability to remove a message from a deadletter queue or when i want to resend a dead letter there is not option to remove the deadletter from the deadletterqueue
This will result in two deadletters messages with the same guid id but different times. and i cant delete one of them.
Please help.
I really want to stop using windows and move to windows. And thanks for this app it really good

Hello @andresparrab!
Glad to hear that. I got the same issue but with Mac - always needed Windows just to work with Azure Service Bus.
Regarding your issue. I guess you have 2 options:

Use the resend deadletters option. This will just move every deadletters to active queue:

Use the messages tab, select Dead letter and instead of Peek lock, use the Receive and delete option. This will immediately remove the newest messages (top, by count) and you can view then and requeue one by one.

If that doesn't suits you please describe in details how it was done in Service Bus Explorer and I guess and can add it.

Hello thank you for your answer.
so if i have like say 100 deadletters and i choose Receive and delete, will it remove the letters from the deadletter queue ?
all 100 of them ?and i will have them in my local computer?
and if i send only back 1 or dead letters back to the subscription what will happen to the rest 98? will they be deleted from the queue for ever?
I have a typical example here that we usually work with with the windows service explorer.

We see that we have a bunch of deadletters in a subscription or topic lets say 100 to keep it simple.
i choose to see all 100
pick the first of the to read and find out the problem.
then i fix the problem and resend. and it will remove from the deadletter and send to message, if everything goes well then it will be complete and disappear
sometimes we want to modified the payload and resend it. without make a copy, just move the updated deadletter to messages to then be processed
usually i make anew subscription with a filter to just "catch" this letter so i can work with , in service buss explorer i can choose to send to just a specific subscribtion: like myTestOfdeadletterSubscribtion. so it will only be sent there so i can work with it.
sometime we see that there is nothing we can do so I want to click on the deadletter and just remove it.
Is this possible to do in crossExplorer? because if somehow i can achieve that , good buy windows for ever :)

Thank you in advance and i hope i not bother.

Hello!
sorry to write after so long time, i had not  schedule queue job so i could not test some thing.
Thank you for explaining all steps.
But in step
7.sometime we see that there is nothing we can do so I want to click on the deadletter and just remove it.
answer:
7: The feature to receive and delete message by sequence number was dropped in the https://github.com/Azure/azure-sdk-for-net/issues/15097 so that's not possible. You can just take the newest - and that's in my opinion how proper queueing mechanism should work. In order to remove all you can use the purge function:
I quiete did not understand that one.. so the possibility to just rigth click and delete is not possible like this?

Because sometime lets say i retrieve 100 in peak mode and 10 of tghem are the same guid(same dead letter that some how come again and aging. so I want just to remove 9 of the copies from the  100 i retrieved. and just keep the one of them to work with. like you see in the screenshot
Also another thing if i retrieve 100 of them and just wan to send 1 to make sure it went well .then work with next and so on without send all 100 all the time? like the screeshot below:

I will double check this in the upcoming week.

In the version 0.4.1 I've added the delete button for peeked messages. It's sadly limited to only the first 250 messages (api limitation). But anyway it's there:

Let me know if this help in your case.


Request Add extension to non safari browsers

As most of users, I use multiple OS and would be interesting to have my redirects synced. I would consider buying the app in that case. Right now I'm using libreredirect, but having multiple apps for one simple purpose, is a waste of attention for my life.

@nyakojiru Thanks for your request.
Currently, the main part of this extension is implemented in native iOS/macOS code, which makes it quite challenging for me to support multiple OS. But I understand the demand, so I'll keep this issue open.

Maybe I can use SwiftWasm to port the native code. But on top of that, I wonder if supporting other browsers is actually in high demand, considering the great Redirector extension exists.
On the other hand, Google announced that Chrome will phase out manifest V2, which means Redirector will no longer work. I don't know if Chrome will actually disable Redirector or not. Maybe they will allow users to keep using it somehow. I'll consider starting to port the extensions to other browsers once the time comes.


Fixes #9 - Update host declaration on host var.

Looks good to me.  Make the clabot happy and I'll merge.

Thanks @tompscanlan :)


Camel 13667

As discussed in https://issues.apache.org/jira/browse/CAMEL-13667, I created a pull request (for camel-2.23.x).

Merging stuff not on master as first step, or at least on camel-2.x, can create problem, like forgetting to push the fix on the newer branches

I think as 2.23.x branch and 2.x branch are very identical, we can then use this PR for all the 2.x branches.
But for master then camel-core is now in core/camel-core. And some of those util/helper classes are now in core/camel-util - so for that we would need a new PR for master

Fine for me. I can merge it tomorrow if we all agree

I have created 2 separate PRs for 2.x & master:
2.x: https://github.com/apache/camel/pull/2989
master: https://github.com/apache/camel/pull/2990

Merged on 2.23.x, thanks


Only sleep if no new results downloaded

This PR changes the download_results loop to only sleep for retry_seconds if no records are downloaded in the loop.
What ends up happening is that half of the batches finish, the program takes a minute or so to download them, and then the program sleeps for a number of seconds even though other batches are probably ready to download.
If the batches are really small, then this could create a situation where we get the batch statuses a second or so later. Worst case, this would waste an API call every once in a while. However, with manual_chunking and a decent batch size, this would rarely happen.
Also, this makes the TimeoutError safer because it wont risk throwing an error if we are in the middle of downloading a ton of data. If a batch doesn't finish after an hour, something is probably wrong.

oops, forgot to rebase


Container continues to run silently when cos-alerter fails

Issue
Fixes https://github.com/canonical/cos-alerter/issues/38
Solution
If no configuration file is passed, the code now catches a FileNotFoundError and exits with a non-zero exit status.
Testing Instructions

Run the following command:
docker run -p 8080:8080 ghcr.io/canonical/cos-alerter:latest
Verify that cos-alerter fails to start and observe the following output:

2024-03-07T17:09:29.587Z [pebble] Started daemon.
2024-03-07T17:09:29.601Z [pebble] POST /v1/services 7.02659ms 202
2024-03-07T17:09:29.602Z [pebble] Started default services with change 1.
2024-03-07T17:09:29.611Z [pebble] Service "cos-alerter" starting: /usr/bin/cos-alerter
2024-03-07T17:09:29.915Z [cos-alerter] Config file not found. Exiting...
2024-03-07T17:09:29.960Z [pebble] [change 1 "Start service \"cos-alerter\"" task] failed: cannot start service: exited quickly with code 1

+\.\d+\.\d+"' rockcraft.yaml | grep -P -o '\d+\.\d+\.\d+')

I think it's safe to remove the line entirely since this check is already implemented in pkg_version?

CI's failing because it's checking for the line you removed in rockcraft.yaml. Before merging, can you first fix it (pull-request.yaml) by replacing the line:
rock_pkg_version=$(grep -P -o 'cos-alerter==\d+\.\d+\.\d+' rockcraft.yaml | grep -P -o '\d+\.\d+\.\d+')

with
rock_pkg_version=$(grep -P -o -m 1 'version: "\d+\.\d+\.\d+"' rockcraft.yaml | grep -P -o '\d+\.\d+\.\d+')

(note: it's likely gonna fail on this PR again, but at least the next ones will be okay)

I think it's safe to remove the line entirely since this check is already implemented in pkg_version?

True! Approving :)


Adding margin totally breaks the page

Describe the bug
I'm using the demo repository, changing the margin parameter from 0 to 10, for example, breaks the PDF generation and the resulting PDF has three blank pages.
To Reproduce
Steps to reproduce the behavior:

Clone demo repo https://github.com/kempsteven/vue-html2pdf-demo
Install npm packages and launch the demo, the PDF is generated correctly
Change from margin: 0 to margin: 10 in App.vue line 59
Try to generate the PDF
See error, the three pages are totally white

Screenshots
If applicable, add screenshots to help explain your problem.

Package Version
e.g. 1.8.0

Helllo, I think its best to not use the margin, and just adjust the spacing using css,
I'll see if I have time to see the issue for myself

Helllo, I think its best to not use the margin, and just adjust the spacing using css,
I'll see if I have time to see the issue for myself


Fix to only allow multiple workers assume same worker identity in k8s env

What changes are proposed in this pull request?
Put back the restriction of reuse worker identity for non-k8s env deployment.
Why are the changes needed?
Worker identity gets reused by wrong deployment behaviors such as copy conf/ over for new worker setup, as opposed to k8s deployment is thru operator / automation, bare metal deployment has no way of prevention, thus putting back the restriction for non-k8s deployment.
Does this PR introduce any user facing changes?
No.

alluxio-bot, check this please

alluxio-bot, check this please

alluxio-bot, merge this please.


feat: add basic ACL implementation

Signed-off-by: Yixiang Zhao<EMAIL_ADDRESS>Fix: https://github.com/jcasbin/kafka-casbin/issues/1
I have implemented the ACL authorizer for Kafka with Casbin basically. The UML diagram is as below. The basic method, start and authorize, has been done in this PR.

@abingcbc plz review

lgtm


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-23-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1039

Questions ?
Please refer to the Backport tool documentation


Add travis ci

closes #6

Sounds good, but some of the tests were failing due to being out of date.


Rendering scripts?

Dear All, thank you for your excellent contribution to the community. I was wondering about your very nice visualizations of the 3D wireframes: are there scripts you could share that automate the shading/ray tracing that you're using? Is this blender?
Thanks,
Tim

Hi, many thanks for your interest in our work. I am very close to finishing a clean version of the rendering scripts that will be soon released as a standalone python package. I will keep you posted here.
Regarding the technical part of the question: Yes, this is Blender and its Cycles rendering engine with HDR lighting and principled BSDF shaders. When making the rendering scripts, I got heavily inspired by the following repo: https://github.com/yuki-koyama/blender-cli-rendering.

Wonderful, very excited to see this. Please keep me posted.


Changed the model classes - Added lombok.

Hey, Added lombok annotations to the model classes and removed the getter and setter methods.

@tabladrum and @amitmawkin - I removed the getters and setters from all the model classes. The pmd thinks that the private variables are not used at all because the public methods for accessing those variables are wrapped behind the lombok. This will need the pmd xml change.


wifi during exam

Just want to ask, during the exam are we allowed to connect to the school wifi? My concern is that docker requires internet connection and I plan on using vim for the exam.

I think yes since we are allowed to vim codecrunch submission online. So that means connecting to wifi is allowed I guess

Yup, since the exam does not involve Examplify, our internet is not blocked.

yes we are allowed to check the java api online too during the exams

yep wifi is allowed but we are not allowed to access anything else except for java api

We also can access codecrunch submissions I believe but not sure if we can access past submissions for labs etc

Yes I think we have wifi and we can access Java API and codecrunch


Remove/Revert BasemapSelectorMapAdapter

This PR removes the BasemapSelectorMapAdapter and its corresponding extent selection interface since maintaining two adapters proved problematic.
Note: Redux, forgot to set my email on my new machine 😅

@gino-m should be good to go now...except GCB is failing. The summary only says NOT_FOUND--any ideas?


As A Service - Infrastructure

This is the Epic for all aspects of GDL that relate to operations.  The ultimate goal is to provide services for 1) inference and 2) training.
See this link for setting up an easy (?) inference service.

Can you add a description of what you mean in this?

This is beyond the scope of the GDL project. Will close issue and discussion may follow within the team.


build-tools error

Throws "com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/local/opt/android-sdk/build-tools/23.0.1/aapt''
react native 0.21
on android
And readme is really need to should be checked.

Thanks, we'll take a look on this.

Hi, the latest package should solve this issue.
Can you check?
Thanks!

Yeah it solved the issue @avishayil thanks!


Display the waveform

Displaying the waveform will give more information about the shape, transients, energy, ... in a recording.
It would be convenient to have a moving cursor while playing, and to be able to position it wherever we want by clicking on the audio signal.
Example from Adobe Audition:

Example from Soundcloud:

you can preview waveform from v1.10.0.
thank you!

That's awesome as well, thanks a lot :) In a future update that would be great to also have time and amplitude information as x and y axis 👍🏽


Rendering breaks with 2 shaders affecting geometry

In a project I am using fragment shaders to affect geometry (like scale and rotate). When both filters are applied, other filters break (making things appear twice!).

If only 1 is applied, things seem fine.

Codepen here.
It could easily be a bug in my shaders, if so it would be great to know what I am doing wrong.
Thanks a lot!

There's fourth param you have to pass thorugh, called "clear"
rotateFilter.apply = function(filterManager, input, output, clear){
  this.uniforms.dimensions[0] = input.sourceFrame.width;
  this.uniforms.dimensions[1] = input.sourceFrame.height;
  filterManager.applyFilter(this, input, output, clear);
}

That fixed your fiddle.

Wow, thanks a lot for spotting this!

I also changed Wiki to add that param.


Delta to markdown format wrong.

final convertedValue = '[{"insert":"1"},{"insert":"2","attributes":{"italic":true}},{"insert":"3","attributes":{"italic":true,"bold":true}},{"insert":"4","attributes":{"bold":true}},{"insert":"\n"}]';
final markdown = DeltaToMarkdown().convert(delta);

but result markdown is '1_2**3_4**\n\n'. The format is wrong.

Hmmm, what should the expected output be?

Can it be represented by HTML tags? example: result is "1234\n";

I think we would want a pure markdown, not HTML.

I think we would want a pure markdown, not HTML.
Maybe we can convert nested types.
{"insert":"3","attributes":{"italic":true,"bold":true} to "***3***"
{"insert":"2","attributes":{"italic":true}}  to "*2*"
{"insert":"4","attributes":{"bold":true}} to "**4**"

12***3***4


Can't torrent anything

Hi first i appreciate the config, but i hit a road mark i can't seem to be able to download anything in rtorrent any clue why?
here's the config i have now, im not sure what else i can try:
{config, pkgs, ...}: {
    services.flood = {
      enable = true;
      openFirewall = true;
      host = "<IP_ADDRESS>";
      extraArgs = [ "--allowedpath /mnt/media/storage/downloads --rtsocket=${config.services.rtorrent.rpcSocket}" ];
    };

  systemd.services.flood = {
    serviceConfig = {
      # Grant Flood access to the rtorrent RPC socket
      SupplementaryGroups = [ "rtorrent" ];
      ReadWritePaths = [ "/mnt/media/storage/downloads" ];
    };
  };

    services.rtorrent = {
    enable = true;
    downloadDir = "/mnt/media/storage/downloads";
    package = pkgs.jesec-rtorrent;
    openFirewall = true;
    configText = let cfg = config.services.rtorrent;
        in pkgs.lib.mkForce ''
      ## Instance layout (base paths)
      method.insert = cfg.basedir,  private|const|string, (cat,"${cfg.dataDir}/")
      method.insert = cfg.download, private|const|string, (cat,"${cfg.downloadDir}")
      method.insert = cfg.logs,     private|const|string, (cat,(cfg.basedir),"log/")
      method.insert = cfg.logfile,  private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
      method.insert = cfg.session,  private|const|string, (cat,(cfg.basedir),"session/")
      method.insert = cfg.watch,    private|const|string, (cat,(cfg.basedir),"watch/")

      # RPC Socket
      method.insert = cfg.rpcsock, private|const|string, (cat,"${cfg.rpcSocket}")

      ## Create instance directories
      execute.throw = sh, -c, (cat,\
          "mkdir -p \"",(cfg.download),"\" ",\
          "\"",(cfg.logs),"\" ",\
          "\"",(cfg.session),"\" ",\
          "\"",(cfg.watch),"/load\" ",\
          "\"",(cfg.watch),"/start\" ")

      ## Listening port for incoming peer traffic (fixed; you can also randomize it)
      network.port_range.set = ${toString cfg.port}-${toString cfg.port}
      network.port_random.set = no

      ## Tracker-less torrent and UDP tracker support
      ## (conservative settings for 'private' trackers, change for 'public')
      dht.mode.set = auto
      protocol.pex.set = yes
      dht.port.set = 6881

      trackers.use_udp.set = yes

      ## Peer settings
      throttle.max_uploads.set = 100
      throttle.max_uploads.global.set = 250

      throttle.min_peers.normal.set = 20
      throttle.max_peers.normal.set = 60
      throttle.min_peers.seed.set = 30
      throttle.max_peers.seed.set = 80
      trackers.numwant.set = 80

      protocol.encryption.set = allow_incoming,try_outgoing,enable_retry

      ## Limits for file handle resources, this is optimized for
      ## an `ulimit` of 1024 (a common default). You MUST leave
      ## a ceiling of handles reserved for rTorrent's internal needs!
      network.http.max_open.set = 50
      network.max_open_files.set = 600
      network.max_open_sockets.set = 300

      ## Memory resource usage (increase if you have a large number of items loaded,
      ## and/or the available resources to spend)
      pieces.memory.max.set = 1800M
      network.xmlrpc.size_limit.set = 32M

      ## Basic operational settings (no need to change these)
      session.path.set = (cat, (cfg.session))
      directory.default.set = (cat, (cfg.download))
      log.execute = (cat, (cfg.logs), "execute.log")
      #log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log")
      execute.nothrow = sh, -c, (cat, "echo >",\
          (session.path), "rtorrent.pid", " ",(system.pid))

      ## Other operational settings (check & adapt)
      encoding.add = UTF-8
      system.umask.set = 0002
      system.cwd.set = (directory.default)
      network.http.dns_cache_timeout.set = 25
      schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
      #pieces.hash.on_completion.set = no
      #view.sort_current = seeding, greater=d.ratio=
      #keys.layout.set = qwerty
      #network.http.capath.set = "/etc/ssl/certs"
      #network.http.ssl_verify_peer.set = 0
      #network.http.ssl_verify_host.set = 0

      ## Some additional values and commands
      method.insert = system.startup_time, value|const, (system.time)
      method.insert = d.data_path, simple,\
          "if=(d.is_multi_file),\
              (cat, (d.directory), /),\
              (cat, (d.directory), /, (d.name))"
      method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent"

      ## Watch directories (add more as you like, but use unique schedule names)
      ## Add torrent
      schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "load/*.torrent")))
      ## Add & download straight away
      schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "start/*.torrent")))

      ## Run the rTorrent process as a daemon in the background
      ## (and control via XMLRPC sockets)
      system.daemon.set = true
      network.scgi.open_local = (cat,(cfg.rpcsock))
      schedule = scgi_group,0,0,"execute.nothrow=chown,\":rtorrent\",(cfg.rpcsock)"
      schedule = scgi_permission,0,0,"execute.nothrow=chmod,\"g+w,o=\",(cfg.rpcsock)"
      #execute.nothrow = chmod,770,(cat,(session.path),rpc.socket)

      ## Logging:
      ##   Levels = critical error warn notice info debug
      ##   Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_*
      print = (cat, "Logging to ", (cfg.logfile))
      log.open_file = "log", (cfg.logfile)
      log.add_output = "info", "log"
      #log.add_output = "tracker_debug", "log"

      ### END of rtorrent.rc ###
    '';
  };
}

Hey @nivaddo, it would be really helpful if you could post some errors. But if I had to guess, you might need to update the path hardcoded in this config a couple of time, as your download folder might be somewhere else.
E.g. change /mnt/media/storage/downloads to wherever you want to download your files, make sure it exists, and make sure the rtorrent user has permissions to write to that folder.
Hope that helps!


NW.js version list is empty and "Update" button doesn't work

Hi!
I'm using Web2Executable v0.5.4b in OSX 10.10.5
The NW.js version list is empty and pressing the "Update" button doesn't do anything at all.
In fact, pressing it multiples times crashes the app.

Yep, it looks like that occurs if the version file is empty. As a workaround until I fix it, if you open ~/Library/Application Support/Web2Executable/files/nw-versions.txt and add 0.19.0 to it, the version fetching should work.


Update link

@imba-tjd : Thanks for your contribution! The author, @MikeRayMSFT, has been notified to review your proposed change.


Form field order button not working

Hi
The up/down arrow in the Order column of form fields in the admin interface is not functioning at all!
Every time I have to inspect and change the order values manually

In an unexpected twist: it was me who introduced this bug when I created a Form class for the Field model a few months ago inheriting from the wrong class. The required JS files for re-ordering were not being loaded, now it's fixed. Thanks for the report!


xds start in goroutine

Issues associated with this PR
Your PR should present related issues you want to solve.
Sign the CLA
Make sure you have signed the CLA
Solutions
You should show your solutions about the issues in your PR, including the overall solutions,
details and the changes. At this time, Chinese is allowed to describe these.
UT result
Unit Test is needed if the code is changed, your unit test should cover boundary cases, corner cases, and some exceptional cases.
And you need to show the ut result.
Benchmark
If your code involves the processing of every request, you should give the Benchmark Result
Code Style

Make sure Goimports has run
Show Golint result

Codecov Report

Merging #830 into stable will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           stable     #830      +/-   ##
==========================================
- Coverage    55.3%   55.29%   -0.02%
==========================================
  Files         233      233
  Lines       23716    23711       -5
==========================================
- Hits        13116    13110       -6
- Misses       9392     9393       +1
  Partials     1208     1208

Impacted Files
Coverage Δ

pkg/log/logger.go
54.69% <0%> (-1.66%)
:arrow_down:

pkg/module/http2/transport.go
78.44% <0%> (-0.3%)
:arrow_down:

pkg/module/http2/server.go
81.7% <0%> (+0.07%)
:arrow_up:

pkg/stream/sofarpc/stream.go
41.06% <0%> (+0.96%)
:arrow_up:

Continue to review full report at Codecov.

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


ReactiveTextField Multiline with Enter

Hello,
I can't get 'Enter' to work for the ReactiveTextField on a real phone (Samsung Model)
The code being used is like this:
ReactiveTextField(
formControlName: 'Remarks',
maxLines: null,
keyboardType: TextInputType.multiline,
focusNode: _focusNode),
)
The Remarks field is supposed to allow 'real' multiline inputs (not just autowrap)
Any idea why it is not working ?
(Note: It works on the simulator)
Thanks.

@kfchengkf I would suggest to start testing with simple TextField from flutter
ReactiveTextField just passes through all the pros to TextField
It could be the flutter bug related to Samsung platform specific.

If you will reproduce your bug on TextField it will be better to create issue in flutter repo(do not forget close this one in this case)

OK.  Thanks.


Corrupted Accounts

I was in the webui and I deleted all users and now I just get a fail page when I go to the dashboard.  I tried to disable security from MySQL but it was already disabled. Any ideas?

I remember seeing something about how the default user that rancher uses behind the scenes is sometimes presented under the users tab, usually 1a1 with no username specified. I thought that this was subsequently hidden from view but it appears on my install. I suspect if you removed that user, you might have a experience issues.
Just found a discussion on that : https://github.com/rancher/rancher/issues/2967

@hibooboo2 This is exactly why we need to hide the account I mention in #2967

If deleting 1a1 is causing issues than it doesn't need to be hidden we need to fix that issue. Deleting any account should not cause cattle to fail. Unless security is on and it is the last account.

The last statement "unless security is on and it is the last account" is exactly the situation that the user most likely got into. @dax0 can verify.

When access control is disabled you are implicitly logging into the 1a1 user.  Hiding that the account exists is bad, as it's the (default) single most important account and also the one you may be using.  Ditto prevention deactivation/deletion of it, changing yourself has legitimate uses.
The most reasonable thing to do seems to be to have the UI (but not the API) prevent you from deactivating the logged-in account.  And maybe do the same for demoting yourself.. there is no explicit ordering of account types but it could just be if (type is admin) { no... }.  Then if you want to do one of those things you have to get another admin to do it, or use the API.

Here's what confused me, it made me create a user when I enabled access control.  Then I disabled and wanted to enable it again and it once again asked me to create an account.  Since I already had an account, I thought I'd have to delete the existing accounts to be safe - which is what I did - and then I broke everything.

It's not exactly labeled explicitly in the UI, but the 1a1 account exists at install and is who you're "logged in to" while access control is off.  When you turn on access control you are adding a credential to that existing account, not creating a new one.

Probably should not be able to edit this account's Account Type either.  It would probably be bad if no admin exist.

With the merge of rancher/cattle#1362 you can no longer lose the last admin account in rancer.

Verified with v0.61.0-rc3 that you are unable to deactivate/edit whoever your last admin is in Rancher, which would prevent this issue.