Ejemplo n.º 1
0
    def test_post_alert_withIP(self):
        self.updateDb()
        sel_worker = AmqpWorker(exchange_name="on.events",
                                topic_routing_key="node.alerts.#",
                                external_callback=self.amqp_callback,
                                timeout=100)
        sel_worker.setDaemon(True)
        sel_worker.start()

        for z in range(2):
            url = "http://{0}:{1}/api/2.0/notification/alerts".format(
                fit_common.fitargs()["rackhd_host"], HTTP_PORT)
            fit_common.restful(url,
                               rest_action='post',
                               rest_payload=self.payload)
            sleep(1)
            logs.debug_1("Post attempt {0}".format(z))

        logs.debug_1("Wait for the alert on the amqp bus")
        self._wait_amqp_message(100)
        amqp_message = amqp_queue.get()

        logs.debug_1("Dispose the Pika connection")
        sel_worker.dispose()

        logs.debug_1("Validate the content of the amqp msg")
        self.validate(amqp_message)
        logs.debug_1("Done with the alert test")
Ejemplo n.º 2
0
 def _list_file(self, mon_url):
     serverip = self._get_serverip()
     control_port = str(fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" + control_port + mon_url)
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' + str(response['status']))
         return "fail"
Ejemplo n.º 3
0
 def _delete_os_image(self, osname, osversion):
     mon_url = '/images?name=' + osname + '&version=' + osversion
     serverip = self._get_serverip()
     control_port = str(fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" + control_port + mon_url, rest_action="delete")
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' + str(response['status']))
         return "fail"
Ejemplo n.º 4
0
 def _delete_microkernel(self, filename):
     mon_url = '/microkernel?name=' + filename
     serverip = self._get_serverip()
     control_port = str(fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" + control_port + mon_url, rest_action="delete")
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.debug_3('Incorrect HTTP return code, expected 201-205, got:' + str(response['status']))
         return "fail"
Ejemplo n.º 5
0
 def _list_file(self, mon_url):
     serverip = self._get_serverip()
     control_port = str(
         fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" +
                                   control_port + mon_url)
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' +
                    str(response['status']))
         return "fail"
Ejemplo n.º 6
0
 def _upload_microkernel(self, filename):
     myfile = open(filename, 'rb')
     serverip = self._get_serverip()
     mon_url = '/microkernel?name=' + filename
     control_port = str(fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" + control_port + mon_url, rest_action="binary-put",
                                   rest_payload=myfile)
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.debug_3('Incorrect HTTP return code, expected 201, got:' + str(response['status']))
         return "fail"
Ejemplo n.º 7
0
 def _upload_os_from_local(self, osname, osversion, path):
     mon_url = '/images?name=' + osname + '&version=' + osversion + '&isolocal=' + path
     serverip = self._get_serverip()
     control_port = str(fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful(
         "http://" + serverip + ":" + control_port + mon_url, rest_action="put", rest_payload={}, rest_timeout=None,
         rest_headers={})
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' + str(response['status']))
         return "fail"
Ejemplo n.º 8
0
 def _upload_iso_file(self, osname, osversion, filename):
     serverip = self._get_serverip()
     mon_url = '/images?name=' + osname + '&version=' + osversion + '&isoclient=' + filename
     myfile = open(filename, 'rb')
     control_port = str(fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful(
         "http://" + serverip + ":" + control_port + mon_url, rest_action="binary-put", rest_payload=myfile,
         rest_timeout=None, rest_headers={})
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' + str(response['status']))
         return "fail"
Ejemplo n.º 9
0
 def _delete_microkernel(self, filename):
     mon_url = '/microkernel?name=' + filename
     serverip = self._get_serverip()
     control_port = str(
         fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" +
                                   control_port + mon_url,
                                   rest_action="delete")
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.debug_3('Incorrect HTTP return code, expected 201-205, got:' +
                      str(response['status']))
         return "fail"
Ejemplo n.º 10
0
 def _delete_os_image(self, osname, osversion):
     mon_url = '/images?name=' + osname + '&version=' + osversion
     serverip = self._get_serverip()
     control_port = str(
         fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" +
                                   control_port + mon_url,
                                   rest_action="delete")
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' +
                    str(response['status']))
         return "fail"
    def test_post_alert_withIP(self):
        self.updateDb()
        sel_worker = AmqpWorker(
            exchange_name="on.events", topic_routing_key="node.alerts.#",
            external_callback=self.amqp_callback, timeout=100)
        sel_worker.setDaemon(True)
        sel_worker.start()

        for z in range(2):
            url = "http://{0}:{1}/api/2.0/notification/alerts".format(fit_common.fitargs()["rackhd_host"], HTTP_PORT)
            fit_common.restful(url, rest_action='post', rest_payload=self.payload)
            sleep(1)
            logs.debug_1("Post attempt {0}".format(z))

        logs.debug_1("Wait for the alert on the amqp bus")
        self._wait_amqp_message(100)
        amqp_message = amqp_queue.get()

        logs.debug_1("Dispose the Pika connection")
        sel_worker.dispose()

        logs.debug_1("Validate the content of the amqp msg")
        self.validate(amqp_message)
        logs.debug_1("Done with the alert test")
Ejemplo n.º 12
0
 def _upload_microkernel(self, filename):
     myfile = open(filename, 'rb')
     serverip = self._get_serverip()
     mon_url = '/microkernel?name=' + filename
     control_port = str(
         fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" +
                                   control_port + mon_url,
                                   rest_action="binary-put",
                                   rest_payload=myfile)
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.debug_3('Incorrect HTTP return code, expected 201, got:' +
                      str(response['status']))
         return "fail"
Ejemplo n.º 13
0
 def _upload_os_by_network(self, osname, osversion, source_url):
     mon_url = '/images?name=' + osname + '&version=' + osversion + '&isoweb=' + source_url
     serverip = self._get_serverip()
     control_port = str(
         fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" +
                                   control_port + mon_url,
                                   rest_action="put",
                                   rest_payload={},
                                   rest_timeout=None,
                                   rest_headers={})
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201, got:' +
                    str(response['status']))
         return "fail"
Ejemplo n.º 14
0
 def _upload_iso_file_to_store(self, filename):
     serverip = self._get_serverip()
     mon_url = '/iso?name=' + filename
     file = open(filename, 'rb')
     control_port = str(
         fit_common.fitcfg()["image_service"]["control_port"])
     response = fit_common.restful("http://" + serverip + ":" +
                                   control_port + mon_url,
                                   rest_action="binary-put",
                                   rest_payload=file,
                                   rest_timeout=None,
                                   rest_headers={})
     if response['status'] in range(200, 205):
         return response['json']
     else:
         logs.error('Incorrect HTTP return code, expected 201-205, got:' +
                    str(response['status']))
         return "fail"
Ejemplo n.º 15
0
 def test01_set_auth_user(self):
     auth_json = open('auth.json', 'w')
     auth_json.write('{"username":"******"api"][0]["admin_user"] + '", "password":"******"api"][0]["admin_pass"] + '", "role":"Administrator"}')
     auth_json.close()
     try:
         # add first user to remote rackhd directly
         return_code = ""
         rackhd_hostname = fit_common.fitargs()['rackhd_host']
         set_auth_url = "https://" + rackhd_hostname + ":" + str(fit_common.fitports()['https']) + "/api/2.0/users"
         rc = fit_common.restful(url_command=set_auth_url, rest_action="post", rest_payload=json.load(open('auth.json')))
         return_code = str(rc['status'])
     except Exception as e:
         log.info_5("ALERT: RackHD is not in localhost, will set first user through ssh{0}".format(e))
     if return_code != '201':
         log.info_5("ALERT: Can't set first user to RackHD https port directly, will set it through ssh")
         # ssh login to rackhd and add first user to localhost rackhd
         fit_common.remote_shell('rm auth.json')
         fit_common.scp_file_to_ora('auth.json')
         rc = fit_common.remote_shell("curl -ks -X POST -H 'Content-Type:application/json' https://localhost:" +
                                      str(fit_common.fitports()['https']) + "/api/2.0/users -d @auth.json")
         if rc['exitcode'] != 0:
             log.info_5("ALERT: Auth admin user not set! Please manually set the admin user account if required.")