Giter VIP home page Giter VIP logo

ember-deploy-redis's People

Contributors

ember-tomster avatar jayphelps avatar jherdman avatar levelbossmike avatar matthewlehner avatar raw1z avatar tim-evans avatar tmayr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ember-deploy-redis's Issues

Setting random revision key blows up current revision

hey @LevelbossMike thanks for the amazing project! Just notice another bug that blew up our production env for a bit :'(....

It looks that setting a revision that doesn't exist will continue to set the manifest:current key in Redis although proper error message is returned. This really isn't expected base on the message.

Looking at the code it seems like the promises are chained so although the mismatched revision is detected the reject is too late to prevent the code from updating the current revision to the mismatched.

On a greater scheme of things I'm a bit surprised that this logic is implemented at the specific adapter level... I was expecting ember-cli-deploy to implement this check (via adapter's listing revisions capability, of course). Just a thought anyway.

Multiple hosts

Hello,

would it be possible to provide an array of redis hosts, especially in the ssh scenario? This would help for multi-site deployment.

0.0.3 doesn't upload index.html

Upgraded to 0.0.3 and start noticing that my index.htmls are outdated. Turns out that they are completely empty!

redis-cli>GET my-ember-app:c2fe6c6
(nil)

There's no error message and both upload and activate return success.

Reverting back to 0.0.2 fixes the issue.

Unhandled rejection Error: ERR invalid DB index

When I use ember deploy for cloud redis (a heroku add-on), I get the error that an invalid DB index has been specified. I think we should have the ability to specify the DB index in the config

screen shot 2015-06-03 at 12 11 29 pm

Unable to create an ssh connection through a bastion server

In our setup the redis server we connect to does not have a public interface. AWS VPC elasticache redis. Therefore we need to connect to it via a bastion server. Unfortunately the ssh connection with this module assumes that the server being connected to is the one that hosts redis.

We have attempted to make some modifications to the connection tunnel but this results in problems when trying to lookup the host dns name of the redis server which does not have a static IP and relies on the AWS DNS.

Trying to upload `dist/index.html`...

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: Redis connection to xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:6379 failed - getaddrinfo ENOTFOUND xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    at RedisClient.on_error (/Users/mbasset/Code/next/node_modules/ember-deploy-redis/node_modules/redis/index.js:196:24)
    at Socket.<anonymous> (/Users/mbasset/Code/next/node_modules/ember-deploy-redis/node_modules/redis/index.js:106:14)
    at Socket.emit (events.js:107:17)
    at net.js:950:16
    at process._tickDomainCallback (node.js:381:11)

Stash checksum and/or timestamp in Redis

It would be fantastic if ember-deploy-redis would also stash a checksum (or the commit SHA) and/or a build date/time (or the commit timestamp) of the index to use in the the ETag and Last-Modified HTTP headers. Something like:

foo:index:current => '<!DOCTYPE html>...'
foo:index:current:meta => checksum '787b3dd284fd99202adfa4e18a28126d159552c5' 
                          timestamp 'Wed Sep 16 19:28:37 2015 +0200'

And then...

require 'sinatra'
require 'redis'

get '/' do
  content_type 'text/html'
  expires 3_600, :public

  redis = Redis.new
  index_key = redis.get("foo:current")
  index_key = "foo:#{params[:index_key]}" if params[:index_key]

  meta = redis.hgetall("#{index_key}:meta")
  etag meta[:checksum]
  last_modified meta[:timestamp]

  redis.get(index_key)
end

Stashing the content in the same hash as the metadata would be ideal (to limit the Redis hits) but would break backwards compatibility.

Changing code of the ember app does not change the checksum for the redis key

Hi,

I was wondering if this is normal behavior. I did a first ember deploy with the redis adapter and got as keys in my redis:

isdb:2207a7b
isdb

After I did some changes in my ember app files and wanted to do a deploy again. But then I got:

Trying to upload `dist/index.html`...
Upload failed!

Did you try to upload an already uploaded revision?

Please run `ember deploy:list` to investigate.

The redis keys are the same:

isdb:2207a7b
isdb

But the html for the key isdb:2207a7b is the latest, so it did upload but on the same key.
But I would have expect that another checksum would have been generated and having in my redis the following keys:

isdb:2207a7b
isdb:new-checksum
isdb

Is the checksum not generated from the dist/index.html? Because there is an difference between the old and new dist/index.html.

Thank you for the help,

Robin

Notify deployment

I am trying to push the new version to the active clients.

Do you know if there is some events the server can listen to on redis to broadcast the new current version to all clients?

using ssh tunneling with encrypted private key

I am using the ssh option to tunnel into the server for my redis deploys and I get this error:

"Encrypted private key detected, but no passphrase given"

This key is encrypted with a passphrase ( so the error is right on ).
So, I am curious. Are people using unencrypted keys? Or is there some way to use encrypted key with the redis-deploy ssh option ?

I could use an unencrypted key .. I suppose .. but do I have to?

Allow for configuration of redis connection via URL

We should be able to provide a URL in configuration connection to redis. It is supported by then-redis, so it shouldn't be too much work to support it in this library. Developers commonly have connection info available as a URL (from an env var, for example), and they shouldn't have to write code to parse it out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.