feat(extensions):  storidge evolution

Evolution of storidge extension.

Feedback on API:

GET /nodes/{node-id}

All fields of properties have a ':' at then end. So we have keys like domain: instead of domain.

GET /volumes/{volume-id}

On a same point, we have a field here that is allocate%, the % needs to be removed.
Following the specs, we should have 26 fields available on this request, we only have 14 on requests, the missing ones are the ones commented here

Small info on volume update, trying to update labels randomly ends on an error:

UPDATE 1: success

UPDATE 2: success

UPDATE 3: error

Not working requests:

POST /volumes/{volume-id}/snapshot
returns with volume-id = 1 or = portainer (respectively existing volume id and name).

{
    "content": "Volume was not found"
}

GET /volumes/{volume-id}/snapshots
returns with a valid volume-id (vdisk id).

{
    "content": "Usage: cio snapshot COMMAND [options] [YYYY-MM-DD-HHMM-NODEID-VDID]\n\nManually create a snapshot, print info, list all snapshots or remove a snapshot\n\nCommands:\n    create    Create snapshot of a volume\n    help      Show command usage information\n    info      Display snapshot information by snapshot id\n    list      List snapshots on a volume\n    remove    Remove snapshot by snapshot id\n\nOptions:\n    -v | --volume <volume name>         apply to volume identified by volume name\n    -V | --vdisk <id>                   apply to volume identified by vdisk ID\n    YYYY-MM-DD-HHMM-NODEID-VDID         snapshot ID, present only for remove"
}

Doesn't work either with volume name as volume-id :
{
    "content": "Fail: Volume vdportainer not found"
}

First version ready for testing.

On volume update:
There is no way to remove labels when trying to update a volume, as only transmitted data are taked into account on POST ; you can't remove a field with this behaviour, you can only add new fields (previously empty ones) or modify existing ones.

@xAt0mZ you should be able to access the latest version of the Storidge API by rebuilding entirely your Vagrant environment.
Here is the list of things we need to add/update for the next version of the Storidge integration.
Additions

[ ] Add support for the rescan features via a Rescan drives button in the drive list view

Based on the following API endpoint:
POST /drives/rescan

Enhancements

[ ] Add a new Add a node button in the node datatable panel that will display the current information text underneath it after clicking on it

[ ] Remove the ability to select nodes via checkboxes from the nodes datatable component and relocate the following action buttons to the node details view: Remove node, Enter maintenance mode and Exit maintenance mode.

Note that the Enter maintenance mode button should be disabled if the status of the node is 'maintenance'. The Exit maintenance mode button should be disabled if the status of the node is 'normal'.

[ ] Update the icon color for the node status in the node datatables to yellow/orange when status is set to 'maintenance' (see comment in picture above)

[ ] Update the UX for the snapshot interval property in the profile creation to support a blank value. The suggestion here is to add an extra switch labelled Enable periodic snapshots right under the Enable snapshot switch to define a value for the snapshots. If the switch is not enabled, the snapshot interval property will be blank.

[ ] Update the UX for the snapshot interval property selection to use minutes instead of seconds

[ ] Replace the icon color of the cluster status label to red when the status is set to Alert

Bugfixes

[ ] Fix a bug preventing the removal of a drive

The DELETE /drives/{drive-id} popup did not work in Portainer. However Postman was able to delete the drive. Please check Postman collection example.

[ ] Fix a bug preventing the addition of a drive

 The POST /drives returns “Failure, unable to add Storidge drive”. However Postman was able to add the drive so maybe the request body contents is wrong? Please check Postman collection example.

[ ] Fix a bug causing an invalid request when trying to change the capacity of a volume

POST /volumes/{volume name|vid} to change capacity failed because of bad parameter, e.g. API sent `cio volume update -v foo --capacity 2000GB` when it should send `cio volume update -v foo --capacity 2000`, i.e. no ‘GB’.

[ ] Fix a bug causing an invalid request when trying to change a volume IOPS

 POST /volumes/{volume name|vid} to change IOPS failed because of bad parameters, API sent `cio volume update -v foo --iopsmin %!s(float64=1000) --iopsmax %!s(float64=3000)` when it should send `cio volume update -v foo --iopsmin 1000 --iopsmax 3000`

Update the UX for the snapshot interval property in the profile creation to support a blank value. The suggestion here is to add an extra switch labelled Enable periodic snapshots right under the Enable snapshot switch to define a value for the snapshots. If the switch is not enabled, the snapshot interval property will be blank.

What about Max Snapshots ? Same behaviour ?

Fix a bug preventing the removal of a drive

Fix a bug preventing the addition of a drive

Can't test those ones as I don't have the setup for it.

Fix a bug causing an invalid request when trying to change the capacity of a volume

Storidge API is returning a value like 20GB on query but is waiting for an integer on update (by testing, waiting for a size in GB) so the field 20GB is invalid. One should write 21 in the field to increase the volume capacity to 21GB.
Tested with this (left the form content, right the associate generated payload)

and it is working fine

Storidge needs to fix this behaviour by either returning a value without GB/TB/whatever on query, or wait for a string like 21GB and handle themselves the conversion to a real volume for their system.

New update:
Enhancements

[ ] Disable volume snapshot retrieval when snapshot is not enabled for the associated volumes. Do not display the snapshots panel in that case.

Bugfixes

[ ] Fix the pagination on the drive list view to remember selected pagination filter on refresh

[ ] Ensure that the pagination filter is working correctly in all the views

[ ] Fix a bug associated to the "Add to storage pool" button

Request body seems to be the following:
{"device":"none"}

Whereas it should be:
{
  "device": "/dev/sdr",
  "node": "t1"
}

New update
Enhancements

[ ] Show capacity details in units of TB for node details view. Currently showing in unit of bytes

[ ] In the node details view: Align the values in right column to same indent. Currently sections 1 and 4 are aligned but 2 and 3 are at different offsets

Bugfixes

[ ] Remove drive function not working. No request issued to REST API from UI.

[ ] Empty node details view (happens with latest version connected to my local Vagrant environment, note sure Storidge reported that one)

[ ] In the node details view, invalid state checking to disable/enable the Exit maintenance mode button.

Exit maintenance mode] button is not active on a cordoned node, so cannot uncordon node from UI. Check node status and activate maintenance buttons accordingly:

If node status is cordoned, then activate [Exit maintenance mode] button. Inactivate [Remove node] and [Enter maintenance mode] buttons

If node status is normal, activate [Enter maintenance mode] and [Remove node] buttons, and inactivate [Exit maintenance mode] button

[ ] In the node details view, When node status is cordoned, the Node details view shows 0 values for most parameters which is correct. However the Bandwidth details section has non-zero values

[ ] Fix a bug when creating a profile

[Create the profile] button returns a 500 error code {"error":"json: cannot unmarshal array into Go struct field Profile.label of type map[string]string"}

Request body was:

{"name":"SNAP","capacity":20,"directory":"/cio/SNAP","provision":"thin","type":"ssd","level":2,"iops":{"min":100,"max":2000},"bandwidth":{"min":1,"max":100},"filesystem":"btrfs","service":{"snapshot":{"enabled":false},"encryption":{"enabled":false}},"interface":{"type":"nfs","driver":"","network":"","conf":""},"label":[]}

The Interface parameters do not have any values. Suggestion is to not send the Interface related parameters when the profile does not specify a Interface.

[ ] When creating a profile, if user enables snapshot the UI sends fields ‘interval’, ‘max’ and ‘start’ as part of the profile. When using the profile to then create a volume, volume creation fails if the ‘interval’ value is 0 since cio considers that an invalid value.

Suggest changing the layout of the Create a profile view to:

If user enable snapshots, show the snapshot max settings and default snapshot max count to 1. Send only the ‘enabled: yes’ and ‘max: X’ fields in the profile if periodic snapshots are NOT enabled.

If user enable periodic snapshots, show the snapshot interval and default snapshot interval to 1440, i.e. one snapshot per day. Send fields ‘enabled: yes’, ‘max: X’, ‘interval: Y’ in the profile. Do NOT send field ‘start’ as there is no setting in the UI for user. Cio can support a start time for snapshot based on user request later.

Note: Snapshot interval and snapshot max with their selectors should be on a separate line as it is done right now instead of closed to the switch as it is specified in the screen above.

[ ] Currently when the user sets the snapshot interval to 2, in the created profile the value shows as 120, i.e. UI is treating the interval input as hours instead of minutes.

In the node details view: Align the values in right column to same indent. Currently sections 1 and 4 are aligned but 2 and 3 are at different offsets

Can't figure how the padding is made, prob need to rework a bit how style is done here.

In the node details view, invalid state checking to disable/enable the Exit maintenance mode button.

I need to have the exact Status values to fix that.

Based on Storidge feedback for Node status and maintenance mode:

If node status is cordoned, then activate [Exit maintenance mode] button. Inactivate [Remove node] and [Enter maintenance mode] buttons

If node status is normal, activate [Enter maintenance mode] and [Remove node] buttons, and inactivate [Exit maintenance mode] button

Are these statuses available in the API ?

Are these statuses available in the API ?

The status is given by the API when retrieving the node details, but I don't know the Status value when node is under maintenance (need to modifiy this and this files with the real maintenance status).
I can't cordon a node with my dev env to know the exact status value returned by the API. Changed it to cordoned as it seems to be a consistent value for the cordoned / maintenance state.
Is it possible to have a full list of possible statuses for nodes, drives and cluster to manage all scenarios ?

In create profile view, Inconsistent font for entries: currently bold for directory and capacity and normal for the rest.

rdash-ui css is overriding bootstrap css for select tags . Don't know how to fix this atm (maybe by importing rdash-ui before bootstrap when bundling vendor.vendor.css file)

Empty node details view (happens with latest version connected to my local Vagrant environment, note sure Storidge reported that one)

Related to NodeDetailsModel refactor for latest storidge version. Need to rebuild Storidge vagrant setup to fix this.

In the node details view, When node status is cordoned, the Node details view shows 0 values for most parameters which is correct. However the Bandwidth details section has non-zero values

We are displaying the data retrieved by the API without any modification nor default values (see StoridgeNodeService and the associated Model )

In Volume details view, the snapshot list is not displaying. However browser shows the response body returning the snapshot list.

The data returned by the API don't match the specs given on the doc
Specs : (array)

Actual response : (object with 1 field = 1 item)

Refactored the code to match the current API response format. Will it be modified to match the specs at a time or will it stay like this ?

In create profile view, Inconsistent font for entries: currently bold for directory and capacity and normal for the rest.

That's a global UI matter, we'll remove it from the state of work.

New update.
Enhancements

[ ] In the node details view: Align the values in right column to same indent. Currently sections 1 and 4 are aligned but 2 and 3 are at different offsets

[ ] In Volume details/Storidge details section, remove ‘Volume’ and ‘Replication’. ‘Volume’ is redundant since ‘Name’ exists. ‘Replication’ feature is not available yet.

[ ] In the node details view, Align the values in right column to same offset. Currently the values of Node details, Bandwidth details, Capacity details and IOPS details are at different offsets

[ ] In Create profile/Profile configuration section, change ‘Interface driver’ to ‘Network driver’. Change ‘Interface network’ to ‘Network name’.

Bugfixes

[ ] In snapshot creation, The API is not picking up the ‘Description’ of the snapshot sent by UI. See format of request body from UI.

Use example below for the request body:
{
        "opts": {
                        "description": "Manual snapshot on volume rotate"
        }

}

[ ] In the node details view, Cannot exit maintenance mode from UI since [Exit maintenance mode] button is not active on a cordoned node. UI should activate the remove and maintenance buttons based on node status.

Node status will be ‘normal’, ‘cordoned’ or ‘leaving. ‘normal’ means part of the cluster and operating. ‘cordoned’ means part of cluster but in maintenance mode. ‘leaving’ means in the process of being removed from the cluster.

Set rules as:
If node status is ‘cordoned’, then activate [Exit maintenance mode] button. Inactivate [Remove node] and [Enter maintenance mode] buttons
If node status is ‘normal’, activate [Enter maintenance mode] and [Remove node] buttons, and inactivate [Exit maintenance mode] button
If node status is ‘leaving’, inactivate [Enter maintenance mode], [Remove node], [Exit maintenance mode] buttons

[ ] In the profile creation view, When [Enable snapshots] button is true, the profile sent to API has fields ‘interval’ and ‘start’. ‘interval’ is used only with periodic snapshots so should not be sent when [Enable periodic snapshots] is false. ‘start’ is not currently supported as a feature so should not be sent in the profile. The only fields to send when [Enable snapshots] button is true are ‘snapshot:’, ‘enabled: yes’ and ‘max: Y’.

[ ] In the profile creation view, Note that when [Enable snapshots] button is false, the ‘snapshot:’, ‘enabled: no’, ‘interval: 60’, ‘max: 10’ and ‘start: 1440’ key values are sent. Since snapshot is disabled this does not cause a problem in creating volumes. However if user enable snapshots later but not periodic snapshots, then creating volumes with the profile will fail. Suggestion is to only send ‘snapshot:’, ‘enabled: no’, and ‘max: 10’ key values only when [Enable snapshots] if false. Do not send fields ‘interval: 60’ and ‘start: 1440’. These fields are sent only if the user [Enable periodic snapshots].

[ ] In the profile creation/profile details views, UI defaults the directory path to follow name of profile. If profile name is set to upper case, directory path name is also upper case, e.g. Profile name = TEST, then directory path = /cio/TEST. Always set directory path to lower case regardless of profile name is upper case or lower case.

In the profile creation view, When [Enable snapshots] button is true, the profile sent to API has fields ‘interval’ and ‘start’. ‘interval’ is used only with periodic snapshots so should not be sent when [Enable periodic snapshots] is false. ‘start’ is not currently supported as a feature so should not be sent in the profile. The only fields to send when [Enable snapshots] button is true are ‘snapshot:’, ‘enabled: yes’ and ‘max: Y’.

In the profile creation view, Note that when [Enable snapshots] button is false, the ‘snapshot:’, ‘enabled: no’, ‘interval: 60’, ‘max: 10’ and ‘start: 1440’ key values are sent. Since snapshot is disabled this does not cause a problem in creating volumes. However if user enable snapshots later but not periodic snapshots, then creating volumes with the profile will fail. Suggestion is to only send ‘snapshot:’, ‘enabled: no’, and ‘max: 10’ key values only when [Enable snapshots] if false. Do not send fields ‘interval: 60’ and ‘start: 1440’. These fields are sent only if the user [Enable periodic snapshots].

I don't get how they are retrieving these values. We can't send a start as we don't have any field like this in our code.
Here are the payloads sent when creating profiles without snapshots.

With snapshots without periodics

With periodics

Updated app.css file to fix the select style as rdash-ui is forcing the following style
@media screen and (-webkit-min-device-pixel-ratio: 0)
select {
    font-family: Arial, Helvetica, sans-serif;
}

So it doesn't respect the principle of having 1 font family on the app.
Modification is replicated everywhere on the app, so some select elements may appear "broken" on small screen sizes.
Before

After

v6
New update
Enhancements
Bugfixes

[ ]  GET /nodes/ all buttons are always disabled whether node is in cordoned or uncordoned state

[ ] In Volume details/Storidge details view, the allocated, IOPS Min, IOPS Max, Local Drive Only, Drive Type, Max Snapshots fields do not show values since the JSON response is now returning the keys in camel case.

[ ] POST /profiles – Create profile/Modify defaults view always has the Interface type set to ‘nfs’. Default the Interface type to ‘null’ value in the UI. This way the ‘Interface:’ and ‘type: nfs’ key value will NOT be sent in profile by default. The cio software is rejecting the profile during volume creation because other Interface fields are missing.

[ ]

In Storidge drives view, the [Remove] and [Add to storage pool] button allows multiple drives to be selected for addition or removal. The cioctl drive command however only operates on one drive at a time.

This is now fixed, there is no way to select nodes from the node table anymore, you can use the remove/add to storage pool function from the node details view.

GET /nodes/ all buttons are always disabled whether node is in cordoned or uncordoned state

Fixed, see my comment below for more details about this and a potential error.

In Volume details/Storidge details view, the allocated, IOPS Min, IOPS Max, Local Drive Only, Drive Type, Max Snapshots fields do not show values since the JSON response is now returning the keys in camel case.

Fixed.

POST /profiles – Create profile/Modify defaults view always has the Interface type set to ‘nfs’. Default the Interface type to ‘null’ value in the UI. This way the ‘Interface:’ and ‘type: nfs’ key value will NOT be sent in profile by default. The cio software is rejecting the profile during volume creation because other Interface fields are missing.

Interface type now defaults to null and Portainer will not send the interface.type property when not specified.

POST /profiles – Create profile/Modify defaults view, if Enable periodic snapshots button is off, do not send the ‘interval: 0’ and ‘start: 0’ fields. Interval 0 is an invalid value and will be rejected by cio software during volume creation. The start field is not a supported feature and should not be in the profile.

I was not able to reproduce that problem. The 'start' property is never sent and the 'interval' property is only sent when the "Enable periodic snapshots" switch is on.

POST /profiles – Create profile/Modify defaults view the Limit bandwidth fields are not sent in the profiles. Regardless of actual values set, the profile ends up with default IOPS values.

This is pretty strange as the bandwidth.max and bandwith.min options are actually passed in the body of the request for the profile creation. It seems that they are ignored by the API though, see request body example below:
bandwidth: {min: 7, max: 77}
max: 77
min: 7
capacity: 20
directory: "/cio/test07"
filesystem: "btrfs"
interface: {driver: "", network: "", conf: ""}
conf: ""
driver: ""
network: ""
label: {}
level: 2
name: "test07"
provision: "thin"
service: {snapshot: {enabled: false}, encryption: {enabled: false}}
encryption: {enabled: false}
enabled: false
snapshot: {enabled: false}
enabled: false
type: "ssd"

During my tests I encoutered the following problem:

Issue with remove node action

After hitting the remove node action, the API responded with a 409 and the following response content:
{"content":"perl: warning: Setting locale failed.\nperl: warning: Please check that your locale settings:\n\tLANGUAGE = (unset),\n\tLC_ALL = (unset),\n\tLC_CTYPE = "fr_FR.UTF-8",\n\tLANG = "en_US.UTF-8"\n    are supported and installed on your system.\nperl: warning: Falling back to a fallback locale ("en_US.UTF-8").\nSucceed: node 3fdc49af state is remove"}
It seems that the node was removed successfully though, as its status changed to leaving after that. I recommend fixing the return code and response content.

Issue with node status

I've created a 4 node clusters and put node 3 in maintenance mode with success. The nodes tables (GET /nodes/) reports the node status as "cordoned" but the node details (GET /nodes/storidge-3) reports the node status as "Normal", causing inconsistencies in the UI (e.g. not able to exit maintenance mode as node status is considered normal and not cordoned).
Response from GET /nodes/:
{"nodes":{"storidge-1":{"ip":"<IP_ADDRESS>","id":"bfe21a39","role":"sds","status":"normal"},"storidge-2":{"ip":"<IP_ADDRESS>","id":"4f905ef5","role":"backup1","status":"normal"},"storidge-3":{"ip":"<IP_ADDRESS>","id":"3fdc49af","role":"backup2","status":"cordoned"},"storidge-4":{"ip":"<IP_ADDRESS>","id":"6e529ced","role":"standard","status":"normal"}}}

Response from GET /nodes/storidge-3:
{"name":"storidge-3","properties":{"domain":"bfe21a39","domainID":"bf9ad05b","nodes":"4","status":"Normal"}}

v7
New update
Enhancements

[ ] Add the Condition field or some color coded indicator to the Node Details view

[ ] Add the cluster Status field to the Node Details view

[ ] in the Node Details view with node in ‘normal’ or ‘cordoned’ status, the [Remove node], [Enter maintenance mode], and [Exit maintenance mode] button are inactive.

Note from alapenna: I think this should now leverage the new Condition field instead of the Status field.

Bugfixes

[ ] The [Add to storage pool] button does not show. The UI sends a GET with serial number ‘none’ and the API responds with 409 code.

Instead of issuing the GET request, suggest displaying the drive details and a [Add to storage pool] button. The ‘available’ drive information to display is the same as from the Storidge Drives view.

[ ] When node in cordoned mode the [Exit maintenance mode] button is inactive but [Remove node] and [Enter maintenance mode] buttons are active. This is because ‘Status’ field is confusing (see comments and my question below). Use ‘Status’ field from GET /nodes to verify cordoned status instead of using GET /nodes/

[ ] On cio 2748, note that after a volume is created with profile that has bandwidth settings, the Volume Details view show only the iops and not the bandwidth info. The iops values are null.

The Volume Details view needs to add the Bandwidth Min and Max fields or toggle the IOPS Min and Max field with bandwidth values.

[ ] The type field for profile interfaces is currently immutable so the default null value cannot be changed. Because of this when a profile with an interface is created, everything but the type can be set and invalid profiles like this are all that can be created:

$ cio profile info b
bandwidth:
  max: 100
  min: 1
capacity: 20
directory: /cio/b
interface:
  conf: '*(rw,sync,fsid=0,secure,root_squash,all_squash)'
  driver: macvlan
  network: cionet
iops: {}
label: {}
level: 2
local: no
provision: thin
service:
  compression: no
  dedupe: no
  encryption:
    enabled: no
  replication:
    destination: none
    enabled: no
    interval: 120
    type: synchronous
  snapshot:
    enabled: yes
    interval: 1440
    max: 1
    start: 0
type: ssd

Recommended solution:
There should be a drop-down for interface fields that defaults to null, similar to how the network driver field is set up, but can then be changed to nfs and other interface types that might be added down the line.
Also setting both of these drop-downs (interface type and network driver) to include blank entries at the top would improve usability as users won't have to commit if they select a value from the drop-downs then change their mind.

[ ] I also found that creating a default profile straight from the profiles list page sends the suggested values for bandwidth and iops along. It shouldn't be sending anything for these. Please make the profile sent by clicking 'Create the profile' the same as that sent by clicking 'Modify defaults...' and making no changes.

I've included screenshots for reference, they're named after the buttons used to create the default profiles.

[x]  Add the Condition field or some color coded indicator to the Node Details view
[x]  Add the cluster Status field to the Node Details view
[x]  in the Node Details view with node in ‘normal’ or ‘cordoned’ status, the [Remove node], [Enter maintenance mode], and [Exit maintenance mode] button are inactive.

Seems that Condition field is the cluster status, and Status is still the node status. Not sure if that is the intended behaviour.
After putting a node in maintenance, i'm getting the following data
{
   "name":"storidge-4",
   "properties":{
      "condition":"normal",
      "domain":"da344bf0",
      "domainID":"fca5841e",
      "freeBandwidth":"0.000Mi",
      "freeCapacity":"0",
      "freeIOPS":"0",
      "hdds":"0",
      "metadataVersion":"0.0",
      "nodes":"4",
      "provisionedBandwidth":"0.000Mi",
      "provisionedCapacity":"0",
      "provisionedIOPS":"0",
      "ssds":"0",
      "status":"cordoned",
      "totalBandwidth":"0.000Mi",
      "totalCapacity":"0",
      "totalIOPS":"0",
      "usedBandwidth":"0.000Mi",
      "usedCapacity":"0",
      "usedIOPS":"0",
      "vdisks":"0"
   }
}

Comments regarding v6

In Storidge drives view, the [Remove] and [Add to storage pool] button allows multiple drives to be selected for addition or removal. The cioctl drive command however only operates on one drive at a time.

Not sure about the need to remove this part that makes easier the bulk of operations. Code was done to support this API behaviour as operations (add / remove) were done successively on each concerned drives (addition on available drives / deletion on faulty drives).

Regarding v6 update.

Not sure about the need to remove this part that makes easier the bulk of operations. Code was done to support this API behaviour as operations (add / remove) were done successively on each concerned drives (addition on available drives / deletion on faulty drives).

This behavior was requested by Storidge.

v8
New update.
Enhancements

[ ] Change the 'Cluster condition' label to 'Operating condition'

v9
Enhancements

[ ] For the [Add to storage pool] button it should only be allowed select and add one drive at a time. Currently more than one available drive can be selected which will cause inconsistent results.

We should add a new column in the table (Actions) with a "Add to storage pool" button for each drive. That would provide a better UX.

the UI will always stay on the first IP address it finds for Storidge API. Even when the node is removed from the cio cluster (not Swarm cluster), and Portainer service is then moved to a new node, the UI will keep sending requests to the IP address it discovers first.

Tested but not able to know where the problem is. I have the following config:
• <IP_ADDRESS> -> sds
• .11 -> backup1
• .12 -> backup2
• .13 -> standard
Removing sds from cio cluster result in Portainer (running on sds:9000) not able to access the storidge features.
Should go on Portainer on backup1:9000 to be able to access the storidge features
After that, Portainer on sds:9000 is able to access storidge features again

On external Portainer instance (local running), connected to cio cluster through sds, I'm not able to access storidge features.
Also, portainer docker volume (with cio:latest driver) is not showed even if it exists (can see it on sds:9000 Portainer instance)

v10
Backend

[ ] the UI will always stay on the first IP address it finds for Storidge API. Even when the node is removed from the cio cluster (not Swarm cluster), and Portainer service is then moved to a new node, the UI will keep sending requests to the IP address it discovers first.

Report from LP: https://github.com/portainer/portainer/pull/2711#issuecomment-487365810


production build not working on ubuntu 18.04 server

The app is properly working on development mode.
When we deploy build on a production server then files are showing from DCOM server only. JSON file and local files not working. Its showing page not found. Please suggests setup up of configuration file on the production server.

try test your production build on local environment for getting more information
for example:

build project
use http-server (npm package) inside dist folder for up and running local http server
go to localhost:8080 and test application

Thank you for your reply.
As per your suggestion, I have made the changes I am getting the following error.

It is a same error that you get on the server?
Did you actually add new route /local to application?

Yes, I have got the same error also on the server and I haven't added route /local to the application.
I want the same features after the execution of the "yarn run build" command whose gets on the execution of "yarn run dev".
Please help me with the suitable configurations to resolve this issue, Thanks for your valuable response.

This is a SPA redirect issue. Because the app is a "single page application", you need to redirect all routes to index.html that would otherwise result in a 404.


DustMiteNoRemoveStart/Stop ignored

I noticed, that dustmite sometimes removes code, which is marked not to be removed. Small testcase:
test.d:
import sub.sub;

// DustMiteNoRemoveStart
unittest
{
}
// DustMiteNoRemoveStop

And in sub/sub.d:
module sub.sub;

called with dustmite  . "dmd -main -unittest -run test.d sub/sub.d"
I tried this with several versions (*) of dustmite, including the latest (selfcompiled, linux). According to the dump the correct Entieties are marked as "noRemove", but are removed anyway.
(*) By the way dustmite --version doesn't work, nor does dustmite -V (a Phobos bug?).

According to the dump the correct Entieties are marked as "noRemove", but are removed anyway.

Yes, it was an omission in the logic of the "Concat" reduction type.

called with dustmite . "dmd -main -unittest -run test.d sub/sub.d"

Note that in this command line, sub/sub.d is passed as a runtime argument to the built/executed program (test.d), and thus is ignored.

(*) By the way dustmite --version doesn't work, nor does dustmite -V (a Phobos bug?).

It was added relatively recently, so the versions you tried it with may not have had it yet.

called with dustmite . "dmd -main -unittest -run test.d sub/sub.d"

Note that in this command line, sub/sub.d is passed as a runtime argument to the built/executed program (test.d), and thus is ignored.

Oh, thanks. I've been using rdmd for long and just recently changed to calling dmd directly. I still need to get used to this.

(*) By the way dustmite --version doesn't work, nor does dustmite -V (a Phobos bug?).

It was added relatively recently, so the versions you tried it with may not have had it yet.

Indeed. With the latest version it worked.
Thank you! :-)


cannot disable exclusive_access from cmd line

I have a test that sets variable exclusive_access to True:
@rfm.simple_test
class BLASTest(rfm.RunOnlyRegressionTest):
    exclusive_access = True
    ...

According to the docs:

Variable assignments passed from the command line happen before the test is instantiated and is the exact equivalent of assigning a new value to the variable at the end of the test class body.

However, trying to override this from the cmd line does not work for me, ReFrame still adds the Slurm --exclusive flag:
reframe --verbose --run --checkpath blas.py --system hydra:skylake --prgenv foss-2020a --setvar BLASTest.exclusive_access=False --setvar num_cpus_per_task=4

I've tried setting it to 0, False, @none, but nothing seems to work.
Am I doing something wrong? What's the right way to set this to False?
In any case, it does not show a warning that the variable is not set, so it's doing something with it.

Actually, are you setting in any subsequent hook?

I tried with exclusive, but that gives the following warning:
/apps/brussel/CO7/skylake/software/ReFrame/3.9.1/bin/reframe: test 'BLASTest': the following variables were not set: 'exclusive'

Actually, are you setting in any subsequent hook?

no

Yeah, the exclusive was my mistake.

I could reproduce this and it seems like a bug.

thanks for looking into this.
as a workaround, I found that using --setvar exclusive_access= (i.e. not assigning any value to it) does work.

@smoors yes, in this case the empty string will be interpreted as False. But it's better to have some dedicated special values like @true and @false to set booleans explicitly. What do you think?

@teojgo I agree that it's better to be able to set it explicitly.
for me, the least surprising way to implement this would be to interpret any of 'False', 'false', 'no', '0' as False.
@true and @false would work too if it's well documented, and if ReFrame gives a clear error if any other values are given.

for me, the least surprising way to implement this would be to interpret any of 'False', 'false', 'no', '0' as False.
@true and @false would work too if it's well documented, and if ReFrame gives a clear error if any other values are given.

#2309 fixes the problem and adds a warning in the documentation. However reframe does not issue an error if any other values are given.


Use Json::StaticString for field names and Refactor SField construction

The first commit from @JoelKatz was causing problems in some environments due to the SField move constructor. With help from @seelabs, @jwbusch, @nbougalis, and @mellery451, I was able to refactor the SField construction to completely remove the move constructor.

Jenkins Build Summary
Built from this commit
Built at 20181114 - 00:07:43
Test Results

Build Type
Log
Result
Status

rpm
logfile
1140 cases, 0 failed, t: n/a
PASS :white_check_mark:

msvc.Debug
logfile
1137 cases, 0 failed, t: 623s
PASS :white_check_mark:

msvc.Debug, NINJA_BUILD=true
logfile
1137 cases, 0 failed, t: 635s
PASS :white_check_mark:

gcc.Release -Dassert=ON, MANUAL_TESTS=true
logfile
915 cases, 0 failed, t: 6m9s
PASS :white_check_mark:

docs, TARGET=docs
logfile
1 cases, 0 failed, t: 0m1s
PASS :white_check_mark:

clang.Debug
logfile
1140 cases, 0 failed, t: 3m12s
PASS :white_check_mark:

clang.Debug -Dunity=OFF
logfile
1140 cases, 0 failed, t: 1m7s
PASS :white_check_mark:

gcc.Debug -Dcoverage=ON, TARGET=coverage_report, SKIP_TESTS=true
logfile
1140 cases, 0 failed, t: 17m6s
PASS :white_check_mark:

gcc.Debug
logfile
1140 cases, 0 failed, t: 3m28s
PASS :white_check_mark:

gcc.Debug -Dunity=OFF
logfile
1140 cases, 0 failed, t: 2m36s
PASS :white_check_mark:

msvc.Debug -Dunity=OFF
logfile
1137 cases, 0 failed, t: 1275s
PASS :white_check_mark:

clang.Release -Dassert=ON
logfile
1140 cases, 0 failed, t: 5m41s
PASS :white_check_mark:

gcc.Release -Dassert=ON
logfile
1140 cases, 0 failed, t: 6m6s
PASS :white_check_mark:

msvc.Release
logfile
1137 cases, 0 failed, t: 411s
PASS :white_check_mark:

gcc.Debug -Dstatic=OFF
logfile
1140 cases, 0 failed, t: 3m29s
PASS :white_check_mark:

gcc.Debug -Dstatic=OFF -DBUILD_SHARED_LIBS=ON
logfile
1140 cases, 0 failed, t: 3m27s
PASS :white_check_mark:

gcc.Debug, NINJA_BUILD=true
logfile
1140 cases, 0 failed, t: 3m1s
PASS :white_check_mark:

clang.Debug -Dunity=OFF -Dsan=address, PARALLEL_TESTS=false, DEBUGGER=false
logfile
1140 cases, 0 failed, t: 11m14s
PASS :white_check_mark:

clang.Debug -Dunity=OFF -Dsan=undefined, PARALLEL_TESTS=false
logfile
1140 cases, 0 failed, t: 12m14s
PASS :white_check_mark:

Rebased onto 1.2.0-rc1 and force pushed.

Following up on an old out-of-band suggestion, I ran valgrind with a couple of unit tests to verify there are no memory leaks on develop and this branch, and compared the results. No leaks on either branch.
Command line for each branch: cmake --build build/cmake/gcc.Debug.ON/ -- -j8 && valgrind --trace-children=yes --leak-check=full build/cmake/gcc.Debug.ON/rippled --unittest=STObject,STTx
$ diff leak.develop.txt leak.make-sfield.txt
5c5
<    total heap usage: 32,541 allocs, 32,492 frees, 18,188,183 bytes allocated
---
>    total heap usage: 33,035 allocs, 32,986 frees, 18,236,963 bytes allocated
18c18
<  ERROR SUMMARY: 1732 errors from 1000 contexts (suppressed: 0 from 0)
---
>  ERROR SUMMARY: 2319 errors from 1000 contexts (suppressed: 0 from 0)

(I'll note that I see to get a different number of errors each time I run, no matter the branch, and they don't seem relevant to the SFields.)

Rebased on 1.3.0-b2 and resolved conflicts.

Squashed and marked "Passed".

Incorporated into https://github.com/ripple/rippled/pull/2869.  Closing this pull request so the code is not accidentally merged to develop twice.


fix: adjustment for local execution

I have read the CLA Document and I hereby sign the CLA

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


changelog for 2.067.1

Ping @CyberShadow

Going ahead with this, because I want to announce the release.


Move all new libraries versions to _config.yml

Have you checked that your feature request isn't already filed?

[X] I read through FAQ and searched through the past issues, none of which addressed my feature request.
[X] Yes, I have checked that this feature request isn't already filed.

Description & Motivation
I was adding a few new libraries to the repository and kind of hardcoding their versions. But after the last few are merged into master I will move their versions to _config.yml with the other ones. This is a reminder to myself.
Pitch
No response
Alternatives
No response
Additional context
No response

Implemented in #2139


Align graceful-shutdown-timeout with terminationGracePeriodSeconds

Setting the default value for the graceful-shutdown-timeout flag to match the default terminationGracePeriodSeconds value we set for the controller pod container.
It seems the controller-runtime does not support passing -1 as a value to skip the timeout as documented here:
https://github.com/kubernetes-sigs/controller-runtime/blob/v0.13.1/pkg/manager/manager.go#L286
With this change, it would also make sense to update the documentation to add a new section about graceful shutdown and explain the relation between these two values and also related to how the readiness probe affects graceful shutdown.

@relu to fix the e2e tests please do this https://github.com/fluxcd/flux2/commit/21a943e6f9db133cbe3023c21b5ee071ea56c460

We also need to update the options.md in website.


Add support for other fluid containers than Items.water_bucket

Hi
The code for inputting water into a boiler is a bit to vanilla specific to allow good inter-mod cooperation. Specifically BlockBoiler#onBlockActivated only checks for a vanilla water bucket. If you instead replace the water check with something like this:
public static boolean handleFillBoiler(World par1World, int par2, int par3, int par4, EntityPlayer player) {
		ItemStack heldItem = player.getHeldItem();
		FluidStack heldFluid = FluidContainerRegistry.getFluidForFilledItem(heldItem);

		if (heldItem == null || heldFluid == null || heldFluid.getFluid() != FluidRegistry.WATER) {
			return false;
		}

		ItemStack emptyBucket = heldItem.getItem().getContainerItem(heldItem);
		TileEntityBoiler tileentityboiler = (TileEntityBoiler) par1World.getTileEntity(par2, par3, par4);

		int amountFilled = tileentityboiler.fill(ForgeDirection.UP, heldFluid, true);
		if (!player.capabilities.isCreativeMode && amountFilled != 0) {
			player.inventory.setInventorySlotContents(player.inventory.currentItem, emptyBucket);
		}

		return true;
	}

This will allow other mods to use their buckets or fluid containers without you knowing about their containers. I ASM-d in the above mentioned method and tried to use a TerraFirmaCraft wooden bucket, and it worked like a charm.
I did a search for "Items.water_bucket" in the repo, and found 5 files that referenced it, so I guess all five places need some rewriting.

You should send a pull request :P

I agree with @xbony2

I will create a pull request soon :)

@vidaj Do you happen to still have your clone of FSP? If so, you should totally submit a PR :wink:
@xbony2 if @vidaj does not reply for a bit, do you think you could deal with this since it is crossmod?

Sorry, things happened, so I never got around to this. I'm cloning and fixing code as we speak. PR will come through tonight or tomorrow.

Sweet!


[feature request] set cgroup value by batch-request/limit for BE pod

What would you like to be added:
Why is this needed:

/assign jasonliu747

/area koordlet

extend resource requires request==limit, so we should support limit.batch-cpu and limit.batch-memory on annotation field.
cc @jasonliu747

extend resource requires request==limit, so we should support limit.batch-cpu and limit.batch-memory on annotation field. cc @jasonliu747

noted, thanks.


ci(workflow): add branch to release workflow

To Reviewers

[ ] Skipping review is not a problem (style, chore ONLY)
[x] Not that difficult

Type of Change

[ ] New feature
[ ] Bug fixes
[ ] Feature improvement

[ ] These changes require a usage change

[x] Others (performance improvement, refactoring, CI/CD, etc.)

Checklist

[ ] Updated Storybook documents for component
[ ] Wrote test codes for composable, utils and etc.
[ ] Tested with console(if usages are changed)

Description
SSIA
Things to Talk About

:tada: This PR is included in version 2.0.0-beta.40 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Git tool shows readme as modified despite no obvious sign of modification

After loading gt4processing with the following code, the repo's readme is marked as being changed, yet there is no evidence of any change when the diff view is opened. I suspect the diffs are wrt line ending (my platform is Windows) which were likely modified by git upon loading, but there is no indication that this is where the file is different.
Metacello new
	baseline: 'Processing';
	repository: 'github://hellerve/gt4processing:main/src';
	load.

Windows 11, GT 0.8.1545

Should there be a mode/view like emacs' whitespace-mode that shows those characters clearly? Would that fix the issue?

I tested this today with the git cli implementation on Windows 11 ARM and everything is fine with respect to line endings or changes.

Did the readme file show as changed, for you? If not, I'll close this.

No, the README did not show as changed.
Thanks for the feedback!


[Bug]:

What happened?
Nothing happens, but this error is frequently encountered at the colab runtime
Colab cell output
RuntimeError: File at path /content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/extensions/sd-webui-3d-open-pose-editor/pages/theme/default/layer.css does not exist.

Which colab and model(s) were you using when the error occurred?
https://github.com/camenduru/stable-diffusion-webui-colab/tree/drive
Which Public WebUI Colab URL were you using when the error occurred?
gradio.live
If you used HiRes mode when the error occurred, please provide the Hires info
No response

can you delete the entire /content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/extensions/sd-webui-3d-open-pose-editor folder first then restart, and reinstall the extension?

Please try the new version


Cannot find  settings for 'Invitations have been disabled for directory'

The documentation does not describe where to find the settings for 'Invitations have been disabled for directory'.
The documentation states that these settings can be found under 'User Settings', but that's not very descriptive. I've looked everywhere for these settings and cannot find them. Is it that I don't have permission to see the settings, I'm looking in the wrong spot, or the UI has changed and it's now somewhere else?

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

ID: 3f76cc85-8dc0-9be3-4071-217589ddef56
Version Independent ID: e7bdba65-bacc-7fef-2c27-b3425f697b12
Content: Troubleshooting B2B collaboration - Azure Active Directory
Content Source: articles/active-directory/b2b/troubleshoot.md
Service: active-directory
Sub-service: b2b
GitHub Login: @v-miegge
Microsoft Alias: mimart

@jsiemensLatitudegeo
Thanks for your feedback! We will investigate and update as appropriate.


Builder collapse add click to header

Make builder header clickable so that it works the same as a collapsible Repeater

Thanks


commit

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 64.45%. Comparing base (f020c28) to head (2409838).

Additional details and impacted files
@@               Coverage Diff               @@
##           useGoBackupLib     #208   +/-   ##
===============================================
  Coverage           64.45%   64.45%
===============================================
  Files                  15       15
  Lines                 768      768
===============================================
  Hits                  495      495
  Misses                249      249
  Partials               24       24

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


unable to enable addon

Please make sure sprytile was installed correctly. First uninstall the current version and make sure  there's no trace of it in C:\Users\spadafina_alfredo\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons. Restart blender, then install again the latest version of sprytile (beta9)

I've had this issue too. It happens when another instance of sprytile was installed on blender. Uninstall, restart blender, install and it should work!

I am closing this issue as unable to reproduce. If you need further help, please leave a comment!


ROE-2348 Set up-to-date config values for CiDev

JIRA link
https://companieshouse.atlassian.net/browse/ROE-2348
Change description

Changes, ready for when Node 18/ECS code is LIVE
They now match current Mesos and chs-configs settings for CiDev

Work checklist

[ ] Tests added where applicable
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear.  A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

Made this a draft review, just so that it doesn't get accidentally merged early.

@AndreKramer7654 -- are we ready to turn ON the update trusts flag ?

@AndreKramer7654 -- are we ready to turn ON the update trusts flag ?

So this won't be merged in until after the new pipeline and Node 18 code is LIVE, but after that, CiDev config should match what's currently in Mesos and there, FEATURE_FLAG_ENABLE_UPDATE_TRUSTS_30062023 is set to true. These are only CiDev settings...
Does that sound correct to you @AndreKramer7654 ?


Enable end2end tests on pull requests

It would be useful to see if a PR pass end2end tests before merging to main branch.
Signed-off-by: Andrea Panattoni<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 50.946%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
862

Relevant Lines:
1692

💛  - Coveralls

Understood the issue. So the root cause is this workflow (kind-e2e.yml) cannot be run due to the error, https://github.com/zeeke/multi-networkpolicy-iptables/actions/runs/3266782583/workflow
So once this issue is fixed, I believe the e2e tests will work fine in PR, without change of     if: >....
Could you please change your PR to change  - name: Test: simple -> - name: "Test: simple", only?

In future case, I recommend you to submit issue first, instead of PR.

Understood the issue. So the root cause is this workflow (kind-e2e.yml) cannot be run due to the error, https://github.com/zeeke/multi-networkpolicy-iptables/actions/runs/3266782583/workflow
So once this issue is fixed, I believe the e2e tests will work fine in PR, without change of  if: >.... Could you please change your PR to change  - name: Test: simple -> - name: "Test: simple", only?

Other than the syntax error, the condition was preventing the tests to run in PRs. For example, in multi-networkpolicy-iptables/pull/35 there is no e2e-kind check in the checks list.

BTW, In future case, I recommend you to submit issue first, instead of PR.

It's much easier to talk over the code lines like you just did. It would be much harder to understand each other with text-only issues. Please, let's keep the process lean.

Cool, I thought tests were not running for two reasons (yaml errors and if condition). But I was wrong: the only cause was yaml syntax error.
Indeed, I pushed the condition again and I can see the job e2e-kind / e2e-kind (pull_request) running.
BTW, I suggest putting a comment on that, because I still don't know what that condition is meant to achieve

Hi, thank you for the incorporate my comments. First.

It's much easier to talk over the code lines like you just did. It would be much harder to understand each other with text-only issues. Please, let's keep the process lean.

I am okey however, let me recommend again you to submit the issue first before PR. In this case, your first draft PR does not clearly capture the issue, I suppose. Submitting the issue in community, makes heads up to the community and we could discuss about whether the issue is real issue or not. In addition, we also discuss about how to fix that. It may seems you to redundant however, it may reduces the process by review comment. (If your fix design is not appropriate, reviewer may asks you to change the design, so both takes same time).

BTW, 'if' condition do nothing special. You could understanding by its document: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions


Management command to update wagtail admin

I am having several situations where I need custom WagtailAdminPage(or Model)Form subclasses because I am updating model objects programmatically. I am doing this programmatic work using django management commands I have written to be able to alter some data.
This made me wonder: would it be possible to develop a wagtail management command to update the admin in similar situations? This would reduce the need to write custom WagtailAdminPage(or Model)Form subclasses.

Hi @dentemm - can you give an example of the sort of updates you need to perform, and describe exactly what the proposed new management command would do?

Hi @gasman,
thanks for replying! I am updating some data on my models (both Page models and Snippet Models), basically because the admin who is providing content made some mistakes.
So it would be useful to have some sort of solution to be able to reflect programmatic changes to the db in the admin. This is why I was thinking of a management command which could create a PageRevision object based on the current field values of a Page. An alternate solution be also be really helpful, of course!

Thanks for the clarification! I don't think it's going to be feasible for Wagtail to provide such a management command itself, since every update operation is going to be different and require custom code. What Wagtail could do, though, is provide a more streamlined method for performing field updates so that they take effect on both Page and PageRevision records - this is discussed in #1101.


Visits not getting saved

Seems like an issue with the serializer trying to validate the duration
2024-09-22 22:58:45 - ERROR - app_logger - views - Visit validation error: {'duration': [ErrorDetail(string='This field is required.', code='required')]}

It was caused because of the duration calculation being performed on model.save() but using bulk_create, where the save method is not called.


System.Reflection.AmbiguousMatchException

hello.
I tried using this library in my Blazor 8 hybrid project. I only added the @attribute [Sitemap] directive to a few pages. There were no errors during compilation and execution, but when I navigate to sitemap.xml, I encounter the following error. I would appreciate any suggestions anyone could provide!
System.Reflection.AmbiguousMatchException: Multiple custom attributes of the same type 'Microsoft.AspNetCore.Components.RouteAttribute' found.
at System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](MemberInfo element)
at Sidio.Sitemap.Blazor.SitemapMiddleware.CreateSitemap(IComponentBaseProvider componentBaseProvider)
at Sidio.Sitemap.Blazor.SitemapMiddleware.InvokeAsync(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)

Hi, Thanks for your reply.
I found that the problem came from I am using a custom component to redirect the 404 URL.
Routes.razor
<Router AppAssembly="typeof(Program).Assembly" AdditionalAssemblies="new[] { typeof(Client._Imports).Assembly }">     <Found Context="routeData">         <RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)" />         <FocusOnNavigate RouteData="routeData" Selector="h1" />     </Found>     <NotFound>         <PageTitle>Not found</PageTitle>         <LayoutView Layout="@typeof(Layout.MainLayout)">             <SidioSitemapBlazorTest.Components.Pages.NotFoundPage />         </LayoutView>     </NotFound> </Router>
NotFoundPage.razor
`
@page "/pagenotfound"
@page "/pagenotfound/{httpcode}"
@inject IJSRuntime jsRuntime
@rendermode InteractiveServer
This URL do not exist...Redirecting...
@code {
[Parameter]
public string? httpcode { get; set; }
protected override async Task OnAfterRenderAsync(bool firstRender)
{
    if (firstRender)
    {
        var uri = navManager.ToAbsoluteUri("/");
        int redirectAfterMs = 1000;

        await jsRuntime.InvokeVoidAsync("redirectToLocalUri", uri, redirectAfterMs);
    }
}

}
`

Thanks. I'll look into it next week.

Hello, I think I made a mistake, after further experimentation I discovered that the problem was not from custom components, but from multiple routes.
You only need to use more than one page attribute on the same component to cause this problem.
Some thing like:
@page "/pagenotfound"
@page "/pagenotfound/{httpcode}"

@phidiassj the issue is fixed in release 1.0.2


BUG: Installation doesn't work - on publishing migrations

This command
$ php artisan vendor:publish --provider="SanderVanHooft\Invoicable\InvoicableServiceProvider" --tag="migrations"
doesn't work.
Filename is incorrect:
        // Publish migrations
         $this->publishes([
             __DIR__.'/../database/migrations/2017_06_17_163005_create_invoices_table.php'
             => database_path('migrations/2017_06_17_163005_create_invoices_table.php'),
         ], 'migrations');

Versus folder contents:

@PovilasKorop Thanks for bringing that up. The filename should indeed be ..._invoices_tables.php instead of ..._invoices_table.php. I'll patch it.

Patched. Thanks @PovilasKorop !


No Data and errors

Hi Marius
Sorry to bother you again but Ive hit a roadblock.
Firstly when trying to access the Trans Log in Tm1 Im getting nothing returned. I should have 4 records being returned but I see [] :

In the Trans Log I have the 4 records:

So instead I tried another example , the one that returns data from a cube view:

But I get this error:

Am I doing something wrong? Ive tried lots of things but its hard to work out as ive not used any of this before. Any pointers would be great
Thanks Again
Dan

Hi @dpeeroo,
the user name and cube name filters on the transaction log are case sensitive in the REST API. So you have to write DPeeroo.
It doesn't make sense IMO, but that's how IBM built it in the API.
To solve the second problem you can do 2 things:

Upgrade to the latest TM1py master branch here on GitHub with pip: pip install https://github.com/cubewise-code/tm1py/archive/master.zip --upgrade
add the third argument private=False to the function call

I hope this helps!

Hi Marius
This is great! Its working now and I have data so I can go through the Challenges you did in your demo.
Many many thanks again
Dan

You are welcome!
PS
to know what arguments a function requires (e.g. cube_name, view_name, private) you can press shift + tab when the cursor is inside the parenthesis


Try to use the GHA cache when building the images

Im not sure if this will work, counting that we are running the docker command from inside dapper....
Signed-off-by: Itxaka<EMAIL_ADDRESS>

Not really possible with our current approach.

Running with dapper means that we dont get access to the builder that we set up in the job
Running a Dockerfile that references a local image is not supported, because the builder is a docker-container so it doesnt share the images. So building the iso without pushing the image is not possible. This does not affect us as we push the image on the CI but still...
No idea why but I cant use the cache properly. Tried pushing to GHA, it did push but didnt use it afterwards, tried local files to /tmp, it stored it but never reused it.

This is something to do down the line I think, once we kind of fix the installer and crap like that, its currently not possible without heavy hacks.


Chore/tens multiplier

Changes
The formatNumberToAllowableTensMultiplier helper function has been modified to round to a tens value based upon a passed in rounding mode.
For example:
value: 69
tensMultiplier: 10
roundingMode: round_down
The result will now be 60 in lieu of previously 70.
The reason being is that if a user enters in an amount of 69, we don't want to round it up, because they will end up paying more for an extra quantity.

Successfully published:
 -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS>


Can't install v3 on forge

After running: forge install --no-commit paulrberg/prb-math@v3, I get:

Also tried:

forge install https://github.com/paulrberg/prb-math@v3 (same error)
forge install<EMAIL_ADDRESS>(same error)

Also re-tried all 3 options after a forge clean. Didn't work either.

Finally, updated my foundry via foundryup. Currently running forge 0.2.0 (427c1b5 2022-12-07T00:09:22.004732Z).
Still didn't fix it.

Thanks for reporting this, @antoniopgs. Dependency management is an area that is unfortunately still not great in Foundry.
This is odd. I just ran the two commands you have run on my machine, and they both worked fine:

So I cannot reproduce this. Might you be able to share the following information?

OS version
git version
forge version

In the meantime, a couple of notes:

It is confusing that Foundry refers to the value after the @ as the "tag", because that value can be a branch, tag, or commit, not just a tag. A better term to use in this console log would be "ref" (I'm considering opening an issue about this in the Foundry repo)
.gitmodules doesn't support git tags, so it's best to use branches to prevent accidentally upgrading to the latest commit of a git repo (without a branch entry in your .gitmodules, git modules will be upgraded to the latest main or master whenever you run git submodule update --remote)
You actually don't need to to specify a "tag" (i.e. @v3) for Forge to be able to install a dependency. So maybe this works: forge install paulrberg/prb-math?
The context in which you are running the command might also play a role here. Have you tried installing PRBMath in a copy of my Foundry template?

Should be a local issue @antoniopgs.
For me works perfectly fine:

updated MacOS to Ventura, and now it works

I'm just doing import ./Math.sol
Why is it looking for Math.sol in lib/prb-math/src instead of the current folder?

nevermind, the problem was the auto inferred remappings. turned them off and it fixed it.

Thanks for reporting the solutions, @antoniopgs. I'm glad that it works now.

@antoniopgs I am running into the same issue, how do you turn off auto inferred remappings?

From the Foundry Docs:
https://book.getfoundry.sh/reference/config/solidity-compiler?highlight=auto_detect_remappings#general

So just add this to your foundry.toml:

awesome, thank you!

Thanks for your question, @nolanjannotta, and thanks for chiming in to help, @antoniopgs!
I just wanted to add that this is a known bug upstream in Foundry, which I hope will get patched in the near future.
https://github.com/foundry-rs/foundry/issues/3440
If this doesn't get fixed in Foundry, I might have to drop the src/=src/ remapping and use relative imports in the PRBMath tests.


Sample sample config to only allow users on a homeserver

So we don't proliferate wide-open bridges by default.

Thinking about it we may even want to make it a single user by default. I think @tulir's bridges do this. What do you think @Sorunome?


Tinny bug in misc/scripts/alignment/state_align/forced_alignment.py

In several using of check_all method,  the HTK path turns to 'HCopy'...
If you have same problems acting as check_all([‘HCopy’, * *]), just change the string format to variable format, and you can work well.

Should be fixed with 3332ebbe9c405d8208b3ce70a0b5ff3485d0dc1e


How to change the colors?

Hi there,
thanks for this great plugin!
However, I cannot get one thing to work: I want to change the colors. My CSS looks like this
.chartist-tooltip {
    background: #337fcc;
    color: white;
    border-color: #337fcc;
}

And it works - except for the "arrow" which stays yellow :-)

What did I miss?
Thanks
Andreas

in chartist-plugin-tooltip css change the border-top-color
.chartist-tooltip:before {
content: "";
position: absolute;
top: 100%;
left: 50%;
width: 0;
height: 0;
margin-left: -15px;
border: 15px solid transparent;
border-top-color: #337fcc;
}

Worked like a charm, thank you!


Ban appeal Discord

Nick: Fusion#5752
Reason: Posting an +18 image
i got banned like 2/3 years ago and honnestly i dont know why i posted that picture on the discord chat... i guess i was just beeing a child, but now im a new person im not a child anymore so if you coud forgive me i would be apprecieated

Generally, we do not issue Discord bans, but since this happened long ago, you will be unbanned. Breaking any Discord rules will immediately re-implement this ban.


About using all data when fine-tuning

When reading your paper, I wondered the below question.
In Finetuning Setup of section 4.2. Entity Clustering, there is a sentence "Because UCTOPIC is an unsupervised method, we use all data to finetune and evaluate.".
Even though UCTOPIC is a unsupervised model, is it inappropriate to use training + test(valid) data for training?
In other or related papers, are they also using such way?
Thank you!

Thanks for your interest in our project!
Because we do not use any label in the test or valid data, we believe it's okay to use all data for training.
We use all data for all baselines for a fair comparison.
I think even if UCTopic is trained on only training data, our model can still achieve the best result.

Thank you so much for replying !!!


Added an extra test to Smallest Common Multiple challenge

Pre-Submission Checklist

[X] Your pull request targets the staging branch of FreeCodeCamp.
[X] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[X] You have only one commit (if not, squash them into one commit).
[X] All new and existing tests pass the command npm run test-challenges. Use git commit --amend to amend any fixes.

Type of Change

[ ] Small bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[X] Tested changes locally.
[X] Closes currently open issue (replace XXXX with an issue no): Closes #11009

Description

Added an extra test to Smallest Common Multiple challenge to test if the camper has used arr.sort() without comparison function to sort the numbers, which is wrong.

LGTM
Thanks for contributing :tada:

@Bouncey :+1:


Can't use empty string in contentRule

This rule doesn't work:
style([ contentRule("") ])
it produces the following css:
content:
The workaround is to use:
style([ contentRule("\"\"") ])

fixed in 7.3.0


Unexpected WSL error for both Docker Desktop and Linux distribution installing, with wierd error code 0x8007001f

Windows Version
Microsoft Windows [Version: 10.0.22621.3374]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>-2
Distro Version
None(Cannot install)
Other Software
Docker Desktop Windows, Docker version 25.0.3, build 4debf41
Repro Steps

Download Docker Desktop Windows at first, run the Docker Desktop Installer.exe to install Docker Desktop 4.28.0(139021)
After installed, I should complete the installation of Docker Desktop by ticking the choice using recommended settings(requires administrator password). Surely I did and there was a prompt reading : "C:\Program Files\Docker\Docker\resources\com.docker.admin.exe" wsl -update(I did not install WSL before).
It seems that the command did not work because after the setting up of Docker including agreeing with the wsl -update, I ran wsl --version in the Powershell, succeeded to see the installation of WSL but without any distribution installed as expected. See:

Then ran Docker Desktop and there would be an Unexpected WSL error as follows

Diagnostics files obtained by running & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather -upload in PowerShell is as follows
DockerDiagnosis.zip
Next I performed self-diagnose tool by running & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check in PowerShell.The screenshot is as follows

From now on I would infer that something wrong with the installing of my WSL distros.
Since WSL Distribution docker-desktop is missing , I tried whether other distros could be installed successfully. Unfortunately, one can observe that WSL was installed and updated successfully while no distros installed.

Then I ran wsl --install, the Ubuntu was installed by default but after only a while I encountered a fatal error with error code: 0x8007001f. See:

From some tutorials, I check the support for Hardware Virtulization in BIOS, whether ticking the checkboxs for Virtual Machine Platform and Windows Subsystem for Linux in Windows features, however, failed again.
The tutorial link is as follows which would be helpful for most of the problems encountering WSL error:
Tutorial
Unable to install the distributions of Linux through Microsoft stores or PowerShell command line, I decided to download the Ubuntu WSL distribution rootfs and directly imort it into my WSL .
Follow the post at the website AskUbuntu, I downloaded ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz and tried to import it. We see:

The same error code with directly installing distros in the PowerShell through command line, error code: 0x8007001f

Expected Behavior
Installing the distros successfully.
Actual Behavior
Error code: 0x8007001f
Diagnostic Logs

All screenshots, links and files are attached in the section of Repro Steps

The WslLogs are as follows without reproducing the previous operations that led to mistakes
WslLogs-2024-04-01_17-29-55.zip

The second WslLogs were obtained by running the recommended script:

Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-networking-logs.ps1" -OutFile collect-networking-logs.ps1
Set-ExecutionPolicy Bypass -Scope Process -Force
.\collect-networking-logs.ps1

Then while the PowerShell output the message reading :
Log collection is running. Please reproduce the problem and once done press any key to save the logs.
I ran the command in the other PowerShell , See:

After that opertaion, I pressed any key to attain the log file. See:

Then the corresponding WslLogs file:
WslLogs-2024-04-01_17-38-14.zip
4. Again,  I ran the script directly, see:

The third WslLogs as  follows:
WslNetworkingLogs-2024-04-01_17-49-33.zip

/logs

Hi!
Thank you for your concern and support.
I ran the script and there was a message ouput by the Powershell prompting to reproduce the action that led to the WSL error.
But I just did nothing and the process also finished.
Anything wrong with my operation?
I am a undergraduae student so just green in the field.
So sorry to interrupt you.Thank you very much!
------------------ 原始邮件 ------------------
发件人:                                                                                "microsoft/WSL"                                                                                @.>;
发送时间: 2024年4月1日(星期一) 下午4:56
@.>;
抄送: "【<EMAIL_ADDRESS>主题: Re: [microsoft/WSL] Unexpected WSL error for both Docker Desktop and Linux distribution installing, with wierd error code 0x8007001f (Issue #11402)
Hello! Could you please provide more logs to help us better diagnose your issue?
To collect WSL logs, download and execute collect-wsl-logs.ps1 in an administrative powershell prompt:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-wsl-logs.ps1" -OutFile collect-wsl-logs.ps1 Set-ExecutionPolicy Bypass -Scope Process -Force .\collect-wsl-logs.ps1
The scipt will output the path of the log file once done.
Once completed please upload the output files to this Github issue.
Click here for more info on logging
If you choose to email these logs instead of attaching to the bug, please send them to @.*** with the number of the github issue in the subject, and in the message a link to your comment in the github issue.
Thank you!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

You probably just pressed an extra key. It will usually wait for a keypress to complete. I'd recommend trying again.
/logs

WSL logs have been uploaded.
I ran the recommended script, receiving the prompt Log collection is running. Please reproduce the problem and once done press any key to save the logs. while I opened another PowerShell in administrator mode running the code as follows:
wsl --import Ubuntu-20.04 "D:\WSL\" "D:\WSL\Ubuntu\ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz"
and then
wsl --install
resepectively obtainning the error message:
importing，this may take several minutes.
cannot configure networkingMode Nat)(Network. To disable the network，Please set “wsl2.networkingMode=None” in
: C:\Users\拯救者青音\.wslconfig
Error code: Wsl/Service/RegisterDistro/CreateVm/ConfigureNetworking/HNS/0x8007001f

and

Ubuntu has been installed。
Booting Ubuntu...
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x8007001f
Error: 0x8007001f ???????????????

After the two error messages, I came back to the original PowerShell interface, pressing Enter to save the Logs.

You probably just pressed an extra key. It will usually wait for a keypress to complete. I'd recommend trying again.
/logs

So many thanks for your concern!
I feel sorry again for my green-hand-action and I am looking forward for your reply!

@keith-horton: The root cause of this looks like an HNS error:
Microsoft-Windows-Host-Network-Service	ActivityError	04-02-2024 05:02:19.332	"	"	"wilActivity:
{
	callContext: 	\HnsRpcV2_Create
	currentContextId: 	89
	currentContextMessage:
	currentContextName: 	HnsRpcV2_Create
	failureCount: 	89
	failureId: 	688
	failureType: 	0
	fileName: 	onecore\vm\dv\net\hns\service\common\helperlib\src\servicehelpers.cpp
	function:
	hresult: 	0x8007001F
	lineNumber: 	198
	message:
	module: 	hostnetsvc.dll
	originatingContextId: 	89
	originatingContextMessage:
	originatingContextName: 	HnsRpcV2_Create
	threadId: 	20792
}"	onecore\vm\dv\net\hns\service\common\helperlib\src\servicehelpers.cpp	198	 	3424	20792	2		2b047edd-8497-000e-dbbc-162b9784da01

Do you know what could cause this ?


Add option to choose format of "keep priority on completion" for compatability with other todo.txt app

Did you check if a similar feature request has already been reported?
Yes
Is your feature request related to a problem? Please describe.
I am trying to use todo.txt on nextcloud, from a PC and from my android phone. The incompatibility of how each app treats "keep priority on completion" is frustrating, and although the guidance of todo.txt itself suggests saving priority on completion as a key:value pair, this format is inconvenient.
Describe the solution you'd like
I would like to have an option added which allows the priority to be kept as a letter in brackets after the completion date, before the creation date. At the moment, the task is completed in sleek like this:
x 2022-07-09 2022-07-08 some priority B task I completed pri:B
and I would like an option for the task to be completed like this instead, retaining the priority as it was originally:
x 2022-07-09 (B) 2022-07-08 some priority B task I completed
I appreciate the key:value pair is suggested to be done like this:
https://github.com/todotxt/todo.txt#rule-2-the-date-of-completion-appears-directly-after-the-x-separated-by-a-space
and I have raised a feature request in simpletask android which also looks at this issue (trying to make simpletask more compatible with how sleek might handle this in the next release candidate)
https://github.com/mpcjanssen/simpletask-android/issues/1176
Having said that, a completed task from simpletask android ends up looking like this in sleek:

This already works well, because it appears completed, and still retains a rendition of the "priority"
Added benefit: the priority is already retained when you "untick" the completion checkbox:

Given all of the above, I agree with smichel17:
https://github.com/mpcjanssen/simpletask-android/issues/1176#issuecomment-1155734888
I think the todo.txt key:value pair suggestion for recording priority is overly complicated in this situation, and I think the simpletask android developers got it right.
Describe alternatives you've considered
There is not a comprehensive alternative at the moment. The original implementation of todo.txt suggests that priority should not be kept on completion, but the ease with which tasks can be completed in sleek / simpletask (click of a button / checkbox) means that keeping the priority and restoring it instantly is almost a required feature.

Thanks for suggesting this. Unfortunately I currently don't have access to my computer and can only start looking into this in October. I'll keep you posted when there is any progress.

@ransome1 thanks, I might even get round to doing my own pull request for this, would that be ok with you?

Absolutely, that would be highly appreciated! :)


BakedLightmap extents don't update in real time 3.2.4 beta 6

Godot version:
3.2.4 beta 6
OS/device including version:
Windows 64 GLES3
Issue description:
The new BakedLightmap node:
When changing the extents by grabbing the handles in 3D and dragging them larger or smaller, the extents field in Inspector don't update in real time.
If you click off the node and back on it then they update.
Steps to reproduce:

Create a BakedLightmap node
Select it
Grab it's handles in the 3D view and resize it's Extents

Note that the Extents values (X,Y,Z) in Inspector don't update.

Duplicate of https://github.com/godotengine/godot/issues/45317.

Duplicate of https://github.com/godotengine/godot/issues/45317.


Fix non payable message decorator

Conditional for payable message decorator is wrong.
Thus cannot define non-payable message in ask language, and gets compile error even though payable: false decorator is properly set.
@message({ mutates: true, payable: false })
  flip(): void {
    this.data.flag = !this.data.flag;
    let event = new FlipEvent(this.data.flag);
    // @ts-ignore
    env().emitEvent(event);
  }

The PR will be useful but need to print warning that payable will not be checked by contract actually.

I will merge it. But non-payable is not supported this time.


How to make timeline of 30 min step instead of 1 hour?

I want to make timeline of 30 min step. what should I change?

Hey 👋
You have to double "count" of timeline items in timeline lambda. And then use index to place each item correctly and show the correct time. For example this updated timeline lambda in ProgramGuideSimpleScreen:
timeline(
    // timeline variable is defined as a range 8..22, thus we want double the count of
    // items in this range. Plus 1 is used to add a last 22:30-23:00 item
    count = timeline.count() * 2 + 1,
    layoutInfo = {
        // Then use index to calculate the correct start & end hours, keep in mind that
        // 10.5 is 10:30
        val start = timeline.first + 0.5f * it
        ProgramGuideItem.Timeline(
            startHour = start,
            endHour = start + 0.5f
        )
    },
    itemContent = {
        // Again use an index to calculate the correct hour to show in the text
        TimelineItemCell(timeline.first + 0.5f * it)
    },
)

Produces 30m intervals:

Hi
Thank you for your amazing guidance. It is really appreciated.
I also have one more question. Is there any way to make timeline like this image.
Let me know, Do you know how to achieve this or just tell me in which file of library need to be changed.
Thank you very much...

working fine for timeline of 30 min step but how can we increase width size of 30 min slab?

@oleksandrbalan How do we increase timeline width size in 3o min slab?

@chat2goku I have answered in https://github.com/oleksandrbalan/programguide/issues/17#issuecomment-2066862664, sorry for the late response.
@ChetanPatelPlayBoxTV See dimensions parameter in ProgramGuide, where you can set the width of the whole hour: timelineHourWidth.
ProgramGuide(
    dimensions = ProgramGuideDefaults.dimensions.copy(timelineHourWidth = 256.dp),
    ...
) { ... }

timeline-width.webm


[MINOR][DOCS] Impala does NOT SUPPORT mor table with hudi 0.10-release

impala-v3.4.0, hudi-0.10-release with mor table, query data does not work, some details in #4510 https://github.com/apache/hudi/issues/4510
Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds quick-start document.)
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[x] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@hudi-bot run azure

@bhasudha : can you please follow up on this.

Sorry for untimely reply， MOR  was never support with Impala read， some details on jira： jira

Sorry for untimely reply, i think MOR was never support with Impala read，we talk at https://github.com/apache/hudi/issues/4510 and  some details on jira:  https://issues.apache.org/jira/browse/IMPALA-8778

@Guanpx @nsivabalan this might be confusion btw support RO query vs Snapshot query in MOR

RO query supported in https://issues.apache.org/jira/browse/HUDI-146
Snapshot query not yet supported as it requires merging https://issues.apache.org/jira/browse/HUDI-610

@Guanpx can you confirm please? then we can close this as the matrix should be correct.

@bhasudha @nsivabalan based on #4510, RO query does not work on MOR table with Impala?

@bhasudha @nsivabalan based on #4510, RO query does not work on MOR table with Impala?

Looks like that from #4510. I havent tried this myself. @garyli1019  can you please help clarify ? Is Read optimized query supposed to work on MOR tables ?

@bhasudha I haven't tested RO view on MOR myself, but theoretically it should work because the code path is the same. If the MOR table has log file only, then it may throw some error or return an empty table.


⚠ Jenkins Plugins Artifactory has degraded performance

In 8f607fd, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1360 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 77f43fd after 42 minutes.


Environment setup update

Updating README.md to show a clean path to setup a simple node on clean install of Ubuntu 16.10

This command
WASM_LLVM_CONFIG=~/wasm-compiler/llvm/bin/llvm-config cmake -DBOOST_ROOT="$BOOST_ROOT" ..
resulted in this error:
`CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find GMP (missing: GMP_LIBRARIES GMP_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
libraries/fc/CMakeModules/FindGMP.cmake:50 (find_package_handle_standard_args)
libraries/fc/CMakeLists.txt:20 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/tbcox/wasm-compiler/llvm/build/eos/build/CMakeFiles/CMakeOutput.log".`

You will need GMP installed. This is what I did, I know at least the 1st needs to be done, the other two I am not sure.
as root:  (feel free to modify these steps to match your other steps).
cd /tmp
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
tar xvjf gmp-4.3.2.tar.bz2
mkdir gmp-4.3.2/gmp-objs/
cd gmp-4.3.2/gmp-objs/
../configure --prefix=/usr/local --disable-shared
make install
cd ../..
followed by the package mpfr, as
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
tar xvjf mpfr-2.4.2.tar.bz2
mkdir mpfr-2.4.2/mpfr-objs/
cd mpfr-2.4.2/mpfr-objs/
../configure --prefix=/usr/local --disable-shared --with-gmp=/usr/local
make install
cd ../..
and finally, the third package mpc, as
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar xvzf mpc-0.8.1.tar.gz
mkdir mpc-0.8.1/mpc-objs/
cd mpc-0.8.1/mpc-objs/
../configure --prefix=/usr/local --disable-shared --with-gmp=/usr/local
make install
cd ../..

I'm not sure if I merged things properly with the docs, someone should review the README.


cranelift: Remove redundant dominator-tree structure

The egraph work introduced a helper for walking over the dominator tree in pre-order, but it turns out that helper already existed in the dominator_tree module itself, and the older version also supports constant-time dominance checks using the same trick that @cfallin suggested in #7891. So let's just use that version.
cc: @elliottt @lpereira

LGTM!


The patch command should always fail when a given patch is not applied

Examples
Assume in.yaml:
_plugin_configs: {}
data:
  hello: "world"
  stuffs: ["abc", "123"]
  foo: null
  bar:
  obj:
    dog: "barks"

A value that is null, an array, or a scalar cannot have an object patched. This should result in an error and a non-zero exit code. Currently the tool returns a  0 exit code and the unaffected input.
cat in.yaml | deck file patch --selector "$.data.foo" --value 'xyz:"abc"'
_plugin_configs: {}
data:
  bar: null
  foo: null
  hello: world
  obj:
    dog: barks

This ticket should also capture any additional ways that the patch command fails silently that we are aware of.
These are bugs and not breaking changes. Any existing users that "rely" on this broken behavior have the opportunity to resolve the incorrect usage of the tool because of the new raised failure.

Repeating what I wrote in the linked issue, but more on topic here;

I do not think that is helpful in this case; The patch operations explicitly defined the patch to be on an array or an object. So the user clearly expresses their intent to patch only those types. So it is safe to ignore other values. Consider the following json:
{
  "filter_by": {
    "tags": true,
    "name": false
  },
  "data": {
    "key1": {
      "tags": { "hello": "world" }
    },
    "key2":{
      "tags": { "hello": "world" }
    },
    "tags": { "hello": "world" }
  },
  "tags": { "hello": "world" }
}

Currently a recursive patch for all "tags" objects, setting field; "hello": "universe", will work as intended. Since it will skip $.filter_by.tags since it is a boolean.
If we throw a hard error on this then for a user to work around this would be quite cumbersome I think. Especially because of the dynamic data we're dealing with. Any custom plugin can introduce a field that has a name collision with an existing Kong field.

How about adding a flag to make it configurable such that cases like this will still work?
eg. --fail-on-non-matching-type (or preferably something shorter).

will work as intended

This feels like an assumption.  It's not obvious why the patch shouldn't work in this case, the user has to know we skip because of a type check that may or may not be useful to them.
The selector provided by the user should scope the targets of the patch such that only the intended values are updated


[Site]: https://apisix.apache.org is empty on Opera（Macbook Pro M1）

Current State
Description of the current state/issue:
When I use Opera Browser, Home page of https://apisix.apache.org can't see anything. Same time, other browser is OK.

Link to the page:
https://apisix.apache.org
Screenshots (if relevant):

Desired State
Description of the change you are proposing:
Would you like to fix this issue?
No response

Hi, can you use Google Chrome browser？

Hi, can you use Google Chrome browser？

I have Chrome, but my main browser is Opera, That's why I'm asking this question.

Can you check out this issue? cc @SkyeYoung

This is because this section on the right side of the home page requires the use of WebGL.

But I don't really know why this is happening, especially after I read https://caniuse.com/?search=webgl. It looks like Opera already supports this feature.

Since I am not using Opera, can you help me to confirm if it has some options to disable the use of WebGL?
(Also, since it's using Chromium as the kernel, I don't think there's much reason to use Opera anymore in this day and age ......)

This is because this section on the right side of the home page requires the use of WebGL.

But I don't really know why this is happening, especially after I read https://caniuse.com/?search=webgl. It looks like Opera already supports this feature.

Since I am not using Opera, can you help me to confirm if it has some options to disable the use of WebGL?
(Also, since it's using Chromium as the kernel, I don't think there's much reason to use Opera anymore in this day and age ......)

Thanks for reply, When I turn on "Settings->System->Use hardware acceleration when available", every thing OK.


URL rewrite using dynamic data in JWT

clone from: https://github.com/auth0/nginx-jwt/issues/8
Leverage the URL rewrite capabilities of Nginx (ex: using the ngx_http_rewrite_module module) and perform a rewrite where the destination URL contains data from the JWT.
Example:

The Nginx endpoint being called is /api/userinfo and the JWT passed by the client contains a field user_id: sandrino123
The rewritten URL to the downstream endpoint becomes https://server01/legacy/api/getuserinfofor/$user_id (where $user_id is a value from the JWT in the Authorization header)

I just opened PR #7 as a solution to this issue.  It may not be what you are looking for but I thought I would give it a go.  I feel that any rewriting should be done by the client and that it would out of the scope of this module.  The PR give users the ability to request the 'payload' table in order to perform any rewrites they need.


Discussion: Is the Terraform usage model for Apex 'right'?

I've been trying to get a solid Terraform workflow running with Apex, but I'm hitting a few stumbling issues. It seems to me the prevalent way to use this is conjunction with something like API Gateway, but it feels like structurally the setup might be wrong. In short, because the terraform scripts live in-situ with the code it means that you need to either take on the overhead of TF modules or you have to repeatedly duplicate your Terraform files: this means stuff like state for API gateway definitions is a nightmare, and you've potentially got 3x set of scripts to keep in line - plus then how do you cleanly promote an API gateway definition across it's stages?
I think that having the Terraform scripts themselves be physically different is problematic: the per environment customisation can already be done pretty well with tokens and variables in a single set of scripts generally. There's also problems where the role ARN we use needs to be provisioned per-environment too, and we cant just use the as-is implementation. I basically run apex infra twice, once with a filter for specific assets, then again after an apex deploy.
Proposed: Drop Terraform specific support (deprecate, show a message on how to migrate with a link, then drop in 2-3 versions time), and have an environment variable passthrough function - so when you do:

apex run -e env -dir workdir terraform tf-params-here

What happens is that it shells through, but setting various APEX_FUNCTION_name=ARN, APEX_ENV=blah variables as today - but completely decoupled from Terraform and its var models, so it can be used with other tools transparently. It means a shift from ${var} to ${env} - but then makes the whole process tool agnostic.
Then people like me can do effectively custom setups without needing Apex to support every permutation. I can just have a shell script that runs 3x Apex commands, so I can..

apex run -e env -dir /infra/pre terraform apply
apex deploy -e env
apex run -e env -dir /infra/post terraform apply

Thoughts? Happy to do up the changes in a PR.

I don't even really use infra personally, I just copy/paste the odd thing, I don't save much from the variables. That said I think it's kind of fine, since it's easy to ignore. It might be nicer to have apex dump out a .tfvars file so you can just refresh that periodically, not sure, I haven't wasted too many cycles thinking about it since I stopped using it

The .tfvars approach would still be Terraform-specific though - I'd love to be able to use the Apex function ARN's in other stuff besides Terraform and replace all the kludgey aws cli calls I'm doing in scripts.

You could probably use apex list --tfvars as-is, that's not really coupled to TF, but judging from the stats there are a reasonable number of people using apex infra, so I doubt that'll go away, easy to avoid all together if you don't like/want it.

There's still one scenario I see it struggling with: I want to be be able to inject Terraform output ARNs and information (i.e. When I provision elasticsearch, how do I get that elasticsearch URL into my Apex config for the functions). Any ideas on how I might go about that? I'd like to ideally address that problem somehow too - though apex exec would be a very nice/clean approach for most things.
If you'e happy for me to take a swing at the apex exec stuff, I can try and smash that out in the next day or so - it should only be a few hours to turn it around. I did put an interim PR in for another issue with terraform to do with not passing vars to an operation that needed it, but it's unrelated.

I dig this idea a lot. I've come across the same issue and really like the pass-through solution you came up with.
For getting your elasticsearch URL into your apex functions. (If I'm understanding correctly)
You can output your elasticsearch URL from your Terraform, then when running apex deploy you can supply that Terraform output using the apex -set flag.  I like this pass-through thing. Originally I did plan on exposing the terraform outputs to apex, but haven't bothered for my own use-cases. It does become a cyclic issue as well, if you don't build things up organically, TF needs the funcs and the funcs need TF etc haha.

Very elegant indeed.


Error in deployment of synthetic-monitor with default performance thresholds

Hi
When I define a synthetic http monitor in the gui without defining performance thresholds (this is using the default values here), I can download it without problems. When trying to deploy it without changes, I get an error:
2021-12-23 12:03:05 ERROR       Failed to update DT object testcheck (HTTP 400)!
Response was: {"error":{"code":400,"message":"No performance thresholds provided"}}, responsible config: projects/test/synthetic-monitor/testcheck.json
Probably the problem is on the donwload side or in the API.
Regards
Matthias

This will likely need similar behavior as the host-auto-update API which also returns less than is needed for uploading a configuration: (https://github.com/dynatrace-oss/dynatrace-monitoring-as-code/issues/306).
Open question: What exactly does the API expect on upload? Is an empty default possible, what's a sane default to set?

I was not able to reproduce the bug.
I created a synthetic HTTP monitor as described in the ticket without thresholds defined.
The downloaded config did not define it by default:
 "anomalyDetection": {
  "loadingTimeThresholds": {
   "enabled": true,
   "thresholds": []
  },
  ...

I was able to upload the config immediately again without any error.
Thus, closing this ticket. Please reopen it if you're able to reproduce this issue.

I could no longer reproduce the problem. So it seems to be solved. :-)


default width for all the columns

columns at startup are all the same size, put default values so they don't always require resizing

implemented in 0f91d118e7751933b7cc7dd45e4dfef14d009a4b


odo login seems to erase .kube/config

[kind/bug]
What versions of software are you using?
Operating System : Win10 Pro
Output of odo version :
odo v0.0.15 (2f7ed497)

Server: https://api.rh-us-east-1.openshift.com:443
OpenShift: v3.9.31
Kubernetes: v1.9.1+a0ce1bc657

How did you run odo exactly?
odo login api.rh-us-east-1.openshift.com --token=
Expected behavior
Previous contexts in .kube/config should be preserved
Actual behavior
odo seems to erase the .kube/config file and a single cluster/context is then present
Steps to reproduce the behavior
oc login cluster1 -> info about cluster 1 are now in .kube/config
odo login cluster2 -> info about cluster2 are now lost
Any logs, error output, etc?
Do you have any idea what may have caused this?
Do you have an idea how to solve the issue?

verified. This is not good. @surajnarwade

@kadel fixed the bug in #997


Ability to show month

First off, thanks for creating this. It looks amazing.
I am using it to show a lot more than a week though. It would be useful if there was some way to differentiate months. I think the most simple would be to add the option to have the month visible? Perhaps something like this

@Jab2870 So you only want it shown for the first of the month?

That wasn't my intention. I was trying to show where it could be rather than how. I think it would be preferable if it was NOT just on the first of the month.

What I could do is make the format of the date optionally configurable. That way you can add the month there and style it with card_mod (if needed). You could then set it to something like ''d' 'MMMM'', which would result in for example 19 May.

This has been changed in the dev branch and will be part of the upcoming 1.6.0 release.


docs: improve multipass mount page

@davidekete I've replied to your comments, leaving final edits to you. Thanks!

@davidekete I've replied to your comments, leaving final edits to you. Thanks!

Hi @giuliazanchi, I just finished the final edits. Thanks for all your suggestions, they were instrumental in closing this issue.

Thanks @davidekete ! This looks good :) I'll add your suggested clarification to the Mount page as well; since you didn't edit the .md export, I'll do it directly on Discourse and add you to the list of contributors.

Classic mounts use technology built into Multipass and thus allow for higher compatibility, while slightly reduced performance. Native mounts, on the other hand, use hypervisor or platform-specific mounts to offer better performance, but limited compatibility.


feat(elevation): Initial Implementation

Closes #4592
[Delivers #127009653]

LGTM.

LGTM, minor nits only. Thanks, @traviskaufman!

Changes made! Will merge when CI passes