add server ip selection on run monkey page
This commit is contained in:
parent
04c86737e9
commit
c143987138
|
@ -71,7 +71,7 @@ def init_app(mongo_url):
|
|||
|
||||
api.add_resource(Root, '/api')
|
||||
api.add_resource(Monkey, '/api/monkey', '/api/monkey/', '/api/monkey/<string:guid>')
|
||||
api.add_resource(LocalRun, '/api/island', '/api/island/')
|
||||
api.add_resource(LocalRun, '/api/local-monkey', '/api/local-monkey/')
|
||||
api.add_resource(Telemetry, '/api/telemetry', '/api/telemetry/', '/api/telemetry/<string:monkey_guid>')
|
||||
api.add_resource(MonkeyConfiguration, '/api/configuration', '/api/configuration/')
|
||||
api.add_resource(MonkeyDownload, '/api/monkey/download', '/api/monkey/download/',
|
||||
|
|
|
@ -3,7 +3,7 @@ import os
|
|||
from shutil import copyfile
|
||||
|
||||
import sys
|
||||
from flask import request
|
||||
from flask import request, jsonify, make_response
|
||||
import flask_restful
|
||||
|
||||
from cc.resources.monkey_download import get_monkey_executable
|
||||
|
@ -47,16 +47,14 @@ def run_local_monkey(island_address):
|
|||
|
||||
class LocalRun(flask_restful.Resource):
|
||||
def get(self):
|
||||
req_type = request.args.get('type')
|
||||
if req_type == "interfaces":
|
||||
return {"interfaces": local_ips()}
|
||||
else:
|
||||
return {"message": "unknown action"}
|
||||
# TODO implement is_running from db monkeys collection
|
||||
return jsonify(is_running=False)
|
||||
|
||||
def post(self):
|
||||
action_json = json.loads(request.data)
|
||||
if 'action' in action_json:
|
||||
if action_json["action"] == "monkey" and action_json.get("island_address") is not None:
|
||||
return {"res": run_local_monkey(action_json.get("island_address"))}
|
||||
body = json.loads(request.data)
|
||||
if body.get('action') == 'run' and body.get('ip') is not None:
|
||||
local_run = run_local_monkey(island_address=body.get('ip'))
|
||||
return jsonify(is_running=local_run[0])
|
||||
|
||||
return {"res": (False, "Unknown action")}
|
||||
# default action
|
||||
return make_response({'error': 'Invalid action'}, 500)
|
||||
|
|
|
@ -16,7 +16,7 @@ class Root(flask_restful.Resource):
|
|||
action = request.args.get('action')
|
||||
|
||||
if not action:
|
||||
return jsonify(ips=local_ip_addresses(), mongo=str(mongo.db))
|
||||
return jsonify(ip_addresses=local_ip_addresses(), mongo=str(mongo.db))
|
||||
|
||||
elif action == "reset":
|
||||
mongo.db.config.drop()
|
||||
|
|
|
@ -288,21 +288,21 @@
|
|||
}
|
||||
},
|
||||
"babel-core": {
|
||||
"version": "6.25.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz",
|
||||
"integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=",
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
|
||||
"integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-code-frame": "6.22.0",
|
||||
"babel-generator": "6.25.0",
|
||||
"babel-code-frame": "6.26.0",
|
||||
"babel-generator": "6.26.0",
|
||||
"babel-helpers": "6.24.1",
|
||||
"babel-messages": "6.23.0",
|
||||
"babel-register": "6.24.1",
|
||||
"babel-runtime": "6.25.0",
|
||||
"babel-template": "6.25.0",
|
||||
"babel-traverse": "6.25.0",
|
||||
"babel-types": "6.25.0",
|
||||
"babylon": "6.17.4",
|
||||
"babel-register": "6.26.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"babel-template": "6.26.0",
|
||||
"babel-traverse": "6.26.0",
|
||||
"babel-types": "6.26.0",
|
||||
"babylon": "6.18.0",
|
||||
"convert-source-map": "1.5.0",
|
||||
"debug": "2.6.8",
|
||||
"json5": "0.5.1",
|
||||
|
@ -312,6 +312,83 @@
|
|||
"private": "0.1.7",
|
||||
"slash": "1.0.0",
|
||||
"source-map": "0.5.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
||||
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "1.1.3",
|
||||
"esutils": "2.0.2",
|
||||
"js-tokens": "3.0.2"
|
||||
}
|
||||
},
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "2.5.1",
|
||||
"regenerator-runtime": "0.11.0"
|
||||
}
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
|
||||
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-runtime": "6.26.0",
|
||||
"babel-traverse": "6.26.0",
|
||||
"babel-types": "6.26.0",
|
||||
"babylon": "6.18.0",
|
||||
"lodash": "4.17.4"
|
||||
}
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
|
||||
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-code-frame": "6.26.0",
|
||||
"babel-messages": "6.23.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"babel-types": "6.26.0",
|
||||
"babylon": "6.18.0",
|
||||
"debug": "2.6.8",
|
||||
"globals": "9.18.0",
|
||||
"invariant": "2.2.2",
|
||||
"lodash": "4.17.4"
|
||||
}
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
|
||||
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-runtime": "6.26.0",
|
||||
"esutils": "2.0.2",
|
||||
"lodash": "4.17.4",
|
||||
"to-fast-properties": "1.0.3"
|
||||
}
|
||||
},
|
||||
"babylon": {
|
||||
"version": "6.18.0",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
|
||||
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
|
||||
"dev": true
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
|
||||
"integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-eslint": {
|
||||
|
@ -328,19 +405,49 @@
|
|||
}
|
||||
},
|
||||
"babel-generator": {
|
||||
"version": "6.25.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz",
|
||||
"integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=",
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
|
||||
"integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-messages": "6.23.0",
|
||||
"babel-runtime": "6.25.0",
|
||||
"babel-types": "6.25.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"babel-types": "6.26.0",
|
||||
"detect-indent": "4.0.0",
|
||||
"jsesc": "1.3.0",
|
||||
"lodash": "4.17.4",
|
||||
"source-map": "0.5.6",
|
||||
"trim-right": "1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "2.5.1",
|
||||
"regenerator-runtime": "0.11.0"
|
||||
}
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
|
||||
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-runtime": "6.26.0",
|
||||
"esutils": "2.0.2",
|
||||
"lodash": "4.17.4",
|
||||
"to-fast-properties": "1.0.3"
|
||||
}
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
|
||||
"integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-bindify-decorators": {
|
||||
|
@ -1041,14 +1148,34 @@
|
|||
}
|
||||
},
|
||||
"babel-polyfill": {
|
||||
"version": "6.23.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
|
||||
"integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=",
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
|
||||
"integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-runtime": "6.25.0",
|
||||
"core-js": "2.5.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"core-js": "2.5.1",
|
||||
"regenerator-runtime": "0.10.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "2.5.1",
|
||||
"regenerator-runtime": "0.11.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"regenerator-runtime": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
|
||||
"integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-preset-es2015": {
|
||||
|
@ -1154,18 +1281,36 @@
|
|||
}
|
||||
},
|
||||
"babel-register": {
|
||||
"version": "6.24.1",
|
||||
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
|
||||
"integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=",
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
|
||||
"integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-core": "6.25.0",
|
||||
"babel-runtime": "6.25.0",
|
||||
"core-js": "2.5.0",
|
||||
"babel-core": "6.26.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"core-js": "2.5.1",
|
||||
"home-or-tmp": "2.0.0",
|
||||
"lodash": "4.17.4",
|
||||
"mkdirp": "0.5.1",
|
||||
"source-map-support": "0.4.15"
|
||||
"source-map-support": "0.4.17"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "2.5.1",
|
||||
"regenerator-runtime": "0.11.0"
|
||||
}
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
|
||||
"integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-runtime": {
|
||||
|
@ -1173,7 +1318,7 @@
|
|||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz",
|
||||
"integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=",
|
||||
"requires": {
|
||||
"core-js": "2.5.0",
|
||||
"core-js": "2.5.1",
|
||||
"regenerator-runtime": "0.10.5"
|
||||
}
|
||||
},
|
||||
|
@ -1532,9 +1677,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
|
||||
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"center-align": {
|
||||
|
@ -1749,12 +1894,6 @@
|
|||
"delayed-stream": "1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
|
||||
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"commondir": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||
|
@ -1946,9 +2085,9 @@
|
|||
}
|
||||
},
|
||||
"core-js": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz",
|
||||
"integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY="
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
|
||||
"integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -2940,40 +3079,26 @@
|
|||
}
|
||||
},
|
||||
"extract-zip": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz",
|
||||
"integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=",
|
||||
"version": "1.6.5",
|
||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz",
|
||||
"integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"concat-stream": "1.5.0",
|
||||
"debug": "0.7.4",
|
||||
"concat-stream": "1.6.0",
|
||||
"debug": "2.2.0",
|
||||
"mkdirp": "0.5.0",
|
||||
"yauzl": "2.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"concat-stream": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz",
|
||||
"integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=",
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inherits": "2.0.3",
|
||||
"readable-stream": "2.0.6",
|
||||
"typedarray": "0.0.6"
|
||||
"ms": "0.7.1"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "0.7.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
|
||||
"integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
|
||||
"dev": true
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
||||
"dev": true
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
||||
|
@ -2989,19 +3114,11 @@
|
|||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
|
||||
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "1.0.0",
|
||||
"process-nextick-args": "1.0.7",
|
||||
"string_decoder": "0.10.31",
|
||||
"util-deprecate": "1.0.2"
|
||||
}
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -4330,16 +4447,20 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
|
||||
"integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
|
||||
"integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
|
||||
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "1.1.3",
|
||||
"commander": "2.11.0",
|
||||
"is-my-json-valid": "2.16.0",
|
||||
"pinkie-promise": "2.0.1"
|
||||
"ajv": "4.11.8",
|
||||
"har-schema": "1.0.5"
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
|
@ -4410,14 +4531,14 @@
|
|||
}
|
||||
},
|
||||
"history": {
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/history/-/history-4.6.3.tgz",
|
||||
"integrity": "sha1-bXI6hxLFgda+836MJvSu3G64aWc=",
|
||||
"version": "4.7.2",
|
||||
"resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz",
|
||||
"integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==",
|
||||
"requires": {
|
||||
"invariant": "2.2.2",
|
||||
"loose-envify": "1.3.1",
|
||||
"resolve-pathname": "2.1.0",
|
||||
"value-equal": "0.2.1",
|
||||
"resolve-pathname": "2.2.0",
|
||||
"value-equal": "0.4.0",
|
||||
"warning": "3.0.0"
|
||||
}
|
||||
},
|
||||
|
@ -4428,9 +4549,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"hoist-non-react-statics": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
|
||||
"integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz",
|
||||
"integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA="
|
||||
},
|
||||
"home-or-tmp": {
|
||||
"version": "2.0.0",
|
||||
|
@ -4899,7 +5020,7 @@
|
|||
"integrity": "sha1-HekZlvSAsi3LGsqFECVbrhV0RG4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-core": "6.25.0",
|
||||
"babel-core": "6.26.0",
|
||||
"escodegen": "1.8.1",
|
||||
"esprima": "2.7.3",
|
||||
"istanbul": "0.4.5",
|
||||
|
@ -5107,9 +5228,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"karma": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz",
|
||||
"integrity": "sha1-b3oaQGRG+i4YfslTmGmPTO5HYmk=",
|
||||
"version": "1.7.1",
|
||||
"resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz",
|
||||
"integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bluebird": "3.5.0",
|
||||
|
@ -5118,7 +5239,7 @@
|
|||
"colors": "1.1.2",
|
||||
"combine-lists": "1.0.1",
|
||||
"connect": "3.6.3",
|
||||
"core-js": "2.5.0",
|
||||
"core-js": "2.5.1",
|
||||
"di": "0.0.1",
|
||||
"dom-serialize": "2.2.1",
|
||||
"expand-braces": "0.1.2",
|
||||
|
@ -5186,12 +5307,66 @@
|
|||
}
|
||||
},
|
||||
"karma-mocha-reporter": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.3.tgz",
|
||||
"integrity": "sha1-BP3aRaHZaXpzhxx0ciI8WBcBqyA=",
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.4.tgz",
|
||||
"integrity": "sha1-DJyyLCfYZND2aU3wzwHKq86QZNQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "1.1.3"
|
||||
"chalk": "2.1.0",
|
||||
"log-symbols": "2.0.0",
|
||||
"strip-ansi": "4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "1.9.0"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "3.2.0",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"supports-color": "4.4.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
|
||||
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "3.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
|
||||
"integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"karma-phantomjs-launcher": {
|
||||
|
@ -5201,7 +5376,7 @@
|
|||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "4.17.4",
|
||||
"phantomjs-prebuilt": "2.1.14"
|
||||
"phantomjs-prebuilt": "2.1.15"
|
||||
}
|
||||
},
|
||||
"karma-sourcemap-loader": {
|
||||
|
@ -5500,6 +5675,52 @@
|
|||
"lodash._root": "3.0.1"
|
||||
}
|
||||
},
|
||||
"log-symbols": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.0.0.tgz",
|
||||
"integrity": "sha512-ValCSal2pRxRbet7O69a/1g5fZ2MLxf1YXIslNrdJF42ofY9zVf6MTqTwfhG+2x168xrbZATCgFQfXAwdNHv+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
|
||||
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "1.9.0"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "3.2.0",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"supports-color": "4.4.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
|
||||
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
|
||||
"integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"log4js": {
|
||||
"version": "0.6.38",
|
||||
"resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
|
||||
|
@ -6295,19 +6516,25 @@
|
|||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
||||
"dev": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
|
||||
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
|
||||
"dev": true
|
||||
},
|
||||
"phantomjs-prebuilt": {
|
||||
"version": "2.1.14",
|
||||
"resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz",
|
||||
"integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=",
|
||||
"version": "2.1.15",
|
||||
"resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.15.tgz",
|
||||
"integrity": "sha1-IPhugtM0nFBZF1J3RbekEeCLOQM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es6-promise": "4.0.5",
|
||||
"extract-zip": "1.5.0",
|
||||
"extract-zip": "1.6.5",
|
||||
"fs-extra": "1.0.0",
|
||||
"hasha": "2.2.0",
|
||||
"kew": "0.7.0",
|
||||
"progress": "1.1.8",
|
||||
"request": "2.79.0",
|
||||
"request": "2.81.0",
|
||||
"request-progress": "2.0.1",
|
||||
"which": "1.2.14"
|
||||
},
|
||||
|
@ -7305,9 +7532,9 @@
|
|||
}
|
||||
},
|
||||
"react-json-view": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.12.0.tgz",
|
||||
"integrity": "sha512-k12TdTzybOx0DCSI5kNE2WQntMrYIE1wI9DF3AzTHM9OG/QOguIa6Gk2h/IFoqR4kOyf9n3GMMq6OAcQ9qk7KA==",
|
||||
"version": "1.12.1",
|
||||
"resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.12.1.tgz",
|
||||
"integrity": "sha512-klz1PrwmMcX8tQuvutsoBOABqLtyLKudeXi9Pv0MkBF1Ja1d6JnXrZdYZxIH9WOdwLpCHA+7NnKsdFc/RGFBqg==",
|
||||
"requires": {
|
||||
"clipboard": "1.7.1",
|
||||
"flux": "3.1.3",
|
||||
|
@ -7346,12 +7573,12 @@
|
|||
}
|
||||
},
|
||||
"react-router": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/react-router/-/react-router-4.1.2.tgz",
|
||||
"integrity": "sha512-VyM87OP+GkijVkkOXJw39A9fKtFelLoZYYDxtELhpZefjYatxI2SUxZcImo/9Tv52rR9UnNJBPSBpVRQMdvi8A==",
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz",
|
||||
"integrity": "sha512-DY6pjwRhdARE4TDw7XjxjZsbx9lKmIcyZoZ+SDO7SBJ1KUeWNxT22Kara2AC7u6/c2SYEHlEDLnzBCcNhLE8Vg==",
|
||||
"requires": {
|
||||
"history": "4.6.3",
|
||||
"hoist-non-react-statics": "1.2.0",
|
||||
"history": "4.7.2",
|
||||
"hoist-non-react-statics": "2.3.1",
|
||||
"invariant": "2.2.2",
|
||||
"loose-envify": "1.3.1",
|
||||
"path-to-regexp": "1.7.0",
|
||||
|
@ -7370,14 +7597,16 @@
|
|||
}
|
||||
},
|
||||
"react-router-dom": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.1.2.tgz",
|
||||
"integrity": "sha512-CU6pFlpfvIj/xi36rZAbUiN0x39241q+d5bAfJJLtlEqlM62F3zgyv5aERH9zesmKqyDBBp2kd85rkq9Mo/iNQ==",
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.2.2.tgz",
|
||||
"integrity": "sha512-cHMFC1ZoLDfEaMFoKTjN7fry/oczMgRt5BKfMAkTu5zEuJvUiPp1J8d0eXSVTnBh6pxlbdqDhozunOOLtmKfPA==",
|
||||
"requires": {
|
||||
"history": "4.6.3",
|
||||
"history": "4.7.2",
|
||||
"invariant": "2.2.2",
|
||||
"loose-envify": "1.3.1",
|
||||
"prop-types": "15.5.10",
|
||||
"react-router": "4.1.2"
|
||||
"react-router": "4.2.0",
|
||||
"warning": "3.0.0"
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
|
@ -7617,19 +7846,19 @@
|
|||
}
|
||||
},
|
||||
"request": {
|
||||
"version": "2.79.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
|
||||
"integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
|
||||
"version": "2.81.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
|
||||
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "0.6.0",
|
||||
"aws4": "1.6.0",
|
||||
"caseless": "0.11.0",
|
||||
"caseless": "0.12.0",
|
||||
"combined-stream": "1.0.5",
|
||||
"extend": "3.0.1",
|
||||
"forever-agent": "0.6.1",
|
||||
"form-data": "2.1.4",
|
||||
"har-validator": "2.0.6",
|
||||
"har-validator": "4.2.1",
|
||||
"hawk": "3.1.3",
|
||||
"http-signature": "1.1.1",
|
||||
"is-typedarray": "1.0.0",
|
||||
|
@ -7637,19 +7866,13 @@
|
|||
"json-stringify-safe": "5.0.1",
|
||||
"mime-types": "2.1.16",
|
||||
"oauth-sign": "0.8.2",
|
||||
"qs": "6.3.2",
|
||||
"performance-now": "0.2.0",
|
||||
"qs": "6.4.0",
|
||||
"safe-buffer": "5.1.1",
|
||||
"stringstream": "0.0.5",
|
||||
"tough-cookie": "2.3.2",
|
||||
"tunnel-agent": "0.4.3",
|
||||
"tunnel-agent": "0.6.0",
|
||||
"uuid": "3.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"qs": {
|
||||
"version": "6.3.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
|
||||
"integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"request-progress": {
|
||||
|
@ -7693,9 +7916,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"resolve-pathname": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.1.0.tgz",
|
||||
"integrity": "sha1-6DWIAbhrg7F1YNTjw4LXrvIQCUQ="
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
|
||||
"integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg=="
|
||||
},
|
||||
"restore-cursor": {
|
||||
"version": "1.0.1",
|
||||
|
@ -8087,9 +8310,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.4.15",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
|
||||
"integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
|
||||
"version": "0.4.17",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.17.tgz",
|
||||
"integrity": "sha512-30c1Ch8FSjV0FwC253iftbbj0dU/OXoSg1LAEGZJUlGgjTNj6cu+DVqJWWIZJY5RXLWV4eFtR+4ouo0VIOYOTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "0.5.6"
|
||||
|
@ -8547,10 +8770,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
||||
"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
|
||||
"dev": true
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
|
@ -8784,9 +9010,9 @@
|
|||
}
|
||||
},
|
||||
"value-equal": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.2.1.tgz",
|
||||
"integrity": "sha1-wiCjBDYfzmmU277ao8fhobiVhx0="
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
|
||||
"integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw=="
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.1.1",
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
"keywords": [],
|
||||
"author": "Your name here",
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.25.0",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-eslint": "^6.0.0",
|
||||
"babel-loader": "^6.4.1",
|
||||
"babel-polyfill": "^6.3.14",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-preset-react": "^6.24.1",
|
||||
"babel-preset-stage-0": "^6.5.0",
|
||||
|
@ -39,11 +39,11 @@
|
|||
"file-loader": "^0.9.0",
|
||||
"glob": "^7.0.0",
|
||||
"isparta-instrumenter-loader": "^1.0.0",
|
||||
"karma": "^1.0.0",
|
||||
"karma": "^1.7.1",
|
||||
"karma-chai": "^0.1.0",
|
||||
"karma-coverage": "^1.0.0",
|
||||
"karma-mocha": "^1.0.0",
|
||||
"karma-mocha-reporter": "^2.0.0",
|
||||
"karma-mocha-reporter": "^2.2.4",
|
||||
"karma-phantomjs-launcher": "^1.0.0",
|
||||
"karma-sourcemap-loader": "^0.3.5",
|
||||
"karma-webpack": "^1.7.0",
|
||||
|
@ -51,7 +51,7 @@
|
|||
"mocha": "^3.0.0",
|
||||
"null-loader": "^0.1.1",
|
||||
"open": "0.0.5",
|
||||
"phantomjs-prebuilt": "^2.0.0",
|
||||
"phantomjs-prebuilt": "^2.1.15",
|
||||
"react-addons-test-utils": "^15.0.0",
|
||||
"react-hot-loader": "^1.2.9",
|
||||
"rimraf": "^2.4.3",
|
||||
|
@ -62,7 +62,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "^3.3.7",
|
||||
"core-js": "^2.0.0",
|
||||
"core-js": "^2.5.1",
|
||||
"fetch": "^1.1.0",
|
||||
"normalize.css": "^4.0.0",
|
||||
"prop-types": "^15.5.10",
|
||||
|
@ -75,8 +75,8 @@
|
|||
"react-fa": "^4.2.0",
|
||||
"react-graph-vis": "^0.1.3",
|
||||
"react-json-tree": "^0.10.9",
|
||||
"react-json-view": "^1.12.0",
|
||||
"react-json-view": "^1.12.1",
|
||||
"react-jsonschema-form": "^0.49.0",
|
||||
"react-router-dom": "^4.1.2"
|
||||
"react-router-dom": "^4.2.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ const RowRenderer = React.createClass({
|
|||
//
|
||||
// render() {
|
||||
// return (
|
||||
// <div style={{height: this.height}} onClick={this.onClick()}>
|
||||
// <div style={{height: this.height}} onClick={this.onClick}>
|
||||
// <Icon name="expand" className="pull-right"/>
|
||||
// <Row style={{minHeight: '100px'}} ref={ node => this.row = node } {...this.props}/>
|
||||
// </div>
|
||||
|
|
|
@ -7,8 +7,8 @@ class RunMonkeyPageComponent extends React.Component {
|
|||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
ip: '0.0.0.0',
|
||||
cmd: '-',
|
||||
ips: [],
|
||||
selectedIp: '0.0.0.0',
|
||||
isRunning: true
|
||||
};
|
||||
}
|
||||
|
@ -17,8 +17,8 @@ class RunMonkeyPageComponent extends React.Component {
|
|||
fetch('/api')
|
||||
.then(res => res.json())
|
||||
.then(res => this.setState({
|
||||
ip: res.ip,
|
||||
cmd: this.generateCmd(res.ip)
|
||||
ips: res['ip_addresses'],
|
||||
selectedIp: res['ip_addresses'][0]
|
||||
}));
|
||||
|
||||
fetch('/api/local-monkey')
|
||||
|
@ -32,33 +32,52 @@ class RunMonkeyPageComponent extends React.Component {
|
|||
return `curl http://${ip}:5000/get-monkey | sh`;
|
||||
}
|
||||
|
||||
runLocalMonkey() {
|
||||
fetch('/api/local-monkey/run', {method: 'POST'})
|
||||
runLocalMonkey = () => {
|
||||
fetch('/api/local-monkey',
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/json'},
|
||||
body: JSON.stringify({action: 'run', ip: this.state.selectedIp})
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(res => {
|
||||
this.setState({
|
||||
isRunning: res['is_running']
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
setSelectedIp = (event) => {
|
||||
this.setState({selectedIp: event.target.value});
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Col xs={8}>
|
||||
<h1 className="page-title">Run the Monkey</h1>
|
||||
<p>
|
||||
Select one of the server's IP addresses:
|
||||
<select value={this.state.selectedIp} onChange={this.setSelectedIp}
|
||||
className="form-control inline-select">
|
||||
{this.state.ips.map(ip =>
|
||||
<option value={ip}>{ip}</option>
|
||||
)}
|
||||
</select>
|
||||
<br/>That address will be used as the monkey's C&C address.
|
||||
</p>
|
||||
<p>Run this snippet on a host for manually infecting it with a Monkey:</p>
|
||||
<Well>
|
||||
<CopyToClipboard text={this.state.cmd} className="pull-right">
|
||||
<CopyToClipboard text={this.generateCmd(this.state.selectedIp)} className="pull-right">
|
||||
<Button style={{margin: '-0.5em'}} title="Copy to Clipboard">
|
||||
<Icon name="clipboard"/>
|
||||
</Button>
|
||||
</CopyToClipboard>
|
||||
<code>{this.state.cmd}</code>
|
||||
<code>{this.generateCmd(this.state.selectedIp)}</code>
|
||||
</Well>
|
||||
<p>
|
||||
Or simply click here to <a onClick={this.runLocalMonkey()}
|
||||
Or simply click here to <a onClick={this.runLocalMonkey}
|
||||
className="btn btn-default btn-sm"
|
||||
style={{'marginLeft': '0.2em'}}>Run on <b>{this.state.ip}</b></a>
|
||||
style={{'marginLeft': '0.2em'}}>Run on <b>{this.state.selectedIp}</b></a>
|
||||
{ this.state.isRunning ?
|
||||
<i className="text-success" style={{'marginLeft': '5px'}}>Running...</i>
|
||||
: ''}
|
||||
|
|
|
@ -11,7 +11,7 @@ class RunServerPageComponent extends React.Component {
|
|||
componentDidMount() {
|
||||
fetch('/api')
|
||||
.then(res => res.json())
|
||||
.then(res => this.setState({ip: res.ips.join(', ')}));
|
||||
.then(res => this.setState({ip: res['ip_addresses'][0]}));
|
||||
}
|
||||
|
||||
render() {
|
||||
|
|
|
@ -140,6 +140,16 @@ body {
|
|||
background: #666;
|
||||
}
|
||||
|
||||
/*
|
||||
* Run Monkey Page
|
||||
*/
|
||||
|
||||
.inline-select {
|
||||
display: inline-block !important;
|
||||
width: 130px !important;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
/*
|
||||
* Map Preview Pane
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue