CASMNET-692: Add initial BICAN toggle

Summary and Scope
This change adds the BICAN network to CSI sls_input_file.json.  This network is a pointer or "toggle" to the default route of all system servers.

Fixes CASMNET-692
Requires CHANGES TO sls_common/types.go (https://github.com/Cray-HPE/hms-sls/pull/29)

Issue Type

RFE Pull Request

This change allows the specification of the system default route using a new value in the SLS NetworkExtraProperties  structure: SystemDefaultRoute. The SystemDefaultRoute value will only exist in a specialized pointer or "toggle" Network initialized via cray-site-init (CSI): BICAN.  Users and services may discover the desired system default route, and it's values via a two-stage lookup:

Query SLS /Networks BICAN network for the SystemDefaultRoute value (either CMN, CAN, CHN or HSN).
Any specific network and routing values (other than default or <IP_ADDRESS>) may be obtained by a second query to the network specified by SystemDefaultRoute.

Creates the following Network structure in SLS:
{
    "Name": "BICAN",
    "FullName": "SystemDefaultRoute points the network name of the default route",
    "Type": "ethernet",
    "IPRanges": [
        "<IP_ADDRESS>/0"
    ],
    "ExtraProperties": {
        "CIDR": "<IP_ADDRESS>/0",
        "VlanRange": [],
        "SystemDefaultRoute": "CMN"
    }

The ExtraProperties.SystemDefaultRoute value is used to point or "toggle" to the Network that should be used to lookup the DefaultGateway value.  This network's gateway IP should be used to set server default routes for Bifurcated CAN.
Prerequisites

[x] I have included documentation in my PR (or it is not required)
[x] I tested this on internal system (x) (if yes, please include results or a description of the test)

Idempotency
CSI will always initialize the BICAN network to point to the Customer Management Network (CMN) as required for installation or upgrade.  From a CSI perspective this network is hard-coded and thus idempotent.

@rsjostrand-hpe I had modified the sls_common type for the NetworkExtraProperties to be:
type NetworkExtraProperties struct {
	CIDR      string  `json:"CIDR"`
	VlanRange []int16 `json:"VlanRange"`
	MTU       int16   `json:"MTU,omitempty"`
	Comment   string  `json:"Comment,omitempty"`

	Subnets []IPV4Subnet `json:"Subnets"`
	SystemDefaultRoute string `json:"SystemDefaultRoute,omitempty"`
}

This works and generates the JSON I wanted, but is there a creative way in Go to only have the SystemDefaultRoute value if the Network is "BICAN"?  Anything like extending the structure something as follows?
type NetworkExtraProperties struct {
        NetworkExtraProperties
        SystemDefaultRoute string `json:"SystemDefaultRoute"`
}

With the above I could then say 'if Network == "BICAN", then...'.
Suggestions?

I have a few suggestions:

Leave the NetworkExtraProperties structure as you have it so all networks can have , and add wording to the SLS Swagger file that the  SystemDefaultRoute is only meant to be used with the BICAN network. I feel like this might be the sanest option.
We could create a new NetworkExtraPropertiesBICAN struct. Since Golang doesn't support inheritance, but composition.type NetworkExtraPropertiesBICAN struct {
    NetworkExtraProperties
    SystemDefaultRoute string `json:"SystemDefaultRoute"`
}

However, that will most likely cause issues as everything is CSI is expecting the type NetworkExtraProperties, and then we need to have special BICAN only functions. I don't think this is a good path.

If you really want to ensure that the SystemDefaultRoute field is only present in the JSON output for SLS. We could perhaps could make NetworkExtraProperties implement the MarshalJSON interface, and do custom json marshaling to exclude the field if the network is BICAN. I prefer this option over 2.

I think you need a rebase @trad511


high lum areas turn into pink (higher R channel values) after postprocess()

I loaded some .nef raws and was trying to change the overall expose by manipulate the raw values, such as raw.raw_image_visible[:] = (raw.raw_image_visible[:])/2. then when I do raw.postprocess() the high lum area's red channel are higher than other two channels, where the same point in the original raw after postporess() RGB channels are a almost the same.
I think I must be missing something here, but I have tried many ways it is still the same effect after I changes the overall value of the raw. which I believe should only effect the over all lum, acting as a Digital gain removal.
any thoughts? or maybe point me to the right direction, am I miss a keep parameter to set when I use postprocess()? I have tried to use no_auto_bright  , use_camera_wb and so on, still no getting what I am looking for.
please help.

I don't think you can expect any consistent results from postprocessing when changing the raw data in such way. This is because postprocessing is not just done based on the raw values but also metadata, which you can't change. If you just want to change luminosity, why not do that at postprocessing time? That's the right time for it I think. Apart from that, the actual postprocessing is not implemented in rawpy itself, but in the underlying libraw library, so any questions related to the processing itself may be better asked in their discussion forums.

OK, thx @letmaik I will check their forums.


Winodws Temporary File Name function choice

What is the reason behind using _tempnam to generate temporary file names instaed of tmpnam or tmpnam_s?  Something occured when the switch to the thread safe code base happened where I can no longer run simulations in parrallel within python. I keep getting an error 305 when the last few simulations are executing.  When I run the simulations in serial though, I am able to complete as many as I wish to.
If this is not the right place to bring this up I'm happy to move it to a different forum.
Thank you

_tempnam replaced tmpnam because it defaults to generating a file name whose path is \Users\<username>\AppData\Local\Temp, which is a "safe" location to place temporary files under Windows since the user has guaranteed write access to it. Plus it allows a prefix ("en") to be attached to the file name which makes it easier to locate the file in case a manual cleanup of the aforementioned folder needs to be made (as when the program aborts prematurely for some reason).
However, just as with tmpnam, _tempnam is not thread safe so it may fail when multiple EPANET projects are being run in parallel. The following code snippet may be a way to avoid this:
   // --- use Windows _tempnam function to get a pointer to an
    //     unused file name that begins with "en"
    for (;;)
    {
        strcpy(fname, "");
        name = _tempnam(NULL, "en");
        if (name)
        {
            // --- copy the file name to fname
            if (strlen(name) < MAXFNAME) strncpy(fname, name, MAXFNAME);

            // --- free the pointer returned by _tempnam
            free(name);

/////////////////////////////////////
            // -- try to open the file
            FILE *f = fopen(fname, "wb");
            if (f != NULL)
            {
                fclose(f);
                return;
            }
//////////////////////////////////////
        }
    }

Another limitation of _tempname and tmpnam is that they can only generate a maximum of 32,767 file names. If you are running some kind of genetic algorithm or Monte Carlo simulation where you keep calling  EN_createproject at every trial then it is possible that you could exceed this limit. A better strategy is to call EN_createproject just once for each thread and then use the toolkit functions to modify the network data and make runs in each thread for each of your trials.

Finally had some time to try and incorperate this into the source code. It builds on it's own with no issuses and builds within the owa-epanet swig wrapper.  I have been successfully running O(10^5+) simulations without any problems with the INT_MAX limit of 32,767 through the python wrapper.  the way I am running my parrallel sims is via the multiproccess module, so I do not have thread safety issuses.

I tried running 1,000,000 simulations but only made it to 975,000 before encountering error 305


Core data client issues fatal errors

What is this client used for? I have been running this service in an environment without core-data and the software stack works just fine.
https://github.com/edgexfoundry-holding/device-onvif-camera/blob/72c31d4250f40c982c4b3924e6f71b4c9e8a6948/cmd/res/configuration.toml#L61-L64
However, something about the last 4 commits has broken it, as i get an endless stream of errors:
level=WARN ts=2022-05-05T03:47:31.959858833Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:32.961778923Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:33.962877041Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:34.964178535Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:35.965569188Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:36.966632657Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:37.967566331Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:38.968655964Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."
level=WARN ts=2022-05-05T03:47:39.969798371Z app=device-onvif-camera source=clients.go:137 msg="unable to Get service endpoint for 'core-data': no matching service endpoint found. retrying..."

I think it may be related to the security hardening PR. The service no longer starts.

@ajcasagrande

The core-data config is required for device-sdk-go https://github.com/edgexfoundry/device-sdk-go/blob/main/internal/clients/init.go#L58

And we just upgrade the lib from v2.1 to v2.2, it's the latest changes from the go-mod-bootstrap, the BootstrapHandler keep trying to get the service endpoint.
https://github.com/edgexfoundry/go-mod-bootstrap/pull/305/files

@ajcasagrande
I opened the issue on go-mod-bootstrap.
https://github.com/edgexfoundry/go-mod-bootstrap/issues/335

If Core data is not being used, then it needs to be removed from the Clients section of the configuration.
Per the Registry ADR, bootstrap now uses the registry to get the endpoint of all clients.

The core-data config is required for device-sdk-go https://github.com/edgexfoundry/device-sdk-go/blob/main/internal/clients/init.go#L58

@weichou1229,  Since Core Data is now optional, this check in the SDK should be removed.


Block and Health commands

Contains:
Fixes for some health and block command issues. Fixes #2524, #2430 and #1619
Required parameter count is now considered the minimum number of parameters the command needs. If it doesn't get enough, the client gets no message telling him what the issue is. If the command is processed, then he gets the proper messages. (#1619 & #2430) and would close #2217
Invisible blocks will now not override their mesh generator. As a consequence, air blocks can now be given to players but won't have much purpose (except replacing liquid blocks and other replaceable stuff) (#2524)
How to test:
Spawn 32 air blocks on a client whose max health is set to 500.
Last but not least, an idea:

[ ] Server will tell the client to return a console error once the command has been cancelled for having insufficient params.

Hooray Jenkins reported success with all tests good!

Thanks for this! I love being able to close multiple issues with one PR :-)
Tested out the assorted fixes and all looks well. Perhaps except for the peculiar commit message :D
Want to submit a separate issue to cover improving client-side notifications over problematic command output?

I didn't really know how to change the commit message, and I was fearing losing the changes to my code, so I just left it like this but with a proper explanation :)
Sorry for the quality bits, I realized now what I forgot and will try not to do the same with the next PRs (+ looking over all the javadoc/test stuff )
About the last issue, I would like to fix that one as well yeah. Though I'd get comments to know what to improve about the PR to complete the code part and clean the code, but I can just put it in another PR :P

@portokaliu: via command line you can change the message of a commit with --amend. This also allows you to make more significant changes to a commit, i.e. include additional changes to the code. Similar functionality is also available via IntelliJ's VCS/Commit Changes interface.
--amend can be very useful and I'd recommend you to use it. However you need to be conscious of what it does, i.e. the fact it changes the commit's ID.
More info here: https://help.github.com/articles/changing-a-commit-message/
Hope it helps.

Hmm, I did look through the VCS menu but haven't found the proper command for this. I will use the command with the git console though :) . Looking at the descriptions in the link and might try it on one of my other repos.
Thanks for the help @emanuele3d :D

Have you looked into VCS/Commit change? In the top-right of the commit interface there's an amend checkbox, at least in my intelliJ version. By the way, I also used to like command line better and I still do lots of things through it. But the interface does help in writing multi-line commit messages AND helps to visually compare files.

The code quality stuff is minor, I've been meaning to go looking myself when I merge something just because I have an excuse to (the files are being changed anyway) :-)
Rebase in IntelliJ can do the updated commit message nicely too, since you can squash a second commit (like a few follow-up tweaks) into the first one and update the commit message right in the IDE. I haven't gone looking much for alternatives tho, so the VCS/Commit route may actually be easier!


Implement chaos experiment to restart docker service on the node where application is deployed

/closed
via #111  #368


Provider orders' integration with ticket tracking

The provided practice's statement requires two synchronizations of Provider Order's server:

[x] When an Order is created, server should change pending article's status to REQUIRE_PROVIDER in tickets using a service method provided by Ticket Tracking.
[x] When an Order is closed, server should change pending article's status to IN_STOCK in tickets using a service method provided by Ticket Tracking.

Issue metrics:

Real time: 1 hour 10 mins (1,15 hours).
Code lines (for each technology):

Angular: +0, -0.
Spring: +27, -3.


Refactor into library, use structopt for CLI handling

This is re: #74 - it seems like a cool idea to be able to build your entire webapp (frontend and backend) in one go using a cargo build script. This would make it possible to embed your frontend build artifacts in your backend binary (which is my immediate goal), or do other, even fancier stuff like hot-reloading with an api backend.
For an example consumer, check out this build script that I used to test this PR.
I'm absolutely certain that this is not a finished effort - there is obviously a lot of work in the way of docs and API exposure considerations before it would be ready for prime time. I just want to know if this sort of functionality is actually interesting, or if I should drop it.
Thanks! This project makes my hobby possible, so i'm excited to have something to give back.

Thanks for the PR!
This is definitely something that I would like to support, however I'm not sure if exposing the internal interfaces is the right way to go here due to stability concerns.
That said, we do have a stable interface already - and that interface is our command-line interface! Obviously the whole point of this PR is so that you don't have to go through with launching a new process to access the CLI, so it doesn't help us much, however, there might be a way out of this.
If we would convert cargo-web's current arg handling code to use structopt we could use the resulting struct as a stable API, and since it would be tightly coupled to our CLI it would be naturally kept stable. Would such an interface be useful to you or do you want to have access to some of the internals?

if structopt arg handling is desirable, i can make a separate PR and we can go from there - that would be waaaaay preferable to reaching into the guts of the project like this.
i personally don't have any big ideas that would require more access/stability than that, but i'd be interested to hear if anyone else does.

I'm hoping that last commit fixes the tests.
Here's the help side-by-side.
Main:
$ cargo web help
cargo-web 0.6.23

USAGE:
    cargo-web <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    build                 Compile a local package and all of its dependencies
    check                 Typecheck a local package and all of its dependencies
    deploy                Deploys your project so that its ready to be served statically
    help                  Prints this message or the help of the given subcommand(s)
    prepare-emscripten    Fetches and installs prebuilt Emscripten packages
    start                 Runs an embedded web server serving the built project
    test                  Compiles and runs tests
$ target/debug/cargo-web help
cargo-web 0.6.23
Jan Bujak<EMAIL_ADDRESS>A `cargo` subcommand for the client-side web.

USAGE:
    cargo-web <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    build                 Compile a local package and all of its dependencies
    check                 Typecheck a local package and all of its dependencies
    deploy                Deploys your project so that it's ready to be served statically
    help                  Prints this message or the help of the given subcommand(s)
    prepare-emscripten    Fetches and installs prebuilt Emscripten packages
    start                 Runs an embedded web server, which serves the built project
    test                  Compiles and runs tests

Build:
$ cargo web help build
cargo-web-build
Compile a local package and all of its dependencies

USAGE:
    cargo-web build [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --lib                      Build only this package's library
        --no-default-features      Do not build the `default` feature
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -v, --verbose                  Use verbose output

OPTIONS:
        --bench <NAME>            Build only the specified benchmark target
        --bin <NAME>              Build only the specified binary
        --example <NAME>          Build only the specified example
        --features <FEATURES>     Space-separated list of features to also build
        --message-format <FMT>    Selects the stdout output format [default: human]  [possible values: human, json]
    -p, --package <NAME>          Package to build
        --runtime <RUNTIME>       Selects the type of JavaScript runtime which will be generated; valid only for the
                                  `wasm32-unknown-unknown` target [possible values: standalone, library-es6, web-
                                  extension]
        --target <TRIPLE>         Build for the target [default: wasm32-unknown-unknown] [possible values: asmjs-
                                  unknown-emscripten, wasm32-unknown-emscripten, wasm32-unknown-unknown]
        --test <NAME>             Build only the specified test target
$ target/debug/cargo-web help build
cargo-web-build 0.6.23
Jan Bujak<EMAIL_ADDRESS>Compile a local package and all of its dependencies

USAGE:
    cargo-web build [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --lib                      Build only this package's library
        --no-default-features      Do not build the `default` feature
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -V, --version                  Prints version information
    -v, --verbose                  Use verbose output

OPTIONS:
        --bench <bench>                      Build only the specified benchmark target
        --bin <bin>                          Build only the specified binary
        --example <example>                  Build only the specified example
        --features <features>                Additional features to build (space-delimited list)
        --message-format <message-format>    Selects the stdout output format [default: human]
    -p, --package <package>                  Package to build
        --runtime <runtime>                  Selects the type of JavaScript runtime which will be generated
        --target <target>                    Target triple to build for
        --test <test>                        Build only the specified test target

Check:
$ cargo web help check
cargo-web-check
Typecheck a local package and all of its dependencies

USAGE:
    cargo-web check [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --lib                      Build only this package's library
        --no-default-features      Do not build the `default` feature
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -v, --verbose                  Use verbose output

OPTIONS:
        --bench <NAME>            Build only the specified benchmark target
        --bin <NAME>              Build only the specified binary
        --example <NAME>          Build only the specified example
        --features <FEATURES>     Space-separated list of features to also build
        --message-format <FMT>    Selects the stdout output format [default: human]  [possible values: human, json]
    -p, --package <NAME>          Package to build
        --runtime <RUNTIME>       Selects the type of JavaScript runtime which will be generated; valid only for the
                                  `wasm32-unknown-unknown` target [possible values: standalone, library-es6, web-
                                  extension]
        --target <TRIPLE>         Build for the target [default: wasm32-unknown-unknown] [possible values: asmjs-
                                  unknown-emscripten, wasm32-unknown-emscripten, wasm32-unknown-unknown]
        --test <NAME>             Build only the specified test target
$ target/debug/cargo-web help check
cargo-web-check 0.6.23
Jan Bujak<EMAIL_ADDRESS>Typecheck a local package and all of its dependencies

USAGE:
    cargo-web check [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --lib                      Build only this package's library
        --no-default-features      Do not build the `default` feature
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -V, --version                  Prints version information
    -v, --verbose                  Use verbose output

OPTIONS:
        --bench <bench>                      Build only the specified benchmark target
        --bin <bin>                          Build only the specified binary
        --example <example>                  Build only the specified example
        --features <features>                Additional features to build (space-delimited list)
        --message-format <message-format>    Selects the stdout output format [default: human]
    -p, --package <package>                  Package to build
        --runtime <runtime>                  Selects the type of JavaScript runtime which will be generated
        --target <target>                    Target triple to build for
        --test <test>                        Build only the specified test target

Deploy:
$ cargo web help deploy
cargo-web-deploy
Deploys your project so that its ready to be served statically

USAGE:
    cargo-web deploy [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --no-default-features      Do not build the `default` feature
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -v, --verbose                  Use verbose output

OPTIONS:
        --features <FEATURES>          Space-separated list of features to also build
    -o, --output <OUTPUT_DIRECTORY>    Output directory; the default is `$CARGO_TARGET_DIR/deploy`
    -p, --package <NAME>               Package to build
        --target <TRIPLE>              Build for the target [default: wasm32-unknown-unknown] [possible values: asmjs-
                                       unknown-emscripten, wasm32-unknown-emscripten, wasm32-unknown-unknown]
$ target/debug/cargo-web help deploy
cargo-web-deploy 0.6.23
Jan Bujak<EMAIL_ADDRESS>Deploys your project so that it's ready to be served statically

USAGE:
    cargo-web deploy [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --no-default-features      Do not build the `default` feature
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -V, --version                  Prints version information
    -v, --verbose                  Use verbose output

OPTIONS:
        --features <features>    Additional features to build (space-delimited list)
    -o, --output <output>        Output directory; the default is `$CARGO_TARGET_DIR/deploy`
    -p, --package <package>      Package to build
        --target <target>        Target triple to build for

Prepare-Emscripten:
$ cargo web help prepare-emscripten
cargo-web-prepare-emscripten
Fetches and installs prebuilt Emscripten packages

USAGE:
    cargo-web prepare-emscripten

FLAGS:
    -h, --help    Prints help information
$ target/debug/cargo-web help prepare-emscripten
cargo-web-prepare-emscripten 0.6.23
Jan Bujak<EMAIL_ADDRESS>Fetches and installs prebuilt Emscripten packages

USAGE:
    cargo-web prepare-emscripten

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

Start:
$ cargo web help start
cargo-web-start
Runs an embedded web server serving the built project

USAGE:
    cargo-web start [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
        --auto-reload              Will try to automatically reload the page on rebuild
    -h, --help                     Prints help information
        --no-default-features      Do not build the `default` feature
        --open                     Open browser after server starts
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -v, --verbose                  Use verbose output

OPTIONS:
        --bench <NAME>           Build only the specified benchmark target
        --bin <NAME>             Build only the specified binary
        --example <NAME>         Serves the specified example
        --features <FEATURES>    Space-separated list of features to also build
        --host <HOST>            Bind the server to this address, default `localhost`
    -p, --package <NAME>         Package to build
        --port <PORT>            Bind the server to this port, default 8000
        --target <TRIPLE>        Build for the target [default: wasm32-unknown-unknown] [possible values: asmjs-unknown-
                                 emscripten, wasm32-unknown-emscripten, wasm32-unknown-unknown]
        --test <NAME>            Build only the specified test target
$ target/debug/cargo-web help start
cargo-web-start 0.6.23
Jan Bujak<EMAIL_ADDRESS>Runs an embedded web server, which serves the built project

USAGE:
    cargo-web start [FLAGS] [OPTIONS]

FLAGS:
        --all-features             Build all available features
        --auto-reload              Will try to automatically reload the page on rebuild
    -h, --help                     Prints help information
        --lib                      Build only this package's library
        --no-default-features      Do not build the `default` feature
        --open                     Open browser after server starts
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -V, --version                  Prints version information
    -v, --verbose                  Use verbose output

OPTIONS:
        --bench <bench>          Build only the specified benchmark target
        --bin <bin>              Build only the specified binary
        --example <example>      Build only the specified example
        --features <features>    Additional features to build (space-delimited list)
        --host <host>            Bind the server to this address [default: <IP_ADDRESS>]
    -p, --package <package>      Package to build
        --port <port>            Bind the server to this port [default: 8000]
        --target <target>        Target triple to build for
        --test <test>            Build only the specified test target

Test:
$ cargo web help test
cargo-web-test
Compiles and runs tests

USAGE:
    cargo-web test [FLAGS] [OPTIONS] [-- <passthrough>...]

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --no-default-features      Do not build the `default` feature
        --no-run                   Compile, but don't run tests
        --nodejs                   Uses Node.js to run the tests
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -v, --verbose                  Use verbose output

OPTIONS:
        --features <FEATURES>    Space-separated list of features to also build
    -p, --package <NAME>         Package to build
        --target <TRIPLE>        Build for the target [default: wasm32-unknown-unknown] [possible values: asmjs-unknown-
                                 emscripten, wasm32-unknown-emscripten, wasm32-unknown-unknown]

ARGS:
    <passthrough>...    -- followed by anything will pass the arguments to the test runner
$ target/debug/cargo-web help test
cargo-web-test 0.6.23
Jan Bujak<EMAIL_ADDRESS>Compiles and runs tests

USAGE:
    cargo-web test [FLAGS] [OPTIONS] [passthrough]...

FLAGS:
        --all-features             Build all available features
    -h, --help                     Prints help information
        --no-default-features      Do not build the `default` feature
        --no-run                   Compile, but don't run tests
        --nodejs                   Uses Node.js to run the tests
        --release                  Build artifacts in release mode, with optimizations
        --use-system-emscripten    Won't try to download Emscripten; will always use the system one
    -V, --version                  Prints version information
    -v, --verbose                  Use verbose output

OPTIONS:
        --features <features>    Additional features to build (space-delimited list)
    -p, --package <package>      Package to build
        --target <target>        Target triple to build for

ARGS:
    <passthrough>...    all additional arguments will be passed through to the test runner

As far as --help is concerned I can see the following minor issues which would be nice to fix:

--message-format, --runtime and --target don't show possible values
--runtime's description is different
--target doesn't say which one is the default

regarding --target - the listed default is wasm32-unknown-unknown, but the actual default behavior is to respect Web.toml if it exists, and otherwise target native wasm (this tripped me up earlier and was the reason the tests were failing).
Do we want to communicate that in the help text, or just match the old one?

regarding --target - the listed default is wasm32-unknown-unknown, but the actual default behavior is to respect Web.toml if it exists, and otherwise target native wasm (this tripped me up earlier and was the reason the tests were failing).
Do we want to communicate that in the help text, or just match the old one?

Yes, that's a good idea - we can tell the user that it's the default only if not specified in Web.toml or something like that. (If you have a better way of wording this feel free to use your version.)

@koute should be good now. it seems like something related to installing Emscripten was failing.

Sorry for the delay! I was in bed sick the whole end of last week.
Looks almost good to me now; three last things and we're good to go with merging this in:

Make CheckOpts into a newtype so that it's its own separate type. (Just in case those two commands will diverge in the future in any way.)
Add a dummy field into PrepareEmscriptenOpts; currently it is an empty struct, so that makes it constructible by everyone.
Hide Build and BuildExt - they're still public even though they're now not used in the public API.

I apologize for being so picky, but I do take backwards compatibility very seriously. (:

Glad to hear you're feeling better!

Looks good to me! Thanks again!
I'll try release this on crates.io sometimes this week.


When resizing a dataset the chunk size does not change

When adding a channel with no data the initial dataset is set to a size of (1,) which can be extended with a max shape of (None,).  The issue is that if you want to resize this data set the chunk size stays the same (1,) therefore there is a bunch of overhead and extra metadata for each chunk that is store which results in taking a long time to set the data and bloats the HDF5 file.
There are a few ways to get around this maybe:

If the input metadata has a start and end time with a sampling rate then make an array of zeros with the expected shape
Set the chunk size manually to something that could be efficient.
Reset the chunk size some how.

Should have fixed this issue with this commit


Parse line breaks

Converts escaped line breaks and makes them literal line breaks. Useful things like adding public or private keys to environment variables.

:-1: from me - I would dispute this expected behaviour.

Both node dotenv and ruby dotenv support this.

For me, that's getting too opinionated for a utility library.
What happens if you have a password like s3!kk\n12s8? Then you'd have to get untangled.
I just tested putting this in a .env file and running source .env … the newlines were not interpreted.

How ever if you If you source a .env file containing a var in quotes e.g. export NEW_LINE="this has a new \n line" & echo $NEW_LINE the new lines are interpreted.

:-1: from me too.

Heroku also supports multiline env vars.

Shell does support this behavior, as noted by @b3njamin:
export NEW_LINE="this has a new \n line" && echo $NEW_LINE

Seems like if shell supports it, phpdotenv should too.

The support for that is coming from echo not from the environment.

Bash interprates literal characters when enclosed in double quotes.
https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html

@b3njamin I can't make head nor tail of that article :smile_cat: In any case, I'm sure this PR doesn't yet cover the nuances outlined.

Shell does support this behavior, as noted by @b3njamin:
export NEW_LINE="this has a new \n line" && echo $NEW_LINE
Seems like if shell supports it, phpdotenv should too.

I've tried on 3 different OSes and I don't get that behaviour:
-bash-4.1$ cat > .envtest
export LINEB1='awesome\nmultiline\nvalue'
export LINEB2="awesome\nmultiline\nvalue"
export LINEB3=awesome\nmultiline\nvalue
export LINEBVAR=crazy
export LINEB4=awesome\n{$LINEBVAR}\nmultiline\nvalue
^C
-bash-4.1$ source .envtest
-bash-4.1$ echo $LINEB1
awesome\nmultiline\nvalue
-bash-4.1$ echo $LINEB2
awesome\nmultiline\nvalue
-bash-4.1$ echo $LINEB3
awesomenmultilinenvalue
-bash-4.1$ echo $LINEB4
awesomen{crazy}nmultilinenvalue
-bash-4.1$

@kelvinj you have to pass -e to echo to enable interpretation of back slashes. If you try echo $LINEB2 in above snippet you should get something like:
awsome
multiline
value

I guess the best way to support this particular feature is to enable different interpretation for double quote and single quote (as in Ruby Dotenv).
If you need to keep \n as literal then you should use single quote and double quote otherwise.
It's natural to use, since PHP behaves the same way when dealing with escape characters in strings.

@boynux :+1:

Can this be closed now?


Enforce usage of QueryGraph lookup ?

Right now we almost always do:
QueryGraph queryGraph = new QueryGraph(graph);
queryGraph.lookup(queryResults);

I have moved usages of this pattern into a static helper method here: https://github.com/graphhopper/graphhopper/commit/287fef26750a494bfcd840f815383952d3cf3329, https://github.com/graphhopper/graphhopper/commit/ff044d10594e4a4a11d05901bf5a582259a2c618
Now there are only a few usages that do not strictly follow this pattern left and I am wondering if we can get rid of them altogether.
I think my point is that for the most part QueryGraph cannot be used as long as lookup has not been called anyway and not having the query results by the time we create the QueryGraph makes the initialization code more complicated. On the other hand there is some ugliness involved, because lookup manipulates the query results. So calling a constructor like new QueryGraph(graph, queryResults) would be ugly because it is already running some algorithm and manipulates queryResults. But honestly I am not sure if it is more ugly when the same happens once we call lookup (?).
Anyway, I think the real problem here is that QueryGraph is even performing some algorithm (instead of just being a graph data structure). Ideally, the algorithm part (calculating the virtual edges) should be moved outside of query graph anyway (that's what I was trying to do).
Background: I need to use the virtual edge creation logic, but do not want (or at least I think I do not want) to use the (very wide) Graph interface... So my vision was something like this (note how the virtual edge/node calculation happens outside of the query graph):
List<QueryResults> queryResults = getQueryResultsFromLocationIndexEtc();
Result result = QueryResultProcessor.calculateVirtualNodesAndEdges(queryResults, virtualNodeIdsStart, virtualEdgeIdsStart);
QueryGraph queryGraph = new QueryGraph(graph, result);

The only place where I am not sure is GraphHopperGtfs#route @michaz ?

Hmmm, not sure I can play through your proposed refactoring in my head and then suggest how to apply it to my code.
Just a thought about your snippet: I think the classes/objects involved are getting more and more artificial. I agree that the step where everything is modified (QueryGraph and QueryResult) is confusing, and QueryResult is not a good class name (what query? what result?). But a QueryResultProcessor that takes a QueryResult and produces a Result is over the top, especially since Result is not purely a result, but is an input for QueryGraph.
I think we should try to make every object that is passed from one important piece of code to another (like from location index to query graph) a thing that can be given a name that pins down what it is. E.g. in OpenTripPlanner, a thing similar to QueryResult is called a Split - which means a point on an edge.
Not sure if helpful.

To clarify, I think Query, Result and even QueryResult are totally okay names if they are really just parameter types or result types, and are created immediately before use and thrown away immediately after use.
They are not okay if they are important application concepts that several pieces of code know about.

But I think you can just create the QueryGraph in the line with the lookup instead of in the constructor, and it will be fine.

:+1: did that

I think the classes/objects involved are getting more and more artificial. I agree that the step where everything is modified (QueryGraph and QueryResult) is confusing, and QueryResult is not a good class name (what query? what result?). But a QueryResultProcessor that takes a QueryResult and produces a Result is over the top, especially since Result is not purely a result, but is then an input for QueryGraph. And the "query" in QueryResult probably refers to querying the location index, but the "query" in QueryGraph probably doesn't. Otherwise it would have to be called QueryResultGraph. It's almost word salad.

Agreed, Result and QueryResultProcessor are certainly no good names, I just made them up for the example. Yes, QueryResults are the result of the LocationIndex query. Maybe SnappedPoints/Coordinates or just Snaps would be better names ?

How can creating virtual edges be removed from QueryGraph anyway? Isn't that an implementation detail of QueryGraph that doesn't make sense outside of it? A virtual edge outside of QueryGraph -- what Graph is it an Edge of? None? What is an Edge without a Graph?

QueryGraph does two (more or less) unrelated things:

It sorts the snapped points by their closest edges and determines which virtual edges are needed to connect the virtual nodes with each other and/or the adjacent real node. It also determines which real edges no longer should be used, because instead of using them we should travel via the new virtual nodes that are located in between the real node. Basically it determines what I now called GraphModification (<- I still do not like that name very much) that consists of new and forbidden edges. This data 'exists without a graph' because it can be useful even without QueryGraph. Then again of course its related to the actual graph because it refers to it via node/edge ids.
It uses this information and combines it with the real graph to create a new graph (QueryGraph kind of constructs itself).

Closed via #1751.


Reading Blue Coat School

Adding RBCS email

@gbranRBCS Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


MySQL event scheduler instead of golang ticker?

Hi!
Regarding feature/approach below:
func (m *mysql) run() {
    // mysql does not expire rows so we must do so.
    t := time.NewTicker(time.Minute * 10)
    for _ = range t.C {
        // expires field is actually set in the future
        // so we take anything older than now and destroy it
        expiry := time.Now().Unix()
        m.DeleteExpired(expiry)
    }
}

MySQL 5.1+ has event scheduler. The MySQL Event Scheduler manages the scheduling and execution of events - tasks that run according to schedule.
Stored routines require the event table in the MySQL database. This table is created during the MySQL installation procedure.
Syntax for using it would be:
CREATE EVENT ClearUserActivationCodes
ON SCHEDULE EVERY 1 DAY DO
BEGIN
    DELETE FROM user_activation_code
     WHERE code_time_stamp < NOW()
END

Details here: http://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html
So, opinion?

It's an optimisation I haven't really thought about. Is this applicable across other mysql compliant databases? How does it operate across a clustered setup?
Usually opposed to technology specific requirements and upfront setup. What requirements does this place on the user?


Menu visualization triggers in repaint loop

It shouldn't be timed so i assume it's the refreshTimer in the board controller that is not stopped

note: only after playing and then returning to the menu


Animation/gfx completion suspension

Backlog from #56 requires animation and graphic definitions from the cache to get proper times.

Graphic definitions don't contain timing information.


UNAUTHORIZED

Hello, I have just downloaded this and tried to get it working, I have debugging enabled, I get the following errors:
`REQUEST TO: https://feelinsonice-hrd.appspot.com/loq/device_id Sent Request info: POST /loq/device_id HTTP/1.1 User-Agent: Snapchat/<IP_ADDRESS> (A0001; Android 4.4.4#5229c4ef56#19; gzip) Host: feelinsonice-hrd.appspot.com Accept: / Accept-Language: en;q=1 Accept-Locale: en Content-Length: 102 Content-Type: application/x-www-form-urlencoded DATA: timestamp=1.42771170908E+12&req_token=930b1f549f6196986eff8de7fea6c184b5eb4d8019e3ba84c9b43d14d3c5106b RESULT:
Error: UNAUTHORIZED
Notice: Undefined index: error in /Applications/MAMP/htdocs/yer/snapchat.php on line 333
REQUEST TO: https://android.clients.google.com/auth Array ( [device_country] => us [operatorCountry] => us [lang] => en_US [sdk_version] => 19 [google_play_services_version] => 7097038 [accountType] => HOSTED_OR_GOOGLE [system_partition] => 1 [has_permission] => 1 [add_account] => 1 [service] => ac2dm [source] => android [androidId] => 356663c3e9de45ef [get_accountid] => 1 [Email] => [app] => com.google.android.gms [client_sig] => 38918a453d07199354f8b19af05ec6562ced5788 [EncryptedPasswd] => ) DATA: 1 RESULT:`

@imbradv Your host / IP / server its blocked, try a different one
Regards

How would i do so, I am running from my MAMP Pro server?

Is there an official list of unsupported hosts?
I used the latest code and received the same unauthorized message coming from Namecheap shared hosting.


Typo with the word "lighting"

The word "lighting" is spelled "lightning" in applet preferences: "Better lightning for your computer". The same typo also exist in the description of the GitHub page:  "Better lightning for Ubuntu http://stereopsis.com/flux/linux.html".
Software version: fluxgui 1.1.8

The preference in the last build is correctly spelled, and the mentioned text is not on the page anymore. Can the issues be closed?

The description of the GItHub page (https://github.com/Kilian/f.lux-indicator-applet) still has the word misspelled.


update info.xml

Close jsxc/jsxc#274.
@LEDfan any comments? I would like to add your real name to the list of authors. Any issues with that?

I would like to add your real name to the list of authors.

Great! I have no problems with it :smiley:
I'll test this today on a fresh installation to see if it works. (IRC the dependencies are only tested when installing the app (for the first time thus))

I just tested this and it should work. It normally is also covered by travis.

I will squash commits and merge after lunch. @LEDfan can you have a look at the pr for the readme?


always getting error

{"data": "{" error \ ": " invalid_request \ ", " error_description \ ": " The request is missing a prescribed parameter, contains an unsupported parameter value, or is different Way buggy. \ "}"}

Hey @ashutoshdev, it would help if you included a reproducible example to help debug this issue. Have a look at this similar issue on another project to see if it's what you're hitting.
If that doesn't help, we strongly recommend you reach out to our support team as they can look at your specific account to see if there's an issue there. This project is intended to address issues with the package itself.

Hey @sds
Thanks for your reply me I have written issue in support You can not believe they are very slow to give me reply they take 2-3 day to reply me for one response .so you can think about that much they slow in the fast era .Every body doing speed up in every sector .
:-1:    :(


Regarding UI of this project

Hello sir! I am willing to enhance the UI of this project. Please assign this issue to me. I will make sure that my contribution will make this project visually appealing.

Create a new issue with proper description


added psr logger interface support

implemented feature request #3

Codecov Report

Merging #4 into master will decrease coverage by 1.77%.
The diff coverage is 35.71%.

@@             Coverage Diff              @@
##             master       #4      +/-   ##
============================================
- Coverage     71.51%   69.74%   -1.78%
- Complexity      209      213       +4
============================================
  Files             3        3
  Lines           337      347      +10
============================================
+ Hits            241      242       +1
- Misses           96      105       +9

Impacted Files
Coverage Δ
Complexity Δ

src/Translate.php
67.81% <35.71%> (-1.87%)
201 <4> (+4)

Continue to review full report at Codecov.

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


Pattern (regex) is not supported?

{
"type": "string",
"pattern": "^(\([0-9]{3}\))?[0-9]{3}-[0-9]{4}$"
}
Trying to add pattern field, and thought it could be good to leverage the jackson annotation
@JsonFormat

Maybe not the cleanest, but you can achieve this via:
@JsonSchemaFormat("string")
@JsonSchemaInject(json = "{\"pattern\":\"<your-pattern>\"")

Maybe not the cleanest, but you can achieve this via:
@JsonSchemaFormat("string")
@JsonSchemaInject(json = "{\"pattern\":\"<your-pattern>\"")


does ended_at_time take a string or a date-time range?

see also

#833

ended_at_time takes a highly constrained formatted string based on ISO-8601, in both the main schema and Berkeley fork.  Closing this issue.


Add Github action

It's free for public repositories https://docs.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-actions


Build System: only write to houdini user dir in "install" step (not in build step)

this problem is visible on CI, the build step is wrongly writing to /var/jenkins/houdiniXX.Y instead of staying within its job workspace directory.

cleanup build agents

merged.


[BUG] Node exporter does not work after the upgrade - unknown long flag '--collector.netdev.ignored-devices'

Describe the bug

Node exporter service is not working after running the upgrade command. It looks like an old systemd service configuration has been applied.
To check the installed version the command /opt/node_exporter/node_exporter --version is called which returns too much information when called directly on the vm and in the case of Ansible it shows nothing:

root@ec2-xx-xx-xx-xx:~# /opt/node_exporter/node_exporter --version
node_exporter, version 0.16.0 (branch: HEAD, revision: d42bd70f4363dced6b77d8fc311ea57b63387e4f)
  build user:       root@a67a9bc13a69
  build date:       20180515-15:52:42
  go version:       go1.9.6

2020-09-17T12:56:19.9159473Z[38;21m12:56:19 INFO cli.engine.ansible.AnsibleCommand - TASK [upgrade : Node Exporter | Print version] *********************************[0m
2020-09-17T12:56:20.0773448Z[38;21m12:56:20 INFO cli.engine.ansible.AnsibleCommand - ok: [ec2-34-247-70-225.eu-west-1.compute.amazonaws.com] => {[0m
2020-09-17T12:56:20.0774876Z[38;21m12:56:20 INFO cli.engine.ansible.AnsibleCommand -     "msg": [[0m
2020-09-17T12:56:20.0775705Z[38;21m12:56:20 INFO cli.engine.ansible.AnsibleCommand -         "Installed version: ",[0m
2020-09-17T12:56:20.0781098Z[38;21m12:56:20 INFO cli.engine.ansible.AnsibleCommand -         "Target version: 1.0.1"[0m

When running the epicli upgrade command, the update of the node exporter will always be started, which in the case of the next versions, where we will probably not update the node exporter again, is redundant in my opinion. I think we should compare the current version with the target version and make the update dependent on it.

To Reproduce
Steps to reproduce the bug:

Deploy a new cluster from v0.7 branch (or use the following image epiphanyplatform/epicli:0.7.1). One master vm should be enough to reproduce it.
Run epicli upgrade -b /path/to/build/dir from develop branch.

Expected behavior
Node exporter service is working properly after upgrading to 1.0.1.
Actual behavior
Node exporter service failed to start.
root@ec2-xx-xx-xx-xx:/opt/node_exporter# systemctl status prometheus-node-exporter.service
● prometheus-node-exporter.service - Service that runs Prometheus Node Exporter
   Loaded: loaded (/etc/systemd/system/prometheus-node-exporter.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2020-09-17 13:35:07 UTC; 13min ago
  Process: 13791 ExecStart=/opt/node_exporter/node_exporter --collector.conntrack --collector.diskstats --collector.entropy --collector.filefd --collector.filesystem --collector.loadavg --collector.mdadm --colle Main PID: 13791 (code=exited, status=1/FAILURE)

Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: prometheus-node-exporter.service: Main process exited, code=exited, status=1/FAILURE
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: prometheus-node-exporter.service: Failed with result 'exit-code'.
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: prometheus-node-exporter.service: Service hold-off time over, scheduling restart.
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: prometheus-node-exporter.service: Scheduled restart job, restart counter is at 5.
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: Stopped Service that runs Prometheus Node Exporter.
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: prometheus-node-exporter.service: Start request repeated too quickly.
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: prometheus-node-exporter.service: Failed with result 'exit-code'.
Sep 17 13:35:07 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com systemd[1]: Failed to start Service that runs Prometheus Node Exporter.

OS (please complete the following information):

OS: [all]

Cloud Environment (please complete the following information):

Cloud Provider [all]

Logs:
Sep 17 12:55:54 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[23143]: time="2020-09-17T12:55:54Z" level=error msg="ERROR: diskstats collector failed after 0.000153s: invalid line for /proc/diskstats for nvme0n1p1" source="collector.go:132"
Sep 17 12:56:09 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[23143]: time="2020-09-17T12:56:09Z" level=error msg="Error reading textfile collector directory \"/var/lib/prometheus/node-exporter\": open /var/lib/prometheus/node-exporter: no such file or directory" source="textfile.go:192"
Sep 17 12:56:09 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[23143]: time="2020-09-17T12:56:09Z" level=error msg="ERROR: diskstats collector failed after 0.000145s: invalid line for /proc/diskstats for nvme0n1" source="collector.go:132"
Sep 17 12:56:40 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[22664]: node_exporter: error: unknown long flag '--collector.netdev.ignored-devices', try --help
Sep 17 12:56:40 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[22724]: node_exporter: error: unknown long flag '--collector.netdev.ignored-devices', try --help
Sep 17 12:56:40 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[22747]: node_exporter: error: unknown long flag '--collector.netdev.ignored-devices', try --help
Sep 17 12:56:41 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[22775]: node_exporter: error: unknown long flag '--collector.netdev.ignored-devices', try --help
Sep 17 12:56:41 ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com prometheus-node-exporter[22801]: node_exporter: error: unknown long flag '--collector.netdev.ignored-devices', try --help

Node Exporter upgrade works fine after applying the fix.


CLOUDSTACK-9180: Optimize concurrent VM deployment operation on same …

…network
Check if VR needs to be allocated for a given network and only acquire lock if required
Refer to the bug for details.

Simulator test results for basic zone. Failure is for NiciraNvp which can be ignored.
test DeployVM in anti-affinity groups ... === TestName: test_DeployVmAntiAffinityGroup | Status : SUCCESS ===
ok
Test to deploy vm with a first fit offering ... === TestName: test_deployvm_firstfit | Status : SUCCESS ===
ok
Test deploy VMs using user concentrated planner ... === TestName: test_deployvm_userconcentrated | Status : SUCCESS ===
ok
Test deploy VMs using user dispersion planner ... === TestName: test_deployvm_userdispersing | Status : SUCCESS ===
ok
Test to create disk offering ... === TestName: test_01_create_disk_offering | Status : SUCCESS ===
ok
Test to create  a sparse type disk offering ... === TestName: test_02_create_sparse_type_disk_offering | Status : SUCCESS ===
ok
Test to create  a sparse type disk offering ... === TestName: test_04_create_fat_type_disk_offering | Status : SUCCESS ===
ok
Test to update existing disk offering ... === TestName: test_02_edit_disk_offering | Status : SUCCESS ===
ok
Test to delete disk offering ... === TestName: test_03_delete_disk_offering | Status : SUCCESS ===
ok
test update configuration setting at zone level scope ... === TestName: test_UpdateConfigParamWithScope | Status : SUCCESS ===
ok
test_nic_secondaryip_add_remove (integration.smoke.test_multipleips_per_nic.TestDeployVM) ... === TestName: test_nic_secondaryip_add_remove | Status : SUCCESS ===
ok
Failure: ImportError (cannot import name NiciraNvp) ... === TestName: Failure: | Status : EXCEPTION ===
ERROR
Test to create a portable public ip range ... === TestName: test_createPortablePublicIPRange | Status : SUCCESS ===
ok
Test primary storage pools - XEN, KVM, VMWare. Not Supported for hyperv ... === TestName: test_01_primary_storage_nfs | Status : SUCCESS ===
ok
Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS ===
ok
Test system VM start ... === TestName: test_01_sys_vm_start | Status : SUCCESS ===
ok
Test system templates are ready ... === TestName: test_02_sys_template_ready | Status : SUCCESS ===
ok
Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS ===
ok
Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS ===
ok
Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS ===
ok
Test Edit template ... === TestName: test_02_edit_template | Status : SUCCESS ===
ok
Test delete template ... === TestName: test_03_delete_template | Status : SUCCESS ===
ok
Update & Test for template permissions ... === TestName: test_05_template_permissions | Status : SUCCESS ===
ok
Test only public templates are visible to normal user ... === TestName: test_07_list_public_templates | Status : SUCCESS ===
ok
Test System templates are not visible to normal user ... === TestName: test_08_list_system_templates | Status : SUCCESS ===
ok
Download a Volume attached to a VM ... === TestName: test_03_download_attached_volume | Status : SUCCESS ===
ok
Delete a Volume attached to a VM ... === TestName: test_04_delete_attached_volume | Status : SUCCESS ===
ok
Detach a Volume attached to a VM ... === TestName: test_05_detach_volume | Status : SUCCESS ===
ok
Delete a Volume unattached to an VM ... === TestName: test_09_delete_detached_volume | Status : SUCCESS ===
ok
Ran 29 tests in 462.825s
FAILED (errors=1)
Selective advanced zone tests on simulator
test_vm_life_cycle.py
Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS ===
ok
Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS ===
ok
Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS ===
ok
Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS ===
ok
Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS ===
ok
Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS ===
ok
Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS ===
ok
Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS ===
ok
Test migrate VM ... === TestName: test_08_migrate_vm | Status : SUCCESS ===
ok
Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS ===
ok

Ran 10 tests in 306.163s
OK
test_network.py
Test for delete account ... === TestName: test_delete_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for admin account ... === TestName: test_public_ip_admin_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for user account ... === TestName: test_public_ip_user_account | Status : SUCCESS ===
ok
Test for release public IP address ... === TestName: test_releaseIP | Status : SUCCESS ===
ok

Ran 4 tests in 779.509s
OK
test_routers.py
Test router internal advanced zone ... SKIP: Marvin configuration has no host credentials                            to check router services
Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS ===
ok
Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS ===
ok
Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS ===
ok
Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS ===
ok
Test start router ... === TestName: test_08_start_router | Status : SUCCESS ===
ok
Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS ===
ok

Ran 7 tests in 41.786s
OK (SKIP=1)
test_multipleips_per_nic.py
test_nic_secondaryip_add_remove (integration.smoke.test_multipleips_per_nic.TestDeployVM) ... === TestName: test_nic_secondaryip_add_remove | Status : SUCCESS ===
ok

Ran 1 test in 25.983s
OK
test_portable_publicip.py
Test to acquire a provisioned public ip range ... === TestName: test_createPortablePublicIPAcquire | Status : SUCCESS ===
ok
Test to create a portable public ip range ... === TestName: test_createPortablePublicIPRange | Status : SUCCESS ===
ok

Ran 2 tests in 61.391s
OK
test_privategw_acl.py
test_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ... === TestName: test_privategw_acl | Status : SUCCESS ===
ok

Ran 1 test in 46.513s
OK
test_public_ip_range.py
Test public IP range dedication ... === TestName: test_dedicatePublicIpRange | Status : SUCCESS ===
ok

Ran 1 test in 5.557s
OK

nice =)
Can you create a java doc to explain your 'isRouterDeployed()'  (even the name explaining itself)?
If you can create a test case for only this method it will be more easy to verify if it stop working in future modifications =)
Thx.

@pedro-martins By java doc are you referring to adding some comments for isRouterDeployed()? Note that this is a private method.
If you look at the unit tests I have added, isRouterDeployed() is getting invoked in them. The function invocation count verification ensures that the method is called.

A javadoc is a notation above the method declaration that describes what the method do.
javadoc with examples :)  http://www.oracle.com/technetwork/articles/java/index-137868.html
I saw that you create a test for the deployVirtualRouter that uses the isRouterDeployed(), but if this test don't pass, will be difficult to analyse if the test don't pass because the isRouterDeployed method or another problem.  :)
Ty.

Ping @remibergsma
This one ca have the integrations tests executed against.
@pedro-martins: no need to add javadocs. The code should be self-documented. A private method called isRouterDeployed is already clear enough.
Cheers,
Wilder

@wilderrodrigues Agreed @pedro-martins comments, persé should add to the clarity of the code, even javadoc. If the name is explanatory and there are no unexpected side effects we should not create them, especially for private methods. It doubles the maintenance needed. When changes are done both the code and the comments needs to change.

@bvbharat Can you run the tests on this one?

ACS CI BVT Run
Sumarry:
Build Number 175
Hypervisor xenserver
NetworkType Advanced
Passed=34
Failed=21
Skipped=2
Link to logs Folder (search by build_no): https://www.dropbox.com/sh/yj3wnzbceo9uef2/AAB6u-Iap-xztdm6jHX9SjPja?dl=0
Failed tests:

test_affinity_groups_projects.py

ContextSuite context=TestDeployVmWithAffinityGroup>:teardown Failed

test_vpc_vpn.py

ContextSuite context=TestVpcRemoteAccessVpn>:setup Failing since 5 runs

ContextSuite context=TestVpcSite2SiteVpn>:setup Failing since 3 runs

test_scale_vm.py

ContextSuite context=TestScaleVm>:teardown Failed

test_routers_iptables_default_policy.py

test_01_single_VPC_iptables_policies Failed

ContextSuite context=TestVPCIpTablesPolicies>:teardown Failed

test_quota.py

test_01_quota Failing since 3 runs

test_02_quota Failing since 3 runs

test_03_quota Failing since 3 runs

test_04_quota Failing since 3 runs

test_05_quota Failing since 3 runs

test_06_quota Failing since 3 runs

test_07_quota Failing since 3 runs

test_loadbalance.py

ContextSuite context=TestLoadBalance>:setup Failing since 2 runs

test_network.py

test_delete_account Failing since 2 runs

ContextSuite context=TestPortForwarding>:setup Failing since 2 runs

ContextSuite context=TestPublicIP>:setup Failed

test_reboot_router Failing since 2 runs

test_releaseIP Failing since 2 runs

ContextSuite context=TestRouterRules>:setup Failing since 2 runs

test_password_server.py

test_isolate_network_password_server Failing since 2 runs

Skipped tests:
test_vm_nic_adapter_vmxnet3
test_deploy_vgpu_enabled_vm
Passed test suits:
test_deploy_vm_with_userdata.py
test_over_provisioning.py
test_guest_vlan_range.py
test_service_offerings.py
test_reset_vm_on_reboot.py
test_deploy_vms_with_varied_deploymentplanners.py
test_deploy_vm_iso.py
test_public_ip_range.py
test_multipleips_per_nic.py
test_regions.py
test_resource_detail.py
test_secondary_storage.py
test_vm_life_cycle.py

@koushik-das can you rebase against latest master and share state of your PR, thanks

CI RESULTS
Tests Run: 82
  Skipped: 0
   Failed: 1
   Errors: 4
 Duration: 9h 31m 01s

Summary of the problem(s):
ERROR: Test to verify access to loadbalancer haproxy admin stats page
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_internal_lb.py", line 854, in tearDown
    raise Exception("Cleanup failed with %s" % e)
Exception: Cleanup failed with Job failed: {jobprocstatus : 0, created : u'2016-05-20T01:01:48+0200', jobresult : {errorcode : 530, errortext : u'Failed to delete network'}, cmd : u'org.apache.cloudstack.api.command.user.network.DeleteNetworkCmd', userid : u'7419d6d0-1de7-11e6-9293-5254001daa61', jobstatus : 2, jobid : u'63713d1c-6f2b-480f-a7a3-8f5bac6328bc', jobresultcode : 530, jobresulttype : u'object', jobinstancetype : u'Network', accountid : u'7419c212-1de7-11e6-9293-5254001daa61'}
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_TL42E7/results.txt

ERROR: test suite for <class 'integration.smoke.test_vpc_vpn.TestRVPCSite2SiteVpn'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 209, in run
    self.setUp()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vpc_vpn.py", line 835, in setUpClass
    cls.template.download(cls.apiclient)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 1350, in download
    elif 'Downloaded' in template.status:
TypeError: argument of type 'NoneType' is not iterable
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_TL42E7/results.txt

ERROR: test suite for <class 'integration.smoke.test_vpc_vpn.TestVpcRemoteAccessVpn'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 209, in run
    self.setUp()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vpc_vpn.py", line 293, in setUpClass
    cls.template.download(cls.apiclient)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 1350, in download
    elif 'Downloaded' in template.status:
TypeError: argument of type 'NoneType' is not iterable
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_TL42E7/results.txt

ERROR: test suite for <class 'integration.smoke.test_vpc_vpn.TestVpcSite2SiteVpn'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 209, in run
    self.setUp()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vpc_vpn.py", line 472, in setUpClass
    cls.template.download(cls.apiclient)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 1350, in download
    elif 'Downloaded' in template.status:
TypeError: argument of type 'NoneType' is not iterable
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_TL42E7/results.txt

FAIL: Test destroy(expunge) Virtual Machine
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vm_life_cycle.py", line 646, in test_09_expunge_vm
    self.assertEqual(list_vm_response,None,"Check Expunged virtual machine is in listVirtualMachines response")
AssertionError: Check Expunged virtual machine is in listVirtualMachines response
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_vpc_routers_6NRPKU/results.txt

Associated Uploads
/tmp/MarvinLogs/DeployDataCenter__May_19_2016_19_33_43_9O7LI4:

dc_entries.obj
failed_plus_exceptions.txt
runinfo.txt

/tmp/MarvinLogs/test_network_TL42E7:

failed_plus_exceptions.txt
results.txt
runinfo.txt

/tmp/MarvinLogs/test_vpc_routers_6NRPKU:

failed_plus_exceptions.txt
results.txt
runinfo.txt

Uploads will be available until 2016-07-20 02:00:00 +0200 CEST
Comment created by upr comment.

I don't think these issues are related to this PR, but if you have any insight as to why they might be happening I would be interested.  I will run this CI again to see if we can get a bit of a cleaner report.

@swill The failures are not related to this PR.
The failure in test_internal_lb.py is due to some cleanup issue. The network deletion failed most probably due to some leftover VMs.
The remaining failures seems to be some environment issue due to which templates are not downloaded and also some test code issue in base.py. In the below snippet, the execution is going to elif and that is resulting in failure due to 'in' check on template.status which doesn't seem to be iterable.
if template.status == 'Download Complete':
break
elif 'Downloaded' in template.status:
time.sleep(interval)
elif 'Installing' not in template.status:
raise Exception(
"Error in downloading template: status - %s" %
template.status)

Thanks @koushik-das, I need to track down what changed to cause that intermittent problem of the template.status.  I need some code review on this one.  Thanks...

CI RESULTS
Tests Run: 82
  Skipped: 0
   Failed: 0
   Errors: 4
 Duration: 8h 31m 38s

Summary of the problem(s):
ERROR: test suite for <class 'integration.smoke.test_internal_lb.TestInternalLb'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 228, in run
    self.tearDown()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 351, in tearDown
    self.teardownContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 367, in teardownContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_internal_lb.py", line 847, in tearDownClass
    raise Exception("Cleanup failed with %s" % e)
Exception: Cleanup failed with Job failed: {jobprocstatus : 0, created : u'2016-05-20T11:25:42+0200', jobresult : {errorcode : 530, errortext : u'Failed to delete template'}, cmd : u'org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd', userid : u'e34c6f59-1e44-11e6-9276-5254001daa61', jobstatus : 2, jobid : u'88b5638b-7732-4e6d-9ccf-9a3be346b281', jobresultcode : 530, jobinstanceid : u'3cd24df8-bd13-4250-8706-a43e9e42c754', jobresulttype : u'object', jobinstancetype : u'Template', accountid : u'e34c5a5a-1e44-11e6-9276-5254001daa61'}
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_GHIWU7/results.txt

ERROR: test suite for <class 'integration.smoke.test_vpc_vpn.TestRVPCSite2SiteVpn'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 209, in run
    self.setUp()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vpc_vpn.py", line 835, in setUpClass
    cls.template.download(cls.apiclient)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 1350, in download
    elif 'Downloaded' in template.status:
TypeError: argument of type 'NoneType' is not iterable
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_GHIWU7/results.txt

ERROR: test suite for <class 'integration.smoke.test_vpc_vpn.TestVpcRemoteAccessVpn'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 209, in run
    self.setUp()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vpc_vpn.py", line 293, in setUpClass
    cls.template.download(cls.apiclient)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 1350, in download
    elif 'Downloaded' in template.status:
TypeError: argument of type 'NoneType' is not iterable
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_GHIWU7/results.txt

ERROR: test suite for <class 'integration.smoke.test_vpc_vpn.TestVpcSite2SiteVpn'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 209, in run
    self.setUp()
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/usr/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run
    return func()
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vpc_vpn.py", line 472, in setUpClass
    cls.template.download(cls.apiclient)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 1350, in download
    elif 'Downloaded' in template.status:
TypeError: argument of type 'NoneType' is not iterable
----------------------------------------------------------------------
Additional details in: /tmp/MarvinLogs/test_network_GHIWU7/results.txt

Associated Uploads
/tmp/MarvinLogs/DeployDataCenter__May_20_2016_06_42_48_FTFEG1:

dc_entries.obj
failed_plus_exceptions.txt
runinfo.txt

/tmp/MarvinLogs/test_network_GHIWU7:

failed_plus_exceptions.txt
results.txt
runinfo.txt

/tmp/MarvinLogs/test_vpc_routers_SEIXAD:

failed_plus_exceptions.txt
results.txt
runinfo.txt

Uploads will be available until 2016-07-20 02:00:00 +0200 CEST
Comment created by upr comment.

Similar issues on this run.  They are not related to this PR.  Still need some review on this one...

Need code review on this one.  Thx...

LGTM.


Update setup-vs-requirement URL

The URL structure for the <a href=""> link has changed, which was causing the link to point at a page that didn't exist anymore. Updated with the new link.

Good catch @stevenrouk. I actually needed to update the source markdown then regenerate the site. The change should be live now so I'll close this PR. Appreciate the help!


Failed to parse Saccharomyces cerevisiae S288C chromosome IX

the <155222 is confusing parseLocation.
2023/05/29 10:24:00 Failed to parse ix.gb with err: strconv.Atoi: parsing "<155222": invalid syntax
What does it even mean tho
https://www.ncbi.nlm.nih.gov/nuccore/NC_001141.2
     gene            <155222..>155765
                     /gene="COX5B"
                     /locus_tag="YIL111W"
                     /db_xref="GeneID:854695"
     mRNA            join(<155222,155311..>155765)
                     /gene="COX5B"
                     /locus_tag="YIL111W"
                     /product="cytochrome c oxidase subunit Vb"
                     /transcript_id="NM_001179459.1"
                     /db_xref="GeneID:854695"
     CDS             join(155222,155311..155765)
                     /gene="COX5B"
                     /locus_tag="YIL111W"
                     /experiment="EXISTENCE:direct assay:GO:0005739
                     mitochondrion [PMID:16823961|PMID:24769239]"
                     /experiment="EXISTENCE:direct assay:GO:0005751
                     mitochondrial respiratory chain complex IV [PMID:2986105]"
                     /experiment="EXISTENCE:direct assay:GO:0006123
                     mitochondrial electron transport, cytochrome c to oxygen
                     [PMID:1331058]"
                     /experiment="EXISTENCE:mutant phenotype:GO:0004129
                     cytochrome-c oxidase activity [PMID:2986105]"
                     /experiment="EXISTENCE:mutant phenotype:GO:0050421 nitrite
                     reductase (NO-forming) activity [PMID:18388202]"
                     /note="Subunit Vb of cytochrome c oxidase; cytochrome c
                     oxidase is the terminal member of the mitochondrial inner
                     membrane electron transport chain; Cox5Bp is predominantly
                     expressed during anaerobic growth while its isoform Va
                     (Cox5Ap) is expressed during aerobic growth; COX5B has a
                     paralog, COX5A, that arose from the whole genome
                     duplication"
                     /codon_start=1
                     /product="cytochrome c oxidase subunit Vb"
                     /protein_id="NP_012155.1"
                     /db_xref="GeneID:854695"
                     /db_xref="SGD:S000001373"
                     /translation="MLRTSLTKGARLTGTRFVQTKALSKATLTDLPERWENMPNLEQK
                     EIADNLTERQKLPWKTLNNEEIKAAWYISYGEWGPRRPVHGKGDVAFITKGVFLGLGI
                     SFGLFGLVRLLANPETPKTMNREWQLKSDEYLKSKNANPWGGYSQVQSK"

What does it even mean tho

It looks like the string <155222 was tried to be parsed as an integer, which it isn't since it contains the string "<", which is non-numerical. Looks like an off-by-one error when acquiring the integer string.

I know what the code means, but it is pretty unclear what it biologically means. All 3 of those are referring to the same gene/mRNA/CDS... but each one uses a different location string - and it looks like the gene at least is lossy.
<155222..>155765 doesn't make sense because it isn't say where the gene actually does start (like with join(<155222,155311..>155765), which basically says there is an intron from 155222 to 155311, and then from 155311 to 155765 there is a gene). The better way to write that would be join(155222,155311..155765), but semantically I think they mean the same thing.

Status update on this? Does it still need fixing?

I don't think it has been fixed. It does need fixing
I think the difficult part here is parsing out the join properly - without keeping a map of locus_tags, I'm not sure you can even parse <155222..>155765 properly, at all. It doesn't contain all the information necessary get the sequence out.  We could also just accept that it is fucked up, and not try to fix it all. I kinda like that solution. Here is what snapgene displays:

I personally think this is a fine solution so long as we note it somewhere. We should probably have a note somewhere in the file of all the location exception cases we find.

Should be fixed in #394 @Koeng101?

Probably not. I think the time to fix this would be after the merge of ioToBio.

This will be fixed once #437 is merged as a part of #434 .
To clarify, the < and > syntax indicate that the sequence is unbounded, i.e. <155222..>155765 indicates the sequence starts before base 155222 and ends after base 155765.


macOS Apple M1 Chip Support

Hi, while running test scripts on macOS Apple M1 Chip. An error occurred:
$ python3 setup.py test
running test
WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
running egg_info
creating dm_meltingpot.egg-info
writing dm_meltingpot.egg-info/PKG-INFO
writing dependency_links to dm_meltingpot.egg-info/dependency_links.txt
writing requirements to dm_meltingpot.egg-info/requires.txt
writing top-level names to dm_meltingpot.egg-info/top_level.txt
writing manifest file 'dm_meltingpot.egg-info/SOURCES.txt'
reading manifest file 'dm_meltingpot.egg-info/SOURCES.txt'
writing manifest file 'dm_meltingpot.egg-info/SOURCES.txt'
running build_ext
[1]    96188 illegal hardware instruction  python3 setup.py test

Does it mean MeltingPot cannot run on macOS Apple M1 Chip?

Hi just to check:

Did you follow https://github.com/deepmind/meltingpot#installation?
Did the dmlab2d tests pass?
What version of macOS are you using?

Looking at dmlab2d I see only x86 wheels: https://github.com/deepmind/lab2d/releases/tag/release_candidate_2021-07-13 so I guess the issue is you used one of those. You will have to build your own wheel for dmlab2d using:
bazel build -c opt --define=lua=5_1 //dmlab2d:dmlab2d_wheel

See install.sh for how this can be done.

I've spoken to the dmlab2d team about adding M1 wheels, and we're looking into it. But I suggest building yourself for now.


server_crash_test TSAN failure

D0930 12:49:42.938114926   14057 test_config.c:135]          test slowdown: machine=1.000000 build=10.000000 total=10.000000
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from CrashTest
[ RUN      ] CrashTest.ResponseStream
E0930 12:49:42.951320253   14057 tcp_client_posix.c:169]     socket error: connection refused
D0930 12:49:48.119178231   14083 server.c:398]               finish_destroy_channel: 0x7d540002fa80
[       OK ] CrashTest.ResponseStream (5918 ms)
[ RUN      ] CrashTest.BidiStream
E0930 12:49:49.604687468   14057 tcp_client_posix.c:169]     socket error: connection refused
E0930 12:49:51.499173163   14396 tcp_client_posix.c:169]     socket error: connection refused
E0930 12:49:51.501760308   14396 tcp_client_posix.c:169]     socket error: connection refused
D0930 12:49:59.430119394   14057 server.c:398]               finish_destroy_channel: 0x7d540002fa80
D0930 12:50:04.563329895   14407 server.c:541]               Waiting for 0 channels and 1/1 listeners to be destroyed before shutting down server
D0930 12:50:06.778764077   14407 server.c:398]               finish_destroy_channel: 0x7d540002f800
D0930 12:50:09.182208607   14407 server.c:541]               Waiting for 0 channels and 1/1 listeners to be destroyed before shutting down server
E0930 12:50:13.448771453   14057 server_crash_test.cc:154]   assertion failed: HadOneBidiStream()
Caught signal 6
WARNING: ThreadSanitizer: signal-unsafe call inside of a signal (pid=14057)
#0 malloc :0 (server_crash_test+0x00000018f60d)
#1 _dl_map_object_deps /build/glibc-I9DIZl/glibc-2.19/elf/dl-deps.c:511 (ld-linux-x86-64.so.2+0x00000000c8bd)
#2 crash_handler /var/local/git/grpc/test/core/util/test_config.c:103 (server_crash_test+0x000000518898)
#3 __tsan::CallUserSignalHandler(__tsan::ThreadState*, bool, bool, int, my_siginfo_t*, void*) tsan_interceptors.o:0 (server_crash_test+0x00000019ccc8)
#4 grpc::testing::(anonymous namespace)::CrashTest_BidiStream_Test::TestBody() /var/local/git/grpc/test/cpp/end2end/server_crash_test.cc:154 (server_crash_test+0x0000001f7876)
#5 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) /var/local/git/grpc/third_party/googletest/src/gtest.cc:2078 (server_crash_test+0x00000070b870)
#6 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) /var/local/git/grpc/third_party/googletest/src/gtest.cc:2114 (server_crash_test+0x0000006e26b1)
#7 testing::Test::Run() /var/local/git/grpc/third_party/googletest/src/gtest.cc:2150 (server_crash_test+0x0000006b13e6)
#8 testing::TestInfo::Run() /var/local/git/grpc/third_party/googletest/src/gtest.cc:2326 (server_crash_test+0x0000006b3007)
#9 testing::TestCase::Run() /var/local/git/grpc/third_party/googletest/src/gtest.cc:2444 (server_crash_test+0x0000006b418d)
#10 testing::internal::UnitTestImpl::RunAllTests() /var/local/git/grpc/third_party/googletest/src/gtest.cc:4315 (server_crash_test+0x0000006c2652)
#11 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) /var/local/git/grpc/third_party/googletest/src/gtest.cc:2078 (server_crash_test+0x0000007015e0)
#12 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) /var/local/git/grpc/third_party/googletest/src/gtest.cc:2114 (server_crash_test+0x0000006e8237)
#13 testing::UnitTest::Run() /var/local/git/grpc/third_party/googletest/src/gtest.cc:3926 (server_crash_test+0x0000006c1f1f)
#14 RUN_ALL_TESTS() /var/local/git/grpc/third_party/googletest/include/gtest/gtest.h:2288 (server_crash_test+0x0000001f9a9d)
#15 main /var/local/git/grpc/test/cpp/end2end/server_crash_test.cc:173 (server_crash_test+0x0000001f7140)
SUMMARY: ThreadSanitizer: signal-unsafe call inside of a signal ??:0 malloc
FAILED: bins/tsan/server_crash_test [ret=66, pid=14057]

Not seen in some time: closing.


Create help command

fixes #8

This looks good. Thank you!
I have a four small things for you to change, shouldn't be hard.
First, This is more a stylistic preference of mine than anything, but I think it's good for consistency. Can you change the multiline comment to use hashes and be on the lines immediately before the parsers. And change the add longer descriptions to be a TODO, so:
# Use "git gud help" to print helps of all subcommands.
# "git gud help <command>" prints the description of the <command> but not help.
# TODO Add longer descriptions
help_parser = ...

Next, Instead of self.subparser_copy, let's use self.subparsers and change the subparsers = ... to self.subparsers = .... You'll need to change all the references to subparsers as well.
Keep the "No such command exists." That's good. if you could, on the same line, also output the command that doesn't exist to make it clear. So
git gud help asdf
prints
No such command exists: "asdf"
And if we get a KeyError, instead of printing a list of commands, why not just print what we would as if we ran "git gud help". It would have pretty formatting and provide more information.
After that, we're good. To make a list out of it:

[ ] Change comment to use # and be on line before parsers
[ ] Change usages to self.subparsers
[ ] Output invalid command
[ ] Instead of listing commands, run normal help prompt

Everything looks good! Merging!


MRG: Add smoothing controller to TimeViewer for the notebook backend

This PR adds a controller to the notebook backend to set the number of smoothing steps when time_viewer=True.
Issue
The rendering cell is broken because of the text given by logger I think (the name of the backend and the number of iterations for smoothing).

It's part of #7162.

I would just wrap this call in with mne.use_log_level(False): to always suppress these messages. They aren't really useful now that our morphing is fairly fast

Your advice helped, now the messages about the number of iterations have stopped popping up.
If the first element of the rendered cell is not text, it works as expected, otherwise the cell is not flat and sliding is needed. This behaviour is totally normal.

I can cherry-pick 1355296c69e8b54ccbeacd12deb3770296d85241 here if needed?

Go ahead and I'll merge so it gets into master

Thanks @GuillaumeFavelier


MRG, ENH: Reduce memory usage of Welch PSD

This:
# -*- coding: utf-8 -*-
import os
import mne
sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample',
                                    'sample_audvis_raw.fif')
raw = mne.io.read_raw_fif(sample_data_raw_file)
raw.plot_psd()
data_path = mne.datasets.brainstorm.bst_raw.data_path()
raw_path = (data_path + '/MEG/bst_raw/' +
            'subj001_somatosensory_20111109_01_AUX-f.ds')
raw = mne.io.read_raw_ctf(raw_path).load_data()
raw.plot_psd()

Goes from this on master:

To this:

@agramfort feel free to try it on https://github.com/mne-tools/mne-study-template/pull/155

@larsoner This does indeed fix our issue with the study template!

I think you reintroduced a codestyle error I had fixed in master

Ahh never mind, guess the "for ext in exts" is okay

Thanks @larsoner!


Remove Policyfile infavour of the standard chef_zero pattern

Consolidate and remove test suites.

Description
[Describe what this change achieves]
Issues Resolved
[List any existing issues this PR resolves]
Contribution Check List

[ ] All tests pass.
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable

net_tools is included in dokken.
attributes should be in the test cookbook.
this simplifies the whole shebang


chore: Support SET & SHOW commands as read only SQL commands

SUMMARY

Adds support for the SET and SHOW queries in sqllab for the read only queries example queries are:

SHOW LOCKS
SHOW SCHEMAS
SHOW TABLES
SET hive variables
SET hive queue
etc

related: https://github.com/apache/incubator-superset/pull/11348
TEST PLAN

unit tests
dropbox staging

Codecov Report

Merging #11868 (2b7c617) into master (3cd94d6) will decrease coverage by 13.00%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master   #11868       +/-   ##
===========================================
- Coverage   67.56%   54.56%   -13.01%
===========================================
  Files         918      417      -501
  Lines       44755    14671    -30084
  Branches     4237     3762      -475
===========================================
- Hits        30240     8005    -22235
+ Misses      14412     6666     -7746
+ Partials      103        0      -103

Flag
Coverage Δ

cypress
54.56% <ø> (-0.55%)
:arrow_down:

javascript
?

python
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...uperset-frontend/src/dashboard/util/dnd-reorder.js
0.00% <0.00%> (-100.00%)
:arrow_down:

...rset-frontend/src/dashboard/util/getEmptyLayout.js
0.00% <0.00%> (-100.00%)
:arrow_down:

...dashboard/components/resizable/ResizableHandle.jsx
0.00% <0.00%> (-100.00%)
:arrow_down:

.../src/dashboard/util/getFilterScopeFromNodesTree.js
0.00% <0.00%> (-93.48%)
:arrow_down:

...src/dashboard/components/gridComponents/Header.jsx
10.52% <0.00%> (-86.85%)
:arrow_down:

...rc/dashboard/components/gridComponents/Divider.jsx
13.33% <0.00%> (-86.67%)
:arrow_down:

...ontend/src/dashboard/util/getDashboardFilterKey.ts
14.28% <0.00%> (-85.72%)
:arrow_down:

...nd/src/views/CRUD/data/query/QueryPreviewModal.tsx
14.70% <0.00%> (-82.97%)
:arrow_down:

...set-frontend/src/views/CRUD/welcome/EmptyState.tsx
5.71% <0.00%> (-82.10%)
:arrow_down:

...et-frontend/src/components/ListView/ActionsBar.tsx
11.11% <0.00%> (-81.20%)
:arrow_down:

... and 774 more

Continue to review full report at Codecov.

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

This feels slightly specific to Hive. Could we move this logic into BaseEngineSpec by introducing a def is_dml(statement) or def is_readonly(statement), and let the specific db implementation do the parsing?

Sounds good to me, will refactor it

@villebro what about this solution ?

Does this support SET ROLE command with Presto? @bkyryliuk

Does this support SET ROLE command with Presto? @bkyryliuk


[QT] messagepage.cpp warning: ‘type’ may be used uninitialized in this function

src/qt/messagepage.cpp: In member function ‘void MessagePage::selectionChanged()’:
src/qt/messagepage.cpp:308:130: warning: ‘type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         QString filter = (type == MessageTableEntry::Sent ? replyToAddress + replyFromAddress : replyToAddress + replyFromAddress);

Removed Feature itself


Update mailer.js

#927
I think this should work.

@mansikhemka Thanks for the request. Could you squash your commits, please?

@Princu7 use the squash and merge option!

@Abhi2424shek Yes. That is a valid option. Although, squashing your own commits beforehand is a good practice in general.
@mariobehling @aayusharora Fix seems to be working fine.

Thank you!

:)


Fix grpc query response for empty address in lockup

Closes: https://github.com/osmosis-labs/osmosis/issues/558
Description

Current querying methods in the lockup module, specifically in grpc_query.go, iterates over all unlocks when user queried with an empty address. (https://github.com/osmosis-labs/osmosis/blob/main/x/lockup/keeper/grpc_query.go#L37-L47).
This PR fixes it so that whenever a query of an lockup with an empty address has been attempted, the query returns an error.

For contributor use:

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

Codecov Report

Merging #579 (534359b) into main (2a240fa) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #579   +/-   ##
=======================================
  Coverage   20.72%   20.72%
=======================================
  Files         172      172
  Lines       23465    23465
=======================================
  Hits         4863     4863
  Misses      17812    17812
  Partials      790      790

Impacted Files
Coverage Δ

x/lockup/keeper/grpc_query.go
75.30% <100.00%> (ø)

Continue to review full report at Codecov.

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