Beispiel #1
0
 def test_register_unit_failing_register(self, post_mock, get_mock):
     response = post_mock.return_value
     response.status_code = 404
     response.json.return_value = None
     get_response = get_mock.return_value
     get_response.headers = {"supported-tsuru": "0.17.1"}
     get_response.status_code = 200
     get_response.json.return_value = [
         {'name': 'var1', 'value': 'var2'},
         {'name': 'var3', 'value': 'var4'},
     ]
     client = Client("http://localhost", "token")
     envs, supported_tsuru = client.register_unit(app="myapp")
     post_mock.assert_called_once_with(
         "{}/apps/myapp/units/register".format(client.url),
         data={"hostname": gethostname()},
         headers={"Authorization": "bearer token"})
     get_mock.assert_called_once_with(
         "{}/apps/myapp/env".format(client.url),
         headers={"Authorization": "bearer token"})
     self.assertEqual(envs['var1'], 'var2')
     self.assertEqual(envs['var3'], 'var4')
     self.assertEqual(envs['port'], '8888')
     self.assertEqual(envs['PORT'], '8888')
     self.assertEqual("0.17.1", supported_tsuru)
Beispiel #2
0
 def test_register_unit_no_supported_tsuru_header(self, post_mock):
     response = post_mock.return_value
     response.headers = {}
     response.status_code = 200
     response.json.return_value = [
         {
             'name': 'var1',
             'value': 'var2'
         },
         {
             'name': 'var3',
             'value': 'var4'
         },
     ]
     client = Client("http://localhost", "token")
     envs, supported_tsuru = client.register_unit(
         "myapp", {"mykey": ["val1", "val2"]})
     post_mock.assert_called_with("{}/apps/myapp/units/register".format(
         client.url),
                                  data={
                                      "hostname":
                                      gethostname(),
                                      "customdata":
                                      '{"mykey": ["val1", "val2"]}'
                                  },
                                  headers={"Authorization": "bearer token"})
     self.assertEqual(envs['var1'], 'var2')
     self.assertEqual(envs['var3'], 'var4')
     self.assertEqual(envs['port'], '8888')
     self.assertEqual(envs['PORT'], '8888')
     self.assertEqual("0.0.0", supported_tsuru)
Beispiel #3
0
 def test_register_unit_failing_register(self, post_mock, get_mock):
     response = post_mock.return_value
     response.status_code = 404
     response.json.return_value = None
     get_response = get_mock.return_value
     get_response.headers = {"supported-tsuru": "0.17.1"}
     get_response.status_code = 200
     get_response.json.return_value = [
         {
             'name': 'var1',
             'value': 'var2'
         },
         {
             'name': 'var3',
             'value': 'var4'
         },
     ]
     client = Client("http://localhost", "token")
     envs, supported_tsuru = client.register_unit(app="myapp")
     post_mock.assert_called_once_with(
         "{}/apps/myapp/units/register".format(client.url),
         data={"hostname": gethostname()},
         headers={"Authorization": "bearer token"})
     get_mock.assert_called_once_with(
         "{}/apps/myapp/env".format(client.url),
         headers={"Authorization": "bearer token"})
     self.assertEqual(envs['var1'], 'var2')
     self.assertEqual(envs['var3'], 'var4')
     self.assertEqual(envs['port'], '8888')
     self.assertEqual(envs['PORT'], '8888')
     self.assertEqual("0.17.1", supported_tsuru)
Beispiel #4
0
 def test_post_app_yaml(self, post_mock):
     response = post_mock.return_value
     response.status_code = 200
     client = Client("http://localhost", "token")
     client.post_app_yaml(app="myapp", data=[{"x": "y"}])
     post_mock.assert_called_with(
         "{}/apps/myapp/customdata".format(client.url),
         data='[{"x": "y"}]',
         headers={
             "Authorization": "bearer token",
             "Content-Type": "application/json",
         })
Beispiel #5
0
 def test_register_unit_hard_fail(self, post_mock, get_mock):
     response = post_mock.return_value
     response.status_code = 500
     response.text = "some error"
     client = Client("http://localhost", "token")
     with self.assertRaises(Exception) as cm:
         client.register_unit(app="myapp")
     post_mock.assert_called_once_with(
         "{}/apps/myapp/units/register".format(client.url),
         data={"hostname": gethostname()},
         headers={"Authorization": "bearer token"})
     self.assertEqual(str(cm.exception), "invalid response 500 - some error")
 def test_post_app_yaml(self, post_mock):
     response = post_mock.return_value
     response.status_code = 200
     client = Client("http://localhost", "token")
     client.post_app_yaml(app="myapp", data=[{"x": "y"}])
     post_mock.assert_called_with(
         "{}/apps/myapp/customdata".format(client.url),
         data='[{"x": "y"}]',
         headers={
             "Authorization": "bearer token",
             "Content-Type": "application/json",
         })
 def test_register_unit_hard_fail(self, post_mock, get_mock):
     response = post_mock.return_value
     response.status_code = 500
     response.text = "some error"
     client = Client("http://localhost", "token")
     with self.assertRaises(Exception) as cm:
         client.register_unit(app="myapp")
     post_mock.assert_called_once_with(
         "{}/apps/myapp/units/register".format(client.url),
         data={"hostname": gethostname()},
         headers={"Authorization": "bearer token"})
     self.assertEqual(str(cm.exception), "invalid response 500 - some error")
Beispiel #8
0
def run_action(args):
    client = Client(args.url, args.token)
    envs = None
    try:
        envs = client.register_unit(args.app_name)
        tasks.save_apprc_file(envs)
    except ConnectionError:
        envs = tasks.parse_apprc_file()
    yaml_data = tasks.load_app_yaml()
    tasks.write_circus_conf(envs=envs)
    tasks.run_restart_hooks('before', yaml_data, envs=envs)
    tasks.execute_start_script(args.start_cmd, envs=envs, with_shell=False)
    tasks.run_restart_hooks('after', yaml_data, envs=envs)
Beispiel #9
0
def run_action(args):
    client = Client(args.url, args.token)
    envs = None
    try:
        envs, supported_tsuru = client.register_unit(args.app_name)
        save_apprc_file(envs, supported_tsuru)
    except ConnectionError:
        envs = tasks.parse_apprc_file()
    yaml_data = tasks.load_app_yaml()
    tasks.write_circus_conf(envs=envs)
    tasks.run_restart_hooks('before', yaml_data, envs=envs)
    tasks.execute_start_script(args.start_cmd, envs=envs, with_shell=False)
    tasks.run_restart_hooks('after', yaml_data, envs=envs)
    remove_temp_env_file()
 def test_register_unit(self, post_mock):
     response = post_mock.return_value
     response.status_code = 200
     response.json.return_value = [
         {'name': 'var1', 'value': 'var2'},
         {'name': 'var3', 'value': 'var4'},
     ]
     client = Client("http://localhost", "token")
     envs = client.register_unit("myapp")
     post_mock.assert_called_with(
         "{}/apps/myapp/units/register".format(client.url),
         data={"hostname": gethostname()},
         headers={"Authorization": "bearer token"})
     self.assertEqual(envs['var1'], 'var2')
     self.assertEqual(envs['var3'], 'var4')
     self.assertEqual(envs['port'], '8888')
     self.assertEqual(envs['PORT'], '8888')
Beispiel #11
0
 def test_register_unit_no_supported_tsuru_header(self, post_mock):
     response = post_mock.return_value
     response.headers = {}
     response.status_code = 200
     response.json.return_value = [
         {'name': 'var1', 'value': 'var2'},
         {'name': 'var3', 'value': 'var4'},
     ]
     client = Client("http://localhost", "token")
     envs, supported_tsuru = client.register_unit("myapp", {"mykey": ["val1", "val2"]})
     post_mock.assert_called_with(
         "{}/apps/myapp/units/register".format(client.url),
         data={
             "hostname": gethostname(),
             "customdata": '{"mykey": ["val1", "val2"]}'
         },
         headers={"Authorization": "bearer token"})
     self.assertEqual(envs['var1'], 'var2')
     self.assertEqual(envs['var3'], 'var4')
     self.assertEqual(envs['port'], '8888')
     self.assertEqual(envs['PORT'], '8888')
     self.assertEqual("0.0.0", supported_tsuru)
Beispiel #12
0
def deploy_action(args):
    heartbeat.StderrHeartbeat().start()
    client = Client(args.url, args.token)
    envs, supported_tsuru = client.register_unit(args.app_name)
    save_apprc_file(envs, supported_tsuru)
    tasks.execute_start_script(args.start_cmd)
    yaml_data = tasks.load_app_yaml()
    client.post_app_yaml(args.app_name, yaml_data)
    tasks.run_build_hooks(yaml_data, envs=envs)
    remove_temp_env_file()
    yaml_data["procfile"] = tasks.load_procfile()
    yaml_data["processes"] = tasks.parse_procfile()
    client.register_unit(args.app_name, yaml_data)
    tasks.write_circus_conf(envs=envs)
Beispiel #13
0
def deploy_action(args):
    heartbeat.StderrHeartbeat().start()
    client = Client(args.url, args.token)
    envs = client.register_unit(args.app_name)
    tasks.save_apprc_file(envs)
    tasks.execute_start_script(args.start_cmd)
    yaml_data = tasks.load_app_yaml()
    yaml_data["procfile"] = tasks.load_procfile()
    client.register_unit(args.app_name, yaml_data)
    client.post_app_yaml(args.app_name, yaml_data)
    tasks.run_build_hooks(yaml_data, envs=envs)
    tasks.write_circus_conf(envs=envs)
 def test_client(self):
     client = Client("http://localhost", "token")
     self.assertEqual(client.url, "http://localhost")
     self.assertEqual(client.token, "token")