コード例 #1
0
def update_config(omerodir):
    """
    Updates OMERO config with certificate properties if necessary
    """

    cfg = ConfigXml(os.path.join(omerodir, "etc", "grid", "config.xml"))
    cfgdict = cfg.as_map()

    def set_if_empty(cfgkey, default):
        if not cfgdict.get(cfgkey):
            cfg[cfgkey] = default
            log.info("Setting %s=%s", cfgkey, default)

    set_if_empty(
        "omero.glacier2.IceSSL.DefaultDir",
        os.path.join(cfgdict.get("omero.data.dir", "/OMERO"), "certs"),
    )
    set_if_empty("omero.certificates.commonname", "localhost")
    set_if_empty("omero.certificates.owner", "/L=OMERO/O=OMERO.server")
    set_if_empty("omero.certificates.key", "server.key")
    set_if_empty("omero.glacier2.IceSSL.CertFile", "server.p12")
    set_if_empty("omero.glacier2.IceSSL.CAs", "server.pem")
    set_if_empty("omero.glacier2.IceSSL.Password", "secret")

    set_if_empty("omero.glacier2.IceSSL.Ciphers", "HIGH")
    set_if_empty("omero.glacier2.IceSSL.ProtocolVersionMax", "TLS1_2")
    set_if_empty("omero.glacier2.IceSSL.Protocols", "TLS1_0,TLS1_1,TLS1_2")

    cfgdict = cfg.as_map()
    cfg.close()
    return cfgdict
コード例 #2
0
    def testSettings510Upgrade(self):
        """
        When upgraded 5.0.x properties to 5.1.0 or later,
        if omero.web.ui.top_links is set, we need to prepend
        'Data', 'History' and 'Help' links
        """

        beforeUpdate = '[["Figure", "figure_index"]]'
        afterUpdate = '[["Data", "webindex", ' \
            '{"title": "Browse Data via Projects, Tags etc"}], ' \
            '["History", "history", ' \
            '{"title": "History"}], ' \
            '["Help", "https://help.openmicroscopy.org/", ' \
            '{"target": "new", "title": ' \
            '"Open OMERO user guide in a new tab"}], ' \
            '["Figure", "figure_index"]]'
        p = create_path()

        XML = Element("icegrid")
        active = SubElement(XML, "properties", id="__ACTIVE__")
        default = SubElement(XML, "properties", id="default")
        for properties in (active, default):
            # Include a property to indicate version is post-4.2.0
            SubElement(properties,
                       "property",
                       name="omero.config.version",
                       value="4.2.1")
            SubElement(properties,
                       "property",
                       name="omero.web.ui.top_links",
                       value=beforeUpdate)
        string = tostring(XML, 'utf-8')
        txt = xml.dom.minidom.parseString(string).toprettyxml("  ", "\n", None)
        p.write_text(txt)

        config = ConfigXml(filename=str(p), env_config="default")
        try:
            m = config.as_map()
            assert m["omero.web.ui.top_links"] == afterUpdate
        finally:
            config.close()

        # After config.close() calls config.save() new version should be 5.1.0
        config = ConfigXml(filename=str(p), env_config="default")
        try:
            # Check version has been updated
            assert config.version() == "5.1.0"
            m = config.as_map()
            # And that top_links has not been modified further
            assert m["omero.web.ui.top_links"] == afterUpdate
        finally:
            config.close()
コード例 #3
0
ファイル: test_config.py プロジェクト: kok26th/openmicroscopy
    def testSettings510Upgrade(self):
        """
        When upgraded 5.0.x properties to 5.1.0 or later,
        if omero.web.ui.top_links is set, we need to prepend
        'Data', 'History' and 'Help' links
        """

        beforeUpdate = '[["Figure", "figure_index"]]'
        afterUpdate = '[["Data", "webindex", ' \
            '{"title": "Browse Data via Projects, Tags etc"}], ' \
            '["History", "history", ' \
            '{"title": "History"}], ' \
            '["Help", "http://help.openmicroscopy.org/", ' \
            '{"target": "new", "title": ' \
            '"Open OMERO user guide in a new tab"}], ' \
            '["Figure", "figure_index"]]'
        p = create_path()

        XML = Element("icegrid")
        active = SubElement(XML, "properties", id="__ACTIVE__")
        default = SubElement(XML, "properties", id="default")
        for properties in (active, default):
            # Include a property to indicate version is post-4.2.0
            SubElement(
                properties, "property", name="omero.config.version",
                value="4.2.1")
            SubElement(
                properties, "property", name="omero.web.ui.top_links",
                value=beforeUpdate)
        string = tostring(XML, 'utf-8')
        txt = xml.dom.minidom.parseString(string).toprettyxml("  ", "\n", None)
        p.write_text(txt)

        config = ConfigXml(filename=str(p), env_config="default")
        try:
            m = config.as_map()
            assert m["omero.web.ui.top_links"] == afterUpdate
        finally:
            config.close()

        # After config.close() calls config.save() new version should be 5.1.0
        config = ConfigXml(filename=str(p), env_config="default")
        try:
            # Check version has been updated
            assert config.version() == "5.1.0"
            m = config.as_map()
            # And that top_links has not been modified further
            assert m["omero.web.ui.top_links"] == afterUpdate
        finally:
            config.close()
コード例 #4
0
ファイル: test_config.py プロジェクト: kok26th/openmicroscopy
    def test421Upgrade(self):
        """
        When upgraded 4.2.0 properties to 4.2.1,
        ${dn} items in omero.ldap.* properties are
        changed to @{dn}
        """
        p = create_path()

        # How config was written in 4.2.0
        XML = Element("icegrid")
        active = SubElement(XML, "properties", id="__ACTIVE__")
        default = SubElement(XML, "properties", id="default")
        for properties in (active, default):
            SubElement(
                properties, "property", name="omero.config.version",
                value="4.2.0")
            SubElement(
                properties, "property", name="omero.ldap.new_user_group",
                value="member=${dn}")
            SubElement(
                properties, "property", name="omero.ldap.new_user_group_2",
                value="member=$${omero.dollar}{dn}")
        string = tostring(XML, 'utf-8')
        txt = xml.dom.minidom.parseString(string).toprettyxml("  ", "\n", None)
        p.write_text(txt)

        config = ConfigXml(filename=str(p), env_config="default")
        try:
            m = config.as_map()
            assert "member=@{dn}" == m["omero.ldap.new_user_group"]
            assert "member=@{dn}" == m["omero.ldap.new_user_group_2"]
        finally:
            config.close()
コード例 #5
0
    def test421Upgrade(self):
        """
        When upgraded 4.2.0 properties to 4.2.1,
        ${dn} items in omero.ldap.* properties are
        changed to @{dn}
        """
        p = create_path()

        # How config was written in 4.2.0
        XML = Element("icegrid")
        active = SubElement(XML, "properties", id="__ACTIVE__")
        default = SubElement(XML, "properties", id="default")
        for properties in (active, default):
            SubElement(
                properties, "property", name="omero.config.version",
                value="4.2.0")
            SubElement(
                properties, "property", name="omero.ldap.new_user_group",
                value="member=${dn}")
            SubElement(
                properties, "property", name="omero.ldap.new_user_group_2",
                value="member=$${omero.dollar}{dn}")
        string = tostring(XML, 'utf-8')
        txt = xml.dom.minidom.parseString(string).toprettyxml("  ", "\n", None)
        p.write_text(txt)

        config = ConfigXml(filename=str(p), env_config="default")
        try:
            m = config.as_map()
            assert "member=@{dn}" == m["omero.ldap.new_user_group"]
            assert "member=@{dn}" == m["omero.ldap.new_user_group_2"]
        finally:
            config.close()
コード例 #6
0
 def test_4(self, input, output):
     p = write_config(input)
     config = ConfigXml(filename=str(p), env_config="default")
     try:
         m = config.as_map()
         s = strip_dict(m, suffix="blitz")
         assert s == output
     finally:
         config.close()
コード例 #7
0
 def test_4(self, input, output):
     p = write_config(input)
     config = ConfigXml(filename=str(p), env_config="default")
     try:
         m = config.as_map()
         s = strip_dict(m, suffix="blitz")
         assert s == output
     finally:
         config.close()
コード例 #8
0
 def testNewVersioning(self):
     """
     All property blocks should always have a version set.
     """
     p = create_path()
     config = ConfigXml(filename=str(p))
     m = config.as_map()
     for k, v in m.items():
         assert "4.2.1" == v
コード例 #9
0
ファイル: test_config.py プロジェクト: kok26th/openmicroscopy
 def testNewVersioning(self):
     """
     All property blocks should always have a version set.
     """
     p = create_path()
     config = ConfigXml(filename=str(p))
     m = config.as_map()
     for k, v in m.items():
         assert "5.1.0" == v
コード例 #10
0
 def get_config(self, raise_missing=True):
     """
     Returns a dictionary of all OMERO config properties
     """
     configxml = os.path.join(self.dir, 'etc', 'grid', 'config.xml')
     try:
         configobj = ConfigXml(configxml, read_only=True)
     except Exception as e:
         log.warning('config.xml not found: %s', e)
         if raise_missing:
             raise
         return {}
     cfgdict = configobj.as_map()
     configobj.close()
     return cfgdict
コード例 #11
0
def get_config(omerodir):
    configxml = ConfigXml(os.path.join(omerodir, "etc", "grid", "config.xml"))
    try:
        return configxml.as_map()
    finally:
        configxml.close()