Summary:
Make it possible to construct minibytes::Bytes via bytes::Bytes.
This will be used later.
Reviewed By: kulshrax
Differential Revision: D26232990
fbshipit-source-id: 36af6f28fd08eb457de8b9223235ec038ac3ef14
Summary:
Previously they were `Bytes`, which relies on `Bytes::from_static` being
a const_fn. Going to migrate from bytes to minibytes, which has a type
parameter on `Bytes` that makes it harder to have const_fn from_static.
Switch the constants to plain `&[u8]` to avoid the const_fn issue.
Reviewed By: kulshrax
Differential Revision: D26218290
fbshipit-source-id: 728c9b3831e551f41fb42ec257ca5fe75b7e93a3
Summary: Going to migrate from bytes to minibytes. Avoid using bytes' specific API.
Reviewed By: kulshrax
Differential Revision: D26218826
fbshipit-source-id: ba41697eab8fc5fb7bf73bc565c05a7c1b29464c
Summary: Going to migrate from bytes to minibytes. Avoid using bytes' specific API.
Reviewed By: kulshrax
Differential Revision: D26218292
fbshipit-source-id: c69c2a1e0d1bde37f49e7ad542bf5e952deebb7a
Summary:
Now that we have the list of available mount points, we can properly reply to
the MNT RPC call.
Reviewed By: kmancini
Differential Revision: D26152810
fbshipit-source-id: f364292ead321689fb20f858aee45efdfbd7287d
Summary:
For a proper NFS server, rpcbind is used to query and collect the port/protocol
of the mountd and nfs programs at mount time. In EdenFS, the mount.nfs command
will be run by EdenFS directly, against itself, and we can manually specify
what the ports are for both the mountd and nfs programs. Thus we can use these
directly to avoid polluting the rpcbind database, and potentially conflicting
with a real NFS server.
This will be particularly useful when testing EdenFS as this allows multiple
tests to run at the same time.
Reviewed By: kmancini
Differential Revision: D26140416
fbshipit-source-id: 6b8aa22e69f580a9d6f6edf775d268809a909118
Summary:
Once everything is plugged in, EdenFS will first register the mount point with
Mountd, and then execute the mount.nfs CLI against itself to mount the
repository with the OS.
For now, this does the first part by simply informing Mountd of a new mount
point during mount.
Reviewed By: kmancini
Differential Revision: D26139990
fbshipit-source-id: e5097b8e90c032c8c7bdd2cd03b69695074d7874
Summary:
When NFS is enabled, we will need to have one mountd RPC program running to
be able to serve the mount requests, let's make sure that we have one by adding
it to the ServerState.
On top of the per-mount protocol setting added previously, I've also added a
global setting to make sure that we're not advertising ourself as an NFS server
before the code is more functional.
Reviewed By: genevievehelsel
Differential Revision: D26139991
fbshipit-source-id: 0d9e02618c931a0401394888ea8f3680974966b5
Summary:
As the NFS bits are integrated into the rest of EdenFS, we need to make sure
the code compiles properly. The only major change was the removal of the
//common dependencies as these aren't available to OSS builds.
Reviewed By: genevievehelsel
Differential Revision: D26181750
fbshipit-source-id: 44f8ff335e543ab282f40fa7f8d28fc19cf4581c
Summary:
On macOS, EdenFS will soon be exposed as an NFS server. To ease the transition,
let's have a per-mount config to decide whether this repository should be
mounted via FUSE or NFS
Reviewed By: genevievehelsel
Differential Revision: D26139992
fbshipit-source-id: d28b0e2327c1101f3555ab0bbc9a5b03d82fd7ff
Summary:
The portmap protocol is limited to IPv4, while the rpcbind not only does
support IPv4 and IPv6, but also unix sockets. While we still bind only to an
ipv4, this should allow us to support IPv6 in the future.
Reviewed By: kmancini
Differential Revision: D26114218
fbshipit-source-id: 46e4dfe60a9c1ddbccbb586bf4e3d24012fd26ee
Summary:
As I'm going through the various NFS specs, it becomes clear that variant are
widely used, and the macros to generate them is awkward and making working with
them harder than it should be. Instead writing their deserialization would be
more flexible.
While doing this, I also revamped how serialization/deserialization is done by
using a trait that contains 2 static function: serialize and deserialize, new
types are expected to specialize the XdrTrait with their own
serialization/deserialization.
Reviewed By: kmancini
Differential Revision: D26160026
fbshipit-source-id: 951bdd20620cc5715e780e99b64e15397688570d
Summary: `hg gc` is deprecated and does nothing anymore. Lets just remove this section talking about running `hg gc`
Reviewed By: chadaustin
Differential Revision: D26178391
fbshipit-source-id: 2bb16bbac38465a524ed50454d548564324d35bf
Summary:
The original migration strategy with dynamicconfig was to fix configs
one by one until the dynamicconfig values matched the chef/static ones, then we
can turn off chef/static configs. This looks to be too much work, so we're going
to try a different strategy of just turning off all chef/static configs on a
small number of hosts and seeing what breaks.
The legacylist and disallowlist configs were part of the old strategy, and they
make it more complicated to fix dynamicconfig mismatches, so let's get rid of
them.
Reviewed By: quark-zju
Differential Revision: D26208548
fbshipit-source-id: 63171f1f16aa0498c0eefa994dffaeb8e0cc0d72
Summary: It will be printed out by hg client so users could better understand output of `hg debugnetwork`, especially latencies.
Reviewed By: johansglock
Differential Revision: D26197877
fbshipit-source-id: 3f57bd1b8d51ad4786b5603f8124bf424f2dbf4f
Summary: This file uses new async syntax that is not valid on Python 2.
Reviewed By: singhsrb
Differential Revision: D26223827
fbshipit-source-id: 98ecd60d6f21eb91f5e3781539be7da33327667e
Summary: This test was flaky in the oss builds due to completing slightly to fast. Update it prior to the switch to governor library.
Reviewed By: krallin
Differential Revision: D26173804
fbshipit-source-id: 24169b6ef045945448095fffb1f1d85c155705b8
Summary:
Throttledblob can be simplified now that blobstore api is new futures based.
This change removes the constraint that the inner store is cloneable, and use the limiters via async/await directly in the methods that need it.
Reviewed By: krallin
Differential Revision: D26153158
fbshipit-source-id: 6acb7e6cad5aeded17ea61f9e4103a7aacd491f7
Summary:
Add an option to the bookmarks filler to skip checking SCMQuery. Use this in
tests so that tests don't attempt to connect to SCMQuery.
Ensure the client id and type is filled in for the SCMQuery requests so that
these requests have appropriate values when requests do get sent to SCMQuery.
Reviewed By: mitrandir77
Differential Revision: D26222850
fbshipit-source-id: 620c30d1418f4e951687f244ec769b3e464462b4
Summary:
Syncing thrift structure modified in D26221917 to fbcode.
I think it's safe to land D26221917 first and then land this diff.
Reviewed By: ahornby
Differential Revision: D26195881
fbshipit-source-id: 14d29a9374e71e55d93818a0362ee8514710295f
Summary: set_executable is a pub function of VFS that set exec permissions on simple file
Reviewed By: quark-zju
Differential Revision: D26212713
fbshipit-source-id: 4c3ef477fc8d61362285654dda0b006342e046ee
Summary:
Basic implementation only process file updates for now.
See todos on CheckoutPlan::apply for more detail
Reviewed By: quark-zju
Differential Revision: D26209984
fbshipit-source-id: fcfbf568359d553a51ea02ea194634048d093d0e
Summary: This is needed becase later during checkout list of updates that needs fetch will go into storage stream
Reviewed By: quark-zju
Differential Revision: D26209983
fbshipit-source-id: 9fb54d48c6f0afc4fb67320aafc2e981c96ab5a9
Summary:
Expose the async LazySet API via NameSet constructor so users won't need to
care about the LazySet type.
Reviewed By: sfilipco
Differential Revision: D26142170
fbshipit-source-id: 178383684981e81e43f2a5610c45a7ebbd354ab4
Summary:
Phabricator integration was broken in Python 3 on OSX because we didn't
supply the default context so it could verify against the ca_certs.
Reviewed By: quark-zju
Differential Revision: D26183713
fbshipit-source-id: ac395c002da0fb343d1d0b999a57d2059f66f0c7
Summary:
Add a way to capture tracing output in tests to verify certain logs are
emitted.
Reviewed By: sfilipco
Differential Revision: D26142174
fbshipit-source-id: 9267ffbe413973b8c54c54db75fe037c05614b1a
Summary:
`tracing_subscriber` has a fmt subscriber that satisfies the "log to stderr in
tests" need. It does not depend on `env_logger` or `TracingData` forwarding to
`env_logger`.
Reviewed By: sfilipco
Differential Revision: D26142175
fbshipit-source-id: 6e7dcd1585cb8431855322493d93bc49a8d57b76
Summary: This would allow us to ignore bogus data and still get something useful for logging.
Reviewed By: DurhamG
Differential Revision: D20343844
fbshipit-source-id: 763d294bc44bb203c1f206ca80e0839396e8de6e