# File lib/nanite/state.rb, line 99
    def update_state(name, status, services, tags)
      old_services = @redis.smembers("s-#{name}")
      if old_services
        (old_services - services).each do |s|
          @redis.srem(s, name)
          @redis.srem("naniteservices", s)
        end
      end
      old_tags = @redis.smembers("tg-#{name}")
      if old_tags
        (old_tags - tags).each do |t|
          @redis.srem(t, name)
          @redis.srem("nanitetags", t)
        end
      end
      @redis.del("s-#{name}")
      services.each do |srv|
        @redis.sadd(srv, name)
        @redis.sadd("s-#{name}", srv)
        @redis.sadd("naniteservices", srv)
      end
      @redis.del("tg-#{name}")
      tags.each do |tag|
        next if tag.nil?
        @redis.sadd(tag, name)
        @redis.sadd("tg-#{name}", tag)
        @redis.sadd("nanitetags", tag)
      end
      update_status(name, status)
    end