コード例 #1
0
 def __split_name(self, name):
     slash_index0 = name.find("/")
     slash_index1 = name.find("/", slash_index0 + 1)
     if slash_index1 == -1:
         raise ArgumentException(
             "Wrong compliance error name, should be of the form applications/<app_name>/<type>/<id>"
         )
     slash_index2 = name.find("/", slash_index1 + 1)
     if slash_index2 == -1:
         raise ArgumentException(
             "Wrong compliance error name, should be of the form applications/<app_name>/<type>/<id>"
         )
     return (name[slash_index0 + 1:slash_index1],
             name[slash_index1 + 1:slash_index2], name[slash_index2 + 1:])
コード例 #2
0
ファイル: settings.py プロジェクト: MaximeBou/comodit-client
    def _get_name_argument(self, argv):
        if len(argv) < 5:
            raise ArgumentException(
                "An organization, an environment, a host, an application and a setting name must be provided"
            )

        return argv[4]
コード例 #3
0
ファイル: settings.py プロジェクト: MaximeBou/comodit-client
    def get_collection(self, argv):
        if len(argv) < 3:
            raise ArgumentException(
                "An organization, an environment and a host name must be provided"
            )

        return self._client.get_host(argv[0], argv[1], argv[2]).settings()
コード例 #4
0
ファイル: settings.py プロジェクト: MaximeBou/comodit-client
    def get_collection(self, argv):
        if len(argv) < 3:
            raise ArgumentException(
                "An organization, an environment and a host must be provided")

        host = self._client.hosts(argv[0], argv[1]).get(argv[2])
        return self._get_settings(host, argv)
コード例 #5
0
ファイル: settings.py プロジェクト: MaximeBou/comodit-client
    def _get_name_argument(self, argv):
        if len(argv) < 3:
            raise ArgumentException(
                "An organization, a platform and a setting name must be provided"
            )

        return argv[2]
コード例 #6
0
    def _import(self, argv):
        if len(argv) != 2:
            raise ArgumentException("Wrong number of arguments")

        org = self._client.get_organization(argv[0])
        imp = Import()
        imp.import_application(org, argv[1])
コード例 #7
0
    def _import(self, argv):
        """
        Pushes local data to comodit server. Data may include applications,
        distributions, platforms, organizations, environments and hosts.
        Local data are automatically imported if no collision with remote data
        is detected. In case of collision, 'force' option can be used to still
        import data.
        """
        self._options = self._config.options
        org = self._client.organizations().get(argv[0])
        env = self._client.environments(argv[0]).get(argv[1])

        if len(argv) < 3:
            raise ArgumentException("Wrong number of arguments")

        importer = Import(self._config.options.skip_conflict,
                          queue_actions=True,
                          with_instances=self._config.options.with_instances)
        importer.import_full_host(org, env, argv[2])

        if self._config.options.dry_run:
            importer.display_queue(show_only_conflicts=False)

        elif (importer.no_conflict() or self._config.options.skip_conflict):
            importer.execute_queue()
        else:
            importer.display_queue(show_only_conflicts=True)
            print(
                "Impossible to import host. There are conflicts. Use --skip-conflict to force"
            )
コード例 #8
0
    def _import(self, argv):
        if len(argv) != 2:
            raise ArgumentException("Wrong number of arguments")

        org = self._client.organizations().get(argv[0])
        imp = Import(update_existing=self._config.options.update_existing)
        imp.import_platform(org, argv[1])
コード例 #9
0
    def _disable_service(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments")

        host = self._get_host(argv)
        app_name = argv[3]
        svc_name = argv[4]
        host.live_disable_service(app_name, svc_name)
コード例 #10
0
    def _install_package(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments")

        host = self._get_host(argv)
        app_name = argv[3]
        pkg_name = argv[4]
        host.live_install_package(app_name, pkg_name)
コード例 #11
0
    def __set_root_folder(self, argv):
        if len(argv) < 1:
            raise ArgumentException("Wrong number of arguments")

        self._root = argv[
            0]  # By default, use organization name as folder name
        if len(argv) > 1:
            self._root = argv[1]
コード例 #12
0
    def _complete_template(self, argv, template_json):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments");

        app = self._client.get_application(argv[0], argv[3])
        template_json["application"] = app.name
        template_json["services"] = [{"name": s.name, "enabled": s.enabled} for s in app.services]
        template_json["settings"] = [{"key": p.key, "value": p.value} for p in app.parameters_f]
コード例 #13
0
ファイル: contexts.py プロジェクト: MaximeBou/comodit-client
    def _render_file(self, argv):
        if len(argv) != 4:
            raise ArgumentException("Wrong number of arguments");

        host = self._get_host(argv)
        file_name = argv[3]

        print host.render_dist_file(file_name).read()
コード例 #14
0
    def _update_file(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments")

        host = self._get_host(argv)
        app_name = argv[3]
        file_name = argv[4]
        host.live_update_file(app_name, file_name)
コード例 #15
0
ファイル: contexts.py プロジェクト: MaximeBou/comodit-client
    def _render_file(self, argv):
        if len(argv) != 5:
            raise ArgumentException("Wrong number of arguments");

        host = self._get_host(argv)
        app_name = argv[3]
        file_name = argv[4]

        print host.render_app_file(app_name, file_name).read()
コード例 #16
0
ファイル: contexts.py プロジェクト: MaximeBou/comodit-client
    def _get_link(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments");

        host = self._get_host(argv)
        file_name = argv[3]
        short = True if len(argv) == 5 and argv[4] == "True" else False

        print host.get_dist_link(file_name, short)
コード例 #17
0
ファイル: contexts.py プロジェクト: MaximeBou/comodit-client
    def _run_action(self, argv):
        if len(argv) != 5:
            raise ArgumentException("Wrong number of arguments");

        host = self._get_host(argv)
        app_name = argv[3]
        key = argv[4]

        host.get_application(app_name).run_custom_action(key)
コード例 #18
0
    def _update_package(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments")

        host = self._get_host(argv)
        app_name = argv[3]
        pkg_name = argv[4]
        pkg_version = argv[5]
        host.live_update_package(app_name, pkg_name, pkg_version)
コード例 #19
0
ファイル: store.py プロジェクト: MaximeBou/comodit-client
 def _get_filter_parameters(self):
     list_filter = self._get_filter()
     param = {"filter": list_filter}
     if globals.options.org_name:
         param["org_name"] = globals.options.org_name
     elif list_filter == "private":
         raise ArgumentException(
             "An organization name must be provided with private filter")
     return param
コード例 #20
0
    def _impact(self, argv):

        if len(argv) != 5:
            raise ArgumentException("Wrong number of arguments")

        app_name = argv[3]
        key = argv[4]

        application = self._client.get_application(argv[0], app_name)
        application.show_action(key)
コード例 #21
0
ファイル: contexts.py プロジェクト: MaximeBou/comodit-client
    def _get_link(self, argv):
        if len(argv) < 5:
            raise ArgumentException("Wrong number of arguments");

        host = self._get_host(argv)
        app_name = argv[3]
        file_name = argv[4]
        short = True if len(argv) == 6 and argv[5] == "True" else False

        print host.get_app_link(app_name, file_name, short)
コード例 #22
0
ファイル: actions.py プロジェクト: geoco84/comodit-client
    def _run(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments")

        host = self._get_host(argv)
        orch_name = argv[3]
        changes = host.run_orchestration(orch_name)

        if self._config.options.wait:
            for change in changes:
                host.wait_for_change_terminated(str(change))
コード例 #23
0
    def _run_action(self, argv):
        if len(argv) != 5:
            raise ArgumentException("Wrong number of arguments");

        host = self._get_host(argv)
        app_name = argv[3]
        handler_name = argv[4]

        changeId = host.get_application(app_name).run_handler(handler_name)

        if self._config.options.wait:
            host.wait_for_change_terminated(changeId)                    
コード例 #24
0
    def _tree(self, argv):
        paramters = self._get_list_parameters(argv)

        if len(argv) < 1:
            raise ArgumentException("An organization must be provided")

        entity = self._client.get_organization(argv[0]).tree(
            self._config.options.secret, self._config.options.non_secret,
            self._config.options.key)

        if self._config.options.raw:
            print(json.dumps(entity.get_json(), indent=4))
        else:
            entity.show()
コード例 #25
0
    def _run_action(self, argv):
        if len(argv) != 5:
            raise ArgumentException("Wrong number of arguments")

        host = self._get_host(argv)
        app_name = argv[3]
        handler_name = argv[4]

        try:
            time_out = int(self._config.options.timeout)
        except Exception:
            sys.exit("Invalid format for timeout")

        changeId = host.get_application(app_name).run_handler(handler_name)

        if self._config.options.wait:
            host.wait_for_change_terminated(changeId, time_out)
コード例 #26
0
ファイル: store.py プロジェクト: MaximeBou/comodit-client
    def _purchase(self, argv):
        if len(argv) < 2:
            raise ArgumentException(
                "A published entity UUID and an organization name must be provided"
            )

        org = self._client.organizations().get(argv[1])
        pub = self.get_collection(argv).get(argv[0],
                                            parameters={"org_name": argv[1]})

        template_json = json.load(
            open(os.path.join(Config()._get_templates_path(), self._template)))
        template_json["published"] = pub.uuid
        template_json["name"] = pub.name
        updated = edit_text(json.dumps(template_json, indent=4))

        pur_app = self.get_purchased_collection(org)._new(json.loads(updated))
        pur_app.create()
コード例 #27
0
    def _run(self, argv):
        if len(argv) < 4:
            raise ArgumentException("Wrong number of arguments")

        try:
            time_out = int(self._config.options.timeout)
        except Exception:
            sys.exit("Invalid format for timeout")

        host = self._get_host(argv)
        org = argv[0]
        orch_name = argv[3]

        result = host.run_orchestration(orch_name)


        if self._config.options.wait:
            context = self._client.orchestrationContext(org, orch_name, result["uuid"])
            context.wait_finished(time_out, self._config.options.debug)
コード例 #28
0
    def _import(self, argv):
        """
        Pushes local data to comodit server. Data may include applications,
        distributions, platforms, organizations, environments and hosts.
        Local data are automatically imported if no collision with remote data
        is detected. In case of collision, 'force' option can be used to still
        import data.
        """
        self._options = globals.options

        if len(argv) < 1:
            raise ArgumentException("Wrong number of arguments")
        self._root = argv[0]

        importer = Import(globals.options.skip_conflict, True)
        importer.import_organization(self._client, self._root)

        if (importer.no_conflict() or
                globals.options.skip_conflict) and not globals.options.dry_run:
            importer.execute_queue()
        else:
            importer.display_queue(show_only_conflicts=True)
コード例 #29
0
 def _get_name_argument(self, argv):
     if len(argv) < 3:
         raise ArgumentException(
             "An organization name and ank environment name and a group name must be provided"
         )
     return argv[2]
コード例 #30
0
 def get_collection(self, argv):
     if len(argv) < 2:
         raise ArgumentException("Wrong number of arguments")
     # return self._client.get_organization(argv[0]).groups()
     return self._client.get_environment(argv[0], argv[1]).groups()