def __deferred_init(self): """ Init all data that requires external resources """ if self.__inited: return logger.info("Getting API URLs from well-known {}".format( self.__discovery_url)) self.secret_manager = secret.Manager() self.config = common.get_config() self.__well_known = WellKnown(self.__discovery_url) wk = self.__well_known.get_well_known() self.api_url = wk["api"]["endpoints"] # XXX These are not currently used # self.api_audience = wk["api"]["audience"] # self.api_url_person = self.api_url["person"] # self.api_url_change = self.api_url["change"] self.api_audience = self.config("api_identifier", namespace="cis", default="api.dev.sso.allizom.org") self.api_url_person = "https://" + self.config( "person_api_url", namespace="cis", default="person.api.dev.sso.allizom.org") self.api_url_change = "https://" + self.config( "change_api_url", namespace="cis", default="change.api.dev.sso.allizom.org") self.publisher_rules = self.__well_known.get_publisher_rules() self.__inited = True
def test_secret_manager(self): self.secret_name = "dinosecret" client = boto3.client("ssm", region_name="us-west-2") client.put_parameter( Name="/baz/{}".format(self.secret_name), Description="A secret about Dinos.", Value="adinosecret", Type="SecureString", KeyId="alias/aws/ssm", ) from cis_publisher import secret environ["CIS_SECRET_MANAGER_SSM_PATH"] = "/baz" manager = secret.Manager() result = manager.secret("dinosecret") assert result == "adinosecret"