digitalcircuit has quit [Ping timeout: 245 seconds]
digitalcircuit has joined #sandstorm
derf- has joined #sandstorm
wakest has joined #sandstorm
_whitelogger has joined #sandstorm
afuentes has joined #sandstorm
jemc has quit [Ping timeout: 240 seconds]
hannes[m] has joined #sandstorm
FredFredFred has joined #sandstorm
FredFredFred_ has quit [Ping timeout: 260 seconds]
ecloud has quit [Ping timeout: 268 seconds]
elensil has left #sandstorm [#sandstorm]
ecloud has joined #sandstorm
gillisig has joined #sandstorm
indoleringmatrix has joined #sandstorm
thekyriarchy has joined #sandstorm
M-hrjet has joined #sandstorm
wakest has joined #sandstorm
nolan_d has joined #sandstorm
Guest52305 has joined #sandstorm
Zertrin[m] has joined #sandstorm
davidar has joined #sandstorm
eternaleye has joined #sandstorm
srenatus[m] has joined #sandstorm
guido[m] has joined #sandstorm
johndoe123[m] has joined #sandstorm
FredFredFred_ has joined #sandstorm
FredFredFred has quit [Ping timeout: 268 seconds]
ShalokShalom_ is now known as ShalokShalom
KCinJP has quit [Ping timeout: 264 seconds]
KCinJP has joined #sandstorm
davidar has quit [Ping timeout: 264 seconds]
NwS has quit [Ping timeout: 260 seconds]
davidar has joined #sandstorm
johndoe123[m] has quit [Ping timeout: 264 seconds]
elensil has joined #sandstorm
johndoe123[m] has joined #sandstorm
elensil has left #sandstorm [#sandstorm]
srenatus[m] has quit [Ping timeout: 252 seconds]
srenatus[m] has joined #sandstorm
KCinJP has quit [Read error: Connection reset by peer]
KCinJP has joined #sandstorm
srenatus[m] has quit [Ping timeout: 252 seconds]
M-hrjet has quit [Ping timeout: 252 seconds]
srenatus[m] has joined #sandstorm
M-hrjet has joined #sandstorm
M-hrjet has quit [Ping timeout: 252 seconds]
M-hrjet has joined #sandstorm
elensil has joined #sandstorm
harish has joined #sandstorm
srenatus[m] has quit [Ping timeout: 252 seconds]
srenatus[m] has joined #sandstorm
elensil has left #sandstorm [#sandstorm]
samba_ has joined #sandstorm
tobald has quit [Quit: Ex-Chat]
jemc has joined #sandstorm
samba_ has quit [Ping timeout: 240 seconds]
guest3456 has joined #sandstorm
guest3456 has quit [Changing host]
guest3456 has joined #sandstorm
guest3456 has joined #sandstorm
<guest3456>
how does sandstorm work if you wanted to have an API integration for an app?
<guest3456>
like if i wanted an API for a wekan board to be updated based on a github status
wakest has quit [Ping timeout: 252 seconds]
wakest has joined #sandstorm
<Guest52305>
Hi guest3456, so there are two parts to that.
<Guest52305>
The web app needs to have that API capability
<Guest52305>
But also the app package needs to expose that API to Sandstorm.
<Guest52305>
For a good example of this, take a look at the Davros app, on the "Clients" panel (down the Right).
<guest3456>
i'm only using the demo
<guest3456>
but i see
<guest3456>
the api url is an oasis url
FredFredFred has joined #sandstorm
FredFredFred_ has quit [Ping timeout: 260 seconds]
<Guest52305>
So, in that, the Davros app exposes a WebDAV interface and an OwnCloud compatible Sync interface. The web UI calls an iFrame against Sandstorm to get the grain's route between the web interface and the grain's API.
<Guest52305>
It's a bit handwavy, as I'm not exactly sure how all the pieces join together (so I might even have some of that wrong) but... that's what it's (a bit) like, from outside at least!
Guest52305 has quit [Changing host]
Guest52305 has joined #sandstorm
<guest3456>
hrmmm ok yeah i figured it was some hack like that
<guest3456>
thanks
neynah has joined #sandstorm
Guest52305 is now known as JonTheNiceGuy
eternaleye has quit [Remote host closed the connection]
thekyriarchy has quit [Remote host closed the connection]
JonTheNiceGuy has quit [Remote host closed the connection]
nolan_d has quit [Remote host closed the connection]
indoleringmatrix has quit [Read error: Connection reset by peer]
hannes[m] has quit [Read error: Connection reset by peer]
srenatus[m] has quit [Read error: Connection reset by peer]
gillisig has quit [Write error: Connection reset by peer]
johndoe123[m] has quit [Remote host closed the connection]
guido[m] has quit [Read error: Connection reset by peer]
M-hrjet has quit [Write error: Connection reset by peer]
davidar has quit [Read error: Connection reset by peer]
Zertrin[m] has quit [Write error: Connection reset by peer]
<TimMc>
Looks like Sandstorm's backup story is a little janky -- I don't want to have to shut down the service to take backups.
<TimMc>
I guess when I rebuild this box I'll put it on something that allows FS-level snapshots...
biotim has quit [Ping timeout: 255 seconds]
<kentonv>
TimMc, yeah, currently there's no explicit backup mechanism so you have to take an atomic snapshot of the filesystem or shut sandstorm down while taking a non-atomic snapshot
<TimMc>
FS snapshots aresn't so bad, it's just another step and another thing to learn about.
<kentonv>
I definitely would like to have something built-in, but that's another big project
<TimMc>
I wonder what that would look like... either Sandstorm would have to always write to disk in a way that allows non-atomic backups, or... ?
<kentonv>
regarding the atomicness issue, Sandstorm should probably pause a grain while backing it up (using SIGSTOP, probably). Currently we get away with building the zips non-atomically, and it works the vast majority of the time because the data is small and rate of change is low.
<kentonv>
(though Blackrock actually takes them atomically by virtue of controlling the storage layer)
<TimMc>
What do you use for the snapshots? ZFS or something?
<kentonv>
TimMc, you mean on Blackrock? We actually implement the storage at the block device level, so we can trivially snapshot there.
<kentonv>
What actually happens is, the storage back-end is instructed to temporarily block all writes to the grain volume while the backup is built.
<kentonv>
so while the grain itself isn't paused, writes to the virtual disk are paused.
<kentonv>
each grain on blackrock actually has its own storage volume implemented as a virtual block device. (ext4 is used on top of that, but that's entirely in the worker node -- the storage back-end only exports a block device.)