Exemplo n.º 1
0
    def executeDocker2(self):

        try:
            # Open a connection
            client = Client(base_url=self.docker_server, version="1.17")
            client.execute(container=self.shassarosContainer.shassaros[1].docker_id,
                           cmd="/usr/bin/puppet apply --modulepath=\"/root\" /root/shassaro.pp")

            # Start the vncserver (due to bug in the vnc puppet module)
            client.execute(container=self.shassarosContainer.shassaros[1].docker_id,
                           cmd="/sbin/service vncserver start")

        except Exception as e:
            pass
Exemplo n.º 2
0
    def executeDocker2(self):

        try:
            # Open a connection
            client = Client(base_url=self.docker_server, version="1.17")
            client.execute(
                container=self.shassarosContainer.shassaros[1].docker_id,
                cmd=
                "/usr/bin/puppet apply --modulepath=\"/root\" /root/shassaro.pp"
            )

            # Start the vncserver (due to bug in the vnc puppet module)
            client.execute(
                container=self.shassarosContainer.shassaros[1].docker_id,
                cmd="/sbin/service vncserver start")

        except Exception as e:
            pass
def main():
    args = parse_args()
    config_file = args.config_file
    C = Client(base_url='unix://var/run/docker.sock')
    with open(config_file) as data_file:
        data = json.load(data_file)

    def get_image(image_name):
        for line in C.pull(image_name, stream=True):
            logging.debug(json.dumps(json.loads(line), indent=4))

    def remove_chars(word, chars=DEFAULT_CHARS):
        for char in chars:
            word = ''.join(word.split(char))
        return word

    def create_container(image_name, mode):
        if mode == REMOVE_EXISTING:
            for container in C.containers():
                if container.get('Image') == image_name:
                    logging.info('Deleting container - %s' %
                                 container.get('Names')[0])
                    C.remove_container(container=container.get('Id'),
                                       force=True)
        name = '%s_test' % remove_chars(image_name)
        container = C.create_container(image=image_name, hostname=name,
                                       name=name, command=STARTUP_CMD)
        logging.info('Created container - Image: %s | Name: %s | Id: %s'
                     % (image_name, name, container.get('Id')))
        return container

    for item in data['create_containers']['containers']:
        image_name = item['RepoTags']
        get_image(image_name)
        container = create_container(
            image_name, data['create_containers']['mode'])
        C.start(container=container.get('Id'))
        for cmd in item['cmds']:
            logging.debug('Executing command %s on Container %s' %
                          (cmd, container.get('Id')))
            C.execute(container=container.get('Id'), cmd=cmd)