Sha256: 8675f4b48723a6c516edb5af958f684dfa0959685839b15db38d8d6349fd03cb
Contents?: true
Size: 1.55 KB
Versions: 6
Compression:
Stored size: 1.55 KB
Contents
require 'rancher/api/models/instance/action' module Rancher module Api # # instance usually container # class Instance include ::Her::Model belongs_to :host def container? type == 'container' end # # Actions: execute, logs, restart, setlabels, stop, update # # # Execute works like this: # - send request with command (array of strings) # - in response you get WebSocket URL and token # - connect to container using WebSocket and send token as parameter # - get response and exit websocket connection # # HTTP/1.1 POST /v1/projects/1a5/containers/1i382/?action=execute # Host: 188.166.70.58:8080 # Accept: application/json # Content-Type: application/json # Content-Length: 112 # { # "attachStdin": true, # "attachStdout": true, # "command": [ # "rake", # "db:create", # "db:schema:load", # "db:seed" # ], # "tty": true # } def execute(command) url = actions['execute'] data = { 'attachStdin' => true, 'attachStdout' => true, 'command' => command, 'tty' => true } action = Action.post(url, data) action.run! end def logs(lines = 20) url = actions['logs'] data = { 'follow' => false, 'lines' => lines } action = Action.post(url, data) action.run! end end end end
Version data entries
6 entries across 6 versions & 1 rubygems